{"version":3,"file":"asoComponents.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;;;;;;;;;;;;;;;;ACpCjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;ACRvB;AACA;AACA,0KAA0K,MAAM;AAChL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,MAAM;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB,iCAAiC;AAC1D;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;;AAEA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,0BAA0B,UAAU;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C,OAAO;AACnD;AACA;;AAEA;;AAEA;AACA;;AAEA,qBAAqB,OAAO;AAC5B,0BAA0B,OAAO;AACjC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA,kFAAkF,qCAAqC,yCAAyC;AAChK;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iMAAiM;AACjM;;AAEA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;ACnnB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;AC7Cf;;AAEb,IAAI,CAACA,MAAM,CAACC,MAAM,EAAE;EACnBD,MAAM,CAACC,MAAM,GAAGC,mBAAO,CAAC,4DAAe,CAAC;AACzC;;AAEA;AACA,IAAIC,OAAO,GAAGH,MAAM,CAACC,MAAM,CAAC,CAA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nxBI;AACE;AACF;AACF;AACW;;AAEhD;AACA,uBAAuB,4DAAO;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;AACd;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,IAAqC;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,aAAoB,mBAAmB;;AAE3D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2FAA2F,KAAK,uDAAuD,KAAK;AAC5J;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR,YAAY,IAAqC;AACjD,8CAA8C;AAC9C;AACA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,wDAAe;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,uDAAM;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sDAAsD,aAAoB;AAC1E;AACA;;AAEA;AACA;;AAEA,kCAAkC,aAAoB;AACtD,gSAAgS,YAAY,kIAAkI,aAAa;AAC3b;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,8BAA8B,oCAAoC;AAClE,YAAY;AACZ,yFAAyF;AACzF;AACA,UAAU;AACV,iDAAiD,aAAoB;AACrE;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF,aAAa;AACb,YAAY;AACZ,8BAA8B,wDAAwD;AACtF;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,GAAG,OAAO;;AAE/C;AACA,WAAW,yDAAU;AACrB;;AAEA,MAAM,IAAqC;AAC3C;AACA,kFAAkF;;AAElF;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,qGAAqG,aAAa;AAClH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iFAAiF,eAAe;AAChG;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kEAAkE;;AAElE;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;ACtgBhB;;AAEb,6BAA6B,mBAAO,CAAC,oHAA8C;;AAEnF,kBAAkB;AAClB,kBAAe;;AAEf,uCAAuC,mBAAO,CAAC,gEAAY;;AAE3D;AACA,0DAA0D,yJAAyJ;AACnN;;AAEA;;;;;;;;;;;ACba;;AAEb,kBAAkB;AAClB,kBAAe;;AAEf;AACA,qFAAqF;AACrF;;AAEA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;;AAEA;AACA,6DAA6D,mHAAmH;AAChL;;;;;;;;;;;;;;;;;;;;;;;;;ACR2C;;AAE3C,qBAAqB,qBAAM,mBAAmB,qBAAM;;AAEpD,qBAAqB,0DAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuG;;;;;;;;;;;;AChBvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,YAAY;AAC1E;AACA,8DAA8D,YAAY;AAC1E;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;AChfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gHAAuD;;;;;;;;;;;;ACTvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,kBAAkB;;AAElB,kDAAkD,0CAA0C;;AAE5F,gBAAgB,mBAAO,CAAC,gEAAoB;;AAE5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,KAAqC,qGAAqG,CAAgB;AACrL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,KAAqC,qFAAqF,CAAgB;AACrK,qBAAqB,iBAAiB;AACtC;AACA;AACA,+BAA+B,KAAqC,gHAAgH,CAAgB;AACpM;AACA;AACA,6BAA6B,KAAqC,kGAAkG,CAAgB;AACpL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,KAAqC,8FAA8F,CAAgB;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;;;;;;;;;ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,YAAY;AAChF;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAA0C;AAC/C,EAAE,oCAAO,MAAM;AAAA;AAAA;AAAA;AAAA,kGAAC;AAChB;AACA,MAAM,EAYJ;AACF,CAAC;;;;;;;;;;;;ACvRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;AChD1B;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACzFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,kDAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,CAAM;AAC7I;AACA;;AAEA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,kDAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,EAAE,KAAK,EAIN;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;ACXA;;;;;;;;;;;ACAA,UAAU,mBAAO,CAAC,8EAAiB;AACnC,2CAA2C,qBAAM;AACjD;AACA;AACA;AACA;;AAEA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA,cAAc;AACd,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,oBAAO;AAC3B,gBAAgB,mBAAO,CAAC,uFAAoB;AAC5C,cAAc,mBAAO,CAAC,mFAAkB;AACxC,2BAA2B,mBAAO,CAAC,6GAA+B;AAClE,cAAc,mBAAO,CAAC,4DAAe;AACrC,sBAAsB,mBAAO,CAAC,+FAAwB;AACtD,oBAAoB,mBAAO,CAAC,+FAAwB;AACpD,uBAAuB,mBAAO,CAAC,qGAA2B;AAC1D,mBAAmB,mBAAO,CAAC,6FAAuB;AAClD,mBAAmB,mBAAO,CAAC,6FAAuB;AAClD,gBAAgB,mBAAO,CAAC,uFAAoB;AAC5C,kBAAkB,mBAAO,CAAC,2FAAsB;AAChD,qBAAqB,mBAAO,CAAC,8EAA2B;AACxD,yBAAyB,mBAAO,CAAC,yGAA6B;AAC9D,wBAAwB,mBAAO,CAAC,uGAA4B;;AAE5D;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,GAAG;AAChB,aAAa,MAAM;AACnB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,GAAG;AAChB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG;AACf;;;AAGA;AACA,WAAW,gBAAgB;AAC3B,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,WAAW;AACvB;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,gCAAgC;AAChC;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAA4C;AACrD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,oCAAoC;AACpC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,gBAAgB;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,uBAAuB;;AAEvB;AACA,mBAAmB;AACnB,gBAAgB;AAChB,4BAA4B;AAC5B,kBAAkB;AAClB,uBAAuB;AACvB,mBAAmB;AACnB,cAAc;AACd,eAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,MAAM;AACN;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;;AAEhB;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,KAAI;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kKAAkK,yCAAyC;AAC3M;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,kDAAkD;AAC7D;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,iCAAiC;AAC5C;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,mDAAmD;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,yCAAyC;AACzC,sDAAsD;AACtD;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+MAA+M;AAC/M;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAI;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,KAAI;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,KAAI;AACd;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAI;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAI;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,KAAK;;;AAGL;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;;;AAIA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uFAAuF,aAAa;AACpG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,qBAAqB;;AAEjD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,wBAAwB,GAAG,8BAA8B;AACzD;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8KAA8K,YAAY;AAC1L;AACA;AACA;AACA;AACA,uLAAuL,gCAAgC;AACvN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+JAA+J,iBAAiB;AAChL,QAAQ;AACR,+JAA+J,iBAAiB,wDAAwD,mBAAmB,gBAAgB,+BAA+B;AAC1S;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,0IAA0I,mBAAmB,gBAAgB,+BAA+B;AAC5M,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,YAAY,KAAI;AAChB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,MAAM;AACN;AACA,uDAAuD,cAAc;AACrE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,YAAY,KAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAI;AAClB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,cAAc,KAAI;AAClB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,YAAY,KAAI;AAChB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,KAAI;AACd;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,KAAI;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,KAAI;AACd;AACA;AACA,KAAK;AACL;AACA,UAAU,KAAI;AACd;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;ACviea;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,IAAI,KAAqC,EAAE,EAK1C,CAAC;AACF,EAAE,mIAA0D;AAC5D;;;;;;;;;;;;ACrCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,mBAAO,CAAC,wFAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;;;;;;;;AChCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,8EAAY;;AAEnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,kFAAc;;AAEvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;ACpCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC;AACA;;AAEA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;;;;;;;;;;ACvBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;;;ACnCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,gBAAgB,mBAAO,CAAC,gFAAa;;AAErC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,GAAG;AACd,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,0EAAU;;AAE/B;AACA,WAAW,GAAG;AACd,YAAY,SAAS;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,oBAAoB,mBAAO,CAAC,wFAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA,uFAAuF,aAAa;AACpG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7Da;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;;AAEF,oDAAoD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,iCAAiC;;AAEhP,iCAAiC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,+DAA+D,yDAAyD,qEAAqE,6DAA6D,wBAAwB;;AAEjjB,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,uCAAuC,uCAAuC;;AAE9E,+CAA+C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,sBAAsB;;AAE5M,kDAAkD,0CAA0C;;AAE5F,kDAAkD,aAAa,yFAAyF;;AAExJ,2CAA2C,+DAA+D,uGAAuG,yEAAyE,eAAe,0EAA0E,GAAG;;AAEtX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA,0EAA0E;AAC1E,2DAA2D,eAAe;AAC1E,OAAO;AACP;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,sDAAsD;AAC5D;AACA,sDAAsD,gBAAgB,oBAAoB;AAC1F;AACA;AACA,OAAO,uCAAuC;AAC9C;AACA;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAe;;;;;;;;;;;AC3Qf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,gIAAyD;AAC3D;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7JoC;AACnB;AACO;AACU;AACnB;AACb;AAC2B;AACoB;;AAErE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,gBAAgB;;AAElE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;;AAEA,6BAA6B,8BAA8B;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0CAAG;AACT,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,4DAA4D;AAC5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA,sBAAsB,wDAAc;AACpC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,4CAAG;AACL;AACA,GAAG;AACH,SAAS,0DAAmB;AAC5B;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,2EAA2E,eAAe;AAC1F;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,0EAA0E;;AAE1E;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,wBAAwB,0DAAmB;AAC3C;AACA;;AAEA;AACA,QAAQ,4CAAG;AACX,OAAO;AACP,wBAAwB,uDAAY;AACpC;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA,sBAAsB,wDAAc;AACpC,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,UAAU;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,UAAU;AAC/B;AACA,MAAM;AACN;;;AAGA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,kBAAkB,uBAAuB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS,0DAAmB;AAC5B;AACA;;AAEA;AACA,IAAI,4CAAG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,0DAAmB;AAChC;AACA,OAAO;AACP;AACA;;AAEA;AACA,QAAQ,4CAAG;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,sDAAW;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;;AAEA,+FAA+F;;AAE/F;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,QAAQ;;;AAGR;AACA,mCAAmC,mBAAmB;AACtD,sFAAsF;;AAEtF;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD,8DAA8D;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,0DAAmB,cAAc,0DAAmB;AACjE;AACA;AACA;;AAEA;AACA,QAAQ,4CAAG;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,GAAG,0DAAmB;AAC7B;AACA,OAAO,iCAAiC,0DAAmB;AAC3D;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,gDAAa;;AAEf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,0DAAmB;AAChC;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,0DAAmB;AAC5C;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB;AAChC;AACA;AACA,QAAQ,4CAAG;AACX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS,GAAG;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0DAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,4CAAG;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA,SAAS,0DAAmB;AAC5B;AACA,GAAG,UAAU,0DAAmB;AAChC;AACA,GAAG;AACH;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA,GAAG,UAAU,0DAAmB;AAChC;AACA,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB,mBAAmB;AAC/C;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG,eAAe,0DAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB,mBAAmB;AAC/C;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG,eAAe,0DAAmB;AACrC,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB,oBAAoB;AAChD;AACA;AACA,IAAI,4CAAG;AACP;AACA,KAAK;AACL,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;;AAEA;AACA,IAAI,4CAAG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,qDAAY,iCAAiC,YAAY,WAAW,IAAI,aAAa;AACzF;AACA;;AAEA,SAAS,0DAAmB,mBAAmB;AAC/C;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG,GAAG,0DAAmB;AACzB;AACA;AACA;AACA,GAAG,GAAG,0DAAmB;AACzB;AACA;AACA;AACA,GAAG,GAAG,0DAAmB;AACzB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA,KAAK;AACL,GAAG,EAAE,0DAAmB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,GAAG,WAAW,0DAAmB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0DAAmB;AAC5B;AACA;;AAEA;AACA,IAAI,4CAAG;AACP;AACA,KAAK;AACL,GAAG,EAAE,0DAAmB,CAAC,4DAAa;AACtC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB,gCAAgC,0DAAmB;AACnF;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,4CAAG;AACX;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA,QAAQ,4CAAG;AACX;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,QAAQ,4CAAG;AACX;AACA,SAAS;AACT,OAAO;;AAEP,aAAa,0DAAmB;AAChC;AACA;AACA;AACA,OAAO,EAAE,0DAAmB;AAC5B;AACA;AACA;AACA,OAAO,aAAa,0DAAmB;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAmB;AAC5B;AACA;AACA,IAAI,4CAAG;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,+BAA+B,WAAW;;;AAG1C;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,QAAQ;;;AAGR;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,wEAAwE;AACxE;AACA,SAAS;AACT,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,4BAA4B,uDAAU;;AAEtC;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA,QAAQ;AACR;;;AAGA,6BAA6B;AAC7B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA;AACA;AACA;AACA,OAAO,QAAQ;;AAEf;AACA;AACA;AACA;AACA,OAAO,QAAQ;;AAEf;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,0DAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,0DAAmB,yBAAyB;AAC/E;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,iBAAiB,0DAAmB,wBAAwB;AAC5D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,0DAAmB,yBAAyB;AACzD;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB,4BAA4B;AAC5D;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB,8BAA8B;AAC9D;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,qEAAqE;;AAErE;AACA;AACA;AACA;AACA,aAAa,0DAAmB,gCAAgC;AAChE;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB,+BAA+B;AAC/D;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAmB,oBAAoB;AACtD;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,0DAAmB,mBAAmB;AACzD;AACA;AACA;AACA,eAAe;AACf;AACA,aAAa;AACb;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA,iBAAiB,0DAAmB;AACpC,QAAQ;AACR;AACA;AACA,SAAS;;AAET;AACA,iBAAiB,0DAAmB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAmB,wBAAwB;AACnE;AACA;AACA;AACA;AACA,eAAe,0DAAmB,qBAAqB;AACvD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,GAAG,0DAAmB;AAC/B;AACA;AACA;AACA,SAAS,EAAE,0DAAmB;AAC9B;AACA,SAAS,EAAE,0DAAmB,yBAAyB;AACvD;AACA;AACA;AACA,SAAS;AACT,OAAO,GAAG;AACV;AACA;;AAEA,4DAA4D,0DAAmB,2BAA2B;AAC1G;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,iBAAiB,0DAAmB;AACpC;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA,mBAAmB,0DAAmB;AACtC;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW,IAAI,0DAAmB;AAClC;AACA;AACA,WAAW;AACX,iBAAiB,0DAAmB;AACpC;AACA,QAAQ;AACR;;AAEA,eAAe,0DAAmB;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,aAAa,0DAAmB;AAChC;AACA,OAAO,EAAE,0DAAmB;AAC5B;AACA,OAAO,yCAAyC,0DAAmB;AACnE;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAAmB,6BAA6B;AAC7D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,4BAA4B,0DAAmB,qBAAqB;AAC3E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO,GAAG,0DAAmB,4BAA4B;AACzD;AACA,OAAO,yDAAyD,0DAAmB,iCAAiC;AACpH;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,0EAA0E,aAAa;AACvF;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;;AAER,KAAK;AACL;AACA;AACA;AACA,QAAQ;;AAER,KAAK;AACL;AACA;AACA;AACA;;AAEA,qGAAqG,eAAe;AACpH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,eAAe,0DAAmB,6BAA6B;AAC/D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,4CAAS;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,+FAA+F;;AAE/F;AACA;AACA;AACA,uDAAuD;;AAEvD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAmB,6BAA6B;AAC/D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,4CAAS;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,+BAA+B;;AAE/B;AACA,eAAe,0DAAmB,6BAA6B;AAC/D;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,4CAAS;AACb,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,0DAAmB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS,0DAAmB,CAAC,8DAAU;AACvC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B;AAC7B;AACA,WAAW,0DAAmB;AAC9B;AACA,KAAK;AACL,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAA6B;;AAEnC,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,0DAAmB,CAAC,8DAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,oCAAoC;;AAEpC,eAAe,0DAAmB;AAClC;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA;AACA;AACA;;AAEA,WAAW,0DAAmB;AAC9B;AACA;AACA,KAAK,EAAE,0DAAmB;AAC1B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,WAAW,0DAAmB;AAC9B;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,WAAW,0DAAmB;AAC9B;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,0DAAmB,CAAC,mEAAe;AAC9C;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAU;;AAEtB;;AAEA,iEAAe,OAAO,EAAC;AAC6J;;;;;;;;;;;;ACnqKvK;;AAEb,kBAAkB;AAClB,kBAAe;;AAEf,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,uCAAuC,mBAAO,CAAC,gFAA4B;;AAE3E,0CAA0C,mBAAO,CAAC,sFAA+B;;AAEjF,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,yCAAyC,mBAAO,CAAC,yEAAc;;AAE/D,iBAAiB,mBAAO,CAAC,mFAAmB;;AAE5C,uCAAuC,uCAAuC;;AAE9E,wCAAwC,6BAA6B,cAAc,OAAO,iBAAiB,mBAAmB,uBAAuB,sDAAsD,sHAAsH,4BAA4B,4CAA4C,OAAO,gCAAgC,sBAAsB;;AAEtc,sBAAsB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,iCAAiC,kBAAkB;;AAEpR,gDAAgD,0DAA0D,2CAA2C;;AAErJ;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ,SAAS,KAAK;AAClD;AACA,cAAc;AACd;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,0BAA0B,KAAqC,cAAc;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAE;AACP;AACA,kBAAe;AACf;;;;;;;;;;;AC3Wa;;AAEb,kBAAkB;AAClB,kBAAe;;AAEf,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,gBAAgB,mBAAO,CAAC,oDAAW;;AAEnC,8CAA8C,mBAAO,CAAC,mFAAmB;;AAEzE,uCAAuC,uCAAuC;;AAE9E,2DAA2D,+BAA+B,iBAAiB,sCAAsC,YAAY,YAAY,uBAAuB,OAAO,qBAAqB,0CAA0C,6BAA6B;;AAEnS,gDAAgD,0DAA0D,2CAA2C;;AAErJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yEAAyE,aAAa;AACtF;AACA;;AAEA;;AAEA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA,6EAA6E,eAAe;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED,8BAA8B,KAAqC;AACnE;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAE;AACN;AACA,kBAAe;AACf;;;;;;;;;;;ACrJa;;AAEb,kBAAkB;AAClB,kBAAe,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,cAAc,GAAG,iBAAiB;;AAE3G,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,uCAAuC,mBAAO,CAAC,oDAAW;;AAE1D,6BAA6B,mBAAO,CAAC,qGAAyB;;AAE9D,iBAAiB,mBAAO,CAAC,mFAAmB;;AAE5C,uCAAuC,uCAAuC;;AAE9E,wCAAwC,6BAA6B,cAAc,OAAO,iBAAiB,mBAAmB,uBAAuB,sDAAsD,sHAAsH,4BAA4B,4CAA4C,OAAO,gCAAgC,sBAAsB;;AAEtc,2DAA2D,+BAA+B,iBAAiB,sCAAsC,YAAY,YAAY,uBAAuB,OAAO,qBAAqB,0CAA0C,6BAA6B;;AAEnS,gDAAgD,0DAA0D,2CAA2C;;AAErJ;AACA,iBAAiB;AACjB;AACA,cAAc;AACd;AACA,gBAAgB;AAChB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,YAAY;AAC7B;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,QAAQ,SAAS,SAAS;AAC/C,QAAQ;AACR;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ,SAAS,IAAI;AAC9C,YAAY;AACZ;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;;AAEf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qEAAqE;AACrE;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+EAA+E;;;AAG/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe,SAAS,IAAI;AACjD,QAAQ;AACR,iCAAiC,aAAa,MAAM,GAAG;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,EAAE,CAAE;;AAEN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAe;;;;;;;;;;;AChmBF;;AAEb,kBAAkB;AAClB,kBAAe;;AAEf,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,6BAA6B,mBAAO,CAAC,qGAAyB;;AAE9D,oBAAoB,mBAAO,CAAC,yFAAsB;;AAElD,uCAAuC,uCAAuC;;AAE9E,2DAA2D,+BAA+B,iBAAiB,sCAAsC,YAAY,YAAY,uBAAuB,OAAO,qBAAqB,0CAA0C,6BAA6B;;AAEnS,sBAAsB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,iCAAiC,kBAAkB;;AAEpR,gDAAgD,0DAA0D,2CAA2C;;AAErJ,wCAAwC,uBAAuB,yFAAyF;;AAExJ;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,uGAAuG;;;AAGvG;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,4BAA4B,KAAqC;AACjE;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAE;AACN;;AAEA;;AAEA,kBAAe;AACf;;;;;;;;;;;AC/Ma;;AAEb,4CAA4C,mBAAO,CAAC,+EAAiB;;AAErE,gDAAgD,mBAAO,CAAC,uFAAqB;;AAE7E,8CAA8C,mBAAO,CAAC,mFAAmB;;AAEzE,yCAAyC,mBAAO,CAAC,yEAAc;;AAE/D,uCAAuC,uCAAuC;;AAE9E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjBa;;AAEb,kBAAkB;AAClB,uBAAuB;AACvB,0BAA0B;AAC1B,8BAA8B;AAC9B,2BAA2B;;AAE3B,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ,cAAc,wBAAwB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;;;;;;;;;;ACrJa;;AAEb,kBAAkB;AAClB,uBAAuB,GAAG,qBAAqB;;AAE/C,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,uCAAuC,uCAAuC;;AAE9E,oBAAoB,KAAqC;AACzD;AACA;AACA;AACA,CAAC,iBAAiB,CAAI;AACtB,qBAAqB;AACrB,sBAAsB,KAAqC;AAC3D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,CAAI;AACX,uBAAuB;;;;;;;;;;AC3BvB;AACA,CAAC,KAA4D;AAC7D,EAAE,CACwC;AAC1C,CAAC;;AAED;;AAEA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,0BAA0B;AAC1B,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC/CD,+BAA+B,uBAAuB;;;;;;;;;;ACAtD;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACLpG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,GAAG,SAAS,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAEN;AACF,CAAC;;;;;;;UC5ED;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;UENA;UACA;UACA;UACA","sources":["webpack://advanced-studio-online/./node_modules/@emotion/hash/dist/hash.esm.js","webpack://advanced-studio-online/./node_modules/@emotion/memoize/dist/memoize.esm.js","webpack://advanced-studio-online/./node_modules/@emotion/stylis/dist/stylis.esm.js","webpack://advanced-studio-online/./node_modules/@emotion/unitless/dist/unitless.esm.js","webpack://advanced-studio-online/./Javascript/ClientComponents.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AbstractPledgeManagementHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountActions.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountAddressTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountCommunicationsHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountConstants.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountEmailTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountFormHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountMediaSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountPhoneTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountStore.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/AccountTitleSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/BillingAddressHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/ChildCommunicationsHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/CountrySelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/DefaultBillingAndShippingAddressHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/Dispatcher.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/DocumentsHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/GivingStatementHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyPledgesEditFrequencySelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyPledgesHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyRecurringHeaderEditFrequencySelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyRecurringHeaderEditUseOnDaySelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyRecurringHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyRecurringRefresh.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MyRelationshipPledgesHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MySponsorshipsEditFrequencySelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MySponsorshipsHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MySubscriptionsHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/MySubscriptionsRefresh.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/OrganizationContactTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/OrganizationTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/OtherAddressesHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/PhoneNumberHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/PledgeStatementHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/PostalCodeHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/ReportsHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/SavedPaymentHelper.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/SmartyStreets.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/SmartyStreetsAutocomplete.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/SmartyStreetsVerify.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/StateSelector.jsx","webpack://advanced-studio-online/./Javascript/accountComponents/expose.jsx","webpack://advanced-studio-online/./Javascript/actions/ActionsHelper.jsx","webpack://advanced-studio-online/./Javascript/actions/CarouselActions.jsx","webpack://advanced-studio-online/./Javascript/actions/CategoryActions.jsx","webpack://advanced-studio-online/./Javascript/actions/ContactUsActions.jsx","webpack://advanced-studio-online/./Javascript/actions/EmailSubscriptionActions.jsx","webpack://advanced-studio-online/./Javascript/actions/EventSearchActions.jsx","webpack://advanced-studio-online/./Javascript/actions/ExpanderActions.jsx","webpack://advanced-studio-online/./Javascript/actions/LogoutActions.jsx","webpack://advanced-studio-online/./Javascript/actions/NavigationActions.jsx","webpack://advanced-studio-online/./Javascript/actions/PledgeActions.jsx","webpack://advanced-studio-online/./Javascript/actions/ProductActions.jsx","webpack://advanced-studio-online/./Javascript/actions/SearchActions.jsx","webpack://advanced-studio-online/./Javascript/actions/ShipToActions.jsx","webpack://advanced-studio-online/./Javascript/actions/SlideShowActions.jsx","webpack://advanced-studio-online/./Javascript/actions/TabActions.jsx","webpack://advanced-studio-online/./Javascript/analytics/StudioOnlineAnalytics.jsx","webpack://advanced-studio-online/./Javascript/api/AbstractApi.jsx","webpack://advanced-studio-online/./Javascript/api/AccountApi.jsx","webpack://advanced-studio-online/./Javascript/api/ApplePayApi.jsx","webpack://advanced-studio-online/./Javascript/api/ContactUsApi.jsx","webpack://advanced-studio-online/./Javascript/api/EmailSubscriptionApi.jsx","webpack://advanced-studio-online/./Javascript/api/EventSearchApi.jsx","webpack://advanced-studio-online/./Javascript/api/LogoutApi.jsx","webpack://advanced-studio-online/./Javascript/api/PlaidApi.jsx","webpack://advanced-studio-online/./Javascript/api/PledgeStatementApi.jsx","webpack://advanced-studio-online/./Javascript/api/SavedPaymentsApi.jsx","webpack://advanced-studio-online/./Javascript/api/SearchApi.jsx","webpack://advanced-studio-online/./Javascript/api/SmartyStreetsApi.jsx","webpack://advanced-studio-online/./Javascript/api/SponsorshipApi.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/ApplePayHelper.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/CartItemQuantity.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/CartItemUseOnDay.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/ChargeToday.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/CheckoutActions.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/CheckoutApi.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/CheckoutConstants.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/CheckoutStore.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/DonationAmount.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/DonationUpsellHelper.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/ExposedCheckoutComponents.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/Frequency.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/GooglePayHelper.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/PayPalHelper.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/PaymentTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/PlaidHelper.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/ShippingHelper.jsx","webpack://advanced-studio-online/./Javascript/checkoutComponents/TaxHelper.jsx","webpack://advanced-studio-online/./Javascript/client/Spinner.jsx","webpack://advanced-studio-online/./Javascript/client/TokenStore.jsx","webpack://advanced-studio-online/./Javascript/client/VisibilityStore.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/AccountDemographicsHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/BluefinHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/BraintreeHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/CardConnectHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/CategoryDropdown.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/CategoryPaging.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/CheckoutHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/CreditCardHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/Frequency.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/Paging.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/PaymentHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/ShipToAccountHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/SimpleDropdownFromWizard.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/SubmitButtonHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/SuggestedDonationHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/TokenExHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/TsysTsepHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/ValidationHelper.jsx","webpack://advanced-studio-online/./Javascript/commonComponents/expose.jsx","webpack://advanced-studio-online/./Javascript/constants/StringConstants.jsx","webpack://advanced-studio-online/./Javascript/constants/WizardConstants.jsx","webpack://advanced-studio-online/./Javascript/contactUsComponents/CommunicationTypeSelector.jsx","webpack://advanced-studio-online/./Javascript/contactUsComponents/expose.jsx","webpack://advanced-studio-online/./Javascript/designer/Constants.jsx","webpack://advanced-studio-online/./Javascript/designer/Dispatcher.jsx","webpack://advanced-studio-online/./Javascript/designer/RegExpHelper.jsx","webpack://advanced-studio-online/./Javascript/designer/components/searchResults/GridListToggleHelper.jsx","webpack://advanced-studio-online/./Javascript/designer/wizard/WizardStore.jsx","webpack://advanced-studio-online/./Javascript/dispatcher/Dispatcher.jsx","webpack://advanced-studio-online/./Javascript/eventComponents/EventRegistrationHelper.jsx","webpack://advanced-studio-online/./Javascript/pledgeComponents/PledgeFrequency.jsx","webpack://advanced-studio-online/./Javascript/pledgeComponents/PledgeGiftArray.jsx","webpack://advanced-studio-online/./Javascript/productComponents/ProductVariantsHelper.jsx","webpack://advanced-studio-online/./Javascript/productComponents/Quantity.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/DonationFrequency.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/GiftArray.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/GiveAnonymousCheckbox.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/ProjectActions.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/ProjectConstants.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/ProjectGiftArray.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/ProjectStore.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/RecurringUpsellCheckbox.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/SubaccountGiftArray.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/UseOnDaySelector.jsx","webpack://advanced-studio-online/./Javascript/projectComponents/validations/GiftArrayValidator.jsx","webpack://advanced-studio-online/./Javascript/searchComponents/BaseSearchPaging.jsx","webpack://advanced-studio-online/./Javascript/searchComponents/EventSearchPaging.jsx","webpack://advanced-studio-online/./Javascript/searchComponents/SearchPaging.jsx","webpack://advanced-studio-online/./Javascript/searchComponents/SearchSorting.jsx","webpack://advanced-studio-online/./Javascript/searchComponents/SponsorshipSearchPaging.jsx","webpack://advanced-studio-online/./Javascript/searchComponents/expose.jsx","webpack://advanced-studio-online/./Javascript/shared/ApiHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/BootstrapPrompt.jsx","webpack://advanced-studio-online/./Javascript/shared/HistoryHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/HtmlHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/InputHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/LinkMessageHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/NumberHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/PartialResponseHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/QueryStringHelper.jsx","webpack://advanced-studio-online/./Javascript/shared/Select.jsx","webpack://advanced-studio-online/./Javascript/shared/Wizard.jsx","webpack://advanced-studio-online/./Javascript/sponsorshipComponents/SponsorshipHelper.jsx","webpack://advanced-studio-online/./Javascript/sponsorshipComponents/SponsorshipSearchHelper.jsx","webpack://advanced-studio-online/./Javascript/stores/AbstractStore.jsx","webpack://advanced-studio-online/./Javascript/stores/CarouselStore.jsx","webpack://advanced-studio-online/./Javascript/stores/CategoryStore.jsx","webpack://advanced-studio-online/./Javascript/stores/ContactUsStore.jsx","webpack://advanced-studio-online/./Javascript/stores/EmailSubscriptionStore.jsx","webpack://advanced-studio-online/./Javascript/stores/EventSearchStore.jsx","webpack://advanced-studio-online/./Javascript/stores/ExpanderStore.jsx","webpack://advanced-studio-online/./Javascript/stores/LogoutStore.jsx","webpack://advanced-studio-online/./Javascript/stores/NavigationStore.jsx","webpack://advanced-studio-online/./Javascript/stores/PledgeStore.jsx","webpack://advanced-studio-online/./Javascript/stores/ProductStore.jsx","webpack://advanced-studio-online/./Javascript/stores/ShipToStore.jsx","webpack://advanced-studio-online/./Javascript/stores/SlideShowStore.jsx","webpack://advanced-studio-online/./Javascript/stores/StoresHelper.jsx","webpack://advanced-studio-online/./Javascript/stores/TabStore.jsx","webpack://advanced-studio-online/./Javascript/subscriptionComponents/SubscriptionHelper.jsx","webpack://advanced-studio-online/./node_modules/create-emotion/dist/index.esm.js","webpack://advanced-studio-online/./node_modules/dom-helpers/class/addClass.js","webpack://advanced-studio-online/./node_modules/dom-helpers/class/hasClass.js","webpack://advanced-studio-online/./node_modules/dom-helpers/class/removeClass.js","webpack://advanced-studio-online/./node_modules/emotion/dist/index.esm.js","webpack://advanced-studio-online/./node_modules/events/events.js","webpack://advanced-studio-online/./node_modules/fbjs/lib/invariant.js","webpack://advanced-studio-online/./node_modules/flux/index.js","webpack://advanced-studio-online/./node_modules/flux/lib/Dispatcher.js","webpack://advanced-studio-online/./node_modules/js-logger/src/logger.js","webpack://advanced-studio-online/./node_modules/keyMirror/index.js","webpack://advanced-studio-online/./node_modules/memoize-one/dist/memoize-one.esm.js","webpack://advanced-studio-online/./node_modules/object-assign/index.js","webpack://advanced-studio-online/./node_modules/performance-now/lib/performance-now.js","webpack://advanced-studio-online/./node_modules/prop-types/checkPropTypes.js","webpack://advanced-studio-online/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://advanced-studio-online/./node_modules/prop-types/index.js","webpack://advanced-studio-online/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://advanced-studio-online/./node_modules/prop-types/lib/has.js","webpack://advanced-studio-online/./node_modules/raf/index.js","webpack://advanced-studio-online/./node_modules/react-dom/cjs/react-dom.development.js","webpack://advanced-studio-online/./node_modules/react-dom/index.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/EventListener.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/ExecutionEnvironment.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/camelize.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/camelizeStyleName.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/containsNode.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/emptyFunction.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/emptyObject.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/focusNode.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/getActiveElement.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/hyphenate.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/hyphenateStyleName.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/invariant.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/isNode.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/isTextNode.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/shallowEqual.js","webpack://advanced-studio-online/./node_modules/react-dom/node_modules/fbjs/lib/warning.js","webpack://advanced-studio-online/./node_modules/react-input-autosize/lib/AutosizeInput.js","webpack://advanced-studio-online/./node_modules/react-is/cjs/react-is.development.js","webpack://advanced-studio-online/./node_modules/react-is/index.js","webpack://advanced-studio-online/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://advanced-studio-online/./node_modules/react-select/dist/react-select.esm.js","webpack://advanced-studio-online/./node_modules/react-transition-group/CSSTransition.js","webpack://advanced-studio-online/./node_modules/react-transition-group/ReplaceTransition.js","webpack://advanced-studio-online/./node_modules/react-transition-group/Transition.js","webpack://advanced-studio-online/./node_modules/react-transition-group/TransitionGroup.js","webpack://advanced-studio-online/./node_modules/react-transition-group/index.js","webpack://advanced-studio-online/./node_modules/react-transition-group/utils/ChildMapping.js","webpack://advanced-studio-online/./node_modules/react-transition-group/utils/PropTypes.js","webpack://advanced-studio-online/./node_modules/stylis-rule-sheet/index.js","webpack://advanced-studio-online/external this \"React\"","webpack://advanced-studio-online/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://advanced-studio-online/./node_modules/classnames/index.js","webpack://advanced-studio-online/webpack/bootstrap","webpack://advanced-studio-online/webpack/runtime/compat get default export","webpack://advanced-studio-online/webpack/runtime/define property getters","webpack://advanced-studio-online/webpack/runtime/global","webpack://advanced-studio-online/webpack/runtime/hasOwnProperty shorthand","webpack://advanced-studio-online/webpack/runtime/make namespace object","webpack://advanced-studio-online/webpack/before-startup","webpack://advanced-studio-online/webpack/startup","webpack://advanced-studio-online/webpack/after-startup"],"sourcesContent":["/* eslint-disable */\n// murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash2_32_gc(str) {\n var l = str.length,\n h = l ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return (h >>> 0).toString(36);\n}\n\nexport default murmurhash2_32_gc;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e, m).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e, m).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n switch (d.constructor) {\n case Array:\n for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n }\n\n break;\n\n case Function:\n S[A++] = d;\n break;\n\n case Boolean:\n Y = !!d | 0;\n }\n\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","\"use strict\";\r\n\r\nif (!Object.assign) {\r\n\tObject.assign = require(\"object-assign\");\r\n}\r\n\r\n// These are the bulk of the components used on the constituent side, made available as asoComponents.js\r\nvar exports = Object.assign({},\r\n\trequire(\"./analytics/StudioOnlineAnalytics\"),\r\n\trequire(\"./commonComponents/expose\"),\r\n\trequire(\"./checkoutComponents/ExposedCheckoutComponents\"),\r\n\trequire(\"./contactUsComponents/expose\"),\r\n\trequire(\"./searchComponents/expose\"),\r\n\trequire(\"./accountComponents/expose\"));\r\n\r\nmodule.exports = exports;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AbstractPledgeManagementHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\nvar PledgeStatementHelper = require(\"./PledgeStatementHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\nvar MyRecurringRefresh = require(\"./MyRecurringRefresh\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar AbstractPledgeManagementHelper = class {\r\n\tconstructor(options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (this.constructor === AbstractPledgeManagementHelper) {\r\n\t\t\tthrow new TypeError(\"Cannot construct AbstractPledgeManagementHelper instances directly!\");\r\n\t\t}\r\n\r\n\t\t// private properties\r\n\t\tthis._cancelPledgeEditLinkMessageMapper = options.cancelPledgeEditLinkMessageMapper;\r\n\t\tthis._cancelWholePledgeLinkMessageMapper = options.cancelWholePledgeLinkMessageMapper;\r\n\t\tthis._componentSelector = options.componentSelector;\r\n\t\tthis._displayMessagesWizard = options.displayMessagesWizard;\r\n\t\tthis._donateToAllCheckboxComponentName = options.donateToAllCheckboxComponentName;\r\n\t\tthis._donateToAllCheckboxSelector = options.donateToAllCheckboxSelector;\r\n\t\tthis._donateToAllCheckboxInputSelector = options.donateToAllCheckboxInputSelector || options.donateToAllCheckboxSelector;\r\n\t\tthis._donateToSingleCheckboxComponentName = options.donateToSingleCheckboxComponentName;\r\n\t\tthis._donateToSingleCheckboxSelector = options.donateToSingleCheckboxSelector;\r\n\t\tthis._donateToSingleCheckboxInputSelector = options.donateToSingleCheckboxInputSelector || options.donateToSingleCheckboxSelector;\r\n\t\tthis._editMyPledgeLinkMessageMapper = options.editMyPledgeLinkMessageMapper;\r\n\t\tthis._makeDonationSelector = options.makeDonationSelector;\r\n\t\tthis._myRecurringPopulatedSingleRecurringSelector = options.myRecurringPopulatedSingleRecurringSelector;\r\n\t\tthis._myRecurringSelector = options.myRecurringSelector;\r\n\t\tthis._singlePledgeEditComponentName = options.singlePledgeEditComponentName;\r\n\t\tthis._singlePledgeSelector = options.singlePledgeSelector;\r\n\t\tthis._singlePledgeEditSelector = options.singlePledgeEditSelector;\r\n\t\tthis._singlePledgeEditAmountSelector = options.singlePledgeEditAmountSelector;\r\n\r\n\t\t// private methods\r\n\t\tthis._donateToAllClicked = (event, isDesignMode) => {\r\n\t\t\tif (isDesignMode && (!event.ctrlKey && !event.metaKey)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $checkbox = $(event.target);\r\n\t\t\tvar reverseChecked = false;\r\n\t\t\tif (!$checkbox.is(\":input\")) {\r\n\t\t\t\t$checkbox = $checkbox.closest(this.donateToAllCheckboxSelector).find(this.donateToAllCheckboxInputSelector);\r\n\t\t\t\treverseChecked = true;\r\n\t\t\t}\r\n\t\t\tvar isChecked = $checkbox.prop(\"checked\");\r\n\t\t\tif (reverseChecked) {\r\n\t\t\t\tisChecked = !isChecked;\r\n\t\t\t}\r\n\t\t\tvar $component = $checkbox.closest(this.componentSelector);\r\n\r\n\t\t\t$component.find(this.donateToAllCheckboxInputSelector).prop(\"checked\", isChecked);\r\n\t\t\t$component.find(`${this.donateToSingleCheckboxInputSelector}:not(:disabled)`).prop(\"checked\", isChecked);\r\n\t\t};\r\n\r\n\t\tthis._donateToSingleClicked = (event, isDesignMode) => {\r\n\t\t\tif (isDesignMode && (!event.ctrlKey && !event.metaKey)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $checkbox = $(event.target);\r\n\t\t\tvar reverseChecked = false;\r\n\t\t\tif (!$checkbox.is(\":input\")) {\r\n\t\t\t\t$checkbox = $checkbox.closest(this.donateToSingleCheckboxSelector).find(this.donateToSingleCheckboxInputSelector);\r\n\t\t\t\treverseChecked = true;\r\n\t\t\t}\r\n\t\t\tvar isChecked = $checkbox.prop(\"checked\");\r\n\t\t\tif (reverseChecked) {\r\n\t\t\t\tisChecked = !isChecked;\r\n\t\t\t}\r\n\r\n\t\t\t$checkbox.prop(\"checked\", isChecked);\r\n\t\t};\r\n\r\n\t\tthis._getEventOrReturn = (event, isDesignModeMessage, isDesignMode) => {\r\n\t\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode != null ? isDesignMode : AccountStore.get(\"isDesignMode\"), isDesignModeMessage, /*preventDefaultInDesignMode*/false); //coersion, because we want to check for null or undefined\r\n\t\t};\r\n\r\n\t\tthis._refreshAssociatedRecurringHtml = pledgeId => {\r\n\t\t\t//We first need to get the recurring container, then we can iterate through each recurring and update it if needed.\r\n\t\t\tvar $recurringContainer = $(this.myRecurringSelector);\r\n\t\t\tvar promises = [];\r\n\r\n\t\t\tvar $recurringDonations = $recurringContainer.find(`[data-pledge-id=\"${pledgeId}\"]`);\r\n\r\n\t\t\t$recurringDonations.each((index, element) => {\r\n\t\t\t\tvar deferred = new $.Deferred();\r\n\t\t\t\tvar recurringDonationId = $(element).attr(\"data-donation-id\");\r\n\r\n\t\t\t\tMyRecurringRefresh.getMyRecurringHtml(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttarget: $(element).closest(this.myRecurringPopulatedSingleRecurringSelector)\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/*isEditing*/ false,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdonationId: recurringDonationId,\r\n\t\t\t\t\t\tusingDonations: true,\r\n\t\t\t\t\t\tusingHeader: true\r\n\t\t\t\t\t}\r\n\t\t\t\t).done(() => {\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpromises.push(deferred);\r\n\t\t\t});\r\n\r\n\t\t\treturn $.when.apply(undefined, promises).promise();\r\n\t\t};\r\n\r\n\t\tthis._resolveError = (jqXHR, textStatus, deferred) => {\r\n\t\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t}\r\n\r\n\t\t\tif (deferred) {\r\n\t\t\t\tdeferred.reject(jqXHR, textStatus);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t// public getters for private properties\r\n\tget cancelPledgeEditLinkMessageMapper() {\r\n\t\treturn this._cancelPledgeEditLinkMessageMapper;\r\n\t}\r\n\r\n\tget cancelWholePledgeLinkMessageMapper() {\r\n\t\treturn this._cancelWholePledgeLinkMessageMapper;\r\n\t}\r\n\r\n\tget componentSelector() {\r\n\t\treturn this._componentSelector;\r\n\t}\r\n\r\n\tget displayMessagesWizard() {\r\n\t\treturn this._displayMessagesWizard;\r\n\t}\r\n\r\n\tget donateToAllCheckboxComponentName() {\r\n\t\treturn this._donateToAllCheckboxComponentName;\r\n\t}\r\n\r\n\tget donateToAllCheckboxSelector() {\r\n\t\treturn this._donateToAllCheckboxSelector;\r\n\t}\r\n\r\n\tget donateToAllCheckboxInputSelector() {\r\n\t\treturn this._donateToAllCheckboxInputSelector;\r\n\t}\r\n\r\n\tget donateToSingleCheckboxComponentName() {\r\n\t\treturn this._donateToSingleCheckboxComponentName;\r\n\t}\r\n\r\n\tget donateToSingleCheckboxSelector() {\r\n\t\treturn this._donateToSingleCheckboxSelector;\r\n\t}\r\n\r\n\tget donateToSingleCheckboxInputSelector() {\r\n\t\treturn this._donateToSingleCheckboxInputSelector;\r\n\t}\r\n\r\n\tget editMyPledgeLinkMessageMapper() {\r\n\t\treturn this._editMyPledgeLinkMessageMapper;\r\n\t}\r\n\r\n\tget makeDonationSelector() {\r\n\t\treturn this._makeDonationSelector;\r\n\t}\r\n\r\n\tget myRecurringPopulatedSingleRecurringSelector() {\r\n\t\treturn this._myRecurringPopulatedSingleRecurringSelector;\r\n\t}\r\n\r\n\tget myRecurringSelector() {\r\n\t\treturn this._myRecurringSelector;\r\n\t}\r\n\r\n\tget singlePledgeEditComponentName() {\r\n\t\treturn this._singlePledgeEditComponentName;\r\n\t}\r\n\r\n\tget singlePledgeSelector() {\r\n\t\treturn this._singlePledgeSelector;\r\n\t}\r\n\r\n\tget singlePledgeEditSelector() {\r\n\t\treturn this._singlePledgeEditSelector;\r\n\t}\r\n\r\n\tget singlePledgeEditAmountSelector() {\r\n\t\treturn this._singlePledgeEditAmountSelector;\r\n\t}\r\n\r\n\t//public methods\r\n\tgetComponentHtml(event, newPledgeId, retrievePledgeApiFunction) {\r\n\t\tif(typeof retrievePledgeApiFunction != \"function\") {\r\n\t\t\tthrow new Error(`${this.constructor}.getComponentHtml() requires retrievePledgeApiFunction to be a function.`);\r\n\t\t}\r\n\r\n\t\tvar deferred = new $.Deferred();\r\n\t\tvar $currentPledge = $(event.target).closest(this.singlePledgeSelector);\r\n\t\tvar pledgeId = newPledgeId || $currentPledge.attr(\"data-pledge-id\");\r\n\t\tvar componentId = $currentPledge.closest(this.componentSelector).attr(\"id\");\r\n\r\n\t\tretrievePledgeApiFunction($currentPledge, pledgeId, componentId, deferred);\r\n\r\n\t\treturn deferred;\r\n\t}\r\n\r\n\tcancelPledgeEdit(event, getPledgeViewData) {\r\n\t\tif (typeof getPledgeViewData != \"function\") {\r\n\t\t\tthrow new Error(`${this.constructor}.cancelPledgeEdit() requires getPledgeViewData to be a function.`);\r\n\t\t}\r\n\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(this.cancelPledgeEditLinkMessageMapper));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $currentPledge = $(event.target).closest(this.singlePledgeSelector);\r\n\t\tSpinner.showSpinner($currentPledge);\r\n\r\n\t\tgetPledgeViewData($currentPledge);\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tcancelWholePledge(event, cancelPledgeApiFunction) {\r\n\t\tif (typeof cancelPledgeApiFunction != \"function\") {\r\n\t\t\tthrow new Error(`${this.constructor}.cancelWholePledge() requires cancelPledgeApiFunction to be a function.`);\r\n\t\t}\r\n\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(this.cancelWholePledgeLinkMessageMapper));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tBootstrapPrompt.confirm({\r\n\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\tmessage: AccountStore.get(this.displayMessagesWizard).cancelPledge,\r\n\t\t\ttitle: \"\"\r\n\t\t}, (result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t\tvar $currentPledge = $(event.target).closest(this.singlePledgeSelector);\r\n\t\t\t\tvar pledgeId = $currentPledge.attr(\"data-pledge-id\");\r\n\r\n\t\t\t\tcancelPledgeApiFunction($currentPledge, pledgeId);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\teditPledge(event, getPledgeEditData) {\r\n\t\tif (typeof getPledgeEditData != \"function\") {\r\n\t\t\tthrow new Error(`${this.constructor}.editPledge() requires getPledgeEditData to be a function.`);\r\n\t\t}\r\n\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(this.editMyPledgeLinkMessageMapper));\r\n\t\tif (!event || this.alreadyEditingHeader) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $currentPledge = $(event.target).closest(this.singlePledgeSelector);\r\n\t\tSpinner.showSpinner($currentPledge);\r\n\t\tgetPledgeEditData($currentPledge);\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tmakeDonation(event, isDesignMode, makeDonationApiFunction) {\r\n\t\tif (typeof makeDonationApiFunction != \"function\") {\r\n\t\t\tthrow new Error(`${this.constructor}.makeDonation() requires makeDonationApiFunction to be a function.`);\r\n\t\t}\r\n\r\n\t\tevent = this._getEventOrReturn(event, \"Make Donation called successfully.\", isDesignMode);\r\n\t\tif (!event || this.alreadyEditingHeader) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar isInPledgeStatementSession = AccountStore.get(\"isInPledgeStatementSession\");\r\n\t\tvar pledgeStatementEntryWizard = AccountStore.get(WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY);\r\n\r\n\t\tPledgeStatementHelper.confirmAbandonPledgeStatementSession(isInPledgeStatementSession, pledgeStatementEntryWizard).done(() => {\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\tvar $component = $(event.target).closest(this.componentSelector);\r\n\t\t\tvar pledgeIds = $component.find(`${this.donateToSingleCheckboxInputSelector}:checked`).closest(this.singlePledgeSelector).map((index, element) => {\r\n\t\t\t\treturn $(element).attr(\"data-pledge-id\");\r\n\t\t\t}).get();\r\n\r\n\t\t\tif (!pledgeIds || !pledgeIds.length) {\r\n\t\t\t\tvar errorMessage = AccountStore.get(this.displayMessagesWizard).makeDonationSelectionRequired;\r\n\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tmakeDonationApiFunction(pledgeIds);\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tinitializeComponent($component, isDesignMode) {\r\n\t\t//Need to disable the checkbox if we cannot donate to the pledge. This happens when the pledge does not have a defaultProjectCode.\r\n\t\t$component = $($component || \"body\");\r\n\t\t$component.find(this.donateToSingleCheckboxSelector).each((index, element) => {\r\n\t\t\tvar $checkbox = $(element);\r\n\r\n\t\t\tif ($checkbox.closest(this.singlePledgeSelector).attr(\"data-can-donate\") === \"false\") {\r\n\t\t\t\t$checkbox.prop(\"disabled\", true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//If we check a Donate to All checkbox, check all Donate to All and all Donate to Single checkboxes (that are not disabled)\r\n\t\t$component.find(this.donateToAllCheckboxSelector).off(\"click.myPledges\", this._donateToAllClicked).on(\"click.myPledges\",event => {\r\n\t\t\tthis._donateToAllClicked(event, isDesignMode);\r\n\t\t});\r\n\t\t//If we uncheck a Donate To Single, uncheck all Donate to All checkboxes.\r\n\t\t$component.find(this.donateToSingleCheckboxSelector).off(\"click.myPledges\", this._donateToSingleClicked).on(\"click.myPledges\",event => {\r\n\t\t\tthis._donateToSingleClicked(event, isDesignMode);\r\n\t\t});\r\n\r\n\t\t//Correcting the for attribute on checkbox labels\r\n\t\tInputHelper.prepareCheckboxAndLabel($component, this.donateToAllCheckboxComponentName, this.singlePledgeSelector);\r\n\t\tInputHelper.prepareCheckboxAndLabel($component, this.donateToSingleCheckboxComponentName, this.singlePledgeSelector);\r\n\r\n\t\tthis.initializePledgeButtons($component, isDesignMode);\r\n\t}\r\n\r\n\tinitializePledgeButtons($component, isDesignMode) {\r\n\t\t//Setting onclick on the MakeDonation button\r\n\t\t$component.find(this.makeDonationSelector).addBack(this.makeDonationSelector).off(\"click.myPledges\", this.makeDonation).on(\"click.myPledges\", event => {\r\n\t\t\tthis.makeDonation(event, isDesignMode);\r\n\t\t});\r\n\t}\r\n\r\n\tinitializeEdit($component) {\r\n\t\tInputHelper.initializeAmountInput($component || $(this.componentSelector), this.singlePledgeEditAmountSelector);\r\n\t}\r\n\r\n\tsave(event, savePledgeApiFunction) {\r\n\t\tif (typeof savePledgeApiFunction != \"function\") {\r\n\t\t\tthrow new Error(`${this.constructor}.save() requires savePledgeApiFunction to be a function.`);\r\n\t\t}\r\n\r\n\t\tevent = this._getEventOrReturn(event, \"Save Pledge called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar $currentPledge = $(event.target).closest(this.singlePledgeSelector);\r\n\t\tvar pledgeId = $currentPledge.attr(\"data-pledge-id\");\r\n\t\tvar componentId = $currentPledge.closest(this.componentSelector).attr(\"id\");\r\n\r\n\t\tvar $editPledgeForm = $(event.target).closest(this.singlePledgeEditSelector).find(`form#${this.editMyPledgeLinkMessageMapper}-${pledgeId}`);\r\n\t\tvar editPledgeData = ActionsHelper.serializeForm($editPledgeForm);\r\n\r\n\t\tvar errorMessage;\r\n\t\t//Check if the donation amount is greater than zero\r\n\t\tif (editPledgeData.amount) {\r\n\t\t\teditPledgeData.amount = ActionsHelper.convertFormattedAmountToNumber(editPledgeData.amount);\r\n\t\t\tif (!(Number(editPledgeData.amount) > 0)) {\r\n\t\t\t\terrorMessage = AccountStore.get(this.displayMessagesWizard).pledgeAmountGreaterThanZero;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (errorMessage) {\r\n\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tsavePledgeApiFunction($currentPledge, pledgeId, componentId, editPledgeData);\r\n\r\n\t\treturn false;\r\n\t}\r\n};\r\n\r\nmodule.exports = AbstractPledgeManagementHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountActions\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountDemographicsHelper = require(\"../commonComponents/AccountDemographicsHelper\");\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar AccountCommunicationsHelper = require(\"./AccountCommunicationsHelper\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\nvar Dispatcher = require(\"./Dispatcher\");\r\nvar DocumentsHelper = require(\"./DocumentsHelper\");\r\nvar GivingStatementHelper = require(\"./GivingStatementHelper\");\r\nvar PhoneNumberHelper = require(\"./PhoneNumberHelper\");\r\nvar PledgeStatementHelper = require(\"./PledgeStatementHelper\");\r\nvar ReportsHelper = require(\"./ReportsHelper\");\r\nvar SmartyStreets = require(\"./SmartyStreets\");\r\nvar SavedPaymentHelper = require(\"./SavedPaymentHelper\");\r\nvar MyRelationshipPledgesHelper = require(\"./MyRelationshipPledgesHelper\");\r\n\r\nvar setProperty = (model, propertyName, propertyValue) => {\r\n\tvar propertyParts = propertyName.split(\".\");\r\n\tvar ref = model;\r\n\tpropertyParts.forEach(function (propertyPart, index) {\r\n\t\tif (index < propertyParts.length - 1) {\r\n\t\t\tif (!ref[propertyPart]) {\r\n\t\t\t\tref[propertyPart] = {};\r\n\t\t\t}\r\n\t\t\tref = ref[propertyPart];\r\n\t\t} else {\r\n\t\t\tref[propertyPart] = propertyValue;\r\n\t\t};\r\n\t});\r\n};\r\n\r\n/*\r\n\tCurrently this is the only place where I see this being needed.\r\n\tIf we find another use for it, it should probably be moved to\r\n\ta shared location/utility class.\r\n*/\r\nvar _parseUri = (uri) => {\r\n\tvar anchorTag = document.createElement(\"a\");\r\n\tanchorTag.href = uri;\r\n\r\n\treturn {\r\n\t\thost: anchorTag.host,\r\n\t\thref: anchorTag.href\r\n\t};\r\n};\r\n\r\nvar AccountActions = {\r\n\tinitializeAccount: function (options) {\r\n\t\toptions = options || {};\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\r\n\t\t\tif (!options.isDesignMode) {\r\n\t\t\t\tSmartyStreets.initializeForPrimaryContactInformation();\r\n\t\t\t\tSmartyStreets.initializeForOtherAddressesAdd();\r\n\t\t\t\tAccountActions.initializePhoneNumberGroupComponent(options.primaryAddressCountry);\r\n\t\t\t\tAccountActions.initializeProductDownloadUrl();\r\n\t\t\t\tGivingStatementHelper.initializeGivingStatementRequestForm();\r\n\t\t\t\tMyRecurringHelper.initializeMyRecurring();\r\n\t\t\t\tMyPledgesHelper.initializeMyPledges();\r\n\t\t\t\tMyRelationshipPledgesHelper.initializeMyRelationshipPledges();\r\n\t\t\t\tMySponsorshipsHelper.initializeMySponsorships();\r\n\t\t\t\tSavedPaymentHelper.initializeSavedPayments(/*isCheckout*/false);\r\n\t\t\t}\r\n\t\t\tAccountActions.initializeSpouseInformationComponent();\r\n\t\t});\r\n\t\tAccountActions.initializeStore(options);\r\n\t},\r\n\r\n\tinitializeStore: function (options) {\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\r\n\t\t\tif (!options.isDesignMode) {\r\n\t\t\t\tPaymentHelper.initializePaymentComponent();\r\n\t\t\t}\r\n\r\n\t\t\tDocumentsHelper.initialize(options.isDesignMode);\r\n\t\t});\r\n\r\n\t\tif ((options.wizardAddressStandardization || {}).isEnabled) {\r\n\t\t\tAccountApi.getAutoAddStateAndPostalCodesControlRecord().done((controlRecord) => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: AccountConstants.SET_AUTO_ADD_STATE_AND_POSTAL_CODES,\r\n\t\t\t\t\tisAutoAddStateAndPostalCodes: controlRecord.value === \"Y\"\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tDispatcher.dispatch(Object.assign({\r\n\t\t\tactionType: Constants.ACCOUNT_INITIALIZE\r\n\t\t}, options));\r\n\r\n\t\tAccountActions.initializeAccountType();\r\n\t\tAccountActions.initializeDemographics();\r\n\t\tAccountActions.initializeAccountMediaForm();\r\n\t\tAccountActions.initializeAccountCommunicationForm(options);\r\n\t\tAccountActions.initializeReports(options);\r\n\t},\r\n\r\n\tisDesignMode: function() {\r\n\t\treturn AccountStore.get(\"isDesignMode\");\r\n\t},\r\n\r\n\tchangePassword: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Password change called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\tvar currentPassword = $(event.target).find(\"input[name='currentPassword']\").val();\r\n\t\t\tvar newPassword = $(event.target).find(\"input[name='newPassword']\").val();\r\n\t\t\tvar confirmPassword = $(event.target).find(\"input[name='confirmPassword']\").val();\r\n\r\n\t\t\tif (newPassword !== confirmPassword) {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.ACCOUNT_PASSWORDS_MISMATCH\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar options = {\r\n\t\t\t\tcurrentPassword,\r\n\t\t\t\tnewPassword\r\n\t\t\t};\r\n\r\n\t\t\tAccountFormHelper.encodePassword(options, \"currentPassword\");\r\n\t\t\tAccountFormHelper.encodePassword(options, \"newPassword\");\r\n\r\n\t\t\tAccountApi.changePassword(options).then(() => {\r\n\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='changePasswordForm']\");\r\n\t\t\t}, (jqHXR) => {\r\n\t\t\t\tvar message = ((jqHXR || {}).responseJSON || {}).message || AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.PASSWORD_CHANGE_ERROR\r\n\t\t\t\t);\r\n\t\t\t\tBootstrapPrompt.alert(message);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tchangePrimaryContactInformation: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Primary contact information change called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar components = [\r\n\t\t\t\t$(event.target).closest(\"[data-component='primaryContactInformation']\")\r\n\t\t\t];\r\n\r\n\t\t\tvar savedPaymentsDisplayMessagesWizard = AccountStore.get(\"wizardSavedPaymentsDisplayMessages\") || {};\r\n\t\t\tvar $singleAddress = $(event.target).closest(\"[data-component='primaryContactInformation']\");\r\n\r\n\t\t\tvar that = this;\r\n\t\t\tvar submitPrimaryContactInformation = function (data, shouldUpdateSavedPayments) {\r\n\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\t\tif (!isValid) {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tSmartyStreets.verifyAddress(\"primaryContactInformation\").done(() => {\r\n\t\t\t\t\t\tdata.address.shouldUpdateSavedPayments = shouldUpdateSavedPayments;\r\n\r\n\t\t\t\t\t\tAccountApi.changePrimaryContactInformation(data).done(() => {\r\n\t\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='primaryContactInformation']\", {\r\n\t\t\t\t\t\t\t\tshouldForceReloadOnStay: data.address.haveAddressDefaultsChanged || shouldUpdateSavedPayments === false\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthat.serializePrimaryContactInformationForm().always(data => {\r\n\t\t\t\tif ($singleAddress.attr(\"data-is-saved-payment-billing-address\") === \"True\" && data.address.hasAddressChanged) {\r\n\t\t\t\t\tBootstrapPrompt.show({\r\n\t\t\t\t\t\tmessage: savedPaymentsDisplayMessagesWizard.savedPaymentAddressEditPromptText,\r\n\t\t\t\t\t\tbuttons: [{\r\n\t\t\t\t\t\t\tlabel: window.BUTTON_LABELS.YES,\r\n\t\t\t\t\t\t\taction: (dialog) => {\r\n\t\t\t\t\t\t\t\tdialog.close();\r\n\t\t\t\t\t\t\t\tsubmitPrimaryContactInformation(data, /*shouldUpdateSavedPayments*/ true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tlabel: window.BUTTON_LABELS.NO,\r\n\t\t\t\t\t\t\taction: (dialog) => {\r\n\t\t\t\t\t\t\t\tdialog.close();\r\n\t\t\t\t\t\t\t\tsubmitPrimaryContactInformation(data, /*shouldUpdateSavedPayments*/ false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tlabel: window.BUTTON_LABELS.CANCEL,\r\n\t\t\t\t\t\t\taction: (dialog) => {\r\n\t\t\t\t\t\t\t\tdialog.close();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}]\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsubmitPrimaryContactInformation(data, /*shouldUpdateSavedPayments*/ null);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tchangeSpouseInformation: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Spouse information change called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar components = [\r\n\t\t\t\t$(event.target).closest(\"[data-component='spouseInformation']\")\r\n\t\t\t];\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar data = ActionsHelper.serializeForm(\"[data-component='spouseInformation'] form#spouseInformationForm\");\r\n\r\n\t\t\t\tAccountApi.changeSpouseInformation(data).done(() => {\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='spouseInformation']\");\r\n\t\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t}).always(() => Spinner.removeSpinner());\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tsaveAccountMedia: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Account Media Form save called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar components = [$(event.target).closest(\"form#accountMediaForm\")];\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar data = ActionsHelper.serializeForm($(event.target).closest(\"form#accountMediaForm\"));\r\n\r\n\t\t\t\tAccountApi.saveAccountMedia(data).done(() => {\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='accountMediaForm']\");\r\n\t\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t}).always(() => Spinner.removeSpinner());\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tcreateAccount: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Account creation action called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar components = [\r\n\t\t\t\t$(\"[data-component='accountDemographicsForm']\"),\r\n\t\t\t\t$(\"[data-component='accountMediaForm']\"),\r\n\t\t\t\t$(event.target).closest(\"[data-component='createAccountForm']\")\r\n\t\t\t];\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tSmartyStreets.verifyAddress(\"createAccountForm\").done(() => {\r\n\t\t\t\t\tvar passwordVerificationResult = this.verifyCreateAccountPasswords();\r\n\t\t\t\t\tif (!passwordVerificationResult.isVerified) {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tAccountFormHelper.serializeDataNecessaryToCreateAnAccount().always(accountData => {\r\n\t\t\t\t\t\tAccountApi.createAccount(accountData).then((apiData) => {\r\n\t\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='createAccountForm']\");\r\n\t\t\t\t\t\t}, (jqXHR) => {\r\n\t\t\t\t\t\t\t// Message is nested a layer deeper than usual because the SO AccountController returns\r\n\t\t\t\t\t\t\t// an ObjectResponse that contains the result of the SE API call.\r\n\t\t\t\t\t\t\t// TODO - US#5036 Enhance error handling for ASO account creation messages.\r\n\r\n\t\t\t\t\t\t\tthis.handleAccountCreateResponse(\r\n\t\t\t\t\t\t\t\tjqXHR.responseJSON,\r\n\t\t\t\t\t\t\t\ttrue /* hideSpinner */\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\thandleAccountCreateResponse: function(apiResponse, hideSpinner) {\r\n\t\tAccountFormHelper.handleAccountCreateResponse(\r\n\t\t\tAccountStore,\r\n\t\t\tapiResponse,\r\n\t\t\thideSpinner\r\n\t\t);\r\n\t},\r\n\r\n\tdeleteSavedPayment: function (paymentRecordId) {\r\n\t\tSavedPaymentHelper.deleteSavedPayment(paymentRecordId);\r\n\t},\r\n\r\n\tperformLogin: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Login action called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t//pull login form data\r\n\t\t\tvar data = $(\"[data-component='loginForm'] form\").serializeArray().reduce((obj, item) => {\r\n\t\t\t\tsetProperty(obj, item.name, item.value);\r\n\t\t\t\treturn obj;\r\n\t\t\t}, {});\r\n\t\t\tAccountFormHelper.encodePassword(data);\r\n\r\n\t\t\tvar actionData = SubmitButtonHelper.getPostSubmitActionData(\"[data-component='loginForm']\");\r\n\r\n\t\t\tAccountApi.performLogin(data).then(() => {\r\n\t\t\t\tvar accountStoreState = AccountStore.getState();\r\n\t\t\t\tvar runFallbackAction = false;\r\n\r\n\t\t\t\tif (actionData.returnToReferrer) {\r\n\t\t\t\t\t// check previous URL\r\n\t\t\t\t\tif (document.referrer === \"\") {\r\n\t\t\t\t\t\trunFallbackAction = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar referrer = _parseUri(document.referrer);\r\n\t\t\t\t\t\tvar currentUrl = _parseUri(window.location.href);\r\n\r\n\t\t\t\t\t\tif (referrer.host !== currentUrl.host) {\r\n\t\t\t\t\t\t\tvar isValidReferrer = false;\r\n\r\n\t\t\t\t\t\t\t// check the whitelist\r\n\t\t\t\t\t\t\tvar domainWhitelist = accountStoreState.domainWhitelist;\r\n\t\t\t\t\t\t\tif (domainWhitelist.length) {\r\n\t\t\t\t\t\t\t\tisValidReferrer = domainWhitelist.some((domainString) => referrer.host === domainString);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (isValidReferrer) {\r\n\t\t\t\t\t\t\t\twindow.location.href = referrer.href;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\trunFallbackAction = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// The only scenario we don't want to navigate back to is /resetpassword\r\n\t\t\t\t\t\t\tif (referrer.href.toLowerCase().indexOf(\"/resetpassword\") !== -1) {\r\n\t\t\t\t\t\t\t\trunFallbackAction = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// perform navigation to referring URL.\r\n\t\t\t\t\t\t\t\twindow.location.href = referrer.href;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!actionData.returnToReferrer || runFallbackAction) {\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='loginForm']\", { actionData });\r\n\t\t\t\t}\r\n\t\t\t}, /* failure callback */ (jqXHR) => {\r\n\t\t\t\tif (jqXHR.status === 403) {\r\n\t\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.LOGIN_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.LOGIN_MESSAGE_FIELDS.LOGIN_ERROR\r\n\t\t\t\t\t));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tresetPassword: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Reset password action called successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\tvar newPassword = $(event.target).find(\"input[name='newPassword']\").val();\r\n\t\t\tvar confirmPassword = $(event.target).find(\"input[name='confirmPassword']\").val();\r\n\t\t\tvar resetToken = ApiHelper.getUrlParameter(\"resetToken\");\r\n\t\t\tvar emailAddress = ApiHelper.getUrlParameter(\"emailAddress\");\r\n\r\n\r\n\t\t\tif (newPassword !== confirmPassword) {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.ACCOUNT_PASSWORDS_MISMATCH\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (emailAddress === null || emailAddress === undefined) {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.EMAIL_MISSING\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (resetToken === null || resetToken === undefined) {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.RESET_TOKEN_MISSING\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar options = {\r\n\t\t\t\temailAddress,\r\n\t\t\t\tnewPassword,\r\n\t\t\t\tresetToken\r\n\t\t\t};\r\n\r\n\t\t\tAccountFormHelper.encodePassword(options, \"newPassword\");\r\n\t\t\tAccountFormHelper.encodePassword(options, \"confirmPassword\");\r\n\r\n\t\t\tAccountApi.resetPassword(options).done(() => {\r\n\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='resetPasswordForm']\");\r\n\t\t\t}).fail((response) => {\r\n\t\t\t\tvar message = ((response || {}).responseJSON || {}).message || AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.PASSWORD_CHANGE_ERROR\r\n\t\t\t\t);\r\n\t\t\t\tBootstrapPrompt.alert(message);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tsendPasswordResetEmail: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Password reset email sent successfully.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\tvar $emailInput = $(event.target).find(\"input[name='emailAddress']\");\r\n\r\n\t\t\tAccountApi.sendPasswordResetEmail($emailInput.val()).done(() => {\r\n\t\t\t\tvar postActionUndefinedOrNoMessage = () => {\r\n\t\t\t\t\t// If there is a forgotPasswordSubmitMessage defined, show it.\r\n\t\t\t\t\t$(\"[data-component='forgotPasswordForm'] [data-component='forgotPasswordForm.submitMessage']\").show();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='forgotPasswordForm']\", {\r\n\t\t\t\t\tonNoPostSubmitAction: postActionUndefinedOrNoMessage,\r\n\t\t\t\t\tonNoStayMessage: postActionUndefinedOrNoMessage\r\n\t\t\t\t});\r\n\t\t\t}).fail((response) => {\r\n\t\t\t\tvar message = ((response || {}).responseJSON || {}).message || AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.FORGOT_PASSWORD_ERROR\r\n\t\t\t\t);\r\n\t\t\t\tBootstrapPrompt.alert(message);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tprocessAddSavedPaymentToAccount: function (event) {\r\n\t\tSavedPaymentHelper.addSavedPaymentToAccount(event);\r\n\t},\r\n\r\n\tshowAddNewPayment: function (event) {\r\n\t\tSavedPaymentHelper.handleAddNewPaymentLinkClick(event);\r\n\t},\r\n\r\n\tsubmitPledgeStatementForm: function (event) {\r\n\t\tPledgeStatementHelper.submitPledgeStatementForm(event);\r\n\t},\r\n\r\n\tgetAccountType: function(accountData) {\r\n\t\treturn AccountApi.getAccountType(accountData);\r\n\t},\r\n\r\n\tgetAccountCodes: function() {\r\n\t\treturn AccountStore.get(\"accountCodes\");\r\n\t},\r\n\r\n\tgetLoggedInAccount: function () {\r\n\t\tvar account = AccountStore.get(\"account\");\r\n\t\tif (account && account.loggedInStatus === \"loggedIn\") {\r\n\t\t\taccount.otherAddresses = this.getOtherAddresses();\r\n\t\t\treturn account;\r\n\t\t}\r\n\r\n\t\treturn {};\r\n\t},\r\n\r\n\tgetOtherAddresses: function () {\r\n\t\treturn AccountStore.get(\"otherAddresses\");\r\n\t},\r\n\r\n\tgetIsAutoAddStateAndPostalCodes: function (formParentId) {\r\n\t\treturn AccountStore.get(\"isAutoAddStateAndPostalCodes\");\r\n\t},\r\n\r\n\tgetDefaultCountry: function () {\r\n\t\treturn AccountStore.getDefaultCountry();\r\n\t},\r\n\r\n\tgetSelectedCountry: function (formParentId) {\r\n\t\treturn AccountStore.getSelectedCountry(formParentId) || this.getDefaultCountry();\r\n\t},\r\n\r\n\tgetSelectedEmailType: function (formParentId) {\r\n\t\treturn AccountStore.getSelectedEmailType(formParentId);\r\n\t},\r\n\r\n\tgetSelectedOrganizationType: function (formParentId) {\r\n\t\treturn AccountStore.getSelectedOrganizationType(formParentId);\r\n\t},\r\n\r\n\tgetSelectedPaymentType: function(uniqueName) {\r\n\t\treturn AccountStore.getSelectedPaymentType(uniqueName);\r\n\t},\r\n\r\n\tgetSelectedPhoneType: function (formParentId) {\r\n\t\treturn AccountStore.getSelectedPhoneType(formParentId);\r\n\t},\r\n\r\n\tgetSelectedState: function (formParentId) {\r\n\t\treturn AccountStore.getSelectedState(formParentId);\r\n\t},\r\n\r\n\tgetSelectedTitle: function (formParentId) {\r\n\t\treturn AccountStore.getSelectedTitle(formParentId);\r\n\t},\r\n\r\n\tgetSelectedMediaOutlet: function() {\r\n\t\treturn AccountStore.get(\"selectedMediaOutlet\");\r\n\t},\r\n\r\n\tgetPreviousMediaRequest: function() {\r\n\t\treturn AccountStore.get(\"previousMediaRequest\");\r\n\t},\r\n\r\n\tgetAvailableMediaValues: function() {\r\n\t\treturn AccountStore.get(\"availableMediaValues\");\r\n\t},\r\n\r\n\tgetIsFormInputDisabled: function (formParentId) {\r\n\t\tif (!formParentId) {\r\n\t\t\tLoggerInstance.error(\"A 'formParentId' parameter should be passed into getIsFormInputDisabled.\");\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn AccountStore.getIsFormInputDisabled(formParentId);\r\n\t},\r\n\r\n\tgetPlaidDisplayMessages: function () {\r\n\t\treturn AccountStore.get(\"wizardPlaidDisplayMessages\") || {};\r\n\t},\r\n\r\n\tsetSelectedCountry: function (formParentId, selectedCountry) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_COUNTRY,\r\n\t\t\tformParentId,\r\n\t\t\tselectedCountry\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedEmailType: function (formParentId, selectedEmailType) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_EMAIL_TYPE,\r\n\t\t\tformParentId,\r\n\t\t\tselectedEmailType\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedOrganizationType: function (formParentId, selectedOrganizationType) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_ORGANIZATION_TYPE,\r\n\t\t\tformParentId,\r\n\t\t\tselectedOrganizationType\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedPaymentType: function(uniqueName, selectedPaymentType) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_PAYMENT_TYPE,\r\n\t\t\tuniqueName,\r\n\t\t\tselectedPaymentType\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedPhoneType: function (formParentId, selectedPhoneType) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_PHONE_TYPE,\r\n\t\t\tformParentId,\r\n\t\t\tselectedPhoneType\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedState: function (formParentId, selectedState) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_STATE,\r\n\t\t\tformParentId,\r\n\t\t\tselectedState\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedTitle: function (formParentId, selectedTitle) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: AccountConstants.SET_SELECTED_TITLE,\r\n\t\t\tformParentId,\r\n\t\t\tselectedTitle\r\n\t\t});\r\n\t},\r\n\r\n\tsetSelectedMediaOutlet: function (selectedMediaOutlet) {\r\n\t\tAccountStore.setStateByType(AccountConstants.SET_MEDIA_OUTLET, selectedMediaOutlet);\r\n\t},\r\n\r\n\tsetPreviousMediaRequest: function (previousMediaRequest) {\r\n\t\tAccountStore.setStateByType(AccountConstants.SET_PREVIOUS_MEDIA_REQUEST, previousMediaRequest);\r\n\t},\r\n\r\n\tsetAvailableMediaValues: function (availableValues) {\r\n\t\tAccountStore.setStateByType(AccountConstants.SET_AVAILABLE_MEDIA_VALUES, availableValues);\r\n\t},\r\n\r\n\tverifyCreateAccountPasswords: function (doNotShowAlert) {\r\n\t\t// determine if we have a confirmPassword on the form, and if so make sure values match.\r\n\t\tvar $confirmPasswordField = $(\"[data-component='createAccountForm.confirmPassword']\");\r\n\r\n\t\tif ($confirmPasswordField.length) {\r\n\t\t\tvar password = $(\"[data-component='createAccountForm.password']\").val();\r\n\t\t\tvar confirmPassword = $confirmPasswordField.val();\r\n\r\n\t\t\tif (password !== confirmPassword) {\r\n\t\t\t\tvar passwordMismatchErrorMessage = window.AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.ACCOUNT_PASSWORDS_MISMATCH\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (!doNotShowAlert) {\r\n\t\t\t\t\tBootstrapPrompt.alert(passwordMismatchErrorMessage);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisVerified: false, errorMessage: passwordMismatchErrorMessage\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn { isVerified: true };\r\n\t},\r\n\r\n\tserializeCreateGiftAccountForm: function () {\r\n\t\treturn AccountFormHelper.serializeAddressForm(\"[data-component='createGiftAccountForm'] form\", { shouldEncodePassword: false });\r\n\t},\r\n\r\n\tserializeAddOtherAddressForm: function() {\r\n\t\treturn AccountFormHelper.serializeAddressForm(\"[data-component='otherAddresses.addForm'] form\", { shouldEncodePassword: false });\r\n\t},\r\n\r\n\tserializePrimaryContactInformationForm: function () {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\t//Do not need to get mediaOutlet because on the account page, it will either be in the primaryContactInformationForm or in a form of its own with a Submit button.\r\n\t\tvar serializedAddressData = AccountFormHelper.serializeAddressForm(\"[data-component='primaryContactInformation'] form#primaryContactInformationForm\", { shouldEncodePassword: false });\r\n\t\tAccountFormHelper.updateAccountDemographics(serializedAddressData, $(\"[data-component='primaryContactInformation']\")).always(() => {\r\n\t\t\tdeferred.resolve(serializedAddressData);\r\n\t\t});\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tinitializeAccountType: function() {\r\n\t\t// If there are two that are visible\r\n\t\tif ($(\"[data-component='accountType'] > div\").length == 2) {\r\n\t\t\tvar $accountTypeSelect = $(\"[data-component='createAccountForm.accountTypeSelector']\");\r\n\t\t\tif ($(\"[data-component='accountType'] > div:visible\").length > 1) {\r\n\t\t\t\tvar $individual = $(`[data-component='accountType'] > div[data-component='${Constants.ACCOUNT_TYPES.INDIVIDUAL}']`);\r\n\t\t\t\tvar $organization = $(`[data-component='accountType'] > div[data-component='${Constants.ACCOUNT_TYPES.ORGANIZATION}']`);\r\n\t\t\t\tvar individualEmpty = $individual.children().length == 0;\r\n\t\t\t\tvar organizationEmpty = $organization.children().length == 0;\r\n\t\t\t\tif (individualEmpty && !organizationEmpty) {\r\n\t\t\t\t\t$accountTypeSelect.val(\"organization\").trigger(\"change\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$accountTypeSelect.val(\"individual\").trigger(\"change\");\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar selectedValue = $accountTypeSelect.val();\r\n\r\n\t\t\t\tif (!$(`[data-component=\"accountType\"] > div[data-component=\"accountType.${selectedValue}\"]:visible`).length) {\r\n\t\t\t\t\t$accountTypeSelect.trigger(\"change\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeAccountMediaForm: function() {\r\n\t\t$(\"[data-component='accountMediaForm'] form\").off(\"submit.accountMediaForm\");\r\n\t\t$(\"[data-component='accountMediaForm'] form\").on(\"submit.accountMediaForm\", AccountActions.saveAccountMedia.bind(this));\r\n\t},\r\n\r\n\tinitializeAccountCommunicationForm: function (options) {\r\n\t\t$(\"[data-component='accountCommunicationForm'] form\").off(\"submit.accountCommunicationForm\");\r\n\t\t$(\"[data-component='accountCommunicationForm'] form\").on(\"submit.accountCommunicationForm\", AccountActions.createCommunication.bind(this));\r\n\r\n\t\tAccountCommunicationsHelper.initializeNumbers();\r\n\r\n\t\tvar dateFormat = (options.wizardDateFormat && options.wizardDateFormat.dateFormat) || {};\r\n\t\tAccountCommunicationsHelper.initializeDates(dateFormat);\r\n\t},\r\n\r\n\tinitializeReports: function (options) {\r\n\t\tReportsHelper.initialize(options);\r\n\t},\r\n\r\n\tdownloadDocument: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"documentsDownload\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\r\n\t\tvar $document = $(event.target).closest(\"[data-component='documents.populated.document']\");\r\n\t\tvar documentCode = $document.attr(\"data-document-code\");\r\n\r\n\t\tSpinner.showSpinner($document);\r\n\t\tvar shouldOpenPdfDocumentsInNewTab = AccountStore.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.DOCUMENTS_CONFIGURATION,\r\n\t\t\tWizardConstants.DOCUMENTS_COFIGURATION_FIELDS.SHOULD_OPEN_PDF_IN_NEW_TAB\r\n\t\t);\r\n\r\n\t\tAccountApi.downloadDocument(documentCode, undefined, shouldOpenPdfDocumentsInNewTab).fail((statusCode) => {\r\n\t\t\tvar message = AccountStore.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.DOCUMENTS_DISPLAY_MESSAGES,\r\n\t\t\t\tWizardConstants.DOCUMENTS_DISPLAY_MESSAGES_FIELDS.DOWNLOAD_ERROR\r\n\t\t\t);\r\n\r\n\t\t\tswitch (statusCode) {\r\n\t\t\t\tcase 404:\r\n\t\t\t\t\tmessage = AccountStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.DOCUMENTS_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.DOCUMENTS_DISPLAY_MESSAGES_FIELDS.DOWNLOAD_UNAVAILABLE\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 401:\r\n\t\t\t\t\tmessage = AccountStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.DOCUMENTS_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.DOCUMENTS_DISPLAY_MESSAGES_FIELDS.DOWNLOAD_UNAUTHORIZED\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tBootstrapPrompt.alert(message);\r\n\t\t}).always(() => {\r\n\t\t\tSpinner.removeSpinner($document);\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tloadDocumentsPartial: function (event, documentTypeCode) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"documentsLoadPartial\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\r\n\t\tvar $documentsElement = $(event.target).closest(\"[data-component='documents']\");\r\n\r\n\t\tvar options = {\r\n\t\t\tdocumentsComponentId: $documentsElement.attr(\"id\"),\r\n\t\t\texistingBreadcrumb: this._getParentDocumentTypeBreadcrumb($(event.target), $documentsElement)\r\n\t\t};\r\n\r\n\t\tthis._loadDocumentTypes($documentsElement, options, documentTypeCode);\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_loadDocumentTypes: function ($documentsElement, options, documentTypeCode) {\r\n\t\toptions = options || {};\r\n\r\n\t\tSpinner.showSpinner($documentsElement);\r\n\t\tAccountApi.getDocumentTypes(documentTypeCode, options).done((data) => {\r\n\t\t\t$documentsElement.html($(data));\r\n\t\t\tDocumentsHelper.initialize(this.isDesignMode(), $documentsElement);\r\n\t\t\tSpinner.removeSpinner($documentsElement);\r\n\t\t}).fail((jqXHR) => {\r\n\t\t\tjqXHR = jqXHR || {};\r\n\t\t\tswitch (jqXHR.status) {\r\n\t\t\t\tcase 400: // Partial Missing\r\n\t\t\t\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 401: // Unauthorized\r\n\t\t\t\t\tSpinner.removeSpinner($documentsElement);\r\n\r\n\t\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.DOCUMENTS_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.DOCUMENTS_DISPLAY_MESSAGES_FIELDS.DOCUMENT_TYPE_CHANGED\r\n\t\t\t\t\t));\r\n\r\n\t\t\t\t\tthis._loadDocumentTypes($documentsElement, {\r\n\t\t\t\t\t\tdocumentsComponentId: $documentsElement.attr(\"id\")\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\tcase 419: // Authentication Timeout\r\n\t\t\t\t\tSpinner.removeSpinner($documentsElement);\r\n\t\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\t\twindow.location = \"/login\"\r\n\t\t\t\t\treturn;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.DOCUMENTS_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.DOCUMENTS_DISPLAY_MESSAGES_FIELDS.DOCUMENT_TYPE_ERROR\r\n\t\t\t\t\t));\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.removeSpinner($documentsElement);\r\n\t\t});\r\n\t},\r\n\r\n\t_getParentDocumentTypeBreadcrumb: function ($selectedElement, $documents) {\r\n\t\tvar $clickedBreadcrumb = $selectedElement.closest('[data-component=\"hierarchicalBreadcrumb.item\"]');\r\n\t\tif ($clickedBreadcrumb.length) {\r\n\t\t\treturn $clickedBreadcrumb.attr(\"data-breadcrumb-parents\");\r\n\t\t}\r\n\r\n\t\tvar $clickedDocumentType = $selectedElement.closest('[data-component=\"documents.populated.documentType\"]');\r\n\t\tif ($clickedDocumentType.length) {\r\n\t\t\tvar $currentBreadcrumbItems = $documents.find('[data-component=\"hierarchicalBreadcrumb.item\"]');\r\n\t\t\tif ($currentBreadcrumbItems.length > 1) {\r\n\t\t\t\tvar $currentDocumentType = $currentBreadcrumbItems.last();\r\n\t\t\t\tvar parentBreadcrumb = `${$currentDocumentType.attr(\"data-breadcrumb-parents\")}`;\r\n\t\t\t\tvar currentDocumentTypeCode = $currentDocumentType.attr(\"data-document-type-code\");\r\n\t\t\t\tvar currentDocumentTypeTitle = $currentDocumentType.attr(\"data-document-type-title\");\r\n\t\t\t\treturn parentBreadcrumb + `${currentDocumentTypeCode}|${currentDocumentTypeTitle};`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t},\r\n\r\n\tinitializeDemographics: function (options) {\r\n\t\toptions = options || {};\r\n\t\tvar parentSelector = options.parentSelector;\r\n\t\tvar accountCodes = options.accountCodes;\r\n\t\tvar setInitialDirty = options.setInitialDirty;\r\n\r\n\t\tvar accountCodes = accountCodes || AccountStore.get(\"accountCodes\");\r\n\r\n\t\tvar $demographicForms;\r\n\t\tvar $demographicFormsToDefault;\r\n\r\n\t\tif (parentSelector) {\r\n\t\t\t$demographicForms = $(parentSelector).find(\"[data-component='accountDemographicsForm']\");\r\n\t\t\t$demographicFormsToDefault = $demographicForms;\r\n\t\t} else {\r\n\t\t\t// This is called by initializeStore on page load\r\n\t\t\t$demographicForms = $(\"[data-component='accountDemographicsForm']\");\r\n\r\n\t\t\t// We do not want to default the Account Demographics form fields when we are within the eventRegistration component, because the registrants might not be the logged in user\r\n\t\t\t$demographicFormsToDefault = $demographicForms.not(\"[data-component='eventRegistration'] [data-component='accountDemographicsForm']\");\r\n\t\t}\r\n\r\n\t\t// If constituent is logged in, init the inputs with the values from the AccountCodes cache\r\n\t\t// before the change listeners are set\r\n\t\tif (accountCodes && accountCodes.length > 0 && $demographicFormsToDefault.length > 0) {\r\n\t\t\taccountCodes.forEach(code => {\r\n\t\t\t\t$demographicFormsToDefault.find(`[name=\"${code.type}\"]`).each((index, element) => {\r\n\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\tvar componentName = $element.attr(\"data-component\");\r\n\t\t\t\t\tvar $parent;\r\n\r\n\t\t\t\t\tif (componentName.startsWith(\"multipleCheckboxes\")) {\r\n\t\t\t\t\t\tif ($element.attr(\"value\") === code.value) {\r\n\t\t\t\t\t\t\t$element.prop(\"checked\", true);\r\n\t\t\t\t\t\t\tAccountDemographicsHelper.updateSelectedCheckboxes($element, true);\r\n\r\n\t\t\t\t\t\t\tif (setInitialDirty) {\r\n\t\t\t\t\t\t\t\t$element.addClass(\"isDirty\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (componentName.startsWith(\"singleCheckbox\")) {\r\n\t\t\t\t\t\t// singleCheckbox support\r\n\t\t\t\t\t\t$parent = $element.parents(\"[data-component='singleCheckbox']\").first();\r\n\t\t\t\t\t\tif ($parent) {\r\n\t\t\t\t\t\t\tif ($parent.attr(\"code-type-true-value\") === code.value) {\r\n\t\t\t\t\t\t\t\t$element.prop(\"checked\", true);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$element.prop(\"checked\", false);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (setInitialDirty) {\r\n\t\t\t\t\t\t\t\t$element.addClass(\"isDirty\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (componentName.startsWith(\"select\")) {\r\n\t\t\t\t\t\t// select support\r\n\t\t\t\t\t\t$element.find(`option[value=${code.value}]`).prop(\"selected\", true);\r\n\r\n\t\t\t\t\t\tif (setInitialDirty) {\r\n\t\t\t\t\t\t\t$element.addClass(\"isDirty\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (componentName.startsWith(\"radioButtons\")) {\r\n\t\t\t\t\t\t// radio buttons support\r\n\t\t\t\t\t\tif ($element.attr(\"value\") === code.value) {\r\n\t\t\t\t\t\t\t$element.prop(\"checked\", true);\r\n\t\t\t\t\t\t\tAccountDemographicsHelper.updateSelectedRadioButtons($element);\r\n\r\n\t\t\t\t\t\t\tif (setInitialDirty) {\r\n\t\t\t\t\t\t\t\t$element.addClass(\"isDirty\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// Initialize singleCheckbox to checked if there is no true value and no preexisting account code\r\n\t\t\t$demographicFormsToDefault.find(\"[data-component='singleCheckbox'][code-type-true-value='']\").each((index, component) => {\r\n\t\t\t\tvar $component = $(component);\r\n\t\t\t\tvar codeType = $component.attr(\"code-type\");\r\n\r\n\t\t\t\tvar hasNoAccountCode = !accountCodes.find(code => code.type == codeType);\r\n\t\t\t\tif (hasNoAccountCode) {\r\n\t\t\t\t\tvar $checkbox = $component.find(`[name='${codeType}']`);\r\n\t\t\t\t\t$checkbox.prop(\"checked\", true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Add listeners\r\n\t\t$demographicForms.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\tvar $form = $element.find(\"form\").first();\r\n\r\n\t\t\t$form.off(\"submit.accountDemographicsForm\");\r\n\t\t\t$form.on(\"submit.accountDemographicsForm\", AccountActions.saveDemographics);\r\n\r\n\t\t\t// adding change listeners to the demographic inputs.\r\n\t\t\tvar $demographicInputs = $element.find(\"[name][type='checkbox'],[name][type='radio'],select[name]\");\r\n\t\t\t$demographicInputs.off(\"change.accountDemographicsForm\");\r\n\t\t\t$demographicInputs.on(\"change.accountDemographicsForm\", (event) => {\r\n\t\t\t\tif (!event || !event.target) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(event.target).toggleClass(\"isDirty\");\r\n\r\n\t\t\t\t// Handle setting .selected on required elements when a radio button is selected.\r\n\t\t\t\tvar $selectedComponent = $(event.target);\r\n\t\t\t\tif ($selectedComponent.closest('[data-component=\"radioButtons\"]').length) {\r\n\t\t\t\t\tAccountDemographicsHelper.updateSelectedRadioButtons($selectedComponent);\r\n\t\t\t\t} else if ($selectedComponent.closest('[data-component=\"multipleCheckboxes\"]').length) {\r\n\t\t\t\t\tAccountDemographicsHelper.updateSelectedCheckboxes($selectedComponent, $selectedComponent.is(\":checked\"));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t//Used when submitting a single accountDemographicForm\r\n\tsaveDemographics: function (event) {\r\n\t\tvar $form,\r\n\t\t\tformDataArray,\r\n\t\t\t$namedInputs,\r\n\t\t\tparentComponentName;\r\n\r\n\t\tif (!event || !event.target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\t\t$form = $(event.target);\r\n\r\n\t\tif ($form[0].tagName !== \"FORM\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Only the submit button is in the form, all the inputs are outside the form,\r\n\t\t// but inside the accountDemographicForm div\r\n\t\tparentComponentName = $form.attr(\"data-child-of\");\r\n\t\t//We always want to get [data-component='singleCheckbox.input'] because it has a true/false value.\r\n\t\t$namedInputs = $form.parents(`[data-component=\"${parentComponentName}\"]`).first().find(\"[name].isDirty,[name][required],[data-component='singleCheckbox.input']\");\r\n\t\tif ($namedInputs.length <= 0) {\r\n\t\t\tSubmitButtonHelper.performPostSubmitAction(`[data-component='${parentComponentName}']`);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tSpinner.showSpinner();\r\n\t\tAccountDemographicsHelper.getDemographics($namedInputs).always((demographicData) => {\r\n\t\t\tif (demographicData) {\r\n\t\t\t\tif (demographicData.length > 0) {\r\n\t\t\t\t\tAccountApi.updateAccountCodes(demographicData).done(() => {\r\n\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(`[data-component='${parentComponentName}']`);\r\n\t\t\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t\t}).always(() => Spinner.removeSpinner());\r\n\t\t\t\t} else {\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(`[data-component='${parentComponentName}']`);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\ttoggleAccountType: function (event) {\r\n\t\ttry {\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar newValue = $(event.target).val();\r\n\r\n\t\t\t// Hide visible one\r\n\t\t\t$(\"[data-component='accountType'] > div:visible\").not(`[data-component='accountType.${newValue}']`).hide();\r\n\t\t\t// Show invisible one\r\n\t\t\t$(`[data-component='accountType'] > div[data-component='accountType.${newValue}']`).show();\r\n\r\n\t\t\t//This line is still here for backwards compatibility. The code that disables \"inputs\" for accountType is now in ActionsHelper.serializeForm().\r\n\t\t\t$(\"[data-component='accountType'] > div:visible input\").prop(\"disabled\", false);\r\n\r\n\t\t\t//Making sure if there are any other accountTypeSelectors on the page, they are set to the correct value\r\n\t\t\t$(\"select[data-component='createAccountForm.accountTypeSelector']\").each((index, domElement) => {\r\n\t\t\t\tvar $element = $(domElement);\r\n\t\t\t\tif ($element.val() !== newValue) {\r\n\t\t\t\t\t$element.val(newValue);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\ttoggleInputStatus: function (formParentId, disabled) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.TOGGLE_CREATE_ACCOUNT_FORM_INPUTS,\r\n\t\t\tformParentId,\r\n\t\t\tdisabled\r\n\t\t});\r\n\t},\r\n\r\n\tinitializePhoneNumberGroupComponent: function(loggedInUserCountry, $parentComponent) {\r\n\t\tPhoneNumberHelper.initializePhoneNumberGroupComponent(loggedInUserCountry || this.getDefaultCountry(), $parentComponent);\r\n\t},\r\n\r\n\tinitializeProductDownloadUrl: function() {\r\n\t\tvar $downloadLinksMissingHref = $(\"[data-component='productTransactionHistory'] a[data-dynamic-href='downloadUrl'][href='']\");\r\n\r\n\t\t$downloadLinksMissingHref.off(\"click.download\");\r\n\t\t$downloadLinksMissingHref.on(\"click.download\", AccountActions.promptForUndownloadableProduct);\r\n\t},\r\n\r\n\tpromptForUndownloadableProduct: function (event) {\r\n\t\tif (!event || !event.target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.PRODUCT_DOWNLOAD_DISPLAY_MESSAGES,\r\n\t\t\tWizardConstants.PRODUCT_DOWNLOAD_MESSAGE_FIELDS.UNDOWNLOADABLE_ERROR\r\n\t\t));\r\n\t},\r\n\r\n\tinitializeSpouseInformationComponent: function () {\r\n\t\tvar $spouseInfoForm = $(\"[data-component='spouseInformation'] form\");\r\n\r\n\t\t$spouseInfoForm.off(\"submit.spouseInformation\");\r\n\t\t$spouseInfoForm.on(\"submit.spouseInformation\", AccountActions.changeSpouseInformation.bind(this));\r\n\t},\r\n\r\n\tredirectToSecureProject: function (project) {\r\n\t\tproject = project || {};\r\n\r\n\t\tvar secureProjectSessionKey = \"secure-project\";\r\n\r\n\t\tvar value = {\r\n\t\t\tsecureMatchingText: project.projectCode,\r\n\t\t\tfrequency: \"O\",\r\n\t\t\tamount: project.amount,\r\n\t\t\tisOtherSelected: true,\r\n\t\t\tpledgeId: project.pledgeId,\r\n\t\t\trelatedAccount: project.relatedAccount\r\n\t\t};\r\n\r\n\t\tsessionStorage.setItem(secureProjectSessionKey, JSON.stringify(value));\r\n\r\n\t\twindow.location = \"/s-donate\";\r\n\t},\r\n\r\n\tcreateCommunication: function (event) {\r\n\t\tAccountCommunicationsHelper.createCommunication(event);\r\n\t},\r\n\r\n\t_setSmartyStreetsFields: function (data, $form) {\r\n\t\tif (!data || !data.address) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar standardizationStatus;\r\n\t\tvar standardizationMessage;\r\n\t\tif ($form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED) === \"true\") {\r\n\t\t\tstandardizationStatus = Constants.ADDRESS_VERIFICATION_STATUSES.USER_CERTIFIED;\r\n\t\t}\r\n\t\telse if ($form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED) === \"true\") {\r\n\t\t\tstandardizationStatus = Constants.ADDRESS_VERIFICATION_STATUSES.VERIFIED;\r\n\t\t}\r\n\t\telse if ($form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR)) {\r\n\t\t\tstandardizationStatus = Constants.ADDRESS_VERIFICATION_STATUSES.ERROR;\r\n\t\t\tstandardizationMessage = $form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR);\r\n\t\t}\r\n\r\n\t\tif (standardizationStatus) {\r\n\t\t\t//Only adding a standardization result when this was either user or SmartyStreets verified or if we got an error so Services Address Standardization does not occur.\r\n\t\t\tdata.address.standardizationResult = {\r\n\t\t\t\tstatus: standardizationStatus,\r\n\t\t\t\tmessage: standardizationMessage,\r\n\t\t\t\tprovider: Constants.ADDRESS_VERIFICATION_PROVIDERS.SMARTYSTREETS\r\n\t\t\t};\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage);\r\n\t}\r\n};\r\n\r\nmodule.exports = AccountActions;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass AccountAddressTypeSelector extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tconfig={this.props.addressTypeConfig}\r\n\t\t\t\twizard={AccountStore.get(\"wizardDefaultAddressTypes\")}\r\n\t\t\t\twizardValuesKey=\"allowedAddressTypes\"\r\n\t\t\t\tconfigKey=\"availableAddressTypes\"\r\n\t\t\t\treactComponentName=\"AccountAddressTypeSelector\"\r\n\t\t\t\tselectClassName=\"account-address-type-selector\"\r\n\t\t\t\toptionsClassName=\"availableAddressType\"\r\n\t\t\t\tselectNameAttribute=\"address.type\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nAccountAddressTypeSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\taddressTypeConfig: PropTypes.object,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string\r\n};\r\n\r\nmodule.exports = AccountAddressTypeSelector;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountCommunicationsHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar accountCommunicationFormComponentSelector = \"[data-component='accountCommunicationForm']\";\r\n\r\nvar propertySelector = \"[data-component='textInput'][data-data-binding^='dataBinding-'] input,\" +\r\n\t\"[data-component='textArea'][data-data-binding^='dataBinding-'] textarea\";\r\n\r\nvar codeSelector = \"[data-component='singleCheckbox'] input,\" +\r\n\t\"[data-component='select'] select,\" +\r\n\t\"[data-component='radioButtons.singleRadioButton'] input,\" +\r\n\t\"[data-component='multipleCheckboxes.singleCheckbox'] input\";\r\n\r\nvar dateSelector = \"[data-component='textInput'][data-data-binding^='singleValueDate'] input,\" +\r\n\t\"[data-component='textInput'][data-data-binding^='multiValueDate'] input,\" +\r\n\t\"[data-component='textArea'][data-data-binding^='singleValueDate'] textarea,\" +\r\n\t\"[data-component='textArea'][data-data-binding^='multiValueDate'] textarea\";\r\n\r\nvar noteSelector = \"[data-component='textInput'][data-data-binding^='note'] input,\" +\r\n\t\"[data-component='textArea'][data-data-binding^='note'] textarea\";\r\n\r\nvar numberSelector = \"[data-component='textInput'][data-data-binding^='singleValueNumber'] input,\" +\r\n\t\"[data-component='textInput'][data-data-binding^='multiValueNumber'] input,\" +\r\n\t\"[data-component='textArea'][data-data-binding^='singleValueNumber'] textarea,\" +\r\n\t\"[data-component='textArea'][data-data-binding^='multiValueNumber'] textarea\";\r\n\r\nvar nonCheckableFieldsSelector = \"[data-component='textInput'] input,textarea,select\";\r\n\r\nvar checkableFormFieldsSelector = \"[data-component='radioButtons.singleRadioButton.input'],\" +\r\n\t\"[data-component='singleCheckbox.input'],\" +\r\n\t\"[data-component='multipleCheckboxes.singleCheckbox.input']\";\r\n\r\nvar AccountCommunicationsHelper = {\r\n\tcreateCommunication: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"createCommunication\"));\r\n\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar $accountCommunicationFormComponent = $(event.target).closest(accountCommunicationFormComponentSelector);\r\n\r\n\t\t\tSpinner.showSpinner($accountCommunicationFormComponent);\r\n\r\n\t\t\tvar communication = this.serializeCommunicationForm($accountCommunicationFormComponent);\r\n\t\t\tvar components = [\r\n\t\t\t\t$accountCommunicationFormComponent\r\n\t\t\t];\r\n\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner($accountCommunicationFormComponent);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tAccountApi.createCommunication(communication)\r\n\t\t\t\t.done(() => {\r\n\t\t\t\t\tthis.clearCommunicationForm($accountCommunicationFormComponent);\r\n\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(accountCommunicationFormComponentSelector);\r\n\r\n\t\t\t\t\tSpinner.removeSpinner($accountCommunicationFormComponent);\r\n\t\t\t\t})\r\n\t\t\t\t.fail(jqXHR => {\r\n\t\t\t\t\tif (jqXHR.status === 401) {\r\n\t\t\t\t\t\tSpinner.removeSpinner($accountCommunicationFormComponent);\r\n\t\t\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\t\t\twindow.location = \"/login\"\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tLoggerInstance.error(jqXHR);\r\n\r\n\t\t\t\t\tvar errorMessage = $accountCommunicationFormComponent.attr(\"data-error-message\");\r\n\t\t\t\t\tApiHelper.displayErrorMessage(null, errorMessage);\r\n\r\n\t\t\t\t\tSpinner.removeSpinner($accountCommunicationFormComponent);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tSpinner.removeSpinner($accountCommunicationFormComponent);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tserializeCommunicationForm: function ($accountCommunicationFormComponent) {\r\n\t\tvar properties = this.serializeProperties($accountCommunicationFormComponent);\r\n\t\tvar codes = this.serializeCodes($accountCommunicationFormComponent);\r\n\t\tvar dates = this.serializeDates($accountCommunicationFormComponent);\r\n\t\tvar notes = this.serializeNotes($accountCommunicationFormComponent);\r\n\t\tvar numbers = this.serializeNumbers($accountCommunicationFormComponent); \r\n\r\n\t\tvar communication = Object.assign(\r\n\t\t\t{},\r\n\t\t\tproperties,\r\n\t\t\t{ codes },\r\n\t\t\t{ dates },\r\n\t\t\t{ notes },\r\n\t\t\t{ numbers }\r\n\t\t);\r\n\r\n\t\treturn communication;\r\n\t},\r\n\r\n\tserializeProperties: function ($accountCommunicationFormComponent) {\r\n\t\tvar propertiesArray = InputHelper.getGeneralInputValues(\r\n\t\t\t$accountCommunicationFormComponent.find(propertySelector)\r\n\t\t);\r\n\r\n\t\tvar properties = {\r\n\t\t\t\"type\": $accountCommunicationFormComponent.attr(\"data-communication-type\")\r\n\t\t};\r\n\r\n\t\tpropertiesArray.forEach(property => {\r\n\t\t\t// Only assign properties that have values defined.\r\n\t\t\tif (Object.values(property)[0]) {\r\n\t\t\t\tObject.assign(properties, property);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (properties.shortComment && properties.shortComment.length > 70) {\r\n\t\t\tproperties.shortComment = properties.shortComment.substring(0, 70);\r\n\t\t}\r\n\r\n\t\treturn properties;\r\n\t},\r\n\r\n\tserializeCodes: function ($accountCommunicationFormComponent) {\r\n\t\tvar codes = InputHelper.getGeneralInputValues(\r\n\t\t\t$accountCommunicationFormComponent.find(codeSelector)\r\n\t\t);\r\n\r\n\t\treturn codes.filter(code => !!code.type && !!code.value && !code.isDeleted);\r\n\t},\r\n\r\n\tserializeDates: function ($accountCommunicationFormComponent) {\r\n\t\tvar dates = InputHelper.getGeneralInputValues(\r\n\t\t\t$accountCommunicationFormComponent.find(dateSelector)\r\n\t\t);\r\n\r\n\t\treturn dates.filter(date => !!date.type && !!date.value);\r\n\t},\r\n\r\n\tserializeNotes: function ($accountCommunicationFormComponent) {\r\n\t\tvar notes = InputHelper.getGeneralInputValues(\r\n\t\t\t$accountCommunicationFormComponent.find(noteSelector)\r\n\t\t);\r\n\r\n\t\tnotes.forEach(note => {\r\n\t\t\tif (note.shortComment && note.shortComment.length > 70) {\r\n\t\t\t\tnote.shortComment = note.shortComment.substring(0, 70);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn notes.filter(note => !!note.type && (!!note.shortComment || !!note.longComment));\r\n\t},\r\n\r\n\tinitializeNumbers: function () {\r\n\t\tvar $component = $(numberSelector);\r\n\t\tInputHelper.initializeIntegerInput({\r\n\t\t\t$component,\r\n\t\t\tdefaultValue: null,\r\n\t\t\tgreaterThanZero: false,\r\n\t\t\tnumberSelector: $component,\r\n\t\t\tallowNegative: true\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeDates: function (dateFormat) {\r\n\t\tInputHelper.initializeDates({\r\n\t\t\t$component: $(accountCommunicationFormComponentSelector),\r\n\t\t\tdateSelector,\r\n\t\t\twizardDateFormat: dateFormat\r\n\t\t});\r\n\r\n\t\t//Adding custom validator for Date fields for when submit is clicked\r\n\t\t$(accountCommunicationFormComponentSelector).find(dateSelector).each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({\r\n\t\t\t\tcustomValidator: () => {\r\n\t\t\t\t\tvar errorMessages = [];\r\n\t\t\t\t\tvar date = $element.val();\r\n\r\n\t\t\t\t\tif (date != null && date != \"\") {\r\n\t\t\t\t\t\terrorMessages = InputHelper.validateDates({\r\n\t\t\t\t\t\t\tdateFormat: dateFormat,\r\n\t\t\t\t\t\t\tdate,\r\n\t\t\t\t\t\t\tdateInvalidMessage: window.FORM_VALIDATION_MESSAGES.INVALID_DATE,\r\n\t\t\t\t\t\t}) || [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\terrorMessages,\r\n\t\t\t\t\t\tisValid: !errorMessages.length\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tserializeNumbers: function ($accountCommunicationFormComponent) {\r\n\t\tvar numbers = InputHelper.getGeneralInputValues(\r\n\t\t\t$accountCommunicationFormComponent.find(numberSelector)\r\n\t\t);\r\n\r\n\t\treturn numbers.filter(number => !!number.type && !!number.value);\r\n\t},\r\n\r\n\tclearCommunicationForm: function ($accountCommunicationFormComponent) {\r\n\t\t// Clear all form field values\r\n\t\t$accountCommunicationFormComponent.find(nonCheckableFieldsSelector).val(\"\");\r\n\r\n\t\t// Reapply any select components' default values\r\n\t\tvar $selectComponentsWithDefaults = $accountCommunicationFormComponent.find(\"[data-component='select'][data-code-type-default-value]\");\r\n\t\t$selectComponentsWithDefaults.each((index, element) => {\r\n\t\t\tvar defaultValue = $(element).attr(\"data-code-type-default-value\") || \"\";\r\n\t\t\t$(element).find(\"select\").val(defaultValue);\r\n\t\t});\r\n\r\n\t\t// Reset Radio Buttons, Single, and Multi Checkboxes\r\n\t\t$accountCommunicationFormComponent.find(checkableFormFieldsSelector).prop(\"checked\", false);\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage);\r\n\t}\r\n};\r\n\r\nmodule.exports = AccountCommunicationsHelper;\r\n","\"use strict\"\r\n\r\nObject.assign = require(\"object-assign\");\r\n\r\nvar keyMirror = require(\"keyMirror\");\r\n\r\nvar Constants = keyMirror({\r\n\tSET_AUTO_ADD_STATE_AND_POSTAL_CODES: null,\r\n\tSET_AVAILABLE_MEDIA_VALUES: null,\r\n\tSET_MEDIA_OUTLET: null,\r\n\tSET_PREVIOUS_MEDIA_REQUEST: null,\r\n\tSET_SELECTED_COUNTRY: null,\r\n\tSET_SELECTED_EMAIL_TYPE: null,\r\n\tSET_SELECTED_ORGANIZATION_TYPE: null,\r\n\tSET_SELECTED_PAYMENT_TYPE: null,\r\n\tSET_SELECTED_PHONE_TYPE: null,\r\n\tSET_SELECTED_STATE: null,\r\n\tSET_SELECTED_TITLE: null\r\n});\r\n\r\nmodule.exports = Constants;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass AccountEmailTypeSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tdisabled: false,\r\n\t\t\tselectedEmailType: props.initialValue || \"\"\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleEmailTypeSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedEmailType = event.currentTarget.value;\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tAccountActions.setSelectedEmailType(formParentId, selectedEmailType);\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (!this._isMounted) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tvar parentFormIdForUpdateAllowed = formParentId;\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\tparentFormIdForUpdateAllowed = AccountFormHelper.getParentFormIdFromForm($parentFormForUpdateAllowed);\r\n\t\t}\r\n\r\n\t\tthis.setState({\r\n\t\t\tdisabled: formParentId ? AccountActions.getIsFormInputDisabled(parentFormIdForUpdateAllowed || formParentId) : false,\r\n\t\t\tselectedEmailType: AccountActions.getSelectedEmailType(formParentId) || \"\"\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\tvar updateAllowed = true;\r\n\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\tupdateAllowed = !$parentFormForUpdateAllowed.length || $parentFormForUpdateAllowed.is(\"[data-update-allowed]\");\r\n\t\t}\r\n\r\n\t\tAccountActions.setSelectedEmailType(formParentId, this.state.selectedEmailType);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_EMAIL_TYPE, this._onChange);\r\n\t\tAccountStore.addChangeListener(this._onChange);\r\n\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tAccountStore.removeChangeListener(this._onChange);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_EMAIL_TYPE, this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\t\tvar updateAllowed = true;\r\n\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\tupdateAllowed = $formParent.is(\"[data-update-allowed]\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountActions.setSelectedEmailType(formParentId, null);\r\n\t\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tconfig={this.props.emailTypeConfig}\r\n\t\t\t\tconfigKey=\"availableEmailTypes\"\r\n\t\t\t\tdisabled={this.state.disabled}\r\n\t\t\t\tinitialValue={this.state.selectedEmailType}\r\n\t\t\t\toptionsClassName=\"availableEmailType\"\r\n\t\t\t\treactComponentName=\"AccountEmailTypeSelector\"\r\n\t\t\t\tselectClassName=\"account-email-type-selector\"\r\n\t\t\t\tselectNameAttribute=\"email.type\"\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\twizard={AccountStore.get(\"wizardDefaultEmailTypes\")}\r\n\t\t\t\twizardValuesKey=\"allowedEmailTypes\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nAccountEmailTypeSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\temailTypeConfig: PropTypes.object,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string\r\n};\r\n\r\nmodule.exports = AccountEmailTypeSelector;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountFormHelper\");\r\n\r\nvar DefaultBillingAndShippingAddressHelper = require(\"./DefaultBillingAndShippingAddressHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountDemographicsHelper = require(\"../commonComponents/AccountDemographicsHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\n// AccountFormHelper\r\nmodule.exports = {\r\n\tgetPrimaryCreateAccountFormId: function () {\r\n\t\tvar $primaryForm = $(\"[data-component='createAccountForm']\").filter(function () {\r\n\t\t\t// If we allow createAccountForm in any additional components outside of the standard one-form-per-page/account-state\r\n\t\t\t// rule, they can be added to this selector to ensure standard createAccount requests pull the right form.\r\n\t\t\tvar parents = $(this).parents(\"[data-component='emailSubscriptionForm']\");\r\n\t\t\tif (parents.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}).first();\r\n\r\n\t\treturn $primaryForm.attr(\"id\");\r\n\t},\r\n\r\n\tgetPrimaryAddressFormName: function () {\r\n\t\tvar $createAccountForm = $(\"[data-component='createAccountAndCheckout'] [data-component='createAccountForm']\");\r\n\t\tvar hasCreateAccountForm = $createAccountForm.length;\r\n\t\tvar hasAddressComponents = $createAccountForm.find(\"[data-component^='accountAddress']\").length;\r\n\t\tvar hasPrimaryAddressForm = hasCreateAccountForm && hasAddressComponents ? this.getPrimaryCreateAccountFormId() : null;\r\n\t\tvar primaryAddressFormName = hasPrimaryAddressForm ? \"createAccountForm\" : null;\r\n\r\n\t\treturn primaryAddressFormName;\r\n\t},\r\n\r\n\t// Used when all the data required to create an account is needed\r\n\t// options:\r\n\t// * shouldEncodePassword - should the password be url-encoded before being sent to SE. Default to yes.\r\n\t// * selector - used to identify which for we will use when gathering account demographics.\r\n\t// * accountFormId - used to identify the desired createAccountForm when multiple are on the page (ex: email subscription form)\r\n\tserializeDataNecessaryToCreateAnAccount: function (options) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\toptions = Object.assign({}, { shouldEncodePassword: true }, options || {});\r\n\t\tvar data,\r\n\t\t\tmediaOutlet;\r\n\r\n\t\tdata = this.serializeCreateAccountFormOnly(options);\r\n\r\n\t\tvar selector = options.selector;\r\n\t\tvar useSelectorFunction = (typeof options.selectorFunctionName === \"string\");\r\n\r\n\t\t// Add any/all accountDemographicForm input data\r\n\t\tthis.updateAccountDemographics(data, selector ? (useSelectorFunction ? $(selector)[selectorFunctionName]() : $(selector)) : undefined)\r\n\t\t\t.always(() => {\r\n\t\t\t\t// Add any/all media selector input data\r\n\t\t\t\tmediaOutlet = this.getMediaOutlet();\r\n\t\t\t\tif (mediaOutlet) {\r\n\t\t\t\t\tdata.mediaOutlet = mediaOutlet;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdeferred.resolve(data);\r\n\t\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t// Used to get only the create account form data (name, address, email, phone, etc.)\r\n\tserializeCreateAccountFormOnly: function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (!options.accountFormId) {\r\n\t\t\t// if we didn't provide an accountFormId, assume we want the \"primary\" account form.\r\n\t\t\toptions.accountFormId = this.getPrimaryCreateAccountFormId();\r\n\t\t}\r\n\r\n\t\treturn this.serializeAddressForm(`[data-component='createAccountForm'][id='${options.accountFormId}'] form`, options);\r\n\t},\r\n\r\n\tserializeAddressForm: function (createAccountFormSelector, options) {\r\n\t\toptions = options || {};\r\n\t\tvar $form = $(createAccountFormSelector);\r\n\t\tvar data = ActionsHelper.serializeForm($form);\r\n\r\n\t\t//Manually set/update the default billing and shipping\r\n\t\tif (data.address) {\r\n\t\t\tDefaultBillingAndShippingAddressHelper.serializeCheckboxes($form, data.address);\r\n\t\t}\r\n\r\n\t\tvar account = AccountStore.get(\"account\");\r\n\r\n\t\tif (\r\n\t\t\tdata.haveAddressDefaultsChanged ||\r\n\t\t\t(\r\n\t\t\t\taccount && account.address && data.address &&\r\n\t\t\t\t(\r\n\t\t\t\t\t(data.address.line1 || \"\") !== (account.address.line1 || \"\") ||\r\n\t\t\t\t\t(data.address.line2 || \"\") !== (account.address.line2 || \"\") ||\r\n\t\t\t\t\t(data.address.line3 || \"\") !== (account.address.line3 || \"\") ||\r\n\t\t\t\t\t(data.address.line4 || \"\") !== (account.address.line4 || \"\") ||\r\n\t\t\t\t\t(data.address.city || \"\") !== (account.address.city || \"\") ||\r\n\t\t\t\t\t(data.address.state || \"\") !== (account.address.state || \"\") ||\r\n\t\t\t\t\t(data.address.postalCode || \"\") !== (account.address.postalCode || \"\") ||\r\n\t\t\t\t\t(data.address.country || \"\") !== (account.address.country || \"\")\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t ) {\r\n\t\t\tdata.address.hasAddressChanged = true;\r\n\t\t}\r\n\r\n\t\t// We cannot create an account without at least the country code.\r\n\t\t// Prep the address object so that we can set the default/unknown country if necessary.\r\n\t\tif (options.createAddressIfNotExists && !data.address) {\r\n\t\t\tdata.address = {};\r\n\t\t}\r\n\r\n\t\tthis.setSmartyStreetsFields(data, $form);\r\n\t\tthis._verifyCountry(data, $form);\r\n\r\n\t\tif (options.shouldEncodePassword) {\r\n\t\t\tthis.encodePassword(data);\r\n\t\t\tthis.encodePassword(data, \"confirmPassword\");\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t},\r\n\r\n\tsetSmartyStreetsFields: function (data, $form) {\r\n\t\tif (!data || !data.address) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar standardizationStatus;\r\n\t\tvar standardizationMessage;\r\n\t\tif ($form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED) === \"true\") {\r\n\t\t\tstandardizationStatus = Constants.ADDRESS_VERIFICATION_STATUSES.USER_CERTIFIED;\r\n\t\t} else if ($form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED) === \"true\") {\r\n\t\t\tstandardizationStatus = Constants.ADDRESS_VERIFICATION_STATUSES.VERIFIED;\r\n\t\t} else if ($form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR)) {\r\n\t\t\tstandardizationStatus = Constants.ADDRESS_VERIFICATION_STATUSES.ERROR;\r\n\t\t\tstandardizationMessage = $form.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR);\r\n\t\t}\r\n\r\n\t\tif (standardizationStatus) {\r\n\t\t\t//Only adding a standardization result when this was either user or SmartyStreets verified or if we got an error so Services Address Standardization does not occur.\r\n\t\t\tdata.address.standardizationResult = {\r\n\t\t\t\tmessage: standardizationMessage,\r\n\t\t\t\tprovider: Constants.ADDRESS_VERIFICATION_PROVIDERS.SMARTYSTREETS,\r\n\t\t\t\tstatus: standardizationStatus\r\n\t\t\t};\r\n\t\t}\r\n\t},\r\n\r\n\t_verifyCountry: function (data, $form) {\r\n\t\tif (!data || !data.address || data.address.country) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// For now, we need to determine a) if the country component is present and b) if a postal code is present\r\n\t\t// * If we have postal code and no country code/no component use Default\r\n\t\t// * If no postal code and no country component use Unknown.\r\n\t\tvar $countrySelector = $form.find(\"select[name='address.country']\");\r\n\r\n\t\tif (!$countrySelector.length) {\r\n\t\t\tif (data && data.address && data.address.postalCode) {\r\n\t\t\t\tdata.address.country = this.getDefaultCountry();\r\n\t\t\t} else {\r\n\t\t\t\tdata.address.country = this.getUnknownCountry();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tgetDefaultCountry: function () {\r\n\t\treturn window.AccountStore.getDefaultCountry();\r\n\t},\r\n\r\n\tgetUnknownCountry: function () {\r\n\t\treturn window.AccountStore.getUnknownCountry();\r\n\t},\r\n\r\n\tgetMediaOutlet: function () {\r\n\t\tvar $mediaInput = $(\"select[name=mediaOutlet]\").last();\r\n\r\n\t\tif ($mediaInput.length) {\r\n\t\t\treturn $mediaInput.val();\r\n\t\t}\r\n\t\treturn undefined;\r\n\t},\r\n\r\n\tencodePassword: function (data, field) {\r\n\t\tif (!field) {\r\n\t\t\tfield = \"password\";\r\n\t\t}\r\n\r\n\t\tif (!data || !data[field]) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\r\n\t\tdata[field] = btoa(data[field]);\r\n\t},\r\n\r\n\t// The form's parent should always be the component wrapper containing the form. We need to use the id of the parent,\r\n\t// not the form because the id of the form is always the componentName of it's parent. When there are multiple of the\r\n\t// same form on a layout (inside the AccountState Component for example) it is the parent's id which is unique, not the form's.\r\n\tgetParentForm: function (reactComponent) {\r\n\t\tif (!reactComponent) {\r\n\t\t\treturn $(null);\r\n\t\t}\r\n\r\n\t\tvar $form = $(ReactDOM.findDOMNode(reactComponent)).closest(\"form\");\r\n\r\n\t\tvar formId = $form.attr(\"id\");\r\n\r\n\t\tif (formId && formId.match(/_[a-z][0-9]/g)) {\r\n\t\t\t// We need to remove the GUID from the id before getting the parent\r\n\t\t\tformId = formId.substring(0, formId.lastIndexOf('_'));\r\n\t\t}\r\n\r\n\t\tvar $parent = $form.closest(`[data-component=\"${formId}\"]`);\r\n\r\n\t\tif (!$parent.length && formId) {\r\n\t\t\tif (formId.endsWith(\"Form\")) {\r\n\t\t\t\t//To account for primaryContactInformationForm is the form id instead of just primaryContactInformation\r\n\t\t\t\t$parent = $form.closest(`[data-component=\"${formId.substring(0, formId.length - 4)}\"]`);\r\n\t\t\t} else if (formId === \"addOtherAddresses\") {\r\n\t\t\t\t//To account for the otherAddresses add form\r\n\t\t\t\t$parent = $form.closest(`[data-component=\"otherAddresses.addForm\"]`);\r\n\t\t\t} else if (formId.startsWith(\"editOtherAddresses\")) {\r\n\t\t\t\t//To account for the otherAddresses edit form\r\n\t\t\t\t$parent = $form.closest(`[data-component=\"otherAddresses.populated.singleAddress.edit\"]`);\r\n\t\t\t} else if (formId === \"editMyMagazineEmail\") {\r\n\t\t\t\t//To account for the myMagazineEmailSubscriptions edit form\r\n\t\t\t\t$parent = $form.closest(\"[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail.edit']\");\r\n\t\t\t} else if (formId === \"editMyMagazineMail\") {\r\n\t\t\t\t//To account for the myMagazineMailSubscriptions edit form\r\n\t\t\t\t$parent = $form.closest(\"[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail.edit']\");\r\n\t\t\t} else if (formId === \"editMyMembership\") {\r\n\t\t\t\t//To account for the myMembershipSubscription edit form\r\n\t\t\t\t$parent = $form.closest(\"[data-component='myMembershipSubscriptions.populated.singleMembership.edit']\");\r\n\t\t\t} else if (formId === \"editMyProduct\") {\r\n\t\t\t\t//To account for the myProductSubscription edit form\r\n\t\t\t\t$parent = $form.closest(\"[data-component='myProductSubscriptions.populated.singleProduct.edit']\");\r\n\t\t\t} else if (formId === \"addBillingAddress\") {\r\n\t\t\t\t$parent = $form.closest(\"[data-component='billingAddress.addForm']\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn $parent;\r\n\t},\r\n\r\n\tgetParentFormId: function (reactComponent) {\r\n\t\tvar $formParent = this.getParentForm(reactComponent);\r\n\r\n\t\treturn this.getParentFormIdFromForm($formParent);\r\n\t},\r\n\r\n\tgetParentFormIdFromForm: function ($formParent) {\r\n\t\treturn $formParent && $formParent.length > 0 ? $formParent.attr(\"id\") || $formParent.attr(\"data-repeated-id\") : null;\r\n\t},\r\n\r\n\thandleAccountCreateResponse: function (store, responseJSON, hideSpinner) {\r\n\t\tif (responseJSON) {\r\n\t\t\tif (typeof responseJSON !== \"object\") {\r\n\t\t\t\tresponseJSON = JSON.parse(responseJSON);\r\n\t\t\t}\r\n\t\t\tvar foundError = false;\r\n\t\t\tvar message = responseJSON.message;\r\n\r\n\t\t\tif (message.indexOf(\"Passwords\") !== -1 || responseJSON.messageGuaranteedConstituentSafe) {\r\n\t\t\t\tBootstrapPrompt.alert(window.AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.ACCOUNT_CREATE_ERROR,\r\n\t\t\t\t\t{ message }\r\n\t\t\t\t));\r\n\t\t\t\tfoundError = true;\r\n\t\t\t} else {\r\n\t\t\t\tvar messagesByField;\r\n\r\n\t\t\t\tif (responseJSON.response && Array.isArray(responseJSON.response.messagesByField)) {\r\n\t\t\t\t\tmessagesByField = responseJSON.response.messagesByField;\r\n\t\t\t\t} else if (Array.isArray(responseJSON.messagesByField)) {\r\n\t\t\t\t\tmessagesByField = responseJSON.messagesByField;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Array.isArray(messagesByField)) {\r\n\t\t\t\t\tmessagesByField.forEach((messageByField) => {\r\n\t\t\t\t\t\tif (messageByField.field === \"email\" && Array.isArray(messageByField.messages)) {\r\n\t\t\t\t\t\t\tmessageByField.messages.forEach((fieldMessage) => {\r\n\t\t\t\t\t\t\t\tif (!foundError && fieldMessage.indexOf(\"Passwords\") !== -1) {\r\n\t\t\t\t\t\t\t\t\tBootstrapPrompt.alert(window.AccountStore.getWizardValue(\r\n\t\t\t\t\t\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\t\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.ACCOUNT_CREATE_ERROR,\r\n\t\t\t\t\t\t\t\t\t\t{ message: fieldMessage }\r\n\t\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t\t\tfoundError = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//We have found and already alerted about an error; do not alert again.\r\n\t\t\t//Gross, but finding if there are any email errors to allow showing specific error messages.\r\n\t\t\tif (foundError) {\r\n\t\t\t\tif (hideSpinner) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tBootstrapPrompt.alert(window.AccountStore.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.ACCOUNT_CREATE_ERROR,\r\n\t\t\t{ message: \"\" }\r\n\t\t));\r\n\r\n\t\tif (hideSpinner) {\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t}\r\n\t},\r\n\r\n\t// Used when the account demographic form is contained within another form or submitted with other data\r\n\t// This method takes accountData as a parameter because it may have to perform some cleanup on the data\r\n\t// in order to remove any extraneous account demographic properties which were previously added by jQuery's serializeForm()\r\n\tupdateAccountDemographics: function (accountData, $form, shouldValidate) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\taccountData = accountData || {};\r\n\t\t//We always want to get [data-component='singleCheckbox.input'] because it has a true/false value.\r\n\t\tAccountDemographicsHelper.getDemographics(\r\n\t\t\t$form ? $form.find(\"[data-component='accountDemographicsForm'] input[name].isDirty,select[name].isDirty,[data-component='singleCheckbox.input']\") : undefined,\r\n\t\t\tshouldValidate\r\n\t\t)\r\n\t\t\t.always(codes => {\r\n\t\t\t\tif (codes && Array.isArray(codes) && codes.length > 0) {\r\n\t\t\t\t\tif (accountData.codes && Array.isArray(accountData.codes)) {\r\n\t\t\t\t\t\taccountData.codes = accountData.codes.concat(codes);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\taccountData.codes = codes;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\taccountData.codes.forEach(code => {\r\n\t\t\t\t\t\tif (accountData.hasOwnProperty(code.type)) {\r\n\t\t\t\t\t\t\tdelete accountData[code.type];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tinitializeAccountForm: function ($accountForm, accountData, formId) {\r\n\t\tformId = formId || $accountForm.attr(\"id\");\r\n\t\twindow.AccountActions.setSelectedTitle(formId, accountData.title);\r\n\t\t$accountForm.find(\"[data-component='accountFirstName']\").val(accountData.firstName);\r\n\t\t$accountForm.find(\"[data-component='accountMiddleName']\").val(accountData.middleName);\r\n\t\t$accountForm.find(\"[data-component='accountLastName']\").val(accountData.lastName);\r\n\t\t$accountForm.find(\"[data-component='accountSuffix']\").val(accountData.suffix);\r\n\t\tif (accountData.email) {\r\n\t\t\t$accountForm.find(\"[data-component='accountEmailAddress']\").val(accountData.email.emailAddress);\r\n\t\t}\r\n\t\tif (accountData.address) {\r\n\t\t\twindow.AccountActions.setSelectedCountry(formId, accountData.address.country);\r\n\t\t\twindow.AccountActions.setSelectedState(formId, accountData.address.state);\r\n\t\t\t$accountForm.find(\"[data-component='accountAddressLine1']\").val(accountData.address.line1);\r\n\t\t\t$accountForm.find(\"[data-component='accountAddressLine2']\").val(accountData.address.line2);\r\n\t\t\t$accountForm.find(\"[data-component='accountAddressLine3']\").val(accountData.address.line3);\r\n\t\t\t$accountForm.find(\"[data-component='accountAddressLine4']\").val(accountData.address.line4);\r\n\t\t\t$accountForm.find(\"[data-component='accountAddressCity']\").val(accountData.address.city);\r\n\t\t\t$accountForm.find(\"[data-component='accountAddressPostalCode']\").val(accountData.address.postalCode);\r\n\t\t}\r\n\t\tif (accountData.phone) {\r\n\t\t\t$accountForm.find(\"[data-component='accountPhoneAreaCode']\").val(accountData.phone.areaCode);\r\n\t\t\t$accountForm.find(\"[data-component='accountPhoneNumber']\").val(accountData.phone.phoneNumber);\r\n\t\t}\r\n\r\n\t\t//This will also trigger the media filtering after the address is set.\r\n\t\twindow.AccountActions.setSelectedMediaOutlet(accountData.mediaOutlet);\r\n\t},\r\n\r\n\tinitializeAccountFormListeners: function (callbackFunction) {\r\n\t\tcallbackFunction = callbackFunction || function () { };\r\n\r\n\t\t//We set up these listeners after the DOM is loaded because react components have not been rendered yet.\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\t\t\tvar createAccountFormSelector = \"#createAccountForm\";\r\n\t\t\t$(`${createAccountFormSelector} input[data-component='accountAddressLine1'],${createAccountFormSelector} input[data-component='accountAddressCity']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${createAccountFormSelector} [data-shared-name='address.state.field'],${createAccountFormSelector} input[data-component='accountAddressPostalCode']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${createAccountFormSelector} select[name='address.country']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\r\n\t\t\t//ShipTo For Gift Account\r\n\t\t\tvar createGiftAccountFormSelector = \"#createGiftAccountForm\";\r\n\t\t\t$(`${createGiftAccountFormSelector} input[data-component='accountAddressLine1'],${createGiftAccountFormSelector} input[data-component='accountAddressCity']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${createGiftAccountFormSelector} [data-shared-name='address.state.field'],${createGiftAccountFormSelector} input[data-component='accountAddressPostalCode']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${createGiftAccountFormSelector} select[name='address.country']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\r\n\t\t\t//For shipToOtherAddress\r\n\t\t\tvar otherAddressAddFormSelector = \"#addOtherAddresses\";\r\n\t\t\t$(`${otherAddressAddFormSelector} input[data-component='accountAddressLine1'],${otherAddressAddFormSelector} input[data-component='accountAddressCity']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${otherAddressAddFormSelector} [data-shared-name='address.state.field'],${otherAddressAddFormSelector} input[data-component='accountAddressPostalCode']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${otherAddressAddFormSelector} select[name='address.country']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\r\n\t\t\t//For the Billing Address Add Form\r\n\t\t\tvar billingAddressAddFormSelector = \"#addBillingAddress\";\r\n\t\t\t$(`${billingAddressAddFormSelector} input[data-component='accountAddressLine1'],${billingAddressAddFormSelector} input[data-component='accountAddressCity']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${billingAddressAddFormSelector} [data-shared-name='address.state.field'],${billingAddressAddFormSelector} input[data-component='accountAddressPostalCode']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\t\t\t$(`${billingAddressAddFormSelector} select[name='address.country']`)\r\n\t\t\t\t.change(() => callbackFunction());\r\n\r\n\t\t\t//shipToComponent\r\n\t\t\t$(\"input[type='radio'][name='shipToAddressSelector']\").change((event) => {\r\n\t\t\t\tif ($(event.currentTarget).is(\":checked\")) {\r\n\t\t\t\t\tcallbackFunction();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t//Other Addresses\r\n\t\t\t$(\"[data-dynamic-href='cancelAddOtherAddress']\").change(() => callbackFunction());\r\n\t\t\t$(\"input[type='radio'][name='otherAddressesSelector']\").change((event) => {\r\n\t\t\t\tif ($(event.currentTarget).is(\":checked\")) {\r\n\t\t\t\t\tcallbackFunction();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\thasPopulatedAccountForm: function () {\r\n\t\tvar hasGiftAccount = false;\r\n\t\tvar hasOtherAddress = false;\r\n\t\tvar hasCreateAccount = false;\r\n\t\tvar loggedIn = false;\r\n\r\n\t\t// ShipTo For Gift Account\r\n\t\tvar createGiftAccountFormSelector = \"#createGiftAccountForm\";\r\n\t\tvar $createGiftAccountForm = $(`${createGiftAccountFormSelector}:visible`);\r\n\t\thasGiftAccount = this.isFormPopulated($createGiftAccountForm);\r\n\r\n\t\t// ShipTo Other Address\r\n\t\tvar otherAddressAddFormSelector = \"#addOtherAddresses\";\r\n\t\tvar $otherAddressEditForm = $(`${otherAddressAddFormSelector}:visible`);\r\n\t\thasOtherAddress = this.isFormPopulated($otherAddressEditForm);\r\n\r\n\t\t// CreateAccount Form\r\n\t\tvar createAccountFormSelector = \"#createAccountForm\";\r\n\t\tvar $createAccountForm = $(`${createAccountFormSelector}:visible`);\r\n\t\thasCreateAccount = this.isFormPopulated($createAccountForm);\r\n\r\n\t\tif (!hasCreateAccount) {\r\n\t\t\t// we don't have a default createAccount form on the page. We're logged in.\r\n\t\t\tvar $savedPayments = $(`[data-component=\"savedPayments\"]:visible`);\r\n\t\t\tif ($savedPayments.length) {\r\n\t\t\t\tloggedIn = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if we have a gift or other component, we need to determine which radio button is selected.\r\n\t\t// That way we can correctly identify when we have a shippable address.\r\n\t\tvar shipToSelection = $(\"input[type='radio'][name='shipToAddressSelector']:checked\").val();\r\n\t\tif (!shipToSelection || shipToSelection === \"primary\") {\r\n\t\t\t// we either don't have a selector or we're using primary\r\n\t\t\treturn hasCreateAccount || loggedIn;\r\n\t\t}\r\n\r\n\t\tif (shipToSelection === \"gift\") {\r\n\t\t\treturn hasGiftAccount;\r\n\t\t}\r\n\r\n\t\tif (shipToSelection === \"other\") {\r\n\t\t\t// is the new address selected?\r\n\t\t\tif ($('[data-component=\"otherAddresses.addForm.radio\"]:checked').length) {\r\n\t\t\t\treturn hasOtherAddress;\r\n\t\t\t} else if ($(\"input[name='otherAddressesSelector']:checked\").val() === \"on\") {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tisFormPopulated: function ($formSelector) {\r\n\t\tif (!$formSelector.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar accountObject = {};\r\n\t\taccountObject.line1 = $formSelector.find(\"input[data-component='accountAddressLine1']\").val();\r\n\t\taccountObject.city = $formSelector.find(\"input[data-component='accountAddressCity']\").val();\r\n\t\taccountObject.state = $formSelector.find(\"[name='address.state']\").val(); // will find either the select or text input, but not both.\r\n\t\taccountObject.zip = $formSelector.find(\"input[data-component='accountAddressPostalCode']\").val();\r\n\r\n\t\tif (accountObject.line1 &&\r\n\t\t\taccountObject.city &&\r\n\t\t\taccountObject.state &&\r\n\t\t\taccountObject.zip) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Validates\r\n\t * @param event\r\n\t * @param options\r\n\t * @returns {jQuery.Deferred}\r\n\t */\r\n\tvalidateShippingAddress: function(event, options) {\r\n\t\toptions = options || {};\r\n\t\tvar { checkoutStoreRef } = options;\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tvar shippingAddressType = $(\"[data-component='shipToAddressSelector'] input[type='radio'][name='shipToAddressSelector']:checked\").val();\r\n\r\n\t\tif (options.bypassShippingValidation) {\r\n\t\t\tdeferred.resolve(shippingAddressType);\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\t//Check to make sure a shipping method is selected if required\r\n\t\tvar isShippingMissingResult = checkoutStoreRef.getIsShippingMethodRequiredAndMissing();\r\n\t\tif (isShippingMissingResult.isMissing) {\r\n\t\t\tdeferred.reject(isShippingMissingResult.errorMessage);\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tswitch (shippingAddressType) {\r\n\t\t\tcase \"gift\":\r\n\t\t\t\tvar $createGiftAccountForm = $(\"[data-component='createGiftAccountForm']\");\r\n\r\n\t\t\t\tif ($createGiftAccountForm.length > 0) {\r\n\t\t\t\t\tif ($createGiftAccountForm.find(\"form [name='firstName']\").val() && $createGiftAccountForm.find(\"form [name='lastName']\").val()) {\r\n\t\t\t\t\t\twindow.SmartyStreets.verifyAddress(\"createGiftAccountForm\").done(() => {\r\n\t\t\t\t\t\t\tdeferred.resolve(shippingAddressType);\r\n\t\t\t\t\t\t}).fail(err => {\r\n\t\t\t\t\t\t\tdeferred.reject(err);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdeferred.reject(checkoutStoreRef.getWizardValue(\r\n\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.GIFT_RECIPIENT_MISSING\r\n\t\t\t\t\t\t));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tLoggerInstance.error(\"Give as a gift option is selected, but the gift account form does not exist!\");\r\n\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"other\":\r\n\t\t\t\tvar isAddFormUsedForAdd = false;\r\n\r\n\t\t\t\tif ($(\"[data-component='otherAddresses.addForm']\").attr(\"data-address-id\")) {\r\n\t\t\t\t\tdeferred.reject(checkoutStoreRef.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_ADDRESS_INCOMPLETE\r\n\t\t\t\t\t));\r\n\t\t\t\t\treturn deferred;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!$(\"[data-component='otherAddresses.populated.singleAddress.view'] input[type='radio'][name='otherAddressesSelector']:checked\").length &&\r\n\t\t\t\t\t!$(\"[data-component='otherAddresses.addForm'] input[type='radio'][name='otherAddressesSelector']:checked\").length) {\r\n\t\t\t\t\tdeferred.reject(checkoutStoreRef.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_ADDRESS_MISSING\r\n\t\t\t\t\t));\r\n\t\t\t\t\treturn deferred;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($(\"[data-component='otherAddresses.addForm'] input[type='radio'][name='otherAddressesSelector']:checked\").length) {\r\n\t\t\t\t\tvar $addressForm = $(\"[data-component='otherAddresses.addForm']\");\r\n\t\t\t\t\tif (!$addressForm.find(\"[data-component='accountAddressLine1']\").val() && !$addressForm.find(\"[data-component='accountAddressCity']\").val()) {\r\n\t\t\t\t\t\tdeferred.reject(checkoutStoreRef.getWizardValue(\r\n\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.NEW_SHIPPING_ADDRESS_INCOMPLETE\r\n\t\t\t\t\t\t));\r\n\t\t\t\t\t\treturn deferred;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tisAddFormUsedForAdd = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isAddFormUsedForAdd) {\r\n\t\t\t\t\twindow.SmartyStreets.verifyAddress(\"otherAddressesAdd\").done(() => {\r\n\t\t\t\t\t\tdeferred.resolve(shippingAddressType);\r\n\t\t\t\t\t}).fail((error) => {\r\n\t\t\t\t\t\tdeferred.reject(error);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.resolve(shippingAddressType);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tif (options.primaryAddressFormName) {\r\n\t\t\t\t\twindow.SmartyStreets.verifyAddress(options.primaryAddressFormName).done(() => {\r\n\t\t\t\t\t\tdeferred.resolve(shippingAddressType);\r\n\t\t\t\t\t}).fail((error) => {\r\n\t\t\t\t\t\tdeferred.reject(error);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.resolve(shippingAddressType);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tvalidatePrimaryAddress: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar { primaryAddressFormName } = options;\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tif (primaryAddressFormName) {\r\n\t\t\twindow.SmartyStreets.verifyAddress(primaryAddressFormName).done(() => {\r\n\t\t\t\tdeferred.resolve(primaryAddressFormName);\r\n\t\t\t}).fail((error) => {\r\n\t\t\t\tdeferred.reject(error);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve(primaryAddressFormName);\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t}\r\n};","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nclass AccountMediaSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedValue: props.initialValue || \"\"\r\n\t\t};\r\n\r\n\t\tthis.fetchValue = this.fetchValue.bind(this);\r\n\t\tthis.onChange = this.onChange.bind(this);\r\n\t\tthis.updateAvailableValues = this.updateAvailableValues.bind(this);\r\n\t}\r\n\r\n\taddHtmlChangeEvent(inputName) {\r\n\t\tvar $input = this.findHtmlInput(inputName);\r\n\r\n\t\t$input.on(\"change.mediaSelector\", this.fetchValue);\r\n\t}\r\n\r\n\tfindHtmlInput(inputName, inputType) {\r\n\t\tinputType = inputType || \"input\";\r\n\t\tvar formParentId = this.getParentFormId();\r\n\t\tvar $input = $(`#${formParentId} ${inputType}[name=\"${inputName}\"]`).first();\r\n\t\treturn $input;\r\n\t}\r\n\r\n\tremoveHtmlChangeEvent(inputName) {\r\n\t\tvar $input = this.findHtmlInput(inputName);\r\n\r\n\t\t$input.off(\"change.mediaSelector\");\r\n\t}\r\n\r\n\thandleValueSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedValue = event.currentTarget.value;\r\n\t\tAccountActions.setSelectedMediaOutlet(selectedValue);\r\n\t}\r\n\r\n\tgetDisabledState(formParentId) {\r\n\t\tif (formParentId && AccountActions.getIsFormInputDisabled(formParentId)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tgetParentFormId() {\r\n\t\tvar parentFormId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tif (!parentFormId || $(`#${parentFormId}`).attr(\"data-component\") === \"accountMediaForm\") {\r\n\t\t\tvar $firstParentForm = $(\"[data-component='createAccountForm'],[data-component='primaryContactInformation']\").first();\r\n\t\t\tif ($firstParentForm.length > 0) {\r\n\t\t\t\tparentFormId = $firstParentForm.attr(\"id\");\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn parentFormId;\r\n\t}\r\n\r\n\tsetDisabledState() {\r\n\t\tvar parentFormId = this.getParentFormId();\r\n\t\t//Making sure that the field is disabled if it is hidden\r\n\t\tvar isDisabled = this.getDisabledState(parentFormId);\r\n\t\tif (isDisabled !== this.state.disabled) {\r\n\t\t\tthis.setState({ disabled: isDisabled }, () => {\r\n\t\t\t\t// If the select is disabled, then we need to remove the invalid class, if it exists,\r\n\t\t\t\t// so we do not frustrate the constituent by showing them a required field\r\n\t\t\t\t// which they cannot set a value for.\r\n\t\t\t\tif (this.state.disabled) {\r\n\t\t\t\t\t$(ReactDOM.findDOMNode(this)).find(\"select.invalid\").removeClass(\"invalid\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfetchValue() {\r\n\t\tif (!this._isMounted) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar parentFormId = this.getParentFormId();\r\n\t\tvar useAccountDefaultFilterValues = false;\r\n\r\n\t\tif (!parentFormId) {\r\n\t\t\tuseAccountDefaultFilterValues = true;\r\n\t\t}\r\n\r\n\t\tvar requestData = useAccountDefaultFilterValues ? {\r\n\t\t\tcity: this.props.defaultCityFilter,\r\n\t\t\tcountry: this.props.defaultCountryFilter || AccountActions.getDefaultCountry(),\r\n\t\t\tcurrentMedia: this.state.selectedValue,\r\n\t\t\tpostalCode: this.props.defaultPostalCodeFilter,\r\n\t\t\tstate: this.props.defaultStateFilter\r\n\t\t} : {\r\n\t\t\tcity: this.findHtmlInput(\"address.city\").val(),\r\n\t\t\tcountry: AccountActions.getSelectedCountry(parentFormId),\r\n\t\t\tcurrentMedia: this.state.selectedValue,\r\n\t\t\tpostalCode: this.findHtmlInput(\"address.postalCode\").val(),\r\n\t\t\tstate: this.findHtmlInput(\"address.state\", \"select\").val() || this.findHtmlInput(\"address.state\").val()\r\n\t\t};\r\n\r\n\t\tvar currentRequestString = JSON.stringify(requestData);\r\n\t\tif (AccountActions.getPreviousMediaRequest() === currentRequestString) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tAccountActions.setPreviousMediaRequest(currentRequestString);\r\n\r\n\t\tAccountApi.getMediaValuesByAddress(requestData).done((data) => {\r\n\t\t\t//It is mounted and the same/newest request\r\n\t\t\tif (this._isMounted && AccountActions.getPreviousMediaRequest() === currentRequestString) {\r\n\t\t\t\tAccountActions.setAvailableMediaValues(data.items);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tupdateAvailableValues() {\r\n\t\tthis.setState({ availableValues: AccountActions.getAvailableMediaValues()}, () => {\r\n\t\t\t// If there are not avialable values then we need to remove the invalid class\r\n\t\t\t// so we do not frustrate the constituent by showing them a required field\r\n\t\t\t// which they cannot set a value for.\r\n\t\t\tif (!this.state.availableValues || !this.state.availableValues.length) {\r\n\t\t\t\t$(ReactDOM.findDOMNode(this)).find(\"select.invalid\").removeClass(\"invalid\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tonChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tselectedValue: AccountActions.getSelectedMediaOutlet() || \"\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this.props.thisArg || this);\r\n\t\t}\r\n\r\n\t\tAccountActions.setSelectedMediaOutlet(this.state.selectedValue);\r\n\t\tthis.onChange();\r\n\r\n\t\t//Making sure that the field is disabled if it is hidden\r\n\t\tthis.setDisabledState();\r\n\r\n\t\t//Makes sure we don't make multiple calls to fetch media outlets while Country/PostalCode/State/City are loading default values.\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\t\t\tthis.addMediaSelectorListeners();\r\n\t\t});\r\n\t}\r\n\r\n\taddMediaSelectorListeners() {\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_COUNTRY, this.fetchValue);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_STATE, this.fetchValue);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_MEDIA_OUTLET, this.onChange);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_AVAILABLE_MEDIA_VALUES, this.updateAvailableValues);\r\n\t\tthis.addHtmlChangeEvent(\"address.postalCode\");\r\n\t\tthis.addHtmlChangeEvent(\"address.city\");\r\n\r\n\t\tthis.fetchValue();\r\n\t}\r\n\r\n\tcomponentDidUpdate(nextProps, nextState) {\r\n\t\t//Making sure that the field is disabled if it is hidden\r\n\t\tthis.setDisabledState();\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this.props.thisArg || this);\r\n\t\t}\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_COUNTRY, this.fetchValue);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_STATE, this.fetchValue);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_MEDIA_OUTLET, this.onChange);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_AVAILABLE_MEDIA_VALUES, this.updateAvailableValues);\r\n\t\tthis.removeHtmlChangeEvent(\"address.postalCode\");\r\n\t\tthis.removeHtmlChangeEvent(\"address.city\");\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar availableValues = this.state.availableValues;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name=\"AccountMediaSelector\"\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tclassName={classNames(\"form-control\", \"account-media-selector\")}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tdisabled={this.props.disabled || this.state.disabled || (!this.props.isDesignMode && (!availableValues || !availableValues.length))}\r\n\t\t\t\t\tname=\"mediaOutlet\"\r\n\t\t\t\t\tonChange={this.handleValueSelected}\r\n\t\t\t\t\tdata-required={this.props.dataRequired}\r\n\t\t\t\t\trequired={this.props.required || this.props.dataRequired}\r\n\t\t\t\t\tvalue={this.state.selectedValue}\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"\"></option>\r\n\t\t\t\t\t{availableValues && availableValues.map((availableValue) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className=\"availableMedia\" key={availableValue.id} value={availableValue.id}>\r\n\t\t\t\t\t\t\t\t{availableValue.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nAccountMediaSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataRequired: PropTypes.bool,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\r\n\treactComponentCategory: PropTypes.string,\r\n\tinitialValue: PropTypes.string,\r\n\tdefaultCityFilter: PropTypes.string,\r\n\tdefaultCountryFilter: PropTypes.string,\r\n\tdefaultPostalCodeFilter: PropTypes.string,\r\n\tdefaultStateFilter: PropTypes.string\r\n};\r\n\r\nmodule.exports = AccountMediaSelector;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass AccountPhoneTypeSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tdisabled: false,\r\n\t\t\tselectedPhoneType: props.initialValue || \"\"\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandlePhoneTypeSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedPhoneType = event.currentTarget.value;\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tAccountActions.setSelectedPhoneType(formParentId, selectedPhoneType);\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\t\tvar parentFormIdForUpdateAllowed = formParentId;\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\t\tparentFormIdForUpdateAllowed = AccountFormHelper.getParentFormIdFromForm($parentFormForUpdateAllowed);\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tdisabled: formParentId ? AccountActions.getIsFormInputDisabled(parentFormIdForUpdateAllowed || formParentId) : false,\r\n\t\t\t\tselectedPhoneType: AccountActions.getSelectedPhoneType(formParentId) || \"\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\tvar updateAllowed = true;\r\n\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\tupdateAllowed = !$parentFormForUpdateAllowed.length || $parentFormForUpdateAllowed.is(\"[data-update-allowed]\");\r\n\t\t}\r\n\r\n\t\tAccountActions.setSelectedPhoneType(formParentId, this.state.selectedPhoneType);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_PHONE_TYPE, this._onChange);\r\n\t\tAccountStore.addChangeListener(this._onChange);\r\n\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tAccountStore.removeChangeListener(this._onChange);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_PHONE_TYPE, this._onChange);\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\t\tvar updateAllowed = true;\r\n\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\tupdateAllowed = $formParent.is(\"[data-update-allowed]\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountActions.setSelectedPhoneType(formParentId, null);\r\n\t\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tconfig={this.props.phoneTypeConfig}\r\n\t\t\t\tconfigKey=\"availablePhoneTypes\"\r\n\t\t\t\tdisabled={this.state.disabled}\r\n\t\t\t\tinitialValue={this.state.selectedPhoneType}\r\n\t\t\t\toptionsClassName=\"availablePhoneType\"\r\n\t\t\t\treactComponentName=\"AccountPhoneTypeSelector\"\r\n\t\t\t\tselectClassName=\"account-phone-type-selector\"\r\n\t\t\t\tselectNameAttribute=\"phone.type\"\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\twizard={AccountStore.get(\"wizardDefaultPhoneTypes\")}\r\n\t\t\t\twizardValuesKey=\"allowedPhoneTypes\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nAccountPhoneTypeSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tphoneTypeConfig: PropTypes.object,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string\r\n};\r\n\r\nmodule.exports = AccountPhoneTypeSelector;\r\n","\"use strict\";\r\n\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountStore\");\r\n\r\nvar Dispatcher = require(\"./Dispatcher\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\n\r\nvar AbstractStore = require(\"../stores/AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar CHANGE_EVENT = \"change\";\r\n\r\nvar state = {\r\n\taccount: {},\r\n\taccountCodes: [],\r\n\tavailableMediaValues: [],\r\n\tcompanyCode: null,\r\n\tformIsInputDisabledByForm: {},\r\n\tisAutoAddStateAndPostalCodes: false,\r\n\tisDesignMode: false,\r\n\tisInPledgeStatementSession: false,\r\n\totherAddresses: [],\r\n\tpreviousMediaRequest: null,\r\n\tselectedCountryByForm: {},\r\n\tselectedEmailTypeByForm: {},\r\n\tselectedOrganizationTypeForm: {},\r\n\tselectedPaymentTypesByUniqueName: {},\r\n\tselectedPhoneTypeByForm: {},\r\n\tselectedStateByForm: {},\r\n\tselectedTitleByForm: {},\r\n\tselectedMediaOutlet: null,\r\n\tshouldOpenReportsInNewTab: false,\r\n\twizardAccountDisplayMessages: {},\r\n\twizardAccountTitles: {},\r\n\twizardAddressStandardization: {},\r\n\twizardChildCommunicationsWriteDisplayMessages: {},\r\n\twizardCompanyEftErrorMessages: {},\r\n\twizardCompanyErrorMessages: {},\r\n\twizardCountryList: {},\r\n\twizardCountryStateList: {},\r\n\twizardCreditCardDisplayMessages: {},\r\n\twizardDateFormat: {},\r\n\twizardDefaultAddressTypes: {},\r\n\twizardDefaultEmailTypes: {},\r\n\twizardDefaultPhoneTypes: {},\r\n\twizardDocumentsConfiguration: {},\r\n\twizardDocumentsDisplayMessages: {},\r\n\twizardEventSearch: {},\r\n\twizardLoginDisplayMessages: {},\r\n\twizardMySponsorshipsDisplayMessages: {},\r\n\twizardMyRecurringDisplayMessages: {},\r\n\twizardOrganizationContactTypes: {},\r\n\twizardOrganizationTypes: {},\r\n\twizardOtherAddressesDisplayMessages: {},\r\n\twizardPlaidDisplayMessages: {},\r\n\twizardPledgeStatementEntry: {},\r\n\twizardReportDisplayMessages: {},\r\n\twizardSavedPaymentsDisplayMessages: {},\r\n\twizardShoppingCartDisplayMessages: {},\r\n\twizardSmartyStreetsApiKey: {},\r\n\twizardSponsorshipDefaults: {},\r\n\twizardYearEndGivingStatementDisplayMessages: {}\r\n};\r\n\r\nvar AccountStore = class extends AbstractStore {\r\n\t//Specific event for address changes\r\n\taddSpecificListener(eventName, callback) {\r\n\t\tthis.on(eventName, callback);\r\n\t}\r\n\r\n\tremoveSpecificListener(eventName, callback) {\r\n\t\tthis.removeListener(eventName, callback);\r\n\t}\r\n\r\n\temitSpecificEvent(eventName) {\r\n\t\tthis.emit(eventName);\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\t// This would normally be done by registering the following items in Dispatcher. However, using the Dispatcher to complete these actions\r\n\t// caused an issue where we would attempt to dispatch in the middle of another dispatch.\r\n\tsetStateByType(stateType, value) {\r\n\t\tswitch (stateType) {\r\n\t\t\tcase AccountConstants.SET_MEDIA_OUTLET:\r\n\t\t\t\tstate.selectedMediaOutlet = value;\r\n\r\n\t\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_MEDIA_OUTLET);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase AccountConstants.SET_PREVIOUS_MEDIA_REQUEST:\r\n\t\t\t\tstate.previousMediaRequest = value;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase AccountConstants.SET_AVAILABLE_MEDIA_VALUES:\r\n\t\t\t\tstate.availableMediaValues = value;\r\n\r\n\t\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_AVAILABLE_MEDIA_VALUES);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\t// no op\r\n\t\t\t\tLoggerInstance.debug(`Attempted set for undefined state type in account store. ${stateType}`);\r\n\t\t}\r\n\r\n\t\tAccountStore.emitChange();\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n\r\n\tgetDefaultCountry() {\r\n\t\tvar wizardCountryList = state.wizardCountryList;\r\n\t\tif (wizardCountryList && wizardCountryList.defaultCountry) {\r\n\t\t\treturn wizardCountryList.defaultCountry;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetUnknownCountry() {\r\n\t\tvar wizardCountryList = state.wizardCountryList;\r\n\t\tif (wizardCountryList && wizardCountryList.defaultNoAddressCountry) {\r\n\t\t\treturn wizardCountryList.defaultNoAddressCountry;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetSelectedCountry(formParentId) {\r\n\t\tif (state.selectedCountryByForm && formParentId) {\r\n\t\t\treturn state.selectedCountryByForm[formParentId] || null;\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getSelectedCountry()\");\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetSelectedEmailType(formParentId) {\r\n\t\tif (state.selectedEmailTypeByForm && formParentId) {\r\n\t\t\treturn state.selectedEmailTypeByForm[formParentId] || null;\r\n\t\t}\r\n\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getSelectedEmailType()\");\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetSelectedOrganizationType(formParentId) {\r\n\t\tif (state.selectedOrganizationTypeForm && formParentId) {\r\n\t\t\treturn state.selectedOrganizationTypeForm[formParentId] || null;\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getSelectedOrganizationType()\");\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedPaymentType(uniqueName) {\r\n\t\tif (state.selectedPaymentTypesByUniqueName && uniqueName) {\r\n\t\t\treturn state.selectedPaymentTypesByUniqueName[uniqueName] || null;\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"The uniqueName argument was not passed into AccountStore.getSelectedPaymentType()\");\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedPhoneType(formParentId) {\r\n\t\tif (state.selectedPhoneTypeByForm && formParentId) {\r\n\t\t\treturn state.selectedPhoneTypeByForm[formParentId] || null;\r\n\t\t}\r\n\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getSelectedPhoneType()\");\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetSelectedState(formParentId) {\r\n\t\tif (state.selectedStateByForm && formParentId) {\r\n\t\t\treturn state.selectedStateByForm[formParentId] || null;\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getSelectedState()\");\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetSelectedTitle(formParentId) {\r\n\t\tif (state.selectedTitleByForm && formParentId) {\r\n\t\t\treturn state.selectedTitleByForm[formParentId] || null;\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getSelectedTitle()\");\r\n\t\t}\r\n\t}\r\n\r\n\tgetIsFormInputDisabled(formParentId) {\r\n\t\tif (state.formIsInputDisabledByForm && formParentId) {\r\n\t\t\treturn state.formIsInputDisabledByForm[formParentId] || null;\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"The formParentId argument was not passed into AccountStore.getIsFormInputDisabled()\");\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n};\r\nAccountStore = new AccountStore();\r\n\r\nAccountStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.ACCOUNT_INITIALIZE:\r\n\t\t\tstate.account = action.account;\r\n\t\t\tstate.accountCodes = action.accountCodes;\r\n\t\t\tstate.companyCode = action.companyCode;\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\tstate.isInPledgeStatementSession = action.isInPledgeStatementSession;\r\n\t\t\tstate.otherAddresses = action.otherAddresses;\r\n\t\t\tstate.domainWhitelist = action.domainWhitelist;\r\n\t\t\tstate.shouldOpenReportsInNewTab = action.shouldOpenReportsInNewTab;\r\n\t\t\tstate.wizardAccountDisplayMessages = action.wizardAccountDisplayMessages;\r\n\t\t\tstate.wizardAccountTitles = action.wizardAccountTitles;\r\n\t\t\tstate.wizardAddressStandardization = action.wizardAddressStandardization;\r\n\t\t\tstate.wizardChildCommunicationsWriteDisplayMessages = action.wizardChildCommunicationsWriteDisplayMessages;\r\n\t\t\tstate.wizardCountryList = action.wizardCountryList;\r\n\t\t\tstate.wizardCountryStateList = action.wizardCountryStateList;\r\n\t\t\tstate.wizardCompanyEftErrorMessages = action.wizardCompanyEftErrorMessages;\r\n\t\t\tstate.wizardCompanyErrorMessages = action.wizardCompanyErrorMessages;\r\n\t\t\tstate.wizardCreditCardDisplayMessages = action.wizardCreditCardDisplayMessages;\r\n\t\t\tstate.wizardDateFormat = action.wizardDateFormat;\r\n\t\t\tstate.wizardDefaultAddressTypes = action.wizardDefaultAddressTypes;\r\n\t\t\tstate.wizardDefaultEmailTypes = action.wizardDefaultEmailTypes;\r\n\t\t\tstate.wizardDefaultPhoneTypes = action.wizardDefaultPhoneTypes;\r\n\t\t\tstate.wizardDocumentsConfiguration = action.wizardDocumentsConfiguration;\r\n\t\t\tstate.wizardDocumentsDisplayMessages = action.wizardDocumentsDisplayMessages;\r\n\t\t\tstate.wizardEventSearch = action.wizardEventSearch;\r\n\t\t\tstate.wizardLoginDisplayMessages = action.wizardLoginDisplayMessages;\r\n\t\t\tstate.wizardMyPledgesDisplayMessages = action.wizardMyPledgesDisplayMessages;\r\n\t\t\tstate.wizardMySponsorshipsDisplayMessages = action.wizardMySponsorshipsDisplayMessages;\r\n\t\t\tstate.wizardMyRecurringDisplayMessages = action.wizardMyRecurringDisplayMessages;\r\n\t\t\tstate.wizardOrganizationContactTypes = action.wizardOrganizationContactTypes;\r\n\t\t\tstate.wizardOrganizationTypes = action.wizardOrganizationTypes;\r\n\t\t\tstate.wizardOtherAddressesDisplayMessages = action.wizardOtherAddressesDisplayMessages;\r\n\t\t\tstate.wizardPlaidDisplayMessages = action.wizardPlaidDisplayMessages;\r\n\t\t\tstate.wizardPledgeStatementEntry = action.wizardPledgeStatementEntry;\r\n\t\t\tstate.wizardProductDownloadDisplayMessages = action.wizardProductDownloadDisplayMessages;\r\n\t\t\tstate.wizardReportDisplayMessages = action.wizardReportDisplayMessages;\r\n\t\t\tstate.wizardSavedPaymentsDisplayMessages = action.wizardSavedPaymentsDisplayMessages;\r\n\t\t\tstate.wizardShoppingCartDisplayMessages = action.wizardShoppingCartDisplayMessages;\r\n\t\t\tstate.wizardSmartyStreetsApiKey = action.wizardSmartyStreetsApiKey;\r\n\t\t\tstate.wizardSponsorshipDefaults = action.wizardSponsorshipDefaults;\r\n\t\t\tstate.wizardYearEndGivingStatementDisplayMessages = action.wizardYearEndGivingStatementDisplayMessages;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tcase AccountConstants.SET_AUTO_ADD_STATE_AND_POSTAL_CODES:\r\n\t\t\tstate.isAutoAddStateAndPostalCodes = action.isAutoAddStateAndPostalCodes;\r\n\r\n\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_AUTO_ADD_STATE_AND_POSTAL_CODES);\r\n\t\t\tbreak;\r\n\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_COUNTRY:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.selectedCountryByForm[action.formParentId] = action.selectedCountry;\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"Cannnot set selected country, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_SELECTED_COUNTRY);\r\n\t\t\tbreak;\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_EMAIL_TYPE:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.selectedEmailTypeByForm[action.formParentId] = action.selectedEmailType;\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"Cannot set selected email type, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_SELECTED_EMAIL_TYPE);\r\n\t\t\tbreak;\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_ORGANIZATION_TYPE:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.selectedOrganizationTypeForm[action.formParentId] = action.selectedOrganizationType;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tLoggerInstance.debug(\"Cannot set selected organization type, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_PAYMENT_TYPE:\r\n\t\t\tif (action.uniqueName) {\r\n\t\t\t\tstate.selectedPaymentTypesByUniqueName[action.uniqueName] = action.selectedPaymentType;\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"Cannot set selected paymentType, action.uniqueName was not provided.\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_SELECTED_PAYMENT_TYPE);\r\n\t\t\tbreak;\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_PHONE_TYPE:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.selectedPhoneTypeByForm[action.formParentId] = action.selectedPhoneType;\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"Cannot set selected phone type, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_SELECTED_PHONE_TYPE);\r\n\t\t\tbreak;\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_STATE:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.selectedStateByForm[action.formParentId] = action.selectedState;\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"Cannot set selected state, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountStore.emitSpecificEvent(AccountConstants.SET_SELECTED_STATE);\r\n\t\t\tbreak;\r\n\r\n\t\tcase AccountConstants.SET_SELECTED_TITLE:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.selectedTitleByForm[action.formParentId] = action.selectedTitle;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tLoggerInstance.debug(\"Cannot set selected title, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.TOGGLE_CREATE_ACCOUNT_FORM_INPUTS:\r\n\t\t\tif (action.formParentId) {\r\n\t\t\t\tstate.formIsInputDisabledByForm[action.formParentId] = action.disabled;\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"Cannnot toggle disable/enable of form inputs, action.formParentId was not provided.\");\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\tLoggerInstance.debug(`Undefined action triggered in account store. ${action.actionType}`);\r\n\t\t\treturn true;\r\n\t};\r\n\r\n\tAccountStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = AccountStore;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"TitleSelector\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass AccountTitleSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedTitle: props.initialValue || \"\",\r\n\t\t\tdisabled: false\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleTitleSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedTitle = event.currentTarget.value;\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tAccountActions.setSelectedTitle(formParentId, selectedTitle);\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\t\tvar parentFormIdForUpdateAllowed = formParentId;\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\t\tparentFormIdForUpdateAllowed = AccountFormHelper.getParentFormIdFromForm($parentFormForUpdateAllowed);\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tdisabled: formParentId ? AccountActions.getIsFormInputDisabled(parentFormIdForUpdateAllowed || formParentId) : false,\r\n\t\t\t\tselectedTitle: AccountActions.getSelectedTitle(formParentId) || \"\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\tvar updateAllowed = true;\r\n\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\tupdateAllowed = !$parentFormForUpdateAllowed.length || $parentFormForUpdateAllowed.is(\"[data-update-allowed]\");\r\n\t\t}\r\n\r\n\t\tAccountActions.setSelectedTitle(formParentId, this.state.selectedTitle);\r\n\t\tAccountStore.addChangeListener(this._onChange);\r\n\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tAccountStore.removeChangeListener(this._onChange);\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\t\tvar updateAllowed = true;\r\n\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\tupdateAllowed = $formParent.is(\"[data-update-allowed]\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountActions.setSelectedTitle(formParentId, null);\r\n\t\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tconfig={this.props.titleConfig}\r\n\t\t\t\tonChange={this.handleTitleSelected.bind(this)}\r\n\t\t\t\twizard={AccountStore.get(\"wizardAccountTitles\")}\r\n\t\t\t\twizardValuesKey=\"availableTitles\"\r\n\t\t\t\tconfigKey=\"availableTitles\"\r\n\t\t\t\treactComponentName=\"AccountTitleSelector\"\r\n\t\t\t\tselectClassName=\"account-title-selector\"\r\n\t\t\t\toptionsClassName=\"availableTitle\"\r\n\t\t\t\tselectNameAttribute=\"title\"\r\n\t\t\t\tinitialValue={this.state.selectedTitle}\r\n\t\t\t\tdisabled={this.state.disabled}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nAccountTitleSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\ttitleConfig: PropTypes.object,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string,\r\n\tdataChildOf: PropTypes.string\r\n};\r\n\r\nmodule.exports = AccountTitleSelector;\r\n","\"use strict\";\r\n\r\nvar BillingAddressSelectionTypes = require(\"../designer/Constants\").BILLING_ADDRESS_SELECTION_TYPES;\r\n\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar DefaultBillingAndShippingAddressHelper = require(\"./DefaultBillingAndShippingAddressHelper\");\r\n\r\nvar BillingAddressHelper = {\r\n\tinitialize: function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (options.defaultBillingAddressType) {\r\n\t\t\t// Save the default so that it can be used later by MyRecurringRefresh and MySubscriptionsRefresh.\r\n\t\t\tthis.defaultBillingAddressType = options.defaultBillingAddressType;\r\n\r\n\t\t\t// On page load, we have to wait for react components to finish loading before we can set default options.\r\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\t\t\t\tthis.selectDefaultBillingAddressTypes();\r\n\t\t\t\tthis.initializeAddressFormListeners();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// 'billingAddressAddFormSelector' is set by MyRecurringRefresh and MySubscriptionsRefresh.\r\n\t\t// In these cases, the DOMContentLoaded event will not be fired, and the address type selector must be set manually.\r\n\t\t// The selector is provided to limit the scope of initialization to the new form being added to the page.\r\n\t\tif (options.billingAddressAddFormSelector) {\r\n\t\t\tthis.selectDefaultBillingAddressTypes(options.billingAddressAddFormSelector);\r\n\t\t}\r\n\r\n\t\tvar $billingAddressSelectors = $(\"select[data-component='billingAddress.selector.select']\");\r\n\r\n\t\t$billingAddressSelectors.off(\"change\");\r\n\t\t$billingAddressSelectors.change((event) => {\r\n\t\t\tthis.handleAddressSelection(event);\r\n\t\t});\r\n\r\n\t\t// We may need to show the Add Form initially if the New Address Option is selected by default.\r\n\t\t$billingAddressSelectors.trigger(\"change\");\r\n\t},\r\n\r\n\tinitializeAddressFormListeners: function () {\r\n\t\tthis.setAddressInputListeners('[data-component=\"createAccountAndCheckout\"] #createAccountForm');\r\n\t\tthis.setAddressInputListeners('[data-component=\"shipToOtherAddresses\"] #addOtherAddresses');\r\n\t},\r\n\r\n\tsetAddressInputListeners: function ($formSelector) {\r\n\t\tvar addressInputSelectors = [\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressLine1']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressLine2']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressLine3']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressLine4']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressCity']`),\r\n\t\t\t$(`${$formSelector} select[name='address.country']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressPostalCode']`),\r\n\t\t\t$(`${$formSelector} [data-shared-name='address.state.field']`),\r\n\t\t\t$(`${$formSelector} select[name='address.state']`),\r\n\t\t\t$(`${$formSelector} input[name='address.state']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressDefaultBillingCheckbox.input']`),\r\n\t\t\t$(`${$formSelector} input[data-component='accountAddressDefaultShippingCheckbox.input']`)\r\n\t\t];\r\n\r\n\t\taddressInputSelectors.forEach($selector => {\r\n\t\t\t$selector.on(\"change\", () => {\r\n\t\t\t\tthis.updateNewAddressInSelector($formSelector);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tselectDefaultBillingAddressTypes: function ($parentSelector) {\r\n\t\t$parentSelector = $parentSelector || $('[data-component=\"billingAddress.addForm\"]');\r\n\t\t$parentSelector.find(`select[name=\"address.type\"] option[value=\"${this.defaultBillingAddressType}\"]`)\r\n\t\t\t.prop(\"selected\", true);\r\n\t},\r\n\r\n\thandleShowOtherAddresses: function ($otherAddresses) {\r\n\t\t$otherAddresses = $($otherAddresses);\r\n\t\tvar $addFormSelectOption = $otherAddresses.find(\"[data-component='otherAddresses.addForm'] input[type='radio'][name='otherAddressesSelector']\");\r\n\t\tif ($addFormSelectOption.prop(\"checked\") === true) {\r\n\t\t\tvar $formSelector = $otherAddresses.find(\"[data-component='otherAddresses.addForm'] #addOtherAddresses\");\r\n\t\t\tthis.updateNewAddressInSelector($formSelector);\r\n\t\t}\r\n\t},\r\n\r\n\thandleAddressSelection: function (event) {\r\n\t\tif (!event || !event.target || event.type !== \"change\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $billingAddress = $(event.target).closest('[data-component=\"billingAddress\"]');\r\n\t\tvar $selector = $billingAddress.find('[data-component=\"billingAddress.selector\"]');\r\n\t\tvar $options = $selector.find(\"option\");\r\n\t\tvar $addForm = $billingAddress.find('[data-component=\"billingAddress.addForm\"]');\r\n\r\n\t\tif ($billingAddress.length <= 0 || $selector.length <= 0 || $addForm.length <= 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// If the selector has no options, show the add form, and hide the selector from the page.\r\n\t\tif (!$options.length) {\r\n\t\t\t$addForm.removeClass(\"hidden\");\r\n\t\t\t$selector.addClass(\"hidden\");\r\n\t\t\t$billingAddress.attr(\"data-current-component\", \"billingAddress.addForm\");\r\n\t\t}\r\n\r\n\t\t$selector.attr(\"data-is-auto-selection-restricted\", \"true\");\r\n\t\tvar $selectedOption = $selector.find(\"option:selected\");\r\n\r\n\t\tif ($selectedOption.length === 1) {\r\n\t\t\tif ($selectedOption.html() === $selector.attr('data-new-address-text')) {\r\n\t\t\t\t$addForm.removeClass(\"hidden\");\r\n\t\t\t\t$billingAddress.attr(\"data-current-component\", \"billingAddress.addForm\");\r\n\t\t\t} else {\r\n\t\t\t\t$addForm.addClass(\"hidden\");\r\n\t\t\t\t$billingAddress.attr(\"data-current-component\", \"billingAddress.selector\");\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tgetBillingAddressInformation: function ($paymentTypeComponent) {\r\n\t\tvar selectionType = BillingAddressSelectionTypes.DEFAULT;\r\n\t\tvar address = {};\r\n\r\n\t\tvar $billingAddress = $paymentTypeComponent.find(\"[data-component='billingAddress']\");\r\n\t\tif ($billingAddress.length) {\r\n\t\t\tvar $selectedOption = $paymentTypeComponent.find(\"[data-component='billingAddress.selector'] option:selected\");\r\n\r\n\t\t\tselectionType = (\r\n\t\t\t\t($selectedOption.length === 0 && BillingAddressSelectionTypes.NEW) ||\r\n\t\t\t\t($selectedOption.attr(\"data-is-new-address-option\") && BillingAddressSelectionTypes.NEW) ||\r\n\t\t\t\t($selectedOption.attr(\"data-is-primary-placeholder-option\") && BillingAddressSelectionTypes.NEW_PRIMARY) ||\r\n\t\t\t\t($selectedOption.attr(\"data-is-ship-to-placeholder-option\") && BillingAddressSelectionTypes.NEW_SHIPPING) ||\r\n\t\t\t\tBillingAddressSelectionTypes.EXISTING\r\n\t\t\t);\r\n\r\n\t\t\tif (selectionType === BillingAddressSelectionTypes.NEW) {\r\n\t\t\t\tvar $addForm = $billingAddress.find(\"[data-component='billingAddress.addForm']\");\r\n\t\t\t\tvar addFormData = AccountFormHelper.serializeAddressForm($addForm.find(\"form\"));\r\n\t\t\t\taddress = addFormData.address;\r\n\t\t\t\taddress.type = $addForm.find(\"select[name='address.type'] option:selected\").val();\r\n\t\t\t}\r\n\r\n\t\t\taddress.id = $selectedOption.val();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tselectionType,\r\n\t\t\taddress\r\n\t\t};\r\n\t},\r\n\r\n\tremoveNewShippingAddressOptionFromSelector: function () {\r\n\t\tthis.removeOptionFromSelector($('option[data-is-ship-to-placeholder-option]'));\r\n\t},\r\n\r\n\tremoveExistingAddressOptionFromSelector: function (addressId) {\r\n\t\tthis.removeOptionFromSelector($(`option[value=\"${addressId}\"]`));\r\n\t},\r\n\r\n\tremoveOptionFromSelector: function ($optionSelector) {\r\n\t\t$('[data-component=\"billingAddress.selector\"]').each((index, element) => {\r\n\t\t\tvar $billingAddressSelector = $(element);\r\n\t\t\tvar $optionToDelete = $billingAddressSelector.find($optionSelector);\r\n\r\n\t\t\tif ($optionToDelete.is(':selected')) {\r\n\t\t\t\tvar $defaultBillingOption = $billingAddressSelector.find('option[data-is-default-billing=\"true\"]');\r\n\t\t\t\tif (!$defaultBillingOption.length) {\r\n\t\t\t\t\t$defaultBillingOption = $billingAddressSelector.find('option[data-is-primary=\"true\"]');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$defaultBillingOption.prop(\"selected\", true);\r\n\t\t\t}\r\n\r\n\t\t\t$optionToDelete.remove();\r\n\t\t});\r\n\t},\r\n\r\n\tupdateEditedAddressInSelector: function (addressId, addressData) {\r\n\t\t$('[data-component=\"billingAddress.selector\"]').each((index, element) => {\r\n\t\t\tvar $billingAddressSelector = $(element);\r\n\t\t\tvar formattedAddress = this.generateFormattedAddress($billingAddressSelector, addressData);\r\n\r\n\t\t\t// update the edited options\r\n\t\t\tvar $editedAddressOption = $billingAddressSelector.find(`option[value=\"${addressId}\"]`);\r\n\t\t\t$editedAddressOption.text(formattedAddress);\r\n\t\t\tthis.updateOptionAddressDataAttributes($editedAddressOption, addressData);\r\n\t\t});\r\n\t},\r\n\r\n\tupdateNewAddressInSelector: function (addressFormSelector) {\r\n\t\tvar $addressForm = $(addressFormSelector);\r\n\t\tvar addressData = AccountFormHelper.serializeAddressForm($addressForm);\r\n\r\n\t\tif (!$('[data-component=\"createAccountAndCheckout\"]').length) {\r\n\t\t\tDefaultBillingAndShippingAddressHelper.serializeCheckboxes($addressForm, addressData);\r\n\t\t}\r\n\r\n\t\tvar isNewShippingAddress = $addressForm.closest('[data-component=\"shipToOtherAddresses\"]').length;\r\n\t\tvar isNewPrimaryAddress = $addressForm.closest('[data-component=\"createAccountAndCheckout\"]').length;\r\n\r\n\t\t// Make sure we update all billing address selectors according to their own formats\r\n\t\t$('[data-component=\"billingAddress.selector\"]').each((index, element) => {\r\n\t\t\tvar $billingAddressSelector = $(element);\r\n\t\t\tvar formattedAddress = this.generateFormattedAddress($billingAddressSelector, addressData);\r\n\t\t\tvar shouldAutoSelectDefaultBillingOption = !$billingAddressSelector.attr(\"data-is-auto-selection-restricted\");\r\n\r\n\t\t\t// choose the new primary address option by default\r\n\t\t\tvar $optionToUpdate = isNewPrimaryAddress && $billingAddressSelector.find(\"option[data-is-primary-placeholder-option]\") || $(null);\r\n\r\n\t\t\tif (isNewShippingAddress) {\r\n\t\t\t\tvar $optionToUpdate = $billingAddressSelector.find(\"option[data-is-ship-to-placeholder-option]\");\r\n\t\t\t\tif (!$optionToUpdate.length) {\r\n\t\t\t\t\t// Add the new option right above the new address option.\r\n\t\t\t\t\tvar $newAddressOption = $billingAddressSelector.find(\"option[data-is-new-address-option]\");\r\n\t\t\t\t\t$newAddressOption.before($('<option data-is-ship-to-placeholder-option=\"true\"></option>').val(\"0\"));\r\n\r\n\t\t\t\t\t$optionToUpdate = $billingAddressSelector.find('option[data-is-ship-to-placeholder-option]');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ($optionToUpdate.length) {\r\n\t\t\t\t// Now that the option is in place, we can update the formatted address description.\r\n\t\t\t\t$optionToUpdate.text(formattedAddress);\r\n\t\t\t\tthis.updateOptionAddressDataAttributes($optionToUpdate, addressData);\r\n\t\t\t\tif (shouldAutoSelectDefaultBillingOption) {\r\n\t\t\t\t\t$billingAddressSelector.find('option[data-is-default-billing=\"true\"]').prop(\"selected\", true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tupdateOptionAddressDataAttributes: function ($option, addressFormData) {\r\n\t\tvar address = (addressFormData || {}).address || {};\r\n\t\t$option.attr(\"data-is-primary\", address.isPrimary ? \"true\" : \"false\");\r\n\t\t$option.attr(\"data-line1\", address.line1);\r\n\t\t$option.attr(\"data-line2\", address.line2);\r\n\t\t$option.attr(\"data-line3\", address.line3);\r\n\t\t$option.attr(\"data-line4\", address.line4);\r\n\t\t$option.attr(\"data-city\", address.city);\r\n\t\t$option.attr(\"data-state\", address.state);\r\n\t\t$option.attr(\"data-postal-code\", address.postalCode);\r\n\t\t$option.attr(\"data-country\", address.country);\r\n\t\t$option.attr(\"data-is-default-billing\", address.isDefaultBilling ? \"true\" : \"false\");\r\n\t\t$option.attr(\"data-is-default-shipping\", address.isDefaultShipping ? \"true\" : \"false\");\r\n\t\t$option.attr(\"data-type\", address.type);\r\n\t},\r\n\r\n\tgenerateFormattedAddress: function ($billingAddressSelector, addressFormData) {\r\n\t\tvar address = (addressFormData || {}).address || {};\r\n\t\tvar formatOptions = this.getFormatOptions($billingAddressSelector);\r\n\t\tvar addressFormat = formatOptions.addressFormat;\r\n\t\tvar separator = formatOptions.separator;\r\n\t\tvar defaultBillingDesignation = formatOptions.defaultBillingDesignation;\r\n\r\n\t\t// All address formats start with Line 1.\r\n\t\tvar formattedAddress = address.line1;\r\n\r\n\t\tif (addressFormat.includes(\"Line 2\") && address.line2) {\r\n\t\t\tformattedAddress += `${separator}${address.line2}`;\r\n\t\t}\r\n\r\n\t\tif (addressFormat.includes(\"City\") && address.city) {\r\n\t\t\tformattedAddress += `${separator}${address.city}`;\r\n\t\t}\r\n\r\n\t\tif (addressFormat.includes(\"State\") && address.state) {\r\n\t\t\tformattedAddress += `${separator}${address.state}`;\r\n\t\t}\r\n\r\n\t\tif (addressFormat.includes(\"Postal Code\") && address.postalCode) {\r\n\t\t\tformattedAddress += `${separator}${address.postalCode}`;\r\n\t\t}\r\n\r\n\t\tif (addressFormat.includes(\"Country\") && address.country) {\r\n\t\t\tformattedAddress += `${separator}${address.country}`;\r\n\t\t}\r\n\r\n\t\tif (defaultBillingDesignation && address.isDefaultBilling) {\r\n\t\t\tif (formatOptions.defaultBillingDesignationPosition == \"Beginning\") {\r\n\t\t\t\tformattedAddress = `${defaultBillingDesignation}${formattedAddress}`;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tformattedAddress = `${formattedAddress}${defaultBillingDesignation}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn formattedAddress;\r\n\t},\r\n\r\n\tgetFormatOptions: function ($billingAddressSelector) {\r\n\t\t$billingAddressSelector = $($billingAddressSelector) || $(null);\r\n\r\n\t\treturn {\r\n\t\t\taddressFormat: $billingAddressSelector.attr(\"data-address-format\"),\r\n\t\t\tseparator: $billingAddressSelector.attr(\"data-separator\"),\r\n\t\t\tdefaultBillingDesignationPosition: $billingAddressSelector.attr(\"data-default-billing-designation-position\"),\r\n\t\t\tdefaultBillingDesignation: $billingAddressSelector.attr(\"data-default-billing-designation\"),\r\n\t\t};\r\n\t}\r\n};\r\n\r\nmodule.exports = BillingAddressHelper;\r\n","\"use strict\";\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar Spinner = require(\"../client/Spinner\");\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar textAreaSelector = `.childCommunicationsWriteTextArea`;\r\nvar writeCommunicationsSelector = `[data-component=\"childCommunicationsWrite\"]`;\r\n\r\nvar ChildCommunicationsHelper = {\r\n\tsaveChildCommunications: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Save Child Communications called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar message = AccountStore.get(WizardConstants.WIZARDS.CHILD_COMMUNICATIONS_MESSAGES).confirmSend;\r\n\r\n\t\tBootstrapPrompt.confirm({\r\n\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\tmessage: message\r\n\t\t}, (result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t\tvar $target = $(event.target);\r\n\t\t\t\tvar $textArea = $target.find(textAreaSelector);\r\n\r\n\t\t\t\tvar communication = {};\r\n\t\t\t\tcommunication.communicationData = $textArea.val();\r\n\t\t\t\t//Get the current sponsorship id from the url.\r\n\t\t\t\tvar sponsorshipId = window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1);\r\n\r\n\t\t\t\tAccountApi.childCommunicationsSaveCommunication(communication, sponsorshipId).done((data) => {\r\n\t\t\t\t\tvar stayFunction = (overrideMessage) => {\r\n\t\t\t\t\t\tvar successMessage = overrideMessage ? overrideMessage : AccountStore.get(WizardConstants.WIZARDS.CHILD_COMMUNICATIONS_MESSAGES).sendSuccess;\r\n\r\n\t\t\t\t\t\tBootstrapPrompt.success(successMessage, () => {\r\n\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(writeCommunicationsSelector, {\r\n\t\t\t\t\t\tonNoPostSubmitAction: stayFunction,\r\n\t\t\t\t\t\tonNoStayMessage: stayFunction,\r\n\t\t\t\t\t\tonStayMessage: stayFunction\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}).fail((jqXHR) => {\r\n\t\t\t\t\tSpinner.removeSpinner()\r\n\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinitializeListeners: function() {\r\n\t\tvar $textArea = $(textAreaSelector);\r\n\r\n\t\tvar handlePaste = (event) => {\r\n\t\t\tvar clipboardData,\r\n\t\t\t\tpastedData,\r\n\t\t\t\tmatch;\r\n\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tclipboardData = event.clipboardData || (event.originalEvent ? event.originalEvent.clipboardData : undefined) || window.clipboardData;\r\n\r\n\t\t\tif (!clipboardData) {\r\n\t\t\t\tBootstrapPrompt.alert(\"Unable to access the clipboard\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tpastedData = clipboardData.getData(\"Text\");\r\n\r\n\t\t\t//Remove all HTML\r\n\t\t\tpastedData = pastedData.replace(/<.*?>/g, \"\");\r\n\r\n\t\t\twindow.document.execCommand(\"insertHTML\", false, pastedData);\r\n\t\t};\r\n\t\tvar $communicationForm = $(writeCommunicationsSelector).find(\"form\");\r\n\r\n\t\t$communicationForm.on(\"submit.childCommunicationsWrite\", ChildCommunicationsHelper.saveChildCommunications.bind(this));\r\n\t\t$textArea.on(\"paste\", handlePaste);\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t}\r\n}\r\n\r\nmodule.exports = ChildCommunicationsHelper;","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"CountrySelector\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nclass CountrySelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar countryConfig = props.countryConfig || {};\r\n\t\tvar availableCountries = countryConfig.availableCountries || [];\r\n\t\tvar selectedCountry;\r\n\t\tvar wizardCountryList;\r\n\t\tvar allowedAvailableCountries;\r\n\t\tvar wizardCountryList;\r\n\r\n\t\t// If we are on the client side\r\n\t\tif (typeof (window) !== \"undefined\") {\r\n\t\t\twizardCountryList = AccountStore.get(\"wizardCountryList\");\r\n\r\n\t\t\tif (!countryConfig.availableCountries) {\r\n\t\t\t\t//This means we do not have the config set up yet.\r\n\t\t\t\tcountryConfig = {\r\n\t\t\t\t\tdefaultCountry: wizardCountryList.defaultCountry,\r\n\t\t\t\t\tavailableCountries: wizardCountryList.availableCountries.map(availableCountry => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tvalue: availableCountry,\r\n\t\t\t\t\t\t\tdescription: wizardCountryList[`${availableCountry}_Description`],\r\n\t\t\t\t\t\t\tuseDefaultDescription: true\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tavailableCountries = countryConfig.availableCountries ? countryConfig.availableCountries.slice(0) : []; // clone the array to avoid reference\r\n\r\n\t\t\tif (wizardCountryList) {\r\n\t\t\t\tallowedAvailableCountries = wizardCountryList.availableCountries || [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (allowedAvailableCountries) {\r\n\t\t\tvar availableCountry;\r\n\t\t\tfor (var index = availableCountries.length - 1; index >= 0; --index) {\r\n\t\t\t\tavailableCountry = availableCountries[index];\r\n\t\t\t\tvar allowedIndex = allowedAvailableCountries.indexOf(availableCountry.value);\r\n\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t// AvailableCountry is not allowed\r\n\t\t\t\t\tavailableCountries.splice(index, 1);\r\n\t\t\t\t} else if (availableCountry.useDefaultDescription) {\r\n\t\t\t\t\t// AvailableCountry should use default description\r\n\t\t\t\t\tavailableCountry.description = wizardCountryList[`${availableCountry.value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!selectedCountry) {\r\n\t\t\tselectedCountry = props.initialValue || countryConfig.defaultCountry || (availableCountries.length > 0 ? availableCountries[0].value : \"\");\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tavailableCountries,\r\n\t\t\tselectedCountry,\r\n\t\t\tdisabled: false\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleCountrySelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedCountry = event.currentTarget.value;\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tAccountActions.setSelectedCountry(formParentId, selectedCountry);\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\t\t\tthis.setState({\r\n\t\t\t\tselectedCountry: AccountActions.getSelectedCountry(formParentId),\r\n\t\t\t\tdisabled: formParentId ? AccountActions.getIsFormInputDisabled(formParentId) : false\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\r\n\t\t// At this point, selectedCountry has been set by the component\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\tvar updateAllowed = true;\r\n\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed only applies to createAccountForm\r\n\t\t\tupdateAllowed = !$formParent.is(\"[data-component='createAccountForm']\") || $formParent.is(\"[data-update-allowed]\");\r\n\t\t}\r\n\r\n\t\tAccountActions.setSelectedCountry(formParentId, this.state.selectedCountry);\r\n\t\tAccountStore.addChangeListener(this._onChange);\r\n\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tAccountStore.removeChangeListener(this._onChange);\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\t\tvar updateAllowed = true;\r\n\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\tupdateAllowed = $formParent.is(\"[data-update-allowed]\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountActions.setSelectedCountry(formParentId, null);\r\n\t\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name=\"CountrySelector\"\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tclassName={classNames(\"country-selector form-control\", this.props.childClass)}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tname=\"address.country\"\r\n\t\t\t\t\tonChange={this.handleCountrySelected.bind(this)}\r\n\t\t\t\t\tdata-required={this.props.dataRequired}\r\n\t\t\t\t\trequired={this.props.required || this.props.dataRequired}\r\n\t\t\t\t\tvalue={this.state.selectedCountry}\r\n\t\t\t\t\tdisabled={this.state.disabled}\r\n\t\t\t\t>\r\n\t\t\t\t\t{this.state.availableCountries.map((availableCountry) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className=\"availableCountry\" key={availableCountry.value} value={availableCountry.value}>\r\n\t\t\t\t\t\t\t\t{availableCountry.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCountrySelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tcountryConfig: PropTypes.object,\r\n\tdataRequired: PropTypes.bool,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string,\r\n\tinitialValue: PropTypes.string,\r\n\tdataChildOf: PropTypes.string\r\n};\r\n\r\nmodule.exports = CountrySelector;\r\n","\"use strict\";\r\n\r\nvar DefaultBillingAndShippingAddressHelper = {\r\n\tinitialize: function () {\r\n\t\tvar $accountAddressDefaultBillingCheckbox = $(\"[data-component='accountAddressDefaultBillingCheckbox']\");\r\n\r\n\t\t$accountAddressDefaultBillingCheckbox.off(\"click.defaultBillingHelper\");\r\n\t\t$accountAddressDefaultBillingCheckbox.on(\"click.defaultBillingHelper\", (event) => {\r\n\t\t\t// 'event.currentTarget' is the accountAddressDefaultBillingCheckbox component\r\n\t\t\tvar $input = $(event.currentTarget).find(\"[data-component='accountAddressDefaultBillingCheckbox.input']\");\r\n\r\n\t\t\t// if event.target is not the input itself, we need to manually check it since it wasn't directly clicked.\r\n\t\t\tif (!$(event.target).is($input) && !$input.attr(\"disabled\")) {\r\n\t\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t\t}\r\n\r\n\t\t\tif (!$input.parents(\"[data-component='otherAddresses.populated.singleAddress.edit']\").length) {\r\n\t\t\t\tvar $otherInputs = $accountAddressDefaultBillingCheckbox.find(\"[data-component='accountAddressDefaultBillingCheckbox.input']\").not($input);\r\n\t\t\t\t$otherInputs.prop(\"checked\", false);\r\n\t\t\t\t$otherInputs.trigger(\"change\");\r\n\t\t\t}\r\n\r\n\t\t\t$input.trigger(\"change\");\r\n\t\t});\r\n\r\n\t\tvar $accountAddressDefaultShippingCheckbox = $(\"[data-component='accountAddressDefaultShippingCheckbox']\");\r\n\r\n\t\t$accountAddressDefaultShippingCheckbox.off(\"click.defaultShippingHelper\");\r\n\t\t$accountAddressDefaultShippingCheckbox.on(\"click.defaultShippingHelper\", (event) => {\r\n\t\t\t// 'event.currentTarget' is the accountAddressDefaultShippingCheckbox component\r\n\t\t\tvar $input = $(event.currentTarget).find(\"[data-component='accountAddressDefaultShippingCheckbox.input']\");\r\n\r\n\t\t\t// if event.target is not the input itself, we need to manually check it since it wasn't directly clicked.\r\n\t\t\tif (!$(event.target).is($input) && !$input.attr(\"disabled\")) {\r\n\t\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t\t}\r\n\r\n\t\t\tif (!$input.parents(\"[data-component='otherAddresses.populated.singleAddress.edit']\").length) {\r\n\t\t\t\tvar $otherInputs = $accountAddressDefaultShippingCheckbox.find(\"[data-component='accountAddressDefaultShippingCheckbox.input']\").not($input);\r\n\t\t\t\t$otherInputs.prop(\"checked\", false);\r\n\t\t\t\t$otherInputs.trigger(\"change\");\r\n\t\t\t}\r\n\r\n\t\t\t$input.trigger(\"change\");\r\n\t\t});\r\n\t},\r\n\r\n\tserializeCheckboxes: function ($form, address) {\r\n\t\tif (!address) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ($form.find(\"[name='address.isDefaultBilling']\").length > 0) {\r\n\t\t\tvar $defaultBillingCheckboxInput = $form.find(\"[name='address.isDefaultBilling']\");\r\n\t\t\taddress.isDefaultBilling = $defaultBillingCheckboxInput.prop(\"checked\");\r\n\t\t\taddress.haveAddressDefaultsChanged = address.isDefaultBilling !== ($defaultBillingCheckboxInput.attr(\"data-checked\") === \"True\");\r\n\t\t}\r\n\t\tif ($form.find(\"[name='address.isDefaultShipping']\").length > 0) {\r\n\t\t\tvar $defaultShippingCheckboxInput = $form.find(\"[name='address.isDefaultShipping']\");\r\n\t\t\taddress.isDefaultShipping = $defaultShippingCheckboxInput.prop(\"checked\");\r\n\t\t\taddress.haveAddressDefaultsChanged = address.haveAddressDefaultsChanged || address.isDefaultShipping !== ($defaultShippingCheckboxInput.attr(\"data-checked\") === \"True\");\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = DefaultBillingAndShippingAddressHelper;\r\n","\"use strict\";\r\n\r\nvar Dispatcher = require(\"flux\").Dispatcher;\r\n\r\nmodule.exports = new Dispatcher();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"OtherAddressesHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\nvar DefaultBillingAndShippingAddressHelper = require(\"./DefaultBillingAndShippingAddressHelper\");\r\nvar SmartyStreets = require(\"./SmartyStreets\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar BillingAddressHelper = require(\"../accountComponents/BillingAddressHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar singleDocumentSelector = \"[data-component='documents.populated.document']\";\r\nvar singleDocumentTypeSelector = \"[data-component='documents.populated.documentType']\";\r\n\r\nvar DocumentsHelper = {\r\n\tinitialize: function (isDesignMode, $documentsComponent) {\r\n\t\tvar $parentSelector = $documentsComponent || $('body');\r\n\r\n\t\t$parentSelector.find(singleDocumentSelector).click((event) => {\r\n\t\t\twindow.AccountActions.downloadDocument(event);\r\n\t\t});\r\n\r\n\t\t$parentSelector.find(singleDocumentTypeSelector).click((event) => {\r\n\t\t\tvar $documentType = $(event.currentTarget).closest(singleDocumentTypeSelector);\r\n\t\t\twindow.AccountActions.loadDocumentsPartial(event, $documentType.attr(\"data-document-type-code\"));\r\n\t\t});\r\n\t},\r\n};\r\n\r\nmodule.exports = DocumentsHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"GivingStatementHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar GivingStatementRequestFormSelector = \"[data-component='givingStatementRequestForm']\";\r\nvar PrintGivingStatementButtonSelector = \"[data-component='printGivingStatementButton']\";\r\nvar StartDateSelector = \"[data-component='givingStatementRequestForm.startDate']\";\r\nvar EndDateSelector = \"[data-component='givingStatementRequestForm.endDate']\";\r\n\r\nvar GivingStatementHelper = {\r\n\tformatDate(dateObj) {\r\n\t\treturn dateObj.format(\"YYYY-MM-DD\");\r\n\t},\r\n\r\n\tgetDateFromString: function (dateString) {\r\n\t\tvar date = moment(dateString);\r\n\r\n\t\t//Moment essentially converts something like \"010121\" in \"01/01/10121\" so making sure the year range is valid for dates\r\n\t\tif (!date.isValid() || date.year() < 1753 || date.year() > 9999) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn date;\r\n\t},\r\n\r\n\tinitializeGivingStatementRequestForm: function (event) {\r\n\t\tvar $form = $(GivingStatementRequestFormSelector);\r\n\r\n\t\tif (!$form.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$form.off(\"submit.givingStatementRequestForm\");\r\n\t\t$form.on(\"submit.givingStatementRequestForm\", this.submitRequest.bind(this));\r\n\t},\r\n\r\n\tinitializePrintButtons: function (event) {\r\n\t\t$(PrintGivingStatementButtonSelector).each((index, button) => {\r\n\t\t\tvar $button = $(button);\r\n\r\n\t\t\t$button.off(\"click.printGivingStatementButton\");\r\n\t\t\t$button.on(\"click.printGivingStatementButton\", this.printGivingStatement.bind(this));\r\n\t\t});\r\n\t},\r\n\r\n\tprintGivingStatement: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Print giving statement request called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.print();\r\n\t},\r\n\r\n\tsubmitRequest: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Giving statement request called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// we need to parse out start and end date,\r\n\t\t// and then redirect to the statement page with dates in url parameters.\r\n\t\tvar $form = $(event.target);\r\n\r\n\t\tvar startMoment = this.getDateFromString($form.find(StartDateSelector).val());\r\n\t\tvar endMoment = this.getDateFromString($form.find(EndDateSelector).val());\r\n\r\n\t\tif (startMoment === null || endMoment === null) {\r\n\t\t\tBootstrapPrompt.alert(\r\n\t\t\t\tAccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.YEAR_END_GIVING_STATEMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.YEAR_END_GIVING_STATEMENT_MESSAGE_FIELDS.INVALID_DATE\r\n\t\t\t\t));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (startMoment.isSameOrAfter(endMoment)) {\r\n\t\t\tBootstrapPrompt.alert(\r\n\t\t\t\tAccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.YEAR_END_GIVING_STATEMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.YEAR_END_GIVING_STATEMENT_MESSAGE_FIELDS.INVALID_DATE_RANGE\r\n\t\t\t\t));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar urlString = `/yearendgivingstatement?startDate=${this.formatDate(startMoment)}&endDate=${this.formatDate(endMoment)}`;\r\n\r\n\t\twindow.location.href = urlString;\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage);\r\n\t}\r\n};\r\n\r\nmodule.exports = GivingStatementHelper;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass MyPledgesEditFrequencySelector extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tconfig={this.props.frequencies} /*Needs to be frequencies because the FrequencyPropertyMap is hard-coded to this*/\r\n\t\t\t\twizard={window.ProjectStore.get(\"wizardFrequencies\")}\r\n\t\t\t\twizardValuesKey=\"allowedFrequencies\"\r\n\t\t\t\tconfigKey=\"availableFrequencies\"\r\n\t\t\t\treactComponentCategory=\"MyPledgesEditFrequencySelector\"\r\n\t\t\t\treactComponentName=\"MyPledgesEditFrequencySelector\"\r\n\t\t\t\tselectClassName=\"frequency-selector\"\r\n\t\t\t\toptionsClassName=\"availableFrequency\"\r\n\t\t\t\tselectNameAttribute=\"frequency\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nMyPledgesEditFrequencySelector.propTypes = {\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tfrequencies: PropTypes.object,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\treactComponentCategory: PropTypes.string,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string\r\n};\r\n\r\nmodule.exports = MyPledgesEditFrequencySelector;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"MyPledgesHelper\");\r\n\r\nvar AbstractPledgeManagementHelper = require(\"./AbstractPledgeManagementHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\n\r\nvar MyPledgesHelper = class extends AbstractPledgeManagementHelper {\r\n\tconstructor() {\r\n\t\tvar singlePledgeEditComponentName = \"myPledges.populated.singlePledge.edit\";\r\n\t\tvar donateToAllCheckboxComponentName = \"myPledgesDonateToAll\";\r\n\t\tvar donateToSingleCheckboxComponentName = \"myPledgesDonateToSingle\";\r\n\r\n\t\tsuper({\r\n\t\t\tcancelPledgeEditLinkMessageMapper: \"cancelMyPledgeEdit\",\r\n\t\t\tcancelWholePledgeLinkMessageMapper: \"cancelMyPledge\",\r\n\t\t\tcomponentSelector: \"[data-component='myPledges']\",\r\n\t\t\tdisplayMessagesWizard: \"wizardMyPledgesDisplayMessages\",\r\n\t\t\tdonateToAllCheckboxComponentName,\r\n\t\t\tdonateToAllCheckboxSelector: `input[data-component=\"${donateToAllCheckboxComponentName}\"]`,\r\n\t\t\tdonateToSingleCheckboxComponentName,\r\n\t\t\tdonateToSingleCheckboxSelector: `input[data-component=\"${donateToSingleCheckboxComponentName}\"]`,\r\n\t\t\teditMyPledgeLinkMessageMapper: \"editMyPledge\",\r\n\t\t\tmakeDonationSelector: \"[data-component='myPledgesMakeDonation']\",\r\n\t\t\tmyRecurringPopulatedSingleRecurringSelector: \"[data-component='myRecurring.populated.singleRecurring']\",\r\n\t\t\tmyRecurringSelector: \"[data-component='myRecurring']\",\r\n\t\t\tsinglePledgeEditComponentName,\r\n\t\t\tsinglePledgeSelector: \"[data-component='myPledges.populated.singlePledge']\",\r\n\t\t\tsinglePledgeEditSelector: `[data-component='${singlePledgeEditComponentName}']`,\r\n\t\t\tsinglePledgeEditAmountSelector: \"[data-component='myPledges.populated.singlePledge.edit.amount']\"\r\n\t\t});\r\n\t}\r\n\r\n\tgetMyPledgeHtml(event, isEditing, newPledgeId) {\r\n\t\treturn this.getComponentHtml(event, newPledgeId, ($currentPledge, pledgeId, componentId, deferred) => {\r\n\t\t\tAccountApi.myPledgeGet(pledgeId, componentId, isEditing, /*sponsorshipType*/ \"NONE\").done((data) => {\r\n\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\tvar $newEditForm = $data.find(\"form#editMyPledge\");\r\n\t\t\t\tvar newId = $newEditForm.attr(\"id\") + \"-\" + $data.closest(\"[data-component='myPledges.populated.singlePledge']\").attr(\"data-pledge-id\");\r\n\t\t\t\tHtmlHelper.setUniqueFormId($newEditForm, newId);\r\n\r\n\t\t\t\t$currentPledge.replaceWith($data);\r\n\t\t\t\tif (isEditing) {\r\n\t\t\t\t\tthis.initializeEdit($data);\r\n\t\t\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.initializeComponent($data);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdeferred.resolve($data);\r\n\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\tthis._resolveError(jqXHR, textStatus, deferred);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tcancelMyPledgeEdit(event) {\r\n\t\treturn super.cancelPledgeEdit(event, ($currentPledge) => {\r\n\t\t\tthis.getMyPledgeHtml(event, /*isEditing*/false, null)\r\n\t\t\t\t.always(() => Spinner.removeSpinner($currentPledge));\r\n\t\t});\r\n\t}\r\n\r\n\tcancelWholePledge(event) {\r\n\t\treturn super.cancelWholePledge(event, ($currentPledge, pledgeId) => {\r\n\t\t\t//Call API to delete\r\n\t\t\tAccountApi.myPledgesCancel(pledgeId, /*sponsorshipType*/ \"NONE\").done((data) => {\r\n\t\t\t\tvar $pledges = $currentPledge.closest(\"[data-component='myPledges']\");\r\n\r\n\t\t\t\tif ((data || {}).refresh || $pledges.find(\"[data-component='myPledges.populated.singlePledge']\").length <= 1) {\r\n\t\t\t\t\t//If we canceled the last pledge or canceled a pledge with a recurring, we want to reload the entire page\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($currentPledge);\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t}\r\n\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\teditMyPledge(event) {\r\n\t\treturn super.editPledge(event, ($currentPledge) => {\r\n\t\t\tthis.getMyPledgeHtml(event, /*isEditing*/true, null)\r\n\t\t\t\t.always(() => Spinner.removeSpinner($currentPledge));\r\n\t\t});\r\n\t}\r\n\r\n\tmakeDonation(event, isDesignMode) {\r\n\t\treturn super.makeDonation(event, isDesignMode, (pledgeIds) => {\r\n\t\t\tvar shortComment;\r\n\t\t\tif (typeof window.makeDonationToPledgeShortComment === 'string' || window.makeDonationToPledgeShortComment instanceof String) {\r\n\t\t\t\tshortComment = window.makeDonationToPledgeShortComment;\r\n\t\t\t}\r\n\r\n\t\t\tAccountApi.myPledgesMakeDonation({ pledgeIds }, /*sponsorshipType*/ \"NONE\", shortComment).done((response) => {\r\n\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t{ tangibleType: \"donation(s)\" }\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tinitializeMyPledges($component, isDesignMode) {\r\n\t\tsuper.initializeComponent($component, isDesignMode);\r\n\t}\r\n\r\n\tinitializeMyPledgesEdit($component) {\r\n\t\tsuper.initializeEdit($component);\r\n\t}\r\n\r\n\tsaveMyPledge(event) {\r\n\t\treturn super.save(event, ($currentPledge, pledgeId, componentId, editPledgeData) => {\r\n\t\t\t//Call API to edit\r\n\t\t\tAccountApi.myPledgesEdit(pledgeId, componentId, editPledgeData, /*sponsorshipType*/ \"NONE\").done((data) => {\r\n\t\t\t\tvar actionData = SubmitButtonHelper.getPostSubmitActionData(`[data-component='${this.singlePledgeEditComponentName}']`);\r\n\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\t$currentPledge.replaceWith($data);\r\n\t\t\t\tthis.initializeMyPledges($data);\r\n\t\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\r\n\t\t\t\tthis._refreshAssociatedRecurringHtml(pledgeId).done(() => Spinner.removeSpinner());\r\n\r\n\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\r\n\t\t\t\t\t`[data-component='${this.singlePledgeEditComponentName}']`,\r\n\t\t\t\t\t{ actionData }\r\n\t\t\t\t);\r\n\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new MyPledgesHelper();","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass MyRecurringHeaderEditFrequencySelectorComponent extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\thideEmptyOption={!this.props.isDesignMode}\r\n\t\t\t\tconfig={this.props.frequencies} /*Needs to be frequencies because the FrequencyPropertyMap is hard-coded to this*/\r\n\t\t\t\twizard={window.ProjectStore.get(\"wizardFrequencies\")}\r\n\t\t\t\twizardValuesKey=\"allowedFrequencies\"\r\n\t\t\t\tconfigKey=\"availableFrequencies\"\r\n\t\t\t\treactComponentCategory=\"MyRecurringHeaderEditFrequencySelector\"\r\n\t\t\t\treactComponentName=\"MyRecurringHeaderEditFrequencySelector\"\r\n\t\t\t\tselectClassName=\"frequency-selector\"\r\n\t\t\t\toptionsClassName=\"availableFrequency\"\r\n\t\t\t\tselectNameAttribute=\"frequency\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nMyRecurringHeaderEditFrequencySelectorComponent.propTypes = {\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tfrequencies: PropTypes.object,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\treactComponentCategory: PropTypes.string,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string\r\n};\r\n\r\nmodule.exports = MyRecurringHeaderEditFrequencySelectorComponent;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass MyRecurringHeaderEditUseOnDaySelectorComponent extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\thideEmptyOption={!this.props.isDesignMode}\r\n\t\t\t\tconfig={this.props.useOnDays} /*Needs to be useOnDays because the UseOnDaySElectorPropertyMap is hard-coded to this*/\r\n\t\t\t\twizard={window.ProjectStore.get(\"wizardUseOnDays\")}\r\n\t\t\t\twizardValuesKey=\"allowedUseOnDays\"\r\n\t\t\t\tconfigKey=\"availableUseOnDays\"\r\n\t\t\t\treactComponentCategory=\"MyRecurringHeaderEditUseOnDaySelector\"\r\n\t\t\t\treactComponentName=\"MyRecurringHeaderEditUseOnDaySelector\"\r\n\t\t\t\tselectClassName=\"use-on-day-selector\"\r\n\t\t\t\toptionsClassName=\"availableUseOnDay\"\r\n\t\t\t\tselectNameAttribute=\"useOnDay\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nMyRecurringHeaderEditUseOnDaySelectorComponent.propTypes = {\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\treactComponentCategory: PropTypes.string,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tuseOnDays: PropTypes.object\r\n};\r\n\r\nmodule.exports = MyRecurringHeaderEditUseOnDaySelectorComponent;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"MyRecurringHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\nvar MyPledgesHelper = require(\"./MyPledgesHelper\");\r\nvar MyRecurringRefresh = require(\"./MyRecurringRefresh\");\r\nvar MySponsorshipsHelper = require(\"./MySponsorshipsHelper\");\r\n\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar BillingAddressSelectionTypes = require(\"../designer/Constants\").BILLING_ADDRESS_SELECTION_TYPES;\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar myPledgesSelector = \"[data-component='myPledges']\";\r\n\r\nvar mySponsorshipsSelector = \"[data-component='mySponsorships']\";\r\n\r\nvar myRecurringSelector = \"[data-component='myRecurring']\";\r\nvar myRecurringDonationEditDonationAmountSelector = \"[data-component='myRecurringDonations.edit.donationAmount']\";\r\nvar myRecurringPopulatedSingleRecurringSelector = \"[data-component='myRecurring.populated.singleRecurring']\";\r\nvar myRecurringDonationsSelector = \"[data-component='myRecurringDonations']\";\r\nvar myRecurringDonationsPopulatedViewSelector = \"[data-component='myRecurringDonations.populated.view']\";\r\nvar myRecurringDonationsEditSelector = \"[data-component='myRecurringDonations.edit']\";\r\nvar myRecurringHeaderSelector = \"[data-component='myRecurringHeader']\";\r\nvar myRecurringHeaderViewSelector = \"[data-component='myRecurringHeader.view']\";\r\nvar myRecurringHeaderEditSelector = \"[data-component='myRecurringHeader.edit']\";\r\nvar myRecurringPaymentSelector = \"[data-component='myRecurringPayment']\";\r\nvar myRecurringPaymentEditSelector = \"[data-component='myRecurringPayment.editPayment']\";\r\nvar myRecurringPaymentViewSelector = \"[data-component='myRecurringPayment.viewCreditCard'],[data-component='myRecurringPayment.viewEft']\";\r\n\r\nvar MyRecurringHelper = {\r\n\tcancelRecurringDonationEdit: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"cancelRecurringDonationEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $donationEdit = $(event.target).closest(myRecurringDonationsEditSelector);\r\n\t\tvar donationId = $donationEdit.attr(\"data-donation-id\");\r\n\r\n\t\tSpinner.showSpinner($donationEdit);\r\n\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ false, {\r\n\t\t\tdonationId,\r\n\t\t\tusingDonations: true\r\n\t\t}).always(() => Spinner.removeSpinner($donationEdit));\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelRecurringHeaderEdit: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"cancelRecurringHeaderEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $headerEdit = $(event.target).closest(myRecurringHeaderEditSelector);\r\n\t\tSpinner.showSpinner($headerEdit);\r\n\r\n\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ false, {\r\n\t\t\tusingHeader: true\r\n\t\t}).always(() => Spinner.removeSpinner($headerEdit));\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelRecurringPaymentEdit: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"cancelRecurringPaymentEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $paymentEdit = $(event.target).closest(myRecurringPaymentEditSelector);\r\n\t\tSpinner.showSpinner($paymentEdit);\r\n\r\n\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ false, {\r\n\t\t\tusingPayment: true\r\n\t\t}).always(() => Spinner.removeSpinner($paymentEdit));\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelWholeRecurring: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"cancelRecurring\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tBootstrapPrompt.confirm({\r\n\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\tmessage: AccountStore.get(\"wizardMyRecurringDisplayMessages\").cancelRecurring,\r\n\t\t\ttitle: \"\"\r\n\t\t}, (result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t\tvar $currentRecurring = $(event.target).closest(myRecurringPopulatedSingleRecurringSelector);\r\n\t\t\t\tvar recurringId = $currentRecurring.attr(\"data-recurring-id\");\r\n\r\n\t\t\t\t//Call API to delete\r\n\t\t\t\tAccountApi.myRecurringCancel(recurringId).done(() => {\r\n\t\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($currentRecurring);\r\n\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t}).always(() => Spinner.removeSpinner());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tdeleteRecurringDonation: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"deleteRecurringDonation\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $target = $(event.target);\r\n\t\tvar $currentRecurring = $target.closest(myRecurringPopulatedSingleRecurringSelector);\r\n\t\tvar recurringId = $currentRecurring.attr(\"data-recurring-id\");\r\n\r\n\t\tvar $donationPopulatedView = $target.closest(myRecurringDonationsPopulatedViewSelector);\r\n\t\tvar donationId = $donationPopulatedView.attr(\"data-donation-id\");\r\n\t\tvar pledgeId = $donationPopulatedView.attr(\"data-pledge-id\");\r\n\r\n\t\tvar message;\r\n\r\n\t\tif (pledgeId > 0) {\r\n\t\t\tmessage = AccountStore.get(\"wizardMyRecurringDisplayMessages\").deleteRecurringDonationWithPledge;\r\n\t\t} else {\r\n\t\t\tmessage = AccountStore.get(\"wizardMyRecurringDisplayMessages\").deleteRecurringDonation;\r\n\t\t}\r\n\r\n\t\tBootstrapPrompt.confirm({\r\n\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\tmessage: message\r\n\t\t}, (result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t\t//Call API to delete\r\n\t\t\t\tAccountApi.myRecurringDeleteDonation(recurringId, donationId).done((data) => {\r\n\t\t\t\t\tdata = data || {};\r\n\t\t\t\t\tdata.response = data.response || {};\r\n\t\t\t\t\tif (data.response.deleteType === \"recurringHeader\") {\r\n\t\t\t\t\t\t//There was only 1 donation distribution, we are canceling the recurring\r\n\t\t\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($currentRecurring);\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//Since we only deleted a single donation, we need to refresh the header as the amounts have changed.\r\n\t\t\t\t\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ false, {\r\n\t\t\t\t\t\t\tusingHeader: true\r\n\t\t\t\t\t\t}).always(() => {\r\n\t\t\t\t\t\t\t//There was more than 1 donation distribution, so we went ahead and deleted it\r\n\t\t\t\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($donationPopulatedView);\r\n\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditRecurringDonation: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"editRecurringDonation\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Getting myRecurring.donations.populated.view\r\n\t\tvar $donationView = $(event.target).closest(myRecurringDonationsPopulatedViewSelector);\r\n\t\tSpinner.showSpinner($donationView);\r\n\r\n\t\tvar donationId = $donationView.attr(\"data-donation-id\");\r\n\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ true, {\r\n\t\t\tdonationId,\r\n\t\t\tusingDonations: true\r\n\t\t}).always(() => Spinner.removeSpinner($donationView));\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditRecurringHeader: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"editRecurringHeader\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Getting myRecurringHeader.view\r\n\t\tvar $headerView = $(event.target).closest(myRecurringHeaderViewSelector);\r\n\t\tSpinner.showSpinner($headerView);\r\n\r\n\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ true, {\r\n\t\t\tusingHeader: true\r\n\t\t}).always(() => Spinner.removeSpinner($headerView));\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditRecurringPayment: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"editRecurringPayment\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Getting myRecurringPayment.view\r\n\t\tvar $paymentView = $(event.target).closest(myRecurringPaymentViewSelector);\r\n\t\tSpinner.showSpinner($paymentView);\r\n\r\n\t\tMyRecurringRefresh.getMyRecurringHtml(event, /*isEditing*/ true, {\r\n\t\t\tusingPayment: true\r\n\t\t}).always(() => Spinner.removeSpinner($paymentView));\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinitializeMyRecurring: function($component) {\r\n\t\tMyRecurringRefresh.initializeMyRecurring($component);\r\n\t},\r\n\r\n\tsaveRecurringDonation: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Save Recurring Donation called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar $target = $(event.target);\r\n\t\tvar $currentRecurring = $target.closest(myRecurringPopulatedSingleRecurringSelector);\r\n\t\tvar recurringId = $currentRecurring.attr(\"data-recurring-id\");\r\n\t\tvar myRecurringComponentId = $currentRecurring.closest(myRecurringSelector).attr(\"id\");\r\n\r\n\t\tvar donationId = $target.closest(myRecurringDonationsEditSelector).attr(\"data-donation-id\");\r\n\t\tvar oldPledgeId = $target.closest(myRecurringDonationsEditSelector).attr(\"data-pledge-id\");\r\n\r\n\t\tvar $editDonationComponent = $target.closest(myRecurringDonationsEditSelector);\r\n\t\tvar $editDonationForm = $editDonationComponent.find(`form#editRecurringDonation-${donationId}`);\r\n\t\tvar editDonationData = ActionsHelper.serializeForm($editDonationForm);\r\n\r\n\t\t//Check if the donation amount is greater than zero\r\n\t\teditDonationData.donationAmount = ActionsHelper.convertFormattedAmountToNumber(editDonationData.donationAmount);\r\n\t\tif (!(Number(editDonationData.donationAmount) > 0)) {\r\n\t\t\tBootstrapPrompt.alert(AccountStore.get(\"wizardMyRecurringDisplayMessages\").donationAmountGreaterThanZero);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Call API to save\r\n\t\tAccountApi.myRecurringEditDonation(recurringId, donationId, editDonationData, myRecurringComponentId).done((data) => {\r\n\t\t\tvar $data = $(data);\r\n\t\t\tvar postSubmitActionData = SubmitButtonHelper.getPostSubmitActionData(\"[data-component='myRecurringDonations.edit']\");\r\n\r\n\t\t\tvar $newHeader = $data.find(myRecurringHeaderSelector);\r\n\t\t\tvar $newDonation = $data.find(`${myRecurringDonationsSelector} [data-donation-id]`);\r\n\t\t\tvar newPledgeId = $newDonation.attr(\"data-pledge-id\");\r\n\r\n\t\t\tMyRecurringRefresh.replaceMyRecurringSubComponent($data, $newHeader, $currentRecurring, myRecurringHeaderSelector);\r\n\t\t\tMyRecurringRefresh.replaceMyRecurringSubComponent($data, $newDonation, $currentRecurring, `${myRecurringDonationsSelector} [data-donation-id]`);\r\n\r\n\t\t\tthis._refreshAssociatedPledgeHtml(oldPledgeId, newPledgeId).done(() => Spinner.removeSpinner());\r\n\r\n\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='myRecurringDonations.edit']\", {\r\n\t\t\t\tactionData: postSubmitActionData\r\n\t\t\t});\r\n\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tsaveRecurringHeader: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Save Recurring Header called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar $target = $(event.target);\r\n\t\tvar $currentRecurring = $target.closest(myRecurringPopulatedSingleRecurringSelector);\r\n\t\tvar recurringId = $currentRecurring.attr(\"data-recurring-id\");\r\n\t\tvar myRecurringComponentId = $currentRecurring.closest(myRecurringSelector).attr(\"id\");\r\n\t\tvar $donations = $currentRecurring.find(`${myRecurringDonationsPopulatedViewSelector}, ${myRecurringDonationsEditSelector}`);\r\n\r\n\t\tvar $editHeaderForm = $target.closest(myRecurringHeaderEditSelector).find(\"form\");\r\n\t\tvar editHeaderData = ActionsHelper.serializeForm($editHeaderForm);\r\n\r\n\t\t//Call API to save\r\n\t\tAccountApi.myRecurringEditHeader(recurringId, editHeaderData, myRecurringComponentId).done((data) => {\r\n\t\t\tvar $data = $(data);\r\n\t\t\tvar postSubmitActionData = SubmitButtonHelper.getPostSubmitActionData(\"[data-component='myRecurringHeader.edit']\");\r\n\r\n\t\t\tvar $newHeader = $data.find(myRecurringHeaderSelector);\r\n\t\t\tMyRecurringRefresh.replaceMyRecurringSubComponent($data, $newHeader, $currentRecurring, myRecurringHeaderSelector);\r\n\r\n\t\t\tvar promises = [];\r\n\r\n\t\t\t$donations.each((index, element) => {\r\n\t\t\t\tvar deferred = new $.Deferred();\r\n\r\n\t\t\t\tvar recurringDonationId = $(element).attr(\"data-donation-id\");\r\n\r\n\t\t\t\tMyRecurringRefresh.getMyRecurringHtml(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttarget: $(element).closest(myRecurringPopulatedSingleRecurringSelector)\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/*isEditing*/ false,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdonationId: recurringDonationId,\r\n\t\t\t\t\t\tusingDonations: true\r\n\t\t\t\t\t}\r\n\t\t\t\t).done(() => {\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar pledgeId = $(element).closest(`${myRecurringDonationsPopulatedViewSelector}, ${myRecurringDonationsEditSelector}`).attr(\"data-pledge-id\");\r\n\r\n\t\t\t\tthis._refreshAssociatedPledgeHtml(pledgeId).done(() => {\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tpromises.push(deferred);\r\n\t\t\t});\r\n\r\n\t\t\t$.when.apply(undefined, promises).then(() => Spinner.removeSpinner());\r\n\r\n\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='myRecurringHeader.edit']\", {\r\n\t\t\t\tactionData: postSubmitActionData\r\n\t\t\t});\r\n\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tsaveRecurringPayment: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Save Recurring Payment called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $currentRecurring = $(event.target).closest(myRecurringPopulatedSingleRecurringSelector);\r\n\r\n\t\tvar components = [\r\n\t\t\t$currentRecurring.find(myRecurringPaymentEditSelector)\r\n\t\t];\r\n\r\n\t\tSpinner.showSpinner();\r\n\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tPaymentHelper.getPaymentData(AccountStore.get(\"wizardCompanyErrorMessages\"), AccountStore.get(\"wizardCompanyEftErrorMessages\"), paymentInformation => {\r\n\t\t\t\tif (!paymentInformation) {\r\n\t\t\t\t\tBootstrapPrompt.alert(\"An error occurred in saving payment.\");\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar recurringId = $currentRecurring.attr(\"data-recurring-id\");\r\n\t\t\t\tvar myRecurringComponentId = $currentRecurring.closest(myRecurringSelector).attr(\"id\");\r\n\t\t\t\tvar isNewBillingAddress = paymentInformation.billingAddressInformation &&\r\n\t\t\t\t\tpaymentInformation.billingAddressInformation.selectionType === BillingAddressSelectionTypes.NEW;\r\n\r\n\t\t\t\tvar saveEditedPayment = () => {\r\n\t\t\t\t\tAccountApi.myRecurringEditPayment(recurringId, paymentInformation, myRecurringComponentId).done((data) => {\r\n\t\t\t\t\t\tvar $data = $(data);\r\n\t\t\t\t\t\tvar postSubmitActionData = SubmitButtonHelper.getPostSubmitActionData(\"[data-component='myRecurringPayment.editPayment']\");\r\n\t\r\n\t\t\t\t\t\tif (!isNewBillingAddress) {\r\n\t\t\t\t\t\t\tvar $newPayment = $data.find(myRecurringPaymentSelector);\r\n\t\t\t\t\t\t\tMyRecurringRefresh.replaceMyRecurringSubComponent($data, $newPayment, $currentRecurring, myRecurringPaymentSelector);\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='myRecurringPayment.editPayment']\", {\r\n\t\t\t\t\t\t\tactionData: postSubmitActionData,\r\n\t\t\t\t\t\t\tshouldForceReloadOnStay: isNewBillingAddress\r\n\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\tif (!isNewBillingAddress) {\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\t\tPaymentHelper.clearPaymentData($currentRecurring);\r\n\t\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isNewBillingAddress) {\r\n\t\t\t\t\tSmartyStreets.verifyAddress(`recurringBillingAddressesAdd-${recurringId}`)\r\n\t\t\t\t\t\t.done(() => {\r\n\t\t\t\t\t\t\tsaveEditedPayment();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.fail(() => Spinner.removeSpinner());\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsaveEditedPayment();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}, () => Spinner.removeSpinner(), $currentRecurring);\r\n\t\t});\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_refreshAssociatedPledgeHtml: function(oldRecurringPledgeId, newRecurringPledgeId) {\r\n\t\tvar promises = [];\r\n\r\n\t\tvar $pledgeContainer = $(myPledgesSelector);\r\n\t\tvar $pledgeDonations = $pledgeContainer.find(`[data-pledge-id=\"${oldRecurringPledgeId}\"]`);\r\n\r\n\t\t$pledgeDonations.each((index, element) => {\r\n\t\t\tvar deferred = new $.Deferred();\r\n\r\n\t\t\tMyPledgesHelper.getMyPledgeHtml(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttarget: $(element)\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/*isEditing*/ false,\r\n\t\t\t\t\tnewRecurringPledgeId\r\n\t\t\t).done(() => {\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t});\r\n\r\n\t\t\tpromises.push(deferred);\r\n\t\t});\r\n\r\n\t\tvar $sponsorshipContainer = $(mySponsorshipsSelector);\r\n\t\tvar $sponsorshipDonations = $sponsorshipContainer.find(`[data-pledge-id=\"${oldRecurringPledgeId}\"]`);\r\n\r\n\t\t$sponsorshipDonations.each((index, element) => {\r\n\t\t\tvar deferred = new $.Deferred();\r\n\r\n\t\t\tMySponsorshipsHelper._getMySponsorshipHtml(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttarget: $(element)\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/*isEditing*/ false,\r\n\t\t\t\t\tnewRecurringPledgeId\r\n\t\t\t).done(() => {\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t});\r\n\r\n\t\t\tpromises.push(deferred);\r\n\t\t});\r\n\r\n\t\treturn $.when.apply(undefined, promises).promise();\r\n\t},\r\n\r\n\t_resolveError(jqXHR, textStatus, deferred) {\r\n\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t}\r\n\r\n\t\tif (deferred) {\r\n\t\t\tdeferred.reject(jqXHR, textStatus);\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t}\r\n};\r\n\r\nmodule.exports = MyRecurringHelper;\r\n","\"use strict\";\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar BillingAddressHelper = require(\"../accountComponents/BillingAddressHelper\");\r\n\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\n\r\nvar myRecurringSelector = \"[data-component='myRecurring']\";\r\nvar myRecurringDonationEditDonationAmountSelector = \"[data-component='myRecurringDonations.edit.donationAmount']\";\r\nvar myRecurringPopulatedSingleRecurringSelector = \"[data-component='myRecurring.populated.singleRecurring']\";\r\nvar myRecurringDonationsSelector = \"[data-component='myRecurringDonations']\";\r\nvar myRecurringHeaderSelector = \"[data-component='myRecurringHeader']\";\r\nvar myRecurringPaymentSelector = \"[data-component='myRecurringPayment']\";\r\nvar SmartyStreets = require(\"./SmartyStreets\");\r\n\r\nvar MyRecurringRefresh = {\r\n\tinitializeMyRecurring: function($component) {\r\n\t\tInputHelper.initializeAmountInput($component || $(myRecurringSelector), myRecurringDonationEditDonationAmountSelector);\r\n\t},\r\n\r\n\treplaceMyRecurringSubComponent($allData, $newData, $currentSingleRecurring, selector) {\r\n\t\tif ($newData.length) {\r\n\t\t\t//Need to append and run react component initialize scripts\r\n\t\t\t$newData.append($allData.filter(\"script\"));\r\n\r\n\t\t\t//We need to find the specific donation that we are trying to replace\r\n\t\t\tif (selector.includes(\"data-donation-id\")) {\r\n\t\t\t\tselector = selector.replace(\"[data-donation-id]\", `[data-donation-id='${$newData.attr(\"data-donation-id\")}']`);\r\n\t\t\t}\r\n\r\n\t\t\tvar $oldData = $currentSingleRecurring.find(selector);\r\n\r\n\t\t\tif ($oldData.length) {\r\n\t\t\t\tHtmlHelper.addIdToDataComponents($newData);\r\n\r\n\t\t\t\t//Unmount existing react components\r\n\t\t\t\t$oldData.find(\"[data-react-component-name]\").each(function() {\r\n\t\t\t\t\tReactDOM.unmountComponentAtNode(this.parentElement);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$oldData.replaceWith($newData);\r\n\t\t\t\tthis.initializeMyRecurring($newData);\r\n\r\n\t\t\t\tHtmlHelper.focusAndSelectFirstField($newData);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tgetMyRecurringHtml: function(event, isEditing, options) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tvar $currentRecurring = $(event.target).closest(myRecurringPopulatedSingleRecurringSelector);\r\n\r\n\t\tvar myRecurringId = $currentRecurring.attr(\"data-recurring-id\");\r\n\t\tvar myRecurringComponentId = $currentRecurring.closest(myRecurringSelector).attr(\"id\");\r\n\r\n\t\tAccountApi.myRecurringGetRecurring(myRecurringId, {\r\n\t\t\tdonationId: options.donationId,\r\n\t\t\tisEditing,\r\n\t\t\tmyRecurringComponentId,\r\n\t\t\tusingDonations: options.usingDonations,\r\n\t\t\tusingHeader: options.usingHeader,\r\n\t\t\tusingPayment: options.usingPayment\r\n\t\t}).done((data) => {\r\n\t\t\tvar $data = $(data);\r\n\r\n\t\t\tvar $newHeader = $data.find(myRecurringHeaderSelector);\r\n\t\t\tvar $newPayment = $data.find(myRecurringPaymentSelector);\r\n\t\t\tvar $newDonation = $data.find(`${myRecurringDonationsSelector} [data-donation-id]`);\r\n\r\n\t\t\t//Recurring id is already added to the header form on save.\r\n\t\t\t//RecurringId is being added to payment / donations forms here to prevent the users from having to resave layouts or apply breaking changes to get this fix.\r\n\t\t\t//Add recurring id to the forms\r\n\t\t\tvar $paymentForms = $newPayment.find(\"form#editRecurringPaymentForm\");\r\n\t\t\t$paymentForms.each((index, paymentForm) => {\r\n\t\t\t\tvar $paymentForm = $(paymentForm);\r\n\r\n\t\t\t\tvar newPaymentFormId = `${$paymentForm.attr(\"id\")}-${myRecurringId}`;\r\n\t\t\t\tHtmlHelper.setUniqueFormId($paymentForm, newPaymentFormId);\r\n\t\t\t});\r\n\r\n\t\t\tvar $donationForms = $newDonation.find(\"form#editRecurringDonation\");\r\n\t\t\t$donationForms.each((index, donationForm) => {\r\n\t\t\t\tvar $donationForm = $(donationForm);\r\n\t\t\t\tvar donationId = $donationForm.closest(\"[data-component='myRecurringDonations.edit']\").attr(\"data-donation-id\");\r\n\r\n\t\t\t\tvar newDonationFormId = `${$donationForm.attr(\"id\")}-${donationId}`;\r\n\t\t\t\tHtmlHelper.setUniqueFormId($donationForm, newDonationFormId);\r\n\t\t\t});\r\n\r\n\t\t\tthis.replaceMyRecurringSubComponent($data, $newHeader, $currentRecurring, myRecurringHeaderSelector);\r\n\t\t\tthis.replaceMyRecurringSubComponent($data, $newPayment, $currentRecurring, myRecurringPaymentSelector);\r\n\t\t\tthis.replaceMyRecurringSubComponent($data, $newDonation, $currentRecurring, `${myRecurringDonationsSelector} [data-donation-id]`);\r\n\r\n\t\t\tSmartyStreets.initializeMyRecurringsBillingAddressesAdd(myRecurringId);\r\n\r\n\t\t\t// Apply a new `id` to the Billing Address Add Form being added to the DOM since it is in a repeater and doesn't have one.\r\n\t\t\t// We use HtmlHelper.getId() here so that we don't apply `id`s to all nested components.\r\n\t\t\tvar $billingAddressAddForm = $newPayment.find(\"[data-component='billingAddress.addForm']\");\r\n\t\t\tvar newFormId = HtmlHelper.getId($(\"body\"));\r\n\t\t\t$billingAddressAddForm.attr(\"id\", newFormId);\r\n\r\n\t\t\t//Re-apply Billing Address listeners\r\n\t\t\twindow.PostalCodeHelper.addCountryChangeListeners($billingAddressAddForm);\r\n\t\t\tBillingAddressHelper.initialize({\r\n\t\t\t\tbillingAddressAddFormSelector: $billingAddressAddForm\r\n\t\t\t});\r\n\r\n\t\t\tPaymentHelper.initializePaymentComponent($newPayment);\r\n\r\n\t\t\tdeferred.resolve($data);\r\n\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\tthis._resolveError(jqXHR, textStatus, deferred);\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_resolveError(jqXHR, textStatus, deferred) {\r\n\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t}\r\n\r\n\t\tif (deferred) {\r\n\t\t\tdeferred.reject(jqXHR, textStatus);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = MyRecurringRefresh;\r\n","\"use strict\";\r\n\r\nvar AbstractPledgeManagementHelper = require(\"./AbstractPledgeManagementHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar MyPledgesHelper = class extends AbstractPledgeManagementHelper {\r\n\tconstructor() {\r\n\t\tvar donateToAllCheckboxComponentName = \"myRelationshipPledgesDonateToAll\";\r\n\t\tvar donateToSingleCheckboxComponentName = \"myRelationshipPledgesDonateToSingle\";\r\n\r\n\t\tsuper({\r\n\t\t\tcomponentSelector: \"[data-component='myRelationshipPledges']\",\r\n\t\t\tdisplayMessagesWizard: \"wizardMyPledgesDisplayMessages\",\r\n\t\t\tdonateToAllCheckboxComponentName,\r\n\t\t\tdonateToAllCheckboxSelector: `[data-component=\"${donateToAllCheckboxComponentName}\"]`,\r\n\t\t\tdonateToAllCheckboxInputSelector: `[data-component=\"${donateToAllCheckboxComponentName}.input\"]`,\r\n\t\t\tdonateToSingleCheckboxComponentName,\r\n\t\t\tdonateToSingleCheckboxSelector: `[data-component=\"${donateToSingleCheckboxComponentName}\"]`,\r\n\t\t\tdonateToSingleCheckboxInputSelector: `[data-component=\"${donateToSingleCheckboxComponentName}.input\"]`,\r\n\t\t\tmakeDonationSelector: \"[data-component='myRelationshipPledgesMakeDonation']\",\r\n\t\t\tsinglePledgeSelector: \"[data-component='myRelationshipPledges.populated.singleRelationshipPledge']\"\r\n\t\t});\r\n\t}\r\n\r\n\tmakeDonation(event, isDesignMode) {\r\n\t\tvar $myRelationshipPledgesComponent = $(event.target).closest(this.componentSelector);\r\n\t\tvar relationshipType = $myRelationshipPledgesComponent.attr(\"data-relationship-type\");\r\n\t\tvar relationshipRelatedType = $myRelationshipPledgesComponent.attr(\"data-relationship-related-type\");\r\n\r\n\t\treturn super.makeDonation(event, isDesignMode, (pledgeIds) => {\r\n\t\t\tvar shortComment;\r\n\t\t\tif (typeof window.makeDonationToPledgeShortComment === 'string' || window.makeDonationToPledgeShortComment instanceof String) {\r\n\t\t\t\tshortComment = window.makeDonationToPledgeShortComment;\r\n\t\t\t}\r\n\r\n\t\t\tAccountApi.myRelationshipPledgesMakeDonation({ pledgeIds }, relationshipType, relationshipRelatedType, shortComment).done((response) => {\r\n\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t{ tangibleType: \"donation(s)\" }\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tinitializeMyRelationshipPledges($component, isDesignMode) {\r\n\t\tsuper.initializeComponent($component, isDesignMode);\r\n\t}\r\n};\r\n\r\nmodule.exports = new MyPledgesHelper();","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SponsorshipHelper = require(\"../sponsorshipComponents/SponsorshipHelper\");\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\nvar singleEditSponsorshipSelector = \"[data-component='mySponsorships.populated.singleSponsorship.edit']\";\r\n\r\nclass MySponsorshipsEditFrequencySelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tcanEdit: props.initialValue === \"M\" || props.initialValue === \"A\" || props.initialValue === \"S\" || props.initialValue === \"Q\" || props.isDesignMode\r\n\t\t};\r\n\t}\r\n\r\n\thandleFrequencySelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $editSponsorship = $(event.currentTarget).closest(singleEditSponsorshipSelector);\r\n\t\tvar amount = SponsorshipHelper.calculateUpdatedTotalForMySponsorships($editSponsorship, event.currentTarget.value);\r\n\r\n\t\tthis.updateSponsorshipAmountComponent(amount, $editSponsorship);\r\n\t}\r\n\r\n\tupdateSponsorshipAmountComponent(amount, $element) {\r\n\t\t// update the component UI to make sure that the SD amount matches what's in the store.\r\n\t\tvar $component = $element.find(`[data-dynamic=\"AmountPerGift\"]`);\r\n\t\tif ($component) {\r\n\t\t\tvar formattedAmount = ActionsHelper.formatAmount(amount, $component, /*keepDecimals*/ false);\r\n\r\n\t\t\t$component.text(formattedAmount);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tdisabled={!this.state.canEdit}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tconfig={this.props.frequencies} /*Needs to be frequencies because the FrequencyPropertyMap is hard-coded to this*/\r\n\t\t\t\tonChange={this.handleFrequencySelected.bind(this)}\r\n\t\t\t\twizard={window.ProjectStore.get(\"wizardFrequencies\")}\r\n\t\t\t\twizardValuesKey=\"allowedFrequencies\"\r\n\t\t\t\tconfigKey=\"availableFrequencies\"\r\n\t\t\t\treactComponentCategory=\"MySponsorshipsEditFrequencySelector\"\r\n\t\t\t\treactComponentName=\"MySponsorshipsEditFrequencySelector\"\r\n\t\t\t\tselectClassName=\"frequency-selector\"\r\n\t\t\t\toptionsClassName=\"availableFrequency\"\r\n\t\t\t\tselectNameAttribute=\"frequency\"\r\n\t\t\t\thideEmptyOption={true}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nMySponsorshipsEditFrequencySelector.propTypes = {\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tfrequencies: PropTypes.object,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\treactComponentCategory: PropTypes.string,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string\r\n};\r\n\r\nmodule.exports = MySponsorshipsEditFrequencySelector;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"MySponsorshipsHelper\");\r\n\r\nvar AbstractPledgeManagementHelper = require(\"./AbstractPledgeManagementHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar SponsorshipHelper = require(\"../sponsorshipComponents/SponsorshipHelper\");\r\n\r\nvar MySponsorshipsHelper = class extends AbstractPledgeManagementHelper {\r\n\tconstructor() {\r\n\t\tvar singleSponsorshipEditComponentName = \"mySponsorships.populated.singleSponsorship.edit\";\r\n\t\tvar donateToAllCheckboxComponentName = \"mySponsorshipsDonateToAll\";\r\n\t\tvar donateToSingleCheckboxComponentName = \"mySponsorshipsDonateToSingle\";\r\n\r\n\t\tsuper({\r\n\t\t\tcancelPledgeEditLinkMessageMapper: \"cancelMySponsorshipEdit\",\r\n\t\t\tcancelWholePledgeLinkMessageMapper: \"cancelMySponsorship\",\r\n\t\t\tcomponentSelector: \"[data-component='mySponsorships']\",\r\n\t\t\tdisplayMessagesWizard: \"wizardMySponsorshipsDisplayMessages\",\r\n\t\t\tdonateToAllCheckboxComponentName,\r\n\t\t\tdonateToAllCheckboxSelector: `input[data-component=\"${donateToAllCheckboxComponentName}\"]`,\r\n\t\t\tdonateToSingleCheckboxComponentName,\r\n\t\t\tdonateToSingleCheckboxSelector: `input[data-component=\"${donateToSingleCheckboxComponentName}\"]`,\r\n\t\t\teditMyPledgeLinkMessageMapper: \"editMySponsorship\",\r\n\t\t\tmakeDonationSelector: \"[data-component='mySponsorshipsMakeDonation']\",\r\n\t\t\tmyRecurringPopulatedSingleRecurringSelector: \"[data-component='myRecurring.populated.singleRecurring']\",\r\n\t\t\tmyRecurringSelector: \"[data-component='myRecurring']\",\r\n\t\t\tsinglePledgeEditComponentName: singleSponsorshipEditComponentName,\r\n\t\t\tsinglePledgeSelector: \"[data-component='mySponsorships.populated.singleSponsorship']\",\r\n\t\t\tsinglePledgeEditSelector: `[data-component='${singleSponsorshipEditComponentName}']`,\r\n\t\t\tsinglePledgeEditAmountSelector: \"[data-component='mySponsorships.populated.singleSponsorship.edit.amount']\"\r\n\t\t});\r\n\r\n\t\tthis.singleSponsorshipEditComponentName = singleSponsorshipEditComponentName;\r\n\r\n\t\t// private methods\r\n\t\tthis._getMySponsorshipHtml = (event, isEditing, newSponsorshipId) => {\r\n\t\t\treturn super.getComponentHtml(event, newSponsorshipId, ($currentSponsorship, sponsorshipId, componentId, deferred) => {\r\n\t\t\t\tAccountApi.myPledgeGet(sponsorshipId, componentId, isEditing, /*sponsorshipType*/ \"CHILD\").done((data) => {\r\n\t\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\t\tvar $newEditForm = $data.find(\"form#editMySponsorship\");\r\n\t\t\t\t\tvar newId = $newEditForm.attr(\"id\") + \"-\" + $data.closest(\"[data-component='mySponsorships.populated.singleSponsorship']\").attr(\"data-pledge-id\");\r\n\t\t\t\t\tHtmlHelper.setUniqueFormId($newEditForm, newId);\r\n\r\n\t\t\t\t\t$currentSponsorship.replaceWith($data);\r\n\t\t\t\t\tif (isEditing) {\r\n\t\t\t\t\t\tthis.initializeEdit($data);\r\n\t\t\t\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.initializeComponent($data);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdeferred.resolve($data);\r\n\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\tthis._resolveError(jqXHR, textStatus, deferred);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\tcancelMySponsorshipEdit(event) {\r\n\t\treturn super.cancelPledgeEdit(event, ($currentSponsorship) => {\r\n\t\t\tthis._getMySponsorshipHtml(event, /*isEditing*/false)\r\n\t\t\t\t.always(() => Spinner.removeSpinner($currentSponsorship));\r\n\t\t});\r\n\t}\r\n\r\n\tcancelWholeSponsorship(event) {\r\n\t\treturn super.cancelWholePledge(event, ($currentSponsorship, sponsorshipId) => {\r\n\t\t\t//Call API to delete\r\n\t\t\tAccountApi.myPledgesCancel(sponsorshipId, /*sponsorshipType*/ \"CHILD\").done((data) => {\r\n\t\t\t\tvar $sponsorships = $currentSponsorship.closest(\"[data-component='mySponsorships']\");\r\n\r\n\t\t\t\tif ((data || {}).refresh || $sponsorships.find(\"[data-component='mySponsorships.populated.singleSponsorship']\").length <= 1) {\r\n\t\t\t\t\t//If we canceled the last sponsorship or canceled a sponsorship with a recurring, we want to reload the entire page\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($currentSponsorship);\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t}\r\n\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\teditMySponsorship(event) {\r\n\t\treturn super.editPledge(event, ($currentSponsorship) => {\r\n\t\t\tthis._getMySponsorshipHtml(event, /*isEditing*/true)\r\n\t\t\t\t.always(() => Spinner.removeSpinner($currentSponsorship));\r\n\t\t});\r\n\t}\r\n\r\n\tmakeDonation(event, isDesignMode) {\r\n\t\treturn super.makeDonation(event, isDesignMode, (sponsorshipIds) => {\r\n\t\t\tAccountApi.myPledgesMakeDonation({ pledgeIds: sponsorshipIds }, /*sponsorshipType*/ \"CHILD\").done((response) => {\r\n\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tBootstrapPrompt.alert(AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t{ tangibleType: \"donation(s)\" }\r\n\t\t\t\t));\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tinitializeMySponsorships($component, isDesignMode) {\r\n\t\tsuper.initializeComponent($component, isDesignMode);\r\n\t}\r\n\r\n\tinitializeMySponsorshipsEdit($component) {\r\n\t\tsuper.initializeEdit($component);\r\n\t}\r\n\r\n\tinitializeMySponsorshipsButtons($component, isDesignMode) {\r\n\t\tsuper.initializePledgeButtons($component, isDesignMode);\r\n\t}\r\n\r\n\tsaveMySponsorship(event) {\r\n\t\treturn super.save(event, ($currentSponsorship, sponsorshipId, componentId, editSponsorshipData) => {\r\n\t\t\tif (!editSponsorshipData.amount && editSponsorshipData.frequency) {\r\n\t\t\t\tvar $editSponsorship = $currentSponsorship.find(`[data-component='${this.singleSponsorshipEditComponentName}']`);\r\n\t\t\t\teditSponsorshipData.amount = SponsorshipHelper.calculateUpdatedTotalForMySponsorships($editSponsorship, editSponsorshipData.frequency);\r\n\t\t\t}\r\n\r\n\t\t\t//Call API to edit\r\n\t\t\tAccountApi.myPledgesEdit(sponsorshipId, componentId, editSponsorshipData, /*sponsorshipType*/ \"CHILD\").done((data) => {\r\n\t\t\t\tvar actionData = SubmitButtonHelper.getPostSubmitActionData(`[data-component='${this.singleSponsorshipEditComponentName}']`);\r\n\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\t$currentSponsorship.replaceWith($data);\r\n\t\t\t\tthis.initializeMySponsorships($data);\r\n\t\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\r\n\t\t\t\tthis._refreshAssociatedRecurringHtml(sponsorshipId).done(() => Spinner.removeSpinner());\r\n\r\n\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\r\n\t\t\t\t\t`[data-component='${this.singleSponsorshipEditComponentName}']`,\r\n\t\t\t\t\t{ actionData }\r\n\t\t\t\t);\r\n\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new MySponsorshipsHelper();","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"MySubscriptionsHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar MySubscriptionsRefresh = require(\"./MySubscriptionsRefresh\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\nvar SavedPaymentsApi = require(\"../api/SavedPaymentsApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar BillingAddressSelectionTypes = require(\"../designer/Constants\").BILLING_ADDRESS_SELECTION_TYPES;\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar MySubscriptionsHelper = {\r\n\tcancelMagazineEmailSubscriptionEdit(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"magazineEmailSubscriptionCancelEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"email\", /* isEditing */ false);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelMagazineMailSubscriptionEdit(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"magazineMailSubscriptionCancelEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"mail\", /* isEditing */ false);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelMembershipSubscriptionEdit(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"membershipSubscriptionCancelEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"membership\", /* isEditing */ false);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelProductSubscriptionEdit(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"productSubscriptionCancelEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"product\", /* isEditing */ false);\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditMagazineEmailSubscription(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"magazineEmailSubscriptionEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"email\", /* isEditing */ true);\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditMagazineMailSubscription(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"magazineMailSubscriptionEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"mail\", /* isEditing */ true);\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditMembershipSubscription(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"membershipSubscriptionEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"membership\", /* isEditing */ true);\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditProductSubscription(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"productSubscriptionEdit\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.toggleEditSubscription(event, /* type */ \"product\", /* isEditing */ true);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinitialize: function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tthis.accountData = options.accountData;\r\n\r\n\t\tif (!options.isDesignMode) {\r\n\t\t\tMySubscriptionsRefresh.initializeEditLinks();\r\n\t\t\tMySubscriptionsRefresh.initializeRenewLinks();\r\n\t\t}\r\n\t},\r\n\r\n\tprocessSubscriptionUpdate(type, event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Update Subscription called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar editComponentSelector = MySubscriptionsRefresh.getEditSelector(type);\r\n\r\n\t\tvar $updateForm = $(event.target).closest(\"form\");\r\n\t\tvar $editComponent = $updateForm.closest(editComponentSelector);\r\n\t\tvar $singleSubscriptionComponent = $editComponent.closest(MySubscriptionsRefresh.getSinglePopulatedSelector(type));\r\n\t\tvar $editAccountForm = $editComponent.find(\"[data-component='createAccountForm']\");\r\n\t\tvar $autoRenewCheckbox = $editComponent.find(\"[data-component='autoRenewCheckbox'] input\");\r\n\t\tvar $editPaymentCheckbox = $editComponent.find(\"[data-component='editPaymentCheckbox'] input\");\r\n\r\n\t\tvar subscriptionId = $singleSubscriptionComponent.attr(\"data-subscription-id\");\r\n\r\n\t\tvar subscription = JSON.parse($editComponent.attr(\"data-subscription\"));\r\n\r\n\t\t// get autoRenew checkbox value\r\n\t\tvar isAutoRenewCheckboxValue = $autoRenewCheckbox.length ? $autoRenewCheckbox.prop(\"checked\") === true : null;\r\n\t\tvar isAutoRenew = isAutoRenewCheckboxValue === null ? subscription.autoRenew : isAutoRenewCheckboxValue;\r\n\t\tvar isEditPayment = $editPaymentCheckbox.prop(\"checked\") === true;\r\n\r\n\t\t// get account form data\r\n\t\tvar accountData = AccountFormHelper.serializeCreateAccountFormOnly({\r\n\t\t\taccountFormId: $editAccountForm.attr(\"id\")\r\n\t\t});\r\n\r\n\t\tvar components = [\r\n\t\t\t$editComponent\r\n\t\t];\r\n\r\n\t\tSpinner.showSpinner($editComponent);\r\n\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tSpinner.removeSpinner($editComponent);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// update the payment information otherwise, just update the subscription\r\n\t\t\t//\tpayment information only needs to be updated if we are autoRenew as well\r\n\t\t\tif (isEditPayment && isAutoRenew) {\r\n\t\t\t\t// process payment information\r\n\t\t\t\tPaymentHelper.getPaymentData(\r\n\t\t\t\t\tAccountStore.get(\"wizardCompanyErrorMessages\"),\r\n\t\t\t\t\tAccountStore.get(\"wizardCompanyEftErrorMessages\"),\r\n\t\t\t\t\t(hostedPageTokenObject) => {\r\n\t\t\t\t\t\tvar isNewBillingAddress = hostedPageTokenObject.billingAddressInformation &&\r\n\t\t\t\t\t\t\thostedPageTokenObject.billingAddressInformation.selectionType === BillingAddressSelectionTypes.NEW;\r\n\r\n\t\t\t\t\t\tvar saveEditedPayment = () => {\r\n\t\t\t\t\t\t\t// send token to API\r\n\t\t\t\t\t\t\tSavedPaymentsApi.addSavedPaymentToAccount({\r\n\t\t\t\t\t\t\t\tcompanyCode: AccountStore.get(\"companyCode\"),\r\n\t\t\t\t\t\t\t\tisPrimary: false, // This payment should always be a non-primary payment\r\n\t\t\t\t\t\t\t\tpayment: hostedPageTokenObject\r\n\t\t\t\t\t\t\t}).done((paymentResponse) => {\r\n\t\t\t\t\t\t\t\t// make call to update the subscription once we have all data\r\n\t\t\t\t\t\t\t\tAccountApi.mySubscriptionsEdit(\r\n\t\t\t\t\t\t\t\t\tsubscriptionId,\r\n\t\t\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\taccountData,\r\n\t\t\t\t\t\t\t\t\t\tisAutoRenew: isAutoRenewCheckboxValue,\r\n\t\t\t\t\t\t\t\t\t\tsavedPaymentId: paymentResponse.id\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t$editComponent\r\n\t\t\t\t\t\t\t\t\t\t.closest(MySubscriptionsRefresh.getSubscriptionSelector(type))\r\n\t\t\t\t\t\t\t\t\t\t.attr(\"id\")\r\n\t\t\t\t\t\t\t\t).done((data) => {\r\n\t\t\t\t\t\t\t\t\tthis._updateSuccess(data, editComponentSelector, $singleSubscriptionComponent, isNewBillingAddress);\r\n\t\t\t\t\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\t\t\t\t\tLoggerInstance.error(\"Unable to save subscription\");\r\n\t\t\t\t\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\t\t\t\t\tSpinner.removeSpinner($editComponent);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\t\t\t\tLoggerInstance.error(\"Unable to process payment\");\r\n\t\t\t\t\t\t\t\tthis._resolveError(jqXHR, textStatus, /*deferred*/null, AccountStore.get(\"wizardSavedPaymentsDisplayMessages\").savedPaymentForSubscriptionError);\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner($editComponent);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isNewBillingAddress) {\r\n\t\t\t\t\t\t\tSmartyStreets.verifyAddress(`subscriptionBillingAddressesAdd-${subscriptionId}`)\r\n\t\t\t\t\t\t\t\t.done(() => {\r\n\t\t\t\t\t\t\t\t\tsaveEditedPayment();\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.fail(() => Spinner.removeSpinner($editComponent));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsaveEditedPayment();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(hasAlerted) => { //errorCallback\r\n\t\t\t\t\t\tLoggerInstance.error(\"Error getting payment data\");\r\n\t\t\t\t\t\tif (!hasAlerted) {\r\n\t\t\t\t\t\t\tApiHelper.displayErrorMessage();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tSpinner.removeSpinner($editComponent);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t$editComponent\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tAccountApi.mySubscriptionsEdit(\r\n\t\t\t\t\tsubscriptionId,\r\n\t\t\t\t\ttype,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\taccountData,\r\n\t\t\t\t\t\tisAutoRenew: isAutoRenewCheckboxValue\r\n\t\t\t\t\t},\r\n\t\t\t\t\t$editComponent\r\n\t\t\t\t\t\t.closest(MySubscriptionsRefresh.getSubscriptionSelector(type))\r\n\t\t\t\t\t\t.attr(\"id\")\r\n\t\t\t\t).done((data) => {\r\n\t\t\t\t\tthis._updateSuccess(data, editComponentSelector, $singleSubscriptionComponent);\r\n\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\tLoggerInstance.error(\"Unable to save subscription\");\r\n\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\tSpinner.removeSpinner($editComponent);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\ttoggleEditSubscription(event, type, isEditing) {\r\n\t\tvar $component = isEditing\r\n\t\t\t? $(event.target).closest(MySubscriptionsRefresh.getViewSelector(type))\r\n\t\t\t: $(event.target).closest(MySubscriptionsRefresh.getEditSelector(type));\r\n\r\n\t\tSpinner.showSpinner($component);\r\n\r\n\t\tMySubscriptionsRefresh\r\n\t\t\t.getMySubscriptionsHtml(\r\n\t\t\t\tevent,\r\n\t\t\t\ttype,\r\n\t\t\t\tisEditing,\r\n\t\t\t\tthis.accountData,\r\n\t\t\t\tthis.processSubscriptionUpdate.bind(this, type))\r\n\t\t\t.always(() => Spinner.removeSpinner($component));\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t},\r\n\r\n\t_resolveError(jqXHR, textStatus, deferred, errorMessage) {\r\n\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\tApiHelper.displayErrorMessage(jqXHR, errorMessage);\r\n\t\t}\r\n\r\n\t\tif (deferred) {\r\n\t\t\tdeferred.reject(jqXHR, textStatus);\r\n\t\t}\r\n\t},\r\n\r\n\t_updateSuccess(data, editComponentSelector, $singleSubscriptionComponent, shouldReloadPage) {\r\n\t\tvar postSubmitActionData = SubmitButtonHelper.getPostSubmitActionData(editComponentSelector);\r\n\r\n\t\tif (!shouldReloadPage) {\r\n\t\t\t// write the response (edit component partial) back into the DOM\r\n\t\t\t$singleSubscriptionComponent.html(data);\r\n\t\t\tMySubscriptionsRefresh.initializeEditLinks($singleSubscriptionComponent);\r\n\t\t\tMySubscriptionsRefresh.initializeRenewLinks($singleSubscriptionComponent);\r\n\t\t}\r\n\r\n\t\tSubmitButtonHelper.performPostSubmitAction(editComponentSelector, {\r\n\t\t\tactionData: postSubmitActionData,\r\n\t\t\tshouldForceReloadOnStay: shouldReloadPage\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = MySubscriptionsHelper;\r\n","\"use strict\";\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar BillingAddressHelper = require(\"../accountComponents/BillingAddressHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\nvar SmartyStreets = require(\"./SmartyStreets\");\r\n\r\nvar MySubscriptionsRefresh = {\r\n\tgetMySubscriptionsHtml: function (event, subscriptionType, isEditing, accountData, submitAction) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tvar $currentSubscription = $(event.target).closest(this.getSinglePopulatedSelector(subscriptionType));\r\n\r\n\t\tvar mySubscriptionId = $currentSubscription.attr(\"data-subscription-id\");\r\n\t\tvar mySubscriptionComponentId = $currentSubscription.closest(this.getSubscriptionSelector(subscriptionType)).attr(\"id\");\r\n\r\n\t\tAccountApi.mySubscriptionsGetSubscription(mySubscriptionId, {\r\n\t\t\tisEditing,\r\n\t\t\tmySubscriptionComponentId,\r\n\t\t\tsubscriptionType\r\n\t\t}).done((data) => {\r\n\t\t\tvar $data = $(data);\r\n\r\n\t\t\t// We're replacing the edit with the view component, or vice versa.\r\n\t\t\t// So we need to replace the contents of the parent container.\r\n\t\t\t$currentSubscription.parent().html($data);\r\n\r\n\t\t\tif (isEditing) {\r\n\t\t\t\tthis.initializeEditComponent(subscriptionType, $data, accountData, submitAction);\r\n\t\t\t} else {\r\n\t\t\t\tthis.initializeEditLinks($data);\r\n\t\t\t\tthis.initializeRenewLinks($data);\r\n\t\t\t}\r\n\r\n\t\t\tdeferred.resolve($data);\r\n\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\tthis._resolveError(jqXHR, textStatus, deferred);\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tgetEditSelector(type) {\r\n\t\tswitch (type) {\r\n\t\t\tcase \"email\": return \"[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail.edit']\";\r\n\t\t\tcase \"mail\": return \"[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail.edit']\";\r\n\t\t\tcase \"membership\": return \"[data-component='myMembershipSubscriptions.populated.singleMembership.edit']\";\r\n\t\t\tcase \"product\": return \"[data-component='myProductSubscriptions.populated.singleProduct.edit']\";\r\n\t\t\tdefault: return null;\r\n\t\t}\r\n\t},\r\n\r\n\tgetSinglePopulatedSelector(type) {\r\n\t\tswitch (type) {\r\n\t\t\tcase \"email\": return \"[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail']\";\r\n\t\t\tcase \"mail\": return \"[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail']\";\r\n\t\t\tcase \"membership\": return \"[data-component='myMembershipSubscriptions.populated.singleMembership']\";\r\n\t\t\tcase \"product\": return \"[data-component='myProductSubscriptions.populated.singleProduct']\";\r\n\t\t\tdefault: return null;\r\n\t\t}\r\n\t},\r\n\r\n\tgetSubscriptionSelector(type) {\r\n\t\tswitch (type) {\r\n\t\t\tcase \"email\": return \"[data-component='myMagazineEmailSubscriptions']\";\r\n\t\t\tcase \"mail\": return \"[data-component='myMagazineMailSubscriptions']\";\r\n\t\t\tcase \"membership\": return \"[data-component='myMembershipSubscriptions']\";\r\n\t\t\tcase \"product\": return \"[data-component='myProductSubscriptions']\";\r\n\t\t\tdefault: return null;\r\n\t\t}\r\n\t},\r\n\r\n\tgetViewSelector(type) {\r\n\t\tswitch (type) {\r\n\t\t\tcase \"email\": return \"[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail.view']\";\r\n\t\t\tcase \"mail\": return \"[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail.view']\";\r\n\t\t\tcase \"membership\": return \"[data-component='myMembershipSubscriptions.populated.singleMembership.view']\";\r\n\t\t\tcase \"product\": return \"[data-component='myProductSubscriptions.populated.singleProduct.view']\";\r\n\t\t\tdefault: return null;\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeEditComponent(type, $data, accountData, submitAction) {\r\n\t\t// get data-repeated-id of .edit component\r\n\t\t// using class because each concrete component name is different\r\n\t\tvar $editComponent = $data.find(this.getEditSelector(type));\r\n\t\tvar $accountForm = $editComponent.find(\"[data-component='createAccountForm']\");\r\n\t\tvar $autoRenewCheckboxComponent = $editComponent.find(\"[data-component='autoRenewCheckbox']\");\r\n\t\tvar $autoRenewInput = $autoRenewCheckboxComponent.find(\"input\");\r\n\t\tvar $editPaymentComponent = $editComponent.find(\"[data-component='editPaymentCheckbox']\");\r\n\t\tvar $editPaymentInput = $editPaymentComponent.find(\"input\");\r\n\t\tvar $paymentType = $editComponent.find(\"[data-component='paymentType']\");\r\n\t\tvar $billingAddressAddForm = $paymentType.find(\"[data-component='billingAddress.addForm']\");\r\n\t\tvar $submitButton = $editComponent.find(\"[data-component='submitButton']\");\r\n\t\tvar $form = $submitButton.closest(\"form\");\r\n\r\n\t\tvar mySubscriptionId = $data.attr(\"data-subscription-id\");\r\n\r\n\t\tvar subscription = JSON.parse($editComponent.attr(\"data-subscription\"));\r\n\t\tvar deliveryAccount = subscription.deliveryAccount;\r\n\r\n\t\t$form.off(\"submit.updateSubscription\");\r\n\t\t$form.on(\"submit.updateSubscription\", (e) => {\r\n\t\t\treturn submitAction(e);\r\n\t\t});\r\n\r\n\t\t// Apply new ids to the new forms being added to the DOM.\r\n\t\t// We use HtmlHelper.getId() here so that we don't apply `id`s to all the forms' nested components.\r\n\t\tvar newId = HtmlHelper.getId($(\"body\"));\r\n\t\tvar newFormId = HtmlHelper.getId($(\"body\"));\r\n\t\t$accountForm.attr(\"id\", newId);\r\n\t\t$billingAddressAddForm.attr(\"id\", newFormId);\r\n\r\n\t\t// append the new create account form `id` to the subscription edit form's `id`.\r\n\t\t// We don't need to reference the billing address form's `id` because its serialization is handled by PaymentHelper.jsx\r\n\t\tvar formId = $form.attr(\"id\");\r\n\t\t$form.attr(\"id\", `${formId}_${newId}`);\r\n\t\t$submitButton.attr(\"form\", `${formId}_${newId}`);\r\n\r\n\t\t//First and last name should always be disabled\r\n\t\t$accountForm.find(\"[data-component='accountFirstName'],[data-component='accountLastName']\").prop(\"disabled\", true);\r\n\r\n\t\tAccountFormHelper.initializeAccountForm(\r\n\t\t\t$accountForm,\r\n\t\t\tdeliveryAccount\r\n\t\t\t\t? Object.assign({}, deliveryAccount, {\r\n\t\t\t\t\taddress: subscription.deliveryAddress,\r\n\t\t\t\t\temail: subscription.deliveryEmail\r\n\t\t\t\t})\r\n\t\t\t\t: Object.assign({}, accountData, {\r\n\t\t\t\t\taddress: subscription.deliveryAddress,\r\n\t\t\t\t\temail: subscription.deliveryEmail\r\n\t\t\t\t}),\r\n\t\t\tAccountFormHelper.getParentFormIdFromForm($accountForm)\r\n\t\t);\r\n\t\t//Re-apply listeners\r\n\t\twindow.PostalCodeHelper.addCountryChangeListeners($accountForm);\r\n\t\twindow.PostalCodeHelper.addCountryChangeListeners($billingAddressAddForm);\r\n\t\tBillingAddressHelper.initialize({\r\n\t\t\tbillingAddressAddFormSelector: $billingAddressAddForm\r\n\t\t});\r\n\r\n\t\tSmartyStreets.initializeMySubscriptionsBillingAddressesAdd(mySubscriptionId);\r\n\t\tPaymentHelper.initializePaymentComponent($data);\r\n\r\n\t\t// If we don't support auto-renew and we are not already autoRenew, disable checkbox\r\n\t\t//\tIf the subscription is already auto-renew, we should just work like normal. They should be able to change their payment, etc.\r\n\t\t//\t\tHowever, once autoRenew is set to false, it will operate differently. The constituent will not be able to enable auto Renew again\r\n\t\tif (!subscription.supportsAutoRenew && !subscription.autoRenew) {\r\n\t\t\t$autoRenewInput\r\n\t\t\t\t.prop(\"checked\", false)\r\n\t\t\t\t.prop(\"disabled\", true);\r\n\r\n\t\t\t// Hide the payment form by default\r\n\t\t\t$paymentType.hide();\r\n\r\n\t\t\t// if we're not currently auto-renew, we want to hide the \"edit payment\" checkbox\r\n\t\t\t// until they opt into auto-renew.\r\n\t\t\t// and when we show it, we don't want them to be able to not set up,\r\n\t\t\t// so it is checked and disabled.\r\n\t\t\tif (!subscription.autoRenew) {\r\n\t\t\t\t$editPaymentComponent.hide();\r\n\t\t\t\t$editPaymentInput\r\n\t\t\t\t\t.prop(\"checked\", true)\r\n\t\t\t\t\t.prop(\"disabled\", true);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t//Set auto-renew checkbox value.\r\n\t\t\t$autoRenewInput.prop(\"checked\", subscription.autoRenew);\r\n\r\n\t\t\t// Hide the payment form by default\r\n\t\t\t$paymentType.hide();\r\n\r\n\t\t\t// if we're not currently auto-renew, we want to hide the \"edit payment\" checkbox\r\n\t\t\t// until they opt into auto-renew.\r\n\t\t\t// and when we show it, we don't want them to be able to not set up,\r\n\t\t\t// so it is checked and disabled.\r\n\t\t\tif (!subscription.autoRenew) {\r\n\t\t\t\t$editPaymentComponent.hide();\r\n\t\t\t\t$editPaymentInput\r\n\t\t\t\t\t.prop(\"checked\", true)\r\n\t\t\t\t\t.prop(\"disabled\", true);\r\n\t\t\t}\r\n\r\n\t\t\t// add autoRenew check listener, toggle payment form when they check it\r\n\t\t\tif (subscription.subscriptionStatus === \"A\" ||\r\n\t\t\t\tsubscription.subscriptionStatus === \"P\") {\r\n\t\t\t\t$autoRenewCheckboxComponent.off(\"click.autoRenewToggle\");\r\n\t\t\t\t$autoRenewCheckboxComponent.on(\"click.autoRenewToggle\", (autoRenewEvent) => {\r\n\t\t\t\t\tvar $clickedElement = $(autoRenewEvent.target);\r\n\t\t\t\t\tvar $input = $clickedElement.closest(\"[data-component='autoRenewCheckbox']\").find(\"[data-component='autoRenewCheckbox.input']\");\r\n\t\t\t\t\tif ($input.is(\":disabled\")) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Toggle the checkbox if the checkbox itself wasn't clicked\r\n\t\t\t\t\tif ($clickedElement.attr(\"data-component\") !== \"autoRenewCheckbox.input\") {\r\n\t\t\t\t\t\t$autoRenewInput.prop(\"checked\", !$autoRenewInput.prop(\"checked\"));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isAutoRenewChecked = $input.prop(\"checked\");\r\n\r\n\t\t\t\t\t//Set all the other autoRenewCheckboxes in this my subscription edit component to the same as the one that was just checked.\r\n\t\t\t\t\tvar $allAutoRenewCheckboxesInSubscription = $editComponent.find(\"input[data-component='autoRenewCheckbox.input']\");\r\n\t\t\t\t\t$allAutoRenewCheckboxesInSubscription.prop(\"checked\", isAutoRenewChecked);\r\n\r\n\t\t\t\t\tif (isAutoRenewChecked) {\r\n\t\t\t\t\t\t$editPaymentComponent.show();\r\n\t\t\t\t\t\t// if we weren't autoRenew but now we are\r\n\t\t\t\t\t\t// we must add payment\r\n\t\t\t\t\t\tif (!subscription.autoRenew) {\r\n\t\t\t\t\t\t\t$editPaymentInput.prop(\"checked\", true).trigger(\"change.editPaymentToggle\");\r\n\t\t\t\t\t\t\t$paymentType.show();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$editPaymentComponent.hide();\r\n\t\t\t\t\t\t$editPaymentInput.prop(\"checked\", false).trigger(\"change.editPaymentToggle\");\r\n\t\t\t\t\t\t$paymentType.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t$autoRenewCheckboxComponent.find(\"*\").add($autoRenewCheckboxComponent).css(\"cursor\", \"pointer\");\r\n\r\n\t\t\t\t$editPaymentComponent.off(\"click.editPaymentToggle\");\r\n\t\t\t\t$editPaymentComponent.on(\"click.editPaymentToggle\", (editPaymentEvent) => {\r\n\t\t\t\t\tvar $clickedElement = $(editPaymentEvent.target);\r\n\t\t\t\t\tvar $input = $clickedElement.closest(\"[data-component='editPaymentCheckbox']\").find(\"[data-component='editPaymentCheckbox.input']\");\r\n\t\t\t\t\tif ($input.is(\":disabled\")) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Toggle the checkbox if the checkbox itself wasn't clicked\r\n\t\t\t\t\tif ($clickedElement.attr(\"data-component\") !== \"editPaymentCheckbox.input\") {\r\n\t\t\t\t\t\t$editPaymentInput.prop(\"checked\", !$editPaymentInput.prop(\"checked\"));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isEditPaymentChecked = $input.prop(\"checked\");\r\n\r\n\t\t\t\t\t//Set all the other editPaymentCheckboxs in this my subscription edit component to the same as the one that was just checked.\r\n\t\t\t\t\tvar $allEditPaymentCheckboxesInSubscription = $editComponent.find(\"input[data-component='editPaymentCheckbox.input']\");\r\n\t\t\t\t\t$allEditPaymentCheckboxesInSubscription.prop(\"checked\", isEditPaymentChecked);\r\n\r\n\t\t\t\t\tif (isEditPaymentChecked) {\r\n\t\t\t\t\t\t$paymentType.show();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$paymentType.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t$editPaymentComponent.find(\"*\").add($editPaymentComponent).css(\"cursor\", \"pointer\");\r\n\t\t\t} else {\r\n\t\t\t\t$editPaymentInput\r\n\t\t\t\t\t.prop(\"disabled\", true);\r\n\r\n\t\t\t\t$autoRenewInput\r\n\t\t\t\t\t.prop(\"disabled\", true);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeEditLinks($component) {\r\n\t\t//Active or Pending\r\n\t\tvar allowedStatusesForVisible = [\"A\", \"P\"];\r\n\t\tthis.initializeSingleLink($component, allowedStatusesForVisible, \"[data-magazine-mail-subscription-view-link='magazineMailSubscriptionEdit']\", \"[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail']\");\r\n\t\tthis.initializeSingleLink($component, allowedStatusesForVisible, \"[data-magazine-email-subscription-view-link='magazineEmailSubscriptionEdit']\", \"[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail']\");\r\n\t\tthis.initializeSingleLink($component, allowedStatusesForVisible, \"[data-membership-subscription-view-link='membershipSubscriptionEdit']\", \"[data-component='myMembershipSubscriptions.populated.singleMembership']\");\r\n\t},\r\n\r\n\tinitializeRenewLinks($component) {\r\n\t\t//Expired or Canceled\r\n\t\tvar allowedStatusesForVisible = [\"E\", \"X\"];\r\n\t\tthis.initializeSingleLink($component, allowedStatusesForVisible, \"[data-magazine-mail-subscription-view-link='magazineMailSubscriptionRenew']\", \"[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail']\");\r\n\t\tthis.initializeSingleLink($component, allowedStatusesForVisible, \"[data-magazine-email-subscription-view-link='magazineEmailSubscriptionRenew']\", \"[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail']\");\r\n\t\tthis.initializeSingleLink($component, allowedStatusesForVisible, \"[data-membership-subscription-view-link='membershipSubscriptionRenew']\", \"[data-component='myMembershipSubscriptions.populated.singleMembership']\");\r\n\t},\r\n\r\n\tinitializeSingleLink($component, allowedStatusesForVisible, linkSelector, singleSubscriptionSelector) {\r\n\t\t$($component || \"body\").find(linkSelector).each((index, link) => {\r\n\t\t\tvar $link = $(link);\r\n\t\t\tvar status = $link.closest(singleSubscriptionSelector).attr(\"data-subscription-status\");\r\n\t\t\tif (status && allowedStatusesForVisible.includes(status)) {\r\n\t\t\t\t$link.show();\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_resolveError(jqXHR, textStatus, deferred) {\r\n\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t}\r\n\r\n\t\tif (deferred) {\r\n\t\t\tdeferred.reject(jqXHR, textStatus);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = MySubscriptionsRefresh;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass OrganizationContactTypeSelector extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tconfig={this.props.organizationContactTypeConfig}\r\n\t\t\t\twizard={AccountStore.get(\"wizardOrganizationContactTypes\")}\r\n\t\t\t\twizardValuesKey=\"contactType\"\r\n\t\t\t\tconfigKey=\"availableContactTypes\"\r\n\t\t\t\treactComponentName=\"OrganizationContactTypeSelector\"\r\n\t\t\t\tselectClassName=\"organization-contact-type-selector\"\r\n\t\t\t\toptionsClassName=\"organization-contact-type\"\r\n\t\t\t\tselectNameAttribute=\"organizationContactType\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nOrganizationContactTypeSelector.propTypes = {\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\torganizationContactTypeConfig: PropTypes.object,\r\n\treactComponentCategory: PropTypes.string,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string\r\n};\r\n\r\nmodule.exports = OrganizationContactTypeSelector;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass OrganizationTypeSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tdisabled: false,\r\n\t\t\tselectedOrganizationType: props.initialValue || \"\"\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleOrganizationTypeSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedOrganizationType = event.currentTarget.value;\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\tAccountActions.setSelectedOrganizationType(formParentId, selectedOrganizationType);\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\r\n\t\t\tvar parentFormIdForUpdateAllowed = formParentId;\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\t\tparentFormIdForUpdateAllowed = AccountFormHelper.getParentFormIdFromForm($parentFormForUpdateAllowed);\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tdisabled: formParentId ? AccountActions.getIsFormInputDisabled(parentFormIdForUpdateAllowed || formParentId) : false,\r\n\t\t\t\tselectedOrganizationType: AccountActions.getSelectedOrganizationType(formParentId) || \"\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\tvar updateAllowed = true;\r\n\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed applies to this selector when inside the createAccountForm or when inside the eventRegistration component (could be within a createAccountForm or spouseInformation)\r\n\t\t\tvar $parentFormForUpdateAllowed = $formParent.is(\"[data-component='createAccountForm']\") ? $formParent : $formParent.closest(\"[data-component='eventRegistration']\").find(\"[data-component='createAccountForm']\");\r\n\t\t\tupdateAllowed = !$parentFormForUpdateAllowed.length || $parentFormForUpdateAllowed.is(\"[data-update-allowed]\");\r\n\t\t}\r\n\r\n\t\tAccountActions.setSelectedOrganizationType(formParentId, this.state.selectedOrganizationType);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_ORGANIZATION_TYPE, this._onChange);\r\n\t\tAccountStore.addChangeListener(this._onChange);\r\n\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tAccountStore.removeChangeListener(this._onChange);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_ORGANIZATION_TYPE, this._onChange);\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\t\tvar updateAllowed = true;\r\n\r\n\t\t\tif ($formParent.length > 0) {\r\n\t\t\t\tupdateAllowed = $formParent.is(\"[data-update-allowed]\");\r\n\t\t\t}\r\n\r\n\t\t\tAccountActions.setSelectedOrganizationType(formParentId, null);\r\n\t\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tconfig={this.props.organizationTypeConfig}\r\n\t\t\t\tconfigKey=\"availableTypes\"\r\n\t\t\t\tdisabled={this.state.disabled}\r\n\t\t\t\tinitialValue={this.state.selectedOrganizationType}\r\n\t\t\t\toptionsClassName=\"organization-type\"\r\n\t\t\t\treactComponentName=\"OrganizationTypeSelector\"\r\n\t\t\t\tselectClassName=\"organization-type-selector\"\r\n\t\t\t\tselectNameAttribute=\"organizationType\"\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\twizard={AccountStore.get(\"wizardOrganizationTypes\")}\r\n\t\t\t\twizardValuesKey=\"organizationTypeAccountCodeValues\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nOrganizationTypeSelector.propTypes = {\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\torganizationTypeConfig: PropTypes.object,\r\n\treactComponentCategory: PropTypes.string,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string\r\n};\r\n\r\nmodule.exports = OrganizationTypeSelector;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"OtherAddressesHelper\");\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\nvar DefaultBillingAndShippingAddressHelper = require(\"./DefaultBillingAndShippingAddressHelper\");\r\nvar SmartyStreets = require(\"./SmartyStreets\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar BillingAddressHelper = require(\"../accountComponents/BillingAddressHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar otherAddressesSingleAddressEditComponentName = \"otherAddresses.populated.singleAddress.edit\";\r\n\r\nvar otherAddressesSelector = \"[data-component='otherAddresses']\";\r\nvar addFormSelector = \"[data-component='otherAddresses.addForm']\";\r\nvar singleAddressSelector = \"[data-component='otherAddresses.populated.singleAddress']\";\r\nvar singleAddressViewSelector = \"[data-component='otherAddresses.populated.singleAddress.view']\";\r\nvar populatedAddressWrapperSelector = \"div.otherAddresses-items-wrapper\";\r\nvar otherAddressesAddSmartyStreetsInstance = \"otherAddressesAdd\";\r\nvar otherAddressesEditSmartyStreetsInstance = \"otherAddressesEdit\";\r\n\r\nvar OtherAddressesHelper = {\r\n\tinitialize: function($singleAddress) {\r\n\t\tif ($($singleAddress || \"body\").find(`${singleAddressViewSelector} input[type='radio'][name='otherAddressesSelector']`)) {\r\n\t\t\t$($singleAddress || \"body\").find(singleAddressViewSelector).click((event) => {\r\n\t\t\t\t$(event.currentTarget).closest(singleAddressViewSelector).find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", true).change();\r\n\t\t\t\t//Uncheck Add new Address\r\n\t\t\t\t$(event.currentTarget).closest(otherAddressesSelector).find(`${addFormSelector} input[type='radio'][name='otherAddressesSelector']`).prop(\"checked\", false);\r\n\r\n\t\t\t\tif ($(event.currentTarget).closest(\"[data-component='shipTo']\").length) {\r\n\t\t\t\t\tBillingAddressHelper.removeNewShippingAddressOptionFromSelector();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ($(addFormSelector).find(\"input[type='radio'][name='otherAddressesSelector']\")) {\r\n\t\t\t$(addFormSelector).click((event) => {\r\n\t\t\t\tvar $addFormSelector = $(event.currentTarget).closest(addFormSelector).find(\"input[type='radio'][name='otherAddressesSelector']\");\r\n\t\t\t\tif ($addFormSelector.prop(\"checked\") !== true) {\r\n\t\t\t\t\t$(event.currentTarget).closest(otherAddressesSelector).find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", false).change();\r\n\t\t\t\t\t$addFormSelector.prop(\"checked\", true).change();\r\n\r\n\t\t\t\t\tif ($(event.currentTarget).closest(\"[data-component='shipTo']\").length) {\r\n\t\t\t\t\t\tvar $formSelector = $(event.currentTarget).closest(addFormSelector).find(\"#addOtherAddresses\");\r\n\t\t\t\t\t\tBillingAddressHelper.updateNewAddressInSelector($formSelector);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tcancelEditOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"cancelEditOtherAddress\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $currentAddress = $(event.target).closest(singleAddressSelector);\r\n\r\n\t\tthis._getOtherAddressHtml(event, /*isEditing*/false).done(() => {\r\n\t\t\tSmartyStreets.removeOtherAddressEdit($currentAddress.attr(\"data-address-id\"));\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tcancelAddOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"cancelAddOtherAddress\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Set the first populated other addresses radio buttons to checked\r\n\t\t$(`${singleAddressViewSelector}`).first().find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", true).change();\r\n\t\t//Uncheck the new other address radio button\r\n\t\t$(addFormSelector).find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", false);\r\n\r\n\t\tthis._clearAddEditFieldsAndToggle(/*show*/false);\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tdeleteOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"deleteOtherAddress\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $currentAddress = $(event.target).closest(singleAddressSelector);\r\n\t\tvar otherAddressesDisplayMessagesWizard = AccountStore.get(\"wizardOtherAddressesDisplayMessages\") || {};\r\n\r\n\t\tif ($currentAddress.attr(\"data-is-saved-payment-billing-address\") === \"True\") {\r\n\t\t\tBootstrapPrompt.alert({\r\n\t\t\t\ttype: BootstrapDialog.TYPE_PRIMARY,\r\n\t\t\t\ttitle: window.MODAL_TITLES.INFORMATION,\r\n\t\t\t\tbtnOKLabel: window.BUTTON_LABELS.OK,\r\n\t\t\t\tmessage: otherAddressesDisplayMessagesWizard.billingAddressDeleteMessage\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tBootstrapPrompt.confirm({\r\n\t\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\t\tmessage: otherAddressesDisplayMessagesWizard.deleteConfirmation\r\n\t\t\t}, (result) => {\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t\t\tvar addressId = $currentAddress.attr(\"data-address-id\");\r\n\r\n\t\t\t\t\t//Call API to delete\r\n\t\t\t\t\tAccountApi.otherAddressDelete(addressId).done(() => {\r\n\t\t\t\t\t\t//If successful, delete the address\r\n\t\t\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($currentAddress);\r\n\t\t\t\t\t\tBillingAddressHelper.removeExistingAddressOptionFromSelector(addressId);\r\n\t\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\t}).always(() => Spinner.removeSpinner());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\teditOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"editOtherAddress\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar that = this;\r\n\t\tthat._getOtherAddressHtml(event, /*isEditing*/true).done(($editAddressForm) => {\r\n\t\t\tvar $addressFormComponent = $editAddressForm.find(\"form#editOtherAddresses\");\r\n\t\t\tvar addressId = $editAddressForm.attr(\"data-address-id\");\r\n\r\n\t\t\tvar newAddressFormId = `${$addressFormComponent.attr(\"id\")}-${addressId}`;\r\n\t\t\tHtmlHelper.setUniqueFormId($addressFormComponent, newAddressFormId);\r\n\t\t\tDefaultBillingAndShippingAddressHelper.initialize();\r\n\r\n\t\t\tSmartyStreets.initializeForOtherAddressesEdit(addressId);\r\n\t\t\t//Making it so SmartyStreets verify does not run unless the address is changed.\r\n\t\t\t$addressFormComponent.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED, \"true\");\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\taddOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Save Add Other Address called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar components = [\r\n\t\t\t$(event.target).closest(addFormSelector)\r\n\t\t];\r\n\r\n\t\tSpinner.showSpinner();\r\n\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $otherAddresses = $(event.target).closest(otherAddressesSelector);\r\n\t\t\tvar otherAddressesComponentId = $otherAddresses.attr(\"id\");\r\n\r\n\t\t\t//Call API to add\r\n\t\t\tSmartyStreets.verifyAddress(otherAddressesAddSmartyStreetsInstance).done(() => {\r\n\t\t\t\tvar requestData = AccountFormHelper.serializeAddressForm(\"form#addOtherAddresses\");\r\n\t\t\t\tDefaultBillingAndShippingAddressHelper.serializeCheckboxes($(\"form#addOtherAddresses\"), requestData.address);\r\n\t\t\t\tAccountApi.otherAddressAdd(otherAddressesComponentId, requestData).done((data) => {\r\n\t\t\t\t\tvar actionData = SubmitButtonHelper.getPostSubmitActionData(addFormSelector);\r\n\t\t\t\t\tvar $firstSingleAddress = $otherAddresses.find(`${singleAddressSelector}`).first();\r\n\t\t\t\t\tif (!$firstSingleAddress.length) {\r\n\t\t\t\t\t\t//If we do not have any otherAddresses, just reload the page\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\t\t\tthis.handleNewOtherAddressAdded($otherAddresses, $data);\r\n\r\n\t\t\t\t\t\tthis.initialize($data);\r\n\t\t\t\t\t\tthis._clearAddEditFieldsAndToggle(/*show*/false);\r\n\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(addFormSelector,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tactionData,\r\n\t\t\t\t\t\t\tshouldForceReloadOnStay: requestData.address.haveAddressDefaultsChanged\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\tthis._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t})\r\n\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\thandleNewOtherAddressAdded: function($otherAddresses, $data) {\r\n\t\tvar numberOfColumns = $otherAddresses.attr(\"data-columns\");\r\n\t\tvar $lastRow = $otherAddresses.find(`${singleAddressSelector}`).last().closest(\"div.row\");\r\n\t\tvar currentColumns = $lastRow.children(\"div\").length;\r\n\r\n\t\tvar $newColumn = $(null);\r\n\t\tif (currentColumns < numberOfColumns) {\r\n\t\t\t//If the last row has space, just clone the column\r\n\t\t\t$newColumn = $lastRow.children(\"div\").first().clone();\r\n\t\t\t$lastRow.append($newColumn);\r\n\t\t} else {\r\n\t\t\t//If there is no space on the last row, we need to clone and create a new row\r\n\t\t\t$lastRow = $lastRow.clone();\r\n\t\t\t$lastRow.children(\":not(:first-child)\").remove();\r\n\t\t\t$newColumn = $lastRow.children(\"div\").first();\r\n\t\t\t$otherAddresses.find(populatedAddressWrapperSelector).append($lastRow);\r\n\t\t}\r\n\r\n\t\t//Empty last column and fill it with new other address;\r\n\t\t$newColumn.empty().append($data);\r\n\t},\r\n\r\n\tsaveEditOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Save Edit Other Address called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar components = [\r\n\t\t\t$(event.target).closest(`[data-component='${otherAddressesSingleAddressEditComponentName}']`)\r\n\t\t];\r\n\r\n\t\tvar $singleAddress = $(event.target).closest(singleAddressSelector);\r\n\t\tvar $otherAddresses = $(event.target).closest(otherAddressesSelector);\r\n\t\tvar that = this;\r\n\r\n\t\tvar submitOtherAddress = function(shouldUpdateSavedPayments) {\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar addressId = $singleAddress.attr(\"data-address-id\");\r\n\t\t\t\tvar otherAddressesComponentId = $singleAddress.closest(otherAddressesSelector).attr(\"id\");\r\n\r\n\t\t\t\t//Call API to edit\r\n\t\t\t\tSmartyStreets.verifyAddress(`${otherAddressesEditSmartyStreetsInstance}${addressId}`).done(() => {\r\n\t\t\t\t\tvar requestData = ActionsHelper.serializeForm(\"form#editOtherAddresses-\" + addressId); //Not calling AccountFormHelper.serializeAddressForm() because we do not want to default the country if not provided.\r\n\t\t\t\t\tvar $form = $(\"form#editOtherAddresses-\" + addressId)\r\n\t\t\t\t\tAccountFormHelper.setSmartyStreetsFields(requestData, $form);\r\n\t\t\t\t\tDefaultBillingAndShippingAddressHelper.serializeCheckboxes($form, requestData.address);\r\n\t\t\t\t\tif (shouldUpdateSavedPayments === false) {\r\n\t\t\t\t\t\tAccountApi.otherAddressAdd(otherAddressesComponentId, requestData).done((data) => {\r\n\t\t\t\t\t\t\tvar actionData = SubmitButtonHelper.getPostSubmitActionData(addFormSelector);\r\n\t\t\t\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\t\t\t\tthat.handleNewOtherAddressAdded($otherAddresses, $data);\r\n\r\n\t\t\t\t\t\t\tthat.initialize($data);\r\n\t\t\t\t\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\t\t\t\t\t\t\tBillingAddressHelper.updateEditedAddressInSelector(addressId, requestData);\r\n\r\n\t\t\t\t\t\t\tthat._getOtherAddressHtml(event, /*isEditing*/false).done(() => {\r\n\t\t\t\t\t\t\t\tSmartyStreets.removeOtherAddressEdit($singleAddress .attr(\"data-address-id\"));\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tthat._clearAddEditFieldsAndToggle(/*show*/false);\r\n\t\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(`[data-component='${otherAddressesSingleAddressEditComponentName}']`,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tactionData,\r\n\t\t\t\t\t\t\t\tshouldForceReloadOnStay: requestData.address.haveAddressDefaultsChanged\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\t\t\tthat._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tAccountApi.otherAddressEdit(addressId, otherAddressesComponentId, requestData).done((data) => {\r\n\t\t\t\t\t\t\tvar actionData = SubmitButtonHelper.getPostSubmitActionData(`[data-component='${otherAddressesSingleAddressEditComponentName}']`);\r\n\t\t\t\t\t\t\tvar $data = $(data);\r\n\r\n\t\t\t\t\t\t\t$singleAddress.replaceWith($data);\r\n\t\t\t\t\t\t\tthat.initialize($data);\r\n\t\t\t\t\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\r\n\t\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(`[data-component='${otherAddressesSingleAddressEditComponentName}']`,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tactionData,\r\n\t\t\t\t\t\t\t\tshouldForceReloadOnStay: requestData.address.haveAddressDefaultsChanged\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tSmartyStreets.removeOtherAddressEdit(addressId);\r\n\t\t\t\t\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\t\t\t\t\tthat._resolveError(jqXHR, textStatus);\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar savedPaymentsDisplayMessagesWizard = AccountStore.get(\"wizardSavedPaymentsDisplayMessages\") || {};\r\n\r\n\t\tif ($singleAddress.attr(\"data-is-saved-payment-billing-address\") === \"True\") {\r\n\t\t\tBootstrapPrompt.show({\r\n\t\t\t\tmessage: savedPaymentsDisplayMessagesWizard.savedPaymentAddressEditPromptText,\r\n\t\t\t\tbuttons: [{\r\n\t\t\t\t\tlabel: window.BUTTON_LABELS.YES,\r\n\t\t\t\t\taction: (dialog) => {\r\n\t\t\t\t\t\tdialog.close();\r\n\t\t\t\t\t\tsubmitOtherAddress(/*shouldUpdateSavedPayments*/ true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, {\r\n\t\t\t\t\tlabel: window.BUTTON_LABELS.NO,\r\n\t\t\t\t\taction: (dialog) => {\r\n\t\t\t\t\t\tdialog.close();\r\n\t\t\t\t\t\t// Send fields with \"shouldUpdateSavedPayments\"\r\n\t\t\t\t\t\tsubmitOtherAddress(/*shouldUpdateSavedPayments*/ false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, {\r\n\t\t\t\t\tlabel: window.BUTTON_LABELS.CANCEL,\r\n\t\t\t\t\taction: (dialog) => {\r\n\t\t\t\t\t\tdialog.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}]\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsubmitOtherAddress(/*shouldUpdateSavedPayments*/ null);\r\n\t\t}\r\n\t},\r\n\r\n\tshowAddNewOtherAddress: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"addNewOtherAddress\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $addForm = $(addFormSelector);\r\n\t\tvar defaultCountry = AccountStore.getDefaultCountry();\r\n\r\n\t\tthis._clearAddEditFieldsAndToggle(/*show*/true);\r\n\t\t//Making sure it is in view, scrolling to where the to is at half the page if it's below there.\r\n\t\tvar newScrollPosition = $(\"[data-component='otherAddresses.addForm']\").offset().top - ($(window).height() / 2);\r\n\t\tif ($(document).scrollTop() < newScrollPosition) {\r\n\t\t\t$(\"html, body\").animate({scrollTop: newScrollPosition}, 500);\r\n\t\t}\r\n\r\n\t\t$addForm.find(\"[data-component='accountAddressType'] select\").prop(\"disabled\", false);\r\n\t\t$addForm.find(\"[data-component='accountAddressState'] select\").prop(\"disabled\", false);\r\n\t\twindow.AccountActions.setSelectedCountry($addForm.attr(\"id\"), defaultCountry);\r\n\t\tDefaultBillingAndShippingAddressHelper.initialize();\r\n\r\n\t\t//Set all the populated other addresses radio buttons to unchecked\r\n\t\t$(singleAddressViewSelector).find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", false);\r\n\t\t//Check the new other address radio button\r\n\t\t$(addFormSelector).find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", true).change();\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_clearAddEditFieldsAndToggle: function(show) {\r\n\t\tvar $addEditForm = $(addFormSelector);\r\n\r\n\t\t$(`${addFormSelector} input,${addFormSelector} select`).val(\"\");\r\n\t\twindow.AccountActions.setSelectedCountry($addEditForm.attr(\"id\"), \"\");\r\n\t\twindow.AccountActions.setSelectedState($addEditForm.attr(\"id\"), \"\");\r\n\r\n\t\t$addEditForm.attr(\"data-address-id\", \"\");\r\n\t\t$addEditForm.toggle(show);\r\n\r\n\t\tif (show) {\r\n\t\t\t//Uncheck Add/Edit Form\r\n\t\t\t$addEditForm.find(\"input[type='radio'][name='otherAddressesSelector']\").prop(\"checked\", false);\r\n\r\n\t\t\t//If we are in the context of shipToOtherAddress, we want to hide the submit button.\r\n\t\t\tif ($(\"[data-component='shipToOtherAddresses']\").length && !$addEditForm.attr(\"data-address-id\")) {\r\n\t\t\t\t$addEditForm.find(\"[data-component='submitButton']\").toggle(false);\r\n\t\t\t}\r\n\t\t} else if ($(\"[data-component='shipToOtherAddresses']\").length) {\r\n\t\t\t//If we are in the context of the shipToAddress, we want to show the submit button.\r\n\t\t\t//If we are in the context of shipToOtherAddress, we want to hide the submit button.\r\n\t\t\t$addEditForm.find(\"[data-component='submitButton']\").toggle(true);\r\n\t\t}\r\n\r\n\t\tif (!show) {\r\n\t\t\t//We need to reset the SmartyStreets Verify\r\n\t\t\tSmartyStreets.clearVerification(\"otherAddresses\");\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t},\r\n\r\n\t_getOtherAddressHtml: function(event, isEditing) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tvar $currentAddress = $(event.target).closest(singleAddressSelector);\r\n\r\n\t\tSpinner.showSpinner($currentAddress);\r\n\r\n\t\tvar addressId = $currentAddress.attr(\"data-address-id\");\r\n\t\tvar otherAddressesComponentId = $currentAddress.closest(otherAddressesSelector).attr(\"id\");\r\n\r\n\t\tAccountApi.otherAddressesGet(addressId, otherAddressesComponentId, isEditing).done((data) => {\r\n\t\t\tvar $data = $(data);\r\n\t\t\tHtmlHelper.addIdToDataComponents($data);\r\n\r\n\t\t\t$currentAddress.replaceWith($data);\r\n\t\t\tthis.initialize($data);\r\n\t\t\tHtmlHelper.focusAndSelectFirstField($data);\r\n\r\n\t\t\twindow.PostalCodeHelper.addCountryChangeListeners($data);\r\n\r\n\t\t\tdeferred.resolve($data);\r\n\t\t}).fail((jqXHR, textStatus) => {\r\n\t\t\tthis._resolveError(jqXHR, textStatus, deferred);\r\n\t\t}).always(() => {\r\n\t\t\tSpinner.removeSpinner($currentAddress);\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_resolveError(jqXHR, textStatus, deferred) {\r\n\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t}\r\n\r\n\t\tif (deferred) {\r\n\t\t\tdeferred.reject(jqXHR, textStatus);\r\n\t\t}\r\n\t},\r\n};\r\n\r\nOtherAddressesHelper.initialize();\r\n\r\nmodule.exports = OtherAddressesHelper;\r\n","\"use strict\";\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar PhoneNumberHelper = {\r\n\t//When the phone number changes, this function is called to possibly adjust formatting\r\n\thandlePhoneNumberInputFormat: function (event, defaultCountry) {\r\n\t\tvar $countryCode = $(event.target).closest(\"[data-component='accountPhoneNumberGroup']\").find(\"input[data-component='accountPhoneCountryCode']\");\r\n\t\tvar countryCodeInputValue = $countryCode.val();\r\n\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\t\tif (countryCodeInputValue === \"1\" || countryCodeInputValue === \"+1\" || (!$countryCode.length && this.isCountryInUsOrCanada(defaultCountry))) {\r\n\t\t\tif (value.length === 4 && value.endsWith(\"-\")) {\r\n\t\t\t\t//No more formatting is necessary\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvalue = value.replace(\"-\", \"\");\r\n\t\t\tif (value.length > 3) {\r\n\t\t\t\tvalue = `${value.substring(0, 3)}-${value.substring(3)}`;\r\n\t\t\t}\r\n\t\t\tif (value.length >= 8) {\r\n\t\t\t\tvalue = value.substring(0, 8);\r\n\t\t\t}\r\n\r\n\t\t\t$(event.currentTarget).val(value);\r\n\t\t}\r\n\t},\r\n\r\n\t//Main entry point for accountPhoneNumberGroup component\r\n\tinitializePhoneNumberGroupComponent: function(defaultCountry, $parentComponent) {\r\n\t\t$parentComponent = $parentComponent || $(\"body\");\r\n\t\tvar $countryCodeInput = $parentComponent.find(\"[data-component='accountPhoneNumberGroup'] input[data-component='accountPhoneCountryCode']\");\r\n\t\t//Defaulting the countryCode if necessary.\r\n\t\tif (!$countryCodeInput.val()) {\r\n\t\t\tif (this.isCountryInUsOrCanada(defaultCountry)) {\r\n\t\t\t\t$countryCodeInput.val(\"1\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//When the area code changes (paste), making sure that if in US or Canada, only 3 characters are allowed.\r\n\t\tvar $areaCodes = $parentComponent.find(\"[data-component='accountPhoneNumberGroup'] input[data-component='accountPhoneAreaCode']\");\r\n\t\t$areaCodes.off(\"change.phoneNumberGroup\");\r\n\t\t$areaCodes.on(\"change.phoneNumberGroup\", (event) => {\r\n\t\t\tvar $countryCode = $(event.target).closest(\"[data-component='accountPhoneNumberGroup']\").find(\"input[data-component='accountPhoneCountryCode']\");\r\n\t\t\tvar countryCodeInputValue = $countryCode.val();\r\n\t\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\t\t\tif (countryCodeInputValue === \"1\" || countryCodeInputValue === \"+1\" || (!$countryCode.length && this.isCountryInUsOrCanada(defaultCountry))) {\r\n\t\t\t\tif (value.length >= 3) {\r\n\t\t\t\t\tvalue = value.substring(0, 3);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(event.currentTarget).val(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//For area code, making sure if a key is typed, and we are US or Canada and 3 characters are already present, do not allow character.\r\n\t\t$areaCodes.off(\"keydown.phoneNumberGroup\");\r\n\t\t$areaCodes.on(\"keydown.phoneNumberGroup\", (event) => {\r\n\t\t\t//If Ctrl or (Window for WindowsOS or Command for MacOS) or Alt key or some of the text is selected, allow the key down\r\n\t\t\tif (event.ctrlKey || event.metaKey || event.altKey || (event.currentTarget.selectionEnd - event.currentTarget.selectionStart > 0)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\tcase Constants.KEYS.DELETE:\r\n\t\t\t\tcase Constants.KEYS.BACKSPACE:\r\n\t\t\t\tcase Constants.KEYS.ARROW_UP:\r\n\t\t\t\tcase Constants.KEYS.ARROW_RIGHT:\r\n\t\t\t\tcase Constants.KEYS.ARROW_DOWN:\r\n\t\t\t\tcase Constants.KEYS.ARROW_LEFT:\r\n\t\t\t\tcase Constants.KEYS.TAB:\r\n\t\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\tcase Constants.KEYS.HOME:\r\n\t\t\t\tcase Constants.KEYS.END:\r\n\t\t\t\tcase Constants.KEYS.PAGE_UP:\r\n\t\t\t\tcase Constants.KEYS.PAGE_DOWN:\r\n\t\t\t\t\t//event not handled, allowing the key down, as this is not a printable character\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvar $countryCode = $(event.target).closest(\"[data-component='accountPhoneNumberGroup']\").find(\"input[data-component='accountPhoneCountryCode']\");\r\n\t\t\t\t\tvar countryCodeInputValue = $countryCode.val();\r\n\t\t\t\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\t\t\t\t\tif ((countryCodeInputValue === \"1\" || countryCodeInputValue === \"+1\" || (!$countryCode.length && this.isCountryInUsOrCanada(defaultCountry))) && value.length >= 3) {\r\n\t\t\t\t\t\t//event handled, do not allow key down, already at max characters\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//event not handled, allow the key down\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//For phone number, making sure if a key is typed, and we are US or Canada and 8 characters are already present, do not allow character.\r\n\t\tvar $phoneNumbers = $parentComponent.find(\"[data-component='accountPhoneNumberGroup'] input[data-component='accountPhoneNumber']\");\r\n\t\t$phoneNumbers.off(\"keydown.phoneNumberGroup\");\r\n\t\t$phoneNumbers.on(\"keydown.phoneNumberGroup\", (event) => {\r\n\t\t\t//If Ctrl or (Window for WindowsOS or Command for MacOS) or Alt key or some of the text is selected, allow the key down\r\n\t\t\tif (event.ctrlKey || event.metaKey || event.altKey || (event.currentTarget.selectionEnd - event.currentTarget.selectionStart > 0)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\tcase Constants.KEYS.DELETE:\r\n\t\t\t\tcase Constants.KEYS.BACKSPACE:\r\n\t\t\t\tcase Constants.KEYS.ARROW_UP:\r\n\t\t\t\tcase Constants.KEYS.ARROW_RIGHT:\r\n\t\t\t\tcase Constants.KEYS.ARROW_DOWN:\r\n\t\t\t\tcase Constants.KEYS.ARROW_LEFT:\r\n\t\t\t\tcase Constants.KEYS.TAB:\r\n\t\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\tcase Constants.KEYS.HOME:\r\n\t\t\t\tcase Constants.KEYS.END:\r\n\t\t\t\tcase Constants.KEYS.PAGE_UP:\r\n\t\t\t\tcase Constants.KEYS.PAGE_DOWN:\r\n\t\t\t\t\t//event not handled, allowing the key down, as this is not a printable character\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvar $countryCode = $(event.target).closest(\"[data-component='accountPhoneNumberGroup']\").find(\"input[data-component='accountPhoneCountryCode']\");\r\n\t\t\t\t\tvar countryCodeInputValue = $countryCode.val();\r\n\t\t\t\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\t\t\t\t\tif (countryCodeInputValue === \"1\" || countryCodeInputValue === \"+1\" || (!$countryCode.length && this.isCountryInUsOrCanada(defaultCountry))) {\r\n\t\t\t\t\t\tif (value.length >= 8) {\r\n\t\t\t\t\t\t\t//event handled, do not allow key down, already at max characters\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//event not handled, allow the key down\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$phoneNumbers.off(\"change.phoneNumberGroup\");\r\n\t\t$phoneNumbers.on(\"change.phoneNumberGroup\", (event) => this.handlePhoneNumberInputFormat(event, defaultCountry));\r\n\t\t$phoneNumbers.off(\"keyup.phoneNumberGroup\");\r\n\t\t$phoneNumbers.on(\"keyup.phoneNumberGroup\", (event) => this.handlePhoneNumberInputFormat(event, defaultCountry));\r\n\t},\r\n\r\n\tisCountryInUsOrCanada: function(country) {\r\n\t\tcountry = (country || \"\").toUpperCase();\r\n\t\tif (country === \"US\" || country === \"USA\" || country === \"CA\" || country === \"CAN\") {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n};\r\n\r\nmodule.exports = PhoneNumberHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"PledgeStatementHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar PledgeStatementApi = require(\"../api/PledgeStatementApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar PledgeStatementHelper = {\r\n\tsubmitPledgeStatementForm: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Submit Pledge Statment Form called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $pledgeStatementFormComponent = $(event.target).closest('[data-component=\"pledgeStatementForm\"]');\r\n\r\n\t\tvar components = [\r\n\t\t\t$pledgeStatementFormComponent\r\n\t\t];\r\n\r\n\t\tSpinner.showSpinner();\r\n\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar pledgeStatementData = ActionsHelper.serializeForm($pledgeStatementFormComponent.find(\"form\"));\r\n\r\n\t\t\tPledgeStatementApi.submitPledgeStatement(pledgeStatementData).done(() => {\r\n\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t}).fail((response) => {\r\n\t\t\t\tvar defaultErrorMessage = window.AccountStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY,\r\n\t\t\t\t\tWizardConstants.PLEDGE_STATEMENT_ENTRY_FIELDS.INVALID_ACCOUNT_OR_PLEDGE_STATEMENT_MESSAGE\r\n\t\t\t\t);\r\n\r\n\t\t\t\tvar responseObject = response && response.responseJSON || {};\r\n\t\t\t\tvar errorMessage = responseObject.messageGuaranteedConstituentSafe && responseObject.message || defaultErrorMessage;\r\n\r\n\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\tvar isDesignMode = window.AccountStore && window.AccountStore.get(\"isDesignMode\");\r\n\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode, isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t},\r\n\r\n\tconfirmAbandonPledgeStatementSession: function (isInPledgeStatementSession, pledgeStatementEntryWizard) {\r\n\t\tvar deferred = $.Deferred();\r\n\r\n\t\tif (isInPledgeStatementSession) {\r\n\t\t\tpledgeStatementEntryWizard = pledgeStatementEntryWizard || {};\r\n\r\n\t\t\tBootstrapPrompt.confirm({\r\n\t\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\t\tmessage: pledgeStatementEntryWizard[WizardConstants.PLEDGE_STATEMENT_ENTRY_FIELDS.SESSION_ABANDONMENT_WARNING_MESSAGE]\r\n\t\t\t}, (shouldAbandonPledgeStatementSession) => {\r\n\t\t\t\tif (shouldAbandonPledgeStatementSession) {\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t}\r\n};\r\n\r\nmodule.exports = PledgeStatementHelper;","\"use strict\";\r\n\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\n\r\nvar PostalCodeHelper = {\r\n\r\n\tinitialize: function (options) {\r\n\t\tthis.options = options || {};\r\n\t\tthis.postalCodeFormatWizard = options.postalCodeFormatWizard || {};\r\n\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\t\t\tthis.addCountryChangeListeners()\r\n\t\t});\r\n\t},\r\n\t// find the accountAddressPostalCode data-component in the body or parent selector\r\n\taddCountryChangeListeners: function (parentSelector) {\r\n\t\tvar eventSearchPostalCodeSelectorText = \"[data-component='textInput'][data-code-type='postalCode'] input\";\r\n\t\tvar $postalCodes = $(parentSelector || \"body\").find(`[data-component='accountAddressPostalCode'], ${eventSearchPostalCodeSelectorText}`);\r\n\r\n\t\t//For each element, get the country if available\r\n\t\t$postalCodes.each((index, postalCode) => {\r\n\t\t\tif (postalCode.hasAttribute(\"required\")) {\r\n\t\t\t\tpostalCode.setAttribute(\"isRequiredByDefault\", \"true\");\r\n\t\t\t}\r\n\r\n\t\t\tvar $country = AccountFormHelper.getParentForm(postalCode).find(\"[data-react-component-name='CountrySelector']\");\r\n\t\t\tvar isCountryAvailable = $country.length > 0;\r\n\t\t\t//If the country is available, call the addPostalCode validation when the country changes\r\n\t\t\tif (isCountryAvailable) {\r\n\t\t\t\t$country.on(\"change.postalCodeHelper\", (event) => this.onCountryChange(event));\r\n\t\t\t}\r\n\r\n\t\t\t//If there currently is a country, apply the wizzard. If not, get the default and apply the wizard.\r\n\t\t\tvar countryCode = isCountryAvailable ? $country.children().val() : AccountFormHelper.getDefaultCountry();\r\n\t\t\tif (countryCode) {\r\n\t\t\t\tthis.applyPostalCodeAttributesByCountry(countryCode, $(postalCode));\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tonCountryChange: function (event) {\r\n\t\tvar $country = event.target;\r\n\r\n\t\tvar eventSearchPostalCodeSelectorText = \"[data-component='textInput'][data-code-type='postalCode'] input\";\r\n\t\tvar $postalCode = AccountFormHelper.getParentForm($country).find(`[data-component='accountAddressPostalCode'], ${eventSearchPostalCodeSelectorText}`);\r\n\r\n\t\tthis.applyPostalCodeAttributesByCountry($country.value, $postalCode);\r\n\t},\r\n\r\n\tapplyPostalCodeAttributesByCountry: function (country, $postalCode) {\r\n\t\tvar formatRegex = this.postalCodeFormatWizard[`${country}PostalCodeFormat`];\r\n\t\tvar isPostalCodeNumeric = this.postalCodeFormatWizard[`${country}IsPostalCodeNumeric`];\r\n\t\tvar errorMessage = this.postalCodeFormatWizard[`${country}PostalCodeFormatErrorMessage`];\r\n\t\tvar isEventSearchFormPostalCode = $postalCode.closest(\"[data-component='eventSearchForm']\").length > 0;\r\n\r\n\t\tif (!isEventSearchFormPostalCode) {\r\n\t\t\tif (country === \"US\" || country === \"USA\" || country === \"CA\" || country === \"CAN\") {\r\n\t\t\t\t$postalCode.attr(\"required\", true);\r\n\t\t\t} else if (!$postalCode.attr(\"isRequiredByDefault\")) {\r\n\t\t\t\t$postalCode.removeAttr(\"required\");\r\n\t\t\t\t$postalCode.trigger(\"change\");\r\n\t\t\t}\r\n\r\n\t\t\tif (formatRegex) {\r\n\t\t\t\t$postalCode.attr(\"pattern\", formatRegex);\r\n\t\t\t\t$postalCode.attr(\"title\", errorMessage);\r\n\t\t\t} else {\r\n\t\t\t\t$postalCode.removeAttr(\"pattern\");\r\n\t\t\t\t$postalCode.removeAttr(\"title\");\r\n\t\t\t\t$postalCode.trigger(\"change\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isPostalCodeNumeric) {\r\n\t\t\t$postalCode.attr(\"inputmode\", \"numeric\");\r\n\t\t} else {\r\n\t\t\t$postalCode.removeAttr(\"inputmode\");\r\n\t\t}\r\n\r\n\t\t$postalCode.attr(\"autocomplete\", \"postal-code\");\r\n\t}\r\n};\r\n\r\nmodule.exports = PostalCodeHelper;\r\n","\"use strict\";\r\n\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar reportsComponentSelector = \"[data-component='reports']\";\r\nvar reportSelectSelector = \"[data-component='reports.selector.select']\";\r\nvar reportParametersComponentSelector = \"[data-component='reports.parameters']\";\r\nvar reportButtonSelector = \"[data-component='reports.button']\";\r\nvar dateSelector = \"[data-component='reports.parameters.date.input']\";\r\nvar decimalNumberSelector = \"[data-component='reports.parameters.decimalNumber.input']\";\r\nvar wholeNumberSelector = \"[data-component='reports.parameters.wholeNumber.input']\";\r\n\r\nvar ReportsHelper = {\r\n\tinitialize: function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (options.isDesignMode || $(reportsComponentSelector).length === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$(reportButtonSelector).on(\"click.downloadReport\", this.downloadReport.bind(this));\r\n\t\t$(reportSelectSelector).on(\"change.selectReport\", this.loadReportParameters.bind(this));\r\n\r\n\t\t$(reportSelectSelector).each((index, element) => {\r\n\t\t\tvar $selector = $(element);\r\n\r\n\t\t\t$selector.closest(reportsComponentSelector)\r\n\t\t\t\t.find(reportParametersComponentSelector)\r\n\t\t\t\t.hide();\r\n\r\n\t\t\t// Trigger the initial parameters refresh if a report is initially selected.\r\n\t\t\tif ($selector.val()) {\r\n\t\t\t\t$selector.trigger(\"change.selectReport\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Store the date format on each report component so we can re-initialize inputs upon reloading parameter partials.\r\n\t\tvar $reportsComponent = $(reportsComponentSelector);\r\n\t\tvar dateFormat = (options.wizardDateFormat && options.wizardDateFormat.dateFormat) || {};\r\n\t\t$reportsComponent.attr(\"data-date-format\", JSON.stringify(dateFormat));\r\n\r\n\t\tthis._initializeInputs($reportsComponent);\r\n\t},\r\n\r\n\t_initializeInputs: function ($reportsComponent) {\r\n\t\tthis._initializeDates($reportsComponent);\r\n\t\tthis._initializeWholeNumbers($reportsComponent);\r\n\t\tthis._initializeDecimalNumbers($reportsComponent);\r\n\t},\r\n\r\n\t_initializeWholeNumbers: function ($reportsComponent) {\r\n\t\tvar $component = $reportsComponent.find(wholeNumberSelector);\r\n\r\n\t\tInputHelper.initializeIntegerInput({\r\n\t\t\t$component,\r\n\t\t\tdefaultValue: null,\r\n\t\t\tgreaterThanZero: false,\r\n\t\t\tnumberSelector: $component,\r\n\t\t\tallowNegative: true\r\n\t\t});\r\n\t},\r\n\r\n\t_initializeDecimalNumbers: function ($reportsComponent) {\r\n\t\tvar $component = $reportsComponent.find(decimalNumberSelector);\r\n\r\n\t\tInputHelper.initializeDecimalInput(\r\n\t\t\t/*$component:*/ $component,\r\n\t\t\t/*amountSelector:*/ $component,\r\n\t\t\t/*greaterThanZero:*/ false,\r\n\t\t\t/*formatAmount:*/ false,\r\n\t\t\t/*defaultValue:*/ null,\r\n\t\t\t/*includeThousandsSeparator:*/ false,\r\n\t\t\t/*allowNegative:*/ true\r\n\t\t);\r\n\t},\r\n\r\n\t_initializeDates: function ($reportsComponent) {\r\n\t\tvar dateFormat = JSON.parse($reportsComponent.attr(\"data-date-format\"));\r\n\r\n\t\tInputHelper.initializeDates({\r\n\t\t\t$component: $reportsComponent,\r\n\t\t\tdateSelector,\r\n\t\t\twizardDateFormat: dateFormat\r\n\t\t});\r\n\r\n\t\t//Adding custom validator for Date fields for when submit is clicked\r\n\t\t$reportsComponent.find(dateSelector).each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({\r\n\t\t\t\tcustomValidator: () => {\r\n\t\t\t\t\tvar errorMessages = [];\r\n\t\t\t\t\tvar date = $element.val();\r\n\r\n\t\t\t\t\tif (date != null && date != \"\") {\r\n\t\t\t\t\t\terrorMessages = InputHelper.validateDates({\r\n\t\t\t\t\t\t\tdateFormat: dateFormat,\r\n\t\t\t\t\t\t\tdate,\r\n\t\t\t\t\t\t\tdateInvalidMessage: window.FORM_VALIDATION_MESSAGES.INVALID_DATE,\r\n\t\t\t\t\t\t}) || [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\terrorMessages,\r\n\t\t\t\t\t\tisValid: !errorMessages.length\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tdownloadReport: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"reportsDownload\"));\r\n\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tvar $reportsComponent = $(event.target).closest(reportsComponentSelector);\r\n\r\n\t\t\tSpinner.showSpinner($reportsComponent);\r\n\r\n\t\t\tvar components = [\r\n\t\t\t\t$reportsComponent\r\n\t\t\t];\r\n\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner($reportsComponent);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar report = this.serializeReport($reportsComponent);\r\n\r\n\t\t\t\tAccountApi.downloadReport(report, AccountStore.get(\"shouldOpenReportsInNewTab\")).fail((statusCode) => {\r\n\t\t\t\t\tvar wizardName = WizardConstants.WIZARDS.REPORT_DISPLAY_MESSAGES;\r\n\t\t\t\t\tvar wizardFields = WizardConstants.REPORT_DISPLAY_MESSAGES_FIELDS;\r\n\r\n\t\t\t\t\tvar message = statusCode === 409 ?\r\n\t\t\t\t\t\tAccountStore.getWizardValue(wizardName, wizardFields.REPORT_CONFIGURATION_CHANGED) :\r\n\t\t\t\t\t\tAccountStore.getWizardValue(wizardName, wizardFields.DOWNLOAD_ERROR);\r\n\r\n\t\t\t\t\tBootstrapPrompt.alert(message);\r\n\t\t\t\t}).always(() => {\r\n\t\t\t\t\tSpinner.removeSpinner($reportsComponent);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tSpinner.removeSpinner($reportsComponent);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tloadReportParameters: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"reportsLoadPartial\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\t\tvar $reportsComponent = $(event.target).closest(reportsComponentSelector);\r\n\t\tvar $reportParametersComponent = $reportsComponent.find(reportParametersComponentSelector);\r\n\t\tvar reportId = event.target && event.target.value || \"\";\r\n\r\n\t\tvar options = {\r\n\t\t\treportId,\r\n\t\t\treportParametersComponentId: $reportParametersComponent.attr(\"id\")\r\n\t\t};\r\n\r\n\t\tthis._loadReportParameters($reportsComponent, options);\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_loadReportParameters: function ($reportsComponent, options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tSpinner.showSpinner($reportsComponent);\r\n\t\tAccountApi.getReportParameters(options).done((data) => {\r\n\t\t\tvar $partial = $(data);\r\n\t\t\tif (!options.reportId) {\r\n\t\t\t\t$partial.hide();\r\n\t\t\t}\r\n\r\n\t\t\t$reportsComponent.find(reportParametersComponentSelector).replaceWith($partial);\r\n\t\t\tthis._initializeInputs($reportsComponent);\r\n\t\t\tSpinner.removeSpinner($reportsComponent);\r\n\t\t}).fail((jqXHR) => {\r\n\t\t\tjqXHR = jqXHR || {};\r\n\t\t\tif (jqXHR.status == 400) {\r\n\t\t\t\tif (!jqXHR || !jqXHR.responseJSON || !PartialResponseHelper.handleErrorResponse(jqXHR.responseJSON)) {\r\n\t\t\t\t\t//There was not a partial error, so do what we normally would do.\r\n\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.removeSpinner($reportsComponent);\r\n\t\t});\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, AccountStore.get(\"isDesignMode\"), isDesignModeMessage);\r\n\t},\r\n\r\n\tserializeReport: function ($reportsComponent) {\r\n\t\tvar $reportsSelectorComponent = $reportsComponent.find(reportSelectSelector);\r\n\t\tvar $reportsParametersComponent = $reportsComponent.find(reportParametersComponentSelector);\r\n\t\tvar $parameterComponents = $reportsParametersComponent.find(\"input,select\");\r\n\r\n\t\tvar report = {\r\n\t\t\treportId: $reportsSelectorComponent.val()\r\n\t\t};\r\n\r\n\t\t$parameterComponents.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\r\n\t\t\tvar parameterName = $element.attr(\"name\");\r\n\t\t\tvar parameterValue = $element.val();\r\n\r\n\t\t\treport[parameterName] = parameterValue;\r\n\t\t});\r\n\r\n\t\treturn report;\r\n\t}\r\n};\r\n\r\nmodule.exports = ReportsHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SavedPaymentHelper\");\r\n\r\nvar SavedPaymentsApi = require(\"../api/SavedPaymentsApi\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\n\r\nvar creditCardsAndEftsSelector = \"[data-component='savedPayments.creditCard'], [data-component='savedPayments.eft']\";\r\nvar isPrimaryCheckboxSelector = \"[data-component='savedPayments.isPrimary.input']\";\r\nvar isPrimaryDataDrivenSelector = \"[data-dynamic='savedPayment.IsPrimary']\";\r\nvar savedPaymentsSelector = \"[data-component='savedPayments']\";\r\nvar addNewSavedPaymentSelector = \"[data-component='savedPayments.addNew']\";\r\n\r\nvar billingAddressesAddSmartyStreetsInstanceName = \"billingAddressesAdd\";\r\n\r\nvar SavedPaymentHelper = {\r\n\tinitializeSavedPayments: function (isCheckout) {\r\n\t\tvar $creditCardsAndEfts = $(\"body\").find(creditCardsAndEftsSelector);\r\n\t\tvar $checkboxElements = $creditCardsAndEfts.find(\"[data-component='savedPayments.isPrimary.input'], [data-component='savedPayments.isPrimary.label']\");\r\n\t\t$checkboxElements.on(\"click.savedPaymentsHelper\", (event) => this._changePrimarySavedPayment(event));\r\n\t\r\n\t\tvar $newSavedPayment = $(\"body\").find(\"[data-component='savedPayments.addNew']\");\r\n\t\tvar $newSavedPaymentPrimaryCheckbox = $newSavedPayment.find(\"[data-component='savedPayments.isPrimary.input'], [data-component='savedPayments.isPrimary.label']\");\r\n\t\t$newSavedPaymentPrimaryCheckbox.on(\"click.savedPaymentsHelper\", (event) => this._handleNewPaymentIsPrimaryChange(event));\r\n\r\n\t\tvar $newSavedPaymentSavePaymentCheckbox = $newSavedPayment.find(\"[data-component='paymentType.savePayment.input'], [data-component='paymentType.savePayment.label']\");\r\n\t\t$newSavedPaymentSavePaymentCheckbox.on(\"click.savedPaymentsHelper\", (event) => this._handleNewPaymentSavePaymentChange(event));\r\n\r\n\t\tif (isCheckout && !$creditCardsAndEfts.length) {\r\n\t\t\tthis._showAddNewPayment($(\"body\").find(savedPaymentsSelector));\r\n\t\t}\r\n\t},\r\n\r\n\thandleAddNewPaymentLinkClick: function (event) {\r\n\t\tvar returnedEvent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"addNewPayment\"));\r\n\t\tif (!returnedEvent) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $savedPayments = $(event.target).closest(savedPaymentsSelector);\r\n\t\tthis._showAddNewPayment($savedPayments);\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_showAddNewPayment: function ($savedPaymentComponent) {\r\n\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.addPrompt']\").hide();\r\n\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.addNew']\").show();\r\n\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.accountSavedPaymentSubmitButton']\").show();\r\n\r\n\t\tvar $savedPaymentCheckoutSelector = $(\"[data-component='savedPayments.addNew'] [data-component='savedPayments.selector']\");\r\n\t\tif ($savedPaymentCheckoutSelector.length) {\r\n\t\t\t$savedPaymentCheckoutSelector.click()\r\n\t\t}\r\n\t},\r\n\r\n\tdeleteSavedPayment: function (paymentRecordId) {\r\n\t\t//Cannot do normal process for Ctrl+click because no event is passed in\r\n\t\t//\tUsing window.event because this works in Chrome and we are saying the designer only works in Chrome.\r\n\t\tif (this._isDesignMode()) {\r\n\t\t\tthis._getEventOrReturn(window.event, LinkMessageHelper.linkMessageMapper(\"removeSavedPayment\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tSavedPaymentsApi.deleteSavedPayment(paymentRecordId)\r\n\t\t\t.done(() => window.location.reload())\r\n\t\t\t.fail(jqHXR => {\r\n\t\t\t\tif (((jqHXR || {}).responseJSON || {}).message == \"Cannot delete Saved Payment because it is used on a recurring.\") {\r\n\t\t\t\t\tBootstrapPrompt.alert(this._getWizardValue(WizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES, WizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.CANNOT_DELETE_BECAUSE_OF_RECURRING));\r\n\t\t\t\t} else if (((jqHXR || {}).responseJSON || {}).message == \"Cannot delete Saved Payment because it is used on an auto-renewing subscription.\") {\r\n\t\t\t\t\tBootstrapPrompt.alert(this._getWizardValue(WizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES, WizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.CANNOT_DELETE_BECAUSE_OF_AUTO_RENEWING_SUBSCRIPTION));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tBootstrapPrompt.alert(jqHXR);\r\n\t\t\t\t}\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_changePrimarySavedPayment: function (event) {\r\n\t\tvar $savedPayment = $(event.currentTarget).closest(creditCardsAndEftsSelector);\r\n\t\tvar $checkbox = $savedPayment.find(isPrimaryCheckboxSelector);\r\n\t\t\r\n\t\t// If the label was clicked, we need to check the box. If the checkbox was clicked, it is already accurate.\r\n\t\tif (event.currentTarget.localName === \"label\") {\r\n\t\t\tvar isChecked = $checkbox.prop(\"checked\");\r\n\t\t\t$checkbox.prop(\"checked\", !isChecked);\r\n\t\t}\r\n\r\n\t\tthis._confirmAndUpdateSavedPayment($savedPayment, /*shouldMakePrimary*/$checkbox.prop(\"checked\"));\r\n\t},\r\n\r\n\t_handleNewPaymentIsPrimaryChange: function (event) {\r\n\t\tvar $newSavedPayment = $(event.currentTarget).closest(addNewSavedPaymentSelector);\r\n\t\tvar $isPrimaryCheckbox = $newSavedPayment.find(isPrimaryCheckboxSelector);\r\n\t\tvar isChecked = $isPrimaryCheckbox.prop(\"checked\");\r\n\t\t\r\n\t\t// If the label was clicked, the box has not been checked yet. If the checkbox was clicked, it is already accurate.\r\n\t\tif (event.currentTarget.localName === \"label\") {\r\n\t\t\tisChecked = !isChecked;\r\n\t\t}\r\n\r\n\t\tif (isChecked) {\r\n\t\t\tvar $savePaymentCheckbox = $newSavedPayment.find(\"[data-component='paymentType.savePayment.input']\");\r\n\t\t\t$savePaymentCheckbox.prop(\"checked\", true);\r\n\t\t}\r\n\t},\r\n\r\n\t_handleNewPaymentSavePaymentChange: function (event) {\r\n\t\tvar $newSavedPayment = $(event.currentTarget).closest(addNewSavedPaymentSelector);\r\n\t\tvar $savePaymentCheckbox = $newSavedPayment.find(\"[data-component='paymentType.savePayment.input']\");\r\n\t\tvar isChecked = $savePaymentCheckbox.prop(\"checked\");\r\n\r\n\t\t// If the label was clicked, the box has not been checked yet. If the checkbox was clicked, it is already accurate.\r\n\t\tif (event.currentTarget.localName === \"label\") {\r\n\t\t\tvar isChecked = !isChecked;\r\n\t\t}\r\n\r\n\t\tif (!isChecked) {\r\n\t\t\tvar $isPrimaryCheckbox = $newSavedPayment.find(isPrimaryCheckboxSelector);\r\n\t\t\t$isPrimaryCheckbox.prop(\"checked\", false);\r\n\t\t}\r\n\t},\r\n\r\n\t_confirmAndUpdateSavedPayment: function ($savedPayment, shouldMakePrimary) {\r\n\t\tif (shouldMakePrimary) {\r\n\t\t\tBootstrapPrompt.confirm({\r\n\t\t\t\tmessage: this._getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.MAKE_PRIMARY_CONFIRMATION_MESSAGE\r\n\t\t\t\t),\r\n\t\t\t\tbtnOKLabel: this._getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.MAKE_PRIMARY_CONFIRMATION_CONFIRM_BUTTON_TEXT\r\n\t\t\t\t),\r\n\t\t\t\tbtnCancelLabel: this._getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.MAKE_PRIMARY_CONFIRMATION_CANCEL_BUTTON_TEXT\r\n\t\t\t\t)\r\n\t\t\t}, (result) => {\r\n\t\t\t\tthis._updateOrResetSavedPayment(result, $savedPayment, shouldMakePrimary);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tBootstrapPrompt.confirm({\r\n\t\t\t\tmessage: this._getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.REMOVE_DEFAULT_CONFIRMATION_MESSAGE\r\n\t\t\t\t),\r\n\t\t\t\tbtnOKLabel: this._getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.REMOVE_DEFAULT_CONFIRMATION_CONFIRM_BUTTON_TEXT\r\n\t\t\t\t),\r\n\t\t\t\tbtnCancelLabel: this._getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.REMOVE_DEFAULT_CONFIRMATION_CANCEL_BUTTON_TEXT\r\n\t\t\t\t)\r\n\t\t\t}, (result) => {\r\n\t\t\t\tthis._updateOrResetSavedPayment(result, $savedPayment, shouldMakePrimary);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t_updateOrResetSavedPayment: function(shouldUpdate, $savedPayment, shouldMakePrimary) {\r\n\t\tif (shouldUpdate) {\r\n\t\t\tthis._updateSavedPayment($savedPayment, shouldMakePrimary);\r\n\t\t} else {\r\n\t\t\tthis._updateSavedPaymentsDisplay($savedPayment, shouldMakePrimary, /*updateWasSuccessful*/false);\r\n\t\t}\r\n\t},\r\n\r\n\t_updateSavedPayment: function ($savedPayment, shouldMakePrimary) {\r\n\t\tif (this._isDesignMode()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $savedPaymentsComponent = $savedPayment.closest(savedPaymentsSelector);\r\n\r\n\t\tSpinner.showSpinner($savedPaymentsComponent);\r\n\t\tSavedPaymentsApi.updateSavedPayment($savedPayment.attr(\"data-saved-payment-id\"), shouldMakePrimary)\r\n\t\t\t.done(() => {\r\n\t\t\t\tthis._updateSavedPaymentsDisplay($savedPayment, shouldMakePrimary, /*updateWasSuccessful*/true);\r\n\t\t\t\tSpinner.removeSpinner($savedPaymentsComponent);\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tthis._updateSavedPaymentsDisplay($savedPayment, shouldMakePrimary, /*updateWasSuccessful*/false);\r\n\t\t\t\tif (shouldMakePrimary) {\r\n\t\t\t\t\tBootstrapPrompt.alert(this._getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.MAKE_PRIMARY_ERROR_TEXT\r\n\t\t\t\t\t));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tBootstrapPrompt.alert(this._getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SAVED_PAYMENT_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS.REMOVE_DEFAULT_ERROR_TEXT\r\n\t\t\t\t\t));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tSpinner.removeSpinner($savedPaymentsComponent);\r\n\t\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_updateSavedPaymentsDisplay: function ($savedPayment, shouldMakePrimary, updateWasSuccessful) {\r\n\t\tvar $checkbox = $savedPayment.find(isPrimaryCheckboxSelector)\r\n\r\n\t\tif (!updateWasSuccessful) {\r\n\t\t\t$checkbox.prop(\"checked\", !shouldMakePrimary);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tvar $savedPaymentsComponent = $savedPayment.closest(savedPaymentsSelector);\r\n\t\tvar $allCheckboxes = $savedPaymentsComponent.find(creditCardsAndEftsSelector).find(isPrimaryCheckboxSelector);\r\n\t\tvar $allIsPrimaryDataDrivenLabels = $savedPaymentsComponent.find(isPrimaryDataDrivenSelector);\r\n\t\t\r\n\t\t$allCheckboxes.prop(\"checked\", false);\r\n\t\t$allIsPrimaryDataDrivenLabels.text(\"No\");\r\n\t\t\r\n\t\tif (shouldMakePrimary) {\r\n\t\t\t$checkbox.prop(\"checked\", true);\r\n\t\t\tvar $isPrimaryDataDrivenLabel = $savedPayment.find(isPrimaryDataDrivenSelector);\r\n\t\t\t$isPrimaryDataDrivenLabel.text(\"Yes\");\r\n\t\t}\r\n\t},\r\n\r\n\taddSavedPaymentToAccount: function (event) {\r\n\t\ttry {\r\n\t\t\tevent = this._getEventOrReturn(event, \"Saved Payment Added.\");\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $savedPaymentComponent = $(event.target).closest(savedPaymentsSelector);\r\n\t\t\tvar $savedPaymentAddNewComponent = $savedPaymentComponent.find(\"[data-component='savedPayments.addNew']\");\r\n\t\t\tvar components = [\r\n\t\t\t\t$savedPaymentAddNewComponent\r\n\t\t\t];\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tPaymentHelper.getPaymentData(\r\n\t\t\t\t\twindow.AccountStore.get(\"wizardCompanyErrorMessages\"),\r\n\t\t\t\t\twindow.AccountStore.get(\"wizardCompanyEftErrorMessages\"),\r\n\t\t\t\t\t(hostedPageTokenObject) => {\r\n\t\t\t\t\t\tvar isPrimary = $savedPaymentAddNewComponent.find(isPrimaryCheckboxSelector).prop(\"checked\");\r\n\r\n\t\t\t\t\t\tvar addSavedPayment = function () {\r\n\t\t\t\t\t\t\tSavedPaymentsApi.addSavedPaymentToAccount({\r\n\t\t\t\t\t\t\t\tcompanyCode: window.AccountStore.get(\"companyCode\"),\r\n\t\t\t\t\t\t\t\tisPrimary,\r\n\t\t\t\t\t\t\t\tpayment: hostedPageTokenObject\r\n\t\t\t\t\t\t\t}).done(() => {\r\n\t\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t\t}).fail(() => {\r\n\t\t\t\t\t\t\t\tPaymentHelper.clearPaymentData($savedPaymentComponent);\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(window.AccountStore.getWizardValue(\r\n\t\t\t\t\t\t\t\t\tWizardConstants.WIZARDS.ACCOUNT_MESSAGES,\r\n\t\t\t\t\t\t\t\t\tWizardConstants.ACCOUNT_MESSAGE_FIELDS.SAVED_PAYMENT_ERROR\r\n\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (hostedPageTokenObject.billingAddressInformation.selectionType === \"NEW\") {\r\n\t\t\t\t\t\t\tSmartyStreets.verifyAddress(billingAddressesAddSmartyStreetsInstanceName)\r\n\t\t\t\t\t\t\t\t.done(() => {\r\n\t\t\t\t\t\t\t\t\taddSavedPayment();\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.fail(() => Spinner.removeSpinner());\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\taddSavedPayment();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t() => Spinner.removeSpinner(), $savedPaymentComponent);\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, this._isDesignMode(), isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t},\r\n\r\n\t_getWizardValue: function(wizardName, wizardField) {\r\n\t\tvar wizardValue = \"\";\r\n\t\tif (window.CheckoutActions) {\r\n\t\t\twizardValue = window.CheckoutActions.getWizardValue(wizardName, wizardField);\r\n\t\t}\r\n\r\n\t\tif (!wizardValue && window.AccountStore) {\r\n\t\t\twizardValue = window.AccountStore.getWizardValue(wizardName, wizardField);\r\n\t\t}\r\n\r\n\t\treturn wizardValue;\r\n\t},\r\n\r\n\t_isDesignMode: function() {\r\n\t\treturn (window.CheckoutActions && window.CheckoutActions.isDesignMode()) || (window.AccountStore && window.AccountStore.get(\"isDesignMode\"));\r\n\t}\r\n};\r\n\r\nmodule.exports = SavedPaymentHelper;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SmartyStreets\");\r\n\r\nvar SmartyStreetsAutocomplete = require(\"./SmartyStreetsAutocomplete\");\r\nvar SmartyStreetsVerify = require(\"./SmartyStreetsVerify\");\r\n\r\nvar SmartyStreetsApi = require(\"../api/SmartyStreetsApi\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\n// This only works currently having a single SmartyStreets address form on a page at a time.\r\n//\tIf we need multiple, we will need to create a new instance of SmartyStreetsVerify and SmartyStreetsAutocomplete on each initialize call.\r\nvar SmartyStreets = {\r\n\tinitialize: function (smartyStreetsOptions) {\r\n\t\tsmartyStreetsOptions = smartyStreetsOptions || {};\r\n\t\twindow.smartyStreetsInstances = window.smartyStreetsInstances || {};\r\n\r\n\t\tvar addressStandardizationWizard = window.AccountStore.get(\"wizardAddressStandardization\");\r\n\t\tvar isSmartyStreetsEnabled = addressStandardizationWizard && addressStandardizationWizard.isEnabled === \"true\";\r\n\r\n\t\tif (!isSmartyStreetsEnabled) {\r\n\t\t\tLoggerInstance.debug(\"SmartyStreets is not configured for use.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!smartyStreetsOptions.instanceName) {\r\n\t\t\tLoggerInstance.error(\"An 'instanceName' must be provided.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (window.smartyStreetsInstances[smartyStreetsOptions.instanceName]) {\r\n\t\t\tLoggerInstance.error(`A SmartyStreets instance already exists with the '${smartyStreetsOptions.instanceName}' instanceName.`);\r\n\t\t}\r\n\r\n\t\tvar $addressForm = $(smartyStreetsOptions.addressFormSelector);\r\n\t\tvar themeId = $addressForm.attr(\"data-theme\") || $(\"body\").attr(\"data-theme\");\r\n\r\n\t\tif ($addressForm.length && themeId) {\r\n\t\t\tSmartyStreetsApi.getSmartyStreetsHtml(themeId).done((data) => {\r\n\t\t\t\tif (data.success) {\r\n\t\t\t\t\t// Just got the Popup and Autocomplete html\r\n\t\t\t\t\tsmartyStreetsOptions = Object.assign(smartyStreetsOptions, data.model);\r\n\t\t\t\t\tsmartyStreetsOptions.restrictedCountries = addressStandardizationWizard.restrictedCountries;\r\n\r\n\t\t\t\t\t// Setup the Address Verify\r\n\t\t\t\t\tvar smartyStreetsVerifyInstance = new SmartyStreetsVerify(smartyStreetsOptions);\r\n\r\n\t\t\t\t\t// Save the SmartyStreetVerifyInstance\r\n\t\t\t\t\twindow.smartyStreetsInstances[smartyStreetsOptions.instanceName] = smartyStreetsVerifyInstance;\r\n\r\n\t\t\t\t\tvar smartyStreetsApiKeyWizard = window.AccountStore.get(\"wizardSmartyStreetsApiKey\");\r\n\t\t\t\t\tif (smartyStreetsApiKeyWizard && smartyStreetsApiKeyWizard.apiKey) {\r\n\t\t\t\t\t\t// Setup the Autocomplete\r\n\t\t\t\t\t\t// Do not need to reference it again\r\n\t\t\t\t\t\tvar smartyStreetsAutocompleteInstance = new SmartyStreetsAutocomplete(smartyStreetsOptions);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeForCreateAccount: function() {\r\n\t\t// Setting up the createAccountForm SmartyStreets integration\r\n\t\tthis._initializeForm(\"#createAccountForm\", \"createAccountForm\");\r\n\t},\r\n\r\n\tinitializeForCreateGiftAccount: function() {\r\n\t\tthis._initializeForm(\"#createGiftAccountForm\", \"createGiftAccountForm\");\r\n\t},\r\n\r\n\tinitializeForEventRegistration: function(id) {\r\n\t\tthis._initializeForm(`#${id} form`, `eventRegistration${id}`);\r\n\t},\r\n\r\n\tinitializeForBillingAddressesAdd: function() {\r\n\t\tthis._initializeForm(\"#addBillingAddress\", \"billingAddressesAdd\");\r\n\t},\r\n\r\n\tinitializeMySubscriptionsBillingAddressesAdd: function(id) {\r\n\t\tthis._initializeForm(`[data-subscription-id=\"${id}\"] form[id=\"addBillingAddress\"]`, `subscriptionBillingAddressesAdd-${id || \"\"}`);\r\n\t},\r\n\r\n\tinitializeMyRecurringsBillingAddressesAdd: function(id) {\r\n\t\tthis._initializeForm(`[data-recurring-id=\"${id}\"] form[id=\"addBillingAddress\"]`, `recurringBillingAddressesAdd-${id || \"\"}`);\r\n\t},\r\n\r\n\tinitializeForOtherAddressesAdd: function() {\r\n\t\tthis._initializeForm(\"#addOtherAddresses\", \"otherAddressesAdd\");\r\n\t},\r\n\r\n\tinitializeForOtherAddressesEdit: function(id) {\r\n\t\tthis._initializeForm(\"#editOtherAddresses-\" + id, `otherAddressesEdit${id || \"\"}`);\r\n\t},\r\n\r\n\tinitializeForPrimaryContactInformation: function() {\r\n\t\t// Setting up the primaryContactInformationForm SmartyStreets integration\r\n\t\tthis._initializeForm(\"#primaryContactInformationForm\", \"primaryContactInformation\");\r\n\t},\r\n\r\n\tinitializeForSubscriptionPurchase: function(id) {\r\n\t\tthis._initializeForm(`#${id} form`, `subscription${id}`);\r\n\t},\r\n\r\n\tremoveEventRegistration: function(id) {\r\n\t\tdelete window.smartyStreetsInstances[`eventRegistration${id}`];\r\n\t},\r\n\r\n\tremoveOtherAddressEdit: function(id) {\r\n\t\tdelete window.smartyStreetsInstances[`otherAddressesEdit${id || \"\"}`];\r\n\t},\r\n\r\n\t_initializeForm: function(formSelector, instanceName) {\r\n\t\tvar smartyStreetsOptions = {\r\n\t\t\taddress1InputSelector: `${formSelector} input[data-component='accountAddressLine1']`,\r\n\t\t\taddress2InputSelector: `${formSelector} input[data-component='accountAddressLine2']`,\r\n\t\t\taddress3InputSelector: `${formSelector} input[data-component='accountAddressLine3']`,\r\n\t\t\taddress4InputSelector: `${formSelector} input[data-component='accountAddressLine4']`,\r\n\t\t\taddressFormSelector: formSelector,\r\n\t\t\tcityInputSelector: `${formSelector} input[data-component='accountAddressCity']`,\r\n\t\t\tcountryInputSelector: `${formSelector} select[name='address.country']`,\r\n\t\t\tinstanceName,\r\n\t\t\tpostalCodeInputSelector: `${formSelector} input[data-component='accountAddressPostalCode']`,\r\n\t\t\tstateInputSharedSelector: `${formSelector} [data-shared-name='address.state.field']`,\r\n\t\t\tstateInputSelectSelector: `${formSelector} select[name='address.state']`,\r\n\t\t\tstateInputTextSelector: `${formSelector} input[name='address.state']`\r\n\t\t};\r\n\t\tthis.initialize(smartyStreetsOptions);\r\n\t},\r\n\r\n\tclearVerification: function(instanceName) {\r\n\t\tif (!instanceName) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnResolvedDeferred(LoggerInstance, \"An 'instanceName' must be provided.\");\r\n\t\t}\r\n\r\n\t\tif (window.smartyStreetsInstances && window.smartyStreetsInstances[instanceName] && (typeof window.smartyStreetsInstances[instanceName].clearVerification === \"function\")) {\r\n\t\t\treturn window.smartyStreetsInstances[instanceName].clearVerification();\r\n\t\t}\r\n\r\n\t\t// This could occur if SmartyStreets was not initialized because an ApiKey was not present\r\n\t\treturn ApiHelper.logDebugAndReturnResolvedDeferred(LoggerInstance, `A SmartyStreets instance with the instanceName '${instanceName}' does not exist.`);\r\n\t},\r\n\r\n\tverifyAddress: function (instanceName) {\r\n\t\tif (!instanceName) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnResolvedDeferred(LoggerInstance, \"An 'instanceName' must be provided.\");\r\n\t\t}\r\n\r\n\t\tif (window.smartyStreetsInstances && window.smartyStreetsInstances[instanceName] && (typeof window.smartyStreetsInstances[instanceName].verifyAddress === \"function\")) {\r\n\t\t\treturn window.smartyStreetsInstances[instanceName].verifyAddress();\r\n\t\t}\r\n\r\n\t\t// This could occur if SmartyStreets was not initialized because an ApiKey was not present\r\n\t\treturn ApiHelper.logDebugAndReturnResolvedDeferred(LoggerInstance, `A SmartyStreets instance with the instanceName '${instanceName}' does not exist.`);\r\n\t}\r\n};\r\n\r\nmodule.exports = SmartyStreets;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SmartyStreetsAutocomplete\");\r\n\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\n\r\nvar SmartyStreetsApi = require(\"../api/SmartyStreetsApi\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar smartyAutocompleteSelector = \".smarty-autocomplete\";\r\nvar smartySuggestionWrapperSelector = \".smarty-suggestions\";\r\nvar smartySuggestionSelector = \".smarty-suggestion\";\r\nvar activeSelector = \".active\";\r\nvar smartyActiveSuggestionSelector = `${smartySuggestionSelector}${activeSelector}`;\r\n\r\nvar activeClass = \"active\";\r\n\r\nvar cityAttribute = \"data-city\";\r\nvar entriesAttribute = \"data-entries\";\r\nvar secondaryAttribute = \"data-secondary\";\r\nvar stateAttribute = \"data-state\";\r\nvar streetAttribute = \"data-street\";\r\nvar postalCodeAttribute = \"data-postalcode\";\r\n\r\nvar SmartyStreetsAutocomplete = class {\r\n\tconstructor(options) {\r\n\t\tif (!options || !options.addressFormSelector || !options.stateInputSelectSelector || !options.cityInputSelector || !options.address1InputSelector) {\r\n\t\t\tLoggerInstance.error(\"Initialize: options not correct.\", options);\r\n\t\t}\r\n\r\n\t\tif (!$(options.addressFormSelector).length) {\r\n\t\t\t//The addressForm did not exist, do short-circuit\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.addressVerifiedAttribute = Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED;\r\n\r\n\t\tthis.addressFormSelector = options.addressFormSelector;\r\n\t\tthis.address1InputSelector = options.address1InputSelector;\r\n\t\tthis.cityInputSelector = options.cityInputSelector;\r\n\t\tthis.countryInputSelector = options.countryInputSelector;\r\n\t\tthis.postalCodeInputSelector = options.postalCodeInputSelector;\r\n\t\tthis.stateInputSelectSelector = options.stateInputSelectSelector;\r\n\r\n\t\tthis.autocompleteHtml = options.autocompleteHtml;\r\n\r\n\t\t$(options.addressFormSelector).attr(\"autocomplete\", \"off\");\r\n\t\tvar $address1Input = $(this.address1InputSelector);\r\n\t\t$address1Input.attr(\"autocomplete\", \"off\");\r\n\r\n\t\t$address1Input.off(\"keydown.smartyStreetsAutocomplete\");\r\n\t\t$address1Input.on(\"keydown.smartyStreetsAutocomplete\", (event) => {\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\tcase Constants.KEYS.ARROW_DOWN:\r\n\t\t\t\t\tthis.downArrowPressed(event);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Constants.KEYS.ARROW_UP:\r\n\t\t\t\t\tthis.upArrowPressed(event);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Constants.KEYS.ENTER:\r\n\t\t\t\t\tthis.enterKeyPressedOrMouseClicked(event);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\t\tthis.removeAutocomplete();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t\t$address1Input.off(\"keyup.smartyStreetsAutocomplete\");\r\n\t\t$address1Input.on(\"keyup.smartyStreetsAutocomplete\", () => {\r\n\t\t\tthis.addressChanged({ manual: true });\r\n\t\t});\r\n\r\n\t\t$address1Input.off(\"blur.smartyStreetsAutocomplete\");\r\n\t\t$address1Input.on(\"blur.smartyStreetsAutocomplete\", () => {\r\n\t\t\tthis.removeAutocomplete();\r\n\t\t});\r\n\t}\r\n\r\n\tremoveAutocomplete() {\r\n\t\t$(smartyAutocompleteSelector).remove();\r\n\t}\r\n\r\n\taddressChanged(options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (!options.manual) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $addressLine1 = $(this.address1InputSelector);\r\n\t\tvar addressText = $addressLine1.val();\r\n\r\n\t\tvar country = this._getSelectedCountry();\r\n\r\n\t\tif ((addressText && addressText !== this.lastAddress || !!options.selected) && (!country || country === Constants.COUNTRIES.US || country === Constants.COUNTRIES.USA)) {\r\n\t\t\tLoggerInstance.debug(`Address Changed: ${addressText}`);\r\n\t\t\t//Aborting the previous call\r\n\t\t\tif (this.latestAutocompleteRequest && typeof this.latestAutocompleteRequest.abort === \"function\") {\r\n\t\t\t\tthis.latestAutocompleteRequest.abort();\r\n\t\t\t}\r\n\r\n\t\t\tvar selected = options.selected || \"\";\r\n\r\n\t\t\tthis.latestAutocompleteRequest = SmartyStreetsApi.autoCompleteAddress({ singleLineAddress: addressText, selected: selected }).done((data, textStatus, jqXHR) => {\r\n\t\t\t\tvar $suggestionHtml = $(this.autocompleteHtml);\r\n\r\n\t\t\t\tvar bold = \"<span class='matched'></span>\";\r\n\t\t\t\tvar addressSpan = \"<span></span>\";\r\n\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tif (data.suggestions && data.suggestions.length > 0) {\r\n\t\t\t\t\t\tvar firstSuggestion = true;\r\n\t\t\t\t\t\t$suggestionHtml.find('.smarty-no-suggestions').remove();\r\n\t\t\t\t\t\tdata.suggestions.forEach(suggestion => {\r\n\t\t\t\t\t\t\tif (!suggestion.street_line) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar $singleSuggestion;\r\n\t\t\t\t\t\t\tif (firstSuggestion) {\r\n\t\t\t\t\t\t\t\t$singleSuggestion = $suggestionHtml.find(\".smarty-suggestion\");\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$singleSuggestion = $suggestionHtml.find(\".smarty-suggestion\").first().clone();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar $addressSpanElement = $(addressSpan);\r\n\r\n\t\t\t\t\t\t\tvar secondaryText = suggestion.entries == 1 ? suggestion.secondary : '';\r\n\t\t\t\t\t\t\tvar multipleEntriesText = suggestion.entries > 1 ? `(${suggestion.entries} more entries)` : '';\r\n\t\t\t\t\t\t\tvar streetLineText = suggestion.street_line;\r\n\r\n\t\t\t\t\t\t\tif (addressText.indexOf(`${streetLineText} ${secondaryText}`) === 0) {\r\n\t\t\t\t\t\t\t\tstreetLineText = streetLineText + addressText.replace(streetLineText, \"\");\r\n\t\t\t\t\t\t\t\tsecondaryText = '';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar suggestionDisplayText = `${streetLineText} ${secondaryText} ${suggestion.city}, ${suggestion.state} ${multipleEntriesText}`;\r\n\r\n\t\t\t\t\t\t\tif (suggestionDisplayText.indexOf(addressText) === 0) {\r\n\t\t\t\t\t\t\t\tvar rest = suggestionDisplayText.replace(addressText, \"\");\r\n\r\n\t\t\t\t\t\t\t\tvar $boldElement = $(bold);\r\n\t\t\t\t\t\t\t\t$boldElement.text(addressText);\r\n\t\t\t\t\t\t\t\t$addressSpanElement.text(rest);\r\n\r\n\t\t\t\t\t\t\t\t$singleSuggestion.empty().append($boldElement).append($addressSpanElement);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$addressSpanElement.text(suggestionDisplayText);\r\n\t\t\t\t\t\t\t\t$singleSuggestion.empty().append($addressSpanElement);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$singleSuggestion\r\n\t\t\t\t\t\t\t\t.attr(cityAttribute, suggestion.city)\r\n\t\t\t\t\t\t\t\t.attr(entriesAttribute, suggestion.entries)\r\n\t\t\t\t\t\t\t\t.attr(secondaryAttribute, suggestion.secondary)\r\n\t\t\t\t\t\t\t\t.attr(stateAttribute, suggestion.state)\r\n\t\t\t\t\t\t\t\t.attr(streetAttribute, suggestion.street_line)\r\n\t\t\t\t\t\t\t\t.attr(postalCodeAttribute, suggestion.zipcode);\r\n\r\n\t\t\t\t\t\t\tif (firstSuggestion) {\r\n\t\t\t\t\t\t\t\tfirstSuggestion = false;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$suggestionHtml.find(\".smarty-suggestion\").last().after($singleSuggestion);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$suggestionHtml.find(\".smarty-suggestion\").remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Setting the correct width, based upon address 1 field\r\n\t\t\t\t$suggestionHtml.find(smartySuggestionWrapperSelector).css(\"maxWidth\", (Math.max($addressLine1.outerWidth(), 250)));\r\n\r\n\t\t\t\tif ($(smartyAutocompleteSelector).length) {\r\n\t\t\t\t\t$(smartyAutocompleteSelector).replaceWith($suggestionHtml);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\"body\").append($suggestionHtml);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._addEventListeners($(smartyAutocompleteSelector));\r\n\r\n\t\t\t\tvar position = $addressLine1.offset();\r\n\t\t\t\tvar topPixelText = (position.top + $addressLine1.outerHeight(false)) + \"px\";\r\n\r\n\t\t\t\t$(smartyAutocompleteSelector).css({\r\n\t\t\t\t\tleft: position.left + \"px\",\r\n\t\t\t\t\ttop: topPixelText,\r\n\t\t\t\t\tmaxHeight: topPixelText,\r\n\t\t\t\t\toverflow: \"hidden auto\"\r\n\t\t\t\t});\r\n\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\tif (textStatus !== \"abort\") {\r\n\t\t\t\t\tLoggerInstance.error(\"Auto-complete call failed: \", jqXHR, textStatus, errorThrown);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else if (!addressText) {\r\n\t\t\tthis.removeAutocomplete();\r\n\t\t}\r\n\r\n\t\tthis.lastAddress = addressText;\r\n\t}\r\n\r\n\t_addEventListeners($suggestionElement) {\r\n\t\tif (!$suggestionElement || !$suggestionElement.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$suggestionElement.find(smartySuggestionSelector).hover(function() {\r\n\t\t\t$(this).addClass(activeClass);\r\n\t\t}, function() {\r\n\t\t\t$(this).removeClass(activeClass);\r\n\t\t});\r\n\r\n\t\t$suggestionElement.mousedown((event) => {\r\n\t\t\tthis.enterKeyPressedOrMouseClicked(event);\r\n\t\t});\r\n\t}\r\n\r\n\t_getSelectedCountry() {\r\n\t\treturn $(this.countryInputSelector).val() || window.AccountStore.getDefaultCountry();\r\n\t}\r\n\r\n\tdownArrowPressed(event) {\r\n\t\tvar $autoComplete = $(smartyAutocompleteSelector);\r\n\t\tif ($autoComplete.length) {\r\n\t\t\tvar $activeElement = $autoComplete.find(smartyActiveSuggestionSelector);\r\n\t\t\tif ($activeElement.length) {\r\n\t\t\t\tvar $nextElement = $activeElement.next();\r\n\t\t\t\tif (!$nextElement.length) {\r\n\t\t\t\t\t$nextElement = $autoComplete.find(`${smartySuggestionSelector}`).first();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($nextElement.length) {\r\n\t\t\t\t\t$activeElement.removeClass(activeClass);\r\n\t\t\t\t\t$nextElement.addClass(activeClass);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$autoComplete.find(`${smartySuggestionSelector}`).first().addClass(activeClass);\r\n\t\t\t}\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\tenterKeyPressedOrMouseClicked(event) {\r\n\t\tvar $active = $(`${smartyAutocompleteSelector} ${smartyActiveSuggestionSelector}`);\r\n\t\tif (!$active.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!event || (event.type === \"mousedown\" && event.which !== 1) /*left click*/) {\r\n\t\t\t//We do not handle middle and right mouse click on autocomplete\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\r\n\t\tvar city = $active.attr(cityAttribute) || \"\";\r\n\t\tvar entries = $active.attr(entriesAttribute) || \"0\";\r\n\t\tvar secondary = $active.attr(secondaryAttribute) || \"\";\r\n\t\tvar state = $active.attr(stateAttribute) || \"\";\r\n\t\tvar street = $active.attr(streetAttribute) || \"\";\r\n\t\tvar zipcode = $active.attr(postalCodeAttribute) || \"\";\r\n\r\n\t\t// Setting address line 1\r\n\t\tvar $address1Input = $(this.address1InputSelector);\r\n\t\t$address1Input.val(`${street} ${secondary}`);\r\n\r\n\t\t// Setting the city\r\n\t\t$(this.cityInputSelector).val(city);\r\n\r\n\t\t//Setting the state react input value\r\n\t\tvar formId = AccountFormHelper.getParentFormId($(this.stateInputSelectSelector)[0]);\r\n\t\twindow.AccountActions.setSelectedState(formId, state);\r\n\r\n\t\t//Setting the zip code\r\n\t\t$(this.postalCodeInputSelector).val(zipcode);\r\n\r\n\t\t// If the active suggestion has multiple entries we need to re-call the autocomplete process\r\n\t\t// passing the properly formatted address parts to the 'selected' option.\r\n\t\tif (entries > 1) {\r\n\t\t\t// This exact string format is required for SmartyStreet to return the additional addresses for an address that has multiple secondary addresses.\r\n\t\t\tvar smartyStreetsFormattedSelectedText = `${street} ${secondary} (${entries}) ${city} ${state} ${zipcode}`;\r\n\r\n\t\t\tthis.latestAutocompleteRequest = null;\r\n\r\n\t\t\tthis.addressChanged({\r\n\t\t\t\tmanual: true,\r\n\t\t\t\tselected: smartyStreetsFormattedSelectedText\r\n\t\t\t})\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Add the verified address attribute if we've selected a smarty streets selected address\r\n\t\t$(this.addressFormSelector).attr(this.addressVerifiedAttribute, \"true\");\r\n\r\n\t\t$address1Input.trigger(\"change\"); //Triggering a change so that shipping and tax can recalculate if necessary\r\n\t\t$address1Input.blur();\r\n\t}\r\n\r\n\tupArrowPressed(event) {\r\n\t\tvar $autoComplete = $(smartyAutocompleteSelector);\r\n\t\tif ($autoComplete.length) {\r\n\t\t\tvar $activeElement = $autoComplete.find(smartyActiveSuggestionSelector);\r\n\t\t\tif ($activeElement.length) {\r\n\t\t\t\tvar $prevElement = $activeElement.prev();\r\n\t\t\t\tif (!$prevElement.length) {\r\n\t\t\t\t\tvar $prevElement = $autoComplete.find(`${smartySuggestionSelector}`).last();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($prevElement.length) {\r\n\t\t\t\t\t$activeElement.removeClass(activeClass);\r\n\t\t\t\t\t$prevElement.addClass(activeClass);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$autoComplete.find(`${smartySuggestionSelector}`).first().addClass(activeClass);\r\n\t\t\t}\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = SmartyStreetsAutocomplete;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SmartyStreetsVerify\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar smartyPopupSelector = \".smarty-popup\";\r\nvar smartyPopupTypedAddressSelector = \".smarty-popup-typed-address\";\r\nvar smartyGoBackSelector = \".smarty-abort\";\r\nvar smartyConstituentCertifiedSelector = \".smarty-choice-override\";\r\nvar smartySecondaryInputSelector = \".smarty-popup-secondary-number-input-box\";\r\nvar smartySecondarySubmitSelector = \".smarty-popup-secondary-number-form-submit-button\";\r\nvar smartyAmbiguousChoiceSelector = \".smarty-choice-list .smarty-choice\";\r\n\r\nvar smartyAmbiguousChoiceIndexAttribute = \"data-index\";\r\n\r\nvar SmartyStreetsVerify = class {\r\n\tconstructor(options) {\r\n\t\tif (!options || !options.addressFormSelector || !options.address1InputSelector || !options.cityInputSelector || !options.stateInputSelectSelector ||\r\n\t\t\t!options.stateInputTextSelector || !options.stateInputSharedSelector || !options.postalCodeInputSelector) {\r\n\t\t\tLoggerInstance.error(\"Initialize: options not correct.\", options);\r\n\t\t}\r\n\r\n\t\t//Short circuit if the address form did not exist or did not have the inputs necessary for verification.\r\n\t\tif (!$(options.addressFormSelector).length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.address1InputSelector = options.address1InputSelector;\r\n\t\tthis.address2InputSelector = options.address2InputSelector; //optional\r\n\t\tthis.address3InputSelector = options.address3InputSelector; //optional\r\n\t\tthis.address4InputSelector = options.address4InputSelector; //optional\r\n\t\tthis.cityInputSelector = options.cityInputSelector;\r\n\t\tthis.stateInputSelectSelector = options.stateInputSelectSelector;\r\n\t\tthis.stateInputTextSelector = options.stateInputTextSelector;\r\n\t\tthis.stateInputSharedSelector = options.stateInputSharedSelector;\r\n\t\tthis.postalCodeInputSelector = options.postalCodeInputSelector;\r\n\t\tthis.countryInputSelector = options.countryInputSelector; //optional\r\n\t\tthis.addressFormSelector = options.addressFormSelector;\r\n\t\tthis.addressVerifiedAttribute = Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED;\r\n\t\tthis.addressUserVerifiedAttribute = Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED;\r\n\t\tthis.addressVerificationErrorAttribute = Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR;\r\n\t\tthis.restrictedCountries = options.restrictedCountries;\r\n\r\n\t\tthis.missingSecondaryPopupHtml = options.missingSecondaryPopupHtml;\r\n\t\tthis.notEnoughInformationPopupHtml = options.notEnoughInformationPopupHtml;\r\n\t\tthis.unknownAddressPopupHtml = options.unknownAddressPopupHtml;\r\n\t\tthis.ambiguousAddressPopupHtml = options.ambiguousAddressPopupHtml;\r\n\r\n\t\tthis.addListener(this.address1InputSelector);\r\n\t\tthis.addListener(this.address2InputSelector);\r\n\t\tthis.addListener(this.address3InputSelector);\r\n\t\tthis.addListener(this.address4InputSelector);\r\n\t\tthis.addListener(this.cityInputSelector);\r\n\t\tthis.addListener(this.stateInputSharedSelector);\r\n\t\tthis.addListener(this.postalCodeInputSelector);\r\n\t\tthis.addListener(this.countryInputSelector);\r\n\r\n\t\tthis.initialized = true;\r\n\t}\r\n\r\n\t_isAddressFormVerifiable(options) {\r\n\t\tvar addressInputs = this._getAddressInputs(options);\r\n\r\n\t\tvar hasCountry = addressInputs.country.length || window.AccountStore.getDefaultCountry()\r\n\t\tvar hasStreet = addressInputs.address1.length;\r\n\t\tvar hasCity = addressInputs.city.length;\r\n\t\tvar hasPostalCode = addressInputs.postalCode.length;\r\n\t\tvar hasState = addressInputs.state.length;\r\n\r\n\t\treturn hasCountry && hasStreet && (hasPostalCode || (hasCity && hasState));\r\n\t}\r\n\r\n\t_getAddressInputs(options) {\r\n\t\toptions = options || this;\r\n\r\n\t\t// Only select :visible elements because there may be duplicate fields in individual/organization account type regions\r\n\t\treturn {\r\n\t\t\taddress1: $(options.address1InputSelector).filter(\":visible\"),\r\n\t\t\taddress2: $(options.address2InputSelector).filter(\":visible\"),\r\n\t\t\taddress3: $(options.address3InputSelector).filter(\":visible\"),\r\n\t\t\taddress4: $(options.address4InputSelector).filter(\":visible\"),\r\n\t\t\tcity: $(options.cityInputSelector).filter(\":visible\"),\r\n\t\t\tpostalCode: $(options.postalCodeInputSelector).filter(\":visible\"),\r\n\t\t\tstate: $(options.stateInputSelectSelector).filter(\":visible\") || $(options.stateInputTextSelector).filter(\":visible\"),\r\n\t\t\tcountry: $(options.countryInputSelector)\r\n\t\t};\r\n\t}\r\n\r\n\taddListener(selector) {\r\n\t\tif (selector) {\r\n\t\t\t$(selector).off(\"keyup.smartyStreetsVerify\");\r\n\t\t\t$(selector).on(\"keyup.smartyStreetsVerify\", (event) => {\r\n\t\t\t\tif (event && event.which === Constants.KEYS.TAB) {\r\n\t\t\t\t\t// we don't want to consider tabbing through the form a \"value changed\" event.\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis._anyAddressDataChanged();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tisAddressVerified() {\r\n\t\treturn this.initialized && ($(this.addressFormSelector).attr(this.addressVerifiedAttribute) === \"true\" || $(this.addressFormSelector).attr(this.addressUserVerifiedAttribute) === \"true\");\r\n\t}\r\n\r\n\tclearVerification() {\r\n\t\tthis._setAddressUnverified();\r\n\t}\r\n\r\n\tverifyAddress(secondaryInformation, deferred) {\r\n\t\tif (!this.initialized || !this._isAddressFormVerifiable()) {\r\n\t\t\tdeferred = deferred || new $.Deferred();\r\n\t\t\tdeferred.resolve();\r\n\t\t\t//If we are not initialized, we will not verify the address, but it is not an error\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tif (this.isAddressVerified()) {\r\n\t\t\treturn ApiHelper.logDebugAndReturnResolvedDeferred(LoggerInstance, \"Address already verified\", deferred);\r\n\t\t}\r\n\r\n\t\t// If no address data is provided by the user, and none of the address inputs are required, do not attempt verification\r\n\t\tif (this._isAddressEmptyAndVoluntary()) {\r\n\t\t\tdeferred = deferred || new $.Deferred();\r\n\t\t\tdeferred.resolve();\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tif (!this._isEnoughInformation()) {\r\n\t\t\tdeferred = deferred || new $.Deferred();\r\n\t\t\tthis._showNotEnoughInformationMessage(deferred);\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tvar country = this._getSelectedCountry();\r\n\t\tif (!this.restrictedCountries.some(restrictedCountry => restrictedCountry === country)) {\r\n\t\t\treturn this._verifyAddress(secondaryInformation, deferred);\r\n\t\t}\r\n\r\n\t\t//This will resolve, we can continue with the submitting process\r\n\t\treturn ApiHelper.logDebugAndReturnResolvedDeferred(LoggerInstance, `Addresses from ${country} (a restricted country) will not call SmartyStreets`, deferred);\r\n\t}\r\n\r\n\t_setAddressVerificationErrored(errorMessage) {\r\n\t\t$(this.addressFormSelector).attr(this.addressVerificationErrorAttribute, errorMessage || \"true\");\r\n\t}\r\n\r\n\t_setAddressVerified() {\r\n\t\t$(this.addressFormSelector).attr(this.addressVerifiedAttribute, \"true\");\r\n\t}\r\n\r\n\t_setAddressUnverified() {\r\n\t\t$(this.addressFormSelector).removeAttr(this.addressVerifiedAttribute).removeAttr(this.addressUserVerifiedAttribute).removeAttr(this.addressVerificationErrorAttribute);\r\n\t}\r\n\r\n\t_anyAddressDataChanged() {\r\n\t\tthis._setAddressUnverified();\r\n\t\t//Even if we are verifying, we need to verify again because the address data has changed.\r\n\t\tthis.verifying = false;\r\n\t}\r\n\r\n\t_setAddressValueIfChanged($element, newValue) {\r\n\t\tif ($element.length && $element.val() !== newValue) {\r\n\t\t\t$element.val(newValue).change();\r\n\t\t}\r\n\t}\r\n\r\n\t_getCurrentAddressData() {\r\n\t\tvar addressInputs = this._getAddressInputs();\r\n\r\n\t\tvar country = this._getSelectedCountry();\r\n\t\tvar street = addressInputs.address1.val();\r\n\t\tvar street2 = addressInputs.address2.val();\r\n\t\tvar street3 = addressInputs.address3.val();\r\n\t\tvar street4 = addressInputs.address4.val();\r\n\t\tvar city = addressInputs.city.val();\r\n\t\tvar zipcode = addressInputs.postalCode.val();\r\n\t\tvar state = addressInputs.state.val();\r\n\r\n\t\tvar addressInformation = {\r\n\t\t\tcity,\r\n\t\t\tcountry,\r\n\t\t\tstate,\r\n\t\t\tstreet,\r\n\t\t\tstreet2,\r\n\t\t\tstreet3,\r\n\t\t\tstreet4,\r\n\t\t\tzipcode\r\n\t\t};\r\n\t\tthis._deleteFalsyValues(addressInformation);\r\n\r\n\t\treturn addressInformation;\r\n\t}\r\n\r\n\t_currentAddressToString(options) {\r\n\t\toptions = options || {};\r\n\t\tvar address = this._getCurrentAddressData();\r\n\r\n\t\tvar addressString = \"\";\r\n\t\taddressString = this._appendToString(addressString, address.street);\r\n\t\taddressString = this._appendToString(addressString, address.street2, \", \");\r\n\t\taddressString = this._appendToString(addressString, address.street3, \", \");\r\n\t\taddressString = this._appendToString(addressString, address.street4, \", \");\r\n\r\n\t\tvar cityStateString = \"\";\r\n\t\tcityStateString = this._appendToString(cityStateString, address.city, \", \");\r\n\r\n\t\tif (!options.shouldRemoveState) {\r\n\t\t\tcityStateString = this._appendToString(cityStateString, $(`${this.stateInputSelectSelector} option[value='${address.state}'], ${this.stateInputTextSelector}`).filter(\":visible\").text() || address.state, \", \");\r\n\t\t}\r\n\t\tif (!options.shouldRemovePostalCode) {\r\n\t\t\tcityStateString = this._appendToString(cityStateString, address.zipcode, (address.state && !options.shouldRemoveState ? \" \" : \", \"));\r\n\t\t}\r\n\r\n\t\tcityStateString = this._appendToString(cityStateString, $(`${this.countryInputSelector} option[value='${address.country}']`).filter(\":visible\").text() || address.country, \", \");\r\n\r\n\t\treturn this._appendToString(addressString, cityStateString, \"<br>\");\r\n\t}\r\n\r\n\t_appendToString(currentString, newValue, delimiter) {\r\n\t\tdelimiter = delimiter || \" \";\r\n\r\n\t\tif (newValue) {\r\n\t\t\tif (currentString) {\r\n\t\t\t\tcurrentString += delimiter;\r\n\t\t\t}\r\n\t\t\tcurrentString += newValue;\r\n\t\t}\r\n\t\treturn currentString;\r\n\t}\r\n\r\n\t_getSelectedCountry() {\r\n\t\treturn $(this.countryInputSelector).filter(\":visible\").val() || window.AccountStore.getDefaultCountry();\r\n\t}\r\n\r\n\t_verifyAddress(secondaryInformation, deferred) {\r\n\t\t//We need to create our own deferred because the SmartyStreets might have a successful response, but we may need to reject if a popup needs to appear\r\n\t\tdeferred = deferred || new $.Deferred();\r\n\r\n\t\tif (this.verifying) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"Verify Address: We are already verifying an address.\", deferred);\r\n\t\t}\r\n\r\n\t\tvar addressInformation = this._getCurrentAddressData();\r\n\t\tif (secondaryInformation && secondaryInformation.length) {\r\n\t\t\taddressInformation.secondaryNumber = secondaryInformation;\r\n\t\t}\r\n\r\n\t\tthis.verifying = true;\r\n\r\n\t\tAccountApi.standardizeAddress(addressInformation).done((response) => {\r\n\t\t\t//Having the this.verifying = false in a \".always()\" was causing a problem.\r\n\t\t\tthis.verifying = false;\r\n\t\t\tthis._verifyAddressSuccess(response, deferred, addressInformation);\r\n\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\tthis.verifying = false;\r\n\t\t\tthis._handleStandardizationError(deferred, jqXHR, errorThrown);\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t}\r\n\r\n\t_handleStandardizationError(deferred, jqXHR, errorThrown) {\r\n\t\tthis._setAddressVerificationErrored(`${jqXHR.status}: ${errorThrown}`);\r\n\t\tdeferred.resolve();\r\n\t}\r\n\r\n\t_verifyAddressSuccess(response, deferred, addressInformation) {\r\n\t\tvar currentAddressInformation = this._getCurrentAddressData();\r\n\r\n\t\tif (addressInformation.street !== currentAddressInformation.street || addressInformation.street2 !== currentAddressInformation.street2 ||\r\n\t\t\taddressInformation.city !== currentAddressInformation.city || addressInformation.zipcode !== currentAddressInformation.zipcode ||\r\n\t\t\taddressInformation.state !== currentAddressInformation.state || addressInformation.country !== currentAddressInformation.country) {\r\n\t\t\tLoggerInstance.debug(\"The address has changed so we will not change any data or mark the address as verified.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this._isMissingSecondaryResponse(response)) {\r\n\t\t\t//Missing Secondary Information\r\n\t\t\tthis._showMissingSecondaryInformation(response, deferred);\r\n\t\t} else if (this._isInvalidResponse(response)) {\r\n\t\t\t//Invalid\r\n\t\t\tthis._showUnknownAddress(response, deferred);\r\n\t\t} else if (this._isAmbiguousResponse(response)) {\r\n\t\t\t//Ambiguous\r\n\t\t\tthis._showAmbiguousAddress(response, deferred);\r\n\t\t} else if (this._isSkippedStandardizationResponse(response)) {\r\n\t\t\t//Skipped\r\n\t\t\tLoggerInstance.debug(`The country for the address (${addressInformation.country}) is not configured to attempt standardization.`);\r\n\t\t\tdeferred.resolve();\r\n\t\t} else if (this._isValid(response)) {\r\n\t\t\t//Verified\r\n\t\t\tvar matchInfo = response.candidates[0];\r\n\r\n\t\t\tthis._setAddressFields(matchInfo);\r\n\t\t\tthis._setAddressVerified();\r\n\t\t\tdeferred.resolve();\r\n\t\t} else {\r\n\t\t\tdeferred.reject(\"Unknown Error\");\r\n\t\t}\r\n\t}\r\n\r\n\t_deleteFalsyValues(obj) {\r\n\t\t//Delete values that are not set\r\n\t\tObject.keys(obj).forEach(key => {\r\n\t\t\tif (!obj[key]) {\r\n\t\t\t\tdelete obj[key];\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_isAddressEmptyAndVoluntary() {\r\n\t\tvar addressInputs = this._getAddressInputs();\r\n\t\tvar isAddressEmptyAndVoluntary = true;\r\n\r\n\t\tObject.keys(addressInputs).forEach((key) => {\r\n\t\t\tvar $input = addressInputs[key];\r\n\r\n\t\t\tif ($input.val() || $input.prop(\"required\")) {\r\n\t\t\t\tisAddressEmptyAndVoluntary = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn isAddressEmptyAndVoluntary;\r\n\t}\r\n\r\n\t_isEnoughInformation() {\r\n\t\tvar address = this._getCurrentAddressData();\r\n\r\n\t\treturn address.country && address.street && (address.zipcode || (address.city && address.state));\r\n\t}\r\n\r\n\t_isAmbiguousResponse(addressResponse) {\r\n\t\treturn addressResponse && (\r\n\t\t\t(addressResponse.candidates && addressResponse.candidates.length > 1 ) || addressResponse.shouldPromptUserConfirmation\r\n\t\t);\r\n\t}\r\n\r\n\t_isInvalidResponse(addressResponse) {\r\n\t\treturn (!addressResponse || !addressResponse.candidates || addressResponse.candidates.length === 0 ||\r\n\t\t\t(addressResponse.candidates.length === 1 && !addressResponse.isSuccessful));\r\n\t}\r\n\r\n\t_isMissingSecondaryResponse(addressResponse) {\r\n\t\treturn addressResponse && addressResponse.isMissingSecondaryNumber;\r\n\t}\r\n\r\n\t_isSkippedStandardizationResponse(addressResponse) {\r\n\t\treturn addressResponse &&\r\n\t\t\taddressResponse.isSuccessful &&\r\n\t\t\taddressResponse.candidates &&\r\n\t\t\taddressResponse.candidates.length === 1 &&\r\n\t\t\t!addressResponse.candidates[0].validatedDate;\r\n\t}\r\n\r\n\t_isValid(addressResponse) {\r\n\t\treturn addressResponse &&\r\n\t\t\taddressResponse.isSuccessful &&\r\n\t\t\taddressResponse.candidates &&\r\n\t\t\taddressResponse.candidates.length === 1 &&\r\n\t\t\taddressResponse.candidates[0].validatedDate !== null;\r\n\t}\r\n\r\n\t_setAddressFields(addressResponse) {\r\n\t\tif (!addressResponse) {\r\n\t\t\tLoggerInstance.error(\"Could not set fields since addressResponse is falsy.\", addressResponse);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar dataChanged = false;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.line1, this.address1InputSelector) || dataChanged;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.line2, this.address2InputSelector) || dataChanged;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.line3, this.address3InputSelector) || dataChanged;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.line4, this.address4InputSelector) || dataChanged;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.city, this.cityInputSelector) || dataChanged;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.state, this.stateInputSharedSelector) || dataChanged;\r\n\t\tdataChanged = this._setSingleAddressField(addressResponse.postalCode, this.postalCodeInputSelector) || dataChanged;\r\n\r\n\t\t//Triggering a change so that shipping and tax can recalculate if necessary, both tax and shipping listen to postalCode\r\n\t\tif (dataChanged) {\r\n\t\t\t$(this.postalCodeInputSelector).trigger(\"change\");\r\n\t\t}\r\n\t}\r\n\r\n\t_setSingleAddressField(value, selector) {\r\n\t\tvar valueChanged = false;\r\n\t\tvar $selectedElement = $(selector).filter(\":visible\");\r\n\r\n\t\tif ($selectedElement.length) {\r\n\t\t\tif ($selectedElement.val() !== value) {\r\n\t\t\t\tvalueChanged = true;\r\n\t\t\t}\r\n\t\t\t//Change is not called here because we are doing this from validation, not a manual user change\r\n\t\t\t$selectedElement.val(value);\r\n\t\t}\r\n\r\n\t\treturn valueChanged;\r\n\t}\r\n\r\n\t_getValueFromSmartyStreetAddressComponents(addressComponents, fields, delimiter) {\r\n\t\tvar value = \"\";\r\n\t\tif (!Array.isArray(fields)) {\r\n\t\t\tvalue = addressComponents[fields];\r\n\t\t} else {\r\n\t\t\tvalue = this._setSingleAddressDataFromFieldArray(addressComponents, fields, delimiter);\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t_setSingleAddressDataFromFieldArray(addressComponents, fields, delimiter) {\r\n\t\tvar value = \"\";\r\n\t\tdelimiter = delimiter || \" \";\r\n\t\tfields.forEach(field => {\r\n\t\t\tvar singleValue = addressComponents[field];\r\n\t\t\tif (!singleValue) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (value !== \"\") {\r\n\t\t\t\tvalue += delimiter;\r\n\t\t\t}\r\n\t\t\tvalue += singleValue;\r\n\t\t});\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\t_formatResponseAddress(addressResponse) {\r\n\t\tif (!addressResponse) {\r\n\t\t\tLoggerInstance.error(\"Cannot format address since addressResponse is falsy.\", addressResponse);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar addressString = \"\";\r\n\t\taddressString = this._appendToString(addressString, addressResponse.line1, \", \");\r\n\t\taddressString = this._appendToString(addressString, addressResponse.line2, \", \");\r\n\t\taddressString = this._appendToString(addressString, addressResponse.line3, \", \");\r\n\t\taddressString = this._appendToString(addressString, addressResponse.line4, \", \");\r\n\t\taddressString = this._appendToString(addressString, addressResponse.city, \"<br>\");\r\n\t\taddressString = this._appendToString(addressString, addressResponse.state, \", \");\r\n\t\taddressString = this._appendToString(addressString, addressResponse.postalCode, (addressResponse.state ? \" \" : \", \"));\r\n\r\n\t\treturn addressString;\r\n\t}\r\n\r\n\t_setAddressInElement($element, address) {\r\n\t\taddress = address || \"\";\r\n\t\tvar addressArray = address.split(\"<br>\");\r\n\r\n\t\tif (addressArray.length == 1 && !addressArray[0]) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$element.empty();\r\n\t\tvar first = true;\r\n\t\taddressArray.forEach(addressPiece => {\r\n\t\t\tif (first) {\r\n\t\t\t\tfirst = false;\r\n\t\t\t} else {\r\n\t\t\t\t$element.append(\"<br>\");\r\n\t\t\t}\r\n\t\t\t$element.append(document.createTextNode(addressPiece));\r\n\t\t});\r\n\t}\r\n\r\n\t_showAmbiguousAddress(response, deferred) {\r\n\t\tif (!response || !response.candidates) {\r\n\t\t\tLoggerInstance.error(\"Trying to Show Ambiguous Address Popup, but there are no addresses.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $ambiguousHtml = $(this.ambiguousAddressPopupHtml);\r\n\r\n\t\tvar first = true;\r\n\t\tvar $smartyChoice = $ambiguousHtml.find(\".smarty-choice\");\r\n\t\t//Adding the data for each good address, so the constituent can pick one\r\n\t\tfor (var index = 0; index < response.candidates.length; index++) {\r\n\t\t\tvar address = response.candidates[index];\r\n\t\t\tvar $currentChoice;\r\n\r\n\t\t\tif (first) {\r\n\t\t\t\t$currentChoice = $smartyChoice;\r\n\t\t\t\tfirst = false;\r\n\t\t\t} else {\r\n\t\t\t\t$currentChoice = $smartyChoice.clone();\r\n\t\t\t\t$smartyChoice.after($currentChoice);\r\n\t\t\t}\r\n\t\t\tthis._setAddressInElement($currentChoice.attr(smartyAmbiguousChoiceIndexAttribute, index), this._formatResponseAddress(address));\r\n\t\t}\r\n\r\n\t\tvar isUsOrCanada = this.isCountryInUsOrCanada(this._getSelectedCountry());\r\n\r\n\t\t//Set currentAddress\r\n\t\tthis._setAddressInElement(\r\n\t\t\t$ambiguousHtml.find(smartyPopupTypedAddressSelector),\r\n\t\t\tthis._currentAddressToString({\r\n\t\t\t\tshouldRemoveState: response.shouldRemoveState && !isUsOrCanada,\r\n\t\t\t\tshouldRemovePostalCode: response.shouldRemovePostalCode && !isUsOrCanada\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\t//Adding click event for when picking a good address\r\n\t\tthis._showAndAddClickEvents($ambiguousHtml, deferred, response.shouldRemoveState, response.shouldRemovePostalCode, $popup => {\r\n\t\t\t$popup.find(smartyAmbiguousChoiceSelector).click({ addresses: response, deferred, self: this }, function (event) {\r\n\t\t\t\tif (!event || !event.data || !event.data.self || !event.data.addresses) {\r\n\t\t\t\t\tApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"Parameters not passed correctly to Ambiguous Choice Popup.\", deferred);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar self = event.data.self;\r\n\t\t\t\tvar candidates = event.data.addresses.candidates;\r\n\r\n\t\t\t\tvar index = $(this).attr(smartyAmbiguousChoiceIndexAttribute);\r\n\t\t\t\tvar matchInfo = candidates[index];\r\n\r\n\t\t\t\tself._setAddressFields(matchInfo);\r\n\t\t\t\tself._setAddressVerified();\r\n\r\n\t\t\t\tself._removePopup($popup);\r\n\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t_showUnknownAddress(response, deferred) {\r\n\t\tthis._showInvalidAddress(this.unknownAddressPopupHtml, deferred, response);\r\n\t}\r\n\r\n\t_showNotEnoughInformationMessage(deferred) {\r\n\t\tthis._showInvalidAddress(this.notEnoughInformationPopupHtml, deferred);\r\n\t}\r\n\r\n\t_showInvalidAddress(html, deferred, response) {\r\n\t\tvar $unknownAddressHtmlElement = $(html);\r\n\t\tvar isUsOrCanada = this.isCountryInUsOrCanada(this._getSelectedCountry());\r\n\t\tif (response) {\r\n\t\t\tvar {shouldRemoveState, shouldRemovePostalCode} = response;\r\n\t\t}\r\n\r\n\t\tthis._setAddressInElement(\r\n\t\t\t$unknownAddressHtmlElement.find(smartyPopupTypedAddressSelector),\r\n\t\t\tthis._currentAddressToString({\r\n\t\t\t\tshouldRemoveState: shouldRemoveState && !isUsOrCanada,\r\n\t\t\t\tshouldRemovePostalCode: shouldRemovePostalCode && !isUsOrCanada\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tthis._showAndAddClickEvents($unknownAddressHtmlElement, deferred, shouldRemoveState, shouldRemovePostalCode);\r\n\t}\r\n\r\n\t_showMissingSecondaryInformation(response, deferred) {\r\n\t\tif (!response || !response.candidates || response.candidates.length <= 0) {\r\n\t\t\tLoggerInstance.error(\"Trying to Show Missing Secondary Information Popup, but there is no address returned from the validation.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $missingSecondaryHtmlElement = $(this.missingSecondaryPopupHtml);\r\n\t\tthis._setAddressInElement($missingSecondaryHtmlElement.find(smartyPopupTypedAddressSelector), this._formatResponseAddress(response.candidates[0]));\r\n\r\n\t\t//Adding click event for when picking a good address\r\n\t\tthis._showAndAddClickEvents($missingSecondaryHtmlElement, deferred, response.shouldRemoveState, response.shouldRemovePostalCode, $popup => {\r\n\t\t\tfunction processSecondarySubmit(verifyInstance) {\r\n\t\t\t\tvar secondaryInformation = $(smartySecondaryInputSelector).val();\r\n\t\t\t\tif (!secondaryInformation) {\r\n\t\t\t\t\tApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"Secondary Input Box is blank.\", deferred);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!verifyInstance || !verifyInstance.self) {\r\n\t\t\t\t\tApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"Parameters not passed correctly to Secondary Information Popup Submit.\", deferred);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (secondaryInformation) {\r\n\t\t\t\t\tverifyInstance.self.verifyAddress(secondaryInformation, deferred);\r\n\t\t\t\t}\r\n\t\t\t\tverifyInstance.self._removePopup($popup);\r\n\t\t\t};\r\n\r\n\t\t\t//Submit button clicked\r\n\t\t\t$popup.find(smartySecondarySubmitSelector).click({ deferred, self: this }, function (event) {\r\n\t\t\t\tif (!event) {\r\n\t\t\t\t\tApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"Parameters not passed correctly to Secondary Information Popup Click Event.\", deferred);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tprocessSecondarySubmit(event.data);\r\n\t\t\t});\r\n\r\n\t\t\t//Enter being pressed in Input\r\n\t\t\t$popup.find(smartySecondaryInputSelector).keydown({ deferred, self: this }, (event) => {\r\n\t\t\t\tif (!event) {\r\n\t\t\t\t\tApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"Parameters not passed correctly to Secondary Information Popup KeyDown Event.\", deferred);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswitch (event.which) {\r\n\t\t\t\t\tcase Constants.KEYS.ENTER:\r\n\t\t\t\t\t\tprocessSecondarySubmit(event.data);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t$(smartySecondaryInputSelector).focus();\r\n\t}\r\n\r\n\t_showAndAddClickEvents(html, deferred, shouldRemoveState, shouldRemovePostalCode, additionalEventInitializer) {\r\n\t\tvar $popup = $(html).hide().appendTo(\"body\");\r\n\t\tvar isUsOrCanada = this.isCountryInUsOrCanada(this._getSelectedCountry());\r\n\t\tvar shouldHideUseAsIsButton = isUsOrCanada && (shouldRemoveState || shouldRemovePostalCode);\r\n\r\n\t\t$popup.find(smartyPopupSelector).addBack(smartyPopupSelector).css({\r\n\t\t\tleft: `calc(50% - ${($popup.width() / 2)}px)`,\r\n\t\t\ttop: \"25%\",\r\n\t\t\tposition: \"fixed\"\r\n\t\t});\r\n\r\n\t\tif (shouldHideUseAsIsButton) {\r\n\t\t\t$popup.find(smartyConstituentCertifiedSelector).parent().remove();\r\n\t\t}\r\n\r\n\t\t$popup.show();\r\n\r\n\t\t//Adding Click Events\r\n\t\t$popup.find(smartyGoBackSelector).click(() => {\r\n\t\t\t//Constituent wants to go back and correct or ignore.\r\n\t\t\tthis._removePopup($popup);\r\n\t\t\tdeferred.reject(\"Constituent will correct address\");\r\n\t\t});\r\n\r\n\t\tif (!shouldHideUseAsIsButton){\r\n\t\t\t$popup.find(smartyConstituentCertifiedSelector).click(() => {\r\n\t\t\t\t//Constituent certifies the address is correct.\r\n\t\t\t\t$(this.addressFormSelector).attr(this.addressUserVerifiedAttribute, \"true\");\r\n\r\n\t\t\t\t//We don't accept States if the address is User Certified, we are Auto-Adding State Codes, and the provided state was not discovered.\r\n\t\t\t\tvar userEnteredState = $(this.stateInputTextSelector).filter(\":visible\").val();\r\n\t\t\t\tif (userEnteredState && shouldRemoveState) {\r\n\t\t\t\t\tthis._setSingleAddressField(null, this.stateInputSharedSelector);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//We don't accept Postal Codes if the address is User Certified, we are Auto-Adding Postal Codes, and the provided postal code was not discovered.\r\n\t\t\t\tvar userEnteredPostalCode = $(this.postalCodeInputSelector).filter(\":visible\").val();\r\n\t\t\t\tif (userEnteredPostalCode && shouldRemovePostalCode) {\r\n\t\t\t\t\tthis._setSingleAddressField(null, this.postalCodeInputSelector).filter(\":visible\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._removePopup($popup);\r\n\r\n\t\t\t\tdeferred.resolve(\"Constituent certified address\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Escape linked to go back and correct or ignore.\r\n\t\t$(document).on(\"keydown\", { $popup }, this._popupEscapeHandler);\r\n\r\n\t\t//Adding additional click events\r\n\t\tif (typeof additionalEventInitializer === \"function\") {\r\n\t\t\tadditionalEventInitializer($popup);\r\n\t\t}\r\n\t}\r\n\r\n\t_popupEscapeHandler(event) {\r\n\t\tif (!event || !event.data) {\r\n\t\t\tLoggerInstance.error(\"Event or Event Data not present in Popup Escape Handler\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tswitch (event.which) {\r\n\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\t$(event.data.$popup).find(smartyGoBackSelector).click();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t_removePopup($popup) {\r\n\t\t$(document).off(\"keydown\", this._popupEscapeHandler);\r\n\t\t$popup.remove();\r\n\t}\r\n\r\n\tisCountryInUsOrCanada(country) {\r\n\t\tcountry = (country || \"\").toUpperCase();\r\n\t\tif (country === \"US\" || country === \"USA\" || country === \"CA\" || country === \"CAN\") {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n};\r\n\r\nmodule.exports = SmartyStreetsVerify;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"StateSelector\");\r\n\r\nvar AccountActions = require(\"./AccountActions\");\r\nvar AccountConstants = require(\"./AccountConstants\");\r\nvar AccountFormHelper = require(\"./AccountFormHelper\");\r\nvar AccountStore = require(\"./AccountStore\");\r\n\r\nclass StateSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar stateConfig = props.stateConfig || {};\r\n\r\n\t\tvar wizardCountryStateList;\r\n\t\tvar isAddressVerificationEnabled;\r\n\t\tvar restrictedCountries;\r\n\t\tvar alreadyDefaultedStatesFromWizard = false;\r\n\r\n\t\t// If we are on the client side\r\n\t\tif (typeof (window) !== \"undefined\") {\r\n\t\t\twizardCountryStateList = AccountStore.get(\"wizardCountryStateList\");\r\n\t\t\tvar addressStandardizationWizard = AccountStore.get(\"wizardAddressStandardization\");\r\n\t\t\tisAddressVerificationEnabled = addressStandardizationWizard && addressStandardizationWizard.isEnabled === \"true\";\r\n\t\t\trestrictedCountries = addressStandardizationWizard && addressStandardizationWizard.restrictedCountries;\r\n\r\n\t\t\tif (!Object.keys(stateConfig).length) {\r\n\t\t\t\t//This means we do not have the config set up yet.\r\n\t\t\t\tObject.keys(wizardCountryStateList).forEach(key => {\r\n\t\t\t\t\tif (key && key.indexOf(\"_Description\") === -1) {\r\n\t\t\t\t\t\tkey = key.toUpperCase();\r\n\t\t\t\t\t\tstateConfig[key] = Array.isArray(wizardCountryStateList[key]) ? wizardCountryStateList[key].map(availableState => {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tvalue: availableState,\r\n\t\t\t\t\t\t\t\tdescription: wizardCountryStateList[`${key}_${availableState}_Description`],\r\n\t\t\t\t\t\t\t\tuseDefaultDescription: true\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}) : undefined\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\talreadyDefaultedStatesFromWizard = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Making sure the Country Value Properties are uppercase\r\n\t\tObject.keys(stateConfig).forEach((key) => {\r\n\t\t\tif (key && key.indexOf(\"_Description\") === -1) {\r\n\t\t\t\tvar upperCaseKey = key.toUpperCase();\r\n\r\n\t\t\t\tif (upperCaseKey !== key) {\r\n\t\t\t\t\tstateConfig[upperCaseKey] = stateConfig[key];\r\n\t\t\t\t\tdelete stateConfig[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (wizardCountryStateList && !alreadyDefaultedStatesFromWizard) {\r\n\t\t\tObject.keys(wizardCountryStateList).forEach(key => {\r\n\t\t\t\tif (key && key.indexOf(\"_Description\") === -1) {\r\n\t\t\t\t\tkey = key.toUpperCase();\r\n\t\t\t\t\tvar allowedStates = wizardCountryStateList[key];\r\n\t\t\t\t\tvar availableStates = stateConfig[key];\r\n\r\n\t\t\t\t\tif (!availableStates || !availableStates.length) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar availableState;\r\n\t\t\t\t\tfor (var index = availableStates.length - 1; index >= 0; --index) {\r\n\t\t\t\t\t\tavailableState = availableStates[index];\r\n\t\t\t\t\t\tvar allowedIndex = allowedStates.indexOf(availableState.value);\r\n\t\t\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t\t\t// AvailableState is not allowed\r\n\t\t\t\t\t\t\tavailableStates.splice(index, 1);\r\n\t\t\t\t\t\t} else if (availableState.useDefaultDescription) {\r\n\t\t\t\t\t\t\t// AvailableState should use default description\r\n\t\t\t\t\t\t\tavailableState.description = wizardCountryStateList[`${key}_${availableState.value}_Description`];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedState: props.initialValue || \"\",\r\n\t\t\tstateConfig,\r\n\t\t\tdisabled: false,\r\n\t\t\tinputType: props.initialInputType || \"select\",\r\n\t\t\tisAddressVerificationEnabled,\r\n\t\t\trestrictedCountries: restrictedCountries || [],\r\n\t\t\tplaceholderText: props.placeholderText\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleStateSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedState = event.currentTarget.value ;\r\n\r\n\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\t\tAccountActions.setSelectedState(formParentId, selectedState);\r\n\t}\r\n\r\n\thandleModifierSelectedChange(modifierSelected) {\r\n\t\tthis.setState({\r\n\t\t\tinputType: (modifierSelected === \"text\") ? \"text\" : \"select\"\r\n\t\t});\r\n\t}\r\n\r\n\tupdatePropsForRemounting(properties) {\r\n\t\tproperties = properties || {};\r\n\t\tproperties.initialInputType = this.state.inputType;\r\n\t\treturn properties;\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tvar formParentId = AccountFormHelper.getParentFormId(this);\r\n\t\t\tthis.setState({\r\n\t\t\t\tselectedCountry: AccountActions.getSelectedCountry(formParentId),\r\n\t\t\t\tselectedState: AccountActions.getSelectedState(formParentId) || \"\",\r\n\t\t\t\tdisabled: formParentId ? AccountActions.getIsFormInputDisabled(formParentId) : false\r\n\t\t\t}, () => {\r\n\t\t\t\tif (!this.props.isDesignMode) {\r\n\t\t\t\t\tif (!this.state.stateConfig[this.state.selectedCountry] || !this.state.stateConfig[this.state.selectedCountry].length) {\r\n\t\t\t\t\t\t// If there are no states to select from and the selector is also marked as invalid,\r\n\t\t\t\t\t\t// remove the \"invalid\" class so the constituent won't be frustrated trying to set a\r\n\t\t\t\t\t\t// value for a field which is disabled.\r\n\t\t\t\t\t\t$(ReactDOM.findDOMNode(this)).find(\"select.invalid\").removeClass(\"invalid\");\r\n\r\n\t\t\t\t\t\t// We only allow switching to text input if we are configured for address standardization and auto-adding states and postal codes.\r\n\t\t\t\t\t\tvar isStandardizableCountry = () => !this.state.restrictedCountries.some(restrictedCountry => restrictedCountry === this.state.selectedCountry);\r\n\t\t\t\t\t\tif (this.state.isAddressVerificationEnabled && AccountActions.getIsAutoAddStateAndPostalCodes() && isStandardizableCountry()) {\r\n\t\t\t\t\t\t\tif (this.state.inputType === \"select\") {\r\n\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\tinputType: \"text\",\r\n\t\t\t\t\t\t\t\t\tselectedState: \"\"\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tinputType: \"select\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\r\n\t\tvar $formParent = AccountFormHelper.getParentForm(this);\r\n\t\tvar formParentId = AccountFormHelper.getParentFormIdFromForm($formParent);\r\n\t\tvar updateAllowed = true;\r\n\r\n\t\tif ($formParent.length > 0) {\r\n\t\t\t// updateAllowed only applies to createAccountForm\r\n\t\t\tupdateAllowed = !$formParent.is(\"[data-component='createAccountForm']\") || $formParent.is(\"[data-update-allowed]\");\r\n\t\t}\r\n\r\n\t\tAccountActions.toggleInputStatus(formParentId, /*disabled*/ !updateAllowed);\r\n\r\n\t\t//Setting the selectedState in state initially.\r\n\t\tAccountActions.setSelectedState(formParentId, this.state.selectedState);\r\n\t\tthis._onChange();\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_STATE, this._onChange);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_COUNTRY, this._onChange);\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_AUTO_ADD_STATE_AND_POSTAL_CODES, this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_STATE, this._onChange);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_COUNTRY, this._onChange);\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_AUTO_ADD_STATE_AND_POSTAL_CODES, this._onChange);\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar availableStates = this.state.stateConfig[this.state.selectedCountry];\r\n\t\tvar disabled = this.state.disabled || (!this.props.isDesignMode && (!availableStates || !availableStates.length));\r\n\t\tvar isSelect = this.state.inputType === \"select\";\r\n\t\tvar placeholderText = this.state.placeholderText;\r\n\r\n\t\tvar textStyle = this.props.isDesignMode ? { pointerEvents: \"none\" } : {};\r\n\t\tif (this.state.selectedState) {\r\n\t\t\ttextStyle.textTransform = \"uppercase\";\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name=\"StateSelector\"\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tclassName={classNames(\"state-selector form-control\", this.props.childClass, { hidden: !isSelect })}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? { pointerEvents: \"none\" } : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\tname={isSelect ? \"address.state\" : \"address.state.inactive\"} // we change the name to ensure related selectors only find the active input\r\n\t\t\t\t\tdata-shared-name={\"address.state.field\"}\r\n\t\t\t\t\tonChange={this.handleStateSelected.bind(this)}\r\n\t\t\t\t\tdata-required={this.props.dataRequired}\r\n\t\t\t\t\trequired={this.props.required || this.props.dataRequired}\r\n\t\t\t\t\tvalue={this.state.selectedState}\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"\"></option>\r\n\t\t\t\t\t{availableStates && availableStates.map((availableState) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className=\"availableState\" key={availableState.value} value={availableState.value}>\r\n\t\t\t\t\t\t\t\t{availableState.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t\t<input\r\n\t\t\t\t\tclassName={classNames(\"state-selector form-control\", this.props.childClass, { hidden: isSelect })}\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tname={!isSelect ? \"address.state\" : \"address.state.inactive\"} // we change the name to ensure related selectors only find the active input\r\n\t\t\t\t\tdata-shared-name={\"address.state.field\"}\r\n\t\t\t\t\tstyle={textStyle}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tmaxLength={this.props.isDesignMode ? undefined : \"3\"} // We only allow users to input state codes. Entering placeholder text in the designer should not be limited to 3 characters.\r\n\t\t\t\t\tonBlur={this.handleStateSelected.bind(this)}\r\n\t\t\t\t\tonChange={this.handleStateSelected.bind(this)}\r\n\t\t\t\t\tdata-required={this.props.dataRequired}\r\n\t\t\t\t\trequired={this.props.required || this.props.dataRequired}\r\n\t\t\t\t\tvalue={this.state.selectedState}\r\n\t\t\t\t\tplaceholder={placeholderText}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nStateSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tstateConfig: PropTypes.object,\r\n\tdataRequired: PropTypes.bool,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string,\r\n\tinitialValue: PropTypes.string,\r\n\tdataChildOf: PropTypes.string\r\n};\r\n\r\nmodule.exports = StateSelector;\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\n\r\nLogger.useDefaults({\r\n\tdefaultLevel: Logger.ERROR\r\n});\r\n\r\nmodule.exports = {\r\n\tAccountActions: require(\"./AccountActions\"),\r\n\tAccountAddressTypeSelector: require(\"./AccountAddressTypeSelector\"),\r\n\tAccountEmailTypeSelector: require(\"./AccountEmailTypeSelector\"),\r\n\tAccountMediaSelector: require(\"./AccountMediaSelector\"),\r\n\tAccountPhoneTypeSelector: require(\"./AccountPhoneTypeSelector\"),\r\n\tAccountStore: require(\"./AccountStore\"),\r\n\tAccountTitleSelector: require(\"./AccountTitleSelector\"),\r\n\tBillingAddressHelper: require(\"./BillingAddressHelper\"),\r\n\tChildCommunicationsHelper: require(\"./ChildCommunicationsHelper\"),\r\n\tCountrySelector: require(\"./CountrySelector\"),\r\n\tCreditCardHelper: require(\"../commonComponents/CreditCardHelper\"),\r\n\tDefaultBillingAndShippingAddressHelper: require(\"./DefaultBillingAndShippingAddressHelper\"),\r\n\tEventSearchActions: require(\"../actions/EventSearchActions\"),\r\n\tEventSearchStore: require(\"../stores/EventSearchStore\"),\r\n\tGivingStatementHelper: require(\"./GivingStatementHelper\"),\r\n\tMyPledgesEditFrequencySelector: require(\"./MyPledgesEditFrequencySelector\"),\r\n\tMyPledgesHelper: require(\"./MyPledgesHelper\"),\r\n\tMyRecurringHeaderEditFrequencySelector: require(\"./MyRecurringHeaderEditFrequencySelector\"),\r\n\tMyRecurringHeaderEditUseOnDaySelector: require(\"./MyRecurringHeaderEditUseOnDaySelector\"),\r\n\tMyRecurringHelper: require(\"./MyRecurringHelper\"),\r\n\tMySponsorshipsEditFrequencySelector: require(\"./MySponsorshipsEditFrequencySelector\"),\r\n\tMySponsorshipsHelper: require(\"./MySponsorshipsHelper\"),\r\n\tMySubscriptionsHelper: require(\"./MySubscriptionsHelper\"),\r\n\tOrganizationContactTypeSelector: require(\"./OrganizationContactTypeSelector\"),\r\n\tOrganizationTypeSelector: require(\"./OrganizationTypeSelector\"),\r\n\tOtherAddressesHelper: require(\"./OtherAddressesHelper\"),\r\n\tPaymentTypeSelector: require(\"../checkoutComponents/PaymentTypeSelector\"),\r\n\tSmartyStreets: require(\"./SmartyStreets\"),\r\n\tStateSelector: require(\"./StateSelector\"),\r\n\tSubscriptionHelper: require(\"../subscriptionComponents/SubscriptionHelper\") //Here because the _SubscriptionsLayout.cshtml loads it already.\r\n};\r\n","\"use strict\";\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar setProperty = (model, propertyName, propertyValue) => {\r\n\tvar propertyParts = propertyName.split(\".\");\r\n\tvar ref = model;\r\n\tpropertyParts.forEach(function (propertyPart, index) {\r\n\t\tif (index < propertyParts.length - 1) {\r\n\t\t\tif (!ref[propertyPart]) {\r\n\t\t\t\tref[propertyPart] = {};\r\n\t\t\t}\r\n\t\t\tref = ref[propertyPart];\r\n\t\t} else {\r\n\t\t\tref[propertyPart] = propertyValue;\r\n\t\t};\r\n\t});\r\n};\r\n\r\nvar ActionsHelper = {\r\n\tformatAmount: function(value, $element, keepDecimals, includeThousandsSeparator) {\r\n\t\tif (value == null) { //coercion because I want undefined as well but not 0\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\t//We are doing this so that we can have the same method name for the two different methods\r\n\t\tif (!($element instanceof jQuery)) {\r\n\t\t\treturn this.formatAmountValue(...arguments);\r\n\t\t}\r\n\r\n\t\t$element = $element || $(null);\r\n\t\t//If we are a link, the showDecimals and includeCurrencySymbol are stored on the parent\r\n\t\tif ($element.is(`[data-component=\"link\"]`)) {\r\n\t\t\t$element = $element.parent();\r\n\t\t}\r\n\r\n\t\tvar includeCurrencySymbol = $element.is(\"[data-include-currency-symbol]\");\r\n\t\tvar showDecimals = $element.is(\"[data-show-decimals]\");\r\n\r\n\t\treturn this.formatAmountValue(value, showDecimals, includeCurrencySymbol, keepDecimals, includeThousandsSeparator);\r\n\t},\r\n\r\n\t// If keepDecimals, do not format out the decimals. This is most often used when a user is typing an amount.\r\n\tformatAmountValue: function(amount, showDecimals, includeCurrencySymbol, keepDecimals, includeThousandsSeparator) {\r\n\t\tvar formattedAmount = parseFloat(Number(amount) || 0);\r\n\t\tvar numberDecimals = 0;\r\n\t\tif (showDecimals || formattedAmount % 1 !== 0) {\r\n\t\t\t// If we have any decimal amount, force decimals\r\n\t\t\t// i.e. amount is 66.5, we want to show 66.50\r\n\t\t\tnumberDecimals = 2;\r\n\t\t}\r\n\r\n\t\tif (!keepDecimals) {\r\n\t\t\tformattedAmount = formattedAmount.toFixed(numberDecimals);\r\n\t\t}\r\n\r\n\t\t// Add commas in (but only to the part before the decimal)\r\n\t\tvar parts = formattedAmount.toString().split(\".\");\r\n\t\tif (includeThousandsSeparator == null) {\r\n\t\t\t// Defaulting to true\r\n\t\t\tincludeThousandsSeparator = true;\r\n\t\t}\r\n\t\tif (includeThousandsSeparator) {\r\n\t\t\tparts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, window.currencyFormat.thousandsSeparator);\r\n\t\t}\r\n\t\tif (keepDecimals && parts.length === 1 && numberDecimals !== 0) {\r\n\t\t\t// The number entered either did not have decimals or had 00, and we want to show decimals\r\n\t\t\tparts[1] = \"0\";\r\n\t\t}\r\n\t\tif (parts.length === 2) {\r\n\t\t\t// Make sure we have the right number of 0s on the end\r\n\t\t\t// \"0\" => \"00\"\r\n\t\t\t// \"50\" => \"50\"\r\n\t\t\t// \"5\" => \"50\"\r\n\t\t\t// \"55\" => \"55\"\r\n\t\t\tparts[1] = parts[1].padEnd(numberDecimals, \"0\");\r\n\t\t}\r\n\t\tformattedAmount = parts.join(window.currencyFormat.decimalSeparator);\r\n\t\tif (includeCurrencySymbol && window.currencyFormat.currencySymbol) {\r\n\t\t\tif (window.currencyFormat.isCurrencySymbolInFront) {\r\n\t\t\t\tformattedAmount = window.currencyFormat.currencySymbol + formattedAmount;\r\n\t\t\t} else {\r\n\t\t\t\tformattedAmount = formattedAmount + window.currencyFormat.currencySymbol;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn formattedAmount;\r\n\t},\r\n\r\n\tformatDecimal: function (value, $element, includeThousandsSeparator) {\r\n\t\tif (value == null) { //coercion because I want undefined as well but not 0\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\t//We are doing this so that we can have the same method name for the two different methods\r\n\t\tif (!($element instanceof jQuery)) {\r\n\t\t\treturn this.formatDecimalValue(...arguments);\r\n\t\t}\r\n\r\n\t\treturn this.formatDecimalValue(value, includeThousandsSeparator);\r\n\t},\r\n\r\n\tformatDecimalValue: function (amount, includeThousandsSeparator) {\r\n\t\tvar formattedDecimal = parseFloat(Number(amount) || 0);\r\n\r\n\t\t// Add commas in (but only to the part before the decimal)\r\n\t\tvar parts = formattedDecimal.toString().split(\".\");\r\n\t\tif (includeThousandsSeparator == null) {\r\n\t\t\t// Defaulting to true\r\n\t\t\tincludeThousandsSeparator = true;\r\n\t\t}\r\n\t\tif (includeThousandsSeparator) {\r\n\t\t\tparts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, window.currencyFormat.thousandsSeparator);\r\n\t\t}\r\n\r\n\t\tformattedDecimal = parts.join(window.currencyFormat.decimalSeparator);\r\n\r\n\t\treturn formattedDecimal;\r\n\t},\r\n\r\n\treplaceAmountDecimalSymbols: function(numberString) {\r\n\t\t//We are specifically using coercion here to do equality for null and undefined\r\n\t\tnumberString = (numberString == null ? \"\" : numberString).toString().replace(/\\./g, window.currencyFormat.decimalSeparator);\r\n\t\treturn numberString;\r\n\t},\r\n\r\n\t// useCurrencyFormatDecimalSeparator would most likely be true if we are formatting a number to put in an input (amount) field\r\n\tconvertFormattedAmountToNumberString: function(formattedAmount, useCurrencyFormatDecimalSeparator) {\r\n\t\tformattedAmount = (formattedAmount || \"\").toString();\r\n\t\tvar currencyRegex = new RegExp(this.escapeRegExp(window.currencyFormat.currencySymbol), \"g\");\r\n\t\tvar decimalRegex = new RegExp(this.escapeRegExp(window.currencyFormat.decimalSeparator), \"g\");\r\n\t\tvar thousandsRegex = new RegExp(this.escapeRegExp(window.currencyFormat.thousandsSeparator), \"g\");\r\n\r\n\t\t//Remove Currency Symbol\r\n\t\tformattedAmount = formattedAmount.replace(currencyRegex, \"\");\r\n\t\t//Remove Thousands Separator\r\n\t\tformattedAmount = formattedAmount.replace(thousandsRegex, \"\");\r\n\t\t//Replace Decimal Separator with period\r\n\t\tif (!useCurrencyFormatDecimalSeparator && window.currencyFormat.decimalSeparator !== \".\") {\r\n\t\t\tformattedAmount = formattedAmount.replace(decimalRegex, \".\");\r\n\t\t}\r\n\r\n\t\treturn formattedAmount;\r\n\t},\r\n\r\n\tconvertFormattedAmountToNumber: function(formattedAmount) {\r\n\t\tformattedAmount = this.convertFormattedAmountToNumberString(formattedAmount);\r\n\r\n\t\treturn parseFloat(Number(formattedAmount) || 0);\r\n\t},\r\n\r\n\tescapeRegExp: function(string) {\r\n\t\treturn string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\r\n\t},\r\n\r\n\t// This method should only be used when processing events which alter internal component UI state.\r\n\t// Any component which has a click event which performs an external action (like navigation) should not use this method.\r\n\tgetEventOrReturn: function(event, isDesignMode, isDesignModeMessage, preventDefaultInDesignMode) {\r\n\t\t//We are specifically using coercion here to do equality for null and undefined\r\n\t\tpreventDefaultInDesignMode = preventDefaultInDesignMode == null ? true : preventDefaultInDesignMode;\r\n\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!isDesignMode || preventDefaultInDesignMode) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (isDesignMode) {\r\n\t\t\tif (event.ctrlKey || event.metaKey) {\r\n\t\t\t\t// We don't want a new tab to be opened when ctrl+clicking a link in design mode when using this\r\n\t\t\t\t// method. Instead we are popping a Bootstrap dialog with a message to the user.\r\n\t\t\t\t// Stopping propagation has the side-effect of preventing the Property Editor from loading, but that is\r\n\t\t\t\t// expected on ctrl+click.\r\n\t\t\t\tif (event.type === \"click\" && event.target && event.target.tagName === \"A\") {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t\tBootstrapPrompt.success(isDesignModeMessage);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\r\n\t\treturn event;\r\n\t},\r\n\r\n\tserializeForm: function (selector) {\r\n\t\tvar $form = $(selector);\r\n\r\n\t\t//For the createAccountForm, if we have a hidden accountType.individual or accountType.organization, we want to make sure to disable the \"inputs\" on it so they are not submitted to the server.\r\n\t\tvar $hiddenInputs = $form.find(`[data-component=\"accountType\"] > div:hidden input:enabled:hidden,[data-component=\"accountType\"] > div:hidden select:enabled:hidden,[data-component=\"accountType\"] > div:hidden textarea:enabled:hidden,[name='address.state.inactive']`);\r\n\t\t$hiddenInputs.prop(\"disabled\", true);\r\n\r\n\t\tvar data = $form.serializeArray().reduce((obj, item) => {\r\n\t\t\tsetProperty(obj, item.name, item.value);\r\n\t\t\treturn obj;\r\n\t\t}, {});\r\n\r\n\t\t//Setting the \"inputs\" back to how they were\r\n\t\t$hiddenInputs.prop(\"disabled\", false);\r\n\r\n\t\treturn data;\r\n\t}\r\n};\r\n\r\nmodule.exports = ActionsHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CarouselActions\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ProductActions = require(\"../actions/ProductActions\");\r\n\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nvar CarouselStore = require(\"../stores/CarouselStore\");\r\n\r\nvar CarouselActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.CAROUSEL_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\tinitializeCarousels: function ($currentCarousel) {\r\n\t\tif (document.readyState === \"complete\") {\r\n\t\t\tthis._initializeCarousels($currentCarousel || $(null));\r\n\t\t} else {\r\n\t\t\tvar _this = this;\r\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\r\n\t\t\t\t_this._initializeCarousels($currentCarousel || $(null));\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t_initializeCarousels: function ($currentCarousel) {\r\n\t\tvar handleTouchStart = function (event) {\r\n\t\t\tCarouselActions.handleTouchStart(event);\r\n\t\t};\r\n\t\tvar handleTouchEnd = function (event) {\r\n\t\t\tCarouselActions.handleTouchEnd(event);\r\n\t\t\tif (CarouselActions.handleSwipe(event)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\t\t\tevent.stopPropagation();\r\n\t\t};\r\n\r\n\t\tvar $carousels = $(\"[data-component='carousel']\");\r\n\r\n\t\tif ($currentCarousel.length) {\r\n\t\t\t$carousels = $carousels.filter(`#${$currentCarousel.attr(\"id\")}`);\r\n\t\t}\r\n\r\n\t\tif ($carousels.length) {\r\n\t\t\t$carousels.each((index, carousel) => {\r\n\t\t\t\tcarousel.addEventListener(\"touchstart\", handleTouchStart);\r\n\t\t\t\tcarousel.addEventListener(\"touchend\", handleTouchEnd);\r\n\r\n\t\t\t\tvar $carousel = $(carousel);\r\n\t\t\t\tProductActions.initializeResultSuggestedDonations($carousel, `carousel_${$carousel.attr(\"id\")}`);\r\n\t\t\t});\r\n\r\n\t\t\tif ($currentCarousel.length && $carousels.first().length) {\r\n\t\t\t\t//Only need to initialize when we have $currentCarousel because this means one of the paging buttons was pressed.\r\n\t\t\t\t//\tFor initial page load, the product variants initialize happens in _PublishedPageLayout\r\n\t\t\t\twindow.ProductVariantsHelper.initializeProductVariants($carousels.first());\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tgetNextPage: function (event) {\r\n\t\tif (CarouselStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Get the current carousel\r\n\t\tvar $carousel = this._getCarousel(event);\r\n\r\n\t\t// Carousel-based variables\r\n\t\tvar carouselData = this._getCarouselData($carousel);\r\n\t\tvar currentPage = carouselData.currentPage;\r\n\t\tif (!currentPage) {\r\n\t\t\tcurrentPage = 1;\r\n\t\t} else {\r\n\t\t\tcurrentPage = +currentPage;\r\n\t\t}\r\n\r\n\t\t// Bail if we've reached the end of the records.\r\n\t\tif (currentPage * carouselData.limit >= carouselData.totalRecords) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar requestedPage = currentPage + 1;\r\n\t\tvar requestUrl = this._buildPageUrl(carouselData, requestedPage);\r\n\r\n\t\t// force the $carousel to load the partial page, and call unwrap because\r\n\t\t// we are loading the full carousel component into itself.\r\n\t\tvar _this = this;\r\n\t\t$carousel.load(requestUrl, function (response, status, jqXHR) {\r\n\t\t\tif (status === \"error\") {\r\n\t\t\t\tLoggerInstance.error(jqXHR.statusText);\r\n\t\t\t\tPartialResponseHelper.handleErrorResponse(response);\r\n\t\t\t} else {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\t$this.children().first().unwrap();\r\n\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.CAROUSEL_NEXT_PAGE,\r\n\t\t\t\t\tcarouselId: carouselData.id\r\n\t\t\t\t});\r\n\t\t\t\t_this.initializeCarousels($this);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetPreviousPage: function (event) {\r\n\t\tif (CarouselStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Get the current carousel\r\n\t\tvar $carousel = this._getCarousel(event);\r\n\r\n\t\t// Carousel-based variables\r\n\t\tvar carouselData = this._getCarouselData($carousel);\r\n\r\n\t\t// Bail if we're trying to go backwards from page 1.\r\n\t\tif (carouselData.currentPage === 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar requestedPage = carouselData.currentPage - 1;\r\n\t\tvar requestUrl = this._buildPageUrl(carouselData, requestedPage);\r\n\r\n\t\t// force the $carousel to load the partial page, and call unwrap because\r\n\t\t// we are loading the full carousel component into itself.\r\n\t\tvar _this = this;\r\n\t\t$carousel.load(requestUrl, function (response, status, jqXHR) {\r\n\t\t\tif (status === \"error\") {\r\n\t\t\t\tLoggerInstance.error(jqXHR.statusText);\r\n\t\t\t\tPartialResponseHelper.handleErrorResponse(response);\r\n\t\t\t} else {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\t$this.children().first().unwrap();\r\n\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.CAROUSEL_PREVIOUS_PAGE,\r\n\t\t\t\t\tcarouselId: carouselData.id\r\n\t\t\t\t});\r\n\t\t\t\t_this.initializeCarousels($this);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_getCarousel: function (event) {\r\n\t\tvar $target = $(event.target);\r\n\t\tif (!$target.is(\"[data-component='carousel']\")) {\r\n\t\t\t$target = $target.closest(\"[data-component='carousel']\");\r\n\t\t}\r\n\r\n\t\treturn $target;\r\n\t},\r\n\r\n\t_getCarouselData: function ($carousel) {\r\n\t\t// Carousel-based variables\r\n\t\tvar categoryId = $carousel.attr(\"data-category\") || null;\r\n\t\tvar id = $carousel.attr(\"id\");\r\n\t\tvar limit = +$carousel.attr(\"data-limit\");\r\n\t\tvar totalRecords = +$carousel.attr(\"data-total-records\");\r\n\t\tvar tangibleCode = $carousel.attr(\"data-tangible-code\");\r\n\r\n\t\t// Store variables\r\n\t\tvar layoutId = CarouselStore.get(\"layoutId\");\r\n\t\tvar url = CarouselStore.get(\"url\");\r\n\t\tvar currentPage = +CarouselStore.get(\"carouselCurrentPages\")[id];\r\n\r\n\t\treturn { categoryId, id, limit, totalRecords, layoutId, url, currentPage, tangibleCode };\r\n\t},\r\n\r\n\t_buildPageUrl(carouselData, requestedPage) {\r\n\t\tvar url = carouselData.url;\r\n\r\n\t\tvar params = [];\r\n\t\tif (carouselData.layoutId) {\r\n\t\t\tparams.push(\"layoutId=\" + carouselData.layoutId);\r\n\t\t}\r\n\r\n\t\tif (carouselData.categoryId) {\r\n\t\t\tparams.push(\"categoryId=\" + carouselData.categoryId);\r\n\t\t}\r\n\r\n\t\tif (carouselData.tangibleCode) {\r\n\t\t\tparams.push(`tangibleCode=${carouselData.tangibleCode}`);\r\n\t\t}\r\n\r\n\t\tif (params.length > 0) {\r\n\t\t\turl += \"?\" + params.join(\"&\");\r\n\t\t}\r\n\r\n\t\turl += \"&offset=\" + (carouselData.limit * (requestedPage - 1));\r\n\t\turl += \"&id=\" + carouselData.id;\r\n\r\n\t\treturn url;\r\n\t},\r\n\r\n\t// Swipe logic\r\n\thandleTouchStart(event) {\r\n\t\tif (event && event.changedTouches) {\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.CAROUSEL_TOUCH_START,\r\n\t\t\t\ttouchstartX: event.changedTouches[0].screenX\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\thandleTouchEnd(event) {\r\n\t\tif (event && event.changedTouches) {\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.CAROUSEL_TOUCH_END,\r\n\t\t\t\ttouchendX: event.changedTouches[0].screenX\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t//Will return true if the swipe was detected and handled; otherwise, false.\r\n\thandleSwipe(event) {\r\n\t\tvar swipeBuffer = 15; // If the diff between toundstartX and touchendX is less than swipeBuffer, don't count it as a swipe\r\n\t\tvar touchstartX = CarouselStore.get(\"touchstartX\");\r\n\t\tvar touchendX = CarouselStore.get(\"touchendX\");\r\n\t\tvar touchDiff = Math.abs(touchstartX - touchendX);\r\n\r\n\t\tif (touchDiff > swipeBuffer) {\r\n\t\t\tif (touchendX < touchstartX) {\r\n\t\t\t\tthis.getNextPage(event);\r\n\t\t\t} else {\r\n\t\t\t\tthis.getPreviousPage(event);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n};\r\n\r\nmodule.exports = CarouselActions;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CategoryActions\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\nvar ProductActions = require(\"../actions/ProductActions\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar GridListToggleHelper = require(\"../designer/components/searchResults/GridListToggleHelper\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ProjectActions = require(\"../projectComponents/ProjectActions\");\r\n\r\nvar HistoryHelper = require(\"../shared/HistoryHelper\");\r\n\r\nvar CategoryActions = {\r\n\tinitializeGridListToggle: function(id, previouslySelectedView) {\r\n\t\tGridListToggleHelper.initializeGridListToggle(id, previouslySelectedView, \"category\", \"grid-category-items-wrapper\", \"list-category-items-wrapper\");\r\n\t},\r\n\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.CATEGORY_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\tnavigateToCategory: function (isDesignMode, categoryUrl) {\r\n\t\tif (isDesignMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\twindow.location = categoryUrl;\r\n\t},\r\n\r\n\tnavigateToTangible: function (isDesignMode, tangibleUrl) {\r\n\t\tif (isDesignMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\twindow.location = tangibleUrl;\r\n\t},\r\n\r\n\taddToCart: function (isDesignMode, tangibleType, tangibleCode, addAndStay, event) {\r\n\t\ttry {\r\n\t\t\tevent = ActionsHelper.getEventOrReturn(event, isDesignMode, \"Category Navigate or Add To Cart called successfully.\", /*preventDefaultInDesignMode*/false);\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar afterSubmit = () => {\r\n\t\t\t\tif (!addAndStay) {\r\n\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tvar $item = $(event.target).closest(\"[data-component=category],[data-component=carousel]\");\r\n\t\t\tvar dataComponent = $item.attr(\"data-component\");\r\n\t\t\tvar categoryId = $item.attr(\"id\");\r\n\t\t\tvar context = `${dataComponent}_${categoryId}`;\r\n\t\t\tswitch (tangibleType) {\r\n\t\t\t\tcase \"PRODUCTS\":\r\n\t\t\t\t\tProductActions.addToCart(event, context, tangibleCode, afterSubmit);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"PROJECTS\":\r\n\t\t\t\t\tProjectActions.addToCart(event, context, tangibleCode, afterSubmit);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\thandlePopState: function (event) {\r\n\t\tHistoryHelper.handlePopState(/*executeAction*/ (currentQueryObject, additionalOptions) => {\r\n\t\t\twindow._categorySearch(/*categoryComponentId*/null, /*page*/null, /*sort*/null, additionalOptions);\r\n\t\t});\r\n\t},\r\n\r\n\tpurgeHistoryState(queryObjectsToDelete, updateId) {\r\n\t\tif (!window.isCategoryPage) {\r\n\t\t\t//If we are not on the category page, we do not want to update the History\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tHistoryHelper.purgeHistoryState();\r\n\t},\r\n\r\n\tupdateHistoryStateAfterLoad: function (newQueryObject, updateId) {\r\n\t\tif (!window.isCategoryPage) {\r\n\t\t\t//If we are not on the category page, we do not want to update the History\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tHistoryHelper.updateHistoryStateAfterLoad(newQueryObject, updateId);\r\n\t}\r\n};\r\n\r\nmodule.exports = CategoryActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ContactUsActions\");\r\n\r\nvar ContactUsApi = require(\"../api/ContactUsApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar SmartyStreets = require(\"../accountComponents/SmartyStreets\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar ContactUsStore = require(\"../stores/ContactUsStore\");\r\n\r\nvar ContactUsActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.CONTACT_US_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\r\n\t\t// Initialize form data once page (and React components) have loaded.\r\n\t\tvar that = this;\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\r\n\t\t\tthat.initializeAccountForm();\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeAccountForm() {\r\n\t\tif (ContactUsStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar accountData = ContactUsStore.get(\"accountData\");\r\n\t\tif (accountData) {\r\n\t\t\tvar $accountForm = $(\"[data-component='contactUsForm'] [data-component='createAccountForm']\");\r\n\r\n\t\t\twindow.AccountActions.setSelectedTitle($accountForm.attr(\"id\"), accountData.title);\r\n\t\t\t$accountForm.find(\"[data-component='accountFirstName']\").val(accountData.firstName);\r\n\t\t\t$accountForm.find(\"[data-component='accountMiddleName']\").val(accountData.middleName);\r\n\t\t\t$accountForm.find(\"[data-component='accountLastName']\").val(accountData.lastName);\r\n\t\t\t$accountForm.find(\"[data-component='accountSuffix']\").val(accountData.suffix);\r\n\t\t\tif (accountData.email) {\r\n\t\t\t\t$accountForm.find(\"[data-component='accountEmailAddress']\").val(accountData.email.emailAddress);\r\n\t\t\t}\r\n\t\t\tif (accountData.address) {\r\n\t\t\t\twindow.AccountActions.setSelectedCountry($accountForm.attr(\"id\"), accountData.address.country);\r\n\t\t\t\twindow.AccountActions.setSelectedState($accountForm.attr(\"id\"), accountData.address.state);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountAddressLine1']\").val(accountData.address.line1);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountAddressLine2']\").val(accountData.address.line2);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountAddressLine3']\").val(accountData.address.line3);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountAddressLine4']\").val(accountData.address.line4);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountAddressCity']\").val(accountData.address.city);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountAddressPostalCode']\").val(accountData.address.postalCode);\r\n\t\t\t}\r\n\t\t\tif (accountData.phone) {\r\n\t\t\t\t$accountForm.find(\"[data-component='accountPhoneAreaCode']\").val(accountData.phone.areaCode);\r\n\t\t\t\t$accountForm.find(\"[data-component='accountPhoneNumber']\").val(accountData.phone.phoneNumber);\r\n\t\t\t}\r\n\r\n\t\t\t//This will also trigger the media filtering after the address is set.\r\n\t\t\twindow.AccountActions.setSelectedMediaOutlet(accountData.mediaOutlet);\r\n\t\t}\r\n\t},\r\n\r\n\tsubmitContactUsRequest(event) {\r\n\t\tif (!event || !event.target) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $form = $(event.target);\r\n\r\n\t\ttry {\r\n\t\t\tif (ContactUsStore.get(\"isDesignMode\")) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar components = [\r\n\t\t\t\t$(\"[data-component='accountDemographicsForm']\"),\r\n\t\t\t\t$(\"[data-component='accountMediaForm']\"),\r\n\t\t\t\t$(event.target).closest(\"[data-component='contactUsForm']\")\r\n\t\t\t];\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tSmartyStreets.verifyAddress(\"createAccountForm\").done(() => {\r\n\t\t\t\t\tAccountFormHelper.serializeDataNecessaryToCreateAnAccount({\r\n\t\t\t\t\t\tselector: `[data-component=\"${$form.attr(\"data-child-of\")}\"]`,\r\n\t\t\t\t\t\tselectorFunction: \"first\", // Passing the jQuery extention method \".first()\" as a string\r\n\t\t\t\t\t\tshouldEncodePassword: false //ContactUs form will never have a password input\r\n\t\t\t\t\t}).always(accountData => {\r\n\t\t\t\t\t\t// Parse contact us form\r\n\t\t\t\t\t\tvar formType = this._getFormValueOrDefault(\"contactUsForm\", \"[data-component='communicationType'] select\", \"data-default-communication-type\");\r\n\t\t\t\t\t\tvar summary = this._getFormValueOrDefault(\"contactUsForm\", \"[data-component='contactUsForm.summary']\", \"data-default-summary\");\r\n\t\t\t\t\t\tvar comment = $(\"[data-component='contactUsForm.comment']\").val();\r\n\r\n\t\t\t\t\t\t// Combine account and communication information\r\n\t\t\t\t\t\tvar allowUpdate = $(\"[data-component='contactUsForm'] [data-component='createAccountForm']\").is(\"[data-update-allowed]\");\r\n\r\n\t\t\t\t\t\tvar submissionData = Object.assign({}, accountData, {\r\n\t\t\t\t\t\t\tformType,\r\n\t\t\t\t\t\t\tsummary,\r\n\t\t\t\t\t\t\tcomment,\r\n\t\t\t\t\t\t\tallowUpdate\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tContactUsApi.submitContactUsRequest(submissionData).done(() => {\r\n\t\t\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='contactUsForm']\");\r\n\t\t\t\t\t\t\t}).fail((jqXHR) => {\r\n\t\t\t\t\t\t\t\tApiHelper.displayErrorMessage(jqXHR);\r\n\t\t\t\t\t\t}).always(() => Spinner.removeSpinner());\r\n\t\t\t\t\t});\r\n\t\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\t_getFormValueOrDefault(parentComponent, componentSelector, attributeName) {\r\n\t\tvar formValue = $(`[data-component=\"${parentComponent}\"]`).find(componentSelector).val();\r\n\r\n\t\tif (!formValue) {\r\n\t\t\tvar $component = $(`[data-component=\"${parentComponent}\"]`);\r\n\t\t\tformValue = $component.attr(attributeName);\r\n\t\t}\r\n\r\n\t\treturn formValue;\r\n\t},\r\n};\r\n\r\nmodule.exports = ContactUsActions;","\"use strict\";\r\n\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EmailSubscriptionActions\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar AccountApi = require(\"../api/AccountApi\");\r\nvar EmailSubscriptionApi = require(\"../api/EmailSubscriptionApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar SubmitButtonHelper = require(\"../commonComponents/SubmitButtonHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar WizardStore = require(\"../designer/wizard/WizardStore\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HistoryHelper = require(\"../shared/HistoryHelper\");\r\n\r\nvar EmailSubscriptionStore = require(\"../stores/EmailSubscriptionStore\");\r\n\r\nvar EmailSubscriptionActions = {\r\n\tgetDefaultEmailSubscriptionTypes() {\r\n\t\treturn WizardStore.getValue(\"emailSubscriptions\");\r\n\t},\r\n\r\n\tgetEmailSubscriptionFormError(failedSubscriptions) {\r\n\t\treturn EmailSubscriptionStore.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.EMAIL_SUBSCRIPTION_MESSAGES,\r\n\t\t\tWizardConstants.EMAIL_SUBSCRIPTION_MESSAGE_FIELDS.EMAIL_SUBSCRIPTION_FORM_ERROR\r\n\t\t);\r\n\t},\r\n\r\n\tgetMyEmailSubscriptionError(failedSubscriptions) {\r\n\t\treturn EmailSubscriptionStore.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.EMAIL_SUBSCRIPTION_MESSAGES,\r\n\t\t\tWizardConstants.EMAIL_SUBSCRIPTION_MESSAGE_FIELDS.MY_EMAIL_SUBSCRIPTIONS_ERROR,\r\n\t\t\t{ failedSubscriptions }\r\n\t\t);\r\n\t},\r\n\r\n\tinitializeEmailSubscriptionForm: function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.EMAIL_SUBSCRIPTION_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", (event) => {\r\n\t\t\tvar $subscriptionForms = $(\"[data-component='emailSubscriptionForm']\");\r\n\t\t\t$subscriptionForms.each((index, component) => {\r\n\t\t\t\tvar $component = $(component);\r\n\t\t\t\tvar componentId = $component.attr(\"id\");\r\n\t\t\t\tvar $form = $component.find(`form#emailSubscriptionForm`).first();\r\n\r\n\t\t\t\tif (!options.isDesignMode) {\r\n\t\t\t\t\t// We need to make the form id and the submit button form attributes unique.\r\n\t\t\t\t\tvar formId = $form.attr(\"id\");\r\n\t\t\t\t\tvar $submitButton = $form.find(\"[data-component='submitButton']\");\r\n\r\n\t\t\t\t\tvar newId = `${formId}_${componentId}`;\r\n\r\n\t\t\t\t\t$form.attr(\"id\", newId);\r\n\t\t\t\t\t$submitButton.attr(\"form\", newId);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$form.off(\"submit.emailSubscriptionForm\");\r\n\t\t\t\t$form.on(\"submit.emailSubscriptionForm\", EmailSubscriptionActions.submitEmailSubscriptionRequest.bind(this));\r\n\r\n\t\t\t\tif (options.isDesignMode) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$component.find(\"[name][type='checkbox']\").change((event) => {\r\n\t\t\t\t\tif (!event || !event.target) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(event.target).toggleClass(\"isDirty\");\r\n\r\n\t\t\t\t\tvar $selectedComponent = $(event.target);\r\n\t\t\t\t\tif ($selectedComponent.closest('[data-component=\"emailSubscriptionTypes\"]').length) {\r\n\t\t\t\t\t\tEmailSubscriptionActions.updateSelectedCheckboxes($selectedComponent, $selectedComponent.is(\":checked\"));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//Update the create account form inside of email subscriptions\r\n\t\t\t\t$component.find(`form#createAccountForm`).each((index, accountForm) => {\r\n\t\t\t\t\tvar $accountForm = $(accountForm);\r\n\r\n\t\t\t\t\tvar accountFormId = $accountForm.attr(\"id\");\r\n\r\n\t\t\t\t\tvar accountFormNewId = `${accountFormId}_${componentId}`;\r\n\r\n\t\t\t\t\t$accountForm.attr(\"id\", accountFormNewId);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Check and mark-as-selected the first checkbox.\r\n\t\t\t\tvar $firstComponent = $component\r\n\t\t\t\t\t.find('[data-component=\"emailSubscriptionTypes.singleCheckbox.input\"]:not(:disabled)').first();\r\n\t\t\t\t$firstComponent.prop(\"checked\", true);\r\n\t\t\t\tEmailSubscriptionActions.updateSelectedCheckboxes($firstComponent, /* isChecked */true);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeMyEmailSubscriptions: function (options) {\r\n\t\t// init store\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.EMAIL_SUBSCRIPTION_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\r\n\t\tvar $form = options.form || $(\"[data-component='myEmailSubscriptions']\");\r\n\t\tif (!$form.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $submitForm = $form.find(\"form\").first();\r\n\r\n\t\t$submitForm.off(\"submit.myEmailSubscriptions\");\r\n\t\t$submitForm.on(\"submit.myEmailSubscriptions\", event => this.submitAccountEmailSubscriptions(event));\r\n\r\n\t\tif (!options.isDesignMode) {\r\n\t\t\t// fetch all email subscriptions for this user, check ones we're subscribed to.\r\n\t\t\tEmailSubscriptionApi.getEmailSubscriptions().done(data => {\r\n\t\t\t\tif (data && data.items) {\r\n\t\t\t\t\tdata.items.forEach(item => {\r\n\t\t\t\t\t\tvar $input = $form.find(`input[data-component='emailSubscriptionTypes.singleCheckbox.input'][value='${item.type}']`);\r\n\t\t\t\t\t\tif ($input.length) {\r\n\t\t\t\t\t\t\t$input.prop(\"checked\", true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// adding change listeners to the email subscription inputs.\r\n\t\t\t$form.find(\"[name][type='checkbox']\").change((event) => {\r\n\t\t\t\tif (!event || !event.target) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(event.target).toggleClass(\"isDirty\");\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tsubmitAccountEmailSubscriptions: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, \"My Email Subscriptions Update action called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $component,\r\n\t\t\t$form,\r\n\t\t\t$namedInputs;\r\n\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\t$form = $(event.target);\r\n\t\tif ($form[0].tagName !== \"FORM\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t$component = $form.closest(\"[data-component='myEmailSubscriptions']\");\r\n\t\t$namedInputs = $component.find(\"[name].isDirty\");\r\n\r\n\t\t// nothing to update\r\n\t\tif (!$namedInputs.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Iterate over each changed subscription and attempt to subscribe/unsubscribe.\r\n\t\t// * If we succeed, find the input and remove the isDirty class.\r\n\t\t// * If we failed, find the input and:\r\n\t\t//\t* Remove the isDirty class\r\n\t\t//\t* Toggle the checked state (back to what it was previously)\r\n\t\t//\t* Add the subscription type to a list of failed subscription types to alert user.\r\n\t\tSpinner.showSpinner($component);\r\n\t\tvar failedSubscriptions = [];\r\n\r\n\t\tvar failureCallback = function ($input, subscriptionType) {\r\n\t\t\tfailedSubscriptions.push(subscriptionType);\r\n\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t};\r\n\r\n\t\tvar alwaysCallback = function ($input, asyncCallback) {\r\n\t\t\t$input.toggleClass(\"isDirty\");\r\n\t\t\tasyncCallback();\r\n\t\t};\r\n\r\n\t\tasync.each($namedInputs, (input, next) => {\r\n\t\t\tvar $input = $(input);\r\n\t\t\tvar subscriptionType = $input.attr(\"name\");\r\n\t\t\tvar isSubscribing = $input.prop(\"checked\");\r\n\r\n\t\t\tif (isSubscribing) {\r\n\t\t\t\t// handle subscribe\r\n\t\t\t\tEmailSubscriptionApi.subscribe(subscriptionType)\r\n\t\t\t\t\t.fail(() => failureCallback($input, subscriptionType))\r\n\t\t\t\t\t.always(() => alwaysCallback($input, next));\r\n\t\t\t} else {\r\n\t\t\t\t// handle unsubscribe\r\n\t\t\t\tEmailSubscriptionApi.unsubscribe(subscriptionType)\r\n\t\t\t\t\t.fail(() => failureCallback($input, subscriptionType))\r\n\t\t\t\t\t.always(() => alwaysCallback($input, next));\r\n\t\t\t}\r\n\t\t}, () => {\r\n\t\t\tSpinner.removeSpinner($component);\r\n\t\t\tif (failedSubscriptions.length) {\r\n\t\t\t\tvar typesModelString = $component\r\n\t\t\t\t\t.find(\"[data-component='emailSubscriptionTypes']\")\r\n\t\t\t\t\t.attr(\"data-email-subscription-types-model\") || \"{}\";\r\n\r\n\t\t\t\tvar typesModel = JSON.parse(typesModelString);\r\n\t\t\t\tvar failedSubscriptionsDisplayString = \"\";\r\n\r\n\t\t\t\tfailedSubscriptions.forEach(subType => {\r\n\t\t\t\t\tvar subTypeDescription = typesModel[`${subType}_Description`];\r\n\t\t\t\t\tfailedSubscriptionsDisplayString += `\\n${subTypeDescription}`;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tBootstrapPrompt.alert(this.getMyEmailSubscriptionError(`\\n${failedSubscriptionsDisplayString}\\n\\n`));\r\n\t\t\t} else {\r\n\t\t\t\tSubmitButtonHelper.performPostSubmitAction(\"[data-component='myEmailSubscriptions']\");\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tsubmitEmailSubscriptionRequest(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Email Subscription Process action called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $accountForm,\r\n\t\t\t$emailSubscriptionForm,\r\n\t\t\t$form,\r\n\t\t\t$namedInputs,\r\n\t\t\tdefaultEmailSubscriptionType;\r\n\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\t$form = $(event.target);\r\n\t\tif ($form[0].tagName !== \"FORM\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t$emailSubscriptionForm = $form.closest(\"[data-component='emailSubscriptionForm']\");\r\n\t\t$accountForm = $emailSubscriptionForm.find(\"[data-component='createAccountForm']\");\r\n\t\t$namedInputs = $emailSubscriptionForm.find(\"[name].isDirty,[name][required]\");\r\n\t\tdefaultEmailSubscriptionType = $emailSubscriptionForm.attr(\"data-default-email-subscription-type\");\r\n\r\n\t\t// This block checks to ensure that we either have at least one selected email subscription type\r\n\t\t// (if the types component is on the page), or that the default email subscription type has been\r\n\t\t// set on the form.\r\n\t\tif ($namedInputs.length <= 0 && !defaultEmailSubscriptionType) {\r\n\t\t\tLoggerInstance.error(\"Need to set default email subscription type, or select at least one email subscription type.\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Custom validation.\r\n\t\t$emailSubscriptionForm.find('[data-component=\"emailSubscriptionTypes\"][required]').each((index, eachComponent) => {\r\n\t\t\tif (!$(eachComponent).find(\"input:checked\").length) {\r\n\t\t\t\tValidationHelper.showInvalidInputsDialog();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar components = [\r\n\t\t\t$emailSubscriptionForm\r\n\t\t];\r\n\r\n\t\tSpinner.showSpinner($emailSubscriptionForm);\r\n\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tSpinner.removeSpinner($emailSubscriptionForm);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar accountData = AccountFormHelper.serializeCreateAccountFormOnly({\r\n\t\t\t\taccountFormId: $accountForm.attr(\"id\"),\r\n\t\t\t\tcreateAddressIfNotExists: true,\r\n\t\t\t\tshouldEncodePassed: false\r\n\t\t\t});\r\n\r\n\t\t\t// check to see if we were given a source code. We need to pass this in manually to handle the\r\n\t\t\t// scenario where 3rd party or all cookies are disabled and we're trying to process an email\r\n\t\t\t// subscription widget.\r\n\t\t\tvar sourceCode = HistoryHelper.getQueryObject().source;\r\n\r\n\t\t\t// Default account type like we do when creating accounts through the AccountApi.\r\n\t\t\taccountData.type = AccountApi.getAccountType(accountData);\r\n\t\t\taccountData.source = sourceCode;\r\n\r\n\t\t\t// Build list of email subscriptions to add based on components on the page.\r\n\t\t\tvar subscriptionTypesToProcess = [];\r\n\t\t\tvar defaultSubscriptionType = $emailSubscriptionForm.attr(\"data-default-email-subscription-type\");\r\n\t\t\tvar $multipleSubscriptionTypes = $emailSubscriptionForm.find(\"input[data-component='emailSubscriptionTypes.singleCheckbox.input']\");\r\n\r\n\t\t\tif ($multipleSubscriptionTypes.length) {\r\n\t\t\t\t$multipleSubscriptionTypes.each((index, eachItem) => {\r\n\t\t\t\t\tvar $eachItem = $(eachItem);\r\n\t\t\t\t\tif ($eachItem.is(\":checked\")) {\r\n\t\t\t\t\t\tsubscriptionTypesToProcess.push($eachItem.val());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else if (defaultSubscriptionType) {\r\n\t\t\t\tsubscriptionTypesToProcess.push(defaultSubscriptionType);\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(\"No default email subscription selected for this form, and no subscription type selector present.\");\r\n\t\t\t}\r\n\r\n\t\t\tif (subscriptionTypesToProcess.length) {\r\n\t\t\t\tEmailSubscriptionApi.submitEmailSubscriptionRequest({\r\n\t\t\t\t\taccount: accountData,\r\n\t\t\t\t\tsourceCode: sourceCode,\r\n\t\t\t\t\tsubscriptionTypes: subscriptionTypesToProcess\r\n\t\t\t\t}).done(() => {\r\n\t\t\t\t\tSubmitButtonHelper.performPostSubmitAction(`[data-component='emailSubscriptionForm'][id='${$emailSubscriptionForm.attr(\"id\")}']`);\r\n\t\t\t\t}).fail((err) => {\r\n\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\tBootstrapPrompt.alert(this.getEmailSubscriptionFormError());\r\n\t\t\t\t\t}\r\n\t\t\t\t}).always(() => Spinner.removeSpinner($emailSubscriptionForm));\r\n\t\t\t} else {\r\n\t\t\t\tSpinner.removeSpinner($emailSubscriptionForm);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tupdateSelectedCheckboxes: function ($selectedCheckbox, isChecked) {\r\n\t\tvar $currentComponent = $selectedCheckbox.closest('[data-component=\"emailSubscriptionTypes.singleCheckbox\"]');\r\n\t\tif (isChecked) {\r\n\t\t\t$currentComponent.addClass(\"selected\");\r\n\t\t\t$currentComponent.find(\"label\").addClass(\"selected\");\r\n\t\t} else {\r\n\t\t\t$currentComponent.removeClass(\"selected\");\r\n\t\t\t$currentComponent.find(\"label\").removeClass(\"selected\");\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, EmailSubscriptionStore.get(\"isDesignMode\"), isDesignModeMessage);\r\n\t}\r\n};\r\n\r\nmodule.exports = EmailSubscriptionActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EventSearchActions\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar EventSearchApi = require(\"../api/EventSearchApi\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar HistoryHelper = require(\"../shared/HistoryHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar QueryStringHelper = require(\"../shared/QueryStringHelper\");\r\n\r\nvar GridListToggleHelper = require(\"../designer/components/searchResults/GridListToggleHelper\");\r\n\r\nvar EventSearchActions = {\r\n\tchangeEventSearchType: function($selectorComponent) {\r\n\t\tvar $searchForm = $selectorComponent.closest(\"[data-component='eventSearchForm']\");\r\n\t\tvar $distanceSearch = $searchForm.find(\"[data-component='eventDistanceSearch']\");\r\n\t\tvar $stateSearch = $searchForm.find(\"[data-component='eventStateSearch']\");\r\n\r\n\t\tswitch ($selectorComponent.val()) {\r\n\t\t\tcase \"distanceSearch\":\r\n\t\t\t\t$stateSearch.hide();\r\n\t\t\t\t$distanceSearch.show();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"stateSearch\":\r\n\t\t\t\t$distanceSearch.hide();\r\n\t\t\t\t$stateSearch.show();\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeEventSearch: function (options) {\r\n\t\tDispatcher.dispatch(Object.assign({\r\n\t\t\tactionType: Constants.EVENT_SEARCH_INITIALIZE\r\n\t\t}, options));\r\n\r\n\t\tvar $searchForm = $(\"[data-component='eventSearchForm']\");\r\n\t\tvar $selector = $searchForm.find(\"[data-component='eventSearchTypeSelector']\");\r\n\t\tvar $wrapper = $searchForm.find(\"#event-search-types-wrapper\");\r\n\r\n\t\t// hide non selected component\r\n\t\t$wrapper.children().hide();\r\n\t\t$wrapper.children().first().show();\r\n\r\n\t\t// add event type selector listener\r\n\t\tif ($selector.length) {\r\n\t\t\t$selector.change((event) => {\r\n\t\t\t\tthis.changeEventSearchType($(event.target));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// add event form listener\r\n\t\tvar $form = $searchForm.find(\"form\");\r\n\t\t$form.off(\"submit.eventSearchForm\");\r\n\t\t$form.on(\"submit.eventSearchForm\", this._submitEventSearchForm.bind(this, options.isDesignMode));\r\n\r\n\t\tif (!options.isDesignMode) {\r\n\t\t\tthis.layoutName = options.layoutName;\r\n\r\n\t\t\t//This is used to let the HistoryHelper know when to add state or push state. If the id is the same as passed in last time, we replace the state.\r\n\t\t\t//\tEach time a new action occurs (search, paging, etc.), the state should be pushed.\r\n\t\t\twindow.lastUpdateId = 0;\r\n\t\t\t//Seeing if we have any criteria in the query string\r\n\t\t\tvar query = window.location.search;\r\n\t\t\tif (query) {\r\n\t\t\t\tquery = query.substring(1);\r\n\t\t\t\tvar currentQueryObject = QueryStringHelper.createObjectFromQueryString(query) || {};\r\n\t\t\t\t_.defer(() => {\r\n\t\t\t\t\tthis._updateSearchFormFields(currentQueryObject, $searchForm, (foundInput) => {\r\n\t\t\t\t\t\tif (foundInput) {\r\n\r\n\t\t\t\t\t\t\tvar $firstSearchForm = $searchForm.first();\r\n\r\n\t\t\t\t\t\t\tif (currentQueryObject.id) {\r\n\t\t\t\t\t\t\t\t// We're not currently supporting server-side event search so check for criteria\r\n\t\t\t\t\t\t\t\t// in the parameters and perform a search post-load.\r\n\t\t\t\t\t\t\t\tthis._performEventSearchFromSearchForm($firstSearchForm);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.initializeEventSearchResultsButton(options.isDesignMode);\r\n\t\t\tthis._initializeGridListToggle();\r\n\r\n\t\t\twindow.onpopstate = (event) => {\r\n\t\t\t\tthis._handlePopState(event);\r\n\t\t\t};\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeEventSearchResultsButton(isDesignMode, $component) {\r\n\t\tvar $eventResult = ($component || $(\"body\")).find(\"[data-component='eventSearchResults.event']\");\r\n\t\tvar $buttonElements = $eventResult.find(\"[data-component='eventSearchResults.button']\");\r\n\t\tif (!isDesignMode) {\r\n\t\t\t//For the search button\r\n\t\t\t$buttonElements.off(\"mousedown.initializeResultsButton\");\r\n\t\t\t$buttonElements.on(\"mousedown.initializeResultsButton\", (event) => {\r\n\t\t\t\tthis.mouseDownId = $(event.target).attr(\"id\");\r\n\t\t\t\tif (event && event.which === 2) {\r\n\t\t\t\t\t//Making it so middle click does not try to allow the user to scroll\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$buttonElements.off(\"mouseup.initializeResultsButton\");\r\n\t\t\t$buttonElements.on(\"mouseup.initializeResultsButton\", (event) => {\r\n\t\t\t\tvar $element = $(event.target);\r\n\t\t\t\tif (this.mouseDownId === $element.attr(\"id\")) {\r\n\t\t\t\t\tthis._navigateToTangible(false, event);\r\n\t\t\t\t}\r\n\t\t\t\tthis.mouseDownId = null;\r\n\t\t\t});\r\n\t\t\t$(\"body\").off(\"mouseup.initializeResultsButton\");\r\n\t\t\t$(\"body\").on(\"mouseup.initializeResultsButton\", () => {\r\n\t\t\t\tthis.mouseDownId = null;\r\n\t\t\t});\r\n\r\n\t\t\t//For text and image anchor links\r\n\t\t\tvar linkElements = $eventResult.find(\"[data-dynamic-href='register']\");\r\n\t\t\tlinkElements.off(\"click.initializeResultsButton\");\r\n\t\t\tlinkElements.on(\"click.initializeResultsButton\", (event) => {\r\n\t\t\t\tthis._navigateToTangible(false, event);\r\n\t\t\t\tif (event.which === 1) {\r\n\t\t\t\t\t//Only prevent default, etc. if left-clicking. Otherwise, let it do what it normally does, most likely open a new tab.\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$buttonElements.off(\"click.initializeResultsButton\");\r\n\t\t\t$buttonElements.on(\"click.initializeResultsButton\", (event) => {\r\n\t\t\t\tthis._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"register\"), isDesignMode);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tperformEventSearch: function (eventSearchResultsId, pageNumber, criteria, additionalOptions) {\r\n\t\tvar currentUpdateId = window.lastUpdateId + 1;\r\n\t\tadditionalOptions = additionalOptions || {};\r\n\t\tvar $eventSearchResultsComponents = $(\"[data-component='eventSearchResults']\");\r\n\t\tif (eventSearchResultsId) {\r\n\t\t\t$eventSearchResultsComponents = $eventSearchResultsComponents.filter(`#${eventSearchResultsId}`);\r\n\t\t}\r\n\t\t//If there is no criteria, we might be paging, make sure we have it so that the browser history and query strings are updated appropriately.\r\n\t\tcriteria = criteria || this._getCriteria($(\"[data-component='eventSearchForm']\").first());\r\n\r\n\t\t$eventSearchResultsComponents.each((index, eventSearchResultsComponent) => {\r\n\t\t\tvar $eventSearchResultsComponent = $(eventSearchResultsComponent);\r\n\t\t\teventSearchResultsId = $eventSearchResultsComponent.attr(\"id\");\r\n\t\t\tvar additionalSearchOptions = additionalOptions[eventSearchResultsId] || {};\r\n\t\t\tvar limit = $eventSearchResultsComponent.attr(\"data-limit\");\r\n\r\n\t\t\tvar offset = additionalSearchOptions.offset;\r\n\t\t\tif (!offset && pageNumber) {\r\n\t\t\t\toffset = limit * (pageNumber - 1);\r\n\t\t\t}\r\n\r\n\t\t\tvar gridOrListSelected = $eventSearchResultsComponent.attr(\"data-selected-results-view\");\r\n\r\n\t\t\tEventSearchApi.search(Object.assign({}, criteria, {\r\n\t\t\t\tid: $eventSearchResultsComponent.attr(\"id\"),\r\n\t\t\t\tlayoutName: this.layoutName,\r\n\t\t\t\tlimit,\r\n\t\t\t\toffset\r\n\t\t\t})).done((data) => {\r\n\t\t\t\t// Unmount existing react components on paging after the search so we do not get that disappearing React component issue.\r\n\t\t\t\t$eventSearchResultsComponent.find(\"[data-react-component-name]\").each((elementIndex, element) => {\r\n\t\t\t\t\tReactDOM.unmountComponentAtNode(element.parentElement);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//Set new eventSearchResultsComponent\r\n\t\t\t\tvar $data = $(data);\r\n\t\t\t\t$eventSearchResultsComponent.html($data);\r\n\r\n\t\t\t\tthis.initializeEventSearchResultsButton(/*isDesignMode*/false);\r\n\t\t\t\tthis._initializeGridListToggle(eventSearchResultsId, gridOrListSelected);\r\n\r\n\t\t\t\tif (!additionalOptions.doNotPushState) {\r\n\t\t\t\t\t//Saving History state if we need to do so\r\n\t\t\t\t\tvar searchObject = Object.assign({\r\n\t\t\t\t\t\tid: eventSearchResultsId\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (pageNumber) {\r\n\t\t\t\t\t\tsearchObject.offset = offset;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//We should clear the offset\r\n\t\t\t\t\t\t//\tUndefined won't work as those are removed before the Object.assign\r\n\t\t\t\t\t\t//\tWe specifically need null because in the Object.assign it will replace the old offset, and then null values are removed before creating the query string\r\n\t\t\t\t\t\tsearchObject.offset = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._updateHistoryStateAfterSearch(criteria, searchObject, currentUpdateId);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (eventSearchResultsId) {\r\n\t\t\t\t\t// Scroll to top of component which was paged\r\n\t\t\t\t\tvar $neweventSearchResultsComponent = $(`#${eventSearchResultsId}`);\r\n\t\t\t\t\tvar $window = $(window);\r\n\t\t\t\t\tvar top = $neweventSearchResultsComponent.offset().top;\r\n\t\t\t\t\tvar distanceToTop = top - $window.scrollTop();\r\n\t\t\t\t\tif (distanceToTop < 0 || distanceToTop > $window.height()) {\r\n\t\t\t\t\t\t$(\"html, body\").animate({ scrollTop: top }, 200);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\tif (jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.message === \"Partial Invalid\") {\r\n\t\t\t\t\tthis._resetSearch(criteria);\r\n\r\n\t\t\t\t\t//Since we didn't find the right eventSearchResults Id, let's go ahead and refresh the page, removing the id query string\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t_getCountry($searchForm) {\r\n\t\tvar $eventTypesWrapper = $searchForm.find(\"#event-search-types-wrapper\");\r\n\t\tvar $visibleSearchType = $eventTypesWrapper.children(\":visible\").first();\r\n\t\tvar $countrySelector = $visibleSearchType.find(\"[data-react-component-name='CountrySelector'] select\");\r\n\r\n\t\tif ($countrySelector.length) {\r\n\t\t\treturn $countrySelector.val();\r\n\t\t}\r\n\r\n\t\t// If there's no selector on the page, return the default from the wizard.\r\n\t\treturn window.EventSearchStore.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.EVENT_SEARCH,\r\n\t\t\tWizardConstants.EVENT_SEARCH_FIELDS.DEFAULT_COUNTRY\r\n\t\t);\r\n\t},\r\n\r\n\t_getCriteria($eventSearchForm) {\r\n\t\t// get event search type\r\n\t\tvar searchType = this._getEventSearchType($eventSearchForm);\r\n\t\tvar eventTypes = $eventSearchForm.attr(\"data-event-search-types\");\r\n\r\n\t\tvar country = this._getCountry($eventSearchForm);\r\n\t\tvar distance, postalCode, state;\r\n\t\tif (searchType === \"distance\") {\r\n\t\t\tdistance = $eventSearchForm.find(\"[data-component='select'] select[name='eventDistance']\").val();\r\n\t\t\tpostalCode = $eventSearchForm.find(\"[data-component='textInput'][data-code-type='postalCode'] input\").val();\r\n\t\t} else if (searchType === \"state\") {\r\n\t\t\tstate = $eventSearchForm.find(\"[data-react-component-name='StateSelector']\").find(\"select[name='address.state'], input[name='address.state']\").val();\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcountry,\r\n\t\t\tdistance,\r\n\t\t\teventTypes,\r\n\t\t\tpostalCode,\r\n\t\t\tsearchType,\r\n\t\t\tstate\r\n\t\t};\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage, isDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode != null ? isDesignMode : false, isDesignModeMessage, /*preventDefaultInDesignMode*/false); //coersion, because we want to check for null or undefined\r\n\t},\r\n\r\n\t_getEventSearchType($eventSearchForm) {\r\n\t\tvar $eventTypeSelector = $eventSearchForm.find(\"[data-component='eventSearchTypeSelector'] select\");\r\n\t\tif ($eventTypeSelector.length) {\r\n\t\t\treturn $eventTypeSelector.val().replace(\"Search\", \"\");\r\n\t\t}\r\n\r\n\t\tvar $visibleEventType = $eventSearchForm\r\n\t\t\t.find(\"[data-component='eventSearchTypes'] #event-search-types-wrapper\")\r\n\t\t\t.children(\":visible\")\r\n\t\t\t.first();\r\n\r\n\t\treturn $visibleEventType.attr(\"data-component\").replace(\"event\", \"\").replace(\"Search\", \"\").toLowerCase();\r\n\t},\r\n\r\n\t_handlePopState: function (event) {\r\n\t\tHistoryHelper.handlePopState(/*executeAction*/(currentQueryObject, additionalOptions) => {\r\n\t\t\t//Set input/selects correctly on eventSearchForm\r\n\t\t\tvar $eventSearchForm = $(\"[data-component='eventSearchForm']\");\r\n\t\t\tthis._updateSearchFormFields(currentQueryObject, $eventSearchForm);\r\n\r\n\t\t\t//Search (as if the search button was clicked, just find the first form)\r\n\t\t\tvar criteria = this._getCriteria($eventSearchForm);\r\n\t\t\tadditionalOptions.isInitialSearch = false;\r\n\r\n\t\t\tthis.performEventSearch(/*eventSearchResultsId*/null, /*pageNumber*/null, criteria, additionalOptions);\r\n\r\n\t\t}, /*shouldShortCircuit*/(currentQueryObject) => {\r\n\t\t\t//If there is no query string do not perform the event search\r\n\t\t\treturn Object.keys(currentQueryObject).length === 0;\r\n\t\t});\r\n\t},\r\n\r\n\t_initializeGridListToggle: function (id, previouslySelectedView) {\r\n\t\tGridListToggleHelper.initializeGridListToggle(id, previouslySelectedView, \"eventSearchResults\", \"grid-event-search-results-wrapper\", \"list-event-search-results-wrapper\");\r\n\t},\r\n\r\n\t_navigateToTangible: function (isDesignMode, event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"register\"), isDesignMode);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $element = $(event.target);\r\n\t\t//Make sure we have a button or anchor\r\n\t\tif (!$element.is(\"button\") && !$element.is(\"a\")) {\r\n\t\t\t$element = $element.closest(\"button,a\");\r\n\t\t}\r\n\r\n\t\tif (event.which === 1) {\r\n\t\t\twindow.location = $element.attr(\"data-url\") || $element.attr(\"href\");\r\n\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t} else if (event.which === 2) {\r\n\t\t\tif ($element.is(\"button\")) {\r\n\t\t\t\t//Middle-click, for buttons we need to manually open the new tab.\r\n\t\t\t\twindow.open($element.attr(\"data-url\") || $element.attr(\"href\"), \"_blank\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//For right-click or any other click we don't want to do anything ourselves; we just want to let the context menu appear like it normally does.\r\n\t},\r\n\r\n\t// *******************************************************************\r\n\t// This is the method called when we have the context of a form submit\r\n\t// * Not called when we have history/paging\r\n\t// *******************************************************************\r\n\t_performEventSearchFromSearchForm: function ($eventSearchForm) {\r\n\t\tvar criteria = this._getCriteria($eventSearchForm);\r\n\t\tthis.performEventSearch(/*eventSearchResultsId*/null, /*pageNumber*/null, criteria);\r\n\t},\r\n\r\n\t// ***********************************************************\r\n\t// This is the method that's called from the form submit click\r\n\t// ***********************************************************\r\n\t_submitEventSearchForm(isDesignMode, event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Event Search Form action called successfully.\", isDesignMode);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $eventSearchForm = $(event.target).closest(\"[data-component='eventSearchForm']\");\r\n\t\tthis._performEventSearchFromSearchForm($eventSearchForm);\r\n\t},\r\n\r\n\t_updateHistoryStateAfterSearch: function (criteria, newQueryObject, updateId) {\r\n\t\tHistoryHelper.updateHistoryStateAfterLoad(newQueryObject, updateId, /*afterCreateObjectLogic*/(currentQueryObject) => {\r\n\t\t\t// clear eventTypes as we pull this from attributes and don't want to show/save it.\r\n\t\t\tcriteria.eventTypes = null;\r\n\r\n\t\t\tif (criteria && Object.keys(criteria)) {\r\n\t\t\t\tObject.assign(currentQueryObject, ApiHelper.deleteUndefinedValues(criteria));\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_updateSearchFormFields: function (currentQueryObject, $eventSearchFormComponents, callback) {\r\n\t\tvar foundInput = false;\r\n\r\n\t\t//Reset values\r\n\t\t$eventSearchFormComponents.find(\"input\").prop(\"checked\", false);\r\n\t\t$eventSearchFormComponents.find(\"input[type='text']\").val(\"\");\r\n\t\t$eventSearchFormComponents.find(\"select\").val(\"\");\r\n\r\n\t\tvar searchType = currentQueryObject.searchType;\r\n\t\tif (searchType) {\r\n\t\t\t$eventSearchFormComponents\r\n\t\t\t\t.find(\"[data-component='eventSearchTypeSelector'] select\")\r\n\t\t\t\t.val(`${searchType}Search`)\r\n\t\t\t\t.change();\r\n\t\t}\r\n\r\n\t\t//Populating criteria input/select fields\r\n\t\tObject.keys(currentQueryObject).forEach(key => {\r\n\t\t\tif (!key) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar value = currentQueryObject[key];\r\n\t\t\tswitch (key) {\r\n\t\t\t\tcase \"country\":\r\n\t\t\t\t\twindow.AccountActions.setSelectedCountry($eventSearchFormComponents.attr(\"id\"), value);\r\n\t\t\t\t\tfoundInput = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"distance\":\r\n\t\t\t\t\t$eventSearchFormComponents.find(\"select[name='eventDistance']\").val(value);\r\n\t\t\t\t\tfoundInput = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"postalCode\":\r\n\t\t\t\t\t$eventSearchFormComponents.find(\"input[name='postalCode']\").val(value);\r\n\t\t\t\t\tfoundInput = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"state\":\r\n\t\t\t\t\twindow.AccountActions.setSelectedState($eventSearchFormComponents.attr(\"id\"), value);\r\n\t\t\t\t\tfoundInput = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"id\":\r\n\t\t\t\tcase \"offset\":\r\n\t\t\t\tcase \"limit\":\r\n\t\t\t\t\t// while these are search criteria, there are no inputs for them, so it's a no-op\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"searchType\":\r\n\t\t\t\t\t// We are handling this first so that the correct inputs are shown for the search type.\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no-op, no match so set foundInput = false;\r\n\t\t\t\t\tfoundInput = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (_.isFunction(callback)) {\r\n\t\t\tcallback(foundInput);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = EventSearchActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ExpanderActions\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ExpanderStore = require(\"../stores/ExpanderStore\");\r\n\r\nvar ExpanderActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.EXPANDER_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\ttoggle: function ($target, options) {\r\n\t\toptions = options || {};\r\n\t\t// Allow multiple expanders to be open at the same time.\r\n\t\tvar $expander = $target.parent();\r\n\t\tvar $content = $expander.find(\"[data-component='expanderContainer.expander.content']\").first();\r\n\r\n\t\tswitch (options.action) {\r\n\t\t\tcase \"expand\":\r\n\t\t\t\t$target.removeClass(\"collapsed\");\r\n\t\t\t\t$content.addClass(\"in\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"collapse\":\r\n\t\t\t\t$target.addClass(\"collapsed\");\r\n\t\t\t\t$content.removeClass(\"in\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"toggle\":\r\n\t\t\t\t$target.toggleClass(\"collapsed\");\r\n\t\t\t\t$content.toggleClass(\"in\");\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t},\r\n\r\n\ttoggleExpander: function (event) {\r\n\t\tevent = event || windows.event;\r\n\t\tif (!event || !event.target || event.type !== \"click\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar isDesigner = ExpanderStore.get(\"isDesignMode\");\r\n\t\tif (isDesigner && event.type === \"click\" && (!event.ctrlKey && !event.metaKey)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (!isDesigner) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\r\n\t\tvar $target,\r\n\t\t\t$expanderComponent;\r\n\r\n\t\t$target = $(event.target);\r\n\t\t$expanderComponent = $target.closest(\"[data-component='expanderContainer']\");\r\n\r\n\t\tif (!$expanderComponent.is(\"[data-accordion]\")) {\r\n\t\t\tthis.toggle($target, { action: \"toggle\" });\r\n\t\t} else {\r\n\t\t\t// Only one expander can be open at a time so close them all first\r\n\t\t\t$expanderComponent.find(\"[data-component='expanderContainer.expander'] > label\").each((index, element) => {\r\n\t\t\t\tif (element !== $target[0]) {\r\n\t\t\t\t\tthis.toggle($(element), { action: \"collapse\" });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t// Expand the selected expander\r\n\t\t\tthis.toggle($target, { action: \"expand\" });\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n};\r\n\r\nmodule.exports = ExpanderActions;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"LogoutActions\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar LogoutApi = require(\"../api/LogoutApi\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar LogoutStore = require(\"../stores/LogoutStore\");\r\n\r\nvar LogoutActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.LOGOUT_INITIALIZE,\r\n\t\t\toptions: options\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeLogout: function ($component, isDesignMode) {\r\n\t\tvar logoutComponent = $component || $('[data-component=\"logout\"]');\r\n\t\tif (logoutComponent.length) {\r\n\t\t\tlogoutComponent.find(\"a\").click((event) => {\r\n\t\t\t\tthis.logout(event, isDesignMode);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tlogout: function (event, isDesignMode) {\r\n\t\tevent = ActionsHelper.getEventOrReturn(event, isDesignMode, \"Logout action called successfully\", /* preventDefaultInDesignMode */ false);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tLogoutApi.logout()\r\n\t\t\t.done(() => {\r\n\t\t\t\t// if there are any OPCO coupons stored, clear them out\r\n\t\t\t\tObject.keys(sessionStorage).forEach((key) => {\r\n\t\t\t\t\tif (key.indexOf(\"currentCoupon_\") === 0) {\r\n\t\t\t\t\t\tsessionStorage.removeItem(key);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\twindow.location.reload(/* serverRefresh */ true);\r\n\t\t\t}).fail(err => {\r\n\t\t\t\tLoggerInstance.error(err);\r\n\t\t\t\tBootstrapPrompt.alert(LogoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.LOGIN_MESSAGES,\r\n\t\t\t\t\tWizardConstants.LOGIN_MESSAGE_FIELDS.LOGOUT_ERROR\r\n\t\t\t\t));\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = LogoutActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"NavigationActions\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar NavigationStore = require(\"../stores/NavigationStore\");\r\n\r\nvar deviceWidths = Constants.DEVICE_MIN_WIDTHS;\r\n\r\nvar NavigationActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.NAVIGATION_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\ttoggleSelected: function (event) {\r\n\t\tvar handledEvent = false;\r\n\r\n\t\ttry {\r\n\t\t\tif (!event || !event.target) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $target = $(event.target);\r\n\t\t\tvar componentName = $target.attr(\"data-component\");\r\n\t\t\tvar isDesignMode = NavigationStore.get(\"isDesignMode\");\r\n\t\t\tvar isPrimaryNavigation = $target.parents(\"[data-component='primaryNavigation']\").length > 0;\r\n\t\t\tvar unselect = ($selectedElements) => {\r\n\t\t\t\tif (!$selectedElements || $selectedElements.length <= 0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$selectedElements.each((index, element) => {\r\n\t\t\t\t\tvar $navigationItem = $(element).closest(\"[data-component='navigationItem']\");\r\n\r\n\t\t\t\t\tif ($navigationItem[0] !== $target[0] && $navigationItem.find($target).length <= 0) {\r\n\t\t\t\t\t\t$navigationItem.find(\".selected\").addBack().removeClass(\"selected\");\r\n\t\t\t\t\t\t$navigationItem.find(\"ul.expanded\").addBack(\"ul\").removeClass(\"expanded\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\t/*\r\n\t\t\t\tWe never want the mouseover/out logic to run in the LD and SG as it should only be executed on published layouts.\r\n\t\t\t\tThe LD & SG should always use the click logic. This is also reflected in navigation CSS in site.css\r\n\t\t\t*/\r\n\t\t\tswitch (event.type) {\r\n\t\t\t\tcase \"mouseover\":\r\n\t\t\t\t\tif (!isDesignMode && isPrimaryNavigation && window.innerWidth >= deviceWidths.DESKTOP) {\r\n\t\t\t\t\t\tunselect($(\"nav .selected\"));\r\n\t\t\t\t\t\tif (componentName === \"navigationItem\") {\r\n\t\t\t\t\t\t\t$target.addClass(\"selected\");\r\n\t\t\t\t\t\t} else if (componentName === \"navigationItem.label\" || componentName === \"navigationItem.menu\") {\r\n\t\t\t\t\t\t\t$target.addClass(\"selected\");\r\n\t\t\t\t\t\t\t$target.parents(\"[data-component='navigationItem']\").first().addClass(\"selected\");\r\n\t\t\t\t\t\t\tif (componentName === \"navigationItem.label\") {\r\n\t\t\t\t\t\t\t\t$target.parents(\"[data-component='navigationItem.menu']\").first().addClass(\"selected\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thandledEvent = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"mouseout\":\r\n\t\t\t\t\tif (!isDesignMode && isPrimaryNavigation && window.innerWidth >= deviceWidths.DESKTOP) {\r\n\t\t\t\t\t\t$target.removeClass(\"selected\");\r\n\t\t\t\t\t\thandledEvent = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"click\":\r\n\t\t\t\t\tvar $navigationItem;\r\n\r\n\t\t\t\t\tif (isDesignMode && (!event.ctrlKey && !event.metaKey)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (isDesignMode || !isPrimaryNavigation || window.innerWidth < deviceWidths.DESKTOP) {\r\n\t\t\t\t\t\thandledEvent = true;\r\n\t\t\t\t\t\tif (isPrimaryNavigation) {\r\n\t\t\t\t\t\t\tunselect($(\"nav .selected, nav ul.expanded\"));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tunselect($(\"div[role='navigation'] .selected, div[role='navigation'] ul.expanded\"));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (componentName === \"primaryNavigation.label\") {\r\n\t\t\t\t\t\t\t$target.siblings(\"ul\").first().toggleClass(\"expanded\");\r\n\t\t\t\t\t\t} else if (componentName === \"navigationItem\") {\r\n\t\t\t\t\t\t\t$target.toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t$target.children(\"ul\").first().toggleClass(\"expanded\");\r\n\t\t\t\t\t\t} else if (componentName === \"navigationItem.label\" || componentName === \"navigationItem.menu\") {\r\n\t\t\t\t\t\t\t$navigationItem = $target.parents(\"[data-component='navigationItem']\").first();\r\n\t\t\t\t\t\t\t$target.toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t$navigationItem.toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t$navigationItem.children(\"ul\").first().toggleClass(\"expanded\");\r\n\t\t\t\t\t\t\tif (componentName === \"navigationItem.label\") {\r\n\t\t\t\t\t\t\t\t$target.parents(\"[data-component='navigationItem.menu']\").first().toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (!componentName && $target[0].tagName === \"A\") {\r\n\t\t\t\t\t\t\t$target.parent(\"[data-component='navigationItem.label']\").toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t$target.parents(\"[data-component='navigationItem.menu']\").first().toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t$navigationItem = $target.parents(\"[data-component='navigationItem']\").first();\r\n\t\t\t\t\t\t\t$navigationItem.toggleClass(\"selected\");\r\n\t\t\t\t\t\t\t$navigationItem.children(\"ul\").first().toggleClass(\"expanded\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!isDesignMode) {\r\n\t\t\t\t\t\t\t// We still want the event to perform its default action, just not propagate the action up the DOM\r\n\t\t\t\t\t\t\thandledEvent = false;\r\n\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\tif (handledEvent) {\r\n\t\t\t\t// Legacy preventDefault\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n\r\n\ttoggleHamburger: function (event) {\r\n\t\tif (!event || !event.target || (NavigationStore.get(\"isDesignMode\") && !event.ctrlKey && !event.metaKey)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$(event.target).closest(\"[data-component='primaryNavigation.mobile']\").toggleClass(\"expanded\");\r\n\t\treturn this.toggleSelected(event);\r\n\t},\r\n\r\n\tnoMobileLink: function (event) {\r\n\t\tif (!event || event.type !== \"click\" || (NavigationStore.get(\"isDesignMode\") && !event.ctrlKey && !event.metaKey)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (window.innerWidth < deviceWidths.DESKTOP) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n};\r\n\r\nmodule.exports = NavigationActions;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"PledgeActions\");\r\n\r\nvar PledgeStatementHelper = require(\"../accountComponents/PledgeStatementHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar CheckoutApi = require(\"../checkoutComponents/CheckoutApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ProjectConstants = require(\"../projectComponents/ProjectConstants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar PledgeStore = require(\"../stores/PledgeStore\");\r\nvar ProjectActions = require(\"../projectComponents/ProjectActions\");\r\n\r\nvar PledgeActions = {\r\n\tinitializeStore: function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PLEDGE_INITIALIZE,\r\n\t\t\toptions: options\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function(event) {\r\n\t\t\tvar pledge = PledgeStore.get(\"pledge\");\r\n\t\t\tvar pledgeCode = pledge && pledge.PledgeCode;\r\n\t\t\tvar isSecure = PledgeStore.getIsSecure();\r\n\r\n\t\t\tif (isSecure) {\r\n\t\t\t\tpledgeCode = \"secure-pledge\"\r\n\t\t\t}\r\n\r\n\t\t\tvar pledgeCacheKey = isSecure ? pledgeCode : `pledge-${pledgeCode}`;\r\n\r\n\t\t\tif ((pledge && Object.keys(pledge).length) || isSecure) {\r\n\t\t\t\tvar cachedValues = JSON.parse(sessionStorage.getItem(pledgeCacheKey));\r\n\t\t\t\tif (cachedValues) {\r\n\t\t\t\t\tsessionStorage.removeItem(pledgeCacheKey);\r\n\r\n\t\t\t\t\tif (cachedValues.startDate) {\r\n\t\t\t\t\t\t$(\"[data-component='recurringStartDateDropdown.selector']\")\r\n\t\t\t\t\t\t\t.filter((index, item) => $(item).closest(\"[data-component='searchResults'],[data-component='category']\").length === 0)\r\n\t\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t\t.val(cachedValues.startDate);\r\n\r\n\t\t\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\t\t\tactionType: ProjectConstants.SET_RECURRING_START_DATE,\r\n\t\t\t\t\t\t\tselectedStartDate: cachedValues.startDate\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tProjectActions._updateIsChargeTodayInCheckoutStore();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.isCreateRecurringChecked) {\r\n\t\t\t\t\t\t$(\"[data-component='createRecurring.input']\")\r\n\t\t\t\t\t\t\t.prop('checked', true);\r\n\t\t\t\t\t\tPledgeActions.showRecurringUseOnDay(/*event*/null, $(\"[data-component='createRecurring.input']\"));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.isRecurringUpsell) {\r\n\t\t\t\t\t\t_.defer(() => {\r\n\t\t\t\t\t\t\tProjectActions.setUpsell(true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.isDonateTodayChecked) {\r\n\t\t\t\t\t\t$(\"[data-component='donateToday.input']\")\r\n\t\t\t\t\t\t\t.prop('checked', true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.secureMatchingText) {\r\n\t\t\t\t\t\t$(\"[data-component='textInput'] input[name='secureInput']\")\r\n\t\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t\t.val(cachedValues.secureMatchingText);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(window).off(\"unload.cachePledgeValues\");\r\n\t\t\t\t$(window).on(\"unload.cachePledgeValues\", (event) => {\r\n\t\t\t\t\tif (window.CHECKOUT_COMPLETED || !pledgeCode) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isOtherSelected = $(\".giftAmount.selected\")\r\n\t\t\t\t\t\t.filter((i, item) => $(item).closest(\"[data-component='searchResults'],[data-component='category']\").length === 0)\r\n\t\t\t\t\t\t.hasClass(\"giftAmountOther\");\r\n\t\t\t\t\tvar isCreateRecurringChecked = $(\"[data-component='createRecurring.input']\")\r\n\t\t\t\t\t\t.prop(\"checked\");\r\n\t\t\t\t\tvar secureMatchingText = $(\"[data-component='textInput'] input[name='secureInput']\")\r\n\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t.val();\r\n\t\t\t\t\tvar isRecurringUpsell = $(\"input#recurringUpsellCheckbox\")\r\n\t\t\t\t\t\t.prop(\"checked\");\r\n\t\t\t\t\tvar isDonateTodayChecked = $(`[data-component=\"donateToday.input\"]`)\r\n\t\t\t\t\t\t.prop(\"checked\");\r\n\r\n\t\t\t\t\tvar pledgeInformation = PledgeStore.getPledgeInformation({tangibleType: \"Pledge\", tangibleCode: pledgeCode});\r\n\t\t\t\t\tvar pledgeCache = {\r\n\t\t\t\t\t\tamount: pledgeInformation.amount,\r\n\t\t\t\t\t\tfrequency: pledgeInformation.frequency,\r\n\t\t\t\t\t\tpledge: pledgeInformation.pledge,\r\n\t\t\t\t\t\tpledgeId: pledgeInformation.pledgeId,\r\n\t\t\t\t\t\tprojectCode: pledgeInformation.projectCode,\r\n\t\t\t\t\t\tupsell: pledgeInformation.upsell,\r\n\t\t\t\t\t\tuseOnDay: pledgeInformation.useOnDay,\r\n\t\t\t\t\t\tstartDate: pledgeInformation.startDate,\r\n\t\t\t\t\t\tisOtherSelected,\r\n\t\t\t\t\t\tisCreateRecurringChecked,\r\n\t\t\t\t\t\tisDonateTodayChecked,\r\n\t\t\t\t\t\tisRecurringUpsell,\r\n\t\t\t\t\t\tsecureMatchingText\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsessionStorage.setItem(pledgeCacheKey, JSON.stringify(pledgeCache));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// initialize onChange for donateToday\r\n\t\t$(`[data-component=\"donateToday\"]`).on(\"change.donateToday\", (event) => {\r\n\t\t\tthis.handleDonateTodayChanged(event);\r\n\t\t});\r\n\t},\r\n\r\n\tshowSponsorshipNotAvailableMessage: function () {\r\n\t\t//The sponsorship is not available, so show the alert\r\n\t\tif (!PledgeStore.get(\"isSponsorshipAvailable\")) {\r\n\t\t\tBootstrapPrompt.alert(PledgeStore.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.SPONSORSHIP_DISPLAY_MESSAGES,\r\n\t\t\t\tWizardConstants.SPONSORSHIP_DISPLAY_MESSAGES_FIELDS.SPONSORSHIP_NOT_AVAILABLE\r\n\t\t\t));\r\n\t\t}\r\n\t},\r\n\r\n\tsetSponsorshipAvailablity: function (isSponsorshipAvailable) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.SPONSORSHIP_AVAILABLITY,\r\n\t\t\tisSponsorshipAvailable\r\n\t\t});\r\n\t},\r\n\r\n\tsetGiftAmount: function (selectedAmount, tangibleCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PLEDGE_SET_GIFT_AMOUNT,\r\n\t\t\tcontext,\r\n\t\t\tselectedAmount,\r\n\t\t\ttangibleCode\r\n\t\t});\r\n\t},\r\n\r\n\tsetMinimumAmount: function(minimumAmount, tangibleCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PLEDGE_SET_MINIMUM_AMOUNT,\r\n\t\t\tminimumAmount,\r\n\t\t\ttangibleCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\t},\r\n\r\n\tsetFrequency: function (selectedFrequency, pledgeCode, projectCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PLEDGE_SET_FREQUENCY,\r\n\t\t\tselectedFrequency,\r\n\t\t\ttangibleCode: pledgeCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\t// Trigger an update in the project store so that the use on day and recurring upsell respond appropriately.\r\n\t\tvar pledgeProjectOptions = {\r\n\t\t\tactionType: ProjectConstants.SET_DONATION_FREQUENCY,\r\n\t\t\tselectedFrequency,\r\n\t\t\tcontext\r\n\t\t};\r\n\r\n\t\tif (context) {\r\n\t\t\tpledgeProjectOptions = Object.assign(pledgeProjectOptions, {\r\n\t\t\t\ttangibleCode: projectCode,\r\n\t\t\t\tpledgeCode: pledgeCode\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this._projectDispatcher) {\r\n\t\t\tthis._projectDispatcher.dispatch(pledgeProjectOptions);\r\n\t\t} else {\r\n\t\t\tLoggerInstance.error(\"Project Dispatcher not set.\");\r\n\t\t}\r\n\r\n\t\tthis.triggerTotalChangedHandler();\r\n\t},\r\n\r\n\tgetShoppingCartData: function (cartDataOptions) {\r\n\t\tcartDataOptions = cartDataOptions || {};\r\n\r\n\t\tvar {pledge, pledgeId, projectCode, amount, frequency, useOnDay, upsell, startDate} = PledgeStore.getPledgeInformation(cartDataOptions);\r\n\t\tvar isRecurring = ($(\"[data-component='createRecurring.input']\").prop(\"checked\") && frequency !== \"O\") || PledgeStore.getRequireRecurring();\r\n\t\tvar donateTodaySelected = $(\"[data-component='donateToday.input']\").prop(\"checked\") || PledgeStore.getRequireDonation();\r\n\r\n\t\t// Adding frequency check because we're now hiding the recurring section if frequency is one-time\r\n\t\t// but not unsetting values in the stores.\r\n\t\treturn {\r\n\t\t\tpledges: [{\r\n\t\t\t\tamount,\r\n\t\t\t\tdonateTodaySelected,\r\n\t\t\t\tfrequency,\r\n\t\t\t\tisRecurring: isRecurring,\r\n\t\t\t\tpledge,\r\n\t\t\t\tpledgeId,\r\n\t\t\t\tprojectCode,\r\n\t\t\t\tupsell: frequency !== \"O\" && upsell,\r\n\t\t\t\tuseOnDay,\r\n\t\t\t\tstartDate\r\n\t\t\t}]\r\n\t\t};\r\n\t},\r\n\r\n\tshowRecurringUseOnDay: function(event, $createRecurringCheckbox) {\r\n\t\tif (PledgeStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $checkbox = $createRecurringCheckbox || (event && $(event.target));\r\n\t\tvar isChecked = $checkbox.prop(\"checked\");\r\n\t\tvar $wrapper = $checkbox.parent(\"[data-component='createRecurring']\").find(\".create-recurring-use-on-date\");\r\n\r\n\t\tif (isChecked) {\r\n\t\t\t$wrapper.show();\r\n\t\t} else {\r\n\t\t\t$wrapper.hide();\r\n\t\t}\r\n\r\n\t\tthis.triggerTotalChangedHandler();\r\n\t\treturn false;\r\n\t},\r\n\r\n\thandleDonateTodayChanged: function (event) {\r\n\t\tif (PledgeStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.triggerTotalChangedHandler();\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCachedValues() {\r\n\t\tvar pledge = PledgeStore.get(\"pledge\");\r\n\t\tvar pledgeCode = pledge && pledge.PledgeCode;\r\n\r\n\t\tvar isSecure = PledgeStore.getIsSecure();\r\n\r\n\t\tvar pledgeCacheKey = isSecure ? \"secure-pledge\" : `pledge-${pledgeCode}`;\r\n\t\tvar cachedData;\r\n\t\tif (pledge || isSecure) {\r\n\t\t\tcachedData = JSON.parse(sessionStorage.getItem(pledgeCacheKey));\r\n\t\t}\r\n\r\n\t\treturn cachedData || { };\r\n\t},\r\n\r\n\taddToCart: function (event, context, tangibleCode, successCallback) {\r\n\t\tif (!ActionsHelper.getEventOrReturn(event, PledgeStore.get(\"isDesignMode\"), \"Add To Cart called successfully.\", false)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar isInPledgeStatementSession = PledgeStore.get(\"isInPledgeStatementSession\");\r\n\t\tvar pledgeStatementEntryWizard = PledgeStore.get(WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY);\r\n\r\n\t\tPledgeStatementHelper.confirmAbandonPledgeStatementSession(isInPledgeStatementSession, pledgeStatementEntryWizard).done(() => {\r\n\t\t\ttry {\r\n\t\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\t\tvar components = [];\r\n\t\t\t\tif (context) {\r\n\t\t\t\t\tvar $parent = $(event.target).closest(\"[data-component='searchResults.pledge'],[data-component='category.pledge'],[data-component='carousel.pledge']\");\r\n\t\t\t\t\tcomponents = [$parent.find(\"[data-has-custom-validator='true']\")];\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//Validate any array that is not within a searchResults, category, or carousel component\r\n\t\t\t\t\t//The GiftArray will always be on the page, so we do not need to consider gift amount.\r\n\t\t\t\t\tvar componentsToAdd = \"[data-react-component-name='PledgeButtonGiftArray'],[data-react-component-name='PledgeRadioGiftArray'],[data-react-component-name='PledgeSelectGiftArray']\";\r\n\r\n\t\t\t\t\tvar $elements = $(componentsToAdd).filter((index, element) => {\r\n\t\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\t\treturn $element.parents().length == $element.parents().not(\"[data-component='searchResults.pledge'],[data-component='category.pledge'],[data-component='carousel.pledge']\").length;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tcomponents = [$elements];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\t\tif (!isValid) {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar shoppingCartData = PledgeActions.getShoppingCartData({ context, tangibleCode });\r\n\t\t\t\t\tCheckoutApi.addToCart(shoppingCartData).done((addToCartResponse) => {\r\n\t\t\t\t\t\tLoggerInstance.debug(addToCartResponse);\r\n\r\n\t\t\t\t\t\tif (addToCartResponse.success) {\r\n\t\t\t\t\t\t\tif (typeof successCallback === \"function\") {\r\n\t\t\t\t\t\t\t\tsuccessCallback();\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// See CartsController, we're determining server-side if we need to\r\n\t\t\t\t\t\t\t\t// navigate to the cart or not as the logic depends on several variables,\r\n\t\t\t\t\t\t\t\t// including logged-in state.\r\n\t\t\t\t\t\t\t\t// Note that adding a pledge to the cart is not currently supported; if\r\n\t\t\t\t\t\t\t\t// support is added in the future, however, consideration will need to be\r\n\t\t\t\t\t\t\t\t// given to the confirmation page override feature\r\n\t\t\t\t\t\t\t\tif (addToCartResponse.message === \"orderconfirmation\") {\r\n\t\t\t\t\t\t\t\t\twindow.location = \"/orderconfirmation\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (addToCartResponse.message) {\r\n\t\t\t\t\t\t\t//This should be a constituent-safe message\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(addToCartResponse.message);\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(PledgeStore.getWizardValue(\r\n\t\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t{ tangibleType: \"pledge\" }\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).fail(() => {\r\n\t\t\t\t\t\tBootstrapPrompt.alert(PledgeStore.getWizardValue(\r\n\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t{ tangibleType: \"pledge\" }\r\n\t\t\t\t\t\t));\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} catch (exception) {\r\n\t\t\t\tLoggerInstance.error(exception);\r\n\t\t\t} finally {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * This method is called by checkout store to determine if we should be updating payment information.\r\n\t */\r\n\tshouldHidePaymentInformation: function () {\r\n\t\tvar { upsell, frequency } = PledgeStore.getPledgeInformation();\r\n\t\tvar isRecurring = ($(\"[data-component='createRecurring.input']\").prop(\"checked\") && frequency !== \"O\") || PledgeStore.getRequireRecurring();\r\n\t\tvar donateTodaySelected = $(\"[data-component='donateToday.input']\").prop(\"checked\") || PledgeStore.getRequireDonation();\r\n\r\n\t\treturn {\r\n\t\t\thideOneTimeOnlyPayments: isRecurring,\r\n\t\t\thideAllPayments: !isRecurring && !donateTodaySelected && !upsell\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * This method is called when checkout store initializes. It provides a callback method to be used when\r\n\t * this tangible's concept of a total amount has changed. This will let checkout store determine if\r\n\t * payment information should be hidden - in conjunction with shouldHidePaymentInformation().\r\n\t * @param handleTotalChange the callback method to trigger a total amount update.\r\n\t */\r\n\tsetChangeHandlerMethod: function (handleTotalChange) {\r\n\t\tthis._handleTotalChange = handleTotalChange;\r\n\t},\r\n\r\n\ttriggerTotalChangedHandler: function () {\r\n\t\tif (_.isFunction(this._handleTotalChange)) {\r\n\t\t\tthis._handleTotalChange();\r\n\t\t}\r\n\t},\r\n\r\n\tsetIsSecure: function(isSecure) {\r\n\t\tPledgeStore.setIsSecure(isSecure);\r\n\t},\r\n\r\n\tsetProjectDispatcher: function (projectDispatcher) {\r\n\t\tthis._projectDispatcher = projectDispatcher;\r\n\t},\r\n\r\n\tgetIsSecure: function () {\r\n\t\treturn PledgeStore.get(\"isSecure\");\r\n\t},\r\n\r\n\tsetIsSecure: function (isSecure) {\r\n\t\tPledgeStore.setIsSecure(isSecure);\r\n\t},\r\n\r\n\tsetSecurePledgesWizard: function (securePledgesWizard) {\r\n\t\tsecurePledgesWizard = securePledgesWizard || {};\r\n\t\tPledgeStore.setSecurePledgesWizard(securePledgesWizard);\r\n\t},\r\n};\r\n\r\nmodule.exports = PledgeActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ProductActions\");\r\n\r\nvar PledgeStatementHelper = require(\"../accountComponents/PledgeStatementHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar CheckoutApi = require(\"../checkoutComponents/CheckoutApi\");\r\n\r\nvar SuggestedDonationHelper = require(\"../commonComponents/SuggestedDonationHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar ProductStore = require(\"../stores/ProductStore\");\r\n\r\nvar ProductActions = {\r\n\tsetQuantity: function (selectedQuantity, tangibleCode, context, isInitialization) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PRODUCT_SET_QUANTITY,\r\n\t\t\tselectedQuantity,\r\n\t\t\ttangibleCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\t// Call into window.CheckoutActions to re-apply the coupon to the current\r\n\t\t// product information. If window.CheckoutActions does not exists, we are\r\n\t\t// probably in a context where it has not been initialized, like a carousel\r\n\t\t// on a non-checkout-related page.\r\n\t\tif (window.CheckoutActions) {\r\n\t\t\twindow.CheckoutActions.reapplyOnePageCoupon(isInitialization);\r\n\t\t}\r\n\t},\r\n\r\n\taddToCart: function (event, context, tangibleCode, successCallback) {\r\n\t\tevent = ProductActions._getEventOrReturn(event, \"Add To Cart called successfully.\", /*preventDefaultInDesignMode*/false);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar isInPledgeStatementSession = ProductStore.get(\"isInPledgeStatementSession\");\r\n\t\tvar pledgeStatementEntryWizard = ProductStore.get(WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY);\r\n\r\n\t\tPledgeStatementHelper.confirmAbandonPledgeStatementSession(isInPledgeStatementSession, pledgeStatementEntryWizard).done(() => {\r\n\t\t\ttry {\r\n\r\n\t\t\t\t// Get context + Id to determine the component to validate\r\n\t\t\t\tvar $suggestedDonationComponent;\r\n\t\t\t\tif (context && context.indexOf(\"_\") !== -1) {\r\n\t\t\t\t\tvar contextType = context.split(\"_\")[0];\r\n\r\n\t\t\t\t\tif (contextType === \"search\") {\r\n\t\t\t\t\t\t$suggestedDonationComponent = $(event.target)\r\n\t\t\t\t\t\t\t.closest(\"[data-component='searchResults.product']\")\r\n\t\t\t\t\t\t\t.find(\"[data-component='suggestedDonationAmount']\");\r\n\t\t\t\t\t} else if (contextType === \"category\" || contextType === \"carousel\") {\r\n\t\t\t\t\t\t$suggestedDonationComponent = $(event.target)\r\n\t\t\t\t\t\t\t.closest(\"[data-component='category.product'],[data-component='carousel.product']\")\r\n\t\t\t\t\t\t\t.find(\"[data-component='suggestedDonationAmount']\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$suggestedDonationComponent = $(\"[data-component='suggestedDonationAmount']\");\r\n\r\n\t\t\t\t\t//Make sure we do not get suggested donation inputs that are underneath category, carousel, or searchResults.\r\n\t\t\t\t\t$suggestedDonationComponent = $suggestedDonationComponent.filter((index, element) => {\r\n\t\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\t\treturn !$element.parents(\"[data-component='category.product'],[data-component='carousel.product'],[data-component='searchResults.product']\").length;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Validate the form, ValidationHelper handles alerting if validation fails.\r\n\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\tValidationHelper.validate({\r\n\t\t\t\t\tcomponents: [$suggestedDonationComponent]\r\n\t\t\t\t}).always(isValid => {\r\n\t\t\t\t\tif (!isValid) {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar shoppingCartData = ProductActions.getShoppingCartData({ context, tangibleCode });\r\n\t\t\t\t\tCheckoutApi.addToCart(shoppingCartData).then((addToCartResponse, textStatus, jqXHR) => {\r\n\t\t\t\t\t\tif (addToCartResponse.success) {\r\n\t\t\t\t\t\t\tLoggerInstance.debug(addToCartResponse);\r\n\r\n\t\t\t\t\t\t\tif (typeof successCallback === \"function\") {\r\n\t\t\t\t\t\t\t\tsuccessCallback();\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar errorMessage = ProductStore.getWizardValue(\r\n\t\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t{ tangibleType: \"product\" }\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} catch (exception) {\r\n\t\t\t\tLoggerInstance.error(exception);\r\n\t\t\t} finally {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tgetShoppingCartData: function (cartDataOptions) {\r\n\t\tcartDataOptions = cartDataOptions || {};\r\n\r\n\t\tvar orderInformation = ProductStore.getOrderInformation(cartDataOptions);\r\n\t\tvar { product, isShippable, quantity, suggestedDonation, warehouse } = orderInformation;\r\n\r\n\t\tvar defaultSuggestedDonation = ProductStore.get(\"suggestedDonationAmount\");\r\n\t\tvar userEnteredSuggestedDonation = suggestedDonation && (+defaultSuggestedDonation !== +suggestedDonation);\r\n\r\n\t\t// Adding cartItems to SE shopping cart\r\n\t\tvar cartItems = {\r\n\t\t\tproducts: [{\r\n\t\t\t\tproduct,\r\n\t\t\t\tisShippable,\r\n\t\t\t\tquantity,\r\n\t\t\t\tsuggestedDonationUserProvided: userEnteredSuggestedDonation,\r\n\t\t\t\tsuggestedDonation: suggestedDonation,\r\n\t\t\t\twarehouse\r\n\t\t\t}]\r\n\t\t};\r\n\r\n\t\treturn { cartItems, product, quantity };\r\n\t},\r\n\r\n\tinitializeResultSuggestedDonations: function ($component, context) {\r\n\t\tvar componentContext = context.split(\"_\")[0];\r\n\t\tif (componentContext === \"search\") {\r\n\t\t\tcomponentContext = \"searchResults\";\r\n\t\t}\r\n\r\n\t\t$component.find(`[data-component=\"${componentContext}.product\"] [data-component=\"suggestedDonationAmount\"]`).each((index, item) => {\r\n\t\t\tvar $item = $(item);\r\n\t\t\tvar $resultItem = $item.closest(`[data-component=\"${componentContext}.product\"]`);\r\n\t\t\tvar productCode = $resultItem.attr(\"data-product-code\");\r\n\t\t\tvar suggestedDonationAmount = $resultItem.attr(\"data-suggested-donation\");\r\n\r\n\t\t\tSuggestedDonationHelper.initializeDonationAmount(\r\n\t\t\t\tnull, /*checkoutDispatcher*/\r\n\t\t\t\t$item,\r\n\t\t\t\tproductCode,\r\n\t\t\t\tcontext,\r\n\t\t\t\tsuggestedDonationAmount\r\n\t\t\t)\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * This method is called by checkout store to determine if we should be updating payment information.\r\n\t */\r\n\tshouldHidePaymentInformation: function () {\r\n\t\t// TODO - #8915 When we have coupons on OPCO we need to check for a $0 checkout.\r\n\t\treturn {\r\n\t\t\thideOneTimeOnlyPayments: false,\r\n\t\t\thideAllPayments: false\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * This method is called when checkout store initializes. It provides a callback method to be used when\r\n\t * this tangible's concept of a total amount has changed. This will let checkout store determine if\r\n\t * payment information should be hidden - in conjunction with shouldHidePaymentInformation().\r\n\t * @param handleTotalChange the callback method to trigger a total amount update.\r\n\t */\r\n\tsetChangeHandlerMethod: function (handleTotalChange) {\r\n\t\tthis._handleTotalChange = handleTotalChange;\r\n\t},\r\n\r\n\ttriggerTotalChangedHandler: function () {\r\n\t\tif (_.isFunction(this._handleTotalChange)) {\r\n\t\t\tthis._handleTotalChange();\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeProducts: function (checkoutDispatcher) {\r\n\t\t// initialize any suggested donation inputs.\r\n\t\tvar hasSuggestedDonation = false;\r\n\t\t$('[data-component=\"suggestedDonationAmount\"]').each((index, $component) => {\r\n\t\t\t// determine parent\r\n\t\t\tvar isSearchOrCategory = $component.closest('[data-component=\"searchResults.product\"],[data-component=\"category.product\"]');\r\n\r\n\t\t\tif (isSearchOrCategory) {\r\n\t\t\t\t// TODO - #8763 - Search Results/Category Support\r\n\t\t\t\tSuggestedDonationHelper.initializeDonationAmount(checkoutDispatcher, $component, \"productCode\", \"search\");\r\n\t\t\t} else {\r\n\t\t\t\tSuggestedDonationHelper.initializeDonationAmount(checkoutDispatcher, $component);\r\n\t\t\t\thasSuggestedDonation = true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (hasSuggestedDonation) {\r\n\t\t\tcheckoutDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.TAX_UPDATED,\r\n\t\t\t\ttaxAmount: 0\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.PRODUCT_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage, preventDefaultInDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, ProductStore.get(\"isDesignMode\"), isDesignModeMessage, preventDefaultInDesignMode);\r\n\t}\r\n};\r\n\r\nmodule.exports = ProductActions;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SearchActions\");\r\n\r\nvar SearchApi = require(\"../api/SearchApi\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar HistoryHelper = require(\"../shared/HistoryHelper\");\r\n\r\nvar GridListToggleHelper = require(\"../designer/components/searchResults/GridListToggleHelper\");\r\n\r\n// Use the actions off the window to avoid double packaging\r\n// Note: avoiding server-side reference to window\r\n//var ProductActions = window.ProductActions;\r\n//var ProjectActions = window.ProjectActions;\r\n\r\nvar SearchActions = {\r\n\tinitializeGridListToggle: function(id, previouslySelectedView) {\r\n\t\tGridListToggleHelper.initializeGridListToggle(id, previouslySelectedView, \"searchResults\", \"grid-search-results-wrapper\", \"list-search-results-wrapper\");\r\n\t},\r\n\r\n\tnavigateToTangible: function (isDesignMode, tangibleUrl) {\r\n\t\tif (isDesignMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.recordClicked();\r\n\t\twindow.location = tangibleUrl;\r\n\t},\r\n\r\n\trecordClicked: function () {\r\n\t\tvar searchInformation = window._lastSearchInformation;\r\n\t\tif (searchInformation) {\r\n\t\t\t// Only record that results were clicked once per search (at most)\r\n\t\t\t// Right click in Chrome triggers contextmenu and auxclick and we are setting a bool so we only need once\r\n\t\t\tdelete window._lastSearchInformation;\r\n\t\t\tSearchApi.recordClicked(searchInformation);\r\n\t\t}\r\n\t},\r\n\r\n\taddToCart: function (isDesignMode, tangibleType, tangibleCode, addAndStay, event) {\r\n\t\ttry {\r\n\t\t\tevent = ActionsHelper.getEventOrReturn(event, isDesignMode, \"Search Results Navigate or Add To Cart called successfully.\", /*preventDefaultInDesignMode*/false);\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar afterSubmit = () => {\r\n\t\t\t\tif (!addAndStay) {\r\n\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tvar searchResultsId = $(event.target).closest(\"[data-component=searchResults]\").attr(\"id\");\r\n\t\t\tvar context = `search_${searchResultsId}`;\r\n\t\t\tswitch (tangibleType) {\r\n\t\t\t\tcase \"PRODUCTS\":\r\n\t\t\t\t\twindow.ProductActions.addToCart(event, context, tangibleCode, afterSubmit);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"PROJECTS\":\r\n\t\t\t\t\twindow.ProjectActions.addToCart(event, context, tangibleCode, afterSubmit);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch(exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t}\r\n\t\tfinally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tresetSearch: function(searchText) {\r\n\t\tvar newQueryStringObject = { searchText };\r\n\t\tHistoryHelper.replaceHistoryState(newQueryStringObject);\r\n\t},\r\n\r\n\thandlePopState: function (event) {\r\n\t\tHistoryHelper.handlePopState(/*executeAction*/(currentQueryObject, additionalOptions) => {\r\n\t\t\t$(\"[data-component='searchBar.input']\").val(currentQueryObject.searchText);\r\n\t\t\twindow._searchText = currentQueryObject.searchText;\r\n\t\t\twindow.search(/*searchResultsId*/null, /*page*/null, currentQueryObject.searchText, /*sort*/null, currentQueryObject.categoryId, additionalOptions);\r\n\t\t}, /*shouldShortCircuit*/(currentQueryObject) => {\r\n\t\t\treturn !currentQueryObject.searchText;\r\n\t\t});\r\n\t},\r\n\r\n\tupdateHistoryStateAfterSearch: function (searchText, categoryId, newQueryObject, updateId) {\r\n\t\tsearchText = searchText || \"\";\r\n\r\n\t\tHistoryHelper.updateHistoryStateAfterLoad(newQueryObject, updateId, /*afterCreateObjectLogic*/(currentQueryObject) => {\r\n\t\t\tcurrentQueryObject.searchText = searchText;\r\n\t\t\tif (categoryId) {\r\n\t\t\t\tcurrentQueryObject.category = categoryId;\r\n\t\t\t} else {\r\n\t\t\t\tdelete currentQueryObject.category;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = SearchActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ShipToActions\");\r\n\r\nvar BillingAddressHelper = require(\"../accountComponents/BillingAddressHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ShipToStore = require(\"../stores/ShipToStore\");\r\n\r\nvar ShipToActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.SHIPTO_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\ttoggleShipToSelector: function (event) {\r\n\t\tif (!event || !event.target || event.type !== \"change\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (!ShipToStore.get(\"isDesignMode\")) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\r\n\t\tvar $target = $(event.target);\r\n\t\tvar value = $target.val();\r\n\r\n\t\tif (value === ShipToStore.get(\"prevSelectorValue\")) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $shipTo = $target.parents(\"[data-component='shipTo']\").first();\r\n\t\tvar $createGiftAccountForm = $shipTo.find(\"[data-component='createGiftAccountForm']\");\r\n\t\tvar $otherAddresses = $shipTo.find(\"[data-component='shipToOtherAddresses']\");\r\n\r\n\t\tswitch (value) {\r\n\t\t\tcase \"primary\":\r\n\t\t\t\t$createGiftAccountForm.addClass(\"hidden\");\r\n\t\t\t\t$otherAddresses.addClass(\"hidden\");\r\n\t\t\t\tBillingAddressHelper.removeNewShippingAddressOptionFromSelector();\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.SHIPTO_SET_SELECTOR,\r\n\t\t\t\t\tselectorValue: value\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"other\":\r\n\t\t\t\t$createGiftAccountForm.addClass(\"hidden\");\r\n\t\t\t\t$otherAddresses.removeClass(\"hidden\");\r\n\t\t\t\tBillingAddressHelper.handleShowOtherAddresses($otherAddresses);\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.SHIPTO_SET_SELECTOR,\r\n\t\t\t\t\tselectorValue: value\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gift\":\r\n\t\t\t\t$otherAddresses.addClass(\"hidden\");\r\n\t\t\t\t$createGiftAccountForm.removeClass(\"hidden\");\r\n\t\t\t\tBillingAddressHelper.removeNewShippingAddressOptionFromSelector();\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.SHIPTO_SET_SELECTOR,\r\n\t\t\t\t\tselectorValue: value\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tLoggerInstance.error(`${value} is not a valid ship-to address type.`);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = ShipToActions;","\"use strict\";\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar SlideShowStore = require(\"../stores/SlideShowStore\");\r\n\r\nvar getValidSlideIndex = function (currentSlideIndex, $slides) {\r\n\tif (currentSlideIndex == null || currentSlideIndex > $slides.length - 1) { //coercion: undefined == null is true\r\n\t\treturn 0;\r\n\t}\r\n\tif (currentSlideIndex < 0) {\r\n\t\treturn $slides.length - 1;\r\n\t}\r\n\treturn currentSlideIndex;\r\n};\r\n\r\n// Currently, only one slideShow is allowed per layout, if this changes this implementation will also have to change\r\n\r\nvar SlideShowActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.SLIDESHOW_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t\tthis.startSlideShow();\r\n\t},\r\n\r\n\tinitializeSlideShow: function () {\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", (event) => {\r\n\t\t\tvar handleTouchStart = function (event) {\r\n\t\t\t\tSlideShowActions.handleTouchStart(event);\r\n\t\t\t};\r\n\t\t\tvar handleTouchEnd = (event) => {\r\n\t\t\t\tSlideShowActions.handleTouchEnd(event);\r\n\t\t\t\tSlideShowActions.handleSwipe(event);\r\n\r\n\t\t\t\tvar $target = this.getTargetDataComponent($(event.target));\r\n\r\n\t\t\t\tif ($target.attr(\"data-component\") === \"slideShow.previous\"\r\n\t\t\t\t\t|| $target.attr(\"data-component\") === \"slideShow.next\") {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t};\r\n\r\n\t\t\tif (typeof document.querySelectorAll === \"function\") {\r\n\t\t\t\tvar slideShows = document.querySelectorAll(\"[data-component='slideShow']\");\r\n\r\n\t\t\t\tif (slideShows.length) {\r\n\t\t\t\t\tslideShows[0].addEventListener(\"touchstart\", handleTouchStart);\r\n\t\t\t\t\tslideShows[0].addEventListener(\"touchend\", handleTouchEnd);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tSlideShowActions.initializeStore({\r\n\t\t\t\tisDesignMode: false\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tgetTargetDataComponent: function ($target) {\r\n\t\tif (!$target.attr(\"data-component\") || !$target.attr(\"data-component\").indexOf(\"slideShow\") !== 0) {\r\n\t\t\t$target = $target.closest(\"[data-component^='slideShow']\");\r\n\t\t}\r\n\r\n\t\treturn $target;\r\n\t},\r\n\r\n\tanimateSlideTransition: function ($slides, $pages, currentSlideIndex, nextSlideIndex) {\r\n\t\tvar $outgoingSlide = $slides.eq(currentSlideIndex);\r\n\t\tvar $incomingSlide = $slides.eq(nextSlideIndex);\r\n\t\tvar outgoingZindex = $outgoingSlide.css(\"z-index\");\r\n\t\tvar incomingZindex = $incomingSlide.css(\"z-index\");\r\n\r\n\t\t// Set the z-index to make sure the next slide moves over the top of the current one.\r\n\t\t// Otherwise the first slide will slide under the last slide when transitioning from\r\n\t\t//\t\tfrom the last to the first because of order of declaration.\r\n\t\t$outgoingSlide.css(\"z-index\", 900 - $slides.length);\r\n\t\t$incomingSlide.css({\r\n\t\t\t\"margin-left\": $incomingSlide.css(\"width\"),\r\n\t\t\t\"z-index\": 900 + (+nextSlideIndex) //nextSlideIndex can be a string: \"2\" so cast to int before adding (900 + \"2\" = \"9002\")\r\n\t\t}).addClass(\"selected\").animate({ \"margin-left\": 0 }, 750, \"linear\", function () {\r\n\t\t\t$(this).siblings().removeClass(\"selected\");\r\n\t\t\t$pages.removeClass(\"selected\").eq(nextSlideIndex).addClass(\"selected\");\r\n\t\t\t$outgoingSlide.css(\"z-index\", outgoingZindex);\r\n\t\t\t$(this).css(\"z-index\", incomingZindex);\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SLIDESHOW_CHANGE_SLIDE,\r\n\t\t\t\tslideIndex: nextSlideIndex\r\n\t\t\t});\r\n\t\t\tif (SlideShowStore.get(\"intervalId\") == null) { // coercion\r\n\t\t\t\tSlideShowActions.startSlideShow();\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tstartSlideShow: function (event) {\r\n\t\tif (SlideShowStore.get(\"isDesignMode\")) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $slideShow = $(\"[data-component='slideShow']\").first();\r\n\t\tvar pauseTime = $slideShow.attr(\"data-pause-time\") || 3000; //3 second default\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.SLIDESHOW_STARTED,\r\n\t\t\tintervalId: setInterval((event) => {\r\n\t\t\t\tthis.advanceSlideShow(event);\r\n\t\t\t}, pauseTime)\r\n\t\t});\r\n\t},\r\n\r\n\tstopSlideShow: function (event) {\r\n\t\tif (!event || !event.target || (event.type !== \"mouseover\" && event.type !== \"touchstart\") || SlideShowStore.get(\"isDesignMode\")) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.SLIDESHOW_STOPPED\r\n\t\t});\r\n\t},\r\n\r\n\tadvanceSlideShow: function (event) {\r\n\t\tif (SlideShowStore.get(\"isDesignMode\")) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $slideShow;\r\n\r\n\t\tif (event) {\r\n\t\t\t$slideShow = $(event.target).closest(\"[data-component='slideShow']\");\r\n\t\t} else {\r\n\t\t\t$slideShow = $(\"[data-component='slideShow']\").first();\r\n\t\t}\r\n\r\n\t\tvar $slideDeck = $slideShow.find(\"[data-component='slideShow.slideDeck']\").first();\r\n\t\tvar $slides = $slideDeck.children();\r\n\t\tvar $paging = $slideShow.find(\"[data-component='slideShow.paging']\").first();\r\n\t\tvar $pages = $paging.children(\"[data-component='slideShow.paging.page']\");\r\n\t\tvar slideIndex = SlideShowStore.get(\"slideIndex\");\r\n\r\n\t\tslideIndex = getValidSlideIndex(slideIndex, $slides);\r\n\r\n\t\tvar nextSlideIndex = slideIndex + 1 > $slides.length - 1 ? 0 : slideIndex + 1;\r\n\t\tthis.animateSlideTransition($slides, $pages, slideIndex, nextSlideIndex);\r\n\t},\r\n\r\n\tshowSlide: function (event, touchEndSlideIndex) {\r\n\t\tvar isDesignMode = SlideShowStore.get(\"isDesignMode\");\r\n\r\n\t\tif (!event || !event.target || (isDesignMode && !event.ctrlKey && !event.metaKey)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $target = this.getTargetDataComponent($(event.target));\r\n\r\n\t\tvar $slideShow = $target.closest(\"[data-component='slideShow']\");\r\n\t\tvar $slideDeck = $slideShow.find(\"[data-component='slideShow.slideDeck']\").first();\r\n\t\tvar $slides = $slideDeck.children();\r\n\t\tvar $paging = $slideShow.find(\"[data-component='slideShow.paging']\").first();\r\n\t\tvar $pages = $paging.children(\"[data-component='slideShow.paging.page']\");\r\n\t\tvar slideIndex = getValidSlideIndex($slides.index($slideDeck.find(\".selected\")), $slides);\r\n\r\n\t\tif (event.type === \"click\" && !isDesignMode) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\r\n\t\tvar nextSlideIndex = slideIndex;\r\n\t\tswitch ($target.attr(\"data-component\")) {\r\n\t\t\tcase \"slideShow.previous\":\r\n\t\t\t\tnextSlideIndex--;\r\n\t\t\t\tif (nextSlideIndex < 0) {\r\n\t\t\t\t\tnextSlideIndex = $slides.length - 1;\r\n\t\t\t\t}\r\n\t\t\t\tthis.animateSlideTransition($slides, $pages, slideIndex, nextSlideIndex);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"slideShow.next\":\r\n\t\t\t\tnextSlideIndex++;\r\n\t\t\t\tif (nextSlideIndex > $slides.length - 1) {\r\n\t\t\t\t\tnextSlideIndex = 0;\r\n\t\t\t\t}\r\n\t\t\t\tthis.animateSlideTransition($slides, $pages, slideIndex, nextSlideIndex);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"slideShow.paging.page\":\r\n\t\t\t\tvar page = +$target.attr(\"rel\");\r\n\t\t\t\tif (page !== slideIndex) {\r\n\t\t\t\t\tnextSlideIndex = page;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\tthis.animateSlideTransition($slides, $pages, slideIndex, nextSlideIndex);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"slideShow.slideDeck.slide\":\r\n\t\t\t\tif (event.type === \"touchend\" && touchEndSlideIndex != null && slideIndex !== touchEndSlideIndex) { //coercion\r\n\t\t\t\t\tthis.animateSlideTransition($slides, $pages, slideIndex, touchEndSlideIndex);\r\n\t\t\t\t} else if (event.type === \"touchend\" && slideIndex === touchEndSlideIndex) {\r\n\t\t\t\t\tthis.startSlideShow();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.log(`${$target.attr(\"data-component\")}: ${event.type}`);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tsetActiveSlide(slideIndex) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.SLIDESHOW_CHANGE_SLIDE,\r\n\t\t\tslideIndex: slideIndex\r\n\t\t});\r\n\t},\r\n\r\n\t// Swipe logic\r\n\thandleTouchStart(event) {\r\n\t\tif (event && event.changedTouches) {\r\n\t\t\tthis.stopSlideShow(event);\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SLIDESHOW_TOUCH_START,\r\n\t\t\t\ttouchstartX: event.changedTouches[0].screenX\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\thandleTouchEnd(event) {\r\n\t\tif (event && event.changedTouches) {\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SLIDESHOW_TOUCH_END,\r\n\t\t\t\ttouchendX: event.changedTouches[0].screenX\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\thandleSwipe(event) {\r\n\t\tvar swipeBuffer = 15; // If the diff between toundstartX and touchendX is less than swipeBuffer, don't count it as a swipe\r\n\t\tvar touchstartX = SlideShowStore.get(\"touchstartX\");\r\n\t\tvar touchendX = SlideShowStore.get(\"touchendX\");\r\n\t\tvar touchDiff = Math.abs(touchstartX - touchendX);\r\n\t\tvar slideIndex = SlideShowStore.get(\"slideIndex\");\r\n\t\tvar $target = this.getTargetDataComponent($(event.target));\r\n\r\n\t\tvar $slideShow = $target.closest(\"[data-component='slideShow']\");\r\n\t\tvar $slideDeck = $slideShow.find(\"[data-component='slideShow.slideDeck']\").first();\r\n\t\tvar $slides = $slideDeck.children();\r\n\r\n\t\tif (slideIndex == null) { // coercion\r\n\t\t\tslideIndex = $slides.index($slideDeck.children(\".selected\"));\r\n\t\t}\r\n\r\n\t\tif (touchDiff > swipeBuffer) {\r\n\t\t\tif (touchendX < touchstartX) {\r\n\t\t\t\tthis.showSlide(event, getValidSlideIndex(++slideIndex, $slides)); // Next slide\r\n\t\t\t} else {\r\n\t\t\t\tthis.showSlide(event, getValidSlideIndex(--slideIndex, $slides)); // Previous slide\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.showSlide(event, getValidSlideIndex(slideIndex, $slides));\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = SlideShowActions;","\"use strict\";\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar TabStore = require(\"../stores/TabStore\");\r\n\r\nvar TabActions = {\r\n\tinitializeStore: function (options) {\r\n\t\tvar action = Object.assign({}, options, { actionType: Constants.TABS_INITIALIZE });\r\n\t\tDispatcher.dispatch(action);\r\n\t},\r\n\r\n\topenTab: function (event) {\r\n\t\tif (!event || !event.target || event.type !== \"click\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar isDesigner = TabStore.get(\"isDesignMode\");\r\n\t\tif (isDesigner && event.type === \"click\" && !event.ctrlKey && !event.metaKey) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (!isDesigner) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\r\n\t\tvar $target = $(event.target);\r\n\t\tvar dataTab = $target.closest(\"[data-tab]\").attr(\"data-tab\");\r\n\t\tvar $tabContainer = $target.parents(\"[data-component='tabsContainer']\").first();\r\n\t\tvar $tabContentContainer = $tabContainer.children(\"[data-component='tabsContainer.contentContainer']\").first();\r\n\t\tvar $selectedTabContents = $tabContentContainer.children(`[data-tab=\"${dataTab}\"]`);\r\n\r\n\t\tif ($selectedTabContents.length <= 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Hide all content blocks and deselect the tab\r\n\t\t$tabContentContainer.children().addClass(\"hiddenTabContent\");\r\n\t\t$tabContainer.find(\".selected\").removeClass(\"selected\");\r\n\t\t// Select the clicked tab and show the related content div\r\n\t\t$target.closest(\"li\").addClass(\"selected\");\r\n\t\t$selectedTabContents.removeClass(\"hiddenTabContent\");\r\n\r\n\t\treturn true;\r\n\t}\r\n};\r\n\r\nmodule.exports = TabActions;","var LoggerInstance = require(\"js-logger\").get(\"Tracker\");\r\n\r\nvar sendTracking = function (eventData, isSessionData) {\r\n\tvar client = new XMLHttpRequest();\r\n\tclient.open(\"POST\", \"/api/eventtracking/sessiondata\", true); // third parameter indicates sync xhr\r\n\tclient.setRequestHeader(\"Content-Type\", \"application/json\");\r\n\tclient.send(JSON.stringify(eventData));\r\n}\r\n\r\nmodule.exports = {\r\n\tsoTrackPageData: function (pageData) {\r\n\t\tpageData = pageData || {};\r\n\t\tpageData.layoutId = layoutId;\r\n\r\n\t\tsendTracking(pageData);\r\n\t},\r\n\r\n\tsoTrackSessionData: function (sessionData) {\r\n\t\tsendTracking(sessionData, true);\r\n\t},\r\n\r\n};\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AbstractApi\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\nvar QueryStringHelper = require(\"../shared/QueryStringHelper\");\r\n\r\nvar AbstractApi = class {\r\n\tconstructor() {\r\n\t\tif (this.constructor === AbstractApi) {\r\n\t\t\tthrow new TypeError(\"Cannot construct AbstractApi instances directly!\");\r\n\t\t}\r\n\t}\r\n\r\n\tget(ajaxSettings) {\r\n\t\tajaxSettings.type = \"GET\";\r\n\r\n\t\tthis._processQueryString(ajaxSettings);\r\n\r\n\t\treturn $.ajax(ajaxSettings).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\tif (textStatus !== \"abort\") {\r\n\t\t\t\tthis._logError(ajaxSettings, jqXHR, textStatus, errorThrown);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpost(ajaxSettings) {\r\n\t\tthis._processQueryString(ajaxSettings);\r\n\r\n\t\treturn this._requestWithBody(ajaxSettings, \"POST\");\r\n\t}\r\n\r\n\tput(ajaxSettings) {\r\n\t\tthis._processQueryString(ajaxSettings);\r\n\r\n\t\treturn this._requestWithBody(ajaxSettings, \"PUT\");\r\n\t}\r\n\r\n\tdelete(ajaxSettings) {\r\n\t\tthis._processQueryString(ajaxSettings);\r\n\r\n\t\treturn this._requestWithBody(ajaxSettings, \"DELETE\");\r\n\t}\r\n\r\n\t/* Supports the following settings:\r\n\t\t`defaultFileName` - This should include the file extension.\r\n\t\t`queryString`\r\n\t\t`url`\r\n\t*/\r\n\tdownload(xmlHttpRequestSettings) {\r\n\t\txmlHttpRequestSettings = xmlHttpRequestSettings || {};\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tthis._processQueryString(xmlHttpRequestSettings);\r\n\r\n\t\tvar request = new XMLHttpRequest();\r\n\t\trequest.open(\"GET\", xmlHttpRequestSettings.url);\r\n\t\trequest.responseType = \"blob\";\r\n\r\n\t\trequest.onload = function (event) {\r\n\t\t\ttry {\r\n\t\t\t\tLoggerInstance.debug(\"Download complete.\");\r\n\r\n\t\t\t\tif (this.status !== 200) {\r\n\t\t\t\t\tdeferred.reject(this.status);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar contentDisposition = this.getResponseHeader(\"content-disposition\");\r\n\r\n\t\t\t\t// A Redirect response is also a 200, but does not have the content-disposition header.\r\n\t\t\t\tif (this.responseURL !== window.location.href && !contentDisposition) {\r\n\t\t\t\t\twindow.location.href = this.responseURL;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar fileInfo = ApiHelper.getFileInfo(contentDisposition, xmlHttpRequestSettings.defaultFileName);\r\n\r\n\t\t\t\tif (xmlHttpRequestSettings.shouldOpenInNewTab) {\r\n\t\t\t\t\tif (fileInfo.mimeType === \"application/pdf\" \r\n\t\t\t\t\t\t|| fileInfo.mimeType === \"text/pdf\") {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// We open a new tab and navigate to an API url that will display the PDF in the browser.\r\n\t\t\t\t\t\tvar baseUrl = window.location.origin;\r\n\t\t\t\t\t\tvar urlEncodedFileName = encodeURIComponent(fileInfo.fileName);\r\n\t\t\t\t\t\tvar urlEncodedDocumentCode = encodeURIComponent(xmlHttpRequestSettings.documentCode);\r\n\t\t\t\t\t\tvar url = `${baseUrl}/api/documents/download/${urlEncodedFileName}?documentCode=${urlEncodedDocumentCode}&viewInBrowser=true`;\r\n\r\n\t\t\t\t\t\tvar downloadLink = document.createElement('a');\r\n\t\t\t\t\t\tdownloadLink.style.display = 'none';\r\n\t\t\t\t\t\tdownloadLink.href = url;\r\n\t\t\t\t\t\tdownloadLink.target = \"_blank\"; \r\n\t\t\t\t\t\tdocument.body.appendChild(downloadLink);\r\n\t\t\t\t\t\tdownloadLink.click();\r\n\t\t\t\t\t\tdocument.body.removeChild(downloadLink);\r\n\t\t\t\t\t\tURL.revokeObjectURL(url);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar downloadLink = document.createElement('a');\r\n\t\t\t\t\t\tdownloadLink.style.display = 'none';\r\n\t\t\t\t\t\tdownloadLink.href = url;\r\n\t\t\t\t\t\tdownloadLink.download = fileInfo.fileName;\r\n\t\t\t\t\t\tdocument.body.appendChild(downloadLink);\r\n\t\t\t\t\t\tdownloadLink.click();\r\n\t\t\t\t\t\tdocument.body.removeChild(downloadLink);\r\n\t\t\t\t\t\tURL.revokeObjectURL(url);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Create an anchor element with an object url for the href.\r\n\t\t\t\t\tvar a = document.createElement(\"a\");\r\n\t\t\t\t\ta.style.display = 'none';\r\n\t\t\t\t\ta.href = window.URL.createObjectURL(this.response);\r\n\t\t\t\t\ta.download = fileInfo.fileName;\r\n\r\n\t\t\t\t\t// Download the file with default browser behavior\r\n\t\t\t\t\tdocument.body.appendChild(a);\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\tdocument.body.removeChild(a);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t}\r\n\t\t\tcatch (error) {\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trequest.onabort = function (event) {\r\n\t\t\tLoggerInstance.debug(\"Download aborted.\");\r\n\r\n\t\t\t// We don't consider an aborted download an error.\r\n\t\t\tdeferred.resolve();\r\n\t\t};\r\n\r\n\t\trequest.onerror = function (event) {\r\n\t\t\tLoggerInstance.error(`Download failed: ${settings.url}.`, this.response, this.status);\r\n\t\t\tdeferred.reject(this.status);\r\n\t\t};\r\n\r\n\t\trequest.send();\r\n\r\n\t\treturn deferred;\r\n\t}\r\n\r\n\t_removeCaptchaSpinner(e) {\r\n\t\tvar challenge = $(\"iframe[title*='recaptcha'][title*='challenge']\");\r\n\t\t// This boolean is based on how Google is currently showing/hiding their reCaptcha challenge\r\n\t\t// If things start breaking, it might be because they have changed how they do this\r\n\t\tvar isChallengeVisible = !(challenge.css(\"visibility\") == \"hidden\");\r\n\r\n\t\tif (challenge.length > 0 && isChallengeVisible && !challenge.is(e.target) && challenge.has(e.target).length === 0) {\r\n\t\t\t$(\"#overlayWithSpinner\").remove();\r\n\t\t}\r\n\t}\r\n\r\n\t_processQueryString(ajaxSettings) {\r\n\t\tvar queryString;\r\n\t\tif (ajaxSettings.queryString) {\r\n\t\t\tif (typeof ajaxSettings.queryString === \"string\") {\r\n\t\t\t\tqueryString = ajaxSettings.queryString;\r\n\t\t\t} else {\r\n\t\t\t\tqueryString = QueryStringHelper.createQueryString(ajaxSettings.queryString);\r\n\t\t\t}\r\n\r\n\t\t\tif (queryString) {\r\n\t\t\t\tajaxSettings.url = `${ajaxSettings.url}?${queryString}`;\r\n\t\t\t}\r\n\r\n\t\t\tdelete ajaxSettings.queryString;\r\n\t\t}\r\n\t}\r\n\r\n\t_requestWithBody(ajaxSettings, type) {\r\n\t\tif (ajaxSettings.reCAPTCHA && window.reCAPTCHA) {\r\n\t\t\tajaxSettings.headers = ajaxSettings.headers || {};\r\n\r\n\t\t\t// Do not challenge again if reCAPTCHA has already validated (this is the case with Apple and Google Pay).\r\n\t\t\tif (ajaxSettings.data && ajaxSettings.data.reCAPTCHAResponseToken) {\r\n\t\t\t\tajaxSettings.headers.reCAPTCHAResponseToken = ajaxSettings.data.reCAPTCHAResponseToken;\r\n\t\t\t\tdelete ajaxSettings.data.reCAPTCHAResponseToken;\r\n\t\t\t\treturn this._performRequestWithBody(ajaxSettings, type);\r\n\t\t\t}\r\n\r\n\t\t\tvar deferred = new $.Deferred();\r\n\t\t\tvar that = this;\r\n\t\t\tdocument.addEventListener(\"mouseup\", that._removeCaptchaSpinner);\r\n\r\n\t\t\t$(\"#recaptcha\").one(\"Success\", (event, token) => {\r\n\t\t\t\tajaxSettings.headers.reCAPTCHAResponseToken = token;\r\n\t\t\t\tthis._performRequestWithBody(ajaxSettings, type)\r\n\t\t\t\t\t.done(deferred.resolve)\r\n\t\t\t\t\t.fail(deferred.reject);\r\n\t\t\t});\r\n\t\t\tif (!window.callingReCAPTCHA) {\r\n\t\t\t\tgrecaptcha.execute();\r\n\t\t\t}\r\n\t\t\treturn deferred;\r\n\r\n\t\t}\r\n\t\treturn this._performRequestWithBody(ajaxSettings, type);\r\n\t}\r\n\r\n\t_performRequestWithBody(ajaxSettings, type) {\r\n\t\tajaxSettings.type = type;\r\n\t\tajaxSettings.contentType = ajaxSettings.contentType || \"application/json\";\r\n\t\tif (ajaxSettings.contentType === \"application/json\" && typeof ajaxSettings.data !== \"string\") {\r\n\t\t\tApiHelper.convertEmptyValuesToNull(ajaxSettings.data);\r\n\t\t\tajaxSettings.data = JSON.stringify(ajaxSettings.data);\r\n\t\t}\r\n\r\n\t\treturn $.ajax(ajaxSettings).fail((jqXHR, textStatus, errorThrown) => this._logError(ajaxSettings, jqXHR, textStatus, errorThrown));\r\n\t}\r\n\r\n\t_logError(settings, jqXHR, textStatus, errorThrown) {\r\n\t\tLoggerInstance.error(`Failed to ${settings.type} ${settings.url}.`, jqXHR, textStatus, errorThrown);\r\n\t}\r\n};\r\n\r\nmodule.exports = AbstractApi;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\nvar queryParameterOverrides = require(\"../designer/Constants\").QUERY_PARAMETER_OVERRIDES;\r\n\r\nvar AccountApi = class extends AbstractApi {\r\n\tchangePassword(passwordChangeOptions) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/studioonlinechangepassword\",\r\n\t\t\tdata: passwordChangeOptions,\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tchangePrimaryContactInformation(primaryContactInformation) {\r\n\t\tApiHelper.convertEmptyValuesToNull(primaryContactInformation);\r\n\t\tApiHelper.convertObjectWithAllNullPropertiesToNull(primaryContactInformation);\r\n\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/changeprimarycontactinformation\",\r\n\t\t\tdata: primaryContactInformation\r\n\t\t});\r\n\t}\r\n\r\n\tchangeSpouseInformation(spouseInformation) {\r\n\t\tApiHelper.convertEmptyValuesToNull(spouseInformation);\r\n\t\tApiHelper.convertObjectWithAllNullPropertiesToNull(spouseInformation);\r\n\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/changespouseInformation\",\r\n\t\t\tdata: spouseInformation\r\n\t\t});\r\n\t}\r\n\r\n\tchildCommunicationsSaveCommunication(communication, pledgeId) {\r\n\t\treturn this.post({\r\n\t\t\turl: `/api/createCorrespondence/${pledgeId}`,\r\n\t\t\tdata: communication\r\n\t\t});\r\n\t}\r\n\r\n\tcreateAccount(accountData) {\r\n\t\taccountData.type = this.getAccountType(accountData);\r\n\r\n\t\t// Convert empty values to null so SE account validation does not fail\r\n\t\tApiHelper.convertEmptyValuesToNull(accountData);\r\n\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/createaccount\",\r\n\t\t\tdata: accountData,\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tgetAccountType(accountData) {\r\n\t\tif (accountData.organizationName || accountData.organizationType) {\r\n\t\t\treturn \"O\";\r\n\t\t}\r\n\r\n\t\treturn \"I\";\r\n\t}\r\n\r\n\tgetDocumentTypes(documentTypeCode, options) {\r\n\t\toptions = options || {};\r\n\t\treturn this.get({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"documentsComponentId\": options.documentsComponentId,\r\n\t\t\t\t\"existingBreadcrumb\": options.existingBreadcrumb,\r\n\t\t\t\t\"documentTypeCode\": documentTypeCode\r\n\t\t\t}),\r\n\t\t\turl: `/api/documents/partial`\r\n\t\t});\r\n\t}\r\n\r\n\tgetReportParameters(options) {\r\n\t\toptions = options || {};\r\n\t\treturn this.get({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"reportParametersComponentId\": options.reportParametersComponentId,\r\n\t\t\t\t\"reportId\": options.reportId\r\n\t\t\t}),\r\n\t\t\turl: `/api/reports/partial`\r\n\t\t});\r\n\t}\r\n\r\n\tgetMediaValuesByAddress(options) {\r\n\t\toptions = options || {};\r\n\t\treturn this.get({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"all\": true,\r\n\t\t\t\t\"city\": options.city,\r\n\t\t\t\t\"country\": options.country,\r\n\t\t\t\t\"currentMedia\": options.currentMedia,\r\n\t\t\t\t\"postalCode\": options.postalCode,\r\n\t\t\t\t\"state\": options.state\r\n\t\t\t}, /*includeNulls*/true),\r\n\t\t\turl: \"/api/mediabyaddress\"\r\n\t\t});\r\n\t}\r\n\r\n\tmySubscriptionsGetSubscription(subscriptionId, options) {\r\n\t\treturn this.get({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"isEditing\": options.isEditing,\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"mySubscriptionComponentId\": options.mySubscriptionComponentId,\r\n\t\t\t\t\"subscriptionType\": options.subscriptionType\r\n\t\t\t}),\r\n\t\t\turl: `/api/mysubscriptions/${subscriptionId}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyPledgesCancel(pledgeId, sponsorshipType) {\r\n\t\treturn this.delete({\r\n\t\t\turl: `/api/mypledges/${pledgeId}?sponsorshipType=${sponsorshipType}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyPledgesEdit(pledgeId, myPledgesComponentId, editPledgeData, sponsorshipType) {\r\n\t\treturn this.post({\r\n\t\t\tdata: editPledgeData,\r\n\t\t\turl: `/api/mypledges/${pledgeId}?myPledgesComponentId=${myPledgesComponentId}&layoutId=${window.layoutId}&sponsorshipType=${sponsorshipType}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyPledgeGet(pledgeId, myPledgesComponentId, isEditing, sponsorshipType) {\r\n\t\treturn this.get({\r\n\t\t\turl: `/api/mypledges/${pledgeId}?myPledgesComponentId=${myPledgesComponentId}&layoutId=${window.layoutId}&isEditing=${isEditing}&sponsorshipType=${sponsorshipType}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyPledgesMakeDonation(pledgeIds, sponsorshipType, shortComment) {\r\n\t\treturn this.post({\r\n\t\t\tdata: pledgeIds,\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\tsponsorshipType,\r\n\t\t\t\tshortComment\r\n\t\t\t}),\r\n\t\t\turl: \"/api/mypledges/makedonations\"\r\n\t\t});\r\n\t}\r\n\r\n\tmyRelationshipPledgesMakeDonation(pledgeIds, relationshipType, relationshipRelatedType, shortComment) {\r\n\t\treturn this.post({\r\n\t\t\tdata: pledgeIds,\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\trelationshipType,\r\n\t\t\t\trelationshipRelatedType,\r\n\t\t\t\tshortComment\r\n\t\t\t}),\r\n\t\t\turl: \"/api/myrelationshippledges/makedonations\"\r\n\t\t});\r\n\t}\r\n\r\n\tmyRecurringGetRecurring(recurringId, options) {\r\n\t\treturn this.get({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"donationId\": options.donationId,\r\n\t\t\t\t\"isEditing\": options.isEditing,\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"myRecurringComponentId\": options.myRecurringComponentId,\r\n\t\t\t\t\"usingDonations\": options.usingDonations,\r\n\t\t\t\t\"usingHeader\": options.usingHeader,\r\n\t\t\t\t\"usingPayment\": options.usingPayment\r\n\t\t\t}),\r\n\t\t\turl: `/api/myrecurring/${recurringId}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyRecurringCancel(recurringId) {\r\n\t\treturn this.delete({\r\n\t\t\turl: `/api/myrecurring/${recurringId}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyRecurringDeleteDonation(recurringId, donationId) {\r\n\t\treturn this.delete({\r\n\t\t\turl: `/api/myrecurring/${recurringId}/donations/${donationId}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyRecurringEditDonation(recurringId, donationId, donationData, myRecurringComponentId) {\r\n\t\treturn this.post({\r\n\t\t\tdata: donationData,\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"myRecurringComponentId\": myRecurringComponentId\r\n\t\t\t}),\r\n\t\t\turl: `/api/myrecurring/${recurringId}/donations/${donationId}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyRecurringEditHeader(recurringId, recurringHeaderData, myRecurringComponentId) {\r\n\t\treturn this.post({\r\n\t\t\tdata: recurringHeaderData,\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"myRecurringComponentId\": myRecurringComponentId\r\n\t\t\t}),\r\n\t\t\turl: `/api/myrecurring/${recurringId}`\r\n\t\t});\r\n\t}\r\n\r\n\tmyRecurringEditPayment(recurringId, paymentData, myRecurringComponentId) {\r\n\t\treturn this.post({\r\n\t\t\tdata: { payment: paymentData },\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"myRecurringComponentId\": myRecurringComponentId\r\n\t\t\t}),\r\n\t\t\turl: `/api/myrecurring/${recurringId}/payment`,\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tmySubscriptionsEdit(subscriptionId, subscriptionType, data, mySubscriptionComponentId) {\r\n\t\treturn this.post({\r\n\t\t\tdata,\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"layoutId\": window.layoutId,\r\n\t\t\t\t\"mySubscriptionComponentId\": mySubscriptionComponentId,\r\n\t\t\t\t\"subscriptionType\": subscriptionType\r\n\t\t\t}),\r\n\t\t\turl: `/api/mysubscriptions/${subscriptionId}`\r\n\t\t});\r\n\t}\r\n\r\n\tstandardizeAddress(addressData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: addressData,\r\n\t\t\turl: `/api/standardizeaddress`\r\n\t\t})\r\n\t}\r\n\r\n\tdownloadDocument(documentCode, documentFileName, shouldOpenInNewTab) {\r\n\t\treturn this.download({\r\n\t\t\tdocumentCode,\r\n\t\t\tdefaultFileName: documentFileName || `${documentCode}.txt`,\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\tdocumentCode\r\n\t\t\t}),\r\n\t\t\tshouldOpenInNewTab: shouldOpenInNewTab,\r\n\t\t\turl: \"/api/documents/download\"\r\n\t\t});\r\n\t}\r\n\r\n\tgetAutoAddStateAndPostalCodesControlRecord() {\r\n\t\treturn this.get({\r\n\t\t\turl: \"/api/x01/ADDRSTDASP\"\r\n\t\t});\r\n\t}\r\n\r\n\totherAddressAdd(otherAddressesComponentId, addressData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: addressData,\r\n\t\t\turl: `/api/otheraddresses?otherAddressesComponentId=${otherAddressesComponentId}&layoutId=${window.layoutId}&tangibleCode=${window.tangibleCode}`\r\n\t\t});\r\n\t}\r\n\r\n\totherAddressDelete(addressId) {\r\n\t\treturn this.delete({\r\n\t\t\turl: `/api/otheraddresses/${addressId}`\r\n\t\t});\r\n\t}\r\n\r\n\totherAddressEdit(addressId, otherAddressesComponentId, addressData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: addressData,\r\n\t\t\turl: `/api/otheraddresses/${addressId}?otherAddressesComponentId=${otherAddressesComponentId}&layoutId=${window.layoutId}&tangibleCode=${window.tangibleCode}`\r\n\t\t});\r\n\t}\r\n\r\n\totherAddressesGet(addressId, otherAddressesComponentId, isEditing) {\r\n\t\treturn this.get({\r\n\t\t\turl: `/api/otheraddresses/${addressId}?otherAddressesComponentId=${otherAddressesComponentId}&layoutId=${window.layoutId}&isEditing=${isEditing}&tangibleCode=${window.tangibleCode}`\r\n\t\t});\r\n\t}\r\n\r\n\tperformLogin(credentials) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/studioonlineauthenticate\",\r\n\t\t\tdata: credentials,\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tresetPassword (passwordResetOptions) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/studioonlineresetpassword\",\r\n\t\t\tdata: passwordResetOptions,\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tsaveAccountMedia (data) {\r\n\t\tApiHelper.convertEmptyValuesToNull(data);\r\n\t\tApiHelper.deleteUndefinedValues(data, /*includeNulls*/true);\r\n\r\n\t\treturn this.post({\r\n\t\t\tdata,\r\n\t\t\turl: \"/api/saveaccountmedia\"\r\n\t\t});\r\n\t}\r\n\r\n\tsendPasswordResetEmail (emailAddress) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/studioonlineforgotpassword\",\r\n\t\t\tdata: JSON.stringify({\r\n\t\t\t\t\"emailAddress\": emailAddress\r\n\t\t\t}),\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tupdateAccountCodes(accountCodes) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/accountcodes\",\r\n\t\t\tdata: JSON.stringify({\r\n\t\t\t\t\"codes\": accountCodes\r\n\t\t\t}),\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tcreateCommunication(communication) {\r\n\t\treturn this.post({\r\n\t\t\tdata: communication,\r\n\t\t\turl: \"/api/communications\"\r\n\t\t});\r\n\t}\r\n\r\n\tdownloadReport(report, shouldOpenInNewTab) {\r\n\t\tvar contentDisposition = this.getResponseHeader(\"content-disposition\");\r\n\t\tvar fileInfo = ApiHelper.getFileInfo(contentDisposition, \"\")\r\n\t\treturn this.download({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues(report),\r\n\t\t\tshouldOpenInNewTab: shouldOpenInNewTab && fileInfo.mimeType in navigator.mimeTypes,\r\n\t\t\turl: \"/api/downloadreport\"\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new AccountApi();\r\n","\"use strict\";\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar ApplePayApi = class extends AbstractApi {\r\n\t//Call made to SO API\r\n\tcreateApplePayPaymentSession(validationUrl) {\r\n\t\treturn this.post({\r\n\t\t\tdata: { \"validationUrl\": validationUrl },\r\n\t\t\turl: \"/api/applepaypaymentsessions\"\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new ApplePayApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ContactUsApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar ContactUsApi = class extends AbstractApi {\r\n\tsubmitContactUsRequest(contactUsRequestData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: contactUsRequestData,\r\n\t\t\turl: \"/api/contactus\",\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new ContactUsApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EmailSubscriptionApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar EmailSubscriptionApi = class extends AbstractApi {\r\n\tsubmitEmailSubscriptionRequest(emailSubscriptionRequestData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: emailSubscriptionRequestData,\r\n\t\t\treCAPTCHA: true,\r\n\t\t\turl: \"/api/emailsubscriptions\"\r\n\t\t});\r\n\t}\r\n\r\n\tgetEmailSubscriptions() {\r\n\t\treturn this.get({\r\n\t\t\turl: \"/api/myemailsubscriptions\"\r\n\t\t});\r\n\t}\r\n\r\n\tsubscribe(subscriptionType) {\r\n\t\treturn this.post({\r\n\t\t\tdata: { subscriptionTypes: [subscriptionType] },\r\n\t\t\turl: \"/api/myemailsubscriptions\"\r\n\t\t});\r\n\t}\r\n\r\n\tunsubscribe(subscriptionType) {\r\n\t\treturn this.post({\r\n\t\t\tdata: {\r\n\t\t\t\tisUnsubscribing: true,\r\n\t\t\t\tsubscriptionTypes: [subscriptionType]\r\n\t\t\t},\r\n\t\t\turl: \"/api/myemailsubscriptions\"\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new EmailSubscriptionApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EventSearchApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\nvar EventSearchApi = class extends AbstractApi {\r\n\tsearch(options) {\r\n\t\toptions = options || {};\r\n\t\treturn this.get({\r\n\t\t\t// explicitly mapping options for visibility\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\tcountry: options.country,\r\n\t\t\t\tdistance: options.distance,\r\n\t\t\t\teventTypes: options.eventTypes,\r\n\t\t\t\tid: options.id,\r\n\t\t\t\tisDistanceInKilometers: options.isDistanceInKilometers,\r\n\t\t\t\tlayoutId: options.layoutId,\r\n\t\t\t\tlayoutName: options.layoutName,\r\n\t\t\t\tlimit: options.limit,\r\n\t\t\t\toffset: options.offset,\r\n\t\t\t\tpostalCode: options.postalCode,\r\n\t\t\t\tsearchId: options.searchId,\r\n\t\t\t\tstate: options.state\r\n\t\t\t}, /* includeNulls */ true),\r\n\t\t\turl: `/api/eventsearchby${options.searchType}/getresults`\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new EventSearchApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"LogoutApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar LogoutApi = class extends AbstractApi {\r\n\tlogout(options) {\r\n\t\treturn this.post({\r\n\t\t\tdata: options,\r\n\t\t\turl: \"/api/logout\"\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new LogoutApi();\r\n","\"use strict\";\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar PlaidApi = class extends AbstractApi {\r\n\t// Call made to SO API\r\n\tgeneratePlaidLinkToken() {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/plaid/create-link-token\"\r\n\t\t});\r\n\t}\r\n\r\n\tgetEftAccountData(publicToken, accounts) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/plaid/get-eft-account-data\",\r\n\t\t\tdata: {\r\n\t\t\t\tpublicToken,\r\n\t\t\t\taccounts\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new PlaidApi();\r\n","\"use strict\";\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar PledgeStatementApi = class extends AbstractApi {\r\n\t//Call made to SO API\r\n\tsubmitPledgeStatement(pledgeStatementData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: pledgeStatementData,\r\n\t\t\turl: \"/api/pledgestatementsessions\"\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new PledgeStatementApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar SavedPaymentsApi = class extends AbstractApi {\r\n\taddSavedPaymentToAccount(savedPaymentData) {\r\n\t\treturn this.post({\r\n\t\t\tdata: savedPaymentData,\r\n\t\t\turl: \"/api/accountAddSavedPayment\",\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteSavedPayment(savedPaymentId) {\r\n\t\treturn this.delete({\r\n\t\t\turl: `/api/savedpayments/${savedPaymentId}`\r\n\t\t});\r\n\t}\r\n\r\n\tcreateHostedPageTokenFromSavedPayment(savedPaymentId) {\r\n\t\treturn this.post({\r\n\t\t\turl: `/api/savedpayments/${savedPaymentId}/hostedpagetoken`\r\n\t\t});\r\n\t}\r\n\r\n\tupdateSavedPayment(savedPaymentId, isPrimary) {\r\n\t\treturn this.post({\r\n\t\t\tdata: { isPrimary },\r\n\t\t\turl: `/api/accountUpdateSavedPayment/${savedPaymentId}`\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new SavedPaymentsApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SearchApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar SearchApi = class extends AbstractApi {\r\n\trecordClicked(data) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/searchterms/resultsclicked\",\r\n\t\t\tdata\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new SearchApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SmartyStreetsApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\nvar SmartyStreetsApi = class extends AbstractApi {\r\n\t//Call made to SO API\r\n\tgetSmartyStreetsHtml(themeId) {\r\n\t\tif (!themeId) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, `ThemeId was not specified: ${themeId}.`);\r\n\t\t}\r\n\r\n\t\treturn this.get({\r\n\t\t\turl: \"/api/smartystreets\",\r\n\t\t\tqueryString: {\r\n\t\t\t\tthemeId\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t//Call made to SmartyStreets.com\r\n\tautoCompleteAddress(options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (!options.singleLineAddress) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, `Single Line Address Not Provided: ${options.singleLineAddress}.`);\r\n\t\t}\r\n\t\tvar apiKeyWizard = window.AccountStore.get(\"wizardSmartyStreetsApiKey\");\r\n\t\tif (!apiKeyWizard || !apiKeyWizard.apiKey) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"SmartyStreets Api Key is not provided.\");\r\n\t\t}\r\n\r\n\t\treturn this.get({\r\n\t\t\turl: \"https://us-autocomplete-pro.api.smartystreets.com/lookup\",\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"auth-id\": apiKeyWizard.apiKey,\r\n\t\t\t\t\"search\": options.singleLineAddress,\r\n\t\t\t\t\"max_results\": options.suggestions || 10,\r\n\t\t\t\t\"geolocate_precision\": (options.geolocate === true) ? options.geolocatePrecision || \"city\" : \"none\",\r\n\t\t\t\t\"selected\": options.selected\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\r\n\t//Call made to SmartyStreets.com\r\n\tverifyUsAddress(options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif (!options.street) {\r\n\t\t\t//A street must be provided, at least\r\n\t\t\treturn ApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, `Street Not Provided: ${options.street}.`);\r\n\t\t}\r\n\t\tvar apiKeyWizard = window.AccountStore.get(\"wizardSmartyStreetsApiKey\");\r\n\t\tif (!apiKeyWizard || !apiKeyWizard.apiKey) {\r\n\t\t\treturn ApiHelper.logErrorAndReturnRejectedDeferred(LoggerInstance, \"SmartyStreets Api Key is not provided.\");\r\n\t\t}\r\n\r\n\t\treturn this.get({\r\n\t\t\turl: \"https://us-street.api.smartystreets.com/street-address\",\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\t\"auth-id\": apiKeyWizard.apiKey,\r\n\t\t\t\t\"input_id\": options.inputId || undefined,\r\n\t\t\t\t\"street\": options.street || undefined,\r\n\t\t\t\t\"city\": options.city || undefined,\r\n\t\t\t\t\"state\": options.state || undefined,\r\n\t\t\t\t\"zipcode\": options.zipcode || undefined,\r\n\t\t\t\t\"street2\": options.street2 || undefined, //something like \"Leave it on the front porch\"\r\n\t\t\t\t\"secondary\": options.secondary || undefined, // Apt 52 or 52 not Apt52\r\n\t\t\t\t\"candidates\": options.candidates || 3,\r\n\t\t\t\t\"match\": options.match || \"strict\" // strict, range, invalid\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new SmartyStreetsApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SponsorshipApi\");\r\n\r\nvar AbstractApi = require(\"./AbstractApi\");\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\nvar SponsorshipApi = class extends AbstractApi {\r\n\tsearch(options) {\r\n\t\toptions = options || {};\r\n\t\treturn this.get({\r\n\t\t\tqueryString: ApiHelper.deleteUndefinedValues({\r\n\t\t\t\tcriteria: options.criteria,\r\n\t\t\t\tid: options.id,\r\n\t\t\t\tlayoutId: options.layoutId,\r\n\t\t\t\tlayoutName: options.layoutName,\r\n\t\t\t\tlimit: options.limit,\r\n\t\t\t\toffset: options.offset,\r\n\t\t\t\tsearchId: options.searchId,\r\n\t\t\t\tsponsorshipType: options.sponsorshipType\r\n\t\t\t}, /*includeNulls*/true),\r\n\t\t\turl: \"/api/sponsorship/getresults\"\r\n\t\t});\r\n\t}\r\n\r\n\tisAvailableForSponsorship(options) {\r\n\t\toptions = options || {};\r\n\t\treturn this.get({\r\n\t\t\turl: `/api/sponsorship/${options.sponsorshipCode}/isavailable`\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = new SponsorshipApi();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ApplePayHelper\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\n\r\nvar ApplePayApi = require(\"../api/ApplePayApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar CheckoutHelper = require(\"../commonComponents/CheckoutHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nmodule.exports = {\r\n\tinitialize: function () {\r\n\t\t// Once the page has loaded, if Apple has removed the Apple Pay Button or PaymentRequest is not defined, we should remove the component.\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tvar applePayConfiguration = CheckoutActions.getApplePayConfiguration();\r\n\t\t\t\tvar $applePayButton = $(\"apple-pay-button\");\r\n\r\n\t\t\t\tif (applePayConfiguration.enableApplePay === \"N\" || $applePayButton.css(\"display\") === \"none\" || !window.PaymentRequest) {\r\n\t\t\t\t\t$(\"[data-component='applePay']\").remove();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t});\r\n\t},\r\n\r\n\tonApplePayButtonClicked: function () {\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar components = CheckoutActions.getComponentsForCheckoutValidation(Constants.CHECKOUT_VALIDATION_TYPES.ALTERNATIVE_BUTTON_CHECKOUT);\r\n\t\tvar addressStandardizationOptions = { primaryAddressFormName: AccountFormHelper.getPrimaryAddressFormName() };\r\n\t\tvar applePayErrorMessages = CheckoutActions.getApplePayDisplayMessages();\r\n\t\tapplePayErrorMessages.sessionErrorLogMessage = \"Apple Pay Error: Unable to start a valid payment session.\";\r\n\t\tapplePayErrorMessages.paymentCreationErrorLogMessage = \"Apple Pay Error: Unable to create valid payment information for processing the selected payment.\";\r\n\r\n\t\tCheckoutActions.validateCheckout(null, { components }, addressStandardizationOptions).always(validationResult => {\r\n\t\t\tif (!validationResult.isValid) {\r\n\t\t\t\t// Our normal validation error messages have already been displayed at this point.\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tCheckoutHelper.getCheckoutData().always(dataToSend => {\r\n\t\t\t\tif (!dataToSend) {\r\n\t\t\t\t\t// Our normal data collection error messages have already been displayed at this point.\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We have to perform a reCAPTCHA challenge before displaying the Payment Screen\r\n\t\t\t\tCheckoutActions.validateWithReCAPTCHA().always(validationResult => {\r\n\t\t\t\t\tif (validationResult.reCAPTCHAResponseToken) {\r\n\t\t\t\t\t\tdataToSend.reCAPTCHAResponseToken = validationResult.reCAPTCHAResponseToken;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst paymentRequest = this.getApplePayPaymentRequest(applePayErrorMessages);\r\n\t\t\t\t\tif (paymentRequest) {\r\n\t\t\t\t\t\tthis.startApplePayPaymentSession(paymentRequest, applePayErrorMessages);\r\n\t\t\t\t\t\tthis.performApplePayCheckout(paymentRequest, dataToSend, applePayErrorMessages);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tgetApplePayPaymentRequest: function (applePayErrorMessages) {\r\n\t\tvar applePayConfiguration = CheckoutActions.getApplePayConfiguration();\r\n\r\n\t\tconst paymentMethodData = [{\r\n\t\t\t\"supportedMethods\": \"https://apple.com/apple-pay\",\r\n\t\t\t\"data\": {\r\n\t\t\t\t\"version\": 13,\r\n\t\t\t\t\"merchantIdentifier\": applePayConfiguration.merchantIdentifier,\r\n\t\t\t\t\"merchantCapabilities\": [\r\n\t\t\t\t\t\"supports3DS\"\r\n\t\t\t\t],\r\n\t\t\t\t\"supportedNetworks\": [ // This is all Apple's supported networks.\r\n\t\t\t\t\t\"amex\",\r\n\t\t\t\t\t\"cartesBancaires\",\r\n\t\t\t\t\t\"chinaUnionPay\",\r\n\t\t\t\t\t\"dankort\",\r\n\t\t\t\t\t\"discover\",\r\n\t\t\t\t\t\"eftpos\",\r\n\t\t\t\t\t\"electron\",\r\n\t\t\t\t\t\"elo\",\r\n\t\t\t\t\t\"girocard\",\r\n\t\t\t\t\t\"interac\",\r\n\t\t\t\t\t\"jcb\",\r\n\t\t\t\t\t\"mada\",\r\n\t\t\t\t\t\"maestro\",\r\n\t\t\t\t\t\"masterCard\",\r\n\t\t\t\t\t\"mir\",\r\n\t\t\t\t\t\"privateLabel\",\r\n\t\t\t\t\t\"visa\",\r\n\t\t\t\t\t\"vPay\"\r\n\t\t\t\t],\r\n\t\t\t\t\"countryCode\": applePayConfiguration.merchantCountry\r\n\t\t\t}\r\n\t\t}];\r\n\r\n\t\tconst paymentDetails = {\r\n\t\t\t\"total\": {\r\n\t\t\t\t\"type\": \"final\",\r\n\t\t\t\t\"label\": applePayConfiguration.merchantDisplayName,\r\n\t\t\t\t\"amount\": {\r\n\t\t\t\t\t\"value\": CheckoutActions.getTotalAmount(),\r\n\t\t\t\t\t\"currency\": CheckoutActions.getCurrency()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst paymentOptions = {\r\n\t\t\t\"requestPayerName\": false,\r\n\t\t\t\"requestBillingAddress\": false,\r\n\t\t\t\"requestPayerEmail\": false,\r\n\t\t\t\"requestPayerPhone\": false,\r\n\t\t\t\"requestShipping\": false,\r\n\t\t\t\"shippingType\": \"shipping\"\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\treturn new PaymentRequest(paymentMethodData, paymentDetails, paymentOptions);\r\n\t\t} catch (exception) {\r\n\t\t\tthis.handleApplePayError(exception, applePayErrorMessages.paymentUnavailable);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t},\r\n\r\n\tstartApplePayPaymentSession: function (paymentRequest, applePayErrorMessages) {\r\n\t\tpaymentRequest.onmerchantvalidation = (event) => {\r\n\t\t\tApplePayApi.createApplePayPaymentSession(event.validationURL).then(paymentSessionResponse => {\r\n\t\t\t\tvar session = paymentSessionResponse && paymentSessionResponse.paymentSession;\r\n\t\t\t\tif (session) {\r\n\t\t\t\t\tevent.complete(session);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpaymentRequest.abort();\r\n\t\t\t\t\tthis.handleApplePayError(applePayErrorMessages.sessionErrorLogMessage, applePayErrorMessages.paymentUnavailable);\r\n\t\t\t\t}\r\n\t\t\t}).catch(exception => {\r\n\t\t\t\tpaymentRequest.abort();\r\n\t\t\t\tthis.handleApplePayError(applePayErrorMessages.sessionErrorLogMessage, applePayErrorMessages.paymentUnavailable);\r\n\t\t\t});\r\n\t\t};\r\n\t},\r\n\r\n\tperformApplePayCheckout: function (paymentRequest, dataToSend, applePayErrorMessages) {\r\n\t\t// Display the Payment Screen\r\n\t\tpaymentRequest.show().then((paymentResponse) => {\r\n\t\t\tvar paymentInformation = this.getApplePayPaymentInformation(paymentResponse);\r\n\t\t\tif (paymentInformation) {\r\n\t\t\t\t// Submit Checkout\r\n\t\t\t\tCheckoutActions.processPreTokenizedPaymentCheckout(\r\n\t\t\t\t\tpaymentInformation,\r\n\t\t\t\t\tdataToSend,\r\n\t\t\t\t\t(successCallback) => { this.dismissPaymentSheet(paymentResponse, \"success\") },\r\n\t\t\t\t\t(failureCallback) => { this.dismissPaymentSheet(paymentResponse, \"fail\") }\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tthis.handleApplePayError(applePayErrorMessages.paymentCreationErrorLogMessage, applePayErrorMessages.tokenizationFailed);\r\n\t\t\t\tthis.dismissPaymentSheet(paymentResponse, \"fail\");\r\n\t\t\t}\r\n\t\t}).catch(exception => {\r\n\t\t\t// If the user manually closed (aborted) the Payment Screen, we should skip the alert message.\r\n\t\t\tvar shouldSkipAlert = exception && exception.name === \"AbortError\";\r\n\t\t\tthis.handleApplePayError(exception, applePayErrorMessages.paymentUnavailable, shouldSkipAlert);\r\n\t\t});\r\n\t},\r\n\r\n\tgetApplePayPaymentInformation: function (paymentResponse) {\r\n\t\tvar paymentInformation = null;\r\n\r\n\t\tvar token = paymentResponse && paymentResponse.details && paymentResponse.details.token;\r\n\t\tif (token) {\r\n\t\t\tvar paymentMethod = token.paymentMethod || {};\r\n\r\n\t\t\tvar hostedPageToken = this.createHostedPageTokenFromApplePayResponseToken(token);\r\n\t\t\tvar cardType = (paymentMethod.network || \"\").toUpperCase();\r\n\t\t\tvar last4Digits = (paymentMethod.displayName || \"\").slice(-4);\r\n\t\t\tvar type = \"CC\";\r\n\r\n\t\t\t// Apple Pay provides data for the following fields in the CombinedPaymentDto/PaymentContainer:\r\n\t\t\tpaymentInformation = {\r\n\t\t\t\thostedPageToken,\r\n\t\t\t\tcardType,\r\n\t\t\t\tlast4Digits,\r\n\t\t\t\ttype\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn paymentInformation;\r\n\t},\r\n\r\n\tcreateHostedPageTokenFromApplePayResponseToken: function (token) {\r\n\t\tvar paymentData = token && token.paymentData || {};\r\n\t\tvar data = paymentData.data || \"\";\r\n\t\tvar signature = paymentData.signature || \"\";\r\n\r\n\t\tvar header = paymentData.header || {};\r\n\t\tvar ephemeralPublicKey = header.ephemeralPublicKey || \"\";\r\n\t\tvar transactionId = header.transactionId || \"\";\r\n\t\tvar publicKeyHash = header.publicKeyHash || \"\";\r\n\r\n\t\treturn `APPLE_PAY|${data}&ectype=apple&ecsig=${signature}&eckey=${ephemeralPublicKey}&ectid=${transactionId}&echash=&ecpublickeyhash=${publicKeyHash}`;\r\n\t},\r\n\r\n\thandleApplePayError(logMessage, errorMessage, shouldSkipAlert) {\r\n\t\tif (!shouldSkipAlert) {\r\n\t\t\tLoggerInstance.error(logMessage);\r\n\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t}\r\n\t\tSpinner.removeSpinner();\r\n\t},\r\n\r\n\tdismissPaymentSheet: function (paymentResponse, completionStatus) {\r\n\t\tpaymentResponse.complete(completionStatus);\r\n\t}\r\n};","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\n// Note: this is different from the other quantity component because it needs to support blur functionality\r\n// see JavaScript/productComponents/Quantity.jsx\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CartItemQuantity\");\r\nvar React = require(\"react\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\n\r\nclass CartItemQuantity extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar state = this.getStateFromStore(props);\r\n\t\tstate.focused = false;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tstate.quantity = 1;\r\n\t\t}\r\n\r\n\t\tthis.state = state;\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleBlur(event) {\r\n\t\t// must be whole number, > 0\r\n\t\tvar quantity = event.currentTarget.value;\r\n\t\tvar isValidQuantity = quantity.match(/^[1-9]\\d*$/) !== null;\r\n\r\n\t\tif (!isValidQuantity) {\r\n\t\t\tCheckoutActions.setProductQuantity(this.props.cartItemId, 1);\r\n\t\t} else {\r\n\t\t\tCheckoutActions.setProductQuantity(this.props.cartItemId, quantity);\r\n\t\t}\r\n\r\n\t\tthis.setState({ focused: false }, () => {\r\n\t\t\tif (!this.props.isDesignMode) {\r\n\t\t\t\tCheckoutActions.updateProduct(this.props.cartItemId);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\thandleFocus() {\r\n\t\tthis.setState({ focused: true });\r\n\t}\r\n\r\n\thandleAmountChange(event) {\r\n\t\t// must be whole number, > 0\r\n\t\tif (event.currentTarget.value === \"0\") {\r\n\t\t\tCheckoutActions.setProductQuantity(this.props.cartItemId, 1);\r\n\t\t} else if (event.currentTarget.value.match(/^\\d*$/)) {\r\n\t\t\tCheckoutActions.setProductQuantity(this.props.cartItemId, event.currentTarget.value);\r\n\t\t}\r\n\t}\r\n\r\n\tgetStateFromStore(props) {\r\n\t\treturn {\r\n\t\t\tquantity: CheckoutStore.getProductQuantity((props || this.props).cartItemId)\r\n\t\t};\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.getStateFromStore());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tCheckoutStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tCheckoutStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tCheckoutActions.setProductQuantity(this.props.cartItemId, null);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar quantity = this.state.quantity;\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"CartItemQuantity\"\r\n\t\t\t\tdata-react-component-category=\"ProductCartItemComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<input\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tvalue={quantity}\r\n\t\t\t\t\tonBlur={this.handleBlur.bind(this)}\r\n\t\t\t\t\tonChange={this.handleAmountChange.bind(this)}\r\n\t\t\t\t\tonFocus={this.handleFocus.bind(this)}\r\n\t\t\t\t\tclassName={this.props.className}\r\n\t\t\t\t\tdata-override-classes={this.props.className}\r\n\t\t\t\t\tinputMode=\"numeric\"\r\n\t\t\t\t/>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCartItemQuantity.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tisDesignMode: PropTypes.bool,\r\n\tcartItemId: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = CartItemQuantity;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"CartItemUseOnDay\");\r\nvar React = require(\"react\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\n\r\nclass CartItemUseOnDay extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar state = this.getStateFromStore(props);\r\n\t\tvar wizardUseOnDays = CheckoutStore.get(\"wizardUseOnDays\") || { allowedUseOnDays: [] };\r\n\t\tvar allowedUseOnDays = wizardUseOnDays.allowedUseOnDays || [];\r\n\t\tvar useOnDays = props.useOnDays;\r\n\t\tvar useOnDay;\r\n\r\n\t\tif (allowedUseOnDays && useOnDays) {\r\n\t\t\tfor (var i = useOnDays.length - 1; i >= 0; --i) {\r\n\t\t\t\tuseOnDay = useOnDays[i];\r\n\t\t\t\tvar allowedIndex = allowedUseOnDays.indexOf(useOnDay.value);\r\n\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t// UseOnDay is not allowed\r\n\t\t\t\t\tuseOnDays.splice(i, 1);\r\n\t\t\t\t} else if (useOnDay.useDefaultDescription) {\r\n\t\t\t\t\t// UseOnDay should use default description\r\n\t\t\t\t\tuseOnDay.description = wizardUseOnDays[`${useOnDay.value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tuseOnDays = [];\r\n\t\t}\r\n\r\n\t\tstate.useOnDays = useOnDays;\r\n\r\n\t\tthis.state = state;\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleChange(event) {\r\n\t\tCheckoutActions.setDonationUseOnDay(this.props.cartItemId, event.currentTarget.value);\r\n\t\tCheckoutActions.updateDonation(this.props.cartItemId);\r\n\t}\r\n\r\n\tgetStateFromStore(props) {\r\n\t\treturn {\r\n\t\t\tselectedUseOnDay: CheckoutStore.getDonationUseOnDay((props || this.props).cartItemId)\r\n\t\t};\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.getStateFromStore());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tCheckoutStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tCheckoutStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tCheckoutActions.setDonationUseOnDay(this.props.cartItemId, null);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar selectedUseOnDay = this.state.selectedUseOnDay;\r\n\t\tvar enabled = this.props.isDesignMode || CheckoutStore.getDonationFrequency(this.props.cartItemId) !== \"O\";\r\n\t\tvar useOnDays = this.state.useOnDays;\r\n\t\tvar showEmpty = !selectedUseOnDay || useOnDays.findIndex(useOnDay => (useOnDay.value || \"\").toString() === (selectedUseOnDay || \"\").toString()) === -1;\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"CartItemUseOnDay\"\r\n\t\t\t\tdata-react-component-category=\"DonationCartItemComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tvalue={selectedUseOnDay || \"\"}\r\n\t\t\t\t\tonChange={this.handleChange.bind(this)}\r\n\t\t\t\t\tclassName={classNames(this.props.className, {disabled: !enabled})}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.className}\r\n\t\t\t\t\tdisabled={!enabled}\r\n\t\t\t\t>\r\n\t\t\t\t\t{showEmpty &&\r\n\t\t\t\t\t\t<option value=\"\" />\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{useOnDays && useOnDays.map(useOnDay => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option key={useOnDay.value} value={useOnDay.value}>\r\n\t\t\t\t\t\t\t\t{useOnDay.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCartItemUseOnDay.defaultProps = {};\r\n\r\nCartItemUseOnDay.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tisDesignMode: PropTypes.bool,\r\n\tcartItemId: PropTypes.string,\r\n\tuseOnDays: PropTypes.arrayOf(PropTypes.shape({\r\n\t\tdescription: PropTypes.string,\r\n\t\tvalue: PropTypes.string\r\n\t})),\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = CartItemUseOnDay;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"ChargeToday\");\r\nvar React = require(\"react\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\n\r\nclass ChargeToday extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = this.getStateFromStore(props);\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleChange(event) {\r\n\t\tCheckoutActions.setDonationChargeToday(this.props.cartItemId, event.currentTarget.checked);\r\n\t\tif (!this.props.isDesignMode) {\r\n\t\t\tCheckoutActions.updateDonation(this.props.cartItemId);\r\n\t\t}\r\n\t}\r\n\r\n\tgetStateFromStore(props) {\r\n\t\treturn {\r\n\t\t\tisChargeToday: CheckoutStore.getDonationChargeToday((props || this.props).cartItemId)\r\n\t\t};\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.getStateFromStore());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tCheckoutStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tCheckoutStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tCheckoutActions.setDonationChargeToday(this.props.cartItemId, false);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar startDate = CheckoutStore.getDonationStartDate(this.props.cartItemId);\r\n\t\tvar recurringStartsToday = startDate.isSame(new Date(), \"day\");\r\n\t\tvar isChargeToday = this.state.isChargeToday || recurringStartsToday;\r\n\t\tvar isChargeTodayRequired = CheckoutStore.getIsDonationChargeTodayRequired(this.props.cartItemId);\r\n\t\tvar isDisabled = !this.props.isDesignMode && (\r\n\t\t\tisChargeTodayRequired ||\r\n\t\t\tCheckoutStore.getDonationFrequency(this.props.cartItemId) === \"O\" ||\r\n\t\t\trecurringStartsToday\r\n\t\t);\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"ChargeToday\"\r\n\t\t\t\tdata-react-component-category=\"DonationCartItemComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<input\r\n\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\tclassName={classNames(this.props.className, {disabled: isDisabled})}\r\n\t\t\t\t\tdata-override-classes={this.props.className}\r\n\t\t\t\t\tchecked={isChargeToday}\r\n\t\t\t\t\tonChange={this.handleChange.bind(this)}\r\n\t\t\t\t\tdisabled={isDisabled}\r\n\t\t\t\t/>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nChargeToday.defaultProps = {};\r\n\r\nChargeToday.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tisDesignMode: PropTypes.bool,\r\n\tcartItemId: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = ChargeToday;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CheckoutActions\");\r\n\r\nvar CheckoutApi = require(\"./CheckoutApi\");\r\nvar CheckoutConstants = require(\"./CheckoutConstants\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\nvar DonationUpsellHelper = require(\"./DonationUpsellHelper\");\r\nvar ShippingHelper = require(\"./ShippingHelper\");\r\nvar TaxHelper = require(\"./TaxHelper\");\r\n\r\nvar AccountActions = require(\"../accountComponents/AccountActions\");\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar SavedPaymentHelper = require(\"../accountComponents/SavedPaymentHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar CheckoutHelper = require(\"../commonComponents/CheckoutHelper\");\r\nvar PaymentHelper = require(\"../commonComponents/PaymentHelper\");\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\n\r\nvar CheckoutActions = {\r\n\tgetCartDonations: function () {\r\n\t\treturn CheckoutStore.getCartDonations();\r\n\t},\r\n\r\n\tgetSaveForLaterCartDonations: function () {\r\n\t\treturn CheckoutStore.getSaveForLaterCartDonations();\r\n\t},\r\n\r\n\tapplyCoupon: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Apply Coupon called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar couponCode = $(\"[data-component='applyCouponForm.input']\").val();\r\n\r\n\t\t// If they didn't enter a coupon code, don't try and process it.\r\n\t\tif (!couponCode) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.INVALID_COUPON_CODE\r\n\t\t\t));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tif (CheckoutStore.isShoppingCart()) {\r\n\t\t\tthis._applyCartCoupon(couponCode);\r\n\t\t} else {\r\n\t\t\tthis._applyOnePageCoupon(couponCode);\r\n\t\t}\r\n\t},\r\n\r\n\t_applyCartCoupon: function(couponCode) {\r\n\t\tvar cartType = CheckoutStore.getCartType();\r\n\r\n\t\t// get account address information\r\n\t\tvar address = AccountFormHelper.serializeCreateAccountFormOnly({\r\n\t\t\tcreateAddressIfNotExists: true\r\n\t\t}).address;\r\n\r\n\t\tCheckoutApi.applyCoupon({\r\n\t\t\tcartType: cartType,\r\n\t\t\tcountry: address.country,\r\n\t\t\tcouponCode: couponCode,\r\n\t\t\tpostalCode: address.postalCode\r\n\t\t}).done(() => {\r\n\t\t\twindow.location.reload();\r\n\t\t\treturn false;\r\n\t\t}).fail((jqXHR) => {\r\n\t\t\tvar systemError = jqXHR.responseJSON.message;\r\n\t\t\tvar displayableError = \"\";\r\n\r\n\t\t\tif (systemError === Constants.COUPON_ERRORS.GEO_RESTRICTION_INFO_NEEDED) {\r\n\t\t\t\tdisplayableError = CheckoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.COUPON_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.COUPON_MESSAGE_FIELDS.GEOGRAPHIC_ERROR);\r\n\t\t\t} else {\r\n\t\t\t\tdisplayableError = CheckoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.COUPON_DISPLAY_MESSAGES,\r\n\t\t\t\t\tWizardConstants.COUPON_MESSAGE_FIELDS.DEFAULT_ERROR);\r\n\t\t\t}\r\n\r\n\t\t\tBootstrapPrompt.alert(displayableError);\r\n\t\t\treturn false;\r\n\t\t});\r\n\t},\r\n\r\n\t_applyOnePageCoupon: function(couponCode) {\r\n\t\tvar productCode = CheckoutStore.get(\"productCode\");\r\n\t\tCheckoutHelper.getCheckoutData().always(cartData => {\r\n\t\t\tCheckoutApi.applyOnePageCoupon({\r\n\t\t\t\tcart: cartData,\r\n\t\t\t\tcouponCode: couponCode\r\n\t\t\t}).done((data) => {\r\n\t\t\t\t// first, clear the UI\r\n\t\t\t\tvar discountAmount = data.discountAmount || null;\r\n\t\t\t\tvar freeShippingMethod = data.freeShippingMethod || null;\r\n\t\t\t\tvar freeShippingMethodDescription = data.freeShippingMethodDescription || null;\r\n\r\n\t\t\t\t$(\"[data-component='applyCouponForm.input']\").val(\"\");\r\n\t\t\t\tthis.updateCouponCodeUI({\r\n\t\t\t\t\tcouponCode: null,\r\n\t\t\t\t\tproductCode\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// second, update session storage\r\n\t\t\t\tif (discountAmount) {\r\n\t\t\t\t\tsessionStorage.setItem(`currentCoupon_${productCode}`, couponCode.toUpperCase());\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsessionStorage.removeItem(`currentCoupon_${productCode}`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// next, update data in the store.\r\n\t\t\t\t// this call will handle updating selected/free shipping\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.CART_UPDATE_PRODUCT_OPCO_DISCOUNT,\r\n\t\t\t\t\tfreeShippingMethod: freeShippingMethod,\r\n\t\t\t\t\tfreeShippingMethodDescription: freeShippingMethodDescription,\r\n\t\t\t\t\tproductDiscount: discountAmount\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// last, update UI\r\n\t\t\t\tthis.updateCouponCodeUI({\r\n\t\t\t\t\tcouponCode: discountAmount ? couponCode.toUpperCase() : null,\r\n\t\t\t\t\tproductCode\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}).fail((jqXHR) => {\r\n\t\t\t\t// check error message\r\n\t\t\t\tvar systemError = jqXHR.responseJSON.message;\r\n\t\t\t\tvar displayableError = \"\";\r\n\r\n\t\t\t\t// if we've failed, clear out coupon code.\r\n\t\t\t\tthis._removeCoupon();\r\n\r\n\t\t\t\tif (systemError === Constants.COUPON_ERRORS.GEO_RESTRICTION_INFO_NEEDED) {\r\n\t\t\t\t\tdisplayableError = CheckoutStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.COUPON_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.COUPON_MESSAGE_FIELDS.GEOGRAPHIC_ERROR);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdisplayableError = CheckoutStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.COUPON_DISPLAY_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.COUPON_MESSAGE_FIELDS.DEFAULT_ERROR);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tBootstrapPrompt.alert(displayableError);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\treapplyOnePageCoupon: function(isInitialization) {\r\n\t\t// Determine if we've already initialized this\r\n\t\tvar couponInitialized = CheckoutStore.get(\"couponInitialized\");\r\n\t\tif (isInitialization && couponInitialized) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar productCode = CheckoutStore.get(\"productCode\");\r\n\t\tvar couponCode = sessionStorage.getItem(`currentCoupon_${productCode}`);\r\n\r\n\t\tif (couponCode) {\r\n\t\t\tthis._applyOnePageCoupon(couponCode);\r\n\t\t\tthis.updateCouponCodeUI({\r\n\t\t\t\tcouponCode,\r\n\t\t\t\tproductCode\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (isInitialization) {\r\n\t\t\tCheckoutStore.couponHasBeenInitialized();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateCouponCodeUI: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar productCode = options.productCode || CheckoutStore.get(\"productCode\");\r\n\t\tvar couponCode = options.couponCode || sessionStorage.getItem(`currentCoupon_${productCode}`);\r\n\r\n\t\tvar $currentCouponComponent = $(\"[data-component='currentCoupon']\");\r\n\t\tvar $couponLabel = $(\"[data-dynamic-property='coupon']\");\r\n\r\n\t\tif (couponCode) {\r\n\t\t\t$couponLabel.html(couponCode);\r\n\t\t\t$currentCouponComponent.show();\r\n\t\t} else {\r\n\t\t\t$currentCouponComponent.hide();\r\n\t\t}\r\n\t},\r\n\r\n\tisDesignMode: function() {\r\n\t\treturn CheckoutStore.get(\"isDesignMode\");\r\n\t},\r\n\r\n\tremoveCoupon: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"removeCouponLink\"));\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._removeCoupon();\r\n\t},\r\n\r\n\t_removeCoupon: function() {\r\n\t\tif (CheckoutStore.isShoppingCart()) {\r\n\t\t\tvar cartType = CheckoutStore.getCartType();\r\n\r\n\t\t\tCheckoutApi.applyCoupon({\r\n\t\t\t\tcartType: cartType,\r\n\t\t\t\tcouponCode: null\r\n\t\t\t}).done(() => {\r\n\t\t\t\t// Coupon removed successfully\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t\treturn false;\r\n\t\t\t}).fail((jqXHR) => {\r\n\t\t\t\t// Coupon application failed, show message.\r\n\t\t\t\tBootstrapPrompt.alert(jqXHR.responseJSON.message);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar productCode = CheckoutStore.get(\"productCode\");\r\n\t\t\tthis.removeOpcoCoupon(productCode);\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.CART_UPDATE_PRODUCT_OPCO_DISCOUNT,\r\n\t\t\t\tproductDiscount: 0\r\n\t\t\t});\r\n\r\n\t\t\tthis.updateCouponCodeUI({ productCode });\r\n\t\t}\r\n\t},\r\n\r\n\tremoveOpcoCoupon: function(productCode) {\r\n\t\tif (!CheckoutStore.isShoppingCart()) {\r\n\t\t\tproductCode = productCode || CheckoutStore.get(\"productCode\");\r\n\t\t\tsessionStorage.removeItem(`currentCoupon_${productCode}`);\r\n\t\t}\r\n\t},\r\n\r\n\tremoveDonationFromCart: function(cartItemId) {\r\n\t\tCheckoutActions.removeFromCart(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tremoveDonationPremiumFromCart: function(cartItemId) {\r\n\t\t//Cannot do normal process for Ctrl+click because no event is passed in\r\n\t\t//\tUsing window.event because this works in Chrome and we are saying the designer only works in Chrome.\r\n\t\tif (this.isDesignMode()) {\r\n\t\t\tthis._getEventOrReturn(window.event, LinkMessageHelper.linkMessageMapper(\"removePremium\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tCheckoutActions.updateDonation(cartItemId, { removePremium: true });\r\n\t\treturn false;\r\n\t},\r\n\r\n\tremoveProductFromCart: function(cartItemId) {\r\n\t\tCheckoutActions.removeFromCart(cartItemId, Constants.CART_ITEM_PRODUCT);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tremoveRegistrationFromCart: function(cartItemId) {\r\n\t\tCheckoutActions.removeFromCart(cartItemId, Constants.CART_ITEM_EVENT);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tremoveSubscriptionFromCart: function(cartItemId) {\r\n\t\tCheckoutActions.removeFromCart(cartItemId, Constants.CART_ITEM_SUBSCRIPTION);\r\n\t\treturn false;\r\n\t},\r\n\r\n\tmoveToSaveForLater: function(event, cartItemId) {\r\n\t\tvar itemType = this._findItemType(event);\r\n\t\tvar cartItem = CheckoutStore.getItem(cartItemId, itemType);\r\n\r\n\t\tif (itemType === Constants.CART_ITEM_PROJECT && cartItem.groupId) {\r\n\t\t\tvar groupItems = CheckoutStore.getGiftGroupDonationsByGroupId(cartItem.groupId);\r\n\t\t\tvar groupItemsCount = groupItems.length;\r\n\r\n\t\t\tif (groupItemsCount > 1) {\r\n\t\t\t\tvar minimumDonationAmount = CheckoutStore.getMinimumDonationAmount(cartItemId);\r\n\t\t\t\tvar donationGroupTotal = CheckoutStore.getDonationGroupTotal(cartItemId, { isRemoving: true });\r\n\r\n\t\t\t\tif (donationGroupTotal < minimumDonationAmount)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.applyInsufficientGiftGroupAmountStyling(cartItemId);\r\n\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.GIFT_GROUP_AMOUNT_INSUFFICIENT,\r\n\t\t\t\t\t\t{ formattedAmount: ActionsHelper.formatAmount(minimumDonationAmount, true) }\r\n\t\t\t\t\t));\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tCheckoutActions.moveToCart(event, cartItemId, Constants.CART_TYPES.SAVE_FOR_LATER, LinkMessageHelper.linkMessageMapper(\"toSaveForLater\"));\r\n\t},\r\n\r\n\tmoveToShoppingCart: function(event, cartItemId) {\r\n\t\tvar itemType = this._findItemType(event);\r\n\t\tvar cartItem = CheckoutStore.getItem(cartItemId, itemType);\r\n\r\n\t\tif (itemType === Constants.CART_ITEM_PROJECT && cartItem.groupId) {\r\n\t\t\tvar minimumDonationAmount = CheckoutStore.getMinimumDonationAmount(cartItemId);\r\n\r\n\t\t\tif (cartItem.amount < minimumDonationAmount)\r\n\t\t\t{\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.GIFT_AMOUNT_INSUFFICIENT,\r\n\t\t\t\t\t{ formattedAmount: ActionsHelper.formatAmount(minimumDonationAmount, true) }\r\n\t\t\t\t));\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tCheckoutActions.moveToCart(event, cartItemId, Constants.CART_TYPES.SHOPPING_CART, LinkMessageHelper.linkMessageMapper(\"toShoppingCart\"));\r\n\t},\r\n\r\n\tmoveToCart: function(event, cartItemId, cartType, designerMessage) {\r\n\t\ttry {\r\n\t\t\tevent = CheckoutActions._getEventOrReturn(event, designerMessage, /*preventDefaultInDesignMode*/false);\r\n\t\t\tif (!event) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar itemType = CheckoutActions._findItemType(event);\r\n\t\t\tif (itemType === null) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\r\n\t\t\tCheckoutApi.moveToCart(cartItemId, itemType, cartType).done(() => {\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.ITEM_MOVE_FAILED\r\n\t\t\t\t));\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\tremoveFromCart: function(cartItemId, itemType) {\r\n\t\t//Cannot do normal process for Ctrl+click because no event is passed in\r\n\t\t//\tUsing window.event because this works in Chrome and we are saying the designer only works in Chrome.\r\n\t\tif (this.isDesignMode()) {\r\n\t\t\tthis._getEventOrReturn(window.event, LinkMessageHelper.linkMessageMapper(\"removeFromCart\"));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: CheckoutConstants.CART_REMOVE_PENDING\r\n\t\t});\r\n\r\n\t\tvar cartItem = CheckoutStore.getItem(cartItemId, itemType);\r\n\r\n\t\tif (itemType === Constants.CART_ITEM_PROJECT &&\r\n\t\t\tcartItem.groupId && cartItem.cartType !== Constants.CART_TYPES.SAVE_FOR_LATER) {\r\n\t\t\tvar groupItems = CheckoutStore.getGiftGroupDonationsByGroupId(cartItem.groupId);\r\n\t\t\tvar groupItemsCount = groupItems.length;\r\n\r\n\t\t\tif (groupItemsCount > 1) {\r\n\t\t\t\tvar minimumDonationAmount = CheckoutStore.getMinimumDonationAmount(cartItemId);\r\n\t\t\t\tvar donationGroupTotal = CheckoutStore.getDonationGroupTotal(cartItemId, { isRemoving: true });\r\n\r\n\t\t\t\tif (donationGroupTotal < minimumDonationAmount)\r\n\t\t\t\t{\r\n\t\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\t\tactionType: CheckoutConstants.CART_REMOVE_FAILED\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.applyInsufficientGiftGroupAmountStyling(cartItemId);\r\n\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.GIFT_GROUP_AMOUNT_INSUFFICIENT,\r\n\t\t\t\t\t\t{ formattedAmount: ActionsHelper.formatAmount(minimumDonationAmount, true) }\r\n\t\t\t\t\t));\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tCheckoutApi.removeFromCart(cartItemId, itemType, cartItem.cartType || CheckoutStore.getCartType())\r\n\t\t\t.done(() => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: CheckoutConstants.CART_REMOVE_SUCCESS,\r\n\t\t\t\t\tcartItemId,\r\n\t\t\t\t\titemType\r\n\t\t\t\t});\r\n\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: CheckoutConstants.CART_REMOVE_FAILED\r\n\t\t\t\t});\r\n\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.ITEM_REMOVE_FAILED\r\n\t\t\t\t));\r\n\t\t\t});\r\n\t},\r\n\r\n\tapplyInsufficientGiftGroupAmountStyling: function(cartItemId) {\r\n\t\tCheckoutHelper.applyInsufficientGiftGroupAmountStyling(cartItemId);\r\n\t},\r\n\r\n\tsetDonationAmount: function(cartItemId, amount) {\r\n\t\tCheckoutActions.updateAmount(cartItemId, Constants.CART_ITEM_PROJECT, amount);\r\n\t},\r\n\r\n\tupdateAmount: function(cartItemId, itemType, amount) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: CheckoutConstants.CART_UPDATE_AMOUNT,\r\n\t\t\tcartItemId,\r\n\t\t\titemType,\r\n\t\t\tamount\r\n\t\t});\r\n\t},\r\n\r\n\tsetDonationChargeToday: function(cartItemId, chargeToday) {\r\n\t\tCheckoutActions.updateChargeToday(cartItemId, Constants.CART_ITEM_PROJECT, chargeToday);\r\n\t},\r\n\r\n\tupdateChargeToday: function(cartItemId, itemType, chargeToday) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.CART_UPDATE_CHARGE_TODAY,\r\n\t\t\tcartItemId,\r\n\t\t\titemType,\r\n\t\t\tchargeToday\r\n\t\t});\r\n\t},\r\n\r\n\tsetDonationFrequency: function(cartItemId, frequency) {\r\n\t\tCheckoutActions.updateFrequency(cartItemId, Constants.CART_ITEM_PROJECT, frequency);\r\n\t},\r\n\r\n\tupdateFrequency: function(cartItemId, itemType, frequency) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.CART_UPDATE_FREQUENCY,\r\n\t\t\tcartItemId,\r\n\t\t\titemType,\r\n\t\t\tfrequency\r\n\t\t});\r\n\t},\r\n\r\n\tsetDonationUseOnDay: function(cartItemId, useOnDay) {\r\n\t\tCheckoutActions.updateUseOnDay(cartItemId, Constants.CART_ITEM_PROJECT, useOnDay);\r\n\t},\r\n\r\n\tupdateUseOnDay: function(cartItemId, itemType, useOnDay) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.CART_UPDATE_USE_ON_DAY,\r\n\t\t\tcartItemId,\r\n\t\t\titemType,\r\n\t\t\tuseOnDay\r\n\t\t});\r\n\t},\r\n\r\n\tsetProductQuantity: function(cartItemId, quantity) {\r\n\t\tCheckoutActions.updateQuantity(cartItemId, Constants.CART_ITEM_PRODUCT, quantity);\r\n\t},\r\n\r\n\tupdateQuantity: function(cartItemId, itemType, quantity) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.CART_UPDATE_QUANTITY,\r\n\t\t\tcartItemId,\r\n\t\t\titemType,\r\n\t\t\tquantity\r\n\t\t});\r\n\r\n\t\tthis.reapplyOnePageCoupon();\r\n\t},\r\n\r\n\tupdateDonation: function(cartItemId, options) {\r\n\t\toptions = options || {};\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar cartType = CheckoutStore.getCartType();\r\n\t\tvar donation = CheckoutStore.getCartDonationForUpdate(cartItemId, options);\r\n\r\n\t\tif (!donation) {\r\n\t\t\tLoggerInstance.debug(\"Donation not found or not marked as dirty.\");\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (donation.cartType) {\r\n\t\t\tcartType = donation.cartType;\r\n\t\t\tdelete donation.cartType;\r\n\t\t}\r\n\r\n\t\tif (options.removePremium) {\r\n\t\t\tdonation.premium = null;\r\n\t\t}\r\n\r\n\t\tif (options.newStartDate) {\r\n\t\t\tdonation.startDate = options.newStartDate;\r\n\t\t}\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: CheckoutConstants.CART_UPDATE_PENDING,\r\n\t\t\tcartItemId\r\n\t\t});\r\n\r\n\t\tCheckoutApi.updateCartDonation(cartType, donation)\r\n\t\t\t.done(() => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: CheckoutConstants.CART_UPDATE_SUCCESS,\r\n\t\t\t\t\tcartItemId\r\n\t\t\t\t});\r\n\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t}).fail(message => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: CheckoutConstants.CART_UPDATE_FAILED,\r\n\t\t\t\t\tcartItemId,\r\n\t\t\t\t\tmessage\r\n\t\t\t\t});\r\n\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t});\r\n\t},\r\n\r\n\tupdateProduct: function(cartItemId) {\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar cartType = CheckoutStore.getCartType();\r\n\t\tvar product = CheckoutStore.getCartProductForUpdate(cartItemId);\r\n\r\n\t\tif (!product) {\r\n\t\t\tLoggerInstance.debug(\"Product not found or not marked as dirty.\");\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (product.cartType) {\r\n\t\t\tcartType = product.cartType;\r\n\t\t\tdelete product.cartType;\r\n\t\t}\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: CheckoutConstants.CART_UPDATE_PENDING,\r\n\t\t\tcartItemId\r\n\t\t});\r\n\r\n\t\tCheckoutApi.updateCartProduct(cartType, product)\r\n\t\t\t.done(() => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: CheckoutConstants.CART_UPDATE_SUCCESS,\r\n\t\t\t\t\tcartItemId\r\n\t\t\t\t});\r\n\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t}).fail(message => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: CheckoutConstants.CART_UPDATE_FAILED,\r\n\t\t\t\t\tcartItemId,\r\n\t\t\t\t\tmessage\r\n\t\t\t\t});\r\n\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t});\r\n\t},\r\n\r\n\t// Saved Payments\r\n\tdeleteSavedPayment: function (paymentRecordId) {\r\n\t\tSavedPaymentHelper.deleteSavedPayment(paymentRecordId);\r\n\t},\r\n\r\n\tshowAddNewPayment: function(event) {\r\n\t\tSavedPaymentHelper.handleAddNewPaymentLinkClick(event);\r\n\t\tCheckoutStore.setHasNewPaymentBeenShown();\r\n\t},\r\n\r\n\tinitializeCartRecurringStartDateDropdowns($dropdowns) {\r\n\t\t// update donation cart item\r\n\t\tthis.updateDonation();\r\n\t},\r\n\r\n\tinitializeStore: function(action) {\r\n\t\tPaymentHelper.initializeSaveForLaterCheckbox();\r\n\t\tDispatcher.dispatch(Object.assign({}, action, { actionType: Constants.CHECKOUT_INITIALIZE }));\r\n\r\n\t\tif (!action.isDesignMode) {\r\n\t\t\tAccountFormHelper.initializeAccountFormListeners(() => {\r\n\t\t\t\tif (this.isPayPalSupported()) {\r\n\t\t\t\t\tthis.disablePayPal();\r\n\r\n\t\t\t\t\t//Add Listener for required fields that could trigger validation errors.\r\n\t\t\t\t\t//\tWhen these fields change, we want to evaluate if our form is valid to submit to PayPal.\r\n\t\t\t\t\t//\tThe list of components here comes from CheckoutStore.updatePayPalButtonState()\r\n\t\t\t\t\t$(\"[data-component='accountDemographicsForm'],[data-component='createAccountForm'],[data-component='accountMediaForm'],[data-component='createGiftAccountForm'],[data-component='otherAddresses.addForm']\")\r\n\t\t\t\t\t\t.find(\":input\").change(() => {\r\n\t\t\t\t\t\t\tDispatcher.dispatch({ actionType: CheckoutConstants.VALIDATE_PAYPAL_CHECKOUT });\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tShippingHelper.updateShipping();\r\n\t\t\t\tDispatcher.dispatch({ actionType: CheckoutConstants.VALIDATE_PAYPAL_CHECKOUT });\r\n\t\t\t});\r\n\r\n\t\t\tShippingHelper.initializeShippingListeners();\r\n\t\t\tTaxHelper.initializeTaxListeners();\r\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\r\n\t\t\t\tSavedPaymentHelper.initializeSavedPayments(/*isCheckout*/true);\r\n\t\t\t});\r\n\r\n\t\t\tDonationUpsellHelper.initializeDonationUpsell();\r\n\r\n\t\t\t//Do not like having to do this, but the ProductStore has the event for quantity changing, but Checkout cannot reference that\r\n\t\t\t//\tWe are listening to an event one time that the quantity react component triggers to let us know that we can add our change listener on the quantity input.\r\n\t\t\t$(\"body\").one(\"mainProductQuantityMounted\", () => {\r\n\t\t\t\t$(\"input.main-product-quantity\").change(() => {\r\n\t\t\t\t\tCheckoutStore.setOPCOSubtotal();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// update coupon code UI if we're in OPCO\r\n\t\t\tif (!CheckoutStore.isShoppingCart()) {\r\n\t\t\t\tthis.reapplyOnePageCoupon(/* isInitialization */ true);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tprocessCreateAccountAndCheckout: function(event) {\r\n\t\tevent = CheckoutActions._getEventOrReturn(event, \"Create Account and Checkout called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar hasCreateAccountAndCheckout = $(\"[data-component=createAccountAndCheckout]\").length >= 1;\r\n\t\tif (!hasCreateAccountAndCheckout) {\r\n\t\t\tLoggerInstance.error(\"Create Account & Checkout Component not found on page, but processing was attempted.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar checkoutValidationType = Constants.CHECKOUT_VALIDATION_TYPES.CREATE_ACCOUNT_AND_CHECKOUT;\r\n\t\tvar addressStandardizationOptions = {\r\n\t\t\tcheckoutStoreRef: CheckoutStore,\r\n\t\t\tprimaryAddressFormName: \"createAccountForm\",\r\n\t\t\tvalidateBillingAddress: true\r\n\t\t};\r\n\t\tvar checkoutSubmissionOptions = {};\r\n\r\n\t\treturn this._validateAndSubmitCheckout(event, checkoutValidationType, addressStandardizationOptions, checkoutSubmissionOptions);\r\n\t},\r\n\r\n\t// This method is being called directly via an onclick handler from *.cshml\r\n\tprocessSavedPaymentCheckout: function(event) {\r\n\t\tevent = CheckoutActions._getEventOrReturn(event, \"Saved Payent Checkout called successfully.\", /*preventDefaultInDesignMode*/false);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar hasSavedPaymentCheckout = $(\"[data-component=savedPayments]\").length >= 1;\r\n\t\tif (!hasSavedPaymentCheckout) {\r\n\t\t\tLoggerInstance.error(\"Saved Payments Component not found on page, but processing was attempted.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar checkoutValidationType = Constants.CHECKOUT_VALIDATION_TYPES.SAVED_PAYMENT_CHECKOUT;\r\n\t\tvar addressStandardizationOptions = { checkoutStoreRef: CheckoutStore, validateBillingAddress: true };\r\n\t\tvar checkoutSubmissionOptions = {};\r\n\r\n\t\treturn this._validateAndSubmitCheckout(event, checkoutValidationType, addressStandardizationOptions, checkoutSubmissionOptions);\r\n\t},\r\n\r\n\t_validateAndSubmitCheckout: function (event, checkoutValidationType, addressStandardizationOptions, checkoutSubmissionOptions) {\r\n\t\ttry {\r\n\t\t\tvar components = this.getComponentsForCheckoutValidation(checkoutValidationType);\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tthis.validateCheckout(event, { components }, addressStandardizationOptions).always(validationResult => {\r\n\t\t\t\tif (!validationResult.isValid) {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar shouldApplyPaymentInformation = true;\r\n\t\t\t\tCheckoutHelper.getCheckoutData(event, shouldApplyPaymentInformation).always(dataToSend => {\r\n\t\t\t\t\tif (!dataToSend) {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tCheckoutActions._submitCheckout(dataToSend, checkoutSubmissionOptions);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t} finally {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\r\n\t// Returns an array of all components that should be validated during the checkout process.\r\n\t// Each Checkout Validation Process calls this method to collect the components that need to be validated.\r\n\tgetComponentsForCheckoutValidation: function (checkoutValidationType) {\r\n\t\tvar components = this._getCommonComponentsForCheckoutValidation();\r\n\r\n\t\tswitch (checkoutValidationType) {\r\n\t\t\t// Create Account and Checkout\r\n\t\t\tcase Constants.CHECKOUT_VALIDATION_TYPES.CREATE_ACCOUNT_AND_CHECKOUT:\r\n\t\t\t\tcomponents = [].concat([$(\"[data-component='createAccountAndCheckout']\")], components);\r\n\r\n\t\t\t\t// If we're on a Product Page, validate the suggested donation\r\n\t\t\t\tif (this._isPageType(Constants.TANGIBLE_TYPES.PRODUCTS)) {\r\n\t\t\t\t\tcomponents = [].concat([$(\"[data-component='suggestedDonationAmount']\")], components);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t// Saved Payment Checkout\r\n\t\t\tcase Constants.CHECKOUT_VALIDATION_TYPES.SAVED_PAYMENT_CHECKOUT:\r\n\t\t\t\tvar savedPaymentData = CheckoutHelper.savedPaymentComponentData();\r\n\t\t\t\tif (savedPaymentData && savedPaymentData.newSavedPayment) {\r\n\t\t\t\t\t//Need to validate the savedPayments.addNew component\r\n\t\t\t\t\tcomponents = [].concat([$(\"[data-component='savedPayments.addNew']\")], components);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t// Alternate Button Checkout (PayPal, Apple Pay, Google Pay, etc.)\r\n\t\t\tcase Constants.CHECKOUT_VALIDATION_TYPES.ALTERNATIVE_BUTTON_CHECKOUT:\r\n\t\t\t\t// The createAccountAndCheckout component includes the payment form, which should not be validated.\r\n\t\t\t\t// We only want to validate the createAccountForm portion in alternative button checkout flows.\r\n\t\t\t\tcomponents = [].concat([$(\"[data-component='createAccountAndCheckout'] [data-component='createAccountForm']\")], components);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn components;\r\n\t},\r\n\r\n\t_getCommonComponentsForCheckoutValidation: function () {\r\n\t\tvar components = [\r\n\t\t\t$(\"[data-component='accountDemographicsForm']\"),\r\n\t\t\t$(\"[data-component='accountMediaForm']\")\r\n\t\t];\r\n\r\n\t\t// If a user has selected an alternate shipping address, those components should also be validated.\r\n\t\tswitch ($(\"input[name='shipToAddressSelector']:checked\").val()) {\r\n\t\t\tcase \"gift\":\r\n\t\t\t\tcomponents = [].concat([$(\"[data-component='createGiftAccountForm']\")], components);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"other\":\r\n\t\t\t\tcomponents = [].concat([$(\"[data-component='otherAddresses.addForm']\")], components);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\t// If checking out from a Secure Project or Pledge Page, the secure input should also be validated.\r\n\t\tvar isSecurePage = this._isPageType(Constants.TANGIBLE_TYPES.SECURE_PROJECTS) || this._isPageType(Constants.TANGIBLE_TYPES.SECURE_PLEDGES);\r\n\t\tif (isSecurePage) {\r\n\t\t\tcomponents = [].concat([$(\"[data-component='textInput'][data-data-binding='secureInput']\")], components);\r\n\t\t}\r\n\r\n\t\t// If checking out from a Project or Pledge page, additional components should be validated.\r\n\t\tvar isProjectOrPledgePage = this._isPageType(Constants.TANGIBLE_TYPES.PROJECTS) ||\r\n\t\t\tthis._isPageType(Constants.TANGIBLE_TYPES.PLEDGES) ||\r\n\t\t\tisSecurePage;\r\n\r\n\t\tif (isProjectOrPledgePage) {\r\n\t\t\tvar componentsToAdd = \"[data-react-component-name='ButtonGiftArray'],[data-react-component-name='RadioGiftArray'],[data-react-component-name='SelectGiftArray'],[data-react-component-name='PledgeButtonGiftArray'],[data-react-component-name='PledgeRadioGiftArray'],[data-react-component-name='PledgeSelectGiftArray']\";\r\n\t\t\tcomponentsToAdd += \",[data-component='buttonGiftAmount'],[data-component='radioGiftAmount'],[data-component='selectGiftAmount']\";\r\n\r\n\t\t\tvar elements = $(componentsToAdd).filter((index, element) => {\r\n\t\t\t\tvar $element = $(element);\r\n\t\t\t\treturn $element.parents().length == $element.parents().not(\"[data-component='category.project'],[data-component='carousel.project'],[data-component='category.pledge'],[data-component='carousel.pledge']\").length;\r\n\t\t\t});\r\n\t\t\tcomponents = [].concat(elements, components);\r\n\t\t}\r\n\r\n\t\treturn components;\r\n\t},\r\n\r\n\t// This function returns a deferred object. It will always resolve rather than reject the returned promise.\r\n\t// Resolves with an object: { isValid: (boolean), errorMessages: [(string), (string), ...] }\r\n\tvalidateCheckout: function (event, validationOptions, addressStandardizationOptions) {\r\n\t\tvar addressCorrectionMessage = \"Constituent will correct address\";\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tvalidationOptions = validationOptions || {};\r\n\t\taddressStandardizationOptions = addressStandardizationOptions || {};\r\n\t\taddressStandardizationOptions.checkoutStoreRef = CheckoutStore;\r\n\r\n\t\tif (validationOptions.isDryRun) {\r\n\t\t\tvalidationOptions.currentInvalidComponents = $(\".invalid\");\r\n\t\t}\r\n\r\n\t\t//There were shopping cart errors when the page loaded\r\n\t\tvar shoppingCartErrors = CheckoutActions.getShoppingCartErrors();\r\n\t\tif (CheckoutActions.getDoShoppingCartErrorToPreventCheckoutExist() && shoppingCartErrors.length) {\r\n\t\t\tif (!validationOptions.doNotShowAlert) {\r\n\t\t\t\tBootstrapPrompt.alert(shoppingCartErrors.join(\"<br>\"));\r\n\t\t\t}\r\n\r\n\t\t\tthis._failCheckoutValidation(deferred, validationOptions, shoppingCartErrors);\r\n\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tValidationHelper.validate(validationOptions).always(validationResult => {\r\n\t\t\t// The Result of validate() can be different based on the options provided.\r\n\t\t\t// 1. A boolean value\r\n\t\t\t// 2. A validate Result object: { isValid: (boolean), errorMessages: [(string), (string), ...]}\r\n\t\t\tvar isValid = validationResult === true || (validationResult && validationResult.isValid);\r\n\t\t\tvar errorMessages = validationResult && validationResult.errorMessages || [];\r\n\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tthis._failCheckoutValidation(deferred, validationOptions, errorMessages);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (validationOptions.requirePopulatedAccountForm && !AccountFormHelper.hasPopulatedAccountForm()) {\r\n\t\t\t\t// TODO - A Wizard Message should be here to let constituents know that an address is required in this case.\r\n\t\t\t\t// (This says that the address fields are required even if they were not configured as 'required' fields in the Layout Designer)\r\n\t\t\t\tthis._failCheckoutValidation(deferred, validationOptions, errorMessages);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar isOptOut = false;\r\n\t\t\tif ($('input[name=\"projectPremiumsRadio\"]').length) {\r\n\t\t\t\tisOptOut = $('input[name=\"projectPremiumsRadio\"]:checked').parents(\"[data-component='projectPremiums.optOut']\").length;\r\n\t\t\t}\r\n\r\n\t\t\taddressStandardizationOptions.bypassShippingValidation = validationOptions.allowShippingValidationBypass && (\r\n\t\t\t\t(CheckoutStore.get(\"checkoutType\") === \"PRODUCTS\" && !CheckoutStore.get(\"hasShippableProducts\")) ||\r\n\t\t\t\tisOptOut\r\n\t\t\t);\r\n\r\n\t\t\tAccountFormHelper.validateShippingAddress(\r\n\t\t\t\tevent,\r\n\t\t\t\taddressStandardizationOptions\r\n\t\t\t).done(shippingAddressType => {\r\n\t\t\t\tvar passwordVerificationResult = AccountActions.verifyCreateAccountPasswords(validationOptions.doNotShowAlert);\r\n\t\t\t\tif (!passwordVerificationResult.isVerified) {\r\n\t\t\t\t\tthis._failCheckoutValidation(deferred, [validationOptions, ].concat(errorMessages, [passwordVerificationResult.errorMessage]));\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar validateBillingAddress = () => {\r\n\t\t\t\t\tif (addressStandardizationOptions.validateBillingAddress && $(\"[id=addBillingAddress]\").length) {\r\n\t\t\t\t\t\t// Verify the billing address if it is new\r\n\t\t\t\t\t\twindow.SmartyStreets.verifyAddress(\"billingAddressesAdd\").done(() => {\r\n\t\t\t\t\t\t\tdeferred.resolve({\r\n\t\t\t\t\t\t\t\tisValid: true\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}).fail(errorMessage => {\r\n\t\t\t\t\t\t\tif (errorMessage && errorMessage !== addressCorrectionMessage && !validationOptions.doNotShowAlert) {\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis._failCheckoutValidation(deferred, validationOptions, errorMessage !== addressCorrectionMessage ? [].concat(errorMessages, [errorMessage]) : errorMessages);\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdeferred.resolve({\r\n\t\t\t\t\t\t\tisValid: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar savedPaymentData = CheckoutHelper.savedPaymentComponentData();\r\n\t\t\t\tif (!savedPaymentData.savedPaymentCheckout && (shippingAddressType === \"other\" || shippingAddressType === \"gift\")) {\r\n\t\t\t\t\t// Verify the primary address if it has not already been verified as the shipping address.\r\n\t\t\t\t\twindow.SmartyStreets.verifyAddress(\"createAccountForm\").done(() => {\r\n\t\t\t\t\t\tvalidateBillingAddress();\r\n\t\t\t\t\t}).fail(errorMessage => {\r\n\t\t\t\t\t\tif (errorMessage && errorMessage !== addressCorrectionMessage && !validationOptions.doNotShowAlert) {\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._failCheckoutValidation(deferred, validationOptions, errorMessage !== addressCorrectionMessage ? [].concat(errorMessages, [errorMessage]) : errorMessages);\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalidateBillingAddress();\r\n\t\t\t\t}\r\n\t\t\t}).fail(errorMessage => {\r\n\t\t\t\tvar isDisplayErrorMessage = errorMessage && errorMessage !== addressCorrectionMessage;\r\n\r\n\t\t\t\tif (isDisplayErrorMessage && !validationOptions.doNotShowAlert) {\r\n\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._failCheckoutValidation(deferred, validationOptions, isDisplayErrorMessage ? [].concat(errorMessages, [errorMessage]) : errorMessages);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tvalidateWithReCAPTCHA: function () {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tif (window.reCAPTCHA) {\r\n\t\t\tdocument.addEventListener(\"mouseup\", CheckoutApi._removeCaptchaSpinner);\r\n\r\n\t\t\t$(\"#recaptcha\").one(\"Success\", (event, token) => {\r\n\t\t\t\tdeferred.resolve({ reCAPTCHAResponseToken: token });\r\n\t\t\t});\r\n\r\n\t\t\tif (!window.callingReCAPTCHA) {\r\n\t\t\t\tgrecaptcha.execute();\r\n\t\t\t}\r\n\r\n\t\t\treturn deferred;\r\n\t\t} else {\r\n\t\t\tdeferred.resolve({ reCAPTCHAResponseToken: null });\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tprocessPayPalPaymentPreCheckout: function() {\r\n\t\tvar deferred = $.Deferred();\r\n\t\ttry {\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tCheckoutHelper.getCheckoutData().always(cartData => {\r\n\t\t\t\tdeferred.resolve(cartData);\r\n\t\t\t});\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tdeferred.reject(exception);\r\n\t\t}\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tupdatePayPalButtonState: function(shouldMarkInvalidComponents) {\r\n\t\tvar deferred = $.Deferred();\r\n\t\ttry {\r\n\t\t\tif (CheckoutStore.get(\"isPayPalSupported\")) {\r\n\t\t\t\t//Disable paypal without a message as a default\r\n\t\t\t\t//If validation fails at anytime, disable with a message.\r\n\t\t\t\t//If validation is successful, enable paypal.\r\n\t\t\t\tCheckoutStore.disablePayPal();\r\n\r\n\t\t\t\tif (CheckoutStore.get(\"errorsToPreventCheckoutExist\")) {\r\n\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\treturn deferred;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar components = this.getComponentsForCheckoutValidation(Constants.CHECKOUT_VALIDATION_TYPES.ALTERNATIVE_BUTTON_CHECKOUT);\r\n\r\n\t\t\t\t// PayPal requires a populated address form, but allows the shipping address validation to be skipped if on non-shippable product page.\r\n\t\t\t\t// PayPal handles alerting constituents of errors, so we want to suppress the regular validation alerts.\r\n\t\t\t\tvar validationOptions = {\r\n\t\t\t\t\tcomponents: components,\r\n\t\t\t\t\trequirePopulatedAccountForm: true,\r\n\t\t\t\t\tallowShippingValidationBypass: true,\r\n\t\t\t\t\tisDryRun: !shouldMarkInvalidComponents,\r\n\t\t\t\t\tdoNotShowAlert: true\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar addressStandardizationOptions = {\r\n\t\t\t\t\tcheckoutStoreRef: CheckoutStore,\r\n\t\t\t\t\tprimaryAddressFormName: AccountFormHelper.getPrimaryAddressFormName()\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.validateCheckout(null, validationOptions, addressStandardizationOptions).always((validationResult) => {\r\n\t\t\t\t\tif (validationResult && validationResult.isValid) {\r\n\t\t\t\t\t\tCheckoutStore.enablePayPal();\r\n\t\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tCheckoutStore.disablePayPal(validationResult.errorMessages);\r\n\t\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t}\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tdeferred.reject();\r\n\t\t}\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t// Submits checkout using a pre-tokenized payment from an Alternative Checkout Button (PayPal, Apple Pay, Google Pay, etc.)\r\n\tprocessPreTokenizedPaymentCheckout: function (paymentInformation, dataToSend, successCallback, failureCallback) {\r\n\t\tdataToSend = dataToSend || {};\r\n\t\tdataToSend.payment = paymentInformation;\r\n\t\tCheckoutActions._submitCheckout(dataToSend, { successCallback, failureCallback });\r\n\t},\r\n\r\n\tupdateCartTotals: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Update Cart Totals called successfully.\");\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.location.reload();\r\n\t},\r\n\r\n\t_findItemType: function(event) {\r\n\t\tvar $element = $(event.target);\r\n\r\n\t\tif ($element.closest(\"[data-component='cart.populated.event']\").length) {\r\n\t\t\treturn Constants.CART_ITEM_EVENT;\r\n\t\t}\r\n\t\tif ($element.closest(\"[data-component='cart.populated.product']\").length) {\r\n\t\t\treturn Constants.CART_ITEM_PRODUCT;\r\n\t\t}\r\n\t\tif ($element.closest(\"[data-component='cart.populated.project']\").length) {\r\n\t\t\treturn Constants.CART_ITEM_PROJECT;\r\n\t\t}\r\n\t\tif ($element.closest(\"[data-component='cart.populated.subscription']\").length) {\r\n\t\t\treturn Constants.CART_ITEM_SUBSCRIPTION;\r\n\t\t}\r\n\t\tLoggerInstance.error(\"Item type could not be identified\");\r\n\t\treturn null;\r\n\t},\r\n\r\n\t_submitCheckout: function (dataToSend, options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tvar successCallback = () => {\r\n\t\t\tthis.removeOpcoCoupon();\r\n\r\n\t\t\tif (_.isFunction(options.successCallback)) {\r\n\t\t\t\toptions.successCallback();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar failureCallback = () => {\r\n\t\t\tif (_.isFunction(options.failureCallback)) {\r\n\t\t\t\toptions.failureCallback();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tCheckoutHelper.completeCheckout(dataToSend, successCallback, failureCallback);\r\n\t},\r\n\r\n\t_failCheckoutValidation(deferred, validationOptions, errorMessages) {\r\n\t\tif (validationOptions.isDryRun) {\r\n\t\t\t$(\".invalid\").not(validationOptions.currentInvalidComponents).removeClass(\"invalid\");\r\n\t\t}\r\n\t\t\r\n\t\tdeferred.resolve({\r\n\t\t\tisValid: false,\r\n\t\t\terrorMessages: errorMessages\r\n\t\t});\r\n\t},\r\n\r\n\t_isPageType: function(pageTypeConstant) {\r\n\t\treturn CheckoutStore.isPageType(pageTypeConstant);\r\n\t},\r\n\r\n\t_getEventOrReturn: function(event, isDesignModeMessage, preventDefaultInDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, CheckoutStore.get(\"isDesignMode\"), isDesignModeMessage, preventDefaultInDesignMode);\r\n\t},\r\n\r\n\tgetWizardValue(wizardName, wizardProperty) {\r\n\t\treturn CheckoutStore.getWizardValue(\r\n\t\t\twizardName,\r\n\t\t\twizardProperty\r\n\t\t);\r\n\t},\r\n\r\n\tgetPayPalErrorMessages() {\r\n\t\treturn CheckoutStore.getPayPalErrorMessages();\r\n\t},\r\n\r\n\tsetPayPalActions(actions, enabledOnLoad) {\r\n\t\tCheckoutStore.setPayPalActions(actions, enabledOnLoad);\r\n\t},\r\n\r\n\tisPayPalEnabled: function() {\r\n\t\treturn CheckoutStore.isPayPalEnabled();\r\n\t},\r\n\r\n\tisPayPalSupported: function() {\r\n\t\treturn CheckoutStore.get(\"isPayPalSupported\");\r\n\t},\r\n\r\n\tdisablePayPal: function() {\r\n\t\tCheckoutStore.disablePayPal();\r\n\t},\r\n\r\n\tgetApplePayConfiguration: function () {\r\n\t\treturn CheckoutStore.get(\"wizardApplePayConfiguration\") || {};\r\n\t},\r\n\r\n\tgetApplePayDisplayMessages: function () {\r\n\t\treturn CheckoutStore.get(\"wizardApplePayDisplayMessages\") || {};\r\n\t},\r\n\r\n\tgetGooglePayConfiguration: function () {\r\n\t\treturn CheckoutStore.get(\"wizardGooglePayConfiguration\") || {};\r\n\t},\r\n\r\n\tgetGooglePayDisplayMessages: function () {\r\n\t\treturn CheckoutStore.get(\"wizardGooglePayDisplayMessages\") || {};\r\n\t},\r\n\r\n\tgetCheckoutDispatcher: function() {\r\n\t\treturn CheckoutStore.getCheckoutDispatcher();\r\n\t},\r\n\r\n\tgetCurrency: function () {\r\n\t\treturn CheckoutStore.get(\"currency\");\r\n\t},\r\n\r\n\tgetShoppingCartErrors: function() {\r\n\t\treturn CheckoutStore.get(\"errors\") || [];\r\n\t},\r\n\r\n\tgetDoShoppingCartErrorToPreventCheckoutExist() {\r\n\t\treturn CheckoutStore.get(\"errorsToPreventCheckoutExist\");\r\n\t},\r\n\r\n\tgetTotalAmount() {\r\n\t\treturn CheckoutStore.getTotalAmount();\r\n\t}\r\n};\r\n\r\nmodule.exports = CheckoutActions;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CheckoutApi\");\r\n\r\nvar AbstractApi = require(\"../api/AbstractApi\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar ApiHelper = require(\"../shared/ApiHelper\");\r\n\r\nvar CheckoutApi = class extends AbstractApi {\r\n\tremoveFromCart(cartItemId, itemType, cartType) {\r\n\t\treturn this.delete({\r\n\t\t\turl: \"/api/carts\",\r\n\t\t\tdata: this._createCartAction(cartItemId, itemType, \"remove\", cartType)\r\n\t\t});\r\n\t}\r\n\r\n\tmoveToCart(cartItemId, itemType, cartType) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/carts/move\",\r\n\t\t\tdata: this._createCartAction(cartItemId, itemType, \"move\", cartType)\r\n\t\t});\r\n\t}\r\n\r\n\tupdateCart(updatedCartItems) {\r\n\t\treturn this.put({\r\n\t\t\turl: \"/api/carts\",\r\n\t\t\tdata: updatedCartItems\r\n\t\t});\r\n\t}\r\n\r\n\taddToCart(data) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/carts\",\r\n\t\t\tdata\r\n\t\t});\r\n\t}\r\n\r\n\tapplyCoupon(couponData) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/carts/applycoupon\",\r\n\t\t\tdata: couponData\r\n\t\t});\r\n\t}\r\n\r\n\tapplyOnePageCoupon(couponData) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/carts/applyonepagecoupon\",\r\n\t\t\tdata: couponData\r\n\t\t});\r\n\t}\r\n\r\n\tupdateLastMinuteDonation(cartType, data) {\r\n\t\treturn this.put({\r\n\t\t\turl: `/api/carts/${cartType}/donationupsell`,\r\n\t\t\tdata\r\n\t\t});\r\n\t}\r\n\r\n\tupdateCartDonation(cartType, updatedDonation) {\r\n\t\tvar donation = _.cloneDeep(updatedDonation);\r\n\r\n\t\t// We want to only send the project code\r\n\t\tdonation.project = donation.project[\"ProjectCode\"];\r\n\t\treturn this.put({\r\n\t\t\turl: `/api/carts/${cartType}/donations/${donation.id}`,\r\n\t\t\tdata: donation\r\n\t\t});\r\n\t}\r\n\r\n\tupdateCartProduct(cartType, updatedProduct) {\r\n\t\tvar product = _.cloneDeep(updatedProduct);\r\n\r\n\t\t// We want to only send the product code\r\n\t\tproduct.product = product.product[\"ProductCode\"];\r\n\t\treturn this.put({\r\n\t\t\turl: `/api/carts/${cartType}/products/${product.id}`,\r\n\t\t\tdata: product\r\n\t\t});\r\n\t}\r\n\r\n\tcompleteCheckout(data) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/checkout\",\r\n\t\t\tdata,\r\n\t\t\treCAPTCHA: true\r\n\t\t});\r\n\t}\r\n\r\n\tgetGroupCodeData(data) {\r\n\t\treturn this.get({\r\n\t\t\turl: \"/api/groupcode/\" + data.groupCode + \"?eventCode=\" + data.eventCode\r\n\t\t});\r\n\t}\r\n\r\n\tgetShippingQuote(data) {\r\n\t\treturn this.post({\r\n\t\t\turl: \"/api/shippingquote\",\r\n\t\t\tdata: {\r\n\t\t\t\taddress: data.address.line1,\r\n\t\t\t\taddressId: data.address.id,\r\n\t\t\t\tcity: data.address.city,\r\n\t\t\t\tcompany: data.company,\r\n\t\t\t\tcountry: data.address.country,\r\n\t\t\t\tincludeErrors: false,\r\n\t\t\t\tinventoryItems: data.products,\r\n\t\t\t\tpostalCode: data.address.postalCode,\r\n\t\t\t\tshippingMethods: data.allowedShippingMethods,\r\n\t\t\t\tstate: data.address.state,\r\n\t\t\t\twarehouse: data.warehouse\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetSubscriptionTaxControlRecord() {\r\n\t\treturn this.get({\r\n\t\t\turl: \"/api/x01/SUBSALESTX\"\r\n\t\t});\r\n\t}\r\n\r\n\tgetShippingTaxId() {\r\n\t\treturn this.get({\r\n\t\t\turl: \"/api/x01/SHIPTAXID\"\r\n\t\t});\r\n\t}\r\n\r\n\tgetTaxQuote(data) {\r\n\t\treturn this.post({\r\n\t\t\tdata: data,\r\n\t\t\turl: \"/api/taxquote\"\r\n\t\t});\r\n\t}\r\n\r\n\tremoveGroupCodeCookie(data) {\r\n\t\treturn this.delete({\r\n\t\t\turl: \"/api/removegroupcode\"\r\n\t\t});\r\n\t}\r\n\r\n\t_createCartAction(cartItemId, itemType, action, cartType) {\r\n\t\tvar cartAction = { cartType };\r\n\t\tswitch (itemType) {\r\n\t\t\tcase Constants.CART_ITEM_EVENT:\r\n\t\t\t\tcartAction.eventAttendees = [cartItemId];\r\n\t\t\t\tbreak;\r\n\t\t\tcase Constants.CART_ITEM_PROJECT:\r\n\t\t\t\tcartAction.donations = [cartItemId];\r\n\t\t\t\tbreak;\r\n\t\t\tcase Constants.CART_ITEM_PRODUCT:\r\n\t\t\t\tcartAction.products = [cartItemId];\r\n\t\t\t\tbreak;\r\n\t\t\tcase Constants.CART_ITEM_SUBSCRIPTION:\r\n\t\t\t\tcartAction.subscriptions = [cartItemId];\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tvar defer = new $.Deferred();\r\n\t\t\t\treturn defer.reject(`Could not ${action} item with type ${itemType} and id ${cartItemId}.`);\r\n\t\t}\r\n\r\n\t\treturn cartAction;\r\n\t}\r\n};\r\n\r\nmodule.exports = new CheckoutApi();\r\n","var keyMirror = require(\"keyMirror\");\r\n\r\nmodule.exports = keyMirror({\r\n\tCHANGE_EVENT: null,\r\n\r\n\tCART_REMOVE_PENDING: null,\r\n\tCART_REMOVE_SUCCESS: null,\r\n\tCART_REMOVE_FAILED: null,\r\n\r\n\tCART_UPDATE_AMOUNT: null,\r\n\r\n\tCART_UPDATE_PENDING: null,\r\n\tCART_UPDATE_SUCCESS: null,\r\n\tCART_UPDATE_FAILED: null,\r\n\r\n\tCART_UPDATE_DONATION_AMOUNT_OPCO: null,\r\n\tCART_UPDATE_DONATION_CHARGE_TODAY_OPCO: null,\r\n\tCART_UPDATE_DONATION_FREQUENCY_OPCO: null,\r\n\r\n\tDISABLE_PAYPAL_CHECKOUT: null,\r\n\tENABLE_PAYPAL_CHECKOUT: null,\r\n\tSET_SUBACCOUNT_GIFT_AMOUNT_OPCO: null,\r\n\tVALIDATE_PAYPAL_CHECKOUT: null\r\n});\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"CheckoutStore\");\r\n\r\nvar CheckoutConstants = require(\"./CheckoutConstants\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar NumberHelper = require(\"../shared/NumberHelper\");\r\n\r\nvar AbstractStore = require(\"../stores/AbstractStore\");\r\n\r\nvar state = {\r\n\tallowedShippingMethods: null,\r\n\tavailableQuantity: null,\r\n\tcartType: \"CURRENT\",\r\n\tcheckoutType: null,\r\n\tcompany: null,\r\n\tcouponInitialized: false, // Used to make sure we only try initializing an OPCO coupon once per page load.\r\n\tdefaultDonationUpsellLabel: null,\r\n\tdefaultDonationUpsellAmountLabel: null,\r\n\tdefaultShippingLabel: null,\r\n\tdefaultSubtotalLabel: null,\r\n\tdefaultShippingMethod: null,\r\n\tdefaultTaxLabel: null,\r\n\tdefaultTotalLabel: null,\r\n\tdonations: [],\r\n\tdonationSubtotal: null,\r\n\tdonationAmount: null, // Will be set when the project donation amount changes in the project store.\r\n\tdonationFrequency: null, // Will be set when the project donation frequency changes in the project store.\r\n\tdonationUpsellAmount: null,\r\n\terror: [],\t//Used for Shopping Cart page.\r\n\terrorsToPreventCheckoutExist: false,\t//Used for Shopping Cart page.\r\n\teventRegistrations: [],\r\n\teventRegistrationSubtotal: null,\r\n\tfreeShippingMethod: null,\r\n\thasShippableProducts: null,\r\n\thasOnlyDownloadableOrFreeShippingProducts: null,\r\n\tisDesignMode: false,\r\n\tisDonationChargeToday: false, // Will be set when the project frequency, use on day, recurring upsell, or recurring start date changes in the project store\r\n\tisPayPalSupported: false,\r\n\tisInPledgeStatementSession: false,\r\n\tisShoppingCart: false,\r\n\tloggedInAccount: null,\r\n\tpayPalActions: { enable: () => {}, disable: () => {} },\r\n\tpayPalEnabled: true,\r\n\tproductCode: null, // Will only be set when on a Product page\r\n\tproductDiscount: null, // Will only be set when on a Product page. Returned from applyOnePageCoupon API call.\r\n\tproductPrice: null, // Will only be set when on a Product page. Will be either sales price or retail price if there is no sales price. Used for shipping and tax now. Price of the main Product on the Product page.\r\n\tproducts: [],\r\n\tproductSubtotal: null,\r\n\tsaveForLaterDonations: [],\r\n\tsaveForLaterRegistrations: [],\r\n\tsaveForLaterProducts: [],\r\n\tsaveForLaterSubscriptions: [],\r\n\tshippingAddress: null,\r\n\tshippingAmount: null,\r\n\tshippingMethod: null,\r\n\tshippingRates: null,\r\n\tsubaccountAmounts: {},\r\n\tsubscriptions: [],\r\n\tsubscriptionSubtotal: null,\r\n\ttaxAmount: null,\r\n\twarehouse: null,\r\n\twizardApplePayConfiguration: {},\r\n\twizardApplePayDisplayMessages: {},\r\n\twizardCheckoutDisplayMessages: {},\r\n\twizardCompanyEftErrorMessages: {},\r\n\twizardCompanyErrorMessages: {},\r\n\twizardCouponDisplayMessages: {},\r\n\twizardCreditCardDisplayMessages: {},\r\n\twizardDefaultContactMethod: {},\r\n\twizardDefaultUseOnDay: {},\r\n\twizardDonationUpsell: {},\r\n\twizardFrequencies: {},\r\n\twizardGooglePayConfiguration: {},\r\n\twizardGooglePayDisplayMessages: {},\r\n\twizardUseOnDays: {},\r\n\twizardDonationRequired: false,\r\n\twizardPayPalDisplayMessages: {},\r\n\twizardProjectCompletionDefaults: {},\r\n\twizardRecurringRequired: false,\r\n\twizardSavedPaymentsDisplayMessages: {},\r\n\twizardShippingDisplayMessages: {}\r\n};\r\n\r\nvar SHIPPING_EVENT = \"shippingChange\";\r\n\r\nvar CheckoutStore = class extends AbstractStore {\r\n\t//Specific event for shipping\r\n\taddShippingListener(callback) {\r\n\t\tthis.on(SHIPPING_EVENT, callback);\r\n\t}\r\n\r\n\tremoveShippingListener(callback) {\r\n\t\tthis.removeListener(SHIPPING_EVENT, callback);\r\n\t}\r\n\r\n\temitShippingEvent() {\r\n\t\tthis.emit(SHIPPING_EVENT);\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n\r\n\tcouponHasBeenInitialized() {\r\n\t\tstate.couponInitialized = true;\r\n\t}\r\n\r\n\tgetCartType() {\r\n\t\treturn state.cartType;\r\n\t}\r\n\r\n\tgetCartDonationForUpdate(cartItemId, options) {\r\n\t\treturn this.getCartItemForUpdate(cartItemId, Constants.CART_ITEM_PROJECT, options);\r\n\t}\r\n\r\n\tgetCartProductForUpdate(cartItemId) {\r\n\t\treturn this.getCartItemForUpdate(cartItemId, Constants.CART_ITEM_PRODUCT);\r\n\t}\r\n\r\n\tgetCartDonations() {\r\n\t\treturn [].concat(state.donations);\r\n\t}\r\n\r\n\tgetSaveForLaterCartDonations() {\r\n\t\treturn [].concat(state.saveForLaterDonations);\r\n\t}\r\n\r\n\tgetCartProducts() {\r\n\t\treturn [].concat(state.products);\r\n\t}\r\n\r\n\tgetCartSubscriptions() {\r\n\t\treturn [].concat(state.subscriptions);\r\n\t}\r\n\r\n\tgetCartItemForUpdate(cartItemId, itemType, options) {\r\n\t\toptions = options || {};\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\r\n\t\t// getItem handles logging for !cartItem\r\n\t\tif (!cartItem)\r\n\t\t\treturn;\r\n\r\n\t\tif (options.removePremium || options.newStartDate) {\r\n\t\t\tcartItem.isDirty = true;\r\n\t\t}\r\n\r\n\t\tif (cartItem.isDirty) {\r\n\t\t\treturn cartItem;\r\n\t\t}\r\n\t}\r\n\r\n\tgetDonationAmount(cartItemId) {\r\n\t\treturn this.getAmount(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t}\r\n\r\n\tgetGiftGroupDonationsByCartItemId(cartItemId) {\r\n\t\tvar cartItem = this.getItem(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t\tif (cartItem && cartItem.groupId) {\r\n\t\t\treturn state.donations.filter(elem => elem.groupId && (elem.groupId === cartItem.groupId));\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t}\r\n\r\n\tgetGiftGroupDonationsByGroupId(groupId) {\r\n\t\tif (groupId) {\r\n\t\t\treturn state.donations.filter(elem => elem.groupId === groupId);\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t}\r\n\r\n\tgetDonationGroupTotal(cartItemId, options) {\r\n\t\toptions = options || {};\r\n\r\n\t\t// get the other donations with the same groupId\r\n\t\tvar cartItem = this.getItem(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t\tvar groupDonations = this.getGiftGroupDonationsByCartItemId(cartItemId);\r\n\r\n\t\t// Get what the total would be if we removed this donation\r\n\t\tif (options.isRemoving) {\r\n\t\t\tgroupDonations = groupDonations.filter(elem => elem.id !== cartItem.id);\r\n\t\t}\r\n\r\n\t\treturn groupDonations.reduce((donationSum, donation) => donationSum + NumberHelper.toNumber(donation.amount), 0);\r\n\t}\r\n\r\n\tgetMinimumDonationAmount(cartItemId) {\r\n\t\treturn this.getMinimumAmount(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t}\r\n\r\n\tgetMinimumAmount(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.minimumDonationAmount;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetAmount(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.amount;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetDonationChargeToday(cartItemId) {\r\n\t\treturn this.getChargeToday(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t}\r\n\r\n\tgetChargeToday(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.customerChoseChargeToday;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetDonationFrequency(cartItemId) {\r\n\t\treturn this.getFrequency(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t}\r\n\r\n\tgetFrequency(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.frequency;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetDonationPremium(cartItemId) {\r\n\t\treturn this.getPremium(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t}\r\n\r\n\tgetDonationStartDate(cartItemId) {\r\n\t\tvar cartItem = this.getItem(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t\tif (cartItem) {\r\n\t\t\tvar donationStartDate = cartItem.startDate;\r\n\t\t\tvar donationUseOnDay = cartItem.useOnDay;\r\n\r\n\t\t\tvar startDate = donationStartDate\r\n\t\t\t\t? moment(donationStartDate, \"YYYY-MM-DD\")\r\n\t\t\t\t: moment();\r\n\t\t\tstartDate.date(donationUseOnDay);\r\n\r\n\t\t\treturn startDate;\r\n\t\t}\r\n\t\t//Essentially, you would only get in here if we are in the designer; otherwise, there should be a cart item.\r\n\t\treturn moment();\r\n\t}\r\n\r\n\tgetPremium(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.premium;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetProductQuantity(cartItemId) {\r\n\t\treturn this.getQuantity(cartItemId, Constants.CART_ITEM_PRODUCT);\r\n\t}\r\n\r\n\tgetQuantity(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.quantity;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetDonationUseOnDay(cartItemId) {\r\n\t\treturn this.getUseOnDay(cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t}\r\n\r\n\tgetIsDonationChargeTodayRequired(cartItemId) {\r\n\t\treturn state.wizardProjectCompletionDefaults.requireDonation === WizardConstants.PROJECT_COMPLETION_DEFAULTS_REQUIRE_DONATION_VALUES.YES ||\r\n\t\t\t(\r\n\t\t\t\tthis.getDonationPremium(cartItemId) &&\r\n\t\t\t\tstate.wizardProjectCompletionDefaults.requireDonation === WizardConstants.PROJECT_COMPLETION_DEFAULTS_REQUIRE_DONATION_VALUES.WITH_PREMIUM\r\n\t\t\t);\r\n\t}\r\n\r\n\tgetRequireDonationChangedMessage() {\r\n\t\treturn state.wizardProjectCompletionDefaults.requireDonationChangedMessage;\r\n\t}\r\n\r\n\tgetShippingAmount() {\r\n\t\tvar rate;\r\n\t\tif (state.shippingMethod && state.shippingRates && state.shippingRates.length) {\r\n\t\t\trate = state.shippingRates.find(s => s.id === state.shippingMethod && !s.isError);\r\n\t\t}\r\n\r\n\t\tif (state.hasOnlyDownloadableOrFreeShippingProducts) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Instead of overwriting the amount in the shippingRates array, if this is\r\n\t\t// the freeShippingMethod we should return 0 here.\r\n\t\treturn (rate || {}).id === state.freeShippingMethod ? 0 : (rate || {}).amount;\r\n\t}\r\n\r\n\tgetShippingMethodsForQuote() {\r\n\t\tvar shippingMethods = state.allowedShippingMethods || [];\r\n\r\n\t\tif (state.defaultShippingMethod && !shippingMethods.find(method => method === state.defaultShippingMethod)) {\r\n\t\t\tshippingMethods.push(state.defaultShippingMethod);\r\n\t\t}\r\n\t\tif (state.freeShippingMethod && !shippingMethods.find(method => method === state.freeShippingMethod)) {\r\n\t\t\tshippingMethods.push(state.freeShippingMethod);\r\n\t\t}\r\n\r\n\t\treturn shippingMethods;\r\n\t}\r\n\r\n\tgetUseOnDay(cartItemId, itemType) {\r\n\t\tvar cartItem = this.getItem(cartItemId, itemType);\r\n\t\tif (cartItem) {\r\n\t\t\treturn cartItem.useOnDay;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetItem(cartItemId, itemType) {\r\n\t\tvar cartItem;\r\n\t\tswitch (itemType) {\r\n\t\t\tcase Constants.CART_ITEM_EVENT:\r\n\t\t\t\tcartItem = state.eventRegistrations.find(d => d.id == cartItemId); // coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\tif (!cartItem && !state.isDesignMode) {\r\n\t\t\t\t\tcartItem = state.saveForLaterRegistrations.find(d => d.id == cartItemId); //coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\t\tif (cartItem) {\r\n\t\t\t\t\t\tcartItem.cartType = \"SFL\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tLoggerInstance.error(`Could not find event registration. Id = ${cartItemId}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Constants.CART_ITEM_PROJECT:\r\n\t\t\t\tcartItem = state.donations.find(d => d.id == cartItemId); // coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\tif (!cartItem && !state.isDesignMode) {\r\n\t\t\t\t\tcartItem = state.saveForLaterDonations.find(d => d.id == cartItemId); //coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\t\tif (cartItem) {\r\n\t\t\t\t\t\tcartItem.cartType = \"SFL\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tLoggerInstance.error(`Could not find donation. Id = ${cartItemId}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Constants.CART_ITEM_PRODUCT:\r\n\t\t\t\tcartItem = state.products.find(d => d.id == cartItemId); // coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\tif (!cartItem && !state.isDesignMode) {\r\n\t\t\t\t\tcartItem = state.saveForLaterProducts.find(d => d.id == cartItemId); // coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\t\tif (cartItem) {\r\n\t\t\t\t\t\tcartItem.cartType = \"SFL\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tLoggerInstance.error(`Could not find product. Id = ${cartItemId}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Constants.CART_ITEM_SUBSCRIPTION:\r\n\t\t\t\tcartItem = state.subscriptions.find(d => d.id == cartItemId);\r\n\t\t\t\tif (!cartItem && !state.isDesignMode) {\r\n\t\t\t\t\tcartItem = state.saveForLaterSubscriptions.find(d => d.id == cartItemId); //coercion to allow \"123\" to compare correctly to 123\r\n\t\t\t\t\tif (cartItem) {\r\n\t\t\t\t\t\tcartItem.cartType = \"SFL\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tLoggerInstance.error(`Could not find subscriptions. Id = ${cartItemId}`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tLoggerInstance.error(`itemType not recognized for getItem. itemType = ${itemType}`);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn cartItem;\r\n\t}\r\n\r\n\tisShoppingCart() {\r\n\t\treturn state.isShoppingCart;\r\n\t}\r\n\r\n\tgetProductSubtotal() {\r\n\t\tif (state.isShoppingCart) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar quantity = Number($(\"input.main-product-quantity\").val()) || 1;\r\n\t\tvar discount = Number(state.productDiscount) || 0;\r\n\t\tvar price = Number(state.productPrice) || 0;\r\n\t\tvar subtotal = (price * quantity) - discount;\r\n\r\n\t\treturn subtotal;\r\n\t}\r\n\r\n\tgetChargeTodayProjectSubtotalForOPCO() {\r\n\t\t//If we are not charging today, the subtotal is 0\r\n\t\tif (!state.isDonationChargeToday) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\treturn this.getProjectDonationTotalForOPCO();\r\n\t}\r\n\r\n\tgetProjectDonationTotalForOPCO() {\r\n\t\tvar subaccountTotal = Object.keys(state.subaccountAmounts).reduce((sum, key) => sum + parseFloat(Number(state.subaccountAmounts[key]) || 0), 0);\r\n\t\tvar donationAmount = Number(state.donationAmount) || 0;\r\n\t\treturn donationAmount + subaccountTotal;\r\n\t}\r\n\r\n\tgetPledgeSubtotal() {\r\n\t\tvar shoppingCartData = window.PledgeActions.getShoppingCartData() || { pledges: [] };\r\n\t\tvar subtotal = 0;\r\n\r\n\t\tshoppingCartData.pledges.forEach(pledge => {\r\n\t\t\tif (pledge.donateTodaySelected || (pledge.isRecurring && pledge.upsell)) {\r\n\t\t\t\tsubtotal += Number(pledge.amount) || 0;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn subtotal;\r\n\t}\r\n\r\n\tgetSubtotal() {\r\n\t\tvar checkoutTypeInformation = this.getCheckoutTypeInformation();\r\n\r\n\t\tvar subtotal = null;\r\n\t\tif (checkoutTypeInformation.isProductOnePageCheckout) {\r\n\t\t\t// This is for the product one-page checkout scenario, where we need to adjust for tax and shipping.\r\n\t\t\tsubtotal = this.getProductSubtotal();\r\n\t\t} else if (checkoutTypeInformation.isProjectOnePageCheckout) {\r\n\t\t\tsubtotal = this.getChargeTodayProjectSubtotalForOPCO();\r\n\t\t} else if (checkoutTypeInformation.isPledgeOnePageCheckout) {\r\n\t\t\tsubtotal = this.getPledgeSubtotal();\r\n\t\t} else {\r\n\t\t\tvar productSubtotal = Number(state.productSubtotal) || 0;\r\n\t\t\tvar donationSubtotal = Number(state.donationSubtotal) || 0;\r\n\t\t\tvar eventRegistrationSubtotal = Number(state.eventRegistrationSubtotal) || 0;\r\n\t\t\tvar subscriptionSubtotal = Number(state.subscriptionSubtotal) || 0;\r\n\t\t\tsubtotal = productSubtotal + donationSubtotal + eventRegistrationSubtotal + subscriptionSubtotal;\r\n\t\t}\r\n\t\treturn subtotal;\r\n\t}\r\n\r\n\tgetCheckoutTypeInformation() {\r\n\t\tvar isProductOnePageCheckout = state.productCode && state.productPrice;\r\n\r\n\t\tvar isProjectOnePageCheckout = !state.isShoppingCart && (\r\n\t\t\tstate.checkoutType === Constants.TANGIBLE_TYPES.PROJECTS ||\r\n\t\t\tstate.checkoutType === Constants.TANGIBLE_TYPES.SECURE_PROJECTS\r\n\t\t);\r\n\r\n\t\tvar isPledgeOnePageCheckout = !state.isShoppingCart && (\r\n\t\t\tstate.checkoutType === Constants.TANGIBLE_TYPES.PLEDGES ||\r\n\t\t\tstate.checkoutType === Constants.TANGIBLE_TYPES.CHILD ||\r\n\t\t\tstate.checkoutType === Constants.TANGIBLE_TYPES.SECURE_PLEDGES\r\n\t\t);\r\n\r\n\t\tvar isMultiPageCheckout = !isProductOnePageCheckout && !isProjectOnePageCheckout && !isPledgeOnePageCheckout;\r\n\r\n\t\treturn {\r\n\t\t\tisProductOnePageCheckout,\r\n\t\t\tisProjectOnePageCheckout,\r\n\t\t\tisPledgeOnePageCheckout,\r\n\t\t\tisMultiPageCheckout\r\n\t\t};\r\n\t}\r\n\r\n\tsetOPCOSubtotal() {\r\n\t\tif (state.isDesignMode || state.isShoppingCart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $subtotalElement = $(\"[data-dynamic='Subtotal']\");\r\n\t\tif ($subtotalElement.length) {\r\n\t\t\tvar subtotal = ActionsHelper.formatAmount(this.getSubtotal(), $subtotalElement);\r\n\r\n\t\t\tif (subtotal == null) { //coercion because I want undefined as well but not 0 for tax Amount\r\n\t\t\t\tsubtotal = state.defaultSubtotalLabel || \"\";\r\n\t\t\t}\r\n\t\t\t$subtotalElement.html(subtotal);\r\n\t\t}\r\n\t\tthis.setTotalAmount();\r\n\t}\r\n\r\n\tsetShippingAmount() {\r\n\t\tvar $shippingElement = $(\"[data-dynamic='Shipping']\");\r\n\t\tif (!$shippingElement.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar value = ActionsHelper.formatAmount(this.getShippingAmount(), $shippingElement);\r\n\r\n\t\tif (value == null) { //coercion because I want undefined as well but not 0 for shipping Amount\r\n\t\t\tvalue = state.defaultShippingLabel || \"\";\r\n\t\t}\r\n\r\n\t\t$shippingElement.html(value);\r\n\t\tthis.setTaxAmount(); //This is mainly for the cause when I am clearing out shipping, I may want tax to be cleared as well\r\n\t\tthis.setTotalAmount();\r\n\t}\r\n\r\n\tinitializeShippingMethodRates() {\r\n\t\tif (state.isDesignMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Initialize all radio buttons as unchecked and disabled.\r\n\t\t$(\"input[name=selectedShippingMethod]\").prop(\"checked\", false).prop(\"disabled\", true);\r\n\t}\r\n\r\n\tisPageType(pageTypeConstant) {\r\n\t\treturn this.get(\"checkoutType\") === pageTypeConstant;\r\n\t}\r\n\r\n\t// This function will return true if we require a shipping method, but we don't have one.\r\n\tgetIsShippingMethodRequiredAndMissing() {\r\n\t\tvar $shippingMethods;\r\n\r\n\t\tif (state.hasShippableProducts && !state.hasOnlyDownloadableOrFreeShippingProducts && !state.shippingMethod) {\r\n\t\t\t// - If no rates are available, or all rates are in error, we will be unable to process an order.\r\n\t\t\tif (!state.shippingRates || state.shippingRates.every(rate => rate.isError === true)) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisMissing: true,\r\n\t\t\t\t\terrorMessage: this.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_INCALCULABLE\r\n\t\t\t\t\t)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t// If we cannot select a shipping method because there is no Shipping Method component on the page, we depend on the default shipping method.\r\n\t\t\t$shippingMethods = $(\"[data-component='shippingMethods']\");\r\n\t\t\tif (!$shippingMethods.length) {\r\n\t\t\t\tvar isDefaultShippingValid = state.shippingRates.find(rate => rate.id === state.defaultShippingMethod && !rate.isError);\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisMissing: !isDefaultShippingValid,\r\n\t\t\t\t\terrorMessage: !isDefaultShippingValid && this.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_INCALCULABLE\r\n\t\t\t\t\t)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t// If there are valid rates available but none are selected, we initially select one.\r\n\t\t\tselectInitialShippingMethod();\r\n\r\n\t\t\t// There is still no shipping method selected.\r\n\t\t\tif (!state.shippingMethod) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisMissing: true,\r\n\t\t\t\t\terrorMessage: this.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_METHOD_MISSING\r\n\t\t\t\t\t)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tisMissing: false\r\n\t\t};\r\n\t}\r\n\r\n\tsetShippingMethodRates() {\r\n\t\t// deselect and disable all shipping method radio buttons.\r\n\t\t$(\"input[name=selectedShippingMethod]\").prop(\"checked\", false).prop(\"disabled\", true);\r\n\t\t$(`[data-dynamic='shippingMethodRate']`).text(this.getWizardValue(\r\n\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_METHOD_NOT_AVAILABLE\r\n\t\t));\r\n\r\n\t\t// If there are no valid shipping rates, unset existing shipping method.\r\n\t\t// This will force the API to use the default shipping method.\r\n\t\t// Because this is called by the coupon processing, if we've not yet finished\r\n\t\t// looking up shipping rates, bail here and once we're done with the lookup\r\n\t\t// everything should update properly.\r\n\t\tif (!state.shippingRates || state.shippingRates.every(rate => rate.isError === true)) {\r\n\t\t\tstate.shippingMethod = null;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (state.freeShippingMethod && state.shippingRates.every(rate => rate.id !== state.freeShippingMethod)) {\r\n\t\t\t// push the coupon shipping rate.\r\n\t\t\tstate.shippingRates.push({\r\n\t\t\t\taddedForCoupon: true,\r\n\t\t\t\tamount: 0,\r\n\t\t\t\tdescription: this.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_METHOD_FREE\r\n\t\t\t\t),\r\n\t\t\t\terrorMessage: null,\r\n\t\t\t\tid: state.freeShippingMethod,\r\n\t\t\t\tisError: false\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tstate.shippingRates.forEach(rate => {\r\n\t\t\tvar shippingMethod = rate.id;\r\n\t\t\tvar shippingRate = rate.amount;\r\n\t\t\tvar isError = rate.isError;\r\n\r\n\t\t\tvar $eachShipRate = $(`[data-dynamic='shippingMethodRate'][data-shipping-method='${shippingMethod}']`);\r\n\r\n\t\t\tif (isError) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (shippingRate === 0 || shippingMethod === state.freeShippingMethod) {\r\n\t\t\t\t$eachShipRate.text(this.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_METHOD_FREE\r\n\t\t\t\t));\r\n\t\t\t} else {\r\n\t\t\t\tvar value = ActionsHelper.formatAmount(shippingRate, $eachShipRate);\r\n\t\t\t\t$eachShipRate.text(value);\r\n\t\t\t}\r\n\r\n\t\t\t$(`input[name=selectedShippingMethod][value=${shippingMethod}]`).prop(\"disabled\", false);\r\n\t\t});\r\n\r\n\t\tthis.selectInitialShippingMethod();\r\n\t}\r\n\r\n\tselectInitialShippingMethod() {\r\n\t\tif (!($(\"[data-component='shippingMethods']\").length) && state.shippingRates.find(rate => rate.id === state.defaultShippingMethod && !rate.isError)) {\r\n\t\t\tstate.shippingMethod = state.defaultShippingMethod;\r\n\t\t} else if (state.freeShippingMethod && state.shippingRates.find(rate => rate.id === state.freeShippingMethod)) {\r\n\t\t\t$(`input[name=selectedShippingMethod][value=${state.freeShippingMethod}]`).prop(\"checked\", true);\r\n\t\t\tstate.shippingMethod = state.freeShippingMethod;\r\n\t\t} else if (state.shippingRates.find(rate => rate.id === state.defaultShippingMethod && !rate.isError)) {\r\n\t\t\t$(`input[name=selectedShippingMethod][value=${state.defaultShippingMethod}]`).prop(\"checked\", true);\r\n\t\t\tstate.shippingMethod = state.defaultShippingMethod;\r\n\t\t} else {\r\n\t\t\t$(\"input[name=selectedShippingMethod]:not(:disabled)\").first().prop(\"checked\", true);\r\n\t\t\tstate.shippingMethod = $(\"input[name=selectedShippingMethod]:not(:disabled)\").first().val();\r\n\t\t}\r\n\t}\r\n\r\n\tsetFreeShippingMethod(shippingMethod, shippingMethodDescription) {\r\n\t\tvar $exists = $(`input[name=selectedShippingMethod][value=${shippingMethod}]`);\r\n\t\tif (!$exists.length) {\r\n\t\t\t// create a copy of the first available one\r\n\t\t\tvar $firstContainer = $(\"[data-component='shippingMethods'] .shipping-methods-items-wrapper div[class='row']\").first().find(\"div[class^='col-']\").first();\r\n\t\t\tvar $clonedContainer = $firstContainer.clone(/*withDataAndEvents*/true);\r\n\r\n\t\t\t// update all Ids in this component\r\n\t\t\t$clonedContainer.find(\"[id]\").each((index, item) => {\r\n\t\t\t\t$(item).attr(\"id\", HtmlHelper.getId($(\"body\")));\r\n\t\t\t});\r\n\r\n\t\t\t// update data-driven properties\r\n\t\t\t$clonedContainer.find(\"[data-component='shippingMethods.selector']\").attr(\"value\", shippingMethod);\r\n\t\t\t$clonedContainer.find(\"[data-dynamic='Model.GetShippingMethodDescription(shippingMethodItem.ToString())']\").text(shippingMethodDescription);\r\n\t\t\t$clonedContainer.find(\"[data-dynamic='shippingMethodRate']\").text(this.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.SHIPPING_MESSAGES,\r\n\t\t\t\tWizardConstants.SHIPPING_MESSAGE_FIELDS.SHIPPING_METHOD_FREE\r\n\t\t\t)).attr(\"data-shipping-method\", shippingMethod);\r\n\r\n\t\t\t// add it to the last row\r\n\t\t\tHtmlHelper.addColumnToLastOrNewRow($clonedContainer, $(\"[data-component='shippingMethods'] .shipping-methods-items-wrapper\"));\r\n\t\t}\r\n\t}\r\n\r\n\t// Return value indicates if the free shipping method was selected.\r\n\t// This is used to determine post-remove if we need to update shipping methods.\r\n\tremoveFreeShippingMethod() {\r\n\t\t// Check to see if we HAVE a free shipping method.\r\n\t\tif (state.freeShippingMethod) {\r\n\t\t\t// If so, we need to check to make sure it didn't already exist before the coupon was applied\r\n\t\t\tvar freeRate = state.shippingRates.find(rate => {\r\n\t\t\t\treturn rate.id === state.freeShippingMethod;\r\n\t\t});\r\n\r\n\t\t\tif (freeRate && freeRate.addedForCoupon) {\r\n\t\t\t\t// remove the column from the page\r\n\t\t\t\tvar $freeShippingComponent = $(`input[name=selectedShippingMethod][value=${state.freeShippingMethod}]`);\r\n\t\t\t\tvar $freeShippingColumn = $freeShippingComponent\r\n\t\t\t\t\t.closest(\"[data-component='shippingMethods.shippingMethod']\") // get the wrapper\r\n\t\t\t\t\t.closest(\"div[class^='col-']\"); // get the column that contains the wrapper\r\n\t\t\t\tHtmlHelper.deleteChildOfColumnAndPromoteColumnChildren($freeShippingColumn);\r\n\r\n\t\t\t\tstate.shippingRates.splice(state.shippingRates.findIndex(r => r.id === freeRate.id), 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn state.freeShippingMethod === state.shippingMethod;\r\n\t}\r\n\r\n\tsetTaxAmount() {\r\n\t\tvar $taxElement = $(\"[data-dynamic='Tax']\");\r\n\t\tif (!$taxElement.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar value = ActionsHelper.formatAmount(state.taxAmount, $taxElement);\r\n\r\n\t\tif (value == null) { //coercion because I want undefined as well but not 0 for tax Amount\r\n\t\t\tvalue = state.defaultTaxLabel || \"\";\r\n\t\t}\r\n\r\n\t\t$taxElement.html(value);\r\n\t\tthis.setTotalAmount();\r\n\t}\r\n\r\n\tsetDonationUpsellAmount() {\r\n\t\tvar $donationUpsellAmountElement = $(\"[data-dynamic='DonationUpsell']\");\r\n\t\tif ($donationUpsellAmountElement.length) {\r\n\t\t\tvar value = ActionsHelper.formatAmount(state.donationUpsellAmount, $donationUpsellAmountElement);\r\n\r\n\t\t\tif (value == null) { //coercion because I want undefined as well but not 0 for donation upsell\r\n\t\t\t\tvalue = state.defaultDonationUpsellAmountLabel || \"\";\r\n\t\t\t}\r\n\r\n\t\t\t$donationUpsellAmountElement.html(value);\r\n\t\t}\r\n\t\tthis.setTotalAmount();\r\n\t}\r\n\r\n\tsetRecurringDonationUpsellAmounts() {\r\n\t\tif (this.isShoppingCart()) {\r\n\t\t\tvar $recurringDonations = $(\"[data-recurring-frequency]\");\r\n\t\t\t$recurringDonations.each((index, recurringDonation) => {\r\n\t\t\t\tvar $recurringDonation = $(recurringDonation);\r\n\t\t\t\tvar originalAmount = Number($recurringDonation.attr(\"data-recurring-original-amount\"));\r\n\t\t\t\tvar recurringDonationUpsellAmount = Number($recurringDonation.attr(\"upsell-amount\"));\r\n\t\t\t\tvar totalAmount = originalAmount + recurringDonationUpsellAmount;\r\n\t\t\t\t$recurringDonation.html(ActionsHelper.formatAmount(totalAmount, $recurringDonation));\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar $recurringDonation = $(\"[data-dynamic='AmountForFrequency']\");\r\n\t\t\tvar recurringUpsellAmount = Number($recurringDonation.attr(\"upsell-amount\")) || 0;\r\n\t\t\tvar totalAmount = this.getProjectDonationTotalForOPCO() + recurringUpsellAmount;\r\n\r\n\t\t\t$(\"[data-dynamic='AmountForFrequency']\").html(ActionsHelper.formatAmount(totalAmount, $recurringDonation));\r\n\t\t}\r\n\t}\r\n\r\n\tgetTotalAmount() {\r\n\t\tvar subtotal = this.getSubtotal() || 0;\r\n\t\tvar shipping = Number(this.getShippingAmount()) || 0;\r\n\t\tvar tax = Number(state.taxAmount) || 0;\r\n\t\tvar donationUpsellAmount = Number(state.donationUpsellAmount) || 0;\r\n\r\n\t\treturn NumberHelper.roundToTwoDecimals(subtotal + shipping + tax + donationUpsellAmount);\r\n\t}\r\n\r\n\tsetTotalAmount() {\r\n\t\tthis.updatePaymentComponents();\r\n\r\n\t\tvar $totalElement = $(\"[data-dynamic='Total']\");\r\n\t\tif (!$totalElement.length) {\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tvar total = ActionsHelper.formatAmount(this.getTotalAmount(), $totalElement);\r\n\t\t\tif (total == null) { //coercion because I want undefined as well but not 0 for total\r\n\t\t\t\ttotal = state.defaultTotalLabel || \"\";\r\n\t\t\t}\r\n\r\n\t\t\t$totalElement.html(total);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tsetHasNewPaymentBeenShown() {\r\n\t\tstate.hasNewPaymentBeenShown = true;\r\n\t}\r\n\r\n\tsetDonationUpsellWizard(wizardDonationUpsell) {\r\n\t\tstate.wizardDonationUpsell = wizardDonationUpsell;\r\n\t}\r\n\r\n\thasAutoRenewSubscriptions() {\r\n\t\treturn state.subscriptions.some(subscription => {\r\n\t\t\treturn subscription.autoRenew == true;\r\n\t\t});\r\n\t}\r\n\r\n\thasRecurringDonations() {\r\n\t\tif (state.checkoutType === Constants.TANGIBLE_TYPES.PROJECTS || state.checkoutType === Constants.TANGIBLE_TYPES.SECURE_PROJECTS) {\r\n\t\t\t//Project One Page Checkout Frequency\r\n\t\t\treturn state.donationFrequency !== \"O\";\r\n\t\t}\r\n\r\n\t\treturn state.donations.some((donation, index) => {\r\n\t\t\treturn donation.isRecurring === true;\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * This method determines or proxies to the actions class to determine if we need to show or hide\r\n\t * the payment information on shopping cart or OPCO. If we're on a tangible page and the\r\n\t * shouldHidePaymentInformation method is not defined, it is presumably not needed (ProjectActions\r\n\t * will never have a $0 transaction so we should never hide payment information.\r\n\t */\r\n\tupdatePaymentComponents() {\r\n\t\tif (!state.isDesignMode) {\r\n\t\t\tvar $savedPayments = $(\"[data-component='savedPayments']\");\r\n\t\t\tvar $createAccountAndCheckout = $(\"[data-component='createAccountAndCheckout']\");\r\n\t\t\tvar $oneTimeOnlyPaymentComponents = $(\"[data-component='payPalCheckout'], [data-component='applePay'], [data-component='googlePay']\");\r\n\t\t\tvar shouldHidePaymentInfo = false;\r\n\r\n\t\t\tif (state.isShoppingCart || state.checkoutType === Constants.TANGIBLE_TYPES.PRODUCTS) {\r\n\t\t\t\tvar hasRecurringDonations = this.hasRecurringDonations();\r\n\t\t\t\tvar hasAutoRenewSubscriptions = this.hasAutoRenewSubscriptions();\r\n\t\t\t\tshouldHidePaymentInfo = {\r\n\t\t\t\t\thideAllPayments: this.getTotalAmount() === 0 && !hasRecurringDonations && !hasAutoRenewSubscriptions,\r\n\t\t\t\t\thideOneTimeOnlyPayments: hasRecurringDonations || hasAutoRenewSubscriptions\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\t// get tangibleActions\r\n\t\t\t\tvar tangibleActions = this.getTangibleActions();\r\n\r\n\t\t\t\tif (tangibleActions && _.isFunction(tangibleActions.shouldHidePaymentInformation)) {\r\n\t\t\t\t\tshouldHidePaymentInfo = tangibleActions.shouldHidePaymentInformation();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (shouldHidePaymentInfo.hideAllPayments) {\r\n\t\t\t\tthis.hidePaymentComponents($savedPayments, $createAccountAndCheckout, $oneTimeOnlyPaymentComponents);\r\n\t\t\t} else if (shouldHidePaymentInfo.hideOneTimeOnlyPayments) {\r\n\t\t\t\tthis.hidePaymentComponents(null, null, $oneTimeOnlyPaymentComponents);\r\n\t\t\t\t//We are not supposed to hide all so go ahead and show savedPayments and createAccountAndCheckout\r\n\t\t\t\tthis.showPaymentComponents($savedPayments, $createAccountAndCheckout, null);\r\n\r\n\t\t\t\t$(\"[data-component='paymentType.savePayment.input']\").each((index, element) => {\r\n\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\tif ($element.data(\"originalCheckedValue\") == null) { //coercion to match null and undefined\r\n\t\t\t\t\t\t//Only set the originalCheckedValue if it has not been set before.\r\n\t\t\t\t\t\t$element.data(\"originalCheckedValue\", $element.prop(\"checked\"));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//If there are any paymentType.savePayment.input components, we need to disable them and check them by default\r\n\t\t\t\t\t$element.prop(\"disabled\", true).prop(\"checked\", true);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.showPaymentComponents($savedPayments, $createAccountAndCheckout, $oneTimeOnlyPaymentComponents);\r\n\r\n\t\t\t\t$(\"[data-component='paymentType.savePayment.input']\").each((index, element) => {\r\n\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\t//If there are any paymentType.savePayment.input components, they no longer need to be disabled because we do not have any recurring payments being made.\r\n\t\t\t\t\t$element.prop(\"disabled\", false);\r\n\r\n\t\t\t\t\tif ($element.data(\"originalCheckedValue\") != null) { //coercion to match null and undefined\r\n\t\t\t\t\t\t$element.prop(\"checked\", $element.data(\"originalCheckedValue\"));\r\n\t\t\t\t\t\t$element.data(\"originalCheckedValue\", null);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thidePaymentComponents($savedPaymentComponent, $createAccountAndCheckoutComponent, $oneTimeOnlyPaymentComponents) {\r\n\t\tif ($savedPaymentComponent && $savedPaymentComponent.length) {\r\n\t\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.creditCard']\").hide();\r\n\t\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.eft']\").hide();\r\n\t\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.addPrompt']\").hide();\r\n\t\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.addNew']\").hide();\r\n\t\t}\r\n\r\n\t\tif ($createAccountAndCheckoutComponent && $createAccountAndCheckoutComponent.length) {\r\n\t\t\t$createAccountAndCheckoutComponent.find(\"[data-component='paymentType']\").hide();\r\n\t\t}\r\n\r\n\t\tif ($oneTimeOnlyPaymentComponents && $oneTimeOnlyPaymentComponents.length) {\r\n\t\t\t$oneTimeOnlyPaymentComponents.hide();\r\n\t\t}\r\n\t}\r\n\r\n\tshowPaymentComponents($savedPaymentComponent, $createAccountAndCheckoutComponent, $oneTimeOnlyPaymentComponents) {\r\n\t\tif ($savedPaymentComponent && $savedPaymentComponent.length) {\r\n\t\t\tvar $creditCardsAndEfts = $savedPaymentComponent.find(\"[data-component='savedPayments.creditCard'], [data-component='savedPayments.eft']\");\r\n\t\t\t$creditCardsAndEfts.show();\r\n\t\t\tif ($creditCardsAndEfts.length && !state.hasNewPaymentBeenShown) {\r\n\t\t\t\t$savedPaymentComponent.find(\"[data-component='savedPayments.addPrompt']\").show();\r\n\t\t\t} else {\r\n\t\t\t\tvar $addNewPaymentComponent = $savedPaymentComponent.find(\"[data-component='savedPayments.addNew']\");\r\n\t\t\t\t$addNewPaymentComponent.show();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ($createAccountAndCheckoutComponent && $createAccountAndCheckoutComponent.length) {\r\n\t\t\t$createAccountAndCheckoutComponent.find(\"[data-component='paymentType']\").show();\r\n\t\t}\r\n\r\n\t\tif ($oneTimeOnlyPaymentComponents && $oneTimeOnlyPaymentComponents.length) {\r\n\t\t\t$oneTimeOnlyPaymentComponents.show();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This method sets a callback method in tangible action classes so that they can let this store know\r\n\t * that we need to try and update the UI to show/hide payment information (no $ for OPCO transaction).\r\n\t *\r\n\t * The action class should have a method setChangeHandlerMethod that takes in our callback to be\r\n\t * triggered at the appropriate time.\r\n\t *\r\n\t * If no method is defined on the actions class, we do not attempt to set it as presumably it's not\r\n\t * needed (ex: ProjectActions will never have a $0 transaction).\r\n\t */\r\n\tinitializeTangibleChangeHandler() {\r\n\t\tif (!state.isDesignMode && !state.isShoppingCart) {\r\n\t\t\tvar tangibleActions = this.getTangibleActions();\r\n\t\t\tif (_.isFunction(tangibleActions.setChangeHandlerMethod)) {\r\n\t\t\t\ttangibleActions.setChangeHandlerMethod(this.updatePaymentComponents.bind(this));\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.debug(`Function setChangeHandlerMethod not defined in ${state.checkoutType} action class `)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetTangibleActions() {\r\n\t\tvar checkoutType = state.checkoutType;\r\n\r\n\t\tswitch (checkoutType) {\r\n\t\t\tcase Constants.TANGIBLE_TYPES.PRODUCTS:\r\n\t\t\t\treturn window.ProductActions;\r\n\t\t\tcase Constants.TANGIBLE_TYPES.PROJECTS:\r\n\t\t\tcase Constants.TANGIBLE_TYPES.SECURE_PROJECTS:\r\n\t\t\t\treturn window.ProjectActions;\r\n\t\t\tcase Constants.TANGIBLE_TYPES.PLEDGES:\r\n\t\t\tcase Constants.TANGIBLE_TYPES.CHILD:\r\n\t\t\tcase Constants.TANGIBLE_TYPES.SECURE_PLEDGES:\r\n\t\t\t\treturn window.PledgeActions;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tsetPayPalActions(actions, enabledOnLoad) {\r\n\t\t// intentional coersion for checking both values.\r\n\t\tif (actions != null) {\r\n\t\t\tthis.payPalActions = actions;\r\n\t\t}\r\n\t\tthis.payPalEnabled = enabledOnLoad != null ? enabledOnLoad : true;\r\n\r\n\t\tvar payPalErrorMessages = this.getPayPalErrorMessages();\r\n\t\tif (this.payPalEnabled && !payPalErrorMessages) {\r\n\t\t\tthis.enablePayPal();\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"We've initialized PayPal state as disabled.\");\r\n\t\t\tthis.disablePayPal(payPalErrorMessages);\r\n\t\t}\r\n\t}\r\n\r\n\tenablePayPal() {\r\n\t\tLoggerInstance.debug(\"Enabling PayPal.\");\r\n\t\tif (this.payPalActions) {\r\n\t\t\tthis.payPalActions.enable();\r\n\t\t\tthis.payPalEnabled = true;\r\n\t\t}\r\n\t\tthis.payPalErrorMessages = null;\r\n\t}\r\n\r\n\tdisablePayPal(errorMessages) {\r\n\t\tLoggerInstance.debug(\"Disabling PayPal.\");\r\n\t\tif (this.payPalActions) {\r\n\t\t\tthis.payPalActions.disable();\r\n\t\t\tthis.payPalEnabled = false;\r\n\t\t}\r\n\t\tthis.payPalErrorMessages = errorMessages;\r\n\t}\r\n\r\n\tgetPayPalErrorMessages() {\r\n\t\treturn this.payPalErrorMessages;\r\n\t}\r\n\r\n\tisPayPalEnabled() {\r\n\t\treturn this.payPalEnabled;\r\n\t}\r\n\r\n\tupdatePayPalButtonState() {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tthis.disablePayPal();\r\n\r\n\t\tif (window.CheckoutActions) {\r\n\t\t\t// We must use window.CheckoutActions to prevent a circular reference.\r\n\t\t\treturn window.CheckoutActions.updatePayPalButtonState();\r\n\t\t} else {\r\n\t\t\tdeferred.reject();\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\t}\r\n\r\n\tgetConfirmationPageRoute() {\r\n\t\tvar confirmationPageRoute = null;\r\n\r\n\t\tvar $checkoutComponent = $(\"[data-component='createAccountAndCheckout'],[data-component='savedPayments']\");\r\n\r\n\t\tif ($checkoutComponent && $checkoutComponent.length) {\r\n\t\t\tconfirmationPageRoute = $checkoutComponent.attr(\"data-confirmation-page-route\");\r\n\t\t}\r\n\r\n\t\treturn confirmationPageRoute || \"orderconfirmation\";\r\n\t}\r\n\r\n\tgetCheckoutDispatcher() {\r\n\t\treturn Dispatcher;\r\n\t}\r\n};\r\n\r\nvar CheckoutStoreSingleton = new CheckoutStore();\r\n\r\nCheckoutStoreSingleton.dispatchToken = Dispatcher.register((action) => {\r\n\tvar cartItem;\r\n\tswitch (action.actionType) {\r\n\t\tcase CheckoutConstants.CART_UPDATE_AMOUNT:\r\n\t\t\tcartItem = CheckoutStoreSingleton.getItem(action.cartItemId, action.itemType);\r\n\t\t\tif (cartItem) {\r\n\t\t\t\tcartItem.amount = action.amount;\r\n\t\t\t\tcartItem.isDirty = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CART_UPDATE_CHARGE_TODAY:\r\n\t\t\tcartItem = CheckoutStoreSingleton.getItem(action.cartItemId, action.itemType);\r\n\t\t\tif (cartItem) {\r\n\t\t\t\tcartItem.customerChoseChargeToday = action.chargeToday;\r\n\t\t\t\tcartItem.isDirty = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.CART_UPDATE_DONATION_AMOUNT_OPCO:\r\n\t\t\tif (!action.context) {\r\n\t\t\t\tstate.donationAmount = action.selectedAmount;\r\n\t\t\t\tCheckoutStoreSingleton.updatePayPalButtonState();\r\n\t\t\t\tCheckoutStoreSingleton.setOPCOSubtotal();\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.CART_UPDATE_DONATION_CHARGE_TODAY_OPCO:\r\n\t\t\tif (!action.context) {\r\n\t\t\t\tstate.isDonationChargeToday = action.isChargeToday;\r\n\t\t\t\tCheckoutStoreSingleton.setOPCOSubtotal();\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.CART_UPDATE_DONATION_FREQUENCY_OPCO:\r\n\t\t\tif (!action.context) {\r\n\t\t\t\tstate.donationFrequency = action.donationFrequency;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.SET_SUBACCOUNT_GIFT_AMOUNT_OPCO:\r\n\t\t\tstate.subaccountAmounts[action.subaccountCode] = action.amount;\r\n\t\t\tCheckoutStoreSingleton.updatePayPalButtonState();\r\n\t\t\tCheckoutStoreSingleton.setOPCOSubtotal();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CART_UPDATE_FREQUENCY:\r\n\t\t\tcartItem = CheckoutStoreSingleton.getItem(action.cartItemId, action.itemType);\r\n\t\t\tif (cartItem) {\r\n\t\t\t\tif (action.frequency === \"O\") {\r\n\t\t\t\t\tcartItem.customerChoseChargeToday = false;\r\n\t\t\t\t\tcartItem.useOnDay = null;\r\n\t\t\t\t\tcartItem.isRecurring = false;\r\n\t\t\t\t} else if (cartItem.frequency === \"O\") {\r\n\t\t\t\t\t// Was one-time and now is not\r\n\t\t\t\t\tif (!cartItem.useOnDay && state.wizardDefaultUseOnDay && state.wizardDefaultUseOnDay.defaultUseOnDay) {\r\n\t\t\t\t\t\tcartItem.useOnDay = state.wizardDefaultUseOnDay.defaultUseOnDay;\r\n\t\t\t\t\t\tcartItem.isRecurring = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (action.frequency !== \"O\" && CheckoutStoreSingleton.getIsDonationChargeTodayRequired(action.cartItemId)) {\r\n\t\t\t\t\tcartItem.customerChoseChargeToday = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcartItem.frequency = action.frequency;\r\n\t\t\t\tcartItem.isDirty = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CART_UPDATE_PRODUCT_OPCO_DISCOUNT:\r\n\t\t\tvar updateSelectedShippingMethod = true;\r\n\t\t\tif (action.productDiscount > 0) {\r\n\t\t\t\tCheckoutStoreSingleton.setFreeShippingMethod(action.freeShippingMethod, action.freeShippingMethodDescription);\r\n\t\t\t} else {\r\n\t\t\t\tupdateSelectedShippingMethod = CheckoutStoreSingleton.removeFreeShippingMethod();\r\n\t\t\t}\r\n\r\n\t\t\tstate.productDiscount = action.productDiscount;\r\n\t\t\tstate.freeShippingMethod = action.freeShippingMethod;\r\n\t\t\tstate.freeShippingMethodDescription = action.freeShippingMethodDescription;\r\n\r\n\t\t\tif (updateSelectedShippingMethod) {\r\n\t\t\t\tCheckoutStoreSingleton.setShippingMethodRates();\r\n\t\t\t}\r\n\r\n\t\t\tCheckoutStoreSingleton.setShippingAmount();\r\n\t\t\t$(\"body\").trigger(\"manuallyUpdateTax\");\r\n\t\t\tCheckoutStoreSingleton.setOPCOSubtotal();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CART_UPDATE_PRODUCT_PRICE:\r\n\t\t\tstate.productPrice = action.productPrice;\r\n\t\t\tCheckoutStoreSingleton.setOPCOSubtotal();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CART_UPDATE_QUANTITY:\r\n\t\t\tcartItem = CheckoutStoreSingleton.getItem(action.cartItemId, action.itemType);\r\n\t\t\tif (cartItem) {\r\n\t\t\t\tcartItem.quantity = action.quantity;\r\n\t\t\t\tcartItem.isDirty = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CART_UPDATE_USE_ON_DAY:\r\n\t\t\tcartItem = CheckoutStoreSingleton.getItem(action.cartItemId, action.itemType);\r\n\t\t\tif (cartItem) {\r\n\t\t\t\tcartItem.useOnDay = action.useOnDay;\r\n\t\t\t\tcartItem.isDirty = true;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.DISABLE_PAYPAL_CHECKOUT:\r\n\t\t\tCheckoutStoreSingleton.disablePayPal();\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.ENABLE_PAYPAL_CHECKOUT:\r\n\t\t\tCheckoutStoreSingleton.enablePayPal();\r\n\t\t\tbreak;\r\n\r\n\t\tcase CheckoutConstants.VALIDATE_PAYPAL_CHECKOUT:\r\n\t\t\tCheckoutStoreSingleton.updatePayPalButtonState();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.DONATION_UPSELL_UPDATE:\r\n\t\t\tstate.donationUpsellAmount = action.donationUpsellAmount;\r\n\t\t\tCheckoutStoreSingleton.setDonationUpsellAmount();\r\n\t\t\tCheckoutStoreSingleton.setRecurringDonationUpsellAmounts();\r\n\r\n\t\tcase Constants.SHIPPING_REQUEST_PENDING:\r\n\t\t\tLoggerInstance.info(\"Getting Shipping Quote now.\");\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.SHIPPING_UPDATED:\r\n\t\t\tLoggerInstance.debug(action.shippingRates);\r\n\t\t\tstate.shippingRates = action.shippingRates;\r\n\t\t\tstate.taxAmount = null; //The shippingAmount will potentially changed, so we would need to calculate tax again; setting it to null in case we do not have enough information to calculate\r\n\t\t\tCheckoutStoreSingleton.setShippingMethodRates();\r\n\t\t\tCheckoutStoreSingleton.setShippingAmount();\r\n\t\t\tCheckoutStoreSingleton.updatePayPalButtonState();\r\n\t\t\tCheckoutStoreSingleton.emitShippingEvent();\r\n\t\t\treturn;\r\n\r\n\t\tcase Constants.SHIPPING_CANNOT_BE_CALCULATED:\r\n\t\t\tLoggerInstance.debug(\"Shipping cannot be calculated yet.\");\r\n\t\t\tstate.shippingRates = null;\r\n\t\t\tstate.taxAmount = null;\r\n\t\t\tCheckoutStoreSingleton.setShippingAmount();\r\n\t\t\tCheckoutStoreSingleton.emitShippingEvent();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.SHIPPING_IS_ALL_FREE:\r\n\t\t\tLoggerInstance.debug(\"All shippable items have free shipping.\");\r\n\t\t\tstate.shippingRates = null;\r\n\t\t\tstate.shippingMethod = null;\r\n\t\t\tstate.taxAmount = null;\r\n\r\n\t\t\t$(\"[data-component='shippingMethods']\").hide();\r\n\r\n\t\t\tCheckoutStoreSingleton.setShippingAmount();\r\n\t\t\tCheckoutStoreSingleton.emitShippingEvent();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.SHIPPING_UPDATE_FAILED:\r\n\t\t\tLoggerInstance.error(action.jqXHR);\r\n\t\t\tstate.shippingRates = null;\r\n\t\t\tstate.taxAmount = null;\r\n\t\t\tCheckoutStoreSingleton.setShippingAmount();\r\n\t\t\tCheckoutStoreSingleton.emitShippingEvent();\r\n\t\t\treturn;\r\n\r\n\t\tcase Constants.SHIPPING_METHOD_UPDATED:\r\n\t\t\tstate.shippingMethod = action.shippingMethod;\r\n\t\t\tstate.taxAmount = null; //The shippingAmount will potentially changed, so we would need to calculate tax again; setting it to null in case we do not have enough information to calculate\r\n\t\t\tCheckoutStoreSingleton.setShippingAmount();\r\n\t\t\tCheckoutStoreSingleton.emitShippingEvent();\r\n\t\t\treturn;\r\n\r\n\t\tcase Constants.TAX_UPDATED:\r\n\t\t\tLoggerInstance.debug(action.taxAmount);\r\n\t\t\tstate.taxAmount = action.taxAmount;\r\n\t\t\tCheckoutStoreSingleton.setTaxAmount();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.TAX_UPDATE_FAILED:\r\n\t\t\tLoggerInstance.error(action.jqXHR);\r\n\t\t\tstate.taxAmount = null;\r\n\t\t\tCheckoutStoreSingleton.setTaxAmount();\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.CHECKOUT_INITIALIZE:\r\n\t\t\t// Coalesce to null in case it is not passed\r\n\t\t\tstate.allowedShippingMethods = action.shippingMethods;\r\n\t\t\tstate.availableQuantity = (action.availableQuantity === 0 || action.availableQuantity) ? action.availableQuantity : null;\r\n\t\t\tstate.donations = action.donations;\r\n\t\t\tstate.eventRegistrations = action.eventRegistrations;\r\n\t\t\tstate.products = action.products;\r\n\t\t\tstate.subscriptions = action.subscriptions || []; //Defaulting here so we didn't have to add this to all the other tangible layouts.\r\n\t\t\tstate.cartType = action.cartType || \"CURRENT\";\r\n\t\t\tstate.cartHasDonationUpsell = action.cartHasDonationUpsell;\r\n\t\t\tstate.checkoutType = action.checkoutType;\r\n\t\t\tstate.errors = action.errors;\r\n\t\t\tstate.errorsToPreventCheckoutExist = action.errorsToPreventCheckoutExist;\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\tstate.isPayPalSupported = action.isPayPalSupported;\r\n\t\t\tstate.isInPledgeStatementSession = action.isInPledgeStatementSession;\r\n\t\t\tstate.isShoppingCart = action.isShoppingCart || false;\r\n\t\t\tstate.saveForLaterDonations = action.saveForLaterDonations;\r\n\t\t\tstate.saveForLaterRegistrations = action.saveForLaterRegistrations;\r\n\t\t\tstate.saveForLaterProducts = action.saveForLaterProducts;\r\n\t\t\tstate.saveForLaterSubscriptions = action.saveForLaterSubscriptions;\r\n\t\t\tstate.wizardApplePayConfiguration = action.wizardApplePayConfiguration;\r\n\t\t\tstate.wizardApplePayDisplayMessages = action.wizardApplePayDisplayMessages;\r\n\t\t\tstate.wizardCheckoutDisplayMessages = action.wizardCheckoutDisplayMessages;\r\n\t\t\tstate.wizardCompanyEftErrorMessages = action.wizardCompanyEftErrorMessages;\r\n\t\t\tstate.wizardCompanyErrorMessages = action.wizardCompanyErrorMessages;\r\n\t\t\tstate.wizardCouponDisplayMessages = action.wizardCouponDisplayMessages;\r\n\t\t\tstate.wizardCreditCardDisplayMessages = action.wizardCreditCardDisplayMessages;\r\n\t\t\tstate.wizardDefaultContactMethod = action.wizardDefaultContactMethod;\r\n\t\t\tstate.wizardDefaultUseOnDay = action.wizardDefaultUseOnDay;\r\n\t\t\tstate.wizardFrequencies = action.wizardFrequencies;\r\n\t\t\tstate.wizardGooglePayConfiguration = action.wizardGooglePayConfiguration;\r\n\t\t\tstate.wizardGooglePayDisplayMessages = action.wizardGooglePayDisplayMessages;\r\n\t\t\tstate.wizardUseOnDays = action.wizardUseOnDays;\r\n\t\t\tstate.wizardDonationRequired = action.wizardDonationRequired;\r\n\t\t\tstate.wizardDonationUpsell = action.wizardDonationUpsell;\r\n\t\t\tstate.wizardPayPalDisplayMessages = action.wizardPayPalDisplayMessages;\r\n\t\t\tstate.wizardProjectCompletionDefaults = action.wizardProjectCompletionDefaults || {};\r\n\t\t\tstate.wizardRecurringRequired = action.wizardRecurringRequired;\r\n\t\t\tstate.wizardSavedPaymentsDisplayMessages = action.wizardSavedPaymentsDisplayMessages;\r\n\t\t\tstate.wizardShippingDisplayMessages = action.wizardShippingDisplayMessages;\r\n\r\n\t\t\taction.wizardCompany = action.wizardCompany || {};\r\n\t\t\tstate.company = action.wizardCompany.company;\r\n\t\t\tstate.currency = action.wizardCompany.currency;\r\n\t\t\tstate.warehouse = action.wizardCompany.warehouse;\r\n\r\n\t\t\tstate.loggedInAccount = action.loggedInAccount;\r\n\t\t\tstate.shippingAddress = action.shippingAddress;\r\n\t\t\tstate.productCode = action.productCode;\r\n\t\t\tstate.productPrice = action.productPrice;\r\n\r\n\t\t\tstate.defaultShippingMethod = action.defaultShippingMethod;\r\n\t\t\tstate.freeShippingMethod = action.freeShippingMethod;\r\n\t\t\tstate.hasShippableProducts = action.hasShippableProducts;\r\n\t\t\tstate.hasOnlyDownloadableOrFreeShippingProducts = action.hasOnlyDownloadableOrFreeShippingProducts;\r\n\r\n\t\t\tstate.defaultSubtotalLabel = $(\"[data-dynamic='Subtotal']\").html();\r\n\t\t\tstate.defaultShippingLabel = $(\"[data-dynamic='Shipping']\").html();\r\n\t\t\tstate.defaultTaxLabel = $(\"[data-dynamic='Tax']\").html();\r\n\t\t\tstate.defaultTotalLabel = $(\"[data-dynamic='Total']\").html();\r\n\t\t\tstate.defaultDonationUpsellAmountLabel = $(\"[data-dynamic='DonationUpsell']\").html();\r\n\r\n\t\t\tstate.donationSubtotal = action.donationSubtotal;\r\n\t\t\tstate.eventRegistrationSubtotal = action.eventRegistrationSubtotal;\r\n\t\t\tstate.productSubtotal = action.productSubtotal;\r\n\t\t\tstate.subscriptionSubtotal = action.subscriptionSubtotal;\r\n\r\n\t\t\tCheckoutStoreSingleton.setOPCOSubtotal();\r\n\t\t\tCheckoutStoreSingleton.initializeShippingMethodRates();\r\n\t\t\tCheckoutStoreSingleton.initializeTangibleChangeHandler();\r\n\t\t\tCheckoutStoreSingleton.updatePaymentComponents();\r\n\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tCheckoutStoreSingleton.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = CheckoutStoreSingleton;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"DonationAmount\");\r\nvar React = require(\"react\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\n\r\nclass DonationAmount extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar state = this.getStateFromStore(props);\r\n\t\tstate.focused = false;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tstate.donationAmount = \"0\";\r\n\t\t}\r\n\r\n\t\tthis.state = state;\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleBlur() {\r\n\t\tif (this.state.originalDonationAmount === this.state.donationAmount) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.validateMinimumAmount()) {\r\n\t\t\tthis.setState({ focused: false }, () => {\r\n\t\t\t\tif (!this.props.isDesignMode) {\r\n\t\t\t\t\tCheckoutActions.updateDonation(this.props.cartItemId);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateMinimumAmount() {\r\n\t\tvar minimumDonationAmount = this.state.minimumDonationAmount;\r\n\t\tvar donationAmount = this.state.donationAmount;\r\n\t\tvar errorMessage = \"\";\r\n\r\n\t\tvar cartItem = CheckoutStore.getItem(this.props.cartItemId, Constants.CART_ITEM_PROJECT);\r\n\t\tvar groupItems = CheckoutStore.getGiftGroupDonationsByGroupId(cartItem && cartItem.groupId);\r\n\t\tvar groupItemsCount = groupItems.length;\r\n\r\n\t\tif (cartItem && cartItem.cartType !== Constants.CART_TYPES.SAVE_FOR_LATER) {\r\n\t\t\tif (groupItemsCount > 1 && cartItem.groupId)\r\n\t\t\t{\r\n\t\t\t\tvar donationGroupTotal = CheckoutStore.getDonationGroupTotal(this.props.cartItemId);\r\n\t\t\t\tif (donationGroupTotal < minimumDonationAmount) {\r\n\t\t\t\t\terrorMessage = CheckoutStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.GIFT_GROUP_AMOUNT_INSUFFICIENT,\r\n\t\t\t\t\t\t{ formattedAmount: ActionsHelper.formatAmount(minimumDonationAmount, true) }\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tCheckoutActions.applyInsufficientGiftGroupAmountStyling(this.props.cartItemId);\r\n\t\t\t\t}\r\n\t\t\t} else if (donationAmount < minimumDonationAmount) {\r\n\t\t\t\terrorMessage = CheckoutStore.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.GIFT_AMOUNT_INSUFFICIENT,\r\n\t\t\t\t\t{ formattedAmount: ActionsHelper.formatAmount(minimumDonationAmount, true) }\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (errorMessage) {\r\n\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\tCheckoutActions.setDonationAmount(this.props.cartItemId, ActionsHelper.convertFormattedAmountToNumberString(this.state.originalDonationAmount));\r\n\t\t}\r\n\r\n\t\treturn !errorMessage;\r\n\t}\r\n\r\n\thandleFocus() {\r\n\t\tthis.setState({ focused: true });\r\n\t}\r\n\r\n\thandleAmountChange(event) {\r\n\t\t// Enforce that the value can be a number followed by a decimal and up to two digits\r\n\t\t// valid: 8, 8., ., .8, .88\r\n\t\t// invalid: .888, 8.888, asdf, '8,888'\r\n\t\tif (InputHelper.isAmountValid(event.currentTarget.value)) {\r\n\t\t\tCheckoutActions.setDonationAmount(this.props.cartItemId, ActionsHelper.convertFormattedAmountToNumberString(event.currentTarget.value));\r\n\t\t}\r\n\t}\r\n\r\n\tformatAmountKeepUserDecimals(amount) {\r\n\t\treturn this._formatAmount(amount, true);\r\n\t}\r\n\r\n\tformatAmount(amount) {\r\n\t\treturn this._formatAmount(amount, false);\r\n\t}\r\n\r\n\t// If keepDecimals, do not format out the decimals.\r\n\t// User entered information should not strip out decimals.\r\n\t_formatAmount(amount, keepDecimals) {\r\n\t\treturn ActionsHelper.formatAmount(amount, this.props.showDecimals, this.props.includeCurrencySymbol, keepDecimals);\r\n\t}\r\n\r\n\tgetStateFromStore(props) {\r\n\t\treturn {\r\n\t\t\tdonationAmount: CheckoutStore.getDonationAmount((props || this.props).cartItemId),\r\n\t\t\tminimumDonationAmount: CheckoutStore.getMinimumDonationAmount((props || this.props).cartItemId)\r\n\t\t};\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.getStateFromStore());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tCheckoutStore.addChangeListener(this._onChange);\r\n\r\n\t\tthis.setState({originalDonationAmount: CheckoutStore.getDonationAmount(this.props.cartItemId)});\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tCheckoutStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tCheckoutActions.setDonationAmount(this.props.cartItemId, null);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar donationAmount = this.state.donationAmount;\r\n\t\tif (!this.state.focused) {\r\n\t\t\tdonationAmount = this.formatAmount(donationAmount);\r\n\t\t} else {\r\n\t\t\tdonationAmount = ActionsHelper.replaceAmountDecimalSymbols(this.state.donationAmount);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"DonationAmount\"\r\n\t\t\t\tdata-react-component-category=\"DonationCartItemComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<input\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tvalue={donationAmount}\r\n\t\t\t\t\tmaxLength=\"10\"\r\n\t\t\t\t\tonBlur={this.handleBlur.bind(this)}\r\n\t\t\t\t\tonChange={this.handleAmountChange.bind(this)}\r\n\t\t\t\t\tonFocus={this.handleFocus.bind(this)}\r\n\t\t\t\t\tclassName={this.props.className}\r\n\t\t\t\t\tdata-override-classes={this.props.className}\r\n\t\t\t\t\tinputMode=\"decimal\"\r\n\t\t\t\t/>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nDonationAmount.defaultProps = {\r\n\tincludeCurrencySymbol: true,\r\n\tshowDecimals: true\r\n};\r\n\r\nDonationAmount.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tisDesignMode: PropTypes.bool,\r\n\tcartItemId: PropTypes.string,\r\n\tshowDecimals: PropTypes.bool,\r\n\tincludeCurrencySymbol: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = DonationAmount;\r\n","\"use strict\";\r\n\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\nvar CheckoutApi = require(\"./CheckoutApi\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar NumberHelper = require(\"../shared/NumberHelper\");\r\n\r\nvar DonationUpsellHelper = {\r\n\tinitializeDonationUpsell: function () {\r\n\t\tvar $donationUpsellCheckbox = $(\"[data-component='donationUpsellCheckbox']\");\r\n\r\n\t\t$donationUpsellCheckbox.off(\"click.donationUpsellHelper\");\r\n\t\t$donationUpsellCheckbox.on(\"click.donationUpsellHelper\", (event) => {\r\n\t\t\t//currentTarget is the donationUpsellCheckbox component\r\n\t\t\t//target can be either donationUpsellCheckbox or donationUpsellCheckbox.input component depending on which was clicked\r\n\t\t\tvar $input = $(event.currentTarget).find(\"[data-component='donationUpsellCheckbox.input']\");\r\n\t\t\tif (!$(event.target).is($input)) {\r\n\t\t\t\t//If the checkbox itself was not clicked, mark it as checked\r\n\t\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t\t}\r\n\t\t\tthis.handleDonationUpsellChange();\r\n\t\t\tthis._persistDonationUpsellValues(/*didCheckboxChange*/true);\r\n\t\t});\r\n\r\n\t\t//If Last-Minute donation was enabled from the cart or saved as checked from session storage, ensure the checkbox is checked\r\n\t\t//\tOtherwise, it will use the default from the layout designer.\r\n\t\tif (CheckoutStore.isShoppingCart()) {\r\n\t\t\tvar cartHasDonationUpsell = CheckoutStore.get(\"cartHasDonationUpsell\");\r\n\t\t\tvar isLastMinuteDonationCheckedFromSessionStorage = sessionStorage.getItem(\"lastMinuteDonationChecked\");\r\n\t\t\tvar $donationUpsellCheckbox = $(\"[data-component='donationUpsellCheckbox.input']\");\r\n\t\t\tvar isDonationUpsellCheckboxedByDefault = $donationUpsellCheckbox.prop(\"checked\");\r\n\r\n\t\t\tif (cartHasDonationUpsell != null) { //coercion, want to match null and undefined\r\n\t\t\t\t$donationUpsellCheckbox.prop(\"checked\", cartHasDonationUpsell);\r\n\t\t\t} else if (isLastMinuteDonationCheckedFromSessionStorage != null) { //coercion, want to match null and undefined\r\n\t\t\t\t$donationUpsellCheckbox.prop(\"checked\", isLastMinuteDonationCheckedFromSessionStorage === \"true\");\r\n\t\t\t\t//Need to persist this to the cart as well as it was not set in the cart yet.\r\n\t\t\t\tthis._persistDonationUpsellValues();\r\n\t\t\t} else if (isDonationUpsellCheckboxedByDefault) {\r\n\t\t\t\t//This case is when the checkbox is checked by default on the layout\r\n\t\t\t\t//\tand it was not specifically set in the cart or in the session\r\n\t\t\t\t//\tGo ahead and persist to the SE cart now.\r\n\t\t\t\tthis._persistDonationUpsellValues();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Calculating the donation upsell amounts when the page loads\r\n\t\t$(document).ready(() => {\r\n\t\t\tthis.handleDonationUpsellChange();\r\n\t\t})\r\n\t},\r\n\r\n\tcheckDonationUpsell: function() {\r\n\t\tif (!this.hasDonationUpsell()) {\r\n\t\t\t$(\"[data-component='donationUpsellCheckbox.input']\").click();\r\n\t\t}\r\n\t},\r\n\r\n\tgetDonationUpsellCalculationValues: function () {\r\n\t\tvar calculationType = CheckoutStore.get(\"wizardDonationUpsell\").lastMinuteDonationCalculation;\r\n\t\tvar amount = CheckoutStore.get(\"wizardDonationUpsell\").lastMinuteDonationAmount;\r\n\r\n\t\treturn {\r\n\t\t\tcalculationType,\r\n\t\t\tamount\r\n\t\t}\r\n\t},\r\n\r\n\thandleDonationUpsellChange: function () {\r\n\t\tif (CheckoutStore.get(\"isDesignMode\")) {\r\n\t\t\t//Do not do anything in the designer\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar donationUpsellAmount = 0.0;\r\n\r\n\t\t//One-Time\r\n\t\tif (this.hasDonationUpsell()) {\r\n\t\t\tdonationUpsellAmount = this._calculateDonationUpsell(CheckoutStore.getSubtotal());\r\n\t\t}\r\n\r\n\t\t//Recurring\r\n\t\tif (CheckoutStore.isShoppingCart()) {\r\n\t\t\tvar donations = CheckoutStore.getCartDonations();\r\n\t\t\tvar recurringDonations = donations.filter(donation => {\r\n\t\t\t\treturn donation.isRecurring;\r\n\t\t\t});\r\n\t\t\tvar upsellAmountsByFrequency = {};\r\n\t\t\t_.values(_.groupBy(recurringDonations, donation => JSON.stringify({\r\n\t\t\t\tfrequency: donation.frequency,\r\n\t\t\t\tcategory: donation.category,\r\n\t\t\t\tsource: donation.source,\r\n\t\t\t\tstartDate: donation.startDate,\r\n\t\t\t\tuseOnDay: donation.useOnDay\r\n\t\t\t}))).forEach(groupedRecurringDonations => {\r\n\t\t\t\tvar totalAmount = 0;\r\n\t\t\t\tgroupedRecurringDonations.forEach(donation => totalAmount += donation.amount);\r\n\t\t\tvar upsellAmount = this._calculateDonationUpsell(totalAmount);\r\n\t\t\t\tupsellAmountsByFrequency[groupedRecurringDonations[0].frequency] = (Number(upsellAmountsByFrequency[groupedRecurringDonations[0].frequency]) || 0) + Number(upsellAmount);\r\n\t\t\t});\r\n\r\n\t\t\tvar $recurringDonations = $(\"[data-recurring-frequency]\");\r\n\t\t\t$recurringDonations.each((index, recurringDonation) => {\r\n\t\t\t\tvar $recurringDonation = $(recurringDonation);\r\n\t\t\t\tvar frequency = $recurringDonation.attr(\"data-recurring-frequency\");\r\n\t\t\t\tvar recurringDonationUpsellAmount = 0;\r\n\t\t\t\tif (this.hasDonationUpsell()) {\r\n\t\t\t\t\trecurringDonationUpsellAmount = upsellAmountsByFrequency[frequency];\r\n\t\t\t\t}\r\n\t\t\t\t$recurringDonation.attr(\"upsell-amount\", recurringDonationUpsellAmount);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar recurringDonationUpsellAmountForOPCO = 0;\r\n\t\t\tif (this.hasDonationUpsell()) {\r\n\t\t\t\tvar recurringTotal = CheckoutStore.getProjectDonationTotalForOPCO();\r\n\t\t\t\trecurringDonationUpsellAmountForOPCO = this._calculateDonationUpsell(recurringTotal);\r\n\t\t\t}\r\n\r\n\t\t\t$(\"[data-dynamic='AmountForFrequency']\").attr(\"upsell-amount\", recurringDonationUpsellAmountForOPCO);\r\n\t\t}\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.DONATION_UPSELL_UPDATE,\r\n\t\t\tdonationUpsellAmount\r\n\t\t});\r\n\t},\r\n\r\n\thasDonationUpsell: function () {\r\n\t\tvar $donationUpsellCheckbox = $(\"[data-component='donationUpsellCheckbox.input']\");\r\n\t\tvar isChecked = $donationUpsellCheckbox.prop(\"checked\");\r\n\r\n\t\treturn isChecked;\r\n\t},\r\n\r\n\tuncheckDonationUpsell: function() {\r\n\t\tif (this.hasDonationUpsell()) {\r\n\t\t\t$(\"[data-component='donationUpsellCheckbox.input']\").click();\r\n\t\t}\r\n\t},\r\n\r\n\t_persistDonationUpsellValues: function (didCheckboxChange) {\r\n\t\t//Only persist if on the shopping cart page\r\n\t\t//\tIf on the project page, the checkbox is set in project cached values and sent to the server upon Submit\r\n\t\tif (!CheckoutStore.isShoppingCart()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Persist whether it is checked in sessionStorage\r\n\t\tif (didCheckboxChange) {\r\n\t\t\tif (this.hasDonationUpsell()) {\r\n\t\t\t\tsessionStorage.setItem(\"lastMinuteDonationChecked\", \"true\");\r\n\t\t\t} else {\r\n\t\t\t\tsessionStorage.setItem(\"lastMinuteDonationChecked\", \"false\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//update last-minute donation fields on shopping cart\r\n\t\tvar donationUpsellValues = this.getDonationUpsellCalculationValues();\r\n\r\n\t\tvar lastMinuteDonationAmount = this.hasDonationUpsell() ? donationUpsellValues.amount : null;\r\n\t\tvar lastMinuteDonationCalculation = null;\r\n\t\tif (this.hasDonationUpsell()) {\r\n\t\t\tlastMinuteDonationCalculation = donationUpsellValues.calculationType\r\n\t\t} else if(didCheckboxChange) {\r\n\t\t\t//The constituent specifically unchecked the checkbox\r\n\t\t\tlastMinuteDonationCalculation = WizardConstants.LAST_MINUTE_DONATION_CALCULATION_VALUES.CONSTITUENT_DECLINED;\r\n\t\t}\r\n\r\n\t\tCheckoutApi.updateLastMinuteDonation(CheckoutStore.getCartType(), {\r\n\t\t\tlastMinuteDonationCalculation,\r\n\t\t\tlastMinuteDonationAmount\r\n\t\t});\r\n\t},\r\n\r\n\t_calculateDonationUpsell: function (amount) {\r\n\t\tif (amount <= 0) {\r\n\t\t\t//If there is no amount, a last minute donation will not be added\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tvar donationUpsellValues = this.getDonationUpsellCalculationValues();\r\n\t\tvar lastMinuteDonationCalculation = donationUpsellValues.calculationType;\r\n\t\tvar lastMinuteDonationAmount = donationUpsellValues.amount;\r\n\r\n\t\tvar upsellAmount = 0.0;\r\n\r\n\t\tif (lastMinuteDonationCalculation == WizardConstants.LAST_MINUTE_DONATION_CALCULATION_VALUES.PERCENTAGE) {\r\n\t\t\tupsellAmount = NumberHelper.roundToTwoDecimals(amount * (lastMinuteDonationAmount / 100));\r\n\t\t}\r\n\t\tif (lastMinuteDonationCalculation == WizardConstants.LAST_MINUTE_DONATION_CALCULATION_VALUES.STATIC_AMOUNT) {\r\n\t\t\tupsellAmount = NumberHelper.roundToTwoDecimals(lastMinuteDonationAmount);\r\n\t\t}\r\n\r\n\t\treturn upsellAmount;\r\n\t}\r\n};\r\n\r\nmodule.exports = DonationUpsellHelper;\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\n\r\nLogger.useDefaults({\r\n\tdefaultLevel: Logger.ERROR\r\n});\r\n\r\nmodule.exports = {\r\n\tApplePayHelper: require(\"./ApplePayHelper\"),\r\n\tCartItemQuantity: require(\"./CartItemQuantity\"),\r\n\tCartItemUseOnDay: require(\"./CartItemUseOnDay\"),\r\n\tChargeToday: require(\"./ChargeToday\"),\r\n\tCheckoutActions: require(\"./CheckoutActions\"),\r\n\tDonationAmount: require(\"./DonationAmount\"),\r\n\tEventRegistrationHelper: require(\"../eventComponents/EventRegistrationHelper\"), //Here because the EventsLayout.cshtml load it, checkoutComponents is used on less pages, but we really need to move everything to a single bundle.\r\n\tFrequency: require(\"./Frequency\"),\r\n\tGooglePayHelper: require(\"./GooglePayHelper\"),\r\n\tPaymentTypeSelector: require(\"./PaymentTypeSelector\"),\r\n\tPayPalHelper: require(\"./PayPalHelper\"),\r\n\tPledgeStatementHelper: require(\"../accountComponents/PledgeStatementHelper\")\r\n};\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"Frequency\");\r\nvar React = require(\"react\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\n\r\nclass Frequency extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar state = this.getStateFromStore(props);\r\n\t\tvar wizardFrequencies = CheckoutStore.get(\"wizardFrequencies\") || { allowedFrequencies: [] };\r\n\t\tvar allowedFrequencies = wizardFrequencies.allowedFrequencies || [];\r\n\t\tvar frequencies = props.frequencies;\r\n\t\tvar frequency;\r\n\r\n\t\tif (allowedFrequencies && frequencies) {\r\n\t\t\tfor (var i = frequencies.length - 1; i >= 0; --i) {\r\n\t\t\t\tfrequency = frequencies[i];\r\n\t\t\t\tvar allowedIndex = allowedFrequencies.indexOf(frequency.value);\r\n\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t// Frequency is not allowed\r\n\t\t\t\t\tfrequencies.splice(i, 1);\r\n\t\t\t\t} else if (frequency.useDefaultDescription) {\r\n\t\t\t\t\t// Frequency should use default description\r\n\t\t\t\t\tfrequency.description = wizardFrequencies[`${frequency.value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfrequencies = [];\r\n\t\t}\r\n\r\n\t\tstate.frequencies = frequencies;\r\n\r\n\t\tthis.state = state;\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleChange(event) {\r\n\t\tvar cartItemId = this.props.cartItemId;\r\n\t\tCheckoutActions.setDonationFrequency(cartItemId, event.currentTarget.value);\r\n\t\tCheckoutActions.updateDonation(cartItemId);\r\n\t}\r\n\r\n\tgetStateFromStore(props) {\r\n\t\treturn {\r\n\t\t\tselectedFrequency: CheckoutStore.getDonationFrequency((props || this.props).cartItemId)\r\n\t\t};\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.getStateFromStore());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tCheckoutStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tCheckoutStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tCheckoutActions.setDonationFrequency(this.props.cartItemId, null);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar selectedFrequency = this.state.selectedFrequency;\r\n\t\tvar frequencies = this.state.frequencies;\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"Frequency\"\r\n\t\t\t\tdata-react-component-category=\"DonationCartItemComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tvalue={selectedFrequency || \"\"}\r\n\t\t\t\t\tonChange={this.handleChange.bind(this)}\r\n\t\t\t\t\tclassName={this.props.className}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.className}\r\n\t\t\t\t>\r\n\t\t\t\t\t{frequencies && frequencies.map(frequency => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option key={frequency.value} value={frequency.value}>\r\n\t\t\t\t\t\t\t\t{frequency.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nFrequency.defaultProps = {};\r\n\r\nFrequency.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tisDesignMode: PropTypes.bool,\r\n\tcartItemId: PropTypes.string,\r\n\tfrequencies: PropTypes.arrayOf(PropTypes.shape({\r\n\t\tdescription: PropTypes.string,\r\n\t\tvalue: PropTypes.string\r\n\t})),\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = Frequency;\r\n","\"use strict\";\r\n\nvar LoggerInstance = require(\"js-logger\").get(\"GooglePayHelper\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar CheckoutHelper = require(\"../commonComponents/CheckoutHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nmodule.exports = {\r\n\tinitialize: function () {\r\n\t\t// Once the page has loaded, if PaymentRequest is not defined, we should remove the component.\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tvar googlePayConfiguration = CheckoutActions.getGooglePayConfiguration();\r\n\r\n\t\t\t\tif (googlePayConfiguration.isEnabled === \"N\" || !window.PaymentRequest) {\n\t\t\t\t\t$(\"[data-component='googlePay']\").remove();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeGooglePay: function ($button) {\r\n\t\tvar that = this;\r\n\t\tvar googlePayConfiguration = CheckoutActions.getGooglePayConfiguration();\r\n\t\tvar isDesignMode = $button && $button.length > 0;\r\n\r\n\t\tconst paymentsClient = new google.payments.api.PaymentsClient({ environment: googlePayConfiguration.environment });\r\n\r\n\t\tvar $buttonComponent = (isDesignMode && $button) || $(\"[data-component='googlePay.button']\");\r\n\r\n\t\tconst button = paymentsClient.createButton({\r\n\t\t\tonClick: () => {\r\n\t\t\t\tthat.onGooglePayButtonClicked();\r\n\t\t\t},\r\n\t\t\tallowedPaymentMethods: [\"CARD\"],\r\n\t\t\tbuttonColor: \"default\",\r\n\t\t\tbuttonSizeMode: \"fill\",\r\n\t\t\tbuttonType: \"plain\"\r\n\t\t});\r\n\r\n\t\t$buttonComponent.empty();\r\n\t\t$buttonComponent.append(button);\r\n\r\n\t\tif (isDesignMode) {\r\n\t\t\t// We are loading the real button in the designer and need to block click events\r\n\t\t\t$buttonComponent.find(\"button\").css(\"pointer-events\", \"none\");\r\n\t\t}\r\n\t},\r\n\r\n\tonGooglePayButtonClicked: function (event) {\r\n\t\tSpinner.showSpinner();\r\n\r\n\t\tvar components = CheckoutActions.getComponentsForCheckoutValidation(Constants.CHECKOUT_VALIDATION_TYPES.ALTERNATIVE_BUTTON_CHECKOUT);\r\n\t\tvar addressStandardizationOptions = { primaryAddressFormName: AccountFormHelper.getPrimaryAddressFormName() };\r\n\t\tvar googlePayErrorMessages = CheckoutActions.getGooglePayDisplayMessages();\r\n\t\tgooglePayErrorMessages.paymentCreationErrorLogMessage = \"Google Pay Error: Unable to create valid payment information for processing the selected payment.\";\r\n\r\n\t\tCheckoutActions.validateCheckout(null, { components }, addressStandardizationOptions).always(validationResult => {\r\n\t\t\tif (!validationResult.isValid) {\r\n\t\t\t\t// Our normal validation error messages have already been displayed at this point.\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tCheckoutHelper.getCheckoutData().always(dataToSend => {\r\n\t\t\t\tif (!dataToSend) {\r\n\t\t\t\t\t// Our normal data collection error messages have already been displayed at this point.\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We have to perform a reCAPTCHA challenge before displaying the Payment Screen\r\n\t\t\t\tCheckoutActions.validateWithReCAPTCHA().always(validationResult => {\r\n\t\t\t\t\tdataToSend.reCAPTCHAResponseToken = validationResult.reCAPTCHAResponseToken;\r\n\r\n\t\t\t\t\tconst paymentRequest = this.getGooglePayPaymentRequest(googlePayErrorMessages);\r\n\t\t\t\t\tif (paymentRequest) {\r\n\t\t\t\t\t\tthis.performGooglePayCheckout(paymentRequest, dataToSend, googlePayErrorMessages);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tgetGooglePayPaymentRequest: function (googlePayErrorMessages) {\r\n\t\tvar googlePayConfiguration = CheckoutActions.getGooglePayConfiguration();\r\n\r\n\t\tconst paymentMethodData = [{\r\n\t\t\t\"supportedMethods\": \"https://google.com/pay\",\r\n\t\t\t\"data\": {\r\n\t\t\t\t\"environment\": googlePayConfiguration.environment,\r\n\t\t\t\t\"apiVersion\": 2,\r\n\t\t\t\t\"apiVersionMinor\": 0,\r\n\t\t\t\t\"merchantInfo\": {\r\n\t\t\t\t\t\"merchantId\": googlePayConfiguration.merchantIdentifier || \"\",\r\n\t\t\t\t\t\"merchantName\": googlePayConfiguration.merchantDisplayName\r\n\t\t\t\t},\r\n\t\t\t\t\"allowedPaymentMethods\": [{\r\n\t\t\t\t\t\"type\": 'CARD',\r\n\t\t\t\t\t\"parameters\": {\r\n\t\t\t\t\t\t\"allowedAuthMethods\": [\"PAN_ONLY\", \"CRYPTOGRAM_3DS\"],\r\n\t\t\t\t\t\t\"allowedCardNetworks\": [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"], // This is all Google's allowed networks.\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\"tokenizationSpecification\": {\r\n\t\t\t\t\t\t\"type\": 'PAYMENT_GATEWAY',\r\n\t\t\t\t\t\t\"parameters\": {\r\n\t\t\t\t\t\t\t\"gateway\": \"cardconnect\",\r\n\t\t\t\t\t\t\t\"gatewayMerchantId\": googlePayConfiguration.paymentProviderIdentifier || \"\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}],\r\n\t\t\t\t\"transactionInfo\": {\r\n\t\t\t\t\t\"totalPriceStatus\": \"FINAL\",\r\n\t\t\t\t\t\"totalPrice\": `${CheckoutActions.getTotalAmount()}`,\r\n\t\t\t\t\t\"totalPriceLabel\": \"DonorDirect\",\r\n\t\t\t\t\t\"currencyCode\": CheckoutActions.getCurrency(),\r\n\t\t\t\t\t\"checkoutOption\": \"COMPLETE_IMMEDIATE_PURCHASE\",\r\n\t\t\t\t\t\"countryCode\": googlePayConfiguration.merchantCountry\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}];\r\n\r\n\t\tconst paymentOptions = {\r\n\t\t\t\"requestPayerName\": false,\r\n\t\t\t\"requestBillingAddress\": false,\r\n\t\t\t\"requestPayerEmail\": false,\r\n\t\t\t\"requestPayerPhone\": false,\r\n\t\t\t\"requestShipping\": false,\r\n\t\t\t\"shippingType\": \"shipping\"\r\n\t\t};\r\n\r\n\t\tconst paymentDetails = {\r\n\t\t\t\"total\": {\r\n\t\t\t\t\"type\": \"final\",\r\n\t\t\t\t\"label\": googlePayConfiguration.merchantDisplayName,\r\n\t\t\t\t\"amount\": {\r\n\t\t\t\t\t\"value\": CheckoutActions.getTotalAmount(),\r\n\t\t\t\t\t\"currency\": CheckoutActions.getCurrency()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\treturn new PaymentRequest(paymentMethodData, paymentDetails, paymentOptions);\r\n\t\t} catch (exception) {\r\n\t\t\tLoggerInstance.error(exception);\r\n\t\t\tBootstrapPrompt.alert(googlePayErrorMessages.paymentUnavailable);\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t\treturn null;\r\n\t\t}\r\n\t},\r\n\r\n\tperformGooglePayCheckout: function (paymentRequest, dataToSend, googlePayErrorMessages) {\r\n\t\t// Display the Payment Screen\r\n\t\tpaymentRequest.show().then((paymentResponse) => {\r\n\t\t\tvar paymentInformation = this.getGooglePayPaymentInformation(paymentResponse);\r\n\t\t\tif (paymentInformation) {\r\n\t\t\t\t// Submit Checkout\r\n\t\t\t\tCheckoutActions.processPreTokenizedPaymentCheckout(\r\n\t\t\t\t\tpaymentInformation,\r\n\t\t\t\t\tdataToSend,\r\n\t\t\t\t\t(successCallback) => this.dismissPaymentScreen(paymentResponse, \"success\"),\r\n\t\t\t\t\t(failureCallback) => this.dismissPaymentScreen(paymentResponse, \"fail\")\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\t// Google displays errors to the user prior to dismissing the payment screen.\r\n\t\t\t\tvar logMessage = paymentResponse && paymentResponse.details && paymentResponse.details.statusMessage;\r\n\t\t\t\tLoggerInstance.error(logMessage || googlePayErrorMessages.paymentCreationErrorLogMessage);\r\n\r\n\t\t\t\tthis.dismissPaymentScreen(paymentResponse, \"fail\");\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}\r\n\t\t}).catch(exception => {\r\n\t\t\t// If the user manually closed (aborted) the Payment Screen, we should skip the alert message.\r\n\t\t\tif (exception && exception.name === \"AbortError\") {\r\n\t\t\t\tLoggerInstance.info(exception);\r\n\t\t\t} else {\r\n\t\t\t\tLoggerInstance.error(exception)\r\n\t\t\t\tBootstrapPrompt.alert(googlePayErrorMessages.paymentUnavailable);\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.removeSpinner();\r\n\t\t});\r\n\t},\r\n\r\n\tgetGooglePayPaymentInformation: function (paymentResponse) {\r\n\t\tvar paymentInformation = null;\r\n\t\tvar paymentMethodData = paymentResponse && paymentResponse.details && paymentResponse.details.paymentMethodData;\r\n\t\tvar token = paymentMethodData && paymentMethodData.tokenizationData && paymentMethodData.tokenizationData.token;\r\n\r\n\t\tif (token) {\r\n\t\t\tvar hostedPageToken = `GOOGLE_PAY|${token}`;\r\n\t\t\tvar cardType = (paymentMethodData.info && paymentMethodData.info.cardNetwork || \"\").toUpperCase();\r\n\t\t\tvar last4Digits = (paymentMethodData.info && paymentMethodData.info.cardDetails || \"\");\r\n\t\t\tvar type = \"CC\";\r\n\r\n\t\t\t// Google Pay provides data for the following fields in the CombinedPaymentDto/PaymentContainer:\r\n\t\t\tpaymentInformation = {\r\n\t\t\t\thostedPageToken,\r\n\t\t\t\tcardType,\r\n\t\t\t\tlast4Digits,\r\n\t\t\t\ttype\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn paymentInformation;\r\n\t},\r\n\r\n\tdismissPaymentScreen: function (paymentResponse, completionStatus) {\r\n\t\tpaymentResponse.complete(completionStatus);\r\n\t}\r\n};","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"PayPalHelper\");\r\n\r\nvar CheckoutActions = require(\"./CheckoutActions\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar CheckoutHelper = require(\"../commonComponents/CheckoutHelper\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nmodule.exports = {\r\n\tgetBaseUrl: function () {\r\n\t\treturn window.location.protocol + // http(s)\r\n\t\t\t\"//\" +\r\n\t\t\twindow.location.hostname + // host may contain port, so play it safe and only return hostname\r\n\t\t\t(window.location.port ? \":\" + window.location.port : \"\") // if there's a port, tack it on.\r\n\t},\r\n\r\n\tgetCreateUrl: function() {\r\n\t\treturn `${this.getBaseUrl()}/api/paypal/payment/create`;\r\n\t},\r\n\r\n\tgetPayPalButtonOptions: function(isPayPalLive, company, enabledOnLoad) {\r\n\t\treturn {\r\n\t\t\tenv: (isPayPalLive ? \"production\" : \"sandbox\"),\r\n\t\t\tstyle: {\r\n\t\t\t\ttagline: false,\r\n\t\t\t\tlabel: \"paypal\"\r\n\t\t\t},\r\n\t\t\tcommit: true,\r\n\t\t\tvalidate: function (actions) {\r\n\t\t\t\tCheckoutActions.setPayPalActions(actions, enabledOnLoad);\r\n\t\t\t},\r\n\t\t\tonClick: function () {\r\n\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\tCheckoutActions.updatePayPalButtonState(/*shouldMarkInvalidComponents*/ true).fail(() => {\r\n\t\t\t\t\tif (!CheckoutActions.isPayPalEnabled()) {\r\n\t\t\t\t\t\t//There were shopping cart errors when the page loaded\r\n\t\t\t\t\t\tvar shoppingCartErrors = CheckoutActions.getShoppingCartErrors();\r\n\t\t\t\t\t\tif (CheckoutActions.getDoShoppingCartErrorToPreventCheckoutExist() && shoppingCartErrors.length) {\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(shoppingCartErrors.join(\"<br>\"));\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar additionalErrorMessage = CheckoutActions.getPayPalErrorMessages();\r\n\r\n\t\t\t\t\t\tvar errorMessage = \"\";\r\n\t\t\t\t\t\tif (additionalErrorMessage) {\r\n\t\t\t\t\t\t\tadditionalErrorMessage.forEach(message => {\r\n\t\t\t\t\t\t\t\terrorMessage += errorMessage !== \"\" ? \"\\n\" : \"\";\r\n\t\t\t\t\t\t\t\terrorMessage += message;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (errorMessage) {\r\n\t\t\t\t\t\t\t\terrorMessage = `\\n${errorMessage}`;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tBootstrapPrompt.alert(\r\n\t\t\t\t\t\t\tCheckoutActions.getWizardValue(\r\n\t\t\t\t\t\t\t\tWizardConstants.WIZARDS.PAYPAL_MESSAGES,\r\n\t\t\t\t\t\t\t\tWizardConstants.PAYPAL_MESSAGE_FIELDS.ADDITIONAL_INFORMATION_REQUIRED\r\n\t\t\t\t\t\t\t) + errorMessage\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}).always(() => {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tpayment: (data, actions) => {\r\n\t\t\t\t// Deferred object to return while we wait for payment processing.\r\n\t\t\t\tvar paymentCreateResult = $.Deferred();\r\n\r\n\t\t\t\tvar preCheckOutResult = CheckoutActions.processPayPalPaymentPreCheckout();\r\n\t\t\t\tpreCheckOutResult.done((data) => {\r\n\t\t\t\t\tvar requestData = {\r\n\t\t\t\t\t\tcompany,\r\n\t\t\t\t\t\ttransactionData: JSON.stringify(data)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tactions.request.post(this.getCreateUrl(), requestData)\r\n\t\t\t\t\t\t.then((res) => {\r\n\t\t\t\t\t\t\tpaymentCreateResult.resolve(res.paymentId);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn paymentCreateResult;\r\n\t\t\t},\r\n\t\t\tonAuthorize: (data) => {\r\n\t\t\t\tvar paymentExecuteDeferred = $.Deferred();\r\n\r\n\t\t\t\t// We don't validate prior to checking out with PayPal here because it has already\r\n\t\t\t\t// been done in the onClick function's call to CheckoutActions.updatePayPalButtonState();\r\n\r\n\t\t\t\tCheckoutHelper.getCheckoutData().always(dataToSend => {\r\n\t\t\t\t\tif (!dataToSend) {\r\n\t\t\t\t\t\tpaymentExecuteDeferred.reject();\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t* We're using existing fields in the PaymentContainer/CombinedPaymentDto instead of defining\r\n\t\t\t\t\t* new fields specifically for PayPal REST API payments.\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* hostedPageToken: The ID (paymentID) used by PayPal to identify the created payment.\r\n\t\t\t\t\t* cardName: The ID (payerID) used by PayPal to identify the account making the payment.\r\n\t\t\t\t\t* type: The DDCPAYTYPE for PayPal payments\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tvar payPalPaymentInformation = {\r\n\t\t\t\t\t\thostedPageToken: data.paymentID,\r\n\t\t\t\t\t\tcardName: data.payerID,\r\n\t\t\t\t\t\ttype: \"PAYPAL\"\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tCheckoutActions.processPreTokenizedPaymentCheckout(payPalPaymentInformation, dataToSend);\r\n\r\n\t\t\t\t\tpaymentExecuteDeferred.resolve();\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn paymentExecuteDeferred;\r\n\t\t\t},\r\n\t\t\tonCancel: (data, actions) => {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tBootstrapPrompt.alert(\r\n\t\t\t\t\tCheckoutActions.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.PAYPAL_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.PAYPAL_MESSAGE_FIELDS.CREATE_ERROR\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tonError: (error) => {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tBootstrapPrompt.alert(\r\n\t\t\t\t\tCheckoutActions.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.PAYPAL_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.PAYPAL_MESSAGE_FIELDS.CHECKOUT_ERROR\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\r\n\t\t\t\tLoggerInstance.error(CheckoutActions.getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.PAYPAL_MESSAGES,\r\n\t\t\t\t\tWizardConstants.PAYPAL_MESSAGE_FIELDS.CHECKOUT_ERROR\r\n\t\t\t\t), error);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n};","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar React = require(\"react\");\r\n\r\nvar AccountConstants = require(\"../accountComponents/AccountConstants\");\r\n\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\n\r\nclass PaymentTypeSelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\t// Set the initial selected payment type, either from the \"Default Payment Type Selected\" property or the first element if there is no default or the default does not exist\r\n\t\tvar defaultSelectedIndex = props.supportedPaymentTypes.indexOf(props.defaultPaymentTypeSelected);\r\n\t\tif (defaultSelectedIndex < 0) {\r\n\t\t\tdefaultSelectedIndex = 0;\r\n\t\t}\r\n\t\tvar selectedType = props.supportedPaymentTypes && props.supportedPaymentTypes.length > 0 ? props.supportedPaymentTypes[defaultSelectedIndex] : null;\r\n\r\n\t\tvar uniqueName = \"\";\r\n\t\t//There can be more than one PaymentTypeSelector.\r\n\t\t//\tThey need different input names so that they are not all tied together.\r\n\t\tif (props.dataRepeatedId) {\r\n\t\t\tuniqueName = HtmlHelper.getId($(\"body\"));\r\n\t\t} else {\r\n\t\t\tuniqueName = props.id || props.dataNestedId || \"\";\r\n\t\t}\r\n\r\n\t\tif (uniqueName) {\r\n\t\t\tuniqueName = `_${uniqueName}`;\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedType,\r\n\t\t\tuniqueName\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleTypeSelected(event) {\r\n\t\tvar selectedType = event.currentTarget.value;\r\n\r\n\t\tthis.updateDisplay(selectedType);\r\n\r\n\t\tthis.setState({ selectedType });\r\n\t\tAccountActions.setSelectedPaymentType(this.state.uniqueName, selectedType);\r\n\t}\r\n\r\n\tupdateDisplay(selectedType) {\r\n\t\t//It is done this way mainly for the designer because there can be multiple PaymentTypeSelectors because of the accountState component.\r\n\t\t//\tOn the constituent-side, there should only be a single PaymentTypeSelector component.\r\n\t\tvar $thisDOMNode = $(ReactDOM.findDOMNode(this));\r\n\t\t$thisDOMNode.parents(\"[data-component='paymentType']\").find(\".paymentInformation\").css(\"display\", \"\");\r\n\t\t$thisDOMNode.parents(\"[data-component='paymentType']\").find(`.paymentInformation[data-payment-type=\"${selectedType}\"]`).css(\"display\", \"block\");\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tif (this._isMounted) {\r\n\t\t\tvar selectedType = AccountActions.getSelectedPaymentType(this.state.uniqueName);\r\n\t\t\tif (selectedType) {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tselectedType\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.updateDisplay(selectedType);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\r\n\t\t//It is done this way mainly for the designer because there can be multiple PaymentTypeSelectors because of the accountState component.\r\n\t\t//\tOn the constituent-side, there should only be a single PaymentTypeSelector component.\r\n\t\tvar $thisDOMNode = $(ReactDOM.findDOMNode(this));\r\n\t\t$thisDOMNode.parents(\"[data-component='paymentType']\").find(\".paymentInformation\").css(\"display\", \"\");\r\n\t\t$thisDOMNode.parents(\"[data-component='paymentType']\").find(`.paymentInformation[data-payment-type=\"${this.state.selectedType}\"]`).css(\"display\", \"block\");\r\n\r\n\t\tthis._onChange();\r\n\t\tAccountStore.addSpecificListener(AccountConstants.SET_SELECTED_PAYMENT_TYPE, this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\t\tAccountStore.removeSpecificListener(AccountConstants.SET_SELECTED_PAYMENT_TYPE, this._onChange);\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar supportedPaymentTypes = this.props.supportedPaymentTypes;\r\n\t\tvar selectedType = this.state.selectedType;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name=\"PaymentTypeSelector\"\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf || \"paymentType\"}\r\n\t\t\t>\r\n\t\t\t\t{supportedPaymentTypes && supportedPaymentTypes.length > 1 && supportedPaymentTypes.map((paymentType, index) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label key={paymentType} data-component=\"PaymentTypeSelector.label\" className={HtmlHelper.safeClassName(paymentType)} >\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={`paymentType${this.state.uniqueName}`} value={paymentType} onChange={this.handleTypeSelected.bind(this)} checked={paymentType === selectedType} />\r\n\t\t\t\t\t\t\t<span data-component=\"PaymentTypeSelector.label.span\">{paymentType}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t\t{this.props.isDesignMode && (!supportedPaymentTypes || supportedPaymentTypes.length <= 1) &&\r\n\t\t\t\t\t<div className=\"collapsedComponentPlaceholder\">Payment Type Selector</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nPaymentTypeSelector.defaultProps = {\r\n\ttheme: \"0\"\r\n};\r\n\r\nPaymentTypeSelector.propTypes = {\r\n\tsupportedPaymentTypes: PropTypes.array,\r\n\ttheme: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = PaymentTypeSelector;\r\n\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"PlaidHelper\");\r\n\r\nvar PlaidApi = require(\"../api/PlaidApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nmodule.exports = {\r\n\tparentSelector: `\r\n\t\t[data-component='createAccountAndCheckout'],\r\n\t\t[data-component='savedPayments'],\r\n\t\t[data-component='accountSavedPayments'],\r\n\t\t[data-component='myRecurringPayment.editPayment'],\r\n\t\t[data-component='myMagazineMailSubscriptions.populated.singleMagazineMail.edit'],\r\n\t\t[data-component='myMagazineEmailSubscriptions.populated.singleMagazineEmail.edit'],\r\n\t\t[data-component='myMembershipSubscriptions.populated.singleMembership.edit']\r\n\t`,\r\n\tinitialize: function($parent) {\r\n\t\t$($parent || \"body\").find(\"button[data-component='plaidButton']\").click((event) => {\r\n\t\t\tif (!$parent) {\r\n\t\t\t\t// Need to find actual parent\r\n\t\t\t\t$parent = $(event.currentTarget).closest(this.parentSelector);\r\n\t\t\t}\r\n\r\n\t\t\tSpinner.showSpinner();\r\n\t\t\tPlaidApi.generatePlaidLinkToken().then(response => {\r\n\t\t\t\tif (response && response.linkToken) {\r\n\t\t\t\t\tvar linkToken = response.linkToken;\r\n\t\t\t\t\tthis.openPlaidLink(linkToken, $parent);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Some error occurred where the link token was not returned.\r\n\t\t\t\t\tthis.handlePlaidError(\"No Link token generated. Response:\" + JSON.stringify(response));\r\n\t\t\t\t}\r\n\t\t\t}).catch(error => {\r\n\t\t\t\tthis.handlePlaidError(error);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.plaidDisplayMessages = window.AccountActions.getPlaidDisplayMessages();\r\n\t},\r\n\r\n\topenPlaidLink: function(linkToken, $parent) {\r\n\t\tif (this.handler) {\r\n\t\t\tthis.handler.destroy();\r\n\t\t}\r\n\r\n\t\tthis.handler = Plaid.create({\r\n\t\t\ttoken: linkToken,\r\n\t\t\tonExit: function(err, metadata) {\r\n\t\t\t\tif (err != null) {\r\n\t\t\t\t\tconsole.log(err);\r\n\t\t\t\t}\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t},\r\n\t\t\tonSuccess: function(public_token, metadata) {\r\n\t\t\t\tPlaidApi.getEftAccountData(public_token, metadata.accounts).then(response => {\r\n\t\t\t\t\tif (response) {\r\n\t\t\t\t\t\tif (!response.success) {\r\n\t\t\t\t\t\t\tif (response.message === \"Multiple bank accounts were selected. Please try again but only select a single bank account.\") {\r\n\t\t\t\t\t\t\t\tthis.handlePlaidError(response.message, this.plaidDisplayMessages.multipleBankAccountsSelected);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tthis.handlePlaidError(response.message);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If there is an add New Payment Link in the parent, click this to enable the payment form to appear.\r\n\t\t\t\t\t\t$parent.find(\"[data-dynamic-href='addNewPayment']\").click();\r\n\r\n\t\t\t\t\t\tvar uniqueName = $parent.find(\"[data-component='PaymentTypeSelector.label'] input[value='EFT']\").attr(\"name\").replace(\"paymentType\", \"\");\r\n\r\n\t\t\t\t\t\tAccountActions.setSelectedPaymentType(uniqueName, \"EFT\");\r\n\r\n\t\t\t\t\t\t$parent.find(\"input[data-component='eftPayment.routingNumber']\").val(response.routingNumber);\r\n\t\t\t\t\t\t$parent.find(\"input[data-component='eftPayment.accountNumber']\").val(response.accountNumber);\r\n\t\t\t\t\t\tif (response.accountType === \"savings\") {\r\n\t\t\t\t\t\t\t$parent.find(\"[data-component='eftAccountTypeSelector.savings'] input[value='SAVINGS']\").click();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$parent.find(\"[data-component='eftAccountTypeSelector.checking'] input[value='CHECKING']\").click();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Some error occurred where the EFT data was not returned.\r\n\t\t\t\t\t\tvar systemErrorMessage = \"No EFT data returned. Response:\" + JSON.stringify(response);\r\n\t\t\t\t\t\tthis.handlePlaidError(systemErrorMessage);\r\n\t\t\t\t\t}\r\n\t\t\t\t}).catch(error => {\r\n\t\t\t\t\tthis.handlePlaidError(error);\r\n\t\t\t\t});\r\n\t\t\t}.bind(this)\r\n\t\t});\r\n\r\n\t\tthis.handler.open();\r\n\t},\r\n\r\n\thandlePlaidError: function(systemErrorMessage, clientErrorMessage) {\r\n\t\tif (!clientErrorMessage) {\r\n\t\t\tclientErrorMessage = this.plaidDisplayMessages.unknownError;\r\n\t\t}\r\n\r\n\t\tLoggerInstance.error(systemErrorMessage);\r\n\t\tSpinner.removeSpinner();\r\n\t\tBootstrapPrompt.alert(clientErrorMessage);\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ShippingHelper\");\r\n\r\nvar CheckoutApi = require(\"./CheckoutApi\");\r\nvar CheckoutConstants = require(\"./CheckoutConstants\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\n\r\nvar ShipToAccountHelper = require(\"../commonComponents/ShipToAccountHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ShippingHelper = {\r\n\tinitializeShippingListeners: function(payPalCallback) {\r\n\t\tShipToAccountHelper.initialize();\r\n\r\n\t\t// changes to the address that force a shipping calculation have been moved into AccountFormHelper.\r\n\t\t// See CheckoutActions.initializeStore => AccountFormHelper.initializeAccountFormListeners().\r\n\t\tthis.updateShipping();\r\n\r\n\t\t$(\"body\").one(\"mainProductQuantityMounted\", () => {\r\n\t\t\t$(\"input.main-product-quantity\").change(() => this.updateShipping());\r\n\t\t});\r\n\r\n\t\t$(\"input[name='selectedShippingMethod']\").change(() => {\r\n\t\t\tthis.updateSelectedShippingMethod();\r\n\t\t});\r\n\t},\r\n\r\n\tupdateSelectedShippingMethod: function () {\r\n\t\tvar shippingMethod = $(\"input[name=selectedShippingMethod]:checked\").val();\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.SHIPPING_METHOD_UPDATED,\r\n\t\t\tshippingMethod\r\n\t\t});\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: CheckoutConstants.VALIDATE_PAYPAL_CHECKOUT\r\n\t\t});\r\n\t},\r\n\r\n\tupdateShipping: function() {\r\n\t\tvar products = null;\r\n\t\tvar singleProductCode = CheckoutStore.get(\"productCode\");\r\n\t\tif (singleProductCode) {\r\n\t\t\t//If we are on a Product Page, get the product details\r\n\t\t\tproducts = [\r\n\t\t\t\t{\r\n\t\t\t\t\tdiscountAmount: CheckoutStore.get(\"productDiscount\"),\r\n\t\t\t\t\thasFreeShipping: CheckoutStore.get(\"hasOnlyDownloadableOrFreeShippingProducts\"),\r\n\t\t\t\t\tisShippable: CheckoutStore.get(\"hasShippableProducts\"),\r\n\t\t\t\t\tprice: CheckoutStore.get(\"productPrice\"),\r\n\t\t\t\t\tproductCode: singleProductCode,\r\n\t\t\t\t\tquantity: $(\"input.main-product-quantity\").val() || 1 //Cannot access ProjectStore because we are in the checkoutComponents bundle not commonComponents bundle\r\n\t\t\t\t}\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tproducts = products || CheckoutStore.getCartProducts() || [];\r\n\t\t//Try to get an address on the page, otherwise, try to get the shippingAddress, if they are logged in.\r\n\t\tvar address = ShipToAccountHelper.getShippingAddress();\r\n\r\n\t\tif (!CheckoutStore.get(\"hasShippableProducts\") || (!address.id && (!address.line1 || !address.city || !address.postalCode || !address.country))) {\r\n\t\t\t//We do not have enough data to get the shipping information or we do not have any shippable products, so shipping is not required\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SHIPPING_CANNOT_BE_CALCULATED\r\n\t\t\t});\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (CheckoutStore.get(\"hasOnlyDownloadableOrFreeShippingProducts\")) {\r\n\t\t\t//We only have items that are free to ship\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SHIPPING_IS_ALL_FREE\r\n\t\t\t});\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Similar code for this is in Services StudioOnlineTransactionLogic.CalculateShippingAmount\r\n\t\tvar shippingQuoteRequest = {\r\n\t\t\taddress,\r\n\t\t\tcompany: CheckoutStore.get(\"company\"),\r\n\t\t\tproducts: products.filter(product => product.isShippable && !product.hasFreeShipping).map(product => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdiscountAmount: product.discountAmount,\r\n\t\t\t\t\tprice: product.price,\r\n\t\t\t\t\tproductCode: product.productCode,\r\n\t\t\t\t\tquantity: product.quantity\r\n\t\t\t\t};\r\n\t\t\t}),\r\n\t\t\twarehouse: CheckoutStore.get(\"warehouse\"),\r\n\t\t\tallowedShippingMethods: CheckoutStore.getShippingMethodsForQuote()\r\n\t\t};\r\n\r\n\t\tif (_.isEqual(this.previousShippingQuoteRequest, shippingQuoteRequest) && (CheckoutStore.get(\"shippingRates\") || this.inProgress)) {\r\n\t\t\tLoggerInstance.debug(\"We do not need to try to calculate shipping because the request is the same as last time and we either have rates or an API call is in progress.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Logging current request as previous and making note that a request is beginning\r\n\t\tthis.previousShippingQuoteRequest = shippingQuoteRequest;\r\n\t\tthis.inProgress = true;\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.SHIPPING_REQUEST_PENDING\r\n\t\t});\r\n\r\n\t\t//Making the shiping API request\r\n\t\tCheckoutApi.getShippingQuote(shippingQuoteRequest).done((data, textStatus, jqXHR) => {\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SHIPPING_UPDATED,\r\n\t\t\t\tshippingRates: data\r\n\t\t\t});\r\n\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\tthis.previousAddress = null;\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.SHIPPING_UPDATE_FAILED,\r\n\t\t\t\tjqXHR\r\n\t\t\t});\r\n\t\t}).always(() => {\r\n\t\t\tthis.inProgress = false;\r\n\t\t});\r\n\t},\r\n\r\n\tisAddressSame: function(address) {\r\n\t\tif (!this.previousAddress) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn this.previousAddress.type === address.type &&\r\n\t\tthis.previousAddress.line1 === address.line1 &&\r\n\t\tthis.previousAddress.line2 === address.line2 &&\r\n\t\tthis.previousAddress.line3 === address.line3 &&\r\n\t\tthis.previousAddress.line4 === address.line4 &&\r\n\t\tthis.previousAddress.city === address.city &&\r\n\t\tthis.previousAddress.state === address.state &&\r\n\t\tthis.previousAddress.postalCode === address.postalCode &&\r\n\t\tthis.previousAddress.country === address.country;\r\n\t}\r\n};\r\n\r\nmodule.exports = ShippingHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CheckoutActions\");\r\n\r\nvar CheckoutApi = require(\"./CheckoutApi\");\r\nvar CheckoutStore = require(\"./CheckoutStore\");\r\n\r\nvar CheckoutHelper = require(\"../commonComponents/CheckoutHelper\");\r\nvar ShipToAccountHelper = require(\"../commonComponents/ShipToAccountHelper\");\r\nvar SuggestedDonationHelper = require(\"../commonComponents/SuggestedDonationHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar NumberHelper = require(\"../shared/NumberHelper\");\r\n\r\nvar TaxHelper = {\r\n\tinitializeTaxListeners: function() {\r\n\t\tthis.updateTax();\r\n\t\tCheckoutStore.addShippingListener(this.updateTax);\r\n\r\n\t\t//If address changes, we need to recalculate\r\n\t\t//Create AccountForm\r\n\t\tvar createAccountFormSelector = \"#createAccountForm\";\r\n\t\t$(`${createAccountFormSelector} input[data-component='accountAddressPostalCode'],${createAccountFormSelector} select[name='address.country']`).change(() => this.updateTax());\r\n\t\t//ShipTo For Gift Account\r\n\t\tvar createGiftAccountFormSelector = \"#createGiftAccountForm\";\r\n\t\t$(`${createGiftAccountFormSelector} input[data-component='accountAddressPostalCode'],${createGiftAccountFormSelector} select[name='address.country']`).change(() => this.updateTax());\r\n\t\t//For shipToOtherAddress\r\n\t\tvar otherAddressAddFormSelector = \"#addOtherAddresses\";\r\n\t\t$(`${otherAddressAddFormSelector} input[data-component='accountAddressPostalCode'],${otherAddressAddFormSelector} select[name='address.country']`).change(() => this.updateTax());\r\n\r\n\t\t//shipToComponent\r\n\t\t$(\"input[type='radio'][name='shipToAddressSelector']\").change((event) => {\r\n\t\t\tif ($(event.currentTarget).is(\":checked\")) {\r\n\t\t\t\tthis.updateTax();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//Other Addresses\r\n\t\t$(\"[data-dynamic-href='cancelAddOtherAddress']\").change(() => this.updateTax());\r\n\t\t$(\"input[type='radio'][name='otherAddressesSelector']\").change((event) => {\r\n\t\t\tif ($(event.currentTarget).is(\":checked\")) {\r\n\t\t\t\tthis.updateTax();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(\"body\").one(\"mainProductQuantityMounted\", () => {\r\n\t\t\t$(\"input.main-product-quantity\").change(() => this.updateTax());\r\n\t\t});\r\n\r\n\t\t// This is used to manually trigger a tax lookup from the CheckoutStore after processing\r\n\t\t// a OPCO coupon. Because we can't reference it (circular dependency) we need to trigger.\r\n\t\t$(\"body\").on(\"manuallyUpdateTax\", () => {\r\n\t\t\tthis.updateTax();\r\n\t\t});\r\n\t},\r\n\r\n\tupdateTax: function() {\r\n\t\tvar shippingAmount = CheckoutStore.getShippingAmount();\r\n\r\n\t\t//Try to get an address on the page, otherwise, try to get the shippingAddress, if they are logged in.\r\n\t\tvar address = ShipToAccountHelper.getShippingAddress();\r\n\r\n\t\tvar products = null;\r\n\t\tvar singleProductCode = CheckoutStore.get(\"productCode\");\r\n\t\tif (singleProductCode) {\r\n\t\t\t var isSuggestedDonation = SuggestedDonationHelper.isOnePageSuggestedDonation()\r\n\t\t\t//If we are on a Product Page\r\n\t\t\tproducts = [\r\n\t\t\t\t{\r\n\t\t\t\t\tdiscountAmount: CheckoutStore.get(\"productDiscount\"),\r\n\t\t\t\t\tisShippable: CheckoutStore.get(\"hasShippableProducts\"),\r\n\t\t\t\t\tprice: isSuggestedDonation ? 0 : CheckoutStore.get(\"productPrice\"),\r\n\t\t\t\t\tproductCode: singleProductCode,\r\n\t\t\t\t\tquantity: $(\"input.main-product-quantity\").val() || 1 //Cannot access ProjectStore because we are in the checkoutComponents bundle not commonComponents bundle\r\n\t\t\t\t}\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tproducts = products || CheckoutStore.getCartProducts() || [];\r\n\r\n\t\tCheckoutHelper.getSubscriptionTaxControlRecord().done((useSubscriptionTax) => {\r\n\t\t\tCheckoutHelper.getShippingTaxId().done((shipTaxId) => {\r\n\t\t\t\tvar subscriptions = CheckoutStore.getCartSubscriptions() || [];\r\n\r\n\t\t\t\tif (useSubscriptionTax != \"Y\") {\r\n\t\t\t\t\t//If subscription tax is turned off, we don't want to add it to the call\r\n\t\t\t\t\tsubscriptions = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!products.length && !subscriptions.length && (shippingAmount === undefined || shippingAmount <= 0)) {\r\n\t\t\t\t\tLoggerInstance.debug(\"There are no products or subscriptions in which to calculate tax.\");\r\n\t\t\t\t\t// We need to defer this call so that any pending dispatches are finished.\r\n\t\t\t\t\t_.defer(() => {\r\n\t\t\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\t\t\tactionType: Constants.TAX_UPDATED,\r\n\t\t\t\t\t\t\ttaxAmount: 0\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!address.id && (!address.postalCode || !address.country)) {\r\n\t\t\t\t\t//We do not have enough data to get the tax information\r\n\t\t\t\t\t//\twe do not have an addressId and postalCode or country is not populated either.\r\n\t\t\t\t\tLoggerInstance.info(\"Tax cannot be calculated right now.\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar addressId = address.id;\r\n\r\n\t\t\t\t//Similar code for this is in Services StudioOnlineTransactionLogic.CalculateTaxAmount\r\n\t\t\t\tvar taxDetails = products.map(product => {\r\n\t\t\t\t\tvar extendedAmount = (product.price * (product.quantity || 1)) - (product.discountAmount || 0);\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tproduct: product.productCode,\r\n\t\t\t\t\t\ttotalAmount: product.suggestedDonation ? 0.0 : extendedAmount,\r\n\t\t\t\t\t\tquantity: product.quantity\r\n\t\t\t\t\t};\r\n\t\t\t\t}).concat(\r\n\t\t\t\t\tsubscriptions.map(subscription => {\r\n\t\t\t\t\t\tvar extendedAmount = (subscription.price * (subscription.quantity || 1)) - (subscription.discountAmount || 0);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tsubscription: subscription.subscriptionCode,\r\n\t\t\t\t\t\t\ttotalAmount: extendedAmount,\r\n\t\t\t\t\t\t\tquantity: subscription.quantity,\r\n\t\t\t\t\t\t\tshipToAddressId: subscription.fulfillmentMethod == \"MAIL\" ? subscription.deliveryId : subscription.recipientAccountPrimaryAddressId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (shippingAmount > 0) {\r\n\t\t\t\t\ttaxDetails.push({\r\n\t\t\t\t\t\tproduct: shipTaxId,\r\n\t\t\t\t\t\ttotalAmount: shippingAmount,\r\n\t\t\t\t\t\tquantity: 1\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar taxQuoteRequest = {\r\n\t\t\t\t\tdetails: taxDetails\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (addressId != null) {\r\n\t\t\t\t\ttaxQuoteRequest.shipToAddressId = addressId;\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttaxQuoteRequest.shipTo = address;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_.isEqual(this.previousTaxQuoteRequest, taxQuoteRequest) && (CheckoutStore.get(\"taxAmount\") != null || this.inProgress)) { //coercion because 0 taxAmount is valid.\r\n\t\t\t\t\tLoggerInstance.debug(\"We do not need to try to calculate tax because the request is the same as last time and we either have a tax amount or an API call is in progress.\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Logging current request as previous and making note that a request is beginning\r\n\t\t\t\tthis.previousTaxQuoteRequest = taxQuoteRequest;\r\n\t\t\t\tthis.inProgress = true;\r\n\r\n\t\t\t\tLoggerInstance.info(\"Tax request in process.\");\r\n\t\t\t\tCheckoutApi.getTaxQuote(taxQuoteRequest).done((data, textStatus, jqXHR) => {\r\n\t\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\t\tactionType: Constants.TAX_UPDATED,\r\n\t\t\t\t\t\ttaxAmount: NumberHelper.roundToTwoDecimals(data.totalTaxAdded)\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.inProgress = false;\r\n\t\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\t\tactionType: Constants.TAX_UPDATE_FAILED,\r\n\t\t\t\t\t\tjqXHR\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tthis.inProgress = false;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = TaxHelper;\r\n","\"use strict\";\r\n\r\nmodule.exports = {\r\n\t/* We're only allowing one spinner per \"level\". If an element is passed in we can't add a second spinner to that element.\r\n\t * We also only allow one spinner across the full page.\r\n\t */\r\n\tshowSpinner: function ($specificElement) {\r\n\t\tif ($specificElement) {\r\n\t\t\tif ($($specificElement).find(\"#overlayWithSpinner\").length) {\r\n\t\t\t\t// Don't add a spinner if we've already shown one on this element.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t$($specificElement).append(\"<div class='overlay targeted' id='overlayWithSpinner'><div class='spinner'><i class='fa fa-spinner fa-spin'></i></div></div>\");\r\n\t\t} else {\r\n\t\t\tif ($(\"#overlayWithSpinner:not(.overlay.targeted)\").length) {\r\n\t\t\t\t// Don't add a spinner if we've already shown a full-page one.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t$(\"body\").append(\"<div class='overlay' id='overlayWithSpinner'><div class='spinner'><i class='fa fa-spinner fa-spin'></i></div></div>\");\r\n\t\t}\r\n\t},\r\n\r\n\tremoveSpinner: function ($specificElement) {\r\n\t\tif ($specificElement) {\r\n\t\t\t$($specificElement).find(\"#overlayWithSpinner\").remove();\r\n\t\t} else {\r\n\t\t\t$(\"#overlayWithSpinner:not(.overlay.targeted)\").remove();\r\n\t\t}\r\n\t},\r\n\r\n\tshowSearchSpinner: function ($specificElement) {\r\n\t\tif (!$specificElement || $specificElement.find(\".searchSpinner\").length) {\r\n\t\t\t// Don't add a spinner if the element doesn't exist or we've already shown one on this element.\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$specificElement.append(\"<div class='searchSpinner'><div class='spinner'><i class='fa fa-spinner fa-spin'></i></div></div>\");\r\n\t},\r\n\r\n\tremoveSearchSpinner: function ($specificElement) {\r\n\t\tif ($specificElement) {\r\n\t\t\t$specificElement.find(\".searchSpinner\").remove();\r\n\t\t}\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\nvar LoggerInstance = require(\"js-logger\").get(\"TokenStore\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\n// Note: when we consilidate constants, consider that ProjectConstants.INITIALIZE is double-purposed here\r\nvar ProjectConstants = require(\"../projectComponents/ProjectConstants\");\r\n\r\nvar CHANGE_EVENT = \"change\";\r\n\r\nvar getByConstant = function (actionType) {\r\n\treturn state.rules.filter(rule => {\r\n\t\treturn rule.triggers.indexOf(actionType) !== -1;\r\n\t});\r\n};\r\n\r\nvar updateToken = function (token, $elements) {\r\n\t$elements.text(token);\r\n};\r\n\r\nvar executeRules = function (action, $context) {\r\n\tvar rulesToTrigger = getByConstant(action.actionType);\r\n\tvar executed = false;\r\n\r\n\tif (rulesToTrigger.length > 0) {\r\n\t\trulesToTrigger.forEach(rule => {\r\n\t\t\tif (typeof rule.shouldTrigger != \"function\" || rule.shouldTrigger(action)) {\r\n\t\t\t\tvar token = rule.getToken(action);\r\n\t\t\t\tupdateToken(token, rule.elements($context || $(\"body\")));\r\n\t\t\t}\r\n\t\t});\r\n\t\texecuted = true;\r\n\t}\r\n\r\n\treturn executed;\r\n};\r\n\r\nvar state = {\r\n\trules: [],\r\n\tisDesignMode: false\r\n};\r\n\r\nvar TokenStore = Object.assign({}, EventEmitter.prototype, {\r\n\tgetState: function () {\r\n\t\treturn state;\r\n\t},\r\n\r\n\tget: function (key) {\r\n\t\treturn state[key];\r\n\t},\r\n\r\n\taddRule: function (rule, $context) {\r\n\t\tstate.rules.push(rule);\r\n\r\n\t\tif (typeof rule.initialize === \"function\") {\r\n\t\t\tvar token = rule.initialize();\r\n\r\n\t\t\tupdateToken(token, rule.elements($context || $(\"body\")));\r\n\t\t}\r\n\t},\r\n\r\n\tremoveRule: function (identifier, removeToken) {\r\n\t\tvar index = state.rules.findIndex(rule => rule.identifier === identifier);\r\n\r\n\t\tif (index === -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstate.rules.splice(index, 1);\r\n\t},\r\n\r\n\thasRule: function (identifier) {\r\n\t\treturn state.rules.some(rule => rule.identifier === identifier);\r\n\t},\r\n\r\n\thandleDrop: function ($context) {\r\n\t\tstate.rules.forEach(rule => {\r\n\t\t\tif (typeof rule.initialize === \"function\") {\r\n\t\t\t\tvar token = rule.initialize();\r\n\r\n\t\t\t\tupdateToken(token, rule.elements($context || $(\"body\")));\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\taddChangeListener: function (callback) {\r\n\t\tthis.on(CHANGE_EVENT, callback);\r\n\t},\r\n\r\n\tremoveChangeListener: function (callback) {\r\n\t\tthis.removeListener(CHANGE_EVENT, callback);\r\n\t},\r\n\r\n\temitChange: function () {\r\n\t\tthis.emit(CHANGE_EVENT);\r\n\t}\r\n});\r\n\r\nTokenStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase ProjectConstants.INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.options.isDesignMode;\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tif (executeRules(action)) {\r\n\t\tTokenStore.emitChange();\r\n\t}\r\n\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = TokenStore;\r\n","\"use strict\";\r\n\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\nvar LoggerInstance = require(\"js-logger\").get(\"VisibilityStore\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\n// Note: when we consilidate constants, consider that ProjectConstants.INITIALIZE is double-purposed here\r\nvar ProjectConstants = require(\"../projectComponents/ProjectConstants\");\r\n\r\nvar CHANGE_EVENT = \"change\";\r\n\r\nvar getByConstant = function(actionType) {\r\n\treturn state.rules.filter(rule => {\r\n\t\treturn rule.triggers.indexOf(actionType) !== -1;\r\n\t});\r\n};\r\n\r\nvar toggle = function(show, elements) {\r\n\tif (state.isDesignMode) {\r\n\t\tif (show) {\r\n\t\t\telements.show(); // Make sure they are showing\r\n\t\t\telements.removeClass(\"designerHidden\");\r\n\t\t} else {\r\n\t\t\telements.addClass(\"designerHidden\");\r\n\t\t}\r\n\t} else {\r\n\t\telements.toggle(show);\r\n\t}\r\n};\r\n\r\nvar executeRules = function(action, $context) {\r\n\tvar rulesToTrigger = getByConstant(action.actionType);\r\n\tvar executed = false;\r\n\r\n\tif (rulesToTrigger.length > 0) {\r\n\t\trulesToTrigger.forEach(rule => {\r\n\t\t\tif (!(typeof rule.shouldTrigger === \"function\") || rule.shouldTrigger(action)) {\r\n\t\t\t\tvar show = rule.show(action);\r\n\t\t\t\ttoggle(show, rule.elements($context || $(\"body\")));\r\n\t\t\t}\r\n\t\t});\r\n\t\texecuted = true;\r\n\t}\r\n\r\n\treturn executed;\r\n};\r\n\r\nvar state = {\r\n\trules: [],\r\n\tisDesignMode: false\r\n};\r\n\r\nvar VisibilityStore = Object.assign({}, EventEmitter.prototype, {\r\n\tgetState: function() {\r\n\t\treturn state;\r\n\t},\r\n\r\n\tget: function(key) {\r\n\t\treturn state[key];\r\n\t},\r\n\r\n\taddRule: function(rule, $context) {\r\n\t\tstate.rules.push(rule);\r\n\r\n\t\tif (typeof rule.initialize === \"function\") {\r\n\t\t\tvar show = rule.initialize($context || $(\"body\"));\r\n\r\n\t\t\ttoggle(show, rule.elements($context || $(\"body\")));\r\n\t\t}\r\n\t},\r\n\r\n\tremoveRule: function(identifier) {\r\n\t\tvar index = state.rules.findIndex(rule => rule.identifier === identifier);\r\n\r\n\t\tif (index === -1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstate.rules.splice(index, 1);\r\n\t},\r\n\r\n\thasRule: function(identifier) {\r\n\t\treturn state.rules.some(rule => rule.identifier === identifier);\r\n\t},\r\n\r\n\thideAll: function($context) {\r\n\t\t// Set display: none, used when saving html so that the client renders better\r\n\t\tstate.rules.forEach(rule => rule.elements($context || $(\"body\")).toggle(false));\r\n\t},\r\n\r\n\thandleDrop: function($context) {\r\n\t\tstate.rules.forEach(rule => {\r\n\t\t\tif (typeof rule.initialize === \"function\") {\r\n\t\t\t\tvar show = rule.initialize($context || $(\"body\"));\r\n\r\n\t\t\t\ttoggle(show, rule.elements($context || $(\"body\")));\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\taddChangeListener: function(callback) {\r\n\t\tthis.on(CHANGE_EVENT, callback);\r\n\t},\r\n\r\n\tremoveChangeListener: function(callback) {\r\n\t\tthis.removeListener(CHANGE_EVENT, callback);\r\n\t},\r\n\r\n\temitChange: function() {\r\n\t\tthis.emit(CHANGE_EVENT);\r\n\t}\r\n});\r\n\r\nVisibilityStore.dispatchToken = Dispatcher.register(function(action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase ProjectConstants.INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.options.isDesignMode;\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tif (executeRules(action)) {\r\n\t\tVisibilityStore.emitChange();\r\n\t}\r\n\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = VisibilityStore;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"AccountDemographicsHelper\");\r\n\r\nvar ValidationHelper = require(\"./ValidationHelper\");\r\n\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\n\r\n// AccountDemographicsHelper\r\nmodule.exports = {\r\n\tgetDemographics: function ($namedInputs, shouldValidate) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tshouldValidate = (shouldValidate === undefined ? true : !!shouldValidate);\r\n\r\n\t\t// If nothing was passed in, assume we need to get inputs from the entire layout\r\n\t\tif (!$namedInputs) {\r\n\t\t\t//We always want to get [data-component='singleCheckbox.input'] because it has a true/false value.\r\n\t\t\t$namedInputs = $(\"[data-component='accountDemographicsForm']\").find(\"[name].isDirty,[name][required],[data-component='singleCheckbox.input']\");\r\n\t\t}\r\n\r\n\t\tif ($namedInputs.length <= 0) {\r\n\t\t\tdeferred.resolve();\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\t// This will handle the singleCheckbox, radioButtons, and select 'required' inputs.\r\n\t\t// We then need to ensure that at least one 'required' multi-value checkbox is selected.\r\n\t\tvar getInputValues = () => {\r\n\t\t\tvar demographicsCollection = InputHelper.getGeneralInputValues($namedInputs);\r\n\r\n\t\t\t// remove the isDirty flag so any new changes will get it\r\n\t\t\t$namedInputs.removeClass(\"isDirty\");\r\n\t\t\tdeferred.resolve(demographicsCollection);\r\n\t\t};\r\n\r\n\t\tif (shouldValidate) {\r\n\t\t\tValidationHelper.validate({\r\n\t\t\t\tcomponents: $.map($namedInputs, (element) => $(element))\r\n\t\t\t}).always(isValid => {\r\n\t\t\t\t$('[data-component=\"multipleCheckboxes\"][required]').each((index, component) => {\r\n\t\t\t\t\tif (!$(component).find(\"input:checked\").length) {\r\n\t\t\t\t\t\tisValid = false;\r\n\t\t\t\t\t\tValidationHelper.showInvalidInputsDialog();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!isValid) {\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tgetInputValues();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tgetInputValues();\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tupdateSelectedCheckboxes: function ($selectedCheckbox, isChecked) {\r\n\t\tvar $currentComponent = $selectedCheckbox.closest('[data-component=\"multipleCheckboxes.singleCheckbox\"]');\r\n\t\tif (isChecked) {\r\n\t\t\t$currentComponent.addClass(\"selected\");\r\n\t\t\t$currentComponent.find(\"label\").addClass(\"selected\");\r\n\t\t} else {\r\n\t\t\t$currentComponent.removeClass(\"selected\");\r\n\t\t\t$currentComponent.find(\"label\").removeClass(\"selected\");\r\n\t\t}\r\n\t},\r\n\r\n\tupdateSelectedRadioButtons: function ($selectedRadio) {\r\n\t\t// remove old ones\r\n\t\t$selectedRadio.closest('[data-component=\"radioButtons\"] .radio-buttons-wrapper').find(\".selected\").removeClass(\"selected\");\r\n\r\n\t\t// add to this one\r\n\t\tvar $currentComponent = $selectedRadio.closest('[data-component=\"radioButtons.singleRadioButton\"]');\r\n\t\t$currentComponent.addClass(\"selected\");\r\n\t\t$currentComponent.find(\"label\").addClass(\"selected\");\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"BluefinHelper\");\r\n\r\nvar StringConstants = require(\"../constants/StringConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\n\r\nvar BluefinHelper = {\r\n\t//parentSelector can be a jQuery object or jQuery selector\r\n\tclearHostedIFrame: function(parentSelector) {\r\n\t\tvar bluefinIframeId = this.getBluefinIframeId(parentSelector);\r\n\r\n\t\tvar iframePayment = new PaymentiFrame({\r\n\t\t\tcreate: false,\r\n\t\t\tiframeId: bluefinIframeId\r\n\t\t});\r\n\r\n\t\tiframePayment.clear();\r\n\t},\r\n\r\n\t//parentSelector can be a jQuery object or jQuery selector\r\n\tgetBluefinHostedPageToken: function (parentSelector, creditCardErrorMessages, eftErrorMessages, successCallback, errorCallback) {\r\n\t\tvar bluefinIframeId = this.getBluefinIframeId(parentSelector);\r\n\t\tvar type;\r\n\t\tif ($(`#${bluefinIframeId}`).closest(\"[data-component='bluefinCreditCardPayment']\").length) {\r\n\t\t\ttype = \"CC\";\r\n\t\t} else if ($(`#${bluefinIframeId}`).closest(\"[data-component='bluefinEftPayment']\").length) {\r\n\t\t\ttype = \"EFT\";\r\n\t\t}\r\n\r\n\t\tvar iframePayment = new PaymentiFrame({\r\n\t\t\tcreate: false,\r\n\t\t\tiframeId: bluefinIframeId\r\n\t\t});\r\n\r\n\t\t//Creating the Bluefin hostedPageToken\r\n\t\tiframePayment.encrypt()\r\n\t\t\t.failure(error => {\r\n\t\t\t\tBootstrapPrompt.alert(type === \"CC\" ? creditCardErrorMessages.catchAllMessage : eftErrorMessages.catchAllMessage);\r\n\t\t\t\tLoggerInstance.error(\"Error: Bluefin Tokenization Failure:\", error);\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.CHECKOUT_BLUEFIN_TOKENIZATION_FAILED\r\n\t\t\t\t});\r\n\t\t\t\terrorCallback();\r\n\t\t\t})\r\n\t\t\t.invalidInput(error => {\r\n\t\t\t\tvar wholeMessage = \"\";\r\n\r\n\t\t\t\tvar catchAllMessage = (type === \"CC\" ? creditCardErrorMessages.catchAllMessage : eftErrorMessages.catchAllMessage);\r\n\r\n\t\t\t\terror.invalidInputs.forEach(input => {\r\n\t\t\t\t\tvar message = \"\";\r\n\t\t\t\t\tswitch (input.code) {\r\n\t\t\t\t\t\tcase StringConstants.BluefinErrorCodes.BlankField:\r\n\t\t\t\t\t\t\tswitch (input.field) {\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.CreditCard:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.blankCreditCard;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Expiration:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.blankExpiration;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Cvv:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.blankCvv;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.BankAccount:\r\n\t\t\t\t\t\t\t\t\tmessage = eftErrorMessages.blankBankAccountNumber;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.RoutingNumber:\r\n\t\t\t\t\t\t\t\t\tmessage = eftErrorMessages.blankRoutingNumber;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault: message = catchAllMessage;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase StringConstants.BluefinErrorCodes.InputTooShort:\r\n\t\t\t\t\t\t\tswitch (input.field) {\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.CreditCard:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.shortInputCreditCard;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Expiration:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.shortInputExpiration;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Cvv:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.shortInputCvv;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.BankAccount:\r\n\t\t\t\t\t\t\t\t\tmessage = eftErrorMessages.shortInputBankAccountNumber;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.RoutingNumber:\r\n\t\t\t\t\t\t\t\t\tmessage = eftErrorMessages.shortInputRoutingNumber;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault: message = catchAllMessage;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase StringConstants.BluefinErrorCodes.InputTooLong:\r\n\t\t\t\t\t\t\tswitch (input.field) {\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.CreditCard:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.longInputCreditCard;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Expiration:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.longInputExpiration;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Cvv:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.longInputCvv;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault: message = catchAllMessage;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase StringConstants.BluefinErrorCodes.InputNotNumeric:\r\n\t\t\t\t\t\t\tswitch (input.field) {\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.CreditCard:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.nonNumericCreditCard;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Expiration:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.nonNumericExpiration;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.Cvv:\r\n\t\t\t\t\t\t\t\t\tmessage = creditCardErrorMessages.nonNumericCvv;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.BankAccount:\r\n\t\t\t\t\t\t\t\t\tmessage = eftErrorMessages.nonNumericBankAccountNumber;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tcase StringConstants.BluefinFieldNames.RoutingNumber:\r\n\t\t\t\t\t\t\t\t\tmessage = eftErrorMessages.nonNumericRoutingNumber;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\tdefault: message = catchAllMessage;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase StringConstants.BluefinErrorCodes.InvalidCreditCard:\r\n\t\t\t\t\t\t\tmessage = creditCardErrorMessages.invalidCreditCard;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase StringConstants.BluefinErrorCodes.InvalidExpiration:\r\n\t\t\t\t\t\t\tmessage = creditCardErrorMessages.invalidExpiration;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault: message = catchAllMessage;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twholeMessage += `${message}\\n`;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tBootstrapPrompt.alert(wholeMessage);\r\n\t\t\t\tLoggerInstance.error(\"Error: Bluefin Tokenization Invalid Input:\", error);\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.CHECKOUT_BLUEFIN_TOKENIZATION_FAILED\r\n\t\t\t\t});\r\n\t\t\t\terrorCallback();\r\n\t\t\t})\r\n\t\t\t.success(response => {\r\n\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\tactionType: Constants.CHECKOUT_BLUEFIN_TOKENIZATION_SUCCESS\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//Callback to process eToken\r\n\t\t\t\tsuccessCallback({\r\n\t\t\t\t\thostedPageToken: response.eToken,\r\n\t\t\t\t\ttype\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t},\r\n\r\n\t//parentSelector can be a jQuery object or jQuery selector\r\n\tgetBluefinIframeId(parentSelector) {\r\n\t\tparentSelector = parentSelector || \"body\";\r\n\r\n\t\tvar newId = HtmlHelper.getId($(\"body\"));\r\n\t\tvar $iframe = $(parentSelector).find(\"div[data-component='bluefinCreditCardPayment'] iframe:visible,div[data-component='bluefinEftPayment'] iframe:visible\");\r\n\t\tif ($iframe.length) {\r\n\t\t\t$iframe.attr(\"id\", newId);\r\n\t\t\treturn newId;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n};\r\n\r\nmodule.exports = BluefinHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"BraintreeHelper\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar SavedPaymentsApi = require(\"../api/SavedPaymentsApi\");\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar ShipToAccountHelper = require(\"./ShipToAccountHelper\");\r\n\r\nvar deviceType = Constants.DEVICE_TYPES;\r\nvar deviceMinWidth = Constants.DEVICE_MIN_WIDTHS;\r\n\r\nvar BraintreeHelper = {\r\n\tinitializeBraintree: function ($parent) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\t\tthis._generateIframe($parent);\r\n\t},\r\n\r\n\tisBraintreeCreditCard: function (selector) {\r\n\t\tvar $selector = $(selector || \"body\");\r\n\t\treturn Boolean(\r\n\t\t\t$selector.closest(\"[data-component='braintreeCreditCardPayment']\").length ||\r\n\t\t\t$selector.find(\"[data-component='braintreeCreditCardPayment']\").length\r\n\t\t);\r\n\t},\r\n\r\n\tisBraintreeEft: function (selector) {\r\n\t\tvar $selector = $(selector || \"body\");\r\n\t\treturn Boolean(\r\n\t\t\t$selector.closest(\"[data-component='eftPayment'][data-braintree-client-token]\").length ||\r\n\t\t\t$selector.find(\"[data-component='eftPayment'][data-braintree-client-token]\").length\r\n\t\t);\r\n\t},\r\n\r\n\tgetBraintreeTokenData: function ($element, payment) {\r\n\t\tvar that = this;\r\n\t\tvar deferred = $.Deferred();\r\n\t\tvar hostedFieldsInstance = $element.prop(\"hostedFieldsInstance\");\r\n\t\tvar clientInstance = $element.prop(\"clientInstance\");\r\n\r\n\t\tvar billingAddress = this._getBillingAddress(payment && payment.billingAddressInformation);\r\n\r\n\t\thostedFieldsInstance.tokenize({\r\n\t\t\tbillingAddress: billingAddress && billingAddress.postalCode && {\r\n\t\t\t\tpostalCode: billingAddress.postalCode\r\n\t\t\t}\r\n\t\t}, function(tokenizeError, payload) {\r\n\t\t\tif (tokenizeError) {\r\n\t\t\t\tif (tokenizeError.details == null) {\r\n\t\t\t\t\t//All fields are blank\r\n\t\t\t\t\t$element.find(\"[data-component='braintreeCardNumber']\").addClass(\"invalid\");\r\n\t\t\t\t\t$element.find(\"[data-component='braintreeExpiration']\").addClass(\"invalid\");\r\n\t\t\t\t\t$element.find(\"[data-component='braintreeNameOnCard']\").addClass(\"invalid\");\r\n\t\t\t\t\t$element.find(\"[data-component='braintreeCardVerificationValue']\").addClass(\"invalid\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttokenizeError.details.invalidFieldKeys.forEach(invalidKey => {\r\n\t\t\t\t\t\tswitch (invalidKey) {\r\n\t\t\t\t\t\t\tcase \"number\":\r\n\t\t\t\t\t\t\t\t$element.find(\"[data-component='braintreeCardNumber']\").addClass(\"invalid\");\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"expirationDate\":\r\n\t\t\t\t\t\t\t\t$element.find(\"[data-component='braintreeExpiration']\").addClass(\"invalid\");\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"cardholderName\":\r\n\t\t\t\t\t\t\t\t$element.find(\"[data-component='braintreeNameOnCard']\").addClass(\"invalid\");\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"cvv\":\r\n\t\t\t\t\t\t\t\t$element.find(\"[data-component='braintreeCardVerificationValue']\").addClass(\"invalid\");\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar creditCardFormInvalidMessage = that._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.BRAINTREE_MESSAGE_FIELDS.CREDIT_CARD_FORM_INVALID);\r\n\t\t\t\tBootstrapPrompt.alert(creditCardFormInvalidMessage);\r\n\r\n\t\t\t\tLoggerInstance.error(tokenizeError);\r\n\r\n\t\t\t\tdeferred.reject(creditCardFormInvalidMessage);\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (window.braintree.threeDSecure) {\r\n\t\t\t\tthat._threeDSecurePayment(deferred, clientInstance, payload, billingAddress);\r\n\t\t\t} else {\r\n\t\t\t\tdeferred.resolve(payload);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_threeDSecurePayment: function (deferred, clientInstance, tokenizedPayment, billingAddress) {\r\n\t\tvar that = this;\r\n\r\n\t\tbraintree.threeDSecure.create({\r\n\t\t\tversion: 2,\r\n\t\t\tclient: clientInstance\r\n\t\t}, function (threeDSecureInstanceError, threeDSecureInstance) {\r\n\t\t\tif (threeDSecureInstanceError) {\r\n\t\t\t\tvar threeDSecureInstanceErrorMessage = that._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.BRAINTREE_MESSAGE_FIELDS.THREEDSECURE_SERVICE_UNAVAILABLE);\r\n\t\t\t\tBootstrapPrompt.alert(threeDSecureInstanceErrorMessage);\r\n\t\t\t\tLoggerInstance.error(threeDSecureInstanceError);\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar verificationDetails = that._getThreeDSecureVerificationDetails(tokenizedPayment, billingAddress);\r\n\r\n\t\t\tthreeDSecureInstance.verifyCard(verificationDetails, function (verifyCardError, verifyCardResponse) {\r\n\t\t\t\tif (verifyCardError) {\r\n\t\t\t\t\tvar verifyCardErrorMessage = that._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.BRAINTREE_MESSAGE_FIELDS.THREEDSECURE_VERIFICATION_FAILURE);\r\n\t\t\t\t\tBootstrapPrompt.alert(verifyCardErrorMessage);\r\n\t\t\t\t\tLoggerInstance.error(verifyCardError);\r\n\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar verificationData = verifyCardResponse.rawCardinalSDKVerificationData;\r\n\t\t\t\tvar isConstituentCancelled = verificationData &&\r\n\t\t\t\t\tverificationData.Payment &&\r\n\t\t\t\t\tverificationData.Payment.ExtendedData &&\r\n\t\t\t\t\tverificationData.Payment.ExtendedData.ChallengeCancel &&\r\n\t\t\t\t\tverificationData.Payment.ExtendedData.ChallengeCancel === \"01\" // Constituent Clicked Cancel\r\n\r\n\t\t\t\tif (isConstituentCancelled) {\r\n\t\t\t\t\tLoggerInstance.debug(`3D Secure Verification was cancelled by the constituent.`);\r\n\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!verifyCardResponse.liabilityShifted) {\r\n\t\t\t\t\tvar verifyCardErrorMessage = that._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.BRAINTREE_MESSAGE_FIELDS.THREEDSECURE_VERIFICATION_FAILURE);\r\n\t\t\t\t\tBootstrapPrompt.alert(verifyCardErrorMessage);\r\n\t\t\t\t\tLoggerInstance.error(`3D Secure Verification failed with status: ${verifyCardResponse.threeDSecureInfo.status}`);\r\n\t\t\t\t\tdeferred.reject();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// upgrade the payload nonce to the 3D Secure Nonce\r\n\t\t\t\ttokenizedPayment.nonce = verifyCardResponse.nonce;\r\n\t\t\t\tdeferred.resolve(tokenizedPayment);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tgetEftNonce: function (parent, payment, eftMessages) {\r\n\t\tvar that = this;\r\n\t\tvar $parent = $(parent || \"body\");\r\n\r\n\t\t// Get Client Token\r\n\t\tvar $braintreeEftComponent = $parent.find(\"[data-component='eftPayment']\");\r\n\t\tvar clientToken = decodeURIComponent($braintreeEftComponent.attr(`data-braintree-client-token`));\r\n\r\n\t\tvar deferred = $.Deferred();\r\n\r\n\t\tBootstrapPrompt.confirm({\r\n\t\t\tmessage: eftMessages.mandateText,\r\n\t\t\tbtnOKLabel: eftMessages.mandateTextAcceptButtonLabel,\r\n\t\t\tbtnCancelLabel: eftMessages.mandateTextDeclineButtonLabel,\r\n\t\t\ttitle: \"\"\r\n\t\t}, (result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\twindow.braintree.client.create({\r\n\t\t\t\t\tauthorization: clientToken\r\n\t\t\t\t}, function (err, clientInstance) {\r\n\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\tvar errorMessage = eftMessages.serviceUnavailable;\r\n\t\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t\t\tLoggerInstance.error(err);\r\n\t\t\t\t\t\tdeferred.reject(errorMessage);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.braintree.usBankAccount.create({\r\n\t\t\t\t\t\tclient: clientInstance,\r\n\t\t\t\t\t}, function (err, usBankAccountInstance) {\r\n\t\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t\tvar errorMessage = eftMessages.serviceUnavailable;\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t\t\t\tLoggerInstance.error(err);\r\n\t\t\t\t\t\t\tdeferred.reject(errorMessage);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar bankDetails = that._getBankDetails(payment);\r\n\r\n\t\t\t\t\t\tusBankAccountInstance.tokenize({\r\n\t\t\t\t\t\t\tbankDetails: bankDetails,\r\n\t\t\t\t\t\t\tmandateText: eftMessages.mandateText\r\n\t\t\t\t\t\t}, function (err, tokenizedPayload) {\r\n\t\t\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t\t\tvar errorMessage = eftMessages.tokenizationFailed;\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(errorMessage);\r\n\t\t\t\t\t\t\t\tLoggerInstance.error(err);\r\n\t\t\t\t\t\t\t\tdeferred.reject(errorMessage);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$braintreeEftComponent.attr(\"data-hosted-page-token\", tokenizedPayload.nonce);\r\n\t\t\t\t\t\t\tpayment.hostedPageToken = tokenizedPayload.nonce;\r\n\t\t\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvar errorMessage = \"The Braintree ACH Mandate was not accepted.\";\r\n\t\t\t\tLoggerInstance.error(errorMessage);\r\n\t\t\t\tdeferred.reject(errorMessage);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tgetSecuredSavedPayment: function (deferred, paymentInformation) {\r\n\t\tvar that = this;\r\n\t\tif (window.braintree.threeDSecure) {\r\n\t\t\tSavedPaymentsApi.createHostedPageTokenFromSavedPayment(paymentInformation.savedPaymentId)\r\n\t\t\t\t.done(tokenizedSavedPayment => {\r\n\t\t\t\t\tvar clientInstance = {};\r\n\r\n\t\t\t\t\tvar $braintreeCreditCardPayment = $(\"[data-component='braintreeCreditCardPayment']\");\r\n\t\t\t\t\tif ($braintreeCreditCardPayment.length > 0) {\r\n\t\t\t\t\t\tclientInstance = $braintreeCreditCardPayment.first().prop(\"clientInstance\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar billingAddress = this._getBillingAddress({\r\n\t\t\t\t\t\tselectionType: Constants.BILLING_ADDRESS_SELECTION_TYPES.EXISTING,\r\n\t\t\t\t\t\taddress: {\r\n\t\t\t\t\t\t\tid: tokenizedSavedPayment.billingAddressId\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// call 3D Secure Verification using the new nonce\r\n\t\t\t\t\tthat._threeDSecurePayment(deferred, clientInstance, tokenizedSavedPayment, billingAddress);\r\n\t\t\t\t})\r\n\t\t\t\t.fail((error) => {\r\n\t\t\t\t\tdeferred.reject(error);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\t},\r\n\r\n\t_getBankDetails: function (payment) {\r\n\t\tvar bankDetails = {\r\n\t\t\taccountNumber: payment.accountNumber || \"\",\r\n\t\t\troutingNumber: payment.routingNumber || \"\",\r\n\t\t\taccountType: (payment.accountType && payment.accountType.toLowerCase()) || \"\"\r\n\t\t};\r\n\r\n\t\tvar account = this._getAccount();\r\n\r\n\t\tif (!account) {\r\n\t\t\treturn bankDetails;\r\n\t\t}\r\n\r\n\t\tvar billingAddress = this._getBillingAddress(payment && payment.billingAddressInformation);\r\n\r\n\t\tif (billingAddress) {\r\n\t\t\tbankDetails.billingAddress = {\r\n\t\t\t\tstreetAddress: billingAddress.line1,\r\n\t\t\t\textendedAddress: billingAddress.line2,\r\n\t\t\t\tlocality: billingAddress.city,\r\n\t\t\t\tregion: billingAddress.state,\r\n\t\t\t\tpostalCode: billingAddress.postalCode\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (account.type === \"O\") {\r\n\t\t\tbankDetails.ownershipType = \"business\";\r\n\t\t\tbankDetails.businessName = account.organizationName || account.name;\r\n\t\t} else {\r\n\t\t\tbankDetails.ownershipType = \"personal\";\r\n\t\t\tbankDetails.firstName = account.firstName;\r\n\t\t\tbankDetails.lastName = account.lastName;\r\n\t\t}\r\n\r\n\t\treturn bankDetails;\r\n\t},\r\n\r\n\t_getBillingAddress: function (billingAddressInformation) {\r\n\t\tvar billingAddress = null;\r\n\r\n\t\tvar account = this._getAccount();\r\n\t\tvar primaryAddress = account && account.address;\r\n\t\tvar otherAddresses = account && account.otherAddresses;\r\n\r\n\t\tvar shipToAccount = this._getShipToAccount(account);\r\n\t\tvar shippingAddress = shipToAccount && shipToAccount.address;\r\n\r\n\t\tvar selectionType = billingAddressInformation && billingAddressInformation.selectionType;\r\n\r\n\t\tif (selectionType === Constants.BILLING_ADDRESS_SELECTION_TYPES.NEW) {\r\n\t\t\tbillingAddress = billingAddressInformation.address;\r\n\t\t} else if (selectionType === Constants.BILLING_ADDRESS_SELECTION_TYPES.EXISTING) {\r\n\t\t\tvar billingAddressId = billingAddressInformation.address && billingAddressInformation.address.id;\r\n\r\n\t\t\tif (billingAddressId) {\r\n\t\t\t\tif (primaryAddress && primaryAddress.id === billingAddressId) {\r\n\t\t\t\t\tbillingAddress = primaryAddress;\r\n\t\t\t\t} else if (otherAddresses && otherAddresses.length > 0) {\r\n\t\t\t\t\tbillingAddress = otherAddresses.find(address => address.id === billingAddressId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (selectionType === Constants.BILLING_ADDRESS_SELECTION_TYPES.NEW_PRIMARY) {\r\n\t\t\tbillingAddress = primaryAddress;\r\n\t\t} else if (selectionType === Constants.BILLING_ADDRESS_SELECTION_TYPES.NEW_SHIPPING) {\r\n\t\t\tbillingAddress = shippingAddress;\r\n\t\t}\r\n\r\n\t\tif (!billingAddress) {\r\n\t\t\t// Find the default billing address\r\n\r\n\t\t\t// First, check to see if the shipping or primary default billing checkboxes were checked\r\n\t\t\tif (shippingAddress && shippingAddress.isDefaultBilling) {\r\n\t\t\t\tbillingAddress = shippingAddress;\r\n\t\t\t} else if (primaryAddress && primaryAddress.isDefaultBilling) {\r\n\t\t\t\tbillingAddress = primaryAddress;\r\n\t\t\t}\r\n\r\n\t\t\tif (!billingAddress) {\r\n\t\t\t\t// If no default billing checkboxes were checked, see if any \"other address\" is the default billing address\r\n\t\t\t\tif (otherAddresses && otherAddresses.length > 0) {\r\n\t\t\t\t\tbillingAddress = otherAddresses.find(address => address.isDefaultBilling);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Fall back to the primary address if no other address was the default billing address\r\n\t\t\t\tif (!billingAddress) {\r\n\t\t\t\t\tbillingAddress = primaryAddress;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn billingAddress;\r\n\t},\r\n\r\n\t_getAccount: function () {\r\n\t\tvar accountData = window.AccountActions.getLoggedInAccount(); // We use window.AccountActions here to prevent a circular dependency.\r\n\r\n\t\t// If we do not have a logged in account, try to get account data from the primary create account form\r\n\t\tif ($.isEmptyObject(accountData)) {\r\n\t\t\taccountData = AccountFormHelper.serializeCreateAccountFormOnly();\r\n\t\t}\r\n\r\n\t\tif (!accountData.type) {\r\n\t\t\taccountData.type = (accountData.organizationName || accountData.organizationType) ? \"O\" : \"I\";\r\n\t\t}\r\n\r\n\t\treturn accountData;\r\n\t},\r\n\r\n\t_getThreeDSecureVerificationDetails: function (tokenizePayload, billingAddress) {\r\n\t\tvar verificationDetails = {\r\n\t\t\tamount: (window.CheckoutActions && window.CheckoutActions.getTotalAmount()) || \"0\", // Required Field\r\n\t\t\tnonce: tokenizePayload.nonce || tokenizePayload.hostedPageToken, // Required Field\r\n\t\t\tbin: (tokenizePayload.details && tokenizePayload.details.bin) || tokenizePayload.bin // Required Field\r\n\t\t};\r\n\r\n\t\tvar account = this._getAccount();\r\n\r\n\t\tif (!$.isEmptyObject(account)) {\r\n\t\t\tverificationDetails.email = (account.email && account.email.emailAddress) || \"\";\r\n\r\n\t\t\tif (!$.isEmptyObject(billingAddress)) {\r\n\t\t\t\tverificationDetails.billingAddress = {\r\n\t\t\t\t\tgivenName: account.firstName,\r\n\t\t\t\t\tsurname: account.lastName,\r\n\t\t\t\t\tphoneNumber: this._getPhoneNumberFromAccount(account),\r\n\t\t\t\t\tstreetAddress: billingAddress.line1,\r\n\t\t\t\t\textendedAddress: billingAddress.line2,\r\n\t\t\t\t\tlocality: billingAddress.city,\r\n\t\t\t\t\tregion: billingAddress.state,\r\n\t\t\t\t\tpostalCode: billingAddress.postalCode,\r\n\t\t\t\t\tcountryCodeAlpha2: this._getTwoCharacterCountryCode(billingAddress.country)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar shipToAccount = this._getShipToAccount(account);\r\n\t\tvar shippingAddress = (shipToAccount && shipToAccount.address) || {};\r\n\r\n\t\tif (!$.isEmptyObject(shippingAddress)) {\r\n\t\t\tverificationDetails.additionalInformation = {\r\n\t\t\t\t// We are not sending 'workPhoneNumber' at this time, but it is an optional field.\r\n\t\t\t\tshippingGivenName: shipToAccount.firstName,\r\n\t\t\t\tshippingSurname: shipToAccount.lastName,\r\n\t\t\t\tshippingPhone: this._getPhoneNumberFromAccount(shipToAccount),\r\n\t\t\t\tshippingAddress: {\r\n\t\t\t\t\tstreetAddress: shippingAddress.line1,\r\n\t\t\t\t\textendedAddress: shippingAddress.line2,\r\n\t\t\t\t\tlocality: shippingAddress.city,\r\n\t\t\t\t\tregion: shippingAddress.state,\r\n\t\t\t\t\tpostalCode: shippingAddress.postalCode,\r\n\t\t\t\t\tcountryCodeAlpha2: this._getTwoCharacterCountryCode(shippingAddress.country)\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// Required Field\r\n\t\tverificationDetails.onLookupComplete = function (data, next) {\r\n\t\t\tnext(); // 3D Secure requires this function be sent as a parameter, and that it calls next().\r\n\t\t};\r\n\r\n\t\treturn verificationDetails;\r\n\t},\r\n\r\n\t_getPhoneNumberFromAccount: function (account) {\r\n\t\treturn account.phone &&\r\n\t\t\t(account.phone.internationalCode || \"\") +\r\n\t\t\t(account.phone.areaCode || \"\") +\r\n\t\t\t(account.phone.phoneNumber || \"\") +\r\n\t\t\t(account.phone.extension || \"\");\r\n\t},\r\n\r\n\t_getTwoCharacterCountryCode: function (country) {\r\n\t\tif (country === \"USA\") {\r\n\t\t\treturn \"US\";\r\n\t\t}\r\n\r\n\t\treturn (country && country.length === 2) ? country : \"\";\r\n\t},\r\n\r\n\t_getShipToAccount: function (primaryAccount) {\r\n\t\tvar shipToAccount = ShipToAccountHelper.getShippingAccountInfo(primaryAccount) || {};\r\n\r\n\t\tvar isOnlyAddressId = shipToAccount.address &&\r\n\t\t\tshipToAccount.address.id &&\r\n\t\t\t!shipToAccount.address.line1 &&\r\n\t\t\t!shipToAccount.address.city &&\r\n\t\t\t!shipToAccount.address.state &&\r\n\t\t\t!shipToAccount.address.postalCode &&\r\n\t\t\t!shipToAccount.address.country;\r\n\r\n\t\tif (isOnlyAddressId) {\r\n\t\t\t// We only get here when using an existing Other Address for shipment.\r\n\t\t\tvar otherAddresses = window.AccountActions.getOtherAddresses(); // We use window.AccountActions here to prevent a circular dependency.\r\n\r\n\t\t\tvar shipToAddress = _.find(otherAddresses, (otherAddress) => {\r\n\t\t\t\treturn (otherAddress.id === shipToAccount.address.id);\r\n\t\t\t});\r\n\r\n\t\t\tshipToAccount.address = shipToAddress || {};\r\n\t\t}\r\n\r\n\t\treturn shipToAccount;\r\n\t},\r\n\r\n\t_generateIframe: function ($parent) {\r\n\t\tvar that = this;\r\n\t\tvar device = this._getDeviceType();\r\n\r\n\t\t// Find Braintree Components\r\n\t\tvar $braintreeCardNumberComponent = $parent.find(\"[data-component='braintreeCardNumber.input']\");\r\n\t\tvar $braintreeExpirationComponent = $parent.find(\"[data-component='braintreeExpiration.input']\");\r\n\t\tvar $braintreeCardVerificationValueComponent = $parent.find(\"[data-component='braintreeCardVerificationValue.input']\");\r\n\t\tvar $braintreeNameOnCardComponent = $parent.find(\"[data-component='braintreeNameOnCard.input']\");\r\n\r\n\t\t// Get Style Objects\r\n\t\tvar cardNumberStyle = this._getStyleObject($braintreeCardNumberComponent, device);\r\n\t\tvar expirationStyle = this._getStyleObject($braintreeExpirationComponent, device);\r\n\t\tvar cardVerificationValueStyle = this._getStyleObject($braintreeCardVerificationValueComponent, device);\r\n\t\tvar nameOnCardStyle = this._getStyleObject($braintreeNameOnCardComponent, device);\r\n\r\n\t\t// Get Iframe Styling\r\n\t\tvar braintreeStyles = {};\r\n\t\tbraintreeStyles['.number'] = cardNumberStyle;\r\n\t\tbraintreeStyles['.expirationDate'] = expirationStyle;\r\n\t\tbraintreeStyles['.cvv'] = cardVerificationValueStyle;\r\n\t\tbraintreeStyles['.cardholderName'] = nameOnCardStyle;\r\n\r\n\t\t// Set Container Styling\r\n\t\tthis._setContainerHeightAndWidth($braintreeCardNumberComponent, cardNumberStyle);\r\n\t\tthis._setContainerHeightAndWidth($braintreeExpirationComponent, expirationStyle);\r\n\t\tthis._setContainerHeightAndWidth($braintreeCardVerificationValueComponent, cardVerificationValueStyle);\r\n\t\tthis._setContainerHeightAndWidth($braintreeNameOnCardComponent, nameOnCardStyle);\r\n\r\n\t\t// Create Braintree Fields\r\n\t\tvar braintreeFields = {};\r\n\t\tbraintreeFields['number'] = {\r\n\t\t\tcontainer: `#${$braintreeCardNumberComponent.attr(\"id\")}`,\r\n\t\t\tplaceholder: decodeURIComponent($braintreeCardNumberComponent.attr(`data-input-placeholder`)),\r\n\t\t\tmaskInput: {\r\n\t\t\t\tshowLastFour: true\r\n\t\t\t}\r\n\t\t};\r\n\t\tbraintreeFields['expirationDate'] = {\r\n\t\t\tcontainer: `#${$braintreeExpirationComponent.attr(\"id\")}`,\r\n\t\t\tplaceholder: decodeURIComponent($braintreeExpirationComponent.attr(`data-input-placeholder`))\r\n\t\t};\r\n\t\tbraintreeFields['cvv'] = {\r\n\t\t\tcontainer: `#${$braintreeCardVerificationValueComponent.attr(\"id\")}`,\r\n\t\t\tplaceholder: decodeURIComponent($braintreeCardVerificationValueComponent.attr(`data-input-placeholder`))\r\n\t\t};\r\n\t\tbraintreeFields['cardholderName'] = {\r\n\t\t\tcontainer: `#${$braintreeNameOnCardComponent.attr(\"id\")}`,\r\n\t\t\tplaceholder: decodeURIComponent($braintreeNameOnCardComponent.attr(`data-input-placeholder`))\r\n\t\t};\r\n\r\n\t\t// Get Client Token\r\n\t\tvar clientToken = decodeURIComponent($braintreeCardNumberComponent.attr(`data-client-token`));\r\n\r\n\t\twindow.braintree.client.create({\r\n\t\t\tauthorization: clientToken\r\n\t\t}, function (err, clientInstance) {\r\n\t\t\tif (err) {\r\n\t\t\t\tvar paymentFormUnavailableMessage = that._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.BRAINTREE_MESSAGE_FIELDS.PAYMENT_FORM_UNAVAILABLE);\r\n\t\t\t\tBootstrapPrompt.alert(paymentFormUnavailableMessage);\r\n\t\t\t\tLoggerInstance.error(err);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\twindow.braintree.hostedFields.create({\r\n\t\t\t\tclient: clientInstance,\r\n\t\t\t\tstyles: braintreeStyles,\r\n\t\t\t\tfields: braintreeFields\r\n\t\t\t}, function (err, hostedFieldsInstance) {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tvar paymentFormUnavailableMessage = that._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.BRAINTREE_MESSAGE_FIELDS.PAYMENT_FORM_UNAVAILABLE);\r\n\t\t\t\t\tBootstrapPrompt.alert(paymentFormUnavailableMessage);\r\n\t\t\t\t\tLoggerInstance.error(err);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\thostedFieldsInstance.on('validityChange', function (event) {\r\n\t\t\t\t\tvar field = event.fields[event.emittedBy];\r\n\r\n\t\t\t\t\tif (!field.isValid) {\r\n\t\t\t\t\t\t$(field.container).parent().addClass(\"invalid\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(field.container).parent().removeClass(\"invalid\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$parent.find(\"[data-component='braintreeCreditCardPayment']\").prop(\"hostedFieldsInstance\", hostedFieldsInstance);\r\n\t\t\t\t$parent.find(\"[data-component='braintreeCreditCardPayment']\").prop(\"clientInstance\", clientInstance);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t_getStyleObject: function ($component, device) {\r\n\t\tvar styleString = decodeURIComponent($component.attr(`data-src-${device}-css`));\r\n\t\tvar styleString = styleString.replace(\"{\", \"\").replace(\"}\", \"\");\r\n\t\tvar styleObject = {};\r\n\t\tvar rules = styleString.split(\";\");\r\n\r\n\t\trules.forEach(rule => {\r\n\t\t\tvar keyValuePair = rule.split(\":\");\r\n\t\t\tif (keyValuePair.length === 2) {\r\n\t\t\t\tstyleObject[keyValuePair[0]] = keyValuePair[1];\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\treturn styleObject;\r\n\t},\r\n\r\n\t_setContainerHeightAndWidth: function ($component, styleObject) {\r\n\t\tvar marginTop = styleObject[\"margin-top\"] || \"0px\";\r\n\t\tvar marginRight = styleObject[\"margin-right\"] || \"0px\";\r\n\t\tvar marginBottom = styleObject[\"margin-bottom\"] || \"0px\";\r\n\t\tvar marginLeft = styleObject[\"margin-left\"] || \"0px\";\r\n\r\n\t\t$component.css(\"height\", `calc(100% + ${marginTop} + ${marginBottom})`);\r\n\t\t$component.css(\"width\", `calc(100% + ${marginLeft} + ${marginRight})`);\r\n\t},\r\n\r\n\t_getDeviceType: function () {\r\n\t\tvar width = window.innerWidth;\r\n\r\n\t\treturn (width < deviceMinWidth.TABLET && deviceType.MOBILE)\r\n\t\t\t|| (width < deviceMinWidth.DESKTOP && deviceType.TABLET)\r\n\t\t\t|| deviceType.DESKTOP;\r\n\t},\r\n\r\n\t_getWizardErrorMessage: function (wizardName, wizardField) {\r\n\t\tif (window.CheckoutActions) {\r\n\t\t\treturn window.CheckoutActions.getWizardValue(wizardName, wizardField);\r\n\t\t}\r\n\r\n\t\treturn window.AccountStore.getWizardValue(wizardName, wizardField);\r\n\t}\r\n};\r\n\r\nmodule.exports = BraintreeHelper;\r\n","\"use strict\";\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar deviceTypes = Constants.DEVICE_TYPES;\r\nvar deviceMinWidths = Constants.DEVICE_MIN_WIDTHS;\r\n\r\nvar CardConnectHelper = {\r\n\tinitializeCardConnect: function($parent) {\r\n\t\tthis._initializeListeners($parent);\r\n\t\tthis._manageIframeAttributes(null, $parent);\r\n\t},\r\n\r\n\t_initializeListeners: function($parent) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\r\n\t\t$parent.find(\"[data-component='cardConnectCardNumber']\").each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({customValidator: this.validateCardNumberToken.bind(this, $element)});\r\n\t\t});\r\n\r\n\t\t//CardConnect fires this event in order for us to capture the card number token.\r\n\t\twindow.addEventListener(\"message\", this._setCardConnectToken);\r\n\r\n\t\twindow.addEventListener(\"resize\", this._manageIframeAttributes);\r\n\t},\r\n\r\n\t//selector can be a jQuery object or jQuery selector\r\n\tisCardConnect: function(selector) {\r\n\t\tvar $selector = $(selector || \"body\");\r\n\t\treturn Boolean(\r\n\t\t\t$selector.closest(\"[data-component='cardConnectCreditCardPayment']\").length ||\r\n\t\t\t$selector.find(\"[data-component='cardConnectCreditCardPayment']\").length\r\n\t\t);\r\n\t},\r\n\r\n\tgetCardConnectToken: function($element) {\r\n\t\tif (this.isCardConnect($element)) {\r\n\t\t\tvar token = $element.attr(\"data-cardconnect-token\");\r\n\t\t\treturn token;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t},\r\n\r\n\t_manageIframeAttributes: function(event, $parent) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\r\n\t\tif (window.AccountStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar getDeviceType = function() {\r\n\t\t\tvar device = deviceTypes.DESKTOP;\r\n\r\n\t\t\tvar width = window.innerWidth;\r\n\r\n\t\t\tif (width < deviceMinWidths.TABLET) {\r\n\t\t\t\tdevice = deviceTypes.MOBILE;\r\n\t\t\t} else if (width < deviceMinWidths.DESKTOP) {\r\n\t\t\t\tdevice = deviceTypes.TABLET;\r\n\t\t\t}\r\n\r\n\t\t\treturn device;\r\n\t\t};\r\n\r\n\t\tvar setIframeAttributes = function($iframe, device) {\r\n\t\t\tvar style = $iframe.attr(`data-${device}-style`);\r\n\t\t\tif (style) {\r\n\t\t\t\t$iframe.attr(\"style\", style);\r\n\t\t\t}\r\n\r\n\t\t\tvar src = $iframe.attr(`data-src`);\r\n\t\t\tvar srcCss = $iframe.attr(`data-${device}-css`);\r\n\t\t\tif (src && srcCss) {\r\n\t\t\t\t$iframe.attr(\"src\", `${src}${srcCss}`);\r\n\t\t\t}\r\n\r\n\t\t\t$iframe.attr(\"data-set-device\", device);\r\n\t\t};\r\n\r\n\t\tvar device = getDeviceType();\r\n\r\n\t\tvar $iframes = $parent.find(\"[data-component='cardConnectCardNumber']\");\r\n\t\t$iframes.each((index, iframe) => {\r\n\t\t\tvar $iframe = $(iframe);\r\n\r\n\t\t\tif (device !== $iframe.attr(\"data-set-device\")) {\r\n\t\t\t\tsetIframeAttributes($iframe, device);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_setCardConnectToken: function(event) {\r\n\t\t// it is possible for this method to be called by other origins\r\n\t\tif (!event.origin.includes(\"cardconnect\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar data = JSON.parse(event.data);\r\n\t\tvar keys = Object.keys(data);\r\n\t\tvar id = keys.find((element) => {\r\n\t\t\treturn element.startsWith(\"DDCCC\");\r\n\t\t});\r\n\t\tvar token = data[id];\r\n\r\n\t\tvar $currentIframe = $(`#${id}`);\r\n\r\n\t\tif ($currentIframe) {\r\n\t\t\tif (token) {\r\n\t\t\t\t$currentIframe.attr(\"data-cardconnect-token\", token);\r\n\t\t\t} else {\r\n\t\t\t\t$currentIframe.removeAttr(\"data-cardconnect-token\");\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tvalidateCardNumberToken: function($element) {\r\n\t\tvar errorMessages = [];\r\n\r\n\t\tvar token = this.getCardConnectToken($element);\r\n\t\tif (!token) {\r\n\t\t\tvar cardNumberTokenMessage = this._getStore().getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES,\r\n\t\t\t\tWizardConstants.CARDCONNECT_MESSAGE_FIELDS.CARD_NUMBER_TOKEN\r\n\t\t\t);\r\n\r\n\t\t\terrorMessages.push(cardNumberTokenMessage);\r\n\t\t}\r\n\r\n\t\treturn { isValid : !errorMessages.length, errorMessages : errorMessages };\r\n\t},\r\n\r\n\t_getStore: function() {\r\n\t\tif (window.CheckoutStore) {\r\n\t\t\treturn window.CheckoutStore;\r\n\t\t}\r\n\r\n\t\treturn window.AccountStore;\r\n\t}\r\n};\r\n\r\nmodule.exports = CardConnectHelper;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"CategoryDropdown\");\r\n\r\nvar CategoryStore = require(\"../stores/CategoryStore\");\r\n\r\nclass CategoryDropdown extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\t// The top-level allowedCategories from wizard, or component properties\r\n\t\tvar wizardCategories;\r\n\t\tif (props.wizardCategories) {\r\n\t\t\twizardCategories = JSON.parse(props.wizardCategories);\r\n\t\t} else if (props.isDesignMode) {\r\n\t\t\twizardCategories = CategoryStore.get(\"wizardCategories\");\r\n\t\t}\r\n\t\tif (wizardCategories.allowedCategories) {\r\n\t\t\twizardCategories = wizardCategories.allowedCategories;\r\n\t\t} else {\r\n\t\t\twizardCategories = [];\r\n\t\t}\r\n\t\tvar allowedCategories = props.allowedCategories;\r\n\t\tvar categories = props.categories || CategoryStore.get(\"categories\") || [];\r\n\r\n\t\tvar hashArray = {};\r\n\t\tfor (var indexy = 0; indexy < categories.length; indexy++) {\r\n\t\t\tvar currentCategory = categories[indexy];\r\n\t\t\tif (hashArray[currentCategory.parentId] === undefined) {\r\n\t\t\t\thashArray[currentCategory.parentId] = [];\r\n\t\t\t}\r\n\t\t\tif (!currentCategory.parentId) {\r\n\t\t\t\t// If this is a top-level category and it is not allowed by wizard or component properties, skip it.\r\n\t\t\t\tif (wizardCategories.indexOf(currentCategory.id) <= -1) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t} else if (allowedCategories && allowedCategories.indexOf(currentCategory.id) <= -1) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\thashArray[currentCategory.parentId].push(currentCategory);\r\n\t\t}\r\n\r\n\t\t// If we have allowedCategories, sort by them, otherwise, sort by wizardCategories\r\n\t\tvar topLevelSortArray = allowedCategories || wizardCategories;\r\n\t\tcategories = this.hierarchySort(\r\n\t\t\thashArray,\r\n\t\t\tnull, // top level key\r\n\t\t\t[], // results array\r\n\t\t\t0, // level\r\n\t\t\ttopLevelSortArray);\r\n\r\n\t\tthis.state = {\r\n\t\t\tactiveCategory: null,\r\n\t\t\tcategories,\r\n\t\t\tallowedCategories,\r\n\t\t\twizardCategories\r\n\t\t};\r\n\t}\r\n\r\n\thandleSelectCategory(category) {\r\n\t\tthis.setState({ activeCategory: category });\r\n\t}\r\n\r\n\thierarchySortOrder(a,b) {\r\n\t\treturn a.name > b.name;\r\n\t}\r\n\r\n\thierarchySort(hashArray, key, result, level, topLevelSort) {\r\n\t\tif (hashArray[key] === undefined) return;\r\n\t\tvar sortedArray;\r\n\t\tif (level > 0 || !topLevelSort) {\r\n\t\t\tsortedArray = hashArray[key].sort(this.hierarchySortOrder);\r\n\t\t} else {\r\n\t\t\t// Sorting the top-level using an array of ids\r\n\t\t\tsortedArray = hashArray[key].sort((a, b) => {\r\n\t\t\t\tif (topLevelSort.indexOf(a.id) < topLevelSort.indexOf(b.id)) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t} else if (topLevelSort.indexOf(a.id) > topLevelSort.indexOf(b.id)) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\treturn 0;\r\n\t\t\t});\r\n\t\t}\r\n\t\tfor (var index = 0; index < sortedArray.length; index++) {\r\n\t\t\tsortedArray[index].level = level;\r\n\t\t\tresult.push(sortedArray[index]);\r\n\t\t\tthis.hierarchySort(hashArray, sortedArray[index].id, result, level + 1);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\t// Inserting a span after the React node to keep bootstrap happy\r\n\t\t$(ReactDOM.findDOMNode(this)).after(\"<span></span>\");\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t} else {\r\n\t\t\tvar categories = this.state.categories;\r\n\t\t\tif (window._selectedCategoryId) {\r\n\t\t\t\tvar activeCategory = categories.find(category => category.id === window._selectedCategoryId);\r\n\t\t\t\tdelete window._selectedCategoryId;\r\n\t\t\t\tif (activeCategory) {\r\n\t\t\t\t\tthis.setState({activeCategory});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar categories = this.state.categories;\r\n\t\tvar activeCategory = this.state.activeCategory;\r\n\t\tvar indentation = this.props.indentation;\r\n\r\n\t\tif (!this.props.isDesignMode && (!categories || categories.length <= 0)) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tid={this.props.id}\r\n\t\t\t\tclassName=\"input-group-btn category-dropdown\"\r\n\t\t\t\tdata-react-component-name=\"CategoryDropdown\"\r\n\t\t\t\tdata-react-component-category=\"CategoryDropdownComponents\"\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<button type=\"button\" className=\"btn btn-default dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n\t\t\t\t\t<span>{activeCategory ? activeCategory.name : \"All\"}</span> <span className=\"caret\" />\r\n\t\t\t\t</button>\r\n\t\t\t\t<ul className=\"dropdown-menu\">\r\n\t\t\t\t\t<li\r\n\t\t\t\t\t\tclassName={classNames(\"category\", { active: !activeCategory })}\r\n\t\t\t\t\t\tonClick={this.handleSelectCategory.bind(this, null)}\r\n\t\t\t\t\t\tdata-component=\"CategoryDropdown.category\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<a role=\"button\">All</a>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t{categories && categories.length > 0 &&\r\n\t\t\t\t\t\tcategories.map((category) => {\r\n\t\t\t\t\t\t\tvar padding = 20 + (indentation * category.level);\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t\t\t\tkey={category.id}\r\n\t\t\t\t\t\t\t\t\tclassName={classNames(\"category\", { active: activeCategory === category })}\r\n\t\t\t\t\t\t\t\t\tonClick={this.handleSelectCategory.bind(this, category)}\r\n\t\t\t\t\t\t\t\t\tdata-component=\"CategoryDropdown.category\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<a role=\"button\" data-value={category.id} style={{ paddingLeft: padding }}>\r\n\t\t\t\t\t\t\t\t\t\t{category.name}\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t</ul>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCategoryDropdown.defaultProps = {\r\n\tindentation: 24,\r\n\ttheme: \"0\",\r\n\tisCustomTheme: false\r\n};\r\n\r\nCategoryDropdown.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tcategories: PropTypes.array,\r\n\tallowedCategories: PropTypes.array,\r\n\twizardCategories: PropTypes.string, // Serialized from wizard\r\n\tindentation: PropTypes.number,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataChildOf: PropTypes.string\r\n};\r\n\r\nmodule.exports = CategoryDropdown;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nclass CategoryPaging extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar currentPageNumber = props.currentPageNumber;\r\n\t\tvar pageSize = props.pageSize || 10;\r\n\t\tvar totalCount = props.totalCount;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tcurrentPageNumber = 10;\r\n\t\t\ttotalCount = 20 * pageSize;\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tcurrentPageNumber,\r\n\t\t\tpageSize,\r\n\t\t\ttotalCount\r\n\t\t};\r\n\t}\r\n\r\n\tsetupRelatedComponents() {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tvar lastPage = Math.ceil(this.state.totalCount / this.state.pageSize);\r\n\r\n\t\tvar $categoryPaging = $(ReactDOM.findDOMNode(this)).parent(); // The parent is the mount point\r\n\t\tvar $previousButton = $categoryPaging.siblings(`[data-component=\"category.populated.paging.previousPage\"]`);\r\n\t\tvar $nextButton = $categoryPaging.siblings(`[data-component=\"category.populated.paging.nextPage\"]`);\r\n\r\n\t\tif (currentPage > 1) {\r\n\t\t\t$previousButton.removeClass(\"disabled\");\r\n\t\t\t$previousButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t\t$previousButton.click(this.handlePageChange.bind(this, currentPage - 1));\r\n\t\t} else {\r\n\t\t\t$previousButton.addClass(\"disabled\");\r\n\t\t\t$previousButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t}\r\n\r\n\t\tif (currentPage < lastPage) {\r\n\t\t\t$nextButton.removeClass(\"disabled\");\r\n\t\t\t$nextButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t\t$nextButton.click(this.handlePageChange.bind(this, currentPage + 1));\r\n\t\t} else {\r\n\t\t\t$nextButton.addClass(\"disabled\");\r\n\t\t\t$nextButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t}\r\n\t}\r\n\r\n\thandlePageChange(pageNumber, event) {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tif (currentPage === pageNumber) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tif (event && !event.ctrlKey && !event.metaKey) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.setState({ currentPageNumber: pageNumber }, this.setupRelatedComponents);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar $categoryComponent = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=category]\");\r\n\t\twindow._categorySearch($categoryComponent.attr(\"id\"), pageNumber);\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.setupRelatedComponents();\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit JavaScript\\categoryComponents\\expose.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit JavaScript\\categoryComponents\\expose.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar pageSize = this.state.pageSize;\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tvar numberPagesToShow = this.props.numberPagesToShow;\r\n\t\tvar lastPage = Math.ceil(this.state.totalCount / pageSize);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tnumberPagesToShow = numberPagesToShow || 3;\r\n\t\t}\r\n\r\n\t\tvar pagesToShow = [];\r\n\t\tif (lastPage < numberPagesToShow) {\r\n\t\t\tpagesToShow = Array(lastPage).fill().map((e, i) => i + 1);\r\n\t\t} else if (currentPage < numberPagesToShow) {\r\n\t\t\tpagesToShow = Array(numberPagesToShow).fill().map((e, i) => i + 1);\r\n\t\t} else {\r\n\t\t\tvar start = currentPage - Math.floor((numberPagesToShow - 1) / 2);\r\n\t\t\tif (start + numberPagesToShow > lastPage) {\r\n\t\t\t\tstart = lastPage - numberPagesToShow + 1;\r\n\t\t\t}\r\n\t\t\tpagesToShow = Array(numberPagesToShow).fill().map((e, i) => i + start);\r\n\t\t}\r\n\r\n\t\tvar includeFirstPageNumber = this.props.includeFirstPageNumber && pagesToShow.indexOf(1) === -1;\r\n\t\tvar showStartEllipses = includeFirstPageNumber && pagesToShow.indexOf(2) === -1;\r\n\t\tvar includeLastPageNumber = this.props.includeLastPageNumber && pagesToShow.indexOf(lastPage) === -1;\r\n\t\tvar showEndEllipses = includeLastPageNumber && pagesToShow.indexOf(lastPage - 1) === -1;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName=\"category-paging\"\r\n\t\t\t\tdata-react-component-name=\"CategoryPaging\"\r\n\t\t\t\tdata-react-component-category=\"CategoryPagingComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t{includeFirstPageNumber &&\r\n\t\t\t\t\t<span className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === 1 })} data-component=\"CategoryPaging.page\" onClick={this.handlePageChange.bind(this, 1)}>\r\n\t\t\t\t\t\t{1}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{showStartEllipses &&\r\n\t\t\t\t\t<span className=\"paging-item ellipses\" data-component=\"CategoryPaging.pageEllipses\">\r\n\t\t\t\t\t\t...\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{pagesToShow.map((pageNumber) =>\r\n\t\t\t\t\t<span key={pageNumber} className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === pageNumber })} data-component=\"CategoryPaging.page\" onClick={this.handlePageChange.bind(this, pageNumber)}>\r\n\t\t\t\t\t\t{pageNumber}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t)}\r\n\t\t\t\t{showEndEllipses &&\r\n\t\t\t\t\t<span className=\"paging-item ellipses\" data-component=\"CategoryPaging.pageEllipses\">\r\n\t\t\t\t\t\t...\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{includeLastPageNumber &&\r\n\t\t\t\t\t<span className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === lastPage })} data-component=\"CategoryPaging.page\" onClick={this.handlePageChange.bind(this, lastPage)}>\r\n\t\t\t\t\t\t{lastPage}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCategoryPaging.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataChildOf: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tnumberPagesToShow: PropTypes.number,\r\n\tincludeFirstPageNumber: PropTypes.bool,\r\n\tincludeLastPageNumber: PropTypes.bool,\r\n\tcurrentPageNumber: PropTypes.number,\r\n\tpageSize: PropTypes.number,\r\n\ttotalCount: PropTypes.number\r\n};\r\n\r\nmodule.exports = CategoryPaging;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CheckoutHelper\");\r\n\r\nvar PaymentHelper = require(\"./PaymentHelper\");\r\nvar ShipToAccountHelper = require(\"./ShipToAccountHelper\");\r\n\r\nvar AccountActions = require(\"../accountComponents/AccountActions\");\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\n\r\nvar CheckoutApi = require(\"../checkoutComponents/CheckoutApi\");\r\nvar CheckoutStore = require(\"../checkoutComponents/CheckoutStore\");\r\nvar DonationUpsellHelper = require(\"../checkoutComponents/DonationUpsellHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar CheckoutHelper = {\r\n\tsavedPaymentComponentData: function () {\r\n\t\tvar $savedPaymentsComponent = $(\"div[data-component=savedPayments]\");\r\n\t\tvar usingSavedPayments = $savedPaymentsComponent.length;\r\n\r\n\t\tif (usingSavedPayments) {\r\n\t\t\t// pull value from radio buttons.\r\n\t\t\tvar $checkedRadioButton = $(`input[name=savedPaymentsComponent]:checked`);\r\n\r\n\t\t\tvar type;\r\n\t\t\tif ($checkedRadioButton.closest(\"[data-component='savedPayments.creditCard']\").length) {\r\n\t\t\t\ttype = \"CC\";\r\n\t\t\t} else if ($checkedRadioButton.closest(\"[data-component='savedPayments.eft']\").length) {\r\n\t\t\t\ttype = \"EFT\";\r\n\t\t\t}\r\n\r\n\t\t\tvar savedPaymentRadioValue = $checkedRadioButton.val();\r\n\r\n\t\t\treturn {\r\n\t\t\t\tnewSavedPayment: savedPaymentRadioValue === \"NEW\",\r\n\t\t\t\tsavedPaymentCheckout: true,\r\n\t\t\t\tsavedPaymentId: savedPaymentRadioValue,\r\n\t\t\t\ttype\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsavedPaymentCheckout: false,\r\n\t\t\tnewSavedPayment: false\r\n\t\t};\r\n\t},\r\n\r\n\tgetAccountInfo: function (options) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\toptions = options || {};\r\n\t\tvar mediaOutlet;\r\n\r\n\t\tif (options.isCreateAccount) {\r\n\t\t\tAccountFormHelper.serializeDataNecessaryToCreateAnAccount().always(accountData => {\r\n\t\t\t\taccountData.type = AccountActions.getAccountType(accountData);\r\n\t\t\t\tdeferred.resolve(accountData);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar account = {};\r\n\t\t\tAccountFormHelper.updateAccountDemographics(account).always(() => {\r\n\t\t\t\tmediaOutlet = AccountFormHelper.getMediaOutlet();\r\n\t\t\t\tif (mediaOutlet) {\r\n\t\t\t\t\taccount.mediaOutlet = mediaOutlet;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdeferred.resolve(account);\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tgetSubscriptionTaxControlRecord: function () {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tif (this.useSubscriptionTax) {\r\n\t\t\tdeferred.resolve(this.useSubscriptionTax);\r\n\t\t} else {\r\n\t\t\tCheckoutApi.getSubscriptionTaxControlRecord().done((useSubscriptionTax) => {\r\n\t\t\t\tthis.useSubscriptionTax = useSubscriptionTax.value;\r\n\t\t\t\tdeferred.resolve(this.useSubscriptionTax);\r\n\t\t\t}).fail((err) => {\r\n\t\t\t\tLoggerInstance.info(\"Unable to get subscription tax control record.\");\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tgetShippingTaxId: function () {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tif (this.shipTaxId) {\r\n\t\t\tdeferred.resolve(this.shipTaxId);\r\n\t\t} else {\r\n\t\t\tCheckoutApi.getShippingTaxId().done((shipTaxId) => {\r\n\t\t\t\tthis.shipTaxId = shipTaxId.value;\r\n\t\t\t\tdeferred.resolve(this.shipTaxId);\r\n\t\t\t}).fail((err) => {\r\n\t\t\t\tLoggerInstance.info(\"Unable to get shipping tax control record.\");\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tcompleteCheckout: function (dataToSend, successCallback, failureCallback) {\r\n\t\tdataToSend = dataToSend || {};\r\n\t\tCheckoutApi.completeCheckout(dataToSend).then((data, textStatus, jqXHR) => {\r\n\t\t\tif (data.success) {\r\n\t\t\t\t// We originally only provided post-submit action processing here because we were using\r\n\t\t\t\t// the generic Submit Button component. But this doesn't make sense in this case. All checkout scenarios should\r\n\t\t\t\t// forward to the confirmation page.\r\n\t\t\t\tif (_.isFunction(successCallback)) {\r\n\t\t\t\t\tsuccessCallback();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Used to prevent caching data in session storage on page unload when checkout has completed.\r\n\t\t\t\twindow.CHECKOUT_COMPLETED = true;\r\n\r\n\t\t\t\twindow.location.href = \"/\" + CheckoutStore.getConfirmationPageRoute();\r\n\t\t\t} else {\r\n\t\t\t\tif (_.isFunction(failureCallback)) {\r\n\t\t\t\t\tfailureCallback();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// TODO - Feature #5033 - End User Validation\r\n\t\t\t\t// Determine how/where we want to handle API error messagesByField.\r\n\t\t\t\tPaymentHelper.clearPaymentData();\r\n\r\n\t\t\t\tif ((data.responseData || {}).wizardDonationUpsell) {\r\n\t\t\t\t\tCheckoutStore.setDonationUpsellWizard(data.responseData.wizardDonationUpsell);\r\n\t\t\t\t\tDonationUpsellHelper.handleDonationUpsellChange();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar errorCallback = () => {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (data.message === CheckoutStore.getRequireDonationChangedMessage() || (data.responseData || {}).shouldReloadPage) {\r\n\t\t\t\t\terrorCallback = () => {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tLoggerInstance.error(data.message, textStatus, jqXHR);\r\n\t\t\t\tBootstrapPrompt.alert(data.message, errorCallback);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t// Returns the data that we are currently sending to the ASO checkout API resource.\r\n\t// The presence of a 'checkoutEvent' indicates that someone is checking out via the regular Submit button.\r\n\tgetCheckoutData: function (checkoutEvent, shouldApplyPaymentInformation) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tvar checkoutDetails = {\r\n\t\t\tshippingMethod: CheckoutStore.get(\"shippingMethod\")\r\n\t\t};\r\n\r\n\t\t// If we are OPCO on a Tangible, we need to get a few more details\r\n\t\tif (!CheckoutStore.isShoppingCart()) {\r\n\t\t\tvar tangibleActions = CheckoutStore.getTangibleActions();\r\n\t\t\tvar tangibleType = CheckoutStore.get(\"checkoutType\");\r\n\t\t\tif (!tangibleActions) {\r\n\t\t\t\tLoggerInstance.error(\"One page checkout was attempted but checkoutType is missing from the CheckoutStore.\");\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t\treturn deferred;\r\n\t\t\t}\r\n\t\t\tvar shoppingCartData = tangibleActions.getShoppingCartData({ tangibleType });\r\n\t\t\tif (shoppingCartData.product) {\r\n\t\t\t\t// If we are on OPCO Product page then we need to validate quantity\r\n\t\t\t\tvar availableQuantity = CheckoutStore.get(\"availableQuantity\");\r\n\t\t\t\tif (availableQuantity !== null && shoppingCartData.quantity > availableQuantity) {\r\n\t\t\t\t\tBootstrapPrompt.alert(CheckoutStore.getWizardValue(\r\n\t\t\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.AVAILABLE_QUANTITY,\r\n\t\t\t\t\t\t{ availableQuantity }\r\n\t\t\t\t\t));\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t\treturn deferred;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcheckoutDetails.product = shoppingCartData.product;\r\n\t\t\tcheckoutDetails.project = shoppingCartData.project;\r\n\t\t\tcheckoutDetails.pledges = shoppingCartData.pledges;\r\n\t\t\tcheckoutDetails.cartItems = shoppingCartData.cartItems;\r\n\r\n\t\t\t// add coupon to one-page checkout\r\n\t\t\t// this is sent but not needed for applying a coupon, but it is required\r\n\t\t\t// for processing an OPCO with an applied coupon.\r\n\t\t\tcheckoutDetails.couponCode = sessionStorage.getItem(`currentCoupon_${CheckoutStore.get(\"productCode\")}`);\r\n\t\t}\r\n\r\n\t\t// Get the transaction note if it exists\r\n\t\tvar $transactionNote = $(\"[data-component='transactionNote'] textarea\");\r\n\r\n\t\tif ($transactionNote.length > 0) {\r\n\t\t\tcheckoutDetails.transactionNote = $transactionNote.val();\r\n\t\t}\r\n\r\n\t\t// Get Secure Project/Pledge details if checking out on the Secure Project/Pledge Page\r\n\t\tif (CheckoutStore.isPageType(Constants.TANGIBLE_TYPES.SECURE_PROJECTS)) {\r\n\t\t\tcheckoutDetails.securePageType = Constants.SECURE_PAGE_TYPES.PROJECT;\r\n\t\t} else if (CheckoutStore.isPageType(Constants.TANGIBLE_TYPES.SECURE_PLEDGES)) {\r\n\t\t\tcheckoutDetails.securePageType = Constants.SECURE_PAGE_TYPES.PLEDGE;\r\n\t\t}\r\n\r\n\t\tif (checkoutDetails.securePageType) {\r\n\t\t\tvar $secureInput = $(\"[data-component='textInput'] input[name='secureInput']\");\r\n\t\t\tif ($secureInput.length) {\r\n\t\t\t\tcheckoutDetails.secureMatchingText = $secureInput.first().val();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar savedPaymentData = CheckoutHelper.savedPaymentComponentData();\r\n\r\n\t\tthis.applyPaymentInformationToCheckoutDetails(checkoutEvent, checkoutDetails, savedPaymentData, shouldApplyPaymentInformation).always(checkoutDetailsWithPaymentInformation => {\r\n\t\t\tif (!checkoutDetailsWithPaymentInformation) {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t} else {\r\n\t\t\t\tthis.getAccountInfo({\r\n\t\t\t\t\tisCreateAccount: !savedPaymentData.savedPaymentCheckout\r\n\t\t\t\t}).always(account => {\r\n\t\t\t\t\t// source and mediaOutlet will be set on the Server with either values from the user's cookie or from defaults. They are not set here.\r\n\t\t\t\t\tvar dataToSend = {\r\n\t\t\t\t\t\taccount: account,\r\n\t\t\t\t\t\tcontactMethod: CheckoutStore.get(\"wizardDefaultContactMethod\").defaultContactMethod,\r\n\t\t\t\t\t\tpayment: checkoutDetailsWithPaymentInformation.payment,\r\n\t\t\t\t\t\tshippingMethod: checkoutDetailsWithPaymentInformation.shippingMethod,\r\n\t\t\t\t\t\tsecurePageType: checkoutDetailsWithPaymentInformation.securePageType,\r\n\t\t\t\t\t\tisPledgeStatementCart: CheckoutStore.get(\"isInPledgeStatementSession\")\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (checkoutDetailsWithPaymentInformation.transactionNote) {\r\n\t\t\t\t\t\tdataToSend.transactionNote = checkoutDetailsWithPaymentInformation.transactionNote;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (checkoutDetailsWithPaymentInformation.secureMatchingText) {\r\n\t\t\t\t\t\tdataToSend.secureMatchingText = checkoutDetailsWithPaymentInformation.secureMatchingText;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar shippingAddressType = ShipToAccountHelper.getShippingAddressType();\r\n\t\t\t\t\tvar giftAccount = shippingAddressType === \"gift\" ? ShipToAccountHelper.getGiftAccountInfo() : null;\r\n\t\t\t\t\tif (giftAccount) {\r\n\t\t\t\t\t\tdataToSend.recipient = giftAccount;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar otherShippingAddress = shippingAddressType === \"other\" ? ShipToAccountHelper.getAlternateShippingAddress() : null;\r\n\t\t\t\t\tif (otherShippingAddress) {\r\n\t\t\t\t\t\tdataToSend.otherShippingAddress = otherShippingAddress;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// This will be the case when we are OPCO on a Tangible page\r\n\t\t\t\t\tif (checkoutDetailsWithPaymentInformation.cartItems && checkoutDetailsWithPaymentInformation.project) {\r\n\t\t\t\t\t\tdataToSend.tangibleCode = checkoutDetailsWithPaymentInformation.project;\r\n\t\t\t\t\t\tdataToSend.cartItems = checkoutDetailsWithPaymentInformation.cartItems;\r\n\t\t\t\t\t\tdataToSend.tangibleType = \"Project\";\r\n\t\t\t\t\t\tdataToSend.couponCode = checkoutDetailsWithPaymentInformation.couponCode;\r\n\t\t\t\t\t} else if (checkoutDetailsWithPaymentInformation.cartItems && checkoutDetailsWithPaymentInformation.product) {\r\n\t\t\t\t\t\tdataToSend.tangibleCode = checkoutDetailsWithPaymentInformation.product;\r\n\t\t\t\t\t\tdataToSend.cartItems = checkoutDetailsWithPaymentInformation.cartItems;\r\n\t\t\t\t\t\tdataToSend.tangibleType = \"Product\";\r\n\t\t\t\t\t\tdataToSend.couponCode = checkoutDetailsWithPaymentInformation.couponCode;\r\n\t\t\t\t\t} else if (checkoutDetailsWithPaymentInformation.pledges && checkoutDetailsWithPaymentInformation.pledges.length) {\r\n\t\t\t\t\t\tdataToSend.pledges = checkoutDetailsWithPaymentInformation.pledges;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdataToSend.isMultiPageCheckout = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (DonationUpsellHelper.hasDonationUpsell()) {\r\n\t\t\t\t\t\tvar donationUpsellValues = DonationUpsellHelper.getDonationUpsellCalculationValues();\r\n\t\t\t\t\t\tdataToSend.lastMinuteDonationCalculation = donationUpsellValues.calculationType;\r\n\t\t\t\t\t\tdataToSend.lastMinuteDonationAmount = donationUpsellValues.amount;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// The presence of a 'checkoutEvent' indicates that someone is checking out via the regular Submit button.\r\n\t\t\t\t\t// Securing a payment is only used in the SavedPayment and CACO flows.\r\n\t\t\t\t\tif (checkoutEvent) {\r\n\t\t\t\t\t\tPaymentHelper.securePayment(dataToSend.payment).done((securedSavedPayment) => {\r\n\t\t\t\t\t\t\tif (securedSavedPayment && securedSavedPayment.nonce) {\r\n\t\t\t\t\t\t\t\tdataToSend.payment.hostedPageToken = securedSavedPayment.nonce;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdeferred.resolve(dataToSend);\r\n\t\t\t\t\t\t}).fail((jqXHR) => {\r\n\t\t\t\t\t\t\tif (jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.message) {\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(jqXHR.responseJSON.message);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdeferred.resolve(dataToSend);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\tapplyInsufficientGiftGroupAmountStyling: function (cartItemId) {\r\n\t\tvar groupDonations = CheckoutStore.getGiftGroupDonationsByCartItemId(cartItemId);\r\n\t\tvar groupCartItemIds = groupDonations.map(elem => elem.id);\r\n\t\tvar minimumDonationErrorClassName = \"minimum-amount-group-error\";\r\n\r\n\t\t// Remove the class from existing items\r\n\t\t$(`.${minimumDonationErrorClassName}`).removeClass(minimumDonationErrorClassName);\r\n\t\t// Find donations that have the given groupId, and put a css class on them\r\n\t\tgroupCartItemIds.forEach(groupCartItemId => {\r\n\t\t\tvar $changedAmountDonationElement = $(`div[data-component='cart.populated.project'] div[data-repeated-item-id='${groupCartItemId}']`);\r\n\t\t\t$changedAmountDonationElement.addClass(minimumDonationErrorClassName);\r\n\t\t});\r\n\t},\r\n\r\n\tapplyPaymentInformationToCheckoutDetails: function (checkoutEvent, checkoutDetails, savedPaymentData, shouldApplyPaymentInformation) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\tif (!shouldApplyPaymentInformation) {\r\n\t\t\tdeferred.resolve(checkoutDetails);\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\t// See if we require a payment ($0 cart) and if not, don't try and add the payment object.\r\n\t\tvar pledgeHasDonationOrRecurring = checkoutDetails.pledges && checkoutDetails.pledges.some(p => p.donateTodaySelected || p.isRecurring);\r\n\t\tvar wizardDonationOrRecurringRequired = CheckoutStore.get(\"wizardDonationRequired\") || CheckoutStore.get(\"wizardRecurringRequired\");\r\n\r\n\t\tvar cartHasTotalOrRecurring = CheckoutStore.getTotalAmount() > 0 ||\r\n\t\t\tCheckoutStore.hasRecurringDonations() ||\r\n\t\t\tpledgeHasDonationOrRecurring ||\r\n\t\t\twizardDonationOrRecurringRequired;\r\n\r\n\t\tif (cartHasTotalOrRecurring) {\r\n\t\t\tif (savedPaymentData.savedPaymentCheckout && !savedPaymentData.newSavedPayment) {\r\n\t\t\t\t// If we are using an existing saved payment for checkout, we short-circuit here\r\n\t\t\t\tcheckoutDetails.payment = _.merge(\r\n\t\t\t\t\t{},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsaveForLater: false,\r\n\t\t\t\t\t\tsavedPaymentId: savedPaymentData.savedPaymentId,\r\n\t\t\t\t\t\ttype: savedPaymentData.type\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\t\tdeferred.resolve(checkoutDetails);\r\n\t\t\t} else {\r\n\t\t\t\tvar $parentComponent = $(checkoutEvent.target).closest('[data-component=\"savedPayments\"],[data-component=\"createAccountAndCheckout\"]');\r\n\t\t\t\tvar saveForLater = $parentComponent.find('[data-component=\"paymentType.savePayment.input\"]').prop(\"checked\");\r\n\t\t\t\tvar useAsPrimary = $parentComponent.find('[data-component=\"savedPayments.addNew\"] [data-component=\"savedPayments.isPrimary.input\"]').prop(\"checked\");\r\n\r\n\t\t\t\tPaymentHelper.getPaymentData(CheckoutStore.get(\"wizardCompanyErrorMessages\"), CheckoutStore.get(\"wizardCompanyEftErrorMessages\"), (paymentData) => {\r\n\t\t\t\t\tcheckoutDetails.payment = _.merge(\r\n\t\t\t\t\t\t{},\r\n\t\t\t\t\t\tpaymentData,\r\n\t\t\t\t\t\t{ saveForLater, useAsPrimary }\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdeferred.resolve(checkoutDetails);\r\n\t\t\t\t}, () => {\r\n\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t//This means we have a $0 cart\r\n\t\t\tdeferred.resolve(checkoutDetails);\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t}\r\n};\r\n\r\nmodule.exports = CheckoutHelper;\r\n","\"use strict\";\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar CreditCardHelper = {\r\n\t_getStore: function() {\r\n\t\tif (window.CheckoutStore) {\r\n\t\t\treturn window.CheckoutStore;\r\n\t\t}\r\n\r\n\t\treturn window.AccountStore;\r\n\t},\r\n\r\n\thandleExpirationDateInputFormat: function (event) {\r\n\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\r\n\t\tvar hasSlash = value.substring(2, 3) === \"/\";\r\n\r\n\t\tvalue = value.replace(\"/\", \"\").replace(/[^\\d]+/g, \"\");\r\n\r\n\t\tif (value.length === 2) {\r\n\t\t\tif (!event.which || event.which === Constants.KEYS.BACKSPACE) {\r\n\t\t\t\t//No more formatting is necessary\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvalue = `${value}${(hasSlash ? \"/\": \"\")}`;\r\n\t\t} else if (value.length > 2) {\r\n\t\t\tvalue = `${value.substring(0, 2)}/${value.substring(2)}`;\r\n\t\t}\r\n\r\n\t\tif (value.length > 5) {\r\n\t\t\tvalue = value.substring(0, 5);\r\n\t\t}\r\n\r\n\t\t$(event.currentTarget).val(value);\r\n\t},\r\n\r\n\thandleVerificationNumberInputFormat: function (event) {\r\n\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\r\n\t\tvalue = value.replace(/[^\\d]+/g, \"\");\r\n\r\n\t\tif (value.length > 4) {\r\n\t\t\tvalue = value.substring(0, 4);\r\n\t\t}\r\n\r\n\t\t$(event.currentTarget).val(value);\r\n\t},\r\n\r\n\tinitializeListeners: function($parent) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\r\n\t\t$parent.find(\"input[data-component='creditCardExpirationDate']\").each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({customValidator: this.validateExpirationDate.bind(this, $element)});\r\n\t\t});\r\n\r\n\t\t$parent.find(\"input[data-component='creditCardVerificationNumber']\").each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({customValidator: this.validateVerificationNumber.bind(this, $element)});\r\n\t\t});\r\n\r\n\t\t$parent.find(\"input[data-component='creditCardExpirationDate'], input[data-component='creditCardVerificationNumber']\").keydown((event) => {\r\n\t\t\t//If Ctrl or (Window for WindowsOS or Command for MacOS) or Alt key or some of the text is selected, allow the key down\r\n\t\t\tif (event.ctrlKey || event.metaKey || event.altKey || (event.currentTarget.selectionEnd - event.currentTarget.selectionStart > 0)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\tcase Constants.KEYS.DELETE:\r\n\t\t\t\tcase Constants.KEYS.BACKSPACE:\r\n\t\t\t\tcase Constants.KEYS.ARROW_UP:\r\n\t\t\t\tcase Constants.KEYS.ARROW_RIGHT:\r\n\t\t\t\tcase Constants.KEYS.ARROW_DOWN:\r\n\t\t\t\tcase Constants.KEYS.ARROW_LEFT:\r\n\t\t\t\tcase Constants.KEYS.TAB:\r\n\t\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\tcase Constants.KEYS.HOME:\r\n\t\t\t\tcase Constants.KEYS.END:\r\n\t\t\t\tcase Constants.KEYS.PAGE_UP:\r\n\t\t\t\tcase Constants.KEYS.PAGE_DOWN:\r\n\t\t\t\t\t//event not handled, allowing the key down, as this is not a printable character\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\t\t\t\t\tif (value.length >= 5) {\r\n\t\t\t\t\t\t//event handled, do not allow key down, already at max characters\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//event not handled, allow the key down\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$parent.find(\"input[data-component='creditCardExpirationDate']\").change((event) => this.handleExpirationDateInputFormat(event));\r\n\t\t$parent.find(\"input[data-component='creditCardExpirationDate']\").keyup((event) => this.handleExpirationDateInputFormat(event));\r\n\r\n\t\t$parent.find(\"input[data-component='creditCardVerificationNumber']\").change((event) => this.handleVerificationNumberInputFormat(event));\r\n\t\t$parent.find(\"input[data-component='creditCardVerificationNumber']\").keyup((event) => this.handleVerificationNumberInputFormat(event));\r\n\t},\r\n\r\n\tvalidateExpirationDate: function($expirationDate) {\r\n\t\tvar errorMessages = [];\r\n\r\n\t\tvar expirationDateString = $expirationDate.val();\r\n\r\n\t\tif (expirationDateString && expirationDateString.length === 5) {\r\n\t\t\tvar monthString = expirationDateString.slice(0, 2);\r\n\t\t\tvar monthNumber = Number(monthString);\r\n\t\t\tif (!monthNumber || monthNumber < 1 || monthNumber > 12) {\r\n\t\t\t\tvar expirationMonthMessage = this._getStore().getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.CREDIT_CARD_MESSAGES,\r\n\t\t\t\t\tWizardConstants.CREDIT_CARD_MESSAGE_FIELDS.EXPIRATION_MONTH_INVALID\r\n\t\t\t\t);\r\n\r\n\t\t\t\terrorMessages.push(expirationMonthMessage);\r\n\t\t\t}\r\n\r\n\t\t\tvar currentYearString = (new Date()).getFullYear().toString().slice(-2);\r\n\t\t\tvar currentYearNumber = Number(currentYearString);\r\n\t\t\tvar yearString = expirationDateString.slice(3);\r\n\t\t\tvar yearNumber = Number(yearString);\r\n\t\t\tif (!yearNumber || yearNumber < currentYearNumber || yearNumber > 99) {\r\n\t\t\t\tvar expirationYearMessage = this._getStore().getWizardValue(\r\n\t\t\t\t\tWizardConstants.WIZARDS.CREDIT_CARD_MESSAGES,\r\n\t\t\t\t\tWizardConstants.CREDIT_CARD_MESSAGE_FIELDS.EXPIRATION_YEAR_INVALID\r\n\t\t\t\t);\r\n\r\n\t\t\t\terrorMessages.push(expirationYearMessage);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar expirationDateIncompleteMessage = this._getStore().getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.CREDIT_CARD_MESSAGES,\r\n\t\t\t\tWizardConstants.CREDIT_CARD_MESSAGE_FIELDS.EXPIRATION_DATE_INCOMPLETE\r\n\t\t\t);\r\n\r\n\t\t\terrorMessages.push(expirationDateIncompleteMessage);\r\n\t\t}\r\n\r\n\t\treturn { isValid : !errorMessages.length, errorMessages : errorMessages };\r\n\t},\r\n\r\n\tvalidateVerificationNumber: function($verificationNumber) {\r\n\t\tvar errorMessages = [];\r\n\r\n\t\tvar verificationNumberString = $verificationNumber.val();\r\n\r\n\t\tif (!verificationNumberString || verificationNumberString.length < 3 || verificationNumberString.length > 4) {\r\n\t\t\tvar verificationNumberIncompleteMessage = this._getStore().getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.CREDIT_CARD_MESSAGES,\r\n\t\t\t\tWizardConstants.CREDIT_CARD_MESSAGE_FIELDS.VERIFICATION_NUMBER_INVALID\r\n\t\t\t);\r\n\r\n\t\t\terrorMessages.push(verificationNumberIncompleteMessage);\r\n\t\t}\r\n\r\n\t\treturn { isValid : !errorMessages.length, errorMessages : errorMessages };\r\n\t}\r\n};\r\n\r\nmodule.exports = CreditCardHelper;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\n\r\nclass Frequency extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar selectedFrequency = null;\r\n\t\tvar tangible = props[props.tangibleType];\r\n\t\tvar frequencies = props.frequencies;\r\n\t\tvar wizardFrequencies = { allowedFrequencies: [] };\r\n\t\tvar frequency;\r\n\t\tvar tangibleCode;\r\n\t\tvar allowedFrequencies = [];\r\n\t\tvar storeState = { isSponsorshipAvailable: true };\r\n\r\n\t\t// If we are on the client side\r\n\t\tif (typeof (window) !== \"undefined\") {\r\n\t\t\tstoreState = props.tangibleStore.getState();\r\n\r\n\t\t\t// Ideally we would get the tangible from the store, but that does not exist on the server\r\n\t\t\t// We optimistically render on the server with the props.tangible (the @Model) and on the\r\n\t\t\t// client, we will get the tangible from the store\r\n\t\t\ttangible = storeState[props.tangibleType] || props[props.tangibleType] || {};\r\n\t\t\ttangible = JSON.parse(JSON.stringify(tangible)); // clone the tangible to avoid reference\r\n\t\t\tfrequencies = props.frequencies ? props.frequencies.slice(0) : []; // clone the array to avoid reference\r\n\r\n\t\t\t// We only want to set the initial state from the store if we're not in a repeater.\r\n\t\t\tif (!props.context) {\r\n\t\t\t\tselectedFrequency = storeState.selectedFrequency;\r\n\t\t\t}\r\n\r\n\t\t\twizardFrequencies = storeState.wizardFrequencies;\r\n\t\t\tif (wizardFrequencies) {\r\n\t\t\t\tallowedFrequencies = wizardFrequencies.allowedFrequencies || [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (allowedFrequencies && frequencies) {\r\n\t\t\tfor (var i = frequencies.length - 1; i >= 0; --i) {\r\n\t\t\t\tfrequency = frequencies[i];\r\n\t\t\t\tvar allowedIndex = allowedFrequencies.indexOf(frequency.value);\r\n\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t// Frequency is not allowed\r\n\t\t\t\t\tfrequencies.splice(i, 1);\r\n\t\t\t\t} else if (frequency.useDefaultDescription) {\r\n\t\t\t\t\t// Frequency should use default description\r\n\t\t\t\t\tfrequency.description = wizardFrequencies[`${frequency.value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfrequencies = [];\r\n\t\t}\r\n\r\n\t\tif (!selectedFrequency) {\r\n\t\t\tif (frequencies && frequencies.length > 0) {\r\n\t\t\t\tselectedFrequency = frequencies[0].value;\r\n\t\t\t} else {\r\n\t\t\t\tselectedFrequency = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (props.context) {\r\n\t\t\tif (props[props.tangibleType]) {\r\n\t\t\t\ttangibleCode = props[props.tangibleType].tangibleCode;\r\n\t\t\t} else if (props.isDesignMode) {\r\n\t\t\t\ttangibleCode = tangible[props.displayCodeProperty];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedFrequency,\r\n\t\t\ttangible,\r\n\t\t\ttangibleCode,\r\n\t\t\tfrequencies,\r\n\t\t\tisSponsorshipAvailable: storeState.isSponsorshipAvailable\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleFrequencySelected(event) {\r\n\t\tvar selectedFrequency = event.currentTarget.value;\r\n\r\n\t\tthis._setFrequency(selectedFrequency);\r\n\t}\r\n\r\n\t_setFrequency(selectedFrequency) {\r\n\t\tvar { tangibleType } = this.props;\r\n\r\n\t\t// if we're handling a pledge frequency change, we need to send along the associated project code as well.\r\n\t\tif (tangibleType === \"pledge\")\r\n\t\t{\r\n\t\t\tvar pledge = this.props[tangibleType];\r\n\t\t\tvar projectCode = this.props.isDesignMode ? \"PROJ001\" : pledge ? pledge.displayObject.value[\"DefaultProjectCode\"] : null;\r\n\t\t\tvar isSecure = this.props.tangibleActions.getIsSecure();\r\n\t\t\t\r\n\t\t\tif ((pledge && projectCode) || isSecure) {\r\n\t\t\t\tthis.props.tangibleActions.setFrequency(selectedFrequency, this.state.tangibleCode, projectCode, this.state.context);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.props.tangibleActions.setFrequency(selectedFrequency, this.state.tangibleCode, this.state.context);\r\n\t\t}\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.props.tangibleStore.getState());\r\n\t}\r\n\r\n\tcomponentWillMount() {\r\n\t\t//Setting an instance Id, mainly for when we are in the searchResults and this component is in the grid and list view. We need the names for the radio button groups to be unique.\r\n\t\tthis.instanceId = HtmlHelper.getId($(\"body\"));\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this.props.thisArg || this);\r\n\t\t}\r\n\t\tvar context = this.props.context;\r\n\t\tvar contextId = \"\";\r\n\t\tif (context) {\r\n\t\t\tswitch (context) {\r\n\t\t\t\tcase \"tangible\":\r\n\t\t\t\t\tcontext = \"category\";\r\n\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=category]\").attr(\"id\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"result\":\r\n\t\t\t\t\tcontext = \"search\";\r\n\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=searchResults]\").attr(\"id\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcontext += `_${contextId}`;\r\n\t\t}\r\n\r\n\t\tvar selectedFrequency = this.state.selectedFrequency;\r\n\t\tif (!context) {\r\n\t\t\t// Check sessionStorage for cachedValues\r\n\t\t\tvar cachedValues = {};\r\n\t\t\tif (this.props.tangibleActions.getCachedValues) {\r\n\t\t\t\tcachedValues = this.props.tangibleActions.getCachedValues() || {};\r\n\t\t\t}\r\n\r\n\t\t\tif (cachedValues.frequency && this.state.frequencies.some(frequency => frequency.value === cachedValues.frequency)) {\r\n\t\t\t\tselectedFrequency = cachedValues.frequency;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setState({ context }, () => {\r\n\t\t// At this point, selectedFrequency has been set by the component\r\n\t\t\tthis._setFrequency(selectedFrequency);\r\n\t\t});\r\n\t\tthis.props.tangibleStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.tangibleStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this.props.thisArg || this);\r\n\t\t\tthis.props.tangibleActions.setFrequency(null, this.state.tangibleCode, this.state.context);\r\n\t\t}\r\n\t}\r\n\r\n\trenderButton(selectedFrequency) {\r\n\t\tvar context = this.state.context;\r\n\t\tvar name = `${context ? `frequency_${context}_${this.state.tangibleCode}` : \"frequency\"}_${this.instanceId}`;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"frequencies\">\r\n\t\t\t\t{this.state.frequencies.map(frequency => {\r\n\t\t\t\t\tvar isSelected = selectedFrequency === frequency.value;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"frequency\", \"radio-button\", this.props.childClass, { selected: isSelected }])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={frequency.value}\r\n\t\t\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}ButtonFrequency.button`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={frequency.value} onChange={this.handleFrequencySelected.bind(this)} checked={isSelected} />\r\n\t\t\t\t\t\t\t<span>{frequency.description}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderRadio(selectedFrequency) {\r\n\t\tvar context = this.state.context;\r\n\t\tvar name = `${context ? `frequency_${context}_${this.state.tangibleCode}` : \"frequency\"}_${this.instanceId}`;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"frequencies\">\r\n\t\t\t\t{this.state.frequencies.map((frequency) => {\r\n\t\t\t\t\tvar isSelected = selectedFrequency === frequency.value;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"frequency\", this.props.childClass, { selected: isSelected }])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={frequency.value}\r\n\t\t\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}RadioFrequency.radio`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={frequency.value} onChange={this.handleFrequencySelected.bind(this)} checked={isSelected} />\r\n\t\t\t\t\t\t\t<span data-component={`${this.props.beginningComponentName}RadioFrequency.radio.label`}>{frequency.description}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderDropdown(selectedFrequency) {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<select\r\n\t\t\t\t\t\tclassName={classNames([\"donation-frequencies\", this.props.childClass])}\r\n\t\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\tselected={selectedFrequency}\r\n\t\t\t\t\t\tonChange={this.handleFrequencySelected.bind(this)}\r\n\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}SelectFrequency.select`}\r\n\t\t\t\t\t\tvalue={selectedFrequency || \"\"}\r\n\t\t\t\t>\r\n\t\t\t\t\t{this.state.frequencies.map((frequency) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className=\"frequency\" key={frequency.value} value={frequency.value}>\r\n\t\t\t\t\t\t\t\t{frequency.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderContainer() {\r\n\t\tvar selectedFrequency;\r\n\t\tif (this.state.context) {\r\n\t\t\tselectedFrequency = this.props.tangibleStore.getSelectedFrequency(this.state.context, this.state.tangibleCode);\r\n\t\t} else {\r\n\t\t\tselectedFrequency = this.state.selectedFrequency;\r\n\t\t}\r\n\r\n\t\tswitch (this.props.type) {\r\n\t\t\tcase \"button\":\r\n\t\t\t\treturn this.renderButton(selectedFrequency);\r\n\t\t\tcase \"radio\":\r\n\t\t\t\treturn this.renderRadio(selectedFrequency);\r\n\t\t\tcase \"dropdown\":\r\n\t\t\t\treturn this.renderDropdown(selectedFrequency);\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type for Frequency\");\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar frequencies = this.state.frequencies;\r\n\t\tvar tangible = this.state.tangible || {};\r\n\t\tvar reactComponentName;\r\n\r\n\t\tif (tangible.PledgeType === \"CHILD\" && !this.state.isSponsorshipAvailable) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tswitch (this.props.type) {\r\n\t\t\tcase \"button\":\r\n\t\t\t\treactComponentName = \"ButtonFrequency\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"radio\":\r\n\t\t\t\treactComponentName = \"RadioFrequency\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"dropdown\":\r\n\t\t\t\treactComponentName = \"SelectFrequency\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type for Frequency\");\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t\treactComponentName = this.props.beginningComponentName + reactComponentName;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName=\"frequency\"\r\n\t\t\t\tdata-react-component-name={reactComponentName}\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t\ttabIndex={this.props.isDesignMode ? -1 : undefined}\r\n\t\t\t>\r\n\t\t\t\t{frequencies && frequencies.length > 0 ?\r\n\t\t\t\t\tthis.renderContainer()\r\n\t\t\t\t:\r\n\t\t\t\t\t<div className=\"collapsedComponentPlaceholder\">{reactComponentName}</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nFrequency.defaultProps = {\r\n\tbeginningComponentName: \"\",\r\n\ttype: \"button\",\r\n\ttheme: \"0\",\r\n\tisCustomTheme: false\r\n};\r\n\r\nFrequency.propTypes = {\r\n\tisDesignMode: PropTypes.bool, //can do .isRequired\r\n\ttangible: PropTypes.object,\r\n\tfrequencies: PropTypes.array,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]),\r\n\tcontext: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\r\n\ttangibleActions: PropTypes.object,\r\n\ttangibleStore: PropTypes.object,\r\n\tthisArg: PropTypes.object,\r\n\ttangibleType: PropTypes.string,\r\n\tdisplayCodeProperty: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string,\r\n\tbeginningComponentName: PropTypes.string\r\n};\r\n\r\nmodule.exports = Frequency;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"Paging\");\r\n\r\nvar PartialResponseHelper = require(\"../shared/PartialResponseHelper\");\r\n\r\nclass Paging extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar currentPageNumber = props.currentPageNumber;\r\n\t\tvar pageSize = props.pageSize || 10;\r\n\t\tvar totalCount = props.totalCount;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tcurrentPageNumber = 10;\r\n\t\t\ttotalCount = 20 * pageSize;\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tcurrentPageNumber,\r\n\t\t\tpageSize,\r\n\t\t\ttotalCount\r\n\t\t};\r\n\t}\r\n\r\n\tgetLastPageNumber() {\r\n\t\treturn Math.ceil(this.state.totalCount / this.state.pageSize);\r\n\t}\r\n\r\n\tsetupRelatedComponents() {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tvar lastPage = this.getLastPageNumber();\r\n\r\n\t\tvar $paging = $(ReactDOM.findDOMNode(this)).parent(); // The parent is the mount point\r\n\t\tvar $previousButton = $paging.siblings(`[data-component=\"pagingControls.previousPage\"]`);\r\n\t\tvar $nextButton = $paging.siblings(`[data-component=\"pagingControls.nextPage\"]`);\r\n\r\n\t\t$previousButton.prop(\"onclick\", null).off(\"click\");\r\n\t\tif (currentPage > 1) {\r\n\t\t\t$previousButton.removeClass(\"disabled\");\r\n\t\t\t$previousButton.click(this.handlePageChange.bind(this, currentPage - 1));\r\n\t\t} else {\r\n\t\t\t$previousButton.addClass(\"disabled\");\r\n\t\t}\r\n\r\n\t\t$nextButton.prop(\"onclick\", null).off(\"click\");\r\n\t\tif (currentPage < lastPage) {\r\n\t\t\t$nextButton.removeClass(\"disabled\");\r\n\t\t\t$nextButton.click(this.handlePageChange.bind(this, currentPage + 1));\r\n\t\t} else {\r\n\t\t\t$nextButton.addClass(\"disabled\");\r\n\t\t}\r\n\t}\r\n\r\n\thandlePageChange(pageNumber, event) {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tif (currentPage === pageNumber) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tif (event && !event.ctrlKey && !event.metaKey) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.setState({ currentPageNumber: pageNumber }, this.setupRelatedComponents);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// The parent is the mount point\r\n\t\tvar $mountPoint = $(ReactDOM.findDOMNode(this)).parent();\r\n\t\tvar $parentComponent = $mountPoint.closest(\"[data-component='pagingControls']\").parents(\"[data-component]:not([data-component*='.'])\").first();\r\n\r\n\t\tvar layoutId = this.props.layoutId;\r\n\t\tvar url = this.props.url + \"?\";\r\n\t\tvar id = $parentComponent.attr(\"id\");\r\n\t\tvar limit = this.props.pageSize;\r\n\r\n\t\tvar params = [];\r\n\t\tif (layoutId) {\r\n\t\t\tparams.push(`layoutId=${layoutId}`);\r\n\t\t}\r\n\t\tparams.push(`id=${id}`);\r\n\t\tparams.push(`offset=${limit * (pageNumber - 1)}`);\r\n\t\tif (params.length > 0) {\r\n\t\t\turl += params.join(\"&\");\r\n\t\t}\r\n\r\n\t\t$parentComponent.load(url, (response, status) => {\r\n\t\t\tif (status !== \"error\" || !PartialResponseHelper.handleErrorResponse(response)) {\r\n\t\t\t\tReactDOM.unmountComponentAtNode($mountPoint[0]);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.setupRelatedComponents();\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tvar numberPagesToShow = this.props.numberPagesToShow;\r\n\t\tvar lastPage = this.getLastPageNumber();\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tnumberPagesToShow = numberPagesToShow || 3;\r\n\t\t}\r\n\r\n\t\tvar pagesToShow = [];\r\n\t\tif (lastPage < numberPagesToShow) {\r\n\t\t\tpagesToShow = new Array(lastPage).fill().map((e, i) => i + 1);\r\n\t\t} else if (currentPage < numberPagesToShow) {\r\n\t\t\tpagesToShow = new Array(numberPagesToShow).fill().map((e, i) => i + 1);\r\n\t\t} else {\r\n\t\t\tvar start = currentPage - Math.floor((numberPagesToShow - 1) / 2);\r\n\t\t\tif (start + numberPagesToShow > lastPage) {\r\n\t\t\t\tstart = lastPage - numberPagesToShow + 1;\r\n\t\t\t}\r\n\t\t\tpagesToShow = new Array(numberPagesToShow).fill().map((e, i) => i + start);\r\n\t\t}\r\n\r\n\t\tvar includeFirstPageNumber = this.props.includeFirstPageNumber && pagesToShow.indexOf(1) === -1;\r\n\t\tvar showStartEllipses = includeFirstPageNumber && pagesToShow.indexOf(2) === -1;\r\n\t\tvar includeLastPageNumber = this.props.includeLastPageNumber && pagesToShow.indexOf(lastPage) === -1;\r\n\t\tvar showEndEllipses = includeLastPageNumber && pagesToShow.indexOf(lastPage - 1) === -1;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName=\"paging\"\r\n\t\t\t\tdata-react-component-name=\"Paging\"\r\n\t\t\t\tdata-react-component-category=\"PagingComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t{includeFirstPageNumber &&\r\n\t\t\t\t\t<span className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === 1 })} data-component=\"Paging.page\" onClick={this.handlePageChange.bind(this, 1)}>\r\n\t\t\t\t\t\t{1}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{showStartEllipses &&\r\n\t\t\t\t\t<span className=\"paging-item ellipses\" data-component=\"Paging.pageEllipses\">\r\n\t\t\t\t\t\t...\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{pagesToShow.map((pageNumber) =>\r\n\t\t\t\t\t<span key={pageNumber} className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === pageNumber })} data-component=\"Paging.page\" onClick={this.handlePageChange.bind(this, pageNumber)}>\r\n\t\t\t\t\t\t{pageNumber}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t)}\r\n\t\t\t\t{showEndEllipses &&\r\n\t\t\t\t\t<span className=\"paging-item ellipses\" data-component=\"Paging.pageEllipses\">\r\n\t\t\t\t\t\t...\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{includeLastPageNumber &&\r\n\t\t\t\t\t<span className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === lastPage })} data-component=\"Paging.page\" onClick={this.handlePageChange.bind(this, lastPage)}>\r\n\t\t\t\t\t\t{lastPage}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nPaging.propTypes = {\r\n\tcurrentPageNumber: PropTypes.number,\r\n\tdataChildOf: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tincludeFirstPageNumber: PropTypes.bool,\r\n\tincludeLastPageNumber: PropTypes.bool,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\tlayoutId: PropTypes.number,\r\n\tnumberPagesToShow: PropTypes.number,\r\n\tpageSize: PropTypes.number,\r\n\ttheme: PropTypes.string,\r\n\ttotalCount: PropTypes.number,\r\n\turl: PropTypes.string\r\n};\r\n\r\nmodule.exports = Paging;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"PaymentHelper\");\r\n\r\nvar BillingAddressHelper = require(\"../accountComponents/BillingAddressHelper\");\r\n\r\nvar PlaidHelper = require(\"../checkoutComponents/PlaidHelper\");\r\n\r\nvar BluefinHelper = require(\"./BluefinHelper\");\r\nvar BraintreeHelper = require(\"./BraintreeHelper\");\r\nvar CardConnectHelper = require(\"./CardConnectHelper\");\r\nvar CreditCardHelper = require(\"./CreditCardHelper\");\r\nvar TokenExHelper = require(\"./TokenExHelper\");\r\nvar TsysTsepHelper = require(\"./TsysTsepHelper\");\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar setProperty = (model, propertyName, propertyValue) => {\r\n\tvar propertyParts = propertyName.split(\".\");\r\n\tvar ref = model;\r\n\tpropertyParts.forEach(function (propertyPart, index) {\r\n\t\tif (index < propertyParts.length - 1) {\r\n\t\t\tif (!ref[propertyPart]) {\r\n\t\t\t\tref[propertyPart] = {};\r\n\t\t\t}\r\n\t\t\tref = ref[propertyPart];\r\n\t\t} else {\r\n\t\t\tref[propertyPart] = propertyValue;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n//Sometime in the future, we need to figure out how to combine BluefinHelper and DDCPaymentHelper so that when we add additional ones, we can just update the Payment Helper class instead of every place it is used\r\nvar PaymentHelper = {\r\n\t//parentSelector can be a jQuery object or jQuery selector\r\n\tclearPaymentData(parentSelector) {\r\n\t\tif (BluefinHelper.getBluefinIframeId(parentSelector)) {\r\n\t\t\tBluefinHelper.clearHostedIFrame(parentSelector);\r\n\t\t} else {\r\n\t\t\tLoggerInstance.debug(\"clearPaymentData() not implemented for this payment type.\");\r\n\t\t}\r\n\t},\r\n\r\n\tinitializePaymentComponent($parent) {\r\n\t\tif (BraintreeHelper.isBraintreeCreditCard($parent)) {\r\n\t\t\tBraintreeHelper.initializeBraintree($parent);\r\n\t\t}\r\n\r\n\t\tif (CardConnectHelper.isCardConnect($parent)) {\r\n\t\t\tCardConnectHelper.initializeCardConnect($parent);\r\n\t\t}\r\n\r\n\t\tif (TokenExHelper.isTokenEx($parent)) {\r\n\t\t\tTokenExHelper.initializeTokenEx($parent);\r\n\t\t}\r\n\r\n\t\tif (TsysTsepHelper.isTsysTsep($parent)) {\r\n\t\t\tTsysTsepHelper.initializeTsysTsep($parent);\r\n\t\t}\r\n\r\n\t\tthis.initializeEftPayment($parent);\r\n\t\tCreditCardHelper.initializeListeners($parent);\r\n\t\tPlaidHelper.initialize($parent);\r\n\t},\r\n\r\n\tinitializeEftPayment($parent) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\r\n\t\tthis.disallowSpaceEntry($parent.find(\"[data-component='eftPayment.accountNumber']\"));\r\n\t\tthis.disallowSpaceEntry($parent.find(\"[data-component='eftPayment.routingNumber']\"));\r\n\r\n\t\tvar $eftAccountTypeSelectorComponent = $parent.find(\"[data-component='eftAccountTypeSelector']\");\r\n\t\tvar defaultEftAccountTypeValue = ($eftAccountTypeSelectorComponent.attr(\"data-default-eft-account-type\") || \"CHECKING\").toUpperCase();\r\n\t\t$eftAccountTypeSelectorComponent.find(`input[type=radio][value=${defaultEftAccountTypeValue}]`).prop(\"checked\", true)\r\n\t},\r\n\r\n\tdisallowSpaceEntry($field) {\r\n\t\t$field.off(\"keydown.initializeEft\");\r\n\t\t$field.on(\"keydown.initializeEft\", (event) => {\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\t// Do not allow spaces in the field\r\n\t\t\t\tcase Constants.KEYS.SPACE:\r\n\t\t\t\t\treturn false\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$field.off(\"change.initializeEft\");\r\n\t\t$field.on(\"change.initializeEft\", function(){\r\n\t\t\t$(this).val($(this).val().replace(/\\s/g, ''));\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeSaveForLaterCheckbox() {\r\n\t\t// Ensuring that, if the paymentType.savePayment.input should be checked by default, that it is\r\n\t\t$(\"[data-component='paymentType.savePayment']\").each((index, element) => {\r\n\t\t\tvar $savePayment = $(element);\r\n\t\t\tvar $savedPaymentInput = $savePayment.find(\"[data-component='paymentType.savePayment.input']\");\r\n\r\n\t\t\tvar defaultCheckedValue = !!$savePayment.attr(\"data-checked-by-default\");\r\n\r\n\t\t\tif ($savedPaymentInput.prop(\"checked\") !== defaultCheckedValue) {\r\n\t\t\t\t$savedPaymentInput.prop(\"checked\", defaultCheckedValue);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t//parentSelector can be a jQuery object or jQuery selector\r\n\tgetPaymentData(wizardCompanyCreditCardErrorMessages, wizardCompanyEftErrorMessages, successCallback, errorCallback, parentSelector) {\r\n\t\tvar paymentInformation;\r\n\r\n\t\t//Determine which payment type is being used by checking for visibility (extra space in selectors is intentional)\r\n\t\tparentSelector = parentSelector || \"body\";\r\n\t\tvar visibleCCSelector = \"[data-payment-type='Credit Card'] :visible\";\r\n\t\tvar usingCreditCard = $(parentSelector).find(visibleCCSelector).length > 0;\r\n\t\tvar visibleEFTSelector = \"[data-payment-type='EFT'] :visible\";\r\n\t\tvar usingEFT = $(parentSelector).find(visibleEFTSelector).length > 0;\r\n\r\n\t\tif (BluefinHelper.getBluefinIframeId(parentSelector)) {\r\n\t\t\tBluefinHelper.getBluefinHostedPageToken(parentSelector, wizardCompanyCreditCardErrorMessages, wizardCompanyEftErrorMessages, (hostedPageTokenObject) => {\r\n\t\t\t\t//Need to check to see if there are any other fields that need to be added to the payment information.\r\n\t\t\t\tvar additionalPaymentData = this._getPaymentFormData(parentSelector);\r\n\t\t\t\tif (Object.keys(additionalPaymentData).length) {\r\n\t\t\t\t\thostedPageTokenObject = Object.assign({}, hostedPageTokenObject, additionalPaymentData);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsuccessCallback(hostedPageTokenObject);\r\n\t\t\t}, errorCallback);\r\n\t\t\treturn;\r\n\t\t} else if (usingCreditCard && CardConnectHelper.isCardConnect(parentSelector)) {\r\n\t\t\tvar $element = $(parentSelector).find(\"[data-component='cardConnectCardNumber']\");\r\n\t\t\tvar creditCardNumberToken = CardConnectHelper.getCardConnectToken($element);\r\n\t\t\tif (creditCardNumberToken) {\r\n\t\t\t\tpaymentInformation = this._getPaymentFormData(parentSelector, visibleCCSelector);\r\n\t\t\t\tpaymentInformation.hostedPageToken = creditCardNumberToken;\r\n\t\t\t}\r\n\t\t} else if (usingCreditCard && TokenExHelper.isTokenEx(parentSelector)) {\r\n\t\t\tvar $tokenExElement = $(parentSelector).find(\"[data-component='tokenExCardNumber']\");\r\n\t\t\tvar tokenExTokenData = TokenExHelper.getTokenExTokenData($tokenExElement);\r\n\t\t\tif (Object.keys(tokenExTokenData || {}).length) {\r\n\t\t\t\tpaymentInformation = this._getPaymentFormData(parentSelector, visibleCCSelector);\r\n\t\t\t\tpaymentInformation.cardType = tokenExTokenData.cardType;\r\n\t\t\t\tpaymentInformation.last4Digits = tokenExTokenData.lastFour;\r\n\t\t\t\tpaymentInformation.hostedPageToken = `|TV${tokenExTokenData.token}`;\r\n\t\t\t}\r\n\t\t} else if (usingCreditCard && TsysTsepHelper.isTsysTsep(parentSelector)) {\r\n\t\t\tvar $element = $(parentSelector).find(\"[data-component='tsysTsepCreditCardPayment']\");\r\n\t\t\tvar result = TsysTsepHelper.getTsysTsepResult($element);\r\n\t\t\tif (result) {\r\n\t\t\t\tpaymentInformation = this._getPaymentFormData(parentSelector, visibleCCSelector);\r\n\r\n\t\t\t\tpaymentInformation.hostedPageToken = result.tsepToken;\r\n\t\t\t\tpaymentInformation.cardType = TsysTsepHelper.getCardType(result.cardType);\r\n\t\t\t\tpaymentInformation.last4Digits = result.cardNumber.value;\r\n\t\t\t\tpaymentInformation.expirationDate = result.expirationDate.value;\r\n\t\t\t\tpaymentInformation.cvv = result.verificationNumber.value;\r\n\t\t\t\tpaymentInformation.transactionId = result.transactionId;\r\n\t\t\t}\r\n\t\t} else if (usingCreditCard && BraintreeHelper.isBraintreeCreditCard(parentSelector)) {\r\n\t\t\tparentSelector = parentSelector || \"body\";\r\n\t\t\tvar $element = $(parentSelector).find(\"[data-component='braintreeCreditCardPayment']\");\r\n\r\n\t\t\tpaymentInformation = this._getPaymentFormData(parentSelector, visibleCCSelector);\r\n\r\n\t\t\tBraintreeHelper.getBraintreeTokenData($element, paymentInformation)\r\n\t\t\t\t.done(result => {\r\n\t\t\t\t\tif (result) {\r\n\t\t\t\t\t\tpaymentInformation.hostedPageToken = result.nonce;\r\n\t\t\t\t\t\tpaymentInformation.cardType = result.details.cardType;\r\n\t\t\t\t\t\tpaymentInformation.last4Digits = result.details.lastFour;\r\n\t\t\t\t\t\tpaymentInformation.expirationMonth = result.details.expirationMonth;\r\n\t\t\t\t\t\tpaymentInformation.expirationYear = result.details.expirationYear;\r\n\t\t\t\t\t\tpaymentInformation.cardNumber = paymentInformation.cardType + \"-\" + paymentInformation.last4Digits;\r\n\r\n\t\t\t\t\t\tsuccessCallback(paymentInformation);\r\n\t\t\t\t\t}\r\n\t\t\t\t}).fail(() => {\r\n\t\t\t\t\tvar hasAlerted = true;\r\n\t\t\t\t\terrorCallback(hasAlerted);\r\n\t\t\t\t});\r\n\t\t\treturn;\r\n\t\t} else if (usingEFT && BraintreeHelper.isBraintreeEft(parentSelector)) {\r\n\t\t\tpaymentInformation = this._getPaymentFormData(parentSelector);\r\n\t\t\tBraintreeHelper.getEftNonce(parentSelector, paymentInformation, wizardCompanyEftErrorMessages)\r\n\t\t\t\t.done(() => {\r\n\t\t\t\t\tif (!Object.keys(paymentInformation || {}).length) {\r\n\t\t\t\t\t\terrorCallback();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdelete paymentInformation.accountNumber;\r\n\t\t\t\t\tdelete paymentInformation.routingNumber;\r\n\r\n\t\t\t\t\tsuccessCallback(paymentInformation);\r\n\t\t\t\t})\r\n\t\t\t\t.fail((err) => {\r\n\t\t\t\t\tvar hasAlerted = true;\r\n\t\t\t\t\terrorCallback(hasAlerted);\r\n\t\t\t\t});\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tpaymentInformation = this._getPaymentFormData(parentSelector);\r\n\t\t}\r\n\r\n\t\tif (!Object.keys(paymentInformation || {}).length) {\r\n\t\t\terrorCallback();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsuccessCallback(paymentInformation);\r\n\t},\r\n\r\n\tsecurePayment(paymentInformation) {\r\n\t\tvar deferred = $.Deferred();\r\n\r\n\t\tvar isSavedPayment = paymentInformation && paymentInformation.savedPaymentId;\r\n\t\tvar isZeroDollarTransaction = window.CheckoutActions && (window.CheckoutActions.getTotalAmount() === 0);\r\n\r\n\t\tif (isSavedPayment && !isZeroDollarTransaction && paymentInformation.type === \"CC\" && BraintreeHelper.isBraintreeCreditCard()) {\r\n\t\t\tBraintreeHelper.getSecuredSavedPayment(deferred, paymentInformation)\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t//parentSelector and selector can be a jQuery object or jQuery selector\r\n\t_getPaymentFormData(parentSelector, selector) {\r\n\t\tparentSelector = parentSelector || \"body\";\r\n\r\n\t\tvar $paymentForm = $(parentSelector).find(selector || \"[data-payment-type='Credit Card'] form:visible,[data-payment-type='EFT'] form:visible\");\r\n\r\n\t\tvar paymentInformation = $paymentForm.serializeArray().reduce((obj, item) => {\r\n\t\t\tsetProperty(obj, item.name, item.value);\r\n\t\t\treturn obj;\r\n\t\t}, {});\r\n\r\n\t\tif ($paymentForm.closest(\"[data-payment-type='Credit Card']\").length) {\r\n\t\t\tpaymentInformation.type = \"CC\";\r\n\t\t} else if ($paymentForm.closest(\"[data-payment-type='EFT']\").length) {\r\n\t\t\tpaymentInformation.type = \"EFT\";\r\n\t\t}\r\n\r\n\t\tvar $paymentTypeComponent = $(parentSelector).find(\"[data-component='paymentType']\");\r\n\t\tpaymentInformation.billingAddressInformation = BillingAddressHelper.getBillingAddressInformation($paymentTypeComponent);\r\n\r\n\t\treturn paymentInformation;\r\n\t}\r\n};\r\n\r\nmodule.exports = PaymentHelper;\r\n","\"use strict\";\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\n\r\nvar ShipToAccountHelper = {\r\n\tinitialize: function () {\r\n\t\tvar account = this.getShippingAccountInfo();\r\n\r\n\t\tif (account && account.otherAddresses) {\r\n\t\t\t//Default if other address is the default shipping address\r\n\t\t\tvar defaultShippingAddress = account.otherAddresses.find(address => address.isDefaultShipping);\r\n\r\n\t\t\tif (defaultShippingAddress) {\r\n\t\t\t\t//Click the radio button for other address\r\n\t\t\t\tvar radioButton = $(\"[id='shipToAddressSelector_otherAddress']\");\r\n\t\t\t\t$(radioButton).prop(\"checked\", true);\r\n\r\n\t\t\t\t//Show the other addresses section\r\n\t\t\t\tvar $otherAddressesComponent = $(\"[data-component='shipToOtherAddresses']\");\r\n\t\t\t\t$otherAddressesComponent.removeClass(\"hidden\");\r\n\r\n\t\t\t\t//Find the address that matched the default\r\n\t\t\t\tvar $otherAddresses = $(\"[data-address-id]\");\r\n\t\t\t\t$otherAddresses.each((index, element) => {\r\n\t\t\t\t\tif ($(element).attr(\"data-address-id\") === defaultShippingAddress.id) {\r\n\t\t\t\t\t\t//Select the radio button\r\n\t\t\t\t\t\tvar radioButton = $(element).find(\"input\");\r\n\t\t\t\t\t\tradioButton.prop(\"checked\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tgetGiftAccountInfo: function () {\r\n\t\t// Gift account does not support demographic or media outlet so don't use AccountFormHelper.serializeDataNecessaryToCreateAnAccount\r\n\t\tvar account = AccountFormHelper.serializeAddressForm(\"[data-component='createGiftAccountForm'] form\", { shouldEncodePassword: false });\r\n\r\n\t\tif (!$.isEmptyObject(account)) {\r\n\t\t\taccount.type = (account.organizationName || account.organizationType) ? \"O\" : \"I\";\r\n\t\t\treturn account;\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\tgetAlternateShippingAddress: function () {\r\n\t\tvar $existingAddressRadio = $(\"[data-component='otherAddresses.populated.singleAddress.view'] input[type='radio'][name='otherAddressesSelector']:checked\");\r\n\t\tif ($existingAddressRadio.length) {\r\n\t\t\tvar $populatedAddress = $existingAddressRadio.closest(\"[data-component='otherAddresses.populated.singleAddress']\");\r\n\t\t\tvar addressId = $populatedAddress.attr(\"data-address-id\");\r\n\t\t\t//Might need to come up with a different way to set the shipping address so we do not have to rely upon the whole address being displayed\r\n\t\t\t//\tOr, perhaps better, we allow the ID to be passed.\r\n\t\t\treturn {\r\n\t\t\t\taddress: {\r\n\t\t\t\t\tid: addressId\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tvar $newAddressRadio = $(\"[data-component='otherAddresses.addForm'] input[type='radio'][name='otherAddressesSelector']:checked\");\r\n\t\tif ($newAddressRadio.length) {\r\n\t\t\tvar address = AccountFormHelper.serializeAddressForm(\"[data-component='otherAddresses.addForm'] form\", { shouldEncodePassword: false });\r\n\t\t\treturn address;\r\n\t\t}\r\n\r\n\t\treturn {};\r\n\t},\r\n\r\n\tgetShippingAddress: function () {\r\n\t\treturn (this.getShippingAccountInfo() || {}).address || {};\r\n\t},\r\n\r\n\tgetShippingAccountInfo: function (loggedInAccount) {\r\n\t\tvar account = {};\r\n\r\n\t\tvar shipAddressType = this.getShippingAddressType();\r\n\t\tswitch (shipAddressType) {\r\n\t\t\tcase \"primary\":\r\n\t\t\tcase \"other\":\r\n\t\t\t\taccount = loggedInAccount;\r\n\t\t\t\tif ($.isEmptyObject(account)) {\r\n\t\t\t\t\taccount = (window.AccountActions && window.AccountActions.getLoggedInAccount()) || {}; // We use window.AccountActions here to prevent a circular dependency.\r\n\r\n\t\t\t\t\tif ($.isEmptyObject(account)) {\r\n\t\t\t\t\t\taccount = AccountFormHelper.serializeCreateAccountFormOnly(/*shouldEncodePassword*/ false) || {};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"gift\":\r\n\t\t\t\taccount = AccountFormHelper.serializeAddressForm(\"[data-component='createGiftAccountForm'] form\", { shouldEncodePassword: false }) || {};\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tLoggerInstance.error(`Shipping address type ${shipAddressType} is not supported.`);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif (shipAddressType === \"other\") {\r\n\t\t\taccount.address = (this.getAlternateShippingAddress() || {}).address || {};\r\n\t\t}\r\n\r\n\t\treturn account;\r\n\t},\r\n\r\n\tgetShippingAddressType: function () {\r\n\t\tvar shipAddressType =\r\n\t\t\t$(\"[data-component='shipToAddressSelector'] input[type='radio'][name='shipToAddressSelector']:checked\").val() ||\r\n\t\t\t\"primary\";\r\n\r\n\t\treturn shipAddressType;\r\n\t}\r\n};\r\n\r\nmodule.exports = ShipToAccountHelper;","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"SimpleDropdownFromWizard\");\r\n\r\nclass SimpleDropdownFromWizard extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar config = props.config || {};\r\n\t\tvar configKey = props.configKey;\r\n\t\tvar availableValues = config[configKey] || [];\r\n\t\tvar wizard;\r\n\t\tvar currentWizardValues;\r\n\r\n\t\t// If we are on the client side\r\n\t\tif (typeof (window) !== \"undefined\") {\r\n\t\t\tvar wizard = props.wizard;\r\n\t\t\tvar wizardValues = wizard[props.wizardValuesKey];\r\n\t\t\tif (wizard) {\r\n\t\t\t\tcurrentWizardValues = wizardValues || [];\r\n\t\t\t}\r\n\r\n\t\t\tif (!config[configKey] && wizardValues) {\r\n\t\t\t\t//This means we do not have the config set up yet.\r\n\t\t\t\tconfig = {};\r\n\t\t\t\tconfig[configKey] = wizardValues.map(value => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tdescription: wizard[`${value}_Description`],\r\n\t\t\t\t\t\tuseDefaultDescription: true\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tavailableValues = config[configKey] ? config[configKey].slice(0) : []; // clone the array to avoid reference\r\n\t\t}\r\n\r\n\t\tif (currentWizardValues) {\r\n\t\t\tvar availableValue;\r\n\t\t\tfor (var index = availableValues.length - 1; index >= 0; --index) {\r\n\t\t\t\tavailableValue = availableValues[index];\r\n\t\t\t\tvar allowedIndex = currentWizardValues.indexOf(availableValue.value);\r\n\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t// AvailableValue is not allowed\r\n\t\t\t\t\tavailableValues.splice(index, 1);\r\n\t\t\t\t} else if (availableValue.useDefaultDescription) {\r\n\t\t\t\t\t// AvailableValue should use default description\r\n\t\t\t\t\tavailableValue.description = wizard[`${availableValue.value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedValue: props.initialValue || \"\",\r\n\t\t\tavailableValues\r\n\t\t};\r\n\t}\r\n\r\n\thandleValueSelected(event) {\r\n\t\tif (!event || !event.currentTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedValue = event.currentTarget.value;\r\n\t\tthis.setState({ selectedValue });\r\n\r\n\t\tif (typeof this.props.onChange === \"function\") {\r\n\t\t\tthis.props.onChange(event);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillReceiveProps(nextProps) {\r\n\t\tif (this.props.initialValue != nextProps.initialValue) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tselectedValue: nextProps.initialValue\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this.props.thisArg || this);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this.props.thisArg || this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar availableValues = this.state.availableValues;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name={this.props.reactComponentName}\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tclassName={classNames(\"form-control\", this.props.selectClassName)}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tdisabled={this.props.disabled || (!this.props.isDesignMode && (!availableValues || !availableValues.length))}\r\n\t\t\t\t\tname={this.props.selectNameAttribute}\r\n\t\t\t\t\tonChange={this.handleValueSelected.bind(this)}\r\n\t\t\t\t\tdata-required={this.props.dataRequired}\r\n\t\t\t\t\trequired={this.props.required || this.props.dataRequired}\r\n\t\t\t\t\tvalue={this.state.selectedValue}\r\n\t\t\t\t>\r\n\t\t\t\t\t{(!this.props.hideEmptyOption) &&\r\n\t\t\t\t\t\t<option value=\"\"></option>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{availableValues && availableValues.map((availableValue) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className={this.props.optionsClassName} key={availableValue.value} value={availableValue.value}>\r\n\t\t\t\t\t\t\t\t{availableValue.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nSimpleDropdownFromWizard.defaultProps = {\r\n\thideEmptyOptions: false\r\n};\r\n\r\nSimpleDropdownFromWizard.propTypes = {\r\n\thideEmptyOption: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataRequired: PropTypes.bool,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\r\n\twizard: PropTypes.object,\r\n\twizardValuesKey: PropTypes.string,\r\n\tconfig: PropTypes.object,\r\n\tconfigKey: PropTypes.string,\r\n\treactComponentName: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string,\r\n\tselectClassName: PropTypes.string,\r\n\toptionsClassName: PropTypes.string,\r\n\tselectNameAttribute: PropTypes.string,\r\n\tcomponentCategory: PropTypes.string,\r\n\tthisArg: PropTypes.object\r\n};\r\n\r\nmodule.exports = SimpleDropdownFromWizard;\r\n","\"use strict\";\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar SubmitButtonHelper = {\r\n\t//Utility methods for getting post-submit action values\r\n\tgetPostSubmitActionData: function (componentSelector) {\r\n\t\tvar $submitButton = $(`${componentSelector} form [data-component='submitButton']`);\r\n\r\n\t\treturn {\r\n\t\t\tconfirmationMessage: $submitButton.attr(\"data-success-message\"),\r\n\t\t\tnavUrl: $submitButton.attr(\"data-url\"),\r\n\t\t\tpostSubmitAction: $submitButton.attr(\"data-submit-action\"),\r\n\t\t\treturnToReferrer: !!$submitButton.attr(\"data-return-to-referrer\"),\r\n\t\t\tshouldRefreshPageOnSubmit: !!$submitButton.attr(\"data-should-refresh-page-on-submit\")\r\n\t\t};\r\n\t},\r\n\r\n\tperformPostSubmitAction: function (componentSelector, options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tvar actionData = options.actionData || this.getPostSubmitActionData(componentSelector);\r\n\r\n\t\tvar onNoPostSubmitAction = options.onNoPostSubmitAction;\r\n\t\tvar onNoStayMessage = options.onNoStayMessage;\r\n\t\tvar onStayMessage = options.onStayMessage;\r\n\t\tvar shouldForceReloadOnStay = options.shouldForceReloadOnStay || actionData.shouldRefreshPageOnSubmit;\r\n\r\n\t\tif (actionData.postSubmitAction === undefined) {\r\n\t\t\t//No post action is defined\r\n\t\t\tif (typeof onNoPostSubmitAction === \"function\") {\r\n\t\t\t\tonNoPostSubmitAction();\r\n\t\t\t}\r\n\r\n\t\t\tif (shouldForceReloadOnStay) {\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t} else {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}\r\n\t\t} else if (actionData.postSubmitAction === \"stay\" && actionData.confirmationMessage && actionData.confirmationMessage.trim() !== \"\") {\r\n\t\t\tif (typeof onStayMessage === \"function\") {\r\n\t\t\t\tonStayMessage(actionData.confirmationMessage, () => {\r\n\t\t\t\t\tif (shouldForceReloadOnStay) {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t//Stay and show message\r\n\t\t\t\tBootstrapPrompt.success(actionData.confirmationMessage, () => {\r\n\t\t\t\t\tif (shouldForceReloadOnStay) {\r\n\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else if (actionData.postSubmitAction === \"stay\") {\r\n\t\t\t//Stay with no message\r\n\t\t\tif (typeof onNoStayMessage === \"function\") {\r\n\t\t\t\tonNoStayMessage();\r\n\t\t\t}\r\n\r\n\t\t\tif (shouldForceReloadOnStay) {\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t} else {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}\r\n\t\t} else if (actionData.postSubmitAction === \"goToPage\" || actionData.postSubmitAction === \"goToUrl\") {\r\n\t\t\t//Go to Page or Url, leave Spinner in place until page refreshes.\r\n\t\t\twindow.location = actionData.navUrl;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = SubmitButtonHelper;","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SuggestedDonationHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\n\r\nmodule.exports = {\r\n\t/**\r\n\t * Logic Functionality\r\n\t **/\r\n\tinitializeDonationAmount(checkoutDispatcher, component, productCode, context, suggestedDonationAmount) {\r\n\t\tvar $component = $(component);\r\n\t\t$component.attr(\"data-show-decimals\", \"\");\r\n\t\tInputHelper.initializeAmountInput(\r\n\t\t\t$component, /*$component*/\r\n\t\t\t$component, /*amountSelector*/\r\n\t\t\tnull, /*allowDecimal*/\r\n\t\t\tfalse, /*greaterThanZero*/\r\n\t\t\tnull, /*formatAmount*/\r\n\t\t\tnull, /*defaultValue*/\r\n\t\t\tfalse /*includeThousandsSeparator*/\r\n\t\t);\r\n\r\n\r\n\t\t$component.on(\"change\", event => {\r\n\t\t\tthis.handleSuggestedDonationChange(event, checkoutDispatcher, productCode, context);\r\n\t\t});\r\n\r\n\t\t// if we're in a context, we need to initialize each suggested donation amount\r\n\t\tif (context) {\r\n\t\t\tthis.initializeSuggestedDonationAmount(suggestedDonationAmount, context, productCode);\r\n\t\t}\r\n\t},\r\n\r\n\thandleSuggestedDonationChange: function (event, checkoutDispatcher, productCode, context) {\r\n\t\t// update data in the store, store will call UI update method.\r\n\t\tvar amount = event.target.value;\r\n\r\n\t\tthis.setSuggestedDonationAmount(amount, context, productCode);\r\n\r\n\t\t// We only want to call this from product page.\r\n\t\tif (!context && checkoutDispatcher) {\r\n\t\t\tcheckoutDispatcher.dispatch({\r\n\t\t\t\tactionType: Constants.CART_UPDATE_PRODUCT_PRICE,\r\n\t\t\t\tproductPrice: amount\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeSuggestedDonationAmount: function (amount, context, productCode) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PRODUCT_INITIALIZE_SUGGESTED_DONATION,\r\n\t\t\tamount,\r\n\t\t\tproductCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\t},\r\n\r\n\tsetSuggestedDonationAmount: function (amount, context, productCode) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: Constants.PRODUCT_SET_SUGGESTED_DONATION,\r\n\t\t\tamount,\r\n\t\t\tproductCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\t},\r\n\r\n\tvalidateAmount(amount, suggestedDonationAmount) {\r\n\t\t// If SD is 0 (not falsey) we're in a no-min and the value has to be > 0.01. Otherwise the donation\r\n\t\t// has to be greater than OR EQUAL to the default amount.\r\n\t\tif (suggestedDonationAmount === 0) {\r\n\t\t\treturn amount >= 0.01;\r\n\t\t} else {\r\n\t\t\treturn amount >= suggestedDonationAmount;\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * UI Functionality\r\n\t **/\r\n\tupdateSuggestedDonationComponent(amount, context, productCode) {\r\n\t\t// update the component UI to make sure that the SD amount matches what's in the store.\r\n\t\tvar $component = this.findComponentFor(context, productCode, \"suggestedDonationAmount\");\r\n\t\t$component.val(Number(amount).toFixed(2));\r\n\t},\r\n\r\n\tfindComponentFor(context, productCode, componentName) {\r\n\t\tif (context) {\r\n\t\t\tvar componentContext = context.split(\"_\")[0];\r\n\t\t\tif (componentContext === \"search\") {\r\n\t\t\t\tcomponentContext = \"searchResults\";\r\n\t\t\t}\r\n\t\t\treturn $(`[data-component=\"${componentContext}.product\"][data-product-code=\"${productCode}\"]`).find(`[data-component=\"${componentName}\"]`);\r\n\t\t} else {\r\n\t\t\tvar component = $(`[data-component=\"${componentName}\"]`).filter((index, item) => {\r\n\t\t\t\treturn $(item).parents('[data-component=\"searchResult.product\"],[data-component=\"category.product\"],[data-component=\"carousel.product\"]').length === 0;\r\n\t\t\t})[0];\r\n\r\n\t\t\treturn $(component);\r\n\t\t}\r\n\t},\r\n\r\n\tisOnePageSuggestedDonation() {\r\n\t\tvar suggestedDonationComponent = $('[data-component=\"suggestedDonationAmount\"]').filter((index, item) => {\r\n\t\t\treturn $(item).parents('[data-component=\"searchResult.product\"],[data-component=\"category.product\"],[data-component=\"carousel.product\"]').length === 0;\r\n\t\t});\r\n\r\n\t\treturn suggestedDonationComponent.length > 0;\r\n\t},\r\n\r\n\tshowInvalidSuggestedDonationMessage(context, productCode) {\r\n\t\tthis.findComponentFor(context, productCode, \"suggestedDonationMinimumNotMetMessage\").show();\r\n\t},\r\n\r\n\thideInvalidSuggestedDonationMessage(context, productCode) {\r\n\t\tthis.findComponentFor(context, productCode, \"suggestedDonationMinimumNotMetMessage\").hide();\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar deviceType = Constants.DEVICE_TYPES;\r\nvar deviceMinWidth = Constants.DEVICE_MIN_WIDTHS;\r\n\r\nvar TokenExHelper = {\r\n\tgetIframe: function ($parent) {\r\n\t\tvar parentId = $parent.attr(\"id\");\r\n\t\treturn $parent.find(`iframe#tx_iframe_${parentId}`);\r\n\t},\r\n\r\n\tgetBaseUrl: function () {\r\n\t\treturn window.location.protocol + // http(s):\r\n\t\t\t\"//\" +\r\n\t\t\twindow.location.hostname + // host may contain port, so play it safe and only return hostname\r\n\t\t\t(window.location.port ? \":\" + window.location.port : \"\") // if there's a port, tack it on.\r\n\t},\r\n\r\n\tgetTokenExTokenData: function ($parent) {\r\n\t\tvar iframe = this.getIframe($parent);\r\n\t\treturn {\r\n\t\t\tcardType: iframe.attr(\"data-tokenex-cardtype\"),\r\n\t\t\tlastFour: iframe.attr(\"data-tokenex-lastfour\"),\r\n\t\t\ttoken: iframe.attr(\"data-tokenex-token\")\r\n\t\t};\r\n\t},\r\n\r\n\tinitializeTokenEx: function ($parent) {\r\n\t\twindow.addEventListener(\"resize\", () => this._manageIframeStyling());\r\n\r\n\t\t$parent = $parent || $(\"body\");\r\n\t\tthis._generateIframe($parent);\r\n\r\n\t\t$parent.find(\"[data-component='tokenExCardNumber']\").each((index, element) => {\r\n\t\t\tvar $component = $(element);\r\n\t\t\t$component.attr(\"data-has-custom-validator\", true).data({ customValidator: this.validateCardNumberToken.bind(this, $component) });\r\n\t\t});\r\n\t},\r\n\r\n\tisTokenEx: function (selector) {\r\n\t\tvar $selector = $(selector || \"body\");\r\n\t\treturn Boolean(\r\n\t\t\t$selector.closest(\"[data-component='tokenExCreditCardPayment']\").length ||\r\n\t\t\t$selector.find(\"[data-component='tokenExCreditCardPayment']\").length);\r\n\t},\r\n\r\n\t_generateIframe: function ($parent, device) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\t\tdevice = device || this._getDeviceType();\r\n\r\n\t\tvar $component = $parent.find(\"[data-component='tokenExCardNumber']\");\r\n\t\tvar wrapperId = $component.attr(\"id\");\r\n\t\t$component.attr(\"data-set-device\", device);\r\n\r\n\t\tvar inputStyle = decodeURIComponent($component.attr(`data-src-${device}-css`));\r\n\t\tvar iframeStyle = decodeURIComponent($component.attr(`data-${device}-css`));\r\n\r\n\t\t$component.css(JSON.parse(iframeStyle));\r\n\r\n\t\tvar authenticationKey = $component.attr(\"data-authentication-key\");\r\n\t\tvar timestamp = $component.attr(\"data-timestamp\");\r\n\t\tvar tokenExID = $component.attr(\"data-tokenex-id\");\r\n\t\tvar placeholder = $component.attr(\"inputPlaceholder\");\r\n\t\tvar fourTokenFour = \"2\"; // Token Scheme\r\n\r\n\t\tvar url = this.getBaseUrl();\r\n\r\n\t\tvar tokenExConfiguration = {\r\n\t\t\tauthenticationKey,\r\n\t\t\torigin: url,\r\n\t\t\tpci: true,\r\n\t\t\tstyles: {\r\n\t\t\t\tbase: this._getStylePropertyFor(inputStyle, \"base\"),\r\n\t\t\t\terror: this._getStylePropertyFor(inputStyle, \"error\")\r\n\t\t\t},\r\n\t\t\ttimestamp,\r\n\t\t\ttokenExID,\r\n\t\t\ttokenScheme: fourTokenFour,\r\n\t\t\tplaceholder: placeholder\r\n\t\t};\r\n\r\n\t\tvar tokenExIframe = window.TokenEx.Iframe(wrapperId, tokenExConfiguration);\r\n\t\tthis._setIframeListeners(tokenExIframe, $component);\r\n\t\ttokenExIframe.load();\r\n\t},\r\n\r\n\t_setIframeListeners: function (tokenExIframe, $component) {\r\n\t\ttokenExIframe.on(\"error\", (data) => {\r\n\t\t\tconsole.log(`CC iframe error: ${JSON.stringify(data)}`);\r\n\t\t\tthis._removeTokenizationData($component);\r\n\t\t\ttokenExIframe.reset();\r\n\t\t});\r\n\r\n\t\ttokenExIframe.on(\"change\", () => {\r\n\t\t\tthis._removeTokenizationData($component);\r\n\t\t});\r\n\r\n\t\ttokenExIframe.on(\"validate\", (data) => {\r\n\t\t\tconsole.log(`CC iframe validate: ${JSON.stringify(data)}`);\r\n\t\t\tif (!data.isValid) {\r\n\t\t\t\tthis._removeTokenizationData($component);\r\n\t\t\t\tthis.getIframe($component).removeAttr(\"isTokenizing\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\ttokenExIframe.on(\"tokenize\", (data) => {\r\n\t\t\tconsole.log(`CC iframe tokenize: ${JSON.stringify(data)}`);\r\n\t\t\tvar iframe = this.getIframe($component)\r\n\t\t\tiframe.attr({\r\n\t\t\t\t\"data-tokenex-cardtype\": data.cardType,\r\n\t\t\t\t\"data-tokenex-lastfour\": data.lastFour,\r\n\t\t\t\t\"data-tokenex-token\": data.token\r\n\t\t\t});\r\n\t\t\tiframe.removeAttr(\"isTokenizing\");\r\n\t\t});\r\n\r\n\t\ttokenExIframe.on(\"blur\", () => {\r\n\t\t\tthis.getIframe($component).attr(\"isTokenizing\", true);\r\n\t\t\ttokenExIframe.tokenize();\r\n\t\t});\r\n\r\n\t\ttokenExIframe.on(\"load\", () => {\r\n\t\t\t$component.removeAttr(\"isGeneratingIframe\")\r\n\t\t\t// This handles the case where someone quickly resized from mobile to tablet to desktop.\r\n\t\t\t// The styling would get stuck on tablet because we skipped regenerating the iframe while one was already being regenerated.\r\n\t\t\tthis._manageIframeStyling();\r\n\t\t});\r\n\t},\r\n\r\n\t_removeTokenizationData($component) {\r\n\t\tvar iframe = this.getIframe($component)\r\n\t\tiframe.removeAttr(\"data-tokenex-token\")\r\n\t\t\t.removeAttr(\"data-tokenex-lastfour\")\r\n\t\t\t.removeAttr(\"data-tokenex-cardtype\")\r\n\t\t\t.removeAttr(\"isTokenizing\");\r\n\t},\r\n\r\n\t_getStylePropertyFor: function (inputString, key) {\r\n\t\tvar startIndex = inputString.indexOf(`${key}{`) + (key.length + 1);\r\n\t\tvar endIndex = inputString.indexOf(\"}\", startIndex);\r\n\t\treturn inputString.substring(startIndex, endIndex);\r\n\t},\r\n\r\n\t_manageIframeStyling: function (event, $parent) {\r\n\t\tif (window.AccountStore.get(\"isDesignMode\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$parent = $parent || $(\"body\");\r\n\t\tvar device = this._getDeviceType();\r\n\r\n\t\tvar $components = $parent.find(\"[data-component='tokenExCardNumber']\");\r\n\t\t$components.each((index, component) => {\r\n\t\t\tvar $component = $(component);\r\n\r\n\t\t\tif (device !== $component.attr(\"data-set-device\") && !$component.attr(\"isGeneratingIframe\")) {\r\n\t\t\t\t// re-generate the iframe using the proper device for styling.\r\n\t\t\t\t$component.attr(\"isGeneratingIframe\", true);\r\n\t\t\t\tthis.getIframe($component).off();\r\n\t\t\t\t$component.empty();\r\n\t\t\t\tthis._generateIframe($parent, device);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_getDeviceType: function () {\r\n\t\tvar width = window.innerWidth;\r\n\r\n\t\treturn (width < deviceMinWidth.TABLET && deviceType.MOBILE)\r\n\t\t\t|| (width < deviceMinWidth.DESKTOP && deviceType.TABLET)\r\n\t\t\t|| deviceType.DESKTOP;\r\n\t},\r\n\r\n\tvalidateCardNumberToken: function ($component) {\r\n\t\tvar data = this.getTokenExTokenData($component);\r\n\t\t\r\n\t\tif (data && data.token) {\r\n\t\t\treturn this._getValidationResponse(/*isValid:*/true);\r\n\t\t} else {\r\n\t\t\tif (this.getIframe($component).attr(\"isTokenizing\")) {\r\n\t\t\t\t// We are going to wait for a token.\r\n\t\t\t\treturn this._getDeferredValidationResponse($component);\r\n\t\t\t} else {\r\n\t\t\t\t// We did not get a token.\r\n\t\t\t\treturn this._getValidationResponse(/*isValid:*/false);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_getDeferredValidationResponse: function ($component) {\r\n\t\tvar deferred = new $.Deferred();\r\n\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tthis._checkForToken($component, deferred)\r\n\t\t}, 500);\r\n\r\n\t\treturn { deferred: deferred };\r\n\t},\r\n\r\n\t_getValidationResponse: function (isValid) {\r\n\t\tvar response = { isValid: isValid, errorMessages: [] };\r\n\r\n\t\tif (!response.isValid) {\r\n\t\t\tvar missingTokenMessage = this._getWizardErrorMessage(WizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES, WizardConstants.TOKENEX_MESSAGE_FIELDS.TOKEN_MISSING);\r\n\t\t\tresponse.errorMessages.push(missingTokenMessage);\r\n\t\t}\r\n\r\n\t\treturn response;\r\n\t},\r\n\r\n\t_checkForToken: function ($component, deferred, hasWaited) {\r\n\t\tvar data = this.getTokenExTokenData($component);\r\n\r\n\t\tif (data && data.token) {\r\n\t\t\tdeferred.resolve(this._getValidationResponse(/*isValid:*/true));\r\n\t\t} else {\r\n\t\t\tif (this.getIframe($component).attr(\"isTokenizing\") && !hasWaited) {\r\n\t\t\t\tthis._waitForToken(deferred, $component);\r\n\t\t\t} else {\r\n\t\t\t\t// We did not get a token, or we have already waited and still haven't received a token.\r\n\t\t\t\tdeferred.resolve(this._getValidationResponse(/*isValid:*/false));\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_waitForToken: function(deferred, $component) {\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tthis._checkForToken($component, deferred, /*hasWaited:*/true)\r\n\t\t}, 5000);\r\n\t},\r\n\r\n\t_getWizardErrorMessage: function (wizardName, wizardField) {\r\n\t\tif (window.CheckoutActions) {\r\n\t\t\treturn window.CheckoutActions.getWizardValue(wizardName, wizardField);\r\n\t\t}\r\n\r\n\t\treturn window.AccountStore.getWizardValue(wizardName, wizardField);\r\n\t}\r\n};\r\n\r\nmodule.exports = TokenExHelper;\r\n","\"use strict\";\r\n\r\nvar QueryStringHelper = require(\"../shared/QueryStringHelper\");\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar parentComponentSelector = \"[data-component='tsysTsepCreditCardPayment']\";\r\nvar iframeSelector = \"iframe[data-tsys-tsep-iframe]\";\r\n\r\nvar TsysTsepHelper = {\r\n\tinitializeTsysTsep: function($parent) {\r\n\t\t$parent = $parent || $(\"body\");\r\n\r\n\t\t$parent.find(parentComponentSelector).each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({customValidator: this.validateTsysTsepResult.bind(this, $element)});\r\n\t\t});\r\n\t},\r\n\r\n\t//selector can be a jQuery object or jQuery selector\r\n\tisTsysTsep: function(selector) {\r\n\t\tvar $selector = $(selector || \"body\");\r\n\t\treturn Boolean(\r\n\t\t\t$selector.closest(parentComponentSelector).length || $selector.find(parentComponentSelector).length\r\n\t\t);\r\n\t},\r\n\r\n\tsetTsysIframeHeight: function(uniqueId, height) {\r\n\t\tvar $element = $(`[data-unique-id=\"${uniqueId}\"]`);\r\n\t\tvar $iframe = $element.find(iframeSelector);\r\n\t\t$iframe.height(height);\r\n\t},\r\n\r\n\tsyncTsysTsepResult: function(uniqueId, result) {\r\n\t\tvar $element = $(`[data-unique-id=\"${uniqueId}\"]`);\r\n\t\t$element.data({tsysTsepResult: result});\r\n\t\tif (result.tsepToken && result.deferred && !result.tokenHandled) {\r\n\t\t\t//If we were waiting for a token, let's go ahead and return it.\r\n\t\t\tresult.tokenHandled = true;\r\n\t\t\tresult.deferred.resolve(this.getValidationResponse(/*hasError*/false));\r\n\t\t}\r\n\t},\r\n\r\n\tgetTsysTsepResult: function($element) {\r\n\t\tif (this.isTsysTsep($element)) {\r\n\t\t\tif ($element.data(\"tsysTsepResult\") && $.isPlainObject($element.data(\"tsysTsepResult\"))) {\r\n\t\t\t\tvar result = $element.data(\"tsysTsepResult\");\r\n\t\t\t\treturn result;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t},\r\n\r\n\tvalidateTsysTsepResult: function($element) {\r\n\t\tvar uniqueId = $element.attr(\"data-unique-id\");\r\n\t\tvar queryParameters = {\r\n\t\t\tuniqueId\r\n\t\t};\r\n\r\n\t\tvar result = this.getTsysTsepResult($element);\r\n\t\tif (!result) {\r\n\t\t\tqueryParameters.isCardNumberValid = false;\r\n\t\t\tqueryParameters.isExpirationDateValid = false;\r\n\t\t\tqueryParameters.isVerificationNumberValid = false;\r\n\r\n\t\t\t//No deferred is returned\r\n\t\t\treturn this.getValidationResponse(/*hasError*/true, /*errorMessages*/null, $element, queryParameters);\r\n\t\t} else if (!result.tsepToken) {\r\n\t\t\t//We have no token; see how many valid fields we have\r\n\t\t\tvar validCount = this.getValidCount(result);\r\n\r\n\t\t\tif (validCount == 2) {\r\n\t\t\t\t//We have two valid fields, let's wait half a second to see if we have three valid as the submit and the focusOut could happen at the same time.\r\n\t\t\t\tresult.deferred = new $.Deferred();\r\n\t\t\t\twindow.setTimeout(() => {\r\n\t\t\t\t\tresult = this.getTsysTsepResult($element);\r\n\t\t\t\t\t//If the token has already been handled, we do not need to do anything else\r\n\t\t\t\t\tif (result && !result.tokenHandled) {\r\n\t\t\t\t\t\tif (!result.tsepToken) {\r\n\t\t\t\t\t\t\tvalidCount = this.getValidCount(result);\r\n\t\t\t\t\t\t\tif (validCount == 3) {\r\n\t\t\t\t\t\t\t\tthis.handleThreeValidFieldButNoToken(result.deferred, $element, queryParameters);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t//We do not have three valid fields, so we are definitely not valid\r\n\t\t\t\t\t\t\t\tresult.deferred.resolve(this.hasNoTokenResponse(result, $element, queryParameters));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t//There is no error.\r\n\t\t\t\t\t\t\tresult.deferred.resolve(this.getValidationResponse(/*hasError*/false));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\t\t\t\treturn {deferred: result.deferred};\r\n\t\t\t} else if (validCount == 3) {\r\n\t\t\t\tresult.deferred = new $.Deferred();\r\n\t\t\t\tthis.handleThreeValidFieldButNoToken(result.deferred, $element, queryParameters);\r\n\t\t\t\treturn {deferred: result.deferred};\r\n\t\t\t}\r\n\r\n\t\t\t//No deferred is returned. We do not have a token and only 0 or 1 TSYS TSEP field is valid.\r\n\t\t\treturn this.hasNoTokenResponse(result, $element, queryParameters);\r\n\t\t}\r\n\r\n\t\t//No deferred. There is no error.\r\n\t\treturn\tthis.getValidationResponse(/*hasError*/false);\r\n\t},\r\n\r\n\thandleThreeValidFieldButNoToken: function(deferred, $element, queryParameters) {\r\n\t\t//We have three valid fields, but no token. Let's wait 5 seconds to see if we get a token.\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tvar result = this.getTsysTsepResult($element);\r\n\t\t\t//If token has been handled, we do not need to do anything else.\r\n\t\t\tif (result && !result.tokenHandled) {\r\n\t\t\t\tif (!result.tsepToken) {\r\n\t\t\t\t\tdeferred.resolve(this.hasNoTokenResponse(result, $element, queryParameters));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//No Error, we have the token\r\n\t\t\t\t\t//There is no error.\r\n\t\t\t\t\tdeferred.resolve(this.getValidationResponse(/*hasError*/false));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 5000);\r\n\t},\r\n\r\n\thasNoTokenResponse: function(result, $element, queryParameters) {\r\n\t\tvar hasError = true;\r\n\t\tvar errorMessages = [];\r\n\r\n\t\tqueryParameters.isCardNumberValid = false;\r\n\t\tqueryParameters.cardNumberErrorMessage = result.cardNumber.errorMessage || null;\r\n\r\n\t\tqueryParameters.expirationDate = (result.expirationDate.isValid && result.expirationDate.value) || null;\r\n\t\tqueryParameters.isExpirationDateValid = result.expirationDate.isValid;\r\n\t\tqueryParameters.expirationDateErrorMessage = result.expirationDate.errorMessage || null;\r\n\r\n\t\tqueryParameters.verificationNumber = (result.verificationNumber.isValid && result.verificationNumber.value) || null;\r\n\t\tqueryParameters.isVerificationNumberValid = result.verificationNumber.isValid;\r\n\t\tqueryParameters.verificationNumberErrorMessage = result.verificationNumber.errorMessage || null;\r\n\r\n\t\terrorMessages.push(result.cardNumber.errorMessage);\r\n\t\terrorMessages.push(result.expirationDate.errorMessage);\r\n\t\terrorMessages.push(result.verificationNumber.errorMessage);\r\n\t\terrorMessages.push(result.errorMessage);\r\n\r\n\t\terrorMessages = errorMessages.filter(Boolean);\r\n\r\n\t\tif (!result.cardNumber.value || !result.expirationDate.value || !result.verificationNumber.value) {\r\n\t\t\terrorMessages.push(window.FORM_VALIDATION_MESSAGES.REQUIRED_FIELDS);\r\n\t\t}\r\n\r\n\t\treturn this.getValidationResponse(hasError, errorMessages, $element, queryParameters);\r\n\t},\r\n\r\n\tgetValidationResponse: function(hasError, errorMessages, $element, queryParameters) {\r\n\t\terrorMessages = errorMessages || [];\r\n\t\tif (hasError && !errorMessages.length) {\r\n\t\t\tvar genericErrorMessage = this._getStore().getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.COMPANY_ERROR_MESSAGES,\r\n\t\t\t\tWizardConstants.TSYS_TSEP_MESSAGE_FIELDS.GENERIC\r\n\t\t\t);\r\n\t\t\terrorMessages.push(genericErrorMessage);\r\n\t\t}\r\n\r\n\t\tif (errorMessages.length) {\r\n\t\t\t$element.removeData(\"tsysTsepResult\");\r\n\r\n\t\t\tvar $iframe = $element.find(iframeSelector);\r\n\t\t\tvar url = $iframe.attr(\"src\").split(\"?\")[0];\r\n\t\t\tvar queryParametersString = QueryStringHelper.createQueryString(queryParameters);\r\n\t\t\t$iframe.attr(\"src\", `${url}?${queryParametersString}`);\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\terrorMessages: errorMessages,\r\n\t\t\tisValid: !errorMessages.length\r\n\t\t};\r\n\t},\r\n\r\n\tgetValidCount: function (result) {\r\n\t\tvar validCount = 0;\r\n\t\tif (result.cardNumber.isValid) {\r\n\t\t\tvalidCount++;\r\n\t\t}\r\n\t\tif (result.expirationDate.isValid) {\r\n\t\t\tvalidCount++;\r\n\t\t}\r\n\t\tif (result.verificationNumber.isValid) {\r\n\t\t\tvalidCount++;\r\n\t\t}\r\n\t\treturn validCount;\r\n\t},\r\n\r\n\tgetCardType: function (cardType) {\r\n\t\tswitch (cardType) {\r\n\t\t\tcase \"V\":\r\n\t\t\t\treturn \"VISA\";\r\n\t\t\tcase \"M\":\r\n\t\t\t\treturn \"MASTERCARD\";\r\n\t\t\tcase \"X\":\r\n\t\t\t\treturn \"AMEX\";\r\n\t\t\tcase \"R\":\r\n\t\t\t\treturn \"DISCOVER\";\r\n\t\t\tcase \"J\":\r\n\t\t\t\treturn \"JCB\";\r\n\t\t\tdefault:\r\n\t\t\t\treturn cardType;\r\n\t\t}\r\n\t},\r\n\r\n\t_getStore: function() {\r\n\t\tif (window.CheckoutStore) {\r\n\t\t\treturn window.CheckoutStore;\r\n\t\t}\r\n\r\n\t\treturn window.AccountStore;\r\n\t},\r\n};\r\n\r\nmodule.exports = TsysTsepHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ValidationHelper\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nmodule.exports = {\r\n\tremoveBetterValidationPopup($inputs) {\r\n\t\t$inputs.each((index, element) => {\r\n\t\t\t//If the element is valid, remove the tooltip\r\n\t\t\tif (element.validity.valid) {\r\n\t\t\t\t$(element).removeAttr(\"aria-invalid\").prev(\".better-validity-tooltip\").attr(\"aria-hidden\", true);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t// valid options:\r\n\t// * all - Validate all inputs in the current DOM is truthy\r\n\tshowInvalidInputsDialog() {\r\n\t\tvar errorMessage = \"\";\r\n\r\n\t\tthis._errorMessages.forEach(message => {\r\n\t\t\terrorMessage += errorMessage !== \"\" ? \"\\n\" : \"\";\r\n\t\t\terrorMessage += message;\r\n\t\t});\r\n\r\n\t\tvar setFocus = () => {\r\n\t\t\tvar invalidInputs = $(\".invalid\").first().filter(\":visible:enabled\");\r\n\t\t\tif (invalidInputs.length) {\r\n\t\t\t\tinvalidInputs[0].focus();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (errorMessage) {\r\n\t\t\tBootstrapPrompt.alert(errorMessage, () => {\r\n\t\t\t\t// Without the defer, the input is focused before the dialog is fully closed, and focus goes to the\r\n\t\t\t\t// window instead of the input.\r\n\t\t\t\t_.defer(setFocus);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsetFocus();\r\n\t\t}\r\n\t},\r\n\r\n\t// * components - A list of jQuery component objects to validate.\r\n\tvalidate(options) {\r\n\t\tvar deferred = new $.Deferred();\r\n\t\tthis._initializeValidation();\r\n\t\tvar innerDeferred;\r\n\r\n\t\t// May need to create a local variable if we want to support a combination of parent and individual.\r\n\t\tif (options.all) {\r\n\t\t\tinnerDeferred = this._validateAll();\r\n\t\t} else if (options.components) {\r\n\t\t\tinnerDeferred = this._validateComponents(options.components);\r\n\t\t}\r\n\r\n\t\tinnerDeferred.always(() => {\r\n\t\t\tif (options.doNotShowAlert) {\r\n\t\t\t\t//The return type is different if doNotShowAlert is set.\r\n\t\t\t\tdeferred.resolve({\r\n\t\t\t\t\terrorMessages: this._errorMessages,\r\n\t\t\t\t\tisValid: this._isValid\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t//Returing a boolean whether isValid or not.\r\n\t\t\tdeferred.resolve(this._handleInvalidAndReturn(options));\r\n\t\t});\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t// Reset all internal variables;\r\n\t_initializeValidation() {\r\n\t\tthis._isValid = true;\r\n\t\tthis._errorMessages = [];\r\n\t},\r\n\r\n\t_validateAll() {\r\n\t\tvar deferred = new $.Deferred();\r\n\t\t// From jQuery documentation <https://api.jquery.com/enabled-selector/>:\r\n\t\t// - The :enabled selector should only be used for selecting HTML elements that support the disabled attribute (<button>, <input>, <optgroup>, <option>, <select>, and <textarea>).\r\n\t\tvar customSelector = $(\"[data-has-custom-validator]:visible\").not(\"input,select,option,textarea,button,optgroup\")\r\n\t\t\t.add(\"input[data-has-custom-validator]:visible:enabled\")\r\n\t\t\t.add(\"select[data-has-custom-validator]:visible:enabled\")\r\n\t\t\t.add(\"option[data-has-custom-validator]:visible:enabled\")\r\n\t\t\t.add(\"textarea[data-has-custom-validator]:visible:enabled\")\r\n\t\t\t.add(\"button[data-has-custom-validator]:visible:enabled\")\r\n\t\t\t.add(\"optgroup[data-has-custom-validator]:visible:enabled\");\r\n\t\tthis._customValidate($(customSelector)).always(() => {\r\n\t\t\tdeferred.resolve();\r\n\t\t});\r\n\r\n\t\t// get all inputs in the DOM\r\n\t\tvar $inputs = $(\"input,select\").filter(\":visible:enabled\");\r\n\t\t$inputs.each(this._validateInput.bind(this));\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_validateComponents(components) {\r\n\t\tvar deferred = new $.Deferred();\r\n\t\tvar customValidatorDeferreds = [];\r\n\t\tcomponents.forEach($component => {\r\n\t\t\t// From jQuery documentation <https://api.jquery.com/enabled-selector/>:\r\n\t\t\t// - The :enabled selector should only be used for selecting HTML elements that support the disabled attribute (<button>, <input>, <optgroup>, <option>, <select>, and <textarea>).\r\n\t\t\tvar customSelector = $component.find(\"[data-has-custom-validator]:visible\").addBack(\"[data-has-custom-validator]:visible\").not(\"input,select,option,textarea,button,optgroup\")\r\n\t\t\t\t.add($component.find(\"input[data-has-custom-validator]:visible:enabled\").addBack(\"input[data-has-custom-validator]:visible:enabled\"))\r\n\t\t\t\t.add($component.find(\"select[data-has-custom-validator]:visible:enabled\").addBack(\"select[data-has-custom-validator]:visible:enabled\"))\r\n\t\t\t\t.add($component.find(\"option[data-has-custom-validator]:visible:enabled\").addBack(\"option[data-has-custom-validator]:visible:enabled\"))\r\n\t\t\t\t.add($component.find(\"textarea[data-has-custom-validator]:visible:enabled\").addBack(\"textarea[data-has-custom-validator]:visible:enabled\"))\r\n\t\t\t\t.add($component.find(\"button[data-has-custom-validator]:visible:enabled\").addBack(\"button[data-has-custom-validator]:visible:enabled\"))\r\n\t\t\t\t.add($component.find(\"optgroup[data-has-custom-validator]:visible:enabled\").addBack(\"optgroup[data-has-custom-validator]:visible:enabled\"));\r\n\t\t\tcustomValidatorDeferreds.push(this._customValidate(customSelector));\r\n\r\n\t\t\tvar $inputs = $component.find('input,select,textarea').addBack('input,select,textarea').filter(\":visible:enabled\");\r\n\r\n\t\t\t// Mark input as invalid and add a namespaced handler to re-check validity.\r\n\t\t\t$inputs.each(this._validateInput.bind(this));\r\n\t\t});\r\n\r\n\t\tif (customValidatorDeferreds.length) {\r\n\t\t\t$.when(...customValidatorDeferreds).always(() => {\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_customValidate($elementsWithCustomValidators) {\r\n\t\tvar deferred = new $.Deferred();\r\n\t\tvar customValidatorDeferreds = [];\r\n\r\n\t\t$elementsWithCustomValidators.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\r\n\t\t\tif ($element.data(\"customValidator\") !== undefined && (typeof $element.data(\"customValidator\") === \"function\")) {\r\n\t\t\t\tvar response = $element.data(\"customValidator\")();\r\n\r\n\t\t\t\tif (response && response.deferred) {\r\n\t\t\t\t\tresponse.deferred.always((deferredResponse) => {\r\n\t\t\t\t\t\tif (deferredResponse && !deferredResponse.isValid) {\r\n\t\t\t\t\t\t\tthis._markAsInvalid($element, deferredResponse.errorMessages);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tcustomValidatorDeferreds.push(response.deferred);\r\n\t\t\t\t} else if (response && !response.isValid) {\r\n\t\t\t\t\tthis._markAsInvalid($element, response.errorMessages);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (customValidatorDeferreds.length) {\r\n\t\t\t$.when(...customValidatorDeferreds).always(() => {\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_validateInput(index, input) {\r\n\t\tvar minPhoneNumberLength = 7; // This is a valid min-length excluding country code and area code for all countries except Saint Helena (5) and Niue (4)\r\n\t\tvar $input = $(input);\r\n\r\n\t\tif (!input.validity.valid) {\r\n\t\t\t//For better form-validation messages, you can put a message in the title attribute designating the field requirements.\r\n\t\t\tvar title = $(input).prop(\"title\") || window.FORM_VALIDATION_MESSAGES.REQUIRED_FIELDS;\r\n\t\t\tthis._markAsInvalid($input, [title]);\r\n\t\t} else if ( // legacy code support so we do not have to deploy a breaking change for every text input in the entire application.\r\n\t\t\t$input.prop(\"tagName\") !== \"SELECT\" &&\r\n\t\t\t$input.prop(\"type\") !== \"radio\" &&\r\n\t\t\t$input.prop(\"type\") !== \"checkbox\" &&\r\n\t\t\t$input.prop(\"required\") &&\r\n\t\t\t!$input.prop(\"pattern\")) { // If there is no HTML5 pattern attribute, then we have to perform additional checks for white space\r\n\t\t\tif (\r\n\t\t\t\t($input.attr(\"data-component\") !== \"accountPhoneNumber\" && !$input.val().trim().length) || // Validation for fields which are not phone numbers\r\n\t\t\t\t($input.attr(\"data-component\") === \"accountPhoneNumber\" && $input.val().replace(/[\\D]/g, \"\").length < minPhoneNumberLength)) { // Phone number validation - replace non-digits with empty string\r\n\t\t\t\tthis._markAsInvalid($input, [window.FORM_VALIDATION_MESSAGES.REQUIRED_FIELDS]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_markAsInvalid($input, errorMessages) {\r\n\t\t$input.addClass(\"invalid\");\r\n\t\t$input.on(\"change.invalidInput\", this._onUpdateInvalidInput.bind(this, $input));\r\n\t\tthis._isValid = false;\r\n\r\n\t\tif (errorMessages && errorMessages.length > 0) {\r\n\t\t\terrorMessages.forEach(message => {\r\n\t\t\t\tif (!this._errorMessages.includes(message)) {\r\n\t\t\t\t\tthis._errorMessages.push(message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t_handleInvalidAndReturn(options) {\r\n\t\toptions = options || {};\r\n\t\tif (!this._isValid && !options.doNotShowAlert) {\r\n\t\t\tthis.showInvalidInputsDialog();\r\n\t\t}\r\n\r\n\t\treturn this._isValid;\r\n\t},\r\n\r\n\t// Listener to remove the invalid class when an input becomes valid again.\r\n\t_onUpdateInvalidInput($input) {\r\n\t\tvar validity = $input[0].validity;\r\n\t\tif (validity && validity.valid) {\r\n\t\t\tthis._removeChangeHandler($input);\r\n\t\t}\r\n\t},\r\n\r\n\t// Remove the namespaced handler that we created while validating.\r\n\t_removeChangeHandler($input) {\r\n\t\t$input.off(\"change.invalidInput\");\r\n\t\t$input.removeClass(\"invalid\");\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\n\r\nLogger.useDefaults({\r\n\tdefaultLevel: Logger.ERROR\r\n});\r\n\r\nmodule.exports = {\r\n\tBootstrapPrompt: require(\"../shared/BootstrapPrompt\"),\r\n\tCarouselActions: require(\"../actions/CarouselActions\"),\r\n\tCategoryActions: require(\"../actions/CategoryActions\"),\r\n\tCategoryDropdown: require(\"./CategoryDropdown\"),\r\n\tCategoryPaging: require(\"./CategoryPaging\"),\r\n\tDonationFrequency: require(\"../projectComponents/DonationFrequency\"),\r\n\tEmailSubscriptionActions: require(\"../actions/EmailSubscriptionActions\"),\r\n\tEmailSubscriptionStore: require(\"../stores/EmailSubscriptionStore\"),\r\n\tExpanderActions: require(\"../actions/ExpanderActions\"),\r\n\tGiveAnonymousCheckbox: require(\"../projectComponents/GiveAnonymousCheckbox\"), // Included here because it has dependencies on these\r\n\tHtmlHelper: require(\"../shared/HtmlHelper\"),\r\n\tLogoutActions: require(\"../actions/LogoutActions\"),\r\n\tNavigationActions: require(\"../actions/NavigationActions\"),\r\n\tPaging: require(\"./Paging\"),\r\n\tPledgeActions: require(\"../actions/PledgeActions\"),\r\n\tPledgeFrequency: require(\"../pledgeComponents/PledgeFrequency\"),\r\n\tPledgeGiftArray: require(\"../pledgeComponents/PledgeGiftArray\"),\r\n\tPostalCodeHelper: require(\"../accountComponents/PostalCodeHelper\"),\r\n\tProductActions: require(\"../actions/ProductActions\"),\r\n\tProductVariantsHelper: require(\"../productComponents/ProductVariantsHelper\"),\r\n\tProjectActions: require(\"../projectComponents/ProjectActions\"),\r\n\tProjectGiftArray: require(\"../projectComponents/ProjectGiftArray\"),\r\n\tProjectStore: require(\"../projectComponents/ProjectStore\"),\r\n\tQuantity: require(\"../productComponents/Quantity\"),\r\n\tQueryStringHelper: require(\"../shared/QueryStringHelper\"),\r\n\tRecurringUpsellCheckbox: require(\"../projectComponents/RecurringUpsellCheckbox\"),\r\n\tSearchSorting: require(\"../searchComponents/SearchSorting\"),\r\n\tShipToActions: require(\"../actions/ShipToActions\"),\r\n\tSlideShowActions: require(\"../actions/SlideShowActions\"),\r\n\tSubaccountGiftArray: require(\"../projectComponents/SubaccountGiftArray\"), // Included here because it has dependencies on these\r\n\tTabActions: require(\"../actions/TabActions\"),\r\n\tTokenStore: require(\"../client/TokenStore\"),\r\n\tUseOnDaySelector: require(\"../projectComponents/UseOnDaySelector\"),\r\n\tVisibilityStore: require(\"../client/VisibilityStore\")\r\n};\r\n","\"use strict\";\r\n//When adding constants, create objects to group them by type.\r\n//The objects should be alphabetical in the file.\r\n//The object properties should be kept alphabetical by name within the object defineProperty lines\r\n//If you are creating a new constant group, make sure to add it to the Exports.\r\n\r\nvar constants = {\r\n\tmappings: [],\r\n\tadd: function (type, name, value) {\r\n\t\tthis.mappings.push({ type: type, name: name, value: value });\r\n\t}\r\n};\r\n\r\nvar BluefinErrorCodes = {};\r\nconstants.add(BluefinErrorCodes, \"BlankField\", 1000);\r\nconstants.add(BluefinErrorCodes, \"InputTooShort\", 1001);\r\nconstants.add(BluefinErrorCodes, \"InputTooLong\", 1002);\r\nconstants.add(BluefinErrorCodes, \"InputNotNumeric\", 1003);\r\nconstants.add(BluefinErrorCodes, \"InvalidCreditCard\", 1004);\r\nconstants.add(BluefinErrorCodes, \"InvalidExpiration\", 1005);\r\n\r\nvar BluefinFieldNames = {};\r\nconstants.add(BluefinFieldNames, \"CreditCard\", \"number\");\r\nconstants.add(BluefinFieldNames, \"Cvv\", \"cvv\");\r\nconstants.add(BluefinFieldNames, \"Expiration\", \"expy\");\r\nconstants.add(BluefinFieldNames, \"BankAccount\", \"bank account\");\r\nconstants.add(BluefinFieldNames, \"RoutingNumber\", \"routing number\");\r\n\r\nvar CreditCardProviders = {};\r\nconstants.add(CreditCardProviders, \"Bluefin\", \"BLUE\");\r\nconstants.add(CreditCardProviders, \"Braintree\", \"BRAINTREE\");\r\nconstants.add(CreditCardProviders, \"CardConnect\", \"CCONNECT\");\r\nconstants.add(CreditCardProviders, \"CyberSource\", \"CYB_SOURCE\");\r\nconstants.add(CreditCardProviders, \"Tsys\", \"TSYS\");\r\n\r\n\r\n//Function that actually applies all of the properties to the objects.\r\nconstants.mappings.forEach((constant) => {\r\n\tObject.defineProperty(constant.type, constant.name, { value: constant.value, writable: false, enumerable: true, configurable: true });\r\n});\r\n\r\nmodule.exports = {\r\n\tBluefinErrorCodes,\r\n\tBluefinFieldNames,\r\n\tCreditCardProviders\r\n};\r\n","\"use strict\";\r\n\r\n// WizardConstants\r\nvar Constants = {};\r\n\r\nConstants.WIZARDS = {\r\n\tACCOUNT_MESSAGES: \"wizardAccountDisplayMessages\",\r\n\tBUTTON_LABELS: \"wizardButtonLabels\",\r\n\tCHILD_COMMUNICATIONS_MESSAGES: \"wizardChildCommunicationsWriteDisplayMessages\",\r\n\tCOMPANY_ERROR_MESSAGES: \"wizardCompanyErrorMessages\",\r\n\tCHECKOUT_MESSAGES: \"wizardCheckoutDisplayMessages\",\r\n\tCOUPON_DISPLAY_MESSAGES: \"wizardCouponDisplayMessages\",\r\n\tCREDIT_CARD_MESSAGES: \"wizardCreditCardDisplayMessages\",\r\n\tDOCUMENTS_CONFIGURATION: \"wizardDocumentsConfiguration\",\r\n\tDOCUMENTS_DISPLAY_MESSAGES: \"wizardDocumentsDisplayMessages\",\r\n\tEMAIL_SUBSCRIPTIONS: \"wizardEmailSubscriptions\",\r\n\tEMAIL_SUBSCRIPTION_MESSAGES: \"wizardEmailSubscriptionDisplayMessages\",\r\n\tEVENT_REGISTRATION_DISPLAY_MESSAGES: \"wizardEventRegistrationDisplayMessages\",\r\n\tEVENT_SEARCH: \"wizardEventSearch\",\r\n\tFORM_VALIDATION_MESSAGES: \"wizardFormValidationDisplayMessages\",\r\n\tLAST_MINUTE_DONATION_UPSELL: \"wizardLastMinuteDonationUpsell\",\r\n\tLOGIN_MESSAGES: \"wizardLoginDisplayMessages\",\r\n\tPAYPAL_MESSAGES: \"wizardPayPalDisplayMessages\",\r\n\tPLEDGE_STATEMENT_ENTRY: \"wizardPledgeStatementEntry\",\r\n\tPRODUCT_DOWNLOAD_DISPLAY_MESSAGES: \"wizardProductDownloadDisplayMessages\",\r\n\tREPORT_DISPLAY_MESSAGES: \"wizardReportDisplayMessages\",\r\n\tRECURRING_START_DATE_DROPDOWN_VALUES: \"wizardRecurringStartDateDropdownValues\",\r\n\tSAVED_PAYMENT_DISPLAY_MESSAGES: \"wizardSavedPaymentsDisplayMessages\",\r\n\tSHIPPING_MESSAGES: \"wizardShippingDisplayMessages\",\r\n\tSHOPPING_CART_MESSAGES: \"wizardShoppingCartDisplayMessages\",\r\n\tSPONSORSHIP_DEFAULTS: \"wizardSponsorshipDefaults\",\r\n\tSPONSORSHIP_DISPLAY_MESSAGES: \"wizardSponsorshipDisplayMessages\",\r\n\tSUBSCRIPTION_DISPLAY_MESSAGES: \"wizardSubscriptionDisplayMessages\",\r\n\tYEAR_END_GIVING_STATEMENT_DISPLAY_MESSAGES: \"wizardYearEndGivingStatementDisplayMessages\"\r\n};\r\n\r\nConstants.ACCOUNT_MESSAGE_FIELDS = {\r\n\tACCOUNT_CREATE_ERROR: \"accountCreateError\",\r\n\tACCOUNT_PASSWORDS_MISMATCH: \"accountPasswordsMismatch\",\r\n\tEMAIL_MISSING: \"emailMissing\",\r\n\tFORGOT_PASSWORD_ERROR: \"forgotPasswordError\",\r\n\tRESET_TOKEN_MISSING: \"resetTokenMissing\",\r\n\tPASSWORD_CHANGE_ERROR: \"passwordChangeError\",\r\n\tSAVED_PAYMENT_ERROR: \"savedPaymentError\"\r\n};\r\n\r\nConstants.SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS = {\r\n\tCANNOT_DELETE_BECAUSE_OF_RECURRING: \"cannotDeleteBecauseOfRecurring\",\r\n\tSAVED_PAYMENT_FOR_RECURRING_ERROR:\"savedPaymentForRecurringError\",\r\n\tCANNOT_DELETE_BECAUSE_OF_AUTO_RENEWING_SUBSCRIPTION: \"cannotDeleteBecauseOfAutoRenewingSubscription\",\r\n\tSAVED_PAYMENT_FOR_SUBSCRIPTION_ERROR: \"savedPaymentForSubscriptionError\",\r\n\tMAKE_PRIMARY_CONFIRMATION_MESSAGE: \"makePrimaryConfirmation\",\r\n\tMAKE_PRIMARY_CONFIRMATION_CONFIRM_BUTTON_TEXT: \"makePrimaryConfirmButtonText\",\r\n\tMAKE_PRIMARY_CONFIRMATION_CANCEL_BUTTON_TEXT: \"makePrimaryCancelButtonText\",\r\n\tMAKE_PRIMARY_ERROR_TEXT: \"makePrimaryErrorText\",\r\n\tREMOVE_DEFAULT_CONFIRMATION_MESSAGE: \"removeDefaultConfirmation\",\r\n\tREMOVE_DEFAULT_CONFIRMATION_CONFIRM_BUTTON_TEXT: \"removeDefaultConfirmButtonText\",\r\n\tREMOVE_DEFAULT_CONFIRMATION_CANCEL_BUTTON_TEXT: \"removeDefaultCancelButtonText\",\r\n\tREMOVE_DEFAULT_ERROR_TEXT: \"removeDefaultErrorText\"\r\n};\r\n\r\nConstants.BRAINTREE_MESSAGE_FIELDS = {\r\n\tPAYMENT_FORM_UNAVAILABLE: \"paymentFormUnavailable\",\r\n\tCREDIT_CARD_FORM_INVALID: \"creditCardFormInvalid\",\r\n\tTHREEDSECURE_SERVICE_UNAVAILABLE: \"threeDSecureUnavailable\",\r\n\tTHREEDSECURE_VERIFICATION_FAILURE: \"threeDSecureVerificationFailure\"\r\n};\r\n\r\nConstants.BUTTON_LABEL_FIELDS = {\r\n\tYES: \"yesButtonLabel\",\r\n\tNO: \"noButtonLabel\",\r\n\tOK: \"okButtonLabel\",\r\n\tCANCEL: \"cancelButtonLabel\"\r\n};\r\n\r\nConstants.CARDCONNECT_MESSAGE_FIELDS = {\r\n\tCARD_NUMBER_TOKEN: \"tokenMissing\"\r\n};\r\n\r\nConstants.CHECKOUT_MESSAGE_FIELDS = {\r\n\tCHECKOUT_ERROR: \"checkoutError\",\r\n\tGIFT_AMOUNT_INSUFFICIENT: \"giftAmountInsufficient\",\r\n\tGIFT_GROUP_AMOUNT_INSUFFICIENT: \"giftGroupAmountInsufficient\",\r\n\tAVAILABLE_QUANTITY: \"availableQuantity\",\r\n\tITEM_MOVE_FAILED: \"itemMoveFailed\",\r\n\tITEM_REMOVE_FAILED: \"itemRemoveFailed\",\r\n\tINVALID_COUPON_CODE: \"invalidCouponCode\",\r\n\tCOUPON_APPLICATION: \"couponApplication\"\r\n};\r\n\r\nConstants.COUPON_MESSAGE_FIELDS = {\r\n\tDEFAULT_ERROR: \"defaultCouponError\",\r\n\tGEOGRAPHIC_ERROR: \"couponGeographicError\"\r\n};\r\n\r\nConstants.CREDIT_CARD_MESSAGE_FIELDS = {\r\n\tEXPIRATION_DATE_INCOMPLETE: \"expirationDateIncomplete\",\r\n\tEXPIRATION_MONTH_INVALID: \"expirationMonthInvalid\",\r\n\tEXPIRATION_YEAR_INVALID: \"expirationYearInvalid\",\r\n\tVERIFICATION_NUMBER_INVALID: \"verificationNumberInvalid\"\r\n};\r\n\r\nConstants.LAST_MINUTE_DONATION_UPSELL_FIELDS = {\r\n\tCALCULATION: \"lastMinuteDonationCalculation\",\r\n\tAMOUNT: \"lastMinuteDonationAmount\"\r\n};\r\n\r\nConstants.LAST_MINUTE_DONATION_CALCULATION_VALUES = {\r\n\tCONSTITUENT_DECLINED: \"none\",\r\n\tPERCENTAGE: \"percentage\",\r\n\tSTATIC_AMOUNT: \"static\"\r\n};\r\n\r\nConstants.EMAIL_SUBSCRIPTION_MESSAGE_FIELDS = {\r\n\tEMAIL_SUBSCRIPTION_FORM_ERROR: \"emailSubscriptionFormError\",\r\n\tMY_EMAIL_SUBSCRIPTIONS_ERROR: \"myEmailSubscriptionsError\"\r\n};\r\n\r\nConstants.EMAIL_SUBSCRIPTIONS_FIELDS = {\r\n\tAVAILABLE_EMAIL_SUBSCRIPTION_TYPES: \"availableEmailSubscriptionTypes\",\r\n\tDEFAULT_CANCEL_REASON: \"defaultCancelReason\"\r\n};\r\n\r\nConstants.EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields = {\r\n\tAPPLY_GROUP_CODE_ERROR: \"applyGroupCodeError\",\r\n\tADD_TO_CART_GROUP_CODE_ERROR: \"cartGroupCodeError\",\r\n\tDELETE_REGISTRANT: \"deleteRegistrant\"\r\n};\r\n\r\nConstants.EVENT_SEARCH_FIELDS = {\r\n\tDEFAULT_COUNTRY: \"defaultCountry\"\r\n};\r\n\r\nConstants.FORM_VALIDATION_MESSAGE_FIELDS = {\r\n\tREQUIRED_FIELDS: \"requiredFields\",\r\n\tINVALID_DATE: \"invalidDateProvided\"\r\n};\r\n\r\nConstants.LANDING_PAGE_PERMISSION_CATEGORY_CODES = {\r\n\tACCOUNT: \"ACCOUNT\",\r\n\tACCOUNT_MARKETING: \"ACCTMKATTR\"\r\n};\r\n\r\nConstants.LOGIN_MESSAGE_FIELDS = {\r\n\tLOGIN_ERROR: \"loginError\",\r\n\tLOGOUT_ERROR: \"logoutError\"\r\n};\r\n\r\nConstants.PAYPAL_MESSAGE_FIELDS = {\r\n\tCREATE_ERROR: \"payPalCreateError\",\r\n\tCHECKOUT_ERROR: \"payPalCheckoutError\",\r\n\tADDITIONAL_INFORMATION_REQUIRED: \"payPalAdditionalInformationRequired\"\r\n};\r\n\r\nConstants.PLEDGE_STATEMENT_ENTRY_FIELDS = {\r\n\tINVALID_ACCOUNT_OR_PLEDGE_STATEMENT_MESSAGE: \"invalidAccountOrPledgeStatementMessage\",\r\n\tSESSION_ABANDONMENT_WARNING_MESSAGE: \"pledgeStatementSessionAbandonmentWarningMessage\"\r\n};\r\n\r\nConstants.PRODUCT_DOWNLOAD_MESSAGE_FIELDS = {\r\n\tUNDOWNLOADABLE_ERROR: \"undownloadableError\"\r\n};\r\n\r\n\r\nConstants.PROJECT_COMPLETION_DEFAULTS_REQUIRE_DONATION_VALUES = {\r\n\tNO: \"no\",\r\n\tWITH_PREMIUM: \"premium\",\r\n\tYES: \"yes\"\r\n};\r\n\r\nConstants.SHIPPING_MESSAGE_FIELDS = {\r\n\tSHIPPING_METHOD_MISSING: \"shippingMethodMissing\",\r\n\tGIFT_RECIPIENT_MISSING: \"giftRecipientMissing\",\r\n\tSHIPPING_ADDRESS_INCOMPLETE: \"shippingAddressIncomplete\",\r\n\tSHIPPING_ADDRESS_MISSING: \"shippingAddressMissing\",\r\n\tNEW_SHIPPING_ADDRESS_INCOMPLETE: \"newShippingAddressIncomplete\",\r\n\tSHIPPING_METHOD_NOT_AVAILABLE: \"shippingMethodNotAvailable\",\r\n\tSHIPPING_METHOD_FREE: \"shippingMethodFree\",\r\n\tSHIPPING_INCALCULABLE: \"shippingIncalculable\"\r\n};\r\n\r\nConstants.SHOPPING_CART_MESSAGE_FIELDS = {\r\n\tADD_TO_CART_ERROR: \"addToCartError\"\r\n};\r\n\r\nConstants.SPONSORSHIP_DEFAULTS_FIELDS = {\r\n\tDEFAULT_AMOUNT: \"defaultAmount\",\r\n\tDEFAULT_FREQUENCY: \"defaultFrequency\"\r\n};\r\n\r\nConstants.SPONSORSHIP_DISPLAY_MESSAGES_FIELDS = {\r\n\tSPONSORSHIP_NOT_AVAILABLE: \"sponsorshipNotAvailable\"\r\n};\r\n\r\nConstants.TOKENEX_MESSAGE_FIELDS = {\r\n\tTOKEN_MISSING: \"tokenMissing\"\r\n};\r\n\r\nConstants.TSYS_TSEP_MESSAGE_FIELDS = {\r\n\tGENERIC: \"generic\"\r\n};\r\n\r\nConstants.YEAR_END_GIVING_STATEMENT_MESSAGE_FIELDS = {\r\n\tINVALID_DATE: \"invalidDateProvided\",\r\n\tINVALID_DATE_RANGE: \"invalidDateRange\"\r\n};\r\n\r\nConstants.DOCUMENTS_COFIGURATION_FIELDS = {\r\n\tSHOULD_OPEN_PDF_IN_NEW_TAB: \"shouldOpenPdfDocumentsInNewTab\"\r\n}\r\n\r\nConstants.DOCUMENTS_DISPLAY_MESSAGES_FIELDS = {\r\n\tDOWNLOAD_UNAVAILABLE: \"downloadUnavailable\",\r\n\tDOWNLOAD_UNAUTHORIZED: \"downloadUnauthorized\",\r\n\tDOWNLOAD_ERROR: \"downloadError\",\r\n\tDOCUMENT_TYPE_CHANGED: \"documentTypeChanged\",\r\n\tDOCUMENT_TYPE_ERROR: \"documentTypeError\"\r\n}\r\n\r\nConstants.REPORT_DISPLAY_MESSAGES_FIELDS = {\r\n\tDOWNLOAD_ERROR: \"downloadError\",\r\n\tREPORT_CONFIGURATION_CHANGED: \"reportConfigurationChanged\"\r\n}\r\n\r\nmodule.exports = Constants;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar SimpleDropdownFromWizard = require(\"../commonComponents/SimpleDropdownFromWizard\");\r\n\r\nclass CommunicationTypeSelector extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<SimpleDropdownFromWizard\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tconfig={this.props.communicationTypeConfig}\r\n\t\t\t\twizard={ContactUsStore.get(\"wizardCommunicationTypes\")}\r\n\t\t\t\twizardValuesKey=\"allowedCommunicationTypes\"\r\n\t\t\t\tconfigKey=\"availableCommunicationTypes\"\r\n\t\t\t\treactComponentName=\"CommunicationTypeSelector\"\r\n\t\t\t\tselectClassName=\"communication-type-selector\"\r\n\t\t\t\toptionsClassName=\"availableCommunicationTypes\"\r\n\t\t\t\tselectNameAttribute=\"communication.type\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nCommunicationTypeSelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tcommunicationTypeConfig: PropTypes.object,\r\n\trequired: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string\r\n};\r\n\r\nmodule.exports = CommunicationTypeSelector;\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\n\r\nLogger.useDefaults({\r\n\tdefaultLevel: Logger.ERROR\r\n});\r\n\r\nmodule.exports = {\r\n\tContactUsActions: require(\"../actions/ContactUsActions\"),\r\n\tContactUsStore: require(\"../stores/ContactUsStore\"),\r\n\tCommunicationTypeSelector: require(\"./CommunicationTypeSelector\")\r\n};","\"use strict\";\r\n\r\nif (!Object.assign) {\r\n\tObject.assign = require(\"object-assign\");\r\n}\r\n\r\nvar keyMirror = require(\"keyMirror\");\r\n\r\nvar Constants = keyMirror({\r\n\tUPDATE_SUBJECT: null,\r\n\tUPDATE_BODY: null,\r\n\tCOPIED: null,\r\n\tSELECT_LAYOUT: null,\r\n\tADD_LAYOUT: null,\r\n\tLAYOUT_DELETE: null,\r\n\tLAYOUT_DELETED: null,\r\n\tLAYOUT_DELETE_FAILED: null,\r\n\tLAYOUT_SAVE: null,\r\n\tLAYOUT_SAVED: null,\r\n\tLAYOUT_SAVE_FAILED: null,\r\n\tLAYOUT_SAVE_CANCELLED: null,\r\n\tLAYOUT_SAVED_AS: null, // Store Constant\r\n\tLAYOUT_SAVE_AS: null, // Action Constant\r\n\tLAYOUT_SAVE_AS_FAILED: null,\r\n\tLAYOUT_SAVE_AS_CANCELLED: null,\r\n\tLAYOUT_SAVE_DRAFT: null,\r\n\tLAYOUT_SET_SEO_DATA: null,\r\n\tDND_COMPONENT_MOVED: null,\r\n\tDND_COMPONENT_DROPPED: null,\r\n\tDND_COMPONENT_LOADED: null,\r\n\tDND_COMPONENT_UNLOADED: null,\r\n\tIFRAME_LOADED: null,\r\n\tIFRAME_CLICKED: null,\r\n\tIFRAME_DOUBLE_CLICKED: null,\r\n\tSET_PROPERTY: null,\r\n\tPROPERTIES_SAVED: null,\r\n\tPROPERTIES_SAVE_FAILED: null,\r\n\tDELETE_SELECTED_ELEMENT: null,\r\n\tCHANGE_EVENT: null,\r\n\tIFRAME_CLICKED_EVENT: null,\r\n\tIFRAME_CLICKED_EVENT_FOR_PROPERTY_EDITOR: null,\r\n\tSET_MODIFIER_SELECTED: null,\r\n\tSET_PSEUDOCLASS_SELECTED: null,\r\n\tCHILD_COMPONENT_LOADED: null,\r\n\tCHILD_COMPONENT_UNLOADED: null,\r\n\tSTYLE_SHEET_RULE_REPLACED: null,\r\n\tSTYLE_SHEET_RULE_DELETED: null,\r\n\tRECEIVE_PROPERTY_EDITOR_DATA: null,\r\n\tRECEIVE_PAGE_STORE_DATA: null,\r\n\tTAB_SELECTED: null,\r\n\tSET_TABS: null,\r\n\tLAYOUT_PUBLISH: null,\r\n\tLAYOUT_PUBLISH_SUCCESS: null,\r\n\tLAYOUT_PUBLISH_FAILED: null,\r\n\tSTYLE_GUIDE_COMPONENT_GROUP_SELECTED: null,\r\n\tSTYLE_GUIDE_COMPONENT_SELECTED: null,\r\n\tSTYLE_GUIDE_RESET_REACT_COMPONENTS: null,\r\n\tRECEIVE_STYLEGUIDE_STORE_DATA: null,\r\n\tRECEIVE_COMPONENT_STORE_DATA: null,\r\n\tRESET_COMPONENT: null,\r\n\tRESET_COMPONENT_FAILED: null,\r\n\tTHEME_SELECTED: null,\r\n\tTHEMED_COMPONENT_SAVE_PENDING: null,\r\n\tTHEMED_COMPONENT_SAVE_SUCCESS: null,\r\n\tTHEMED_COMPONENT_SAVE_FAILED: null,\r\n\tTHEME_SAVE_PENDING: null,\r\n\tTHEME_SAVE_SUCCESS: null,\r\n\tTHEME_SAVE_FAILED: null,\r\n\tTHEME_SAVE_AS: null,\r\n\tTHEME_SAVED_AS: null,\r\n\tTHEME_SAVE_AS_FAILED: null,\r\n\tTHEME_SAVE_AS_CANCELLED: null,\r\n\tTHEME_DEACTIVATE: null,\r\n\tTHEME_DEACTIVATED: null,\r\n\tTHEME_DEACTIVATE_FAILED: null,\r\n\tTHEME_REACTIVATE: null,\r\n\tTHEME_REACTIVATED: null,\r\n\tTHEME_REACTIVATE_FAILED: null,\r\n\tSAVE_REACT_PROPERTIES: null,\r\n\tABANDON_UNSAVED_THEME_CHANGES: null,\r\n\tTHEMED_COMPOMENTS_FETCHED: null,\r\n\tTHEMED_COMPOMENTS_FETCH_FAILED: null,\r\n\tWIZARD_RECEIVE_STORE_DATA: null,\r\n\tTHEMED_COMPOMENTS_FETCH_FAILED: null,\r\n\tSITE_THEME_CHANGE_PENDING: null,\r\n\tSITE_THEME_CHANGE_SUCCESS: null,\r\n\tSITE_THEME_CHANGE_FAILED: null,\r\n\tGENERIC_CHANGES: null, // used to trigger unsaved changes\r\n\tSELECT_PAGE: null,\r\n\tSELECT_PAGE_TYPE: null,\r\n\tDEVICE_SELECTED: null,\r\n\tAPPLY_THEME_PENDING: null,\r\n\tAPPLY_THEME_SUCCESS: null,\r\n\tAPPLY_THEME_FAILED: null,\r\n\tREVERT_TO_DRAFT_PENDING: null,\r\n\tREVERT_TO_DRAFT_SUCCESS: null,\r\n\tREVERT_TO_DRAFT_FAILED: null,\r\n\tPUBLISH_THEME_PENDING: null,\r\n\tPUBLISH_THEME_SUCCESS: null,\r\n\tPUBLISH_THEME_FAILED: null,\r\n\tREVERT_TO_PUBLISHED_PENDING: null,\r\n\tREVERT_TO_PUBLISHED_SUCCESS: null,\r\n\tREVERT_TO_PUBLISHED_FAILED: null,\r\n\tTURN_EDITMODE_OFF: null,\r\n\tIFRAME_RESIZED: null,\r\n\tGET_QUERY_PARAM_OVERRIDES_PENDING: null,\r\n\tGET_QUERY_PARAM_OVERRIDES_SUCCESS: null,\r\n\tGET_QUERY_PARAM_OVERRIDES_FAILED: null,\r\n\tCATEGORY_INITIALIZE: null,\r\n\tCAROUSEL_INITIALIZE: null,\r\n\tCAROUSEL_NEXT_PAGE: null,\r\n\tCAROUSEL_PREVIOUS_PAGE: null,\r\n\tCAROUSEL_TOUCH_START: null,\r\n\tCAROUSEL_TOUCH_END: null,\r\n\tCART_UPDATE_CHARGE_TODAY: null,\r\n\tCART_UPDATE_FREQUENCY: null,\r\n\tCART_UPDATE_PRODUCT_OPCO_DISCOUNT: null, // used to update subtotal when OPCO coupon is applied.\r\n\tCART_UPDATE_PRODUCT_PRICE: null, // used to update price when suggested donation amount is changed.\r\n\tCART_UPDATE_QUANTITY: null,\r\n\tCART_UPDATE_USE_ON_DAY: null,\r\n\tCONTACT_US_INITIALIZE: null,\r\n\tDONATION_UPSELL_UPDATE: null,\r\n\tEMAIL_SUBSCRIPTION_INITIALIZE: null,\r\n\tEXPANDER_INITIALIZE: null,\r\n\tADMIN_LOGIN_INITIALIZE: null,\r\n\tLOGOUT_INITIALIZE: null,\r\n\tTABS_INITIALIZE: null,\r\n\tNAVIGATION_INITIALIZE: null,\r\n\tACCOUNT_INITIALIZE: null,\r\n\tCHECKOUT_BLUEFIN_TOKENIZATION_FAILED: null,\r\n\tCHECKOUT_BLUEFIN_TOKENIZATION_SUCCESS: null,\r\n\tCHECKOUT_INITIALIZE: null,\r\n\tPLEDGE_INITIALIZE: null,\r\n\tPLEDGE_SET_GIFT_AMOUNT: null,\r\n\tPLEDGE_SET_MINIMUM_AMOUNT: null,\r\n\tPRODUCT_INITIALIZE: null,\r\n\tPRODUCT_INITIALIZE_SUGGESTED_DONATION: null,\r\n\tPRODUCT_SET_QUANTITY: null,\r\n\tPRODUCT_SET_SUGGESTED_DONATION: null,\r\n\tSHIPPING_CANNOT_BE_CALCULATED: null,\r\n\tSHIPPING_IS_ALL_FREE: null,\r\n\tSHIPPING_REQUEST_PENDING: null,\r\n\tSHIPPING_UPDATED: null,\r\n\tSHIPPING_UPDATE_FAILED: null,\r\n\tSHIPPING_METHOD_UPDATED: null,\r\n\tSHIPTO_INITIALIZE: null,\r\n\tSHIPTO_SET_SELECTOR: null,\r\n\tTAX_UPDATED: null,\r\n\tTAX_UPDATE_FAILED: null,\r\n\tSLIDESHOW_INITIALIZE: null,\r\n\tSLIDESHOW_CHANGE_SLIDE: null,\r\n\tSLIDESHOW_STARTED: null,\r\n\tSLIDESHOW_STOPPED: null,\r\n\tSLIDESHOW_TOUCH_START: null,\r\n\tSLIDESHOW_TOUCH_END: null,\r\n\tPLEDGE_SET_FREQUENCY: null,\r\n\tTOGGLE_CREATE_ACCOUNT_FORM_INPUTS: null,\r\n\tSPONSORSHIP_AVAILABLITY: null,\r\n\tEVENT_SEARCH_INITIALIZE: null\r\n});\r\n\r\n// Layout Designer page URL consants\r\nConstants.LANDING_PAGE_TYPES = {\r\n\tACCOUNT: \"Account\",\r\n\tCONFIRMATION: \"Confirmation\",\r\n\tEVENT_SEARCH: \"EventSearch\",\r\n\tWIDGET: \"Widget\"\r\n};\r\n\r\n// Widget page types\r\nConstants.WIDGET_TYPES = {\r\n\tDONATION: \"Donation\",\r\n\tEMAIL_SUBSCRIPTION: \"Email Subscription\"\r\n};\r\n\r\n//Account states\r\nConstants.ACCOUNT_STATES = {\r\n\tUNIDENTIFIED: \"accountState.unidentified\",\r\n\tIDENTIFIED: \"accountState.identified\",\r\n\tLOGGEDIN: \"accountState.loggedIn\"\r\n};\r\n\r\n//Account types\r\nConstants.ACCOUNT_TYPES = {\r\n\tINDIVIDUAL: \"accountType.individual\",\r\n\tORGANIZATION: \"accountType.organization\"\r\n};\r\n\r\nConstants.DATE_FORMATS = {\r\n\tSE_API_DATE_FORMAT: \"YYYY-MM-DD\"\r\n};\r\n\r\n// Tangible Types\r\nConstants.TANGIBLE_TYPES = {\r\n\tCHILD: \"CHILD\",\r\n\tPLEDGES: \"PLEDGES\",\r\n\tPRODUCTS: \"PRODUCTS\",\r\n\tPROJECTS: \"PROJECTS\",\r\n\tSECURE_PLEDGES: \"SECURE_PLEDGES\",\r\n\tSECURE_PROJECTS: \"SECURE_PROJECTS\"\r\n};\r\n\r\n// Cart item types\r\nConstants.CART_ITEM_EVENT = \"event\";\r\nConstants.CART_ITEM_PRODUCT = \"product\";\r\nConstants.CART_ITEM_PROJECT = \"project\";\r\nConstants.CART_ITEM_PROJECT_PREMIUM = \"premium\";\r\nConstants.CART_ITEM_SUBSCRIPTION = \"subscription\";\r\n\r\n// Cart Types\r\nConstants.CART_TYPES = { SHOPPING_CART: \"CURRENT\", SAVE_FOR_LATER: \"SFL\" };\r\n\r\n// Various\r\nConstants.COLUMN_COMPONENTS = [\"even01Column\", \"even02Column\", \"even03Column\", \"even04Column\", \"even06Column\", \"even12Column\", \"two01Column\", \"two02Column\", \"two03Column\", \"two04Column\", \"two05Column\", \"two06Column\", \"two07Column\", \"two08Column\", \"two09Column\", \"two10Column\", \"two11Column\", \"three02Column\", \"three04Column\", \"three06Column\", \"three08Column\", \"three10Column\"];\r\nConstants.COLUMN_SUBCOMPONENTS = [\"even01Column.column\", \"even02Column.column\", \"even03Column.column\", \"even04Column.column\", \"even06Column.column\", \"even12Column.column\", \"two01Column.column\", \"two02Column.column\", \"two03Column.column\", \"two04Column.column\", \"two05Column.column\", \"two06Column.column\", \"two07Column.column\", \"two08Column.column\", \"two09Column.column\", \"two10Column.column\", \"two11Column.column\", \"three02Column.column\", \"three04Column.column\", \"three06Column.column\", \"three08Column.column\", \"three10Column.column\"];\r\nConstants.CONTAINER_COMPONENTS = Constants.COLUMN_COMPONENTS.concat([\"expanderContainer\", \"tabsContainer\", \"accountState\", \"accountType\", \"slideShow\", \"hideWhen\"]);\r\nConstants.CONTAINER_SUBCOMPONENTS = Constants.COLUMN_SUBCOMPONENTS.concat([\"expanderContainer.expander\", \"expanderContainer.expander.content\", \"tabsContainer.contentContainer\", \"tabsContainer.contentContainer.content\", \"tabsContainer.tabsList\", \"tabsContainer.tabsList.tab\", \"accountState.unidentified\", \"accountState.identified\", \"accountState.loggedIn\", \"accountType.individual\", \"accountType.organization\", \"slideShow.slideDeck.slide\"]);\r\n\r\nConstants.COUNTRIES = { US: \"US\", USA: \"USA\" };\r\n\r\nConstants.PROPERTY_CATEGORY_SUFFIX = \"DesignOnly\";\r\n\r\nConstants.KEYS = { ARROW_UP: 38, ARROW_RIGHT: 39, ARROW_DOWN: 40, ARROW_LEFT: 37, BACKSPACE: 8, DELETE: 46, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, PAGE_DOWN: 34, PAGE_UP: 33, TAB: 9, DECIMAL: 190, NUM_PAD_DECIMAL: 110, SPACE: 32, MINUS: 189, NUM_PAD_MINUS: 109 };\r\n\r\n// Dynamic Property Constants\r\nConstants.DYNAMIC_PROPERTY_GROUP_NAMES = [\"dynamic\", \"dynamicPledge\"];\r\nConstants.DYNAMIC_PROPERTY_MAPS = {\r\n\t\"dynamic\": {\r\n\t\tpropertyValue: \"data-dynamic\",\r\n\t\tpropertyName: \"data-dynamic-property\"\r\n\t},\r\n\r\n\t\"dynamicPledge\": {\r\n\t\tpropertyValue: \"data-dynamic-pledge\",\r\n\t\tpropertyName: \"data-dynamic-pledge-property\"\r\n\t}\r\n};\r\n\r\n//SmartyStreets Constants\r\nConstants.SMARTYSTREETS_DELIVERY_POINT_VALIDATION_STATUSES = { CONFIRMED: \"Y\", NOT_CONFIRMED: \"N\", CONFIRMED_BY_DROPPING_SECONDARY: \"S\", CONFIRMED_MISSED_SECONDARY_INFO: \"D\" };\r\nConstants.SMARTYSTREETS_ADDRESS_VERIFICATION_STATUSES = { NONE: \"NONE\", VERIFIED: \"Verified\", PARTIAL: \"Partial\" };\r\nConstants.SMARTYSTREETS_ADDRESS_PRECISIONS = { NONE: \"NONE\", STATE: \"AdministrativeArea\", CITY: \"Locality\", STREET: \"Thoroughfare\" };\r\nConstants.SMARTYSTREETS_DELIVERY_POINT_VALIDATION_STATUSES = { CONFIRMED_MISSING_SECONDARY: \"N1\", CONFIRMED_WITHOUT_PRIVATE_MAILBOX_INFO: \"R1\" };\r\nConstants.SMARTYSTREETS_FOOTNOTES = { MISSING_SECONDARY_INFORMATION: \"H#\" };\r\nConstants.SMARTYSTREETS_ADDRESS_COMPONENTS = {\r\n\tPRIMARY_NUMBER: \"primary_number\", STREET_PREDIRECTION: \"street_predirection\", STREET_NAME: \"street_name\", STREET_POSTDIRECTION: \"street_postdirection\",\r\n\tSTREET_SUFFIX: \"street_suffix\", SECONDARY_DESIGNATOR: \"secondary_designator\", SECONDARY_NUMBER: \"secondary_number\", EXTRA_SECONDARY_DESIGNATOR: \"extra_secondary_designator\",\r\n\tEXTRA_SECONDARY_NUMBER: \"extra_secondary_number\", CITY: \"city_name\", STATE_ABBREVIATION: \"state_abbreviation\", ZIPCODE: \"zipcode\", ZIPCODE_PLUS_FOUR: \"plus4_code\",\r\n\tDELIVERY_LINE_1: \"delivery_line_1\", DELIVERY_LINE_2: \"delivery_line_2\", URBANIZATION: \"urbanization\"\r\n};\r\n//General Address Verification Constants\r\nConstants.ADDRESS_VERIFICATION_PROVIDERS = { SMARTYSTREETS: \"SmartyStreets\" };\r\nConstants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES = { VERIFIED: \"data-address-verified\", USER_CERTIFIED: \"data-user-verified\", ERROR: \"data-address-verification-error\" };\r\nConstants.ADDRESS_VERIFICATION_STATUSES = { VERIFIED: \"Verified\", USER_CERTIFIED: \"UserCertified\", ERROR: \"Error\" };\r\n\r\n//Server Enums\r\nConstants.APPROVAL_TYPES = { \"NOTNEEDED\": \"NotNeeded\", \"PENDING\": \"Pending\", \"APPROVED\": \"Approved\", \"REJECTED\": \"Rejected\", \"FAILED\": \"Failed\" };\r\nConstants.DEVICE_TYPES = { \"MOBILE\": \"mobile\", \"TABLET\": \"tablet\", \"DESKTOP\": \"desktop\" };\r\nConstants.LAYOUT_STATUSES = { \"ACTIVE\": \"Active\", \"INACTIVE\": \"Inactive\", \"DELETED\": \"Deleted\" };\r\nConstants.LAYOUT_VERSIONS = { \"DRAFT\": \"Draft\", \"PUBLISHED\": \"Published\", \"UNPUBLISHED\": \"Unpublished\" };\r\nConstants.THEME_VERSIONS = { \"DRAFT\": \"Draft\", \"APPLIED\": \"Applied\", \"PUBLISHED\": \"Published\", \"UNPUBLISHED\": \"Unpublished\" };\r\n\r\nConstants.DEVICE_MIN_WIDTHS = { \"MOBILE\": 0, \"TABLET\": 768, \"DESKTOP\": 992 };\r\n\r\n//Server Constants\r\nConstants.QUERY_PARAMETER_OVERRIDES = { CUSTOM_PREFIX: \"custom-\" };\r\n\r\n// Coupon Constants\r\nConstants.COUPON_ERRORS = {\r\n\tGEO_RESTRICTION_INFO_NEEDED: \"A valid account or country code and postal code combination must be provided to use this coupon.\"\r\n};\r\n\r\n//Category Editors\r\nConstants.CATEGORY_EDITORS = { \"POSITIONING\": \"Positioning\" };\r\n\r\nConstants.MICROSOFT_IDENTITY_PLATFORM = {\r\n\tACCOUNT_ID_KEY: \"msIdpAccountId\",\r\n\tAUTHORITY_ROOT_URL: \"https://login.microsoftonline.com\",\r\n\tCACHE_LOCATION: \"sessionStorage\",\r\n\tCOMMON_TENANT_ID: \"common\",\r\n\tERROR_CODES: {\r\n\t\tINVALID_CLIENT: \"invalid_client\",\r\n\t\tINVALID_RESOURCE: \"invalid_resource\",\r\n\t\tUNAUTHORIZED_CLIENT: \"unauthorized_client\",\r\n\t\tUSER_CANCELED: \"user_cancelled\"\r\n\t}\r\n};\r\n\r\nConstants.APPLE_PAY_PROPERTY_DEFAULTS = {\r\n\tBUTTON_STYLE: \"black\",\r\n\tWIDTH: \"160px\",\r\n\tHEIGHT: \"48px\",\r\n\tPADDING: \"0px\",\r\n\tBORDER_RADIUS: \"100vh\",\r\n\tBOX_SIZING: \"content-box\"\r\n};\r\n\r\nConstants.CHECKOUT_VALIDATION_TYPES = {\r\n\tCREATE_ACCOUNT_AND_CHECKOUT: \"CACO\",\r\n\tSAVED_PAYMENT_CHECKOUT: \"SPCO\",\r\n\tALTERNATIVE_BUTTON_CHECKOUT: \"ABCO\"\r\n};\r\n\r\nConstants.SECURE_PAGE_TYPES = {\r\n\tPROJECT: \"Project\",\r\n\tPLEDGE: \"Pledge\"\r\n};\r\n\r\nConstants.BILLING_ADDRESS_SELECTION_TYPES = {\r\n\tDEFAULT: \"DEFAULT\",\r\n\tEXISTING: \"EXISTING\",\r\n\tNEW: \"NEW\",\r\n\tNEW_PRIMARY: \"NEW_PRIMARY\",\r\n\tNEW_SHIPPING: \"NEW_SHIPPING\",\r\n};\r\n\r\nmodule.exports = Constants;\r\n","\"use strict\";\r\n\r\nvar Dispatcher = require('flux').Dispatcher;\r\n\r\nvar originalDispatch = Dispatcher.prototype.dispatch;\r\n\r\nDispatcher.prototype.dispatch = function () {\r\n\tif (this._isDispatching) {\r\n\t\t// HACK: does not guarantee ordering of dispatches\r\n\t\tvar dispatchArguments = arguments;\r\n\t\tvar timer = setInterval(() => {\r\n\t\t\tif (!Dispatcher._isDispatching) {\r\n\t\t\t\tclearInterval(timer);\r\n\t\t\t\toriginalDispatch.apply(this, dispatchArguments);\r\n\t\t\t}\r\n\t\t}, 100);\r\n\t} else {\r\n\t\toriginalDispatch.apply(this, arguments);\r\n\t}\r\n};\r\n\r\nmodule.exports = new Dispatcher();\r\n","\"use strict\";\r\n\r\nvar RegExpHelper = {\r\n\tgetCalcExpression: function (value) {\r\n\t\t// See https://developer.mozilla.org/en-US/docs/Web/CSS/calc\r\n\t\t// regex originally from https://codepen.io/benfoster/pen/VPjLdQ\r\n\t\treturn value.match(/calc\\(( )?([\\d\\.]+(%|vh|vw|vmin|vmax|em|rem|px|cm|ex|in|mm|pc|pt|ch|q|deg|rad|grad|turn|s|ms|hz|khz))( )+[+\\-\\*\\/]( )+(\\-)?([\\d\\.]+(%|vh|vw|vmin|vmax|em|rem|px|cm|ex|in|mm|pc|pt|ch|q|deg|rad|grad|turn|s|ms|hz|khz))( )?\\)/i);\r\n\t},\r\n\r\n\tgetColorName: function (value) {\r\n\t\treturn value.match(/^[a-z]{3,}$/i);\r\n\t},\r\n\r\n\tgetCSSLength: function (value) {\r\n\t\treturn value.match(/-*\\d+([a-z]{2,4}|%)/ig);\r\n\t},\r\n\r\n\tgetHexColor: function (value) {\r\n\t\tif (value.length === 7) {\r\n\t\t\treturn value.match(/#([a-f0-9]{6})/i);\r\n\t\t} else if (value.length === 4) {\r\n\t\t\treturn value.match(/#([a-f0-9]{3})/i);\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t},\r\n\r\n\tgetRgbColor: function (value) {\r\n\t\treturn value.match(/rgb\\((\\d{1,3}), *(\\d{1,3}), *(\\d{1,3})\\)/i);\r\n\t},\r\n\r\n\tgetRgbaColor: function (value) {\r\n\t\treturn value.match(/rgba\\((\\d{1,3}), *(\\d{1,3}), *(\\d{1,3}), *(0\\.\\d{1,}|\\.\\d{1,}|0|1)\\)/i);\r\n\t},\r\n\r\n\tgetEndingScriptTags: function (value) {\r\n\t\treturn value.match(/<\\/script>/ig);\r\n\t},\r\n\r\n\tgetMatchingScriptTags: function (value) {\r\n\t\treturn value.match(/<script[^>]*>[^<]*<\\/script>/ig);\r\n\t},\r\n\r\n\tgetStartingScriptTags: function (value) {\r\n\t\treturn value.match(/<script[^>]*>/ig);\r\n\t},\r\n\r\n\tisCalcExpression: function (value) {\r\n\t\treturn RegExpHelper.getCalcExpression(value) ? true : false;\r\n\t},\r\n\r\n\tisColorName: function (value) {\r\n\t\t//validates that the value is in the color name format, not that it is a valid CSS color name\r\n\t\treturn RegExpHelper.getColorName(value) ? true : false;\r\n\t},\r\n\r\n\tisCSSLength: function (value) {\r\n\t\treturn RegExpHelper.getCSSLength(value) ? true : false;\r\n\t},\r\n\r\n\tisCSSNumber: function (value) {\r\n\t\t//see https://developer.mozilla.org/en-US/docs/Web/CSS/number#Interpolation\r\n\t\t//A regex to validate CSS number formats is unnecessary as the following tests suffice:\r\n\t\tif (value === null || value === \"\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (!isNaN(+value)) {\r\n\t\t\t// \"12.\" is a valid number, but not a valid CSS number\r\n\t\t\tif (typeof value === \"string\" && value[value.length - 1] === \".\") {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tisCSSURL: function (value) {\r\n\t\t//supports both absolute and relative url paths\r\n\t\treturn /^(http|https):\\/\\/[^ \"]+$|^[^ \"]+$/.test(value);\r\n\t},\r\n\r\n\tisHexColor: function (value) {\r\n\t\treturn RegExpHelper.getHexColor(value) ? true : false;\r\n\t},\r\n\r\n\tisRgbColor: function (value) {\r\n\t\treturn RegExpHelper.getRgbColor(value) ? true : false;\r\n\t},\r\n\r\n\tisRgbaColor: function (value) {\r\n\t\treturn RegExpHelper.getRgbaColor(value) ? true : false;\r\n\t},\r\n\r\n\tisAlphaNumeric: function (value) {\r\n\t\treturn value === undefined || value === null ? false : /^[a-z0-9]+$/i.test(value);\r\n\t},\r\n\r\n\tisNumeric: function (value) {\r\n\t\treturn value === undefined || value === null ? false : /^[0-9]+$/i.test(value);\r\n\t},\r\n\r\n\t// If value is \"/countries/{countryName}/states\", the \"{countryName}\" will be replaced with model.countryName\r\n\treplaceFirstBraceTokenFromObject: function (value, model) {\r\n\t\tvar braceTokenMatchRegularExpression = /.*\\{(.+)\\}.*/;\r\n\t\tvar braceTokenReplaceRegularExpression = /\\{(.+)\\}/;\r\n\r\n\t\tvar matchArray = braceTokenMatchRegularExpression.exec(value);\r\n\t\tif (matchArray[1]) {\r\n\t\t\tvalue = value.replace(braceTokenReplaceRegularExpression, model[matchArray[1]]);\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n};\r\n\r\nmodule.exports = RegExpHelper;","\"use strict\";\r\n\r\nvar GridListToggleHelper = {\r\n\tgridListToggleClicked: function($element, componentName, gridWrapperClass, listWrapperClass) {\r\n\t\tvar $resultsComponent = $element.closest(`[data-component='${componentName}']`);\r\n\t\tvar $gridResults = $resultsComponent.find(`.${gridWrapperClass}`);\r\n\t\tvar $listResults = $resultsComponent.find(`.${listWrapperClass}`);\r\n\t\tif (!$gridResults.length || !$listResults.length) {\r\n\t\t\t//There is only one, break out\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ($element.is(\"[data-component='gridListToggle.gridButton']\")) {\r\n\t\t\t$gridResults.toggle(true);\r\n\t\t\t$listResults.toggle(false);\r\n\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.gridButton']\").addClass(\"resultsSelected\");\r\n\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.listButton']\").removeClass(\"resultsSelected\");\r\n\t\t\t$resultsComponent.attr(\"data-selected-results-view\", \"grid\");\r\n\t\t} else {\r\n\t\t\t$gridResults.toggle(false);\r\n\t\t\t$listResults.toggle(true);\r\n\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.gridButton']\").removeClass(\"resultsSelected\");\r\n\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.listButton']\").addClass(\"resultsSelected\");\r\n\t\t\t$resultsComponent.attr(\"data-selected-results-view\", \"list\");\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeGridListToggle: function(id, previouslySelectedView, componentName, gridWrapperClass, listWrapperClass) {\r\n\t\t//For every search results or category, we are making sure the first is visible and second is not.\r\n\t\t//\tWe are also setting the gridListToggle buttons the appropriate class.\r\n\t\tif (id) {\r\n\t\t\tid = `#${id}`;\r\n\t\t} else {\r\n\t\t\tid = \"\";\r\n\t\t}\r\n\r\n\t\t$(`${id}[data-component='${componentName}']`).each((index, element) => {\r\n\t\t\tvar $resultsComponent = $(element);\r\n\t\t\tvar $results = $resultsComponent.find(`.${gridWrapperClass},.${listWrapperClass}`).first();\r\n\t\t\tvar $gridResults = $resultsComponent.find(`.${gridWrapperClass}`);\r\n\t\t\tvar $listResults = $resultsComponent.find(`.${listWrapperClass}`);\r\n\r\n\t\t\tif (($gridResults.length && previouslySelectedView === \"grid\") || ($results.hasClass(gridWrapperClass) && (previouslySelectedView !== \"list\" || !$listResults.length))) {\r\n\t\t\t\t//Grid is first, so let's make it enabled\r\n\t\t\t\t$gridResults.toggle(true);\r\n\t\t\t\t$listResults.toggle(false);\r\n\t\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.gridButton']\").addClass(\"resultsSelected\");\r\n\t\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.listButton']\").removeClass(\"resultsSelected\");\r\n\t\t\t} else {\r\n\t\t\t\t//List is the first results, so let's make it enabled\r\n\t\t\t\t$gridResults.toggle(false);\r\n\t\t\t\t$listResults.toggle(true);\r\n\t\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.gridButton']\").removeClass(\"resultsSelected\");\r\n\t\t\t\t$resultsComponent.find(\"[data-component='gridListToggle.listButton']\").addClass(\"resultsSelected\");\r\n\t\t\t}\r\n\r\n\t\t\t$(element).find(\"[data-component='gridListToggle.gridButton'],[data-component='gridListToggle.listButton']\").click(event => {\r\n\t\t\t\tthis.gridListToggleClicked($(event.currentTarget), componentName, gridWrapperClass, listWrapperClass);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = GridListToggleHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"WizardStore\");\r\n\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\n\r\nvar Dispatcher = require(\"../Dispatcher\");\r\nvar Constants = require(\"../Constants\");\r\n\r\n// State variables\r\nvar state = {\r\n\twizards: []\r\n};\r\n\r\nvar WizardStore = Object.assign({}, EventEmitter.prototype, {\r\n\tgetState: function () {\r\n\t\treturn state;\r\n\t},\r\n\r\n\tget: function (key) {\r\n\t\treturn state[key];\r\n\t},\r\n\r\n\tgetRawValue: function (name) {\r\n\t\tvar wizard = state.wizards.find(w => w.name === name && w.status === \"Complete\");\r\n\r\n\t\treturn wizard ? wizard.responseModel : null;\r\n\t},\r\n\r\n\tgetValue: function (name, allowIncomplete) {\r\n\t\tvar allowedStatuses = [\"Complete\"];\r\n\t\tif (allowIncomplete) {\r\n\t\t\tallowedStatuses.push(\"Incomplete\");\r\n\t\t}\r\n\r\n\t\tvar wizard = state.wizards.find(w => w.name === name && allowedStatuses.includes(w.status));\r\n\r\n\t\treturn wizard ? JSON.parse(wizard.responseModel) : null;\r\n\t},\r\n\r\n\taddChangeListener: function (callback) {\r\n\t\tthis.on(Constants.CHANGE_EVENT, callback);\r\n\t},\r\n\r\n\tremoveChangeListener: function (callback) {\r\n\t\tthis.removeListener(Constants.CHANGE_EVENT, callback);\r\n\t},\r\n\r\n\temitChange: function () {\r\n\t\tthis.emit(Constants.CHANGE_EVENT);\r\n\t}\r\n});\r\n\r\nWizardStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.WIZARD_RECEIVE_STORE_DATA:\r\n\t\t\tstate.wizards = action.wizards;\r\n\t\t\tbreak;\r\n\r\n\t\tdefault:\r\n\t\t\treturn true;\r\n\t};\r\n\r\n\tWizardStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = WizardStore;\r\n","\"use strict\";\r\n\r\nvar Dispatcher = require(\"flux\").Dispatcher;\r\n\r\nmodule.exports = new Dispatcher();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EventRegistrationHelper\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar SmartyStreets = require(\"../accountComponents/SmartyStreets\");\r\nvar PledgeStatementHelper = require(\"../accountComponents/PledgeStatementHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar CheckoutApi = require(\"../checkoutComponents/CheckoutApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\n\r\nvar StoresHelper = require(\"../stores/StoresHelper\");\r\n\r\nvar EventRegistrationHelper = {\r\n\taddRegistrant: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"addRegistrant\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar components = [\r\n\t\t\t$(\"[data-component='eventRegistration']\")\r\n\t\t];\r\n\r\n\t\tSpinner.showSpinner();\r\n\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\tif (!isValid) {\r\n\t\t\t\tLoggerInstance.error(\"Validation Failed to add registrant in EventRegistrationHelper.\");\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.verifySmartyStreets().done(() => {\r\n\t\t\t\t//Duplicate the single registration HTML\r\n\t\t\t\t$(\"[data-component='singleRegistration']\").last().after($(this.singleEventRegistrationHtml));\r\n\t\t\t\tvar $lastSingleRegistration = $(\"[data-component='singleRegistration']\").last();\r\n\t\t\t\t//Correct the registration number\r\n\t\t\t\t$lastSingleRegistration.attr(\"data-registrant-number\", Number($lastSingleRegistration.prev().attr(\"data-registrant-number\") || 0) + 1);\r\n\r\n\t\t\t\t//Reset all Ids because this is repeated content\r\n\t\t\t\tthis._resetIdsForRepeatedComponents($lastSingleRegistration);\r\n\r\n\t\t\t\t//If we have react components, we need to initialize them\r\n\t\t\t\tthis._addReactScriptsForSingleRegistration($lastSingleRegistration, this.reactScriptsForSingleRegistration);\r\n\r\n\t\t\t\t//Initialize events\r\n\t\t\t\tthis.initializeSingleRegistration($lastSingleRegistration);\r\n\r\n\t\t\t\t//Making sure it is in view, scrolling to where the to is at half the page if it's below there.\r\n\t\t\t\t//The new scrollTop is the top of the new registration minus twice the window height\r\n\t\t\t\tvar newScrollPosition = $lastSingleRegistration.offset().top - ($(window).height() / 2);\r\n\t\t\t\tif ($(document).scrollTop() < newScrollPosition) {\r\n\t\t\t\t\t$(\"html, body\").animate({scrollTop: newScrollPosition}, 500);\r\n\t\t\t\t}\r\n\t\t\t\tthis._calculateTotal();\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn false;\r\n\t},\r\n\r\n\taddToCart: function (event) {\r\n\t\tif (!ActionsHelper.getEventOrReturn(event, /*isDesignMode*/false)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar isInPledgeStatementSession = this.isInPledgeStatementSession;\r\n\t\tvar pledgeStatementEntryWizard = this[WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY];\r\n\r\n\t\tPledgeStatementHelper.confirmAbandonPledgeStatementSession(isInPledgeStatementSession, pledgeStatementEntryWizard).done(() => {\r\n\t\t\ttry {\r\n\t\t\t\t//Validation\r\n\t\t\t\tvar components = [\r\n\t\t\t\t\t$(\"[data-component='eventRegistration']\")\r\n\t\t\t\t];\r\n\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\t\tif (!isValid) {\r\n\t\t\t\t\t\tLoggerInstance.error(\"Validation Failed to add to cart in EventRegistrationHelper.\");\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.verifySmartyStreets().done(() => {\r\n\t\t\t\t\t\tvar shoppingCartData = this.getShoppingCartData();\r\n\t\t\t\t\t\tCheckoutApi.addToCart({ cartItems: shoppingCartData }).done((addToCartResponse) => {\r\n\t\t\t\t\t\t\tif (addToCartResponse.success) {\r\n\t\t\t\t\t\t\t\t//Unlike the other addToCart buttons, the event addToCart button is only available on the event detail page and there are no options to go anywhere else but the shopping cart page.\r\n\t\t\t\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t\t\t\t} else if (addToCartResponse.message) {\r\n\t\t\t\t\t\t\t\t//This should be a constituent-safe message\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(addToCartResponse.message);\r\n\r\n\t\t\t\t\t\t\t\t//Remove group code if it is a group code error\r\n\t\t\t\t\t\t\t\tif (addToCartResponse.message === StoresHelper.getWizardValue(\r\n\t\t\t\t\t\t\t\t\tthis[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES],\r\n\t\t\t\t\t\t\t\t\tWizardConstants.EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields.ADD_TO_CART_GROUP_CODE_ERROR\r\n\t\t\t\t\t\t\t\t)) {\r\n\t\t\t\t\t\t\t\t\tthis.removeGroupCode(/*event*/ null, /*calledFromAddToCart*/ true);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\t\t\t\t\t\tthis[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES],\r\n\t\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t\t{ tangibleType: \"event\" }\r\n\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).fail(() => {\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\t\t\t\t\tthis[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES],\r\n\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t{ tangibleType: \"event\" }\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t\t\t});\r\n\t\t\t} catch (exception) {\r\n\t\t\t\tLoggerInstance.error(exception);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t},\r\n\r\n\tapplyGroupCode: function (event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Apply Group Code successfully called.\");\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $groupCodeInput = $(event.target).find(\"[data-component='applyGroupCodeForm.input']\")\r\n\r\n\t\tvar groupCode = $groupCodeInput.val();\r\n\r\n\t\t// If they didn't enter a group code, don't try and process it.\r\n\t\tif (!groupCode) {\r\n\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\tthis[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES],\r\n\t\t\t\tWizardConstants.EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields.APPLY_GROUP_CODE_ERROR\r\n\t\t\t));\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Clear the current group code input\r\n\t\t$groupCodeInput.val(\"\");\r\n\r\n\t\t// Check to see if the group code is valid\r\n\t\tCheckoutApi.getGroupCodeData({\r\n\t\t\tgroupCode: groupCode,\r\n\t\t\teventCode: window.tangibleCode\r\n\t\t}).done((data) => {\r\n\t\t\tif (data.isValidGroupCode) {\r\n\t\t\t\tthis._updateGroupCodeUi(groupCode, data);\r\n\r\n\t\t\t\tthis._updateAllPrices();\r\n\r\n\t\t\t\tCheckoutApi.removeGroupCodeCookie();\r\n\t\t\t} else {\r\n\t\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\t\tthis[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES],\r\n\t\t\t\t\tWizardConstants.EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields.APPLY_GROUP_CODE_ERROR\r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t}).fail(() => {\r\n\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\tthis[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES],\r\n\t\t\t\tWizardConstants.EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields.APPLY_GROUP_CODE_ERROR\r\n\t\t\t));\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetShoppingCartData: function() {\r\n\t\tvar eventRegistrationData = {\r\n\t\t\teventCode: window.tangibleCode,\r\n\t\t\tregistrants: [\r\n\t\t\t]\r\n\t\t};\r\n\r\n\t\tvar isThisIsMeAlreadyProcessed = false;\r\n\t\t$(\"[data-component='singleRegistration']\").each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\tvar $individualRegistration = $element.find(\"[data-component='individualRegistration']\");\r\n\t\t\tvar $spouseRegistration = $element.find(\"[data-component='spouseRegistration']\");\r\n\t\t\tvar $selectedPriceCodeOption = $element.find(\"[data-component='singleRegistrationPriceCode.selector']\").first().find(\"option:selected\");\r\n\t\t\tvar $createAccountForm = $individualRegistration.find(\"[data-component='createAccountForm']\");\r\n\t\t\tvar groupCode = $(\"[data-component='applyGroupCodeForm']\").attr(\"group-code\");\r\n\t\t\tvar groupCodePriceCode = $(\"[data-component='applyGroupCodeForm']\").attr(\"group-code-price-code\");\r\n\t\t\tvar isThisIsMeIsChecked = $element.find(\"[data-component='thisIsMeCheckbox'] input\").first().is(\":checked\");\r\n\r\n\t\t\tvar individualRegistrationData = AccountFormHelper.serializeCreateAccountFormOnly({\r\n\t\t\t\taccountFormId: $createAccountForm.attr(\"id\")\r\n\t\t\t});\r\n\r\n\t\t\t//Get account demographics for the Individual Registrant (we only want to get them once for all the thisIsMeCheckbox registrants)\r\n\t\t\tif (!isThisIsMeIsChecked || !isThisIsMeAlreadyProcessed) {\r\n\t\t\t\tAccountFormHelper.updateAccountDemographics(individualRegistrationData, $individualRegistration);\r\n\t\t\t}\r\n\r\n\t\t\tvar individualSessions = $individualRegistration.find(\"[data-component='eventRegistrationSessions.singleCheckbox.input']:checked\").map((mapIndex, individualSession) => {\r\n\t\t\t\tvar $individualSession = $(individualSession);\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpriceCode: $individualSession.attr(\"data-price-code\"),\r\n\t\t\t\t\tsessionCode: $individualSession.attr(\"name\")\r\n\t\t\t\t};\r\n\t\t\t}).toArray();\r\n\t\t\tvar spouseRegistrationData = ActionsHelper.serializeForm($spouseRegistration.find(\"[data-component='spouseInformation'] form\"));\r\n\r\n\t\t\t//Get account demographics for the Spouse Registrant (we only want to get them once for all the thisIsMeCheckbox registrants)\r\n\t\t\tif (!isThisIsMeIsChecked || !isThisIsMeAlreadyProcessed) {\r\n\t\t\t\tAccountFormHelper.updateAccountDemographics(spouseRegistrationData, $spouseRegistration);\r\n\t\t\t}\r\n\r\n\t\t\tvar spouseSessions = $spouseRegistration.find(\"[data-component='eventRegistrationSessions.singleCheckbox.input']:checked\").map((mapIndex, spouseSession) => {\r\n\t\t\t\tvar $individualSession = $(spouseSession);\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpriceCode: $individualSession.attr(\"data-price-code\"),\r\n\t\t\t\t\tsessionCode: $individualSession.attr(\"name\")\r\n\t\t\t\t};\r\n\t\t\t}).toArray();\r\n\r\n\t\t\t//Making sure we get the email address value. It works a bit differently because it is always disabled when thisIsMe is checked.\r\n\t\t\tvar data = this._serializeEmailAddress({\r\n\t\t\t\tindividual: individualRegistrationData,\r\n\t\t\t\tspouse: spouseRegistrationData\r\n\t\t\t}, $element);\r\n\t\t\tindividualRegistrationData = data.individual;\r\n\t\t\tspouseRegistrationData = data.spouse;\r\n\r\n\t\t\tvar registrant = {\r\n\t\t\t\tgroupCode: groupCode,\r\n\t\t\t\tgroupCodePriceCode: groupCodePriceCode,\r\n\t\t\t\tpriceCode: $selectedPriceCodeOption.attr(\"data-price-code\") || this.initialPriceCode,\r\n\t\t\t\tthisIsMeChecked: isThisIsMeIsChecked\r\n\t\t\t};\r\n\r\n\t\t\tisThisIsMeAlreadyProcessed = isThisIsMeAlreadyProcessed || isThisIsMeIsChecked;\r\n\r\n\t\t\tif (Object.keys(individualRegistrationData).length) {\r\n\t\t\t\tregistrant.individualData = individualRegistrationData;\r\n\t\t\t}\r\n\t\t\tif (individualSessions.length) {\r\n\t\t\t\tregistrant.individualSessions = individualSessions;\r\n\t\t\t}\r\n\r\n\t\t\tif (($selectedPriceCodeOption.attr(\"data-price-type\") || this.initialPriceType) === \"couple\") {\r\n\t\t\t\tif (Object.keys(spouseRegistrationData).length) {\r\n\t\t\t\t\tregistrant.spouseData = spouseRegistrationData;\r\n\t\t\t\t}\r\n\t\t\t\tif (spouseSessions.length) {\r\n\t\t\t\t\tregistrant.spouseSessions = spouseSessions;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\teventRegistrationData.registrants.push(registrant);\r\n\t\t});\r\n\t\treturn { events: [eventRegistrationData] };\r\n\t},\r\n\r\n\tinitialize: function(options) {\r\n\t\toptions = options || {};\r\n\t\tthis[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES] = options[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES] || {};\r\n\t\tthis[WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY] = options[WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY] || {};\r\n\t\tthis[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES] = options[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES] || {};\r\n\t\tthis.initialPrice = options.initialPrice;\r\n\t\tthis.initialPriceCode = options.initialPriceCode;\r\n\t\tthis.initialPriceDescription = options.initialPriceDescription;\r\n\t\tthis.initialPriceType = options.initialPriceType;\r\n\t\tthis.isInPledgeStatementSession = options.isInPledgeStatementSession;\r\n\r\n\t\tthis.accountData = options.accountData;\r\n\r\n\t\tif (this.accountData) {\r\n\t\t\tthis.accountData.codes = window.AccountActions.getAccountCodes() || [];\r\n\t\t}\r\n\r\n\t\tthis.spouseData = options.spouseData;\r\n\r\n\t\tif (this.spouseData) {\r\n\t\t\tthis.spouseData.codes = options.spouseAccountCodes;\r\n\t\t}\r\n\r\n\t\tthis.savedThisIsMeValues = {};\r\n\r\n\t\tvar groupCode = options.groupCode;\r\n\r\n\t\t//Initialize AddToCart Buttons\r\n\t\tvar $addToCartButtons = $(\"[data-component='addEventToCartButton']\");\r\n\t\t$addToCartButtons.off(\"click.eventRegistration\");\r\n\t\t$addToCartButtons.on(\"click.eventRegistration\", (event) => this.addToCart(event));\r\n\r\n\t\t//We need to save the event registration component html so that it can be duplicated. We only allow a single one on the page.\r\n\t\tvar $singleRegistration = $(\"[data-component='singleRegistration']\").first().attr(\"data-registrant-number\", 1);\r\n\t\tif ($singleRegistration[0] != null) {\r\n\t\t\t//If update is now allowed, we record this fact. Then we set the update-allowed attribute so that the fields will be enabled by default.\r\n\t\t\tvar $firstCreateAccountForm = $singleRegistration.find(\"[data-component='createAccountForm']\").first();\r\n\t\t\tthis.accountUpdateAllowed = $firstCreateAccountForm.is(\"[data-update-allowed]\");\r\n\t\t\tthis.spouseUpdateAllowed = this.accountUpdateAllowed;\r\n\r\n\t\t\t//If we are Unidentified, we want to allow updating data.\r\n\t\t\tif (!this.accountData) {\r\n\t\t\t\tthis.accountUpdateAllowed = true;\r\n\t\t\t}\r\n\t\t\tif (!this.spouseData) {\r\n\t\t\t\tthis.spouseUpdateAllowed = true;\r\n\t\t\t}\r\n\r\n\t\t\t$firstCreateAccountForm.attr(\"data-update-allowed\", true);\r\n\r\n\t\t\t//For any Account Demographic Select component that has a default value that was selected, set the select input to have the isDirty class\r\n\t\t\t$singleRegistration\r\n\t\t\t\t.find(\"[data-component='select'][data-code-type-default-value] select[data-parent-form-component='accountDemographicsForm']:has(option[selected])\")\r\n\t\t\t\t.addClass(\"isDirty\");\r\n\r\n\t\t\t//Wrapping accountDemographicsForm components in an HTML form if they are not wrapped in one already.\r\n\t\t\t//\tThis is mainly to ensure that radio buttons for each registrant are in their own group and not all together in a single group across the page.\r\n\t\t\t$singleRegistration.find(\"[data-component='accountDemographicsForm']\").not(\"form [data-component='accountDemographicsForm']\").wrap(\"<form></form>\")\r\n\r\n\t\t\tthis.singleEventRegistrationHtml = $singleRegistration[0].outerHTML;\r\n\r\n\t\t\t//Reset all Ids because this is repeated content\r\n\t\t\tthis._resetIdsForRepeatedComponents($singleRegistration);\r\n\r\n\t\t\t//If there is a query param groupCode, then update the UI\r\n\t\t\t//Only apply it if there is an apply group code form\r\n\t\t\tif (groupCode && $(\"[data-component='applyGroupCodeForm']\").length) {\r\n\t\t\t\tCheckoutApi.getGroupCodeData({\r\n\t\t\t\t\tgroupCode: groupCode,\r\n\t\t\t\t\teventCode: window.tangibleCode\r\n\t\t\t\t}).done((data) => {\r\n\t\t\t\t\tif (data.isValidGroupCode) {\r\n\t\t\t\t\t\tthis._updateGroupCodeUi(groupCode, data);\r\n\r\n\t\t\t\t\t\tthis._updateAllPrices();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//Invalid group code, so hide the current group code components\r\n\t\t\t\t\t\t$(\"[data-component='currentGroupCode']\").hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t}).fail(() => {\r\n\t\t\t\t\t//Invalid group code, so hide the current group code components\r\n\t\t\t\t\t$(\"[data-component='currentGroupCode']\").hide();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t$(document).ready(() => {\r\n\t\t\t\tthis.reactScriptsForSingleRegistration = this._getReactScriptForSingleRegistration(this.singleEventRegistrationHtml);\r\n\t\t\t\tthis.initializeSingleRegistration();\r\n\r\n\t\t\t\tvar $firstThisIsMe = $singleRegistration.find(\"input[data-component='thisIsMeCheckbox.input']\").first();\r\n\t\t\t\tif ($singleRegistration.find(\"[data-component='thisIsMeCheckbox']\").attr(\"data-is-first-checked-by-default\") === \"true\") {\r\n\t\t\t\t\tif ($firstThisIsMe.is(\":checked\")) {\r\n\t\t\t\t\t\t//Uncheck and then check again to make sure the appropriate events were triggered\r\n\t\t\t\t\t\t$firstThisIsMe.click();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$firstThisIsMe.click();\r\n\t\t\t\t} else if ($firstThisIsMe.is(\":checked\")) {\r\n\t\t\t\t\t//It was checked, but it shouldn't be\r\n\t\t\t\t\t$firstThisIsMe.click();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (!groupCode) {\r\n\t\t\t//We already update the total if we have a group code\r\n\t\t\tthis._calculateTotal();\r\n\r\n\t\t\t//Hide any existing current group code components\r\n\t\t\t$(\"[data-component='currentGroupCode']\").hide();\r\n\t\t}\r\n\r\n\t\tthis.initializeGroupCode();\r\n\t},\r\n\r\n\tinitializeGroupCode: function() {\r\n\t\tvar $applyGroupCodeForms = $(\"[data-component=applyGroupCodeForm]\");\r\n\t\t$applyGroupCodeForms.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\r\n\t\t\tvar $groupCodeForm = $element.find(`form#applyGroupCodeForm`).first();\r\n\r\n\t\t\t$groupCodeForm.on(\"submit.applyGroupCodeForm\", (event) => {\r\n\t\t\t\tEventRegistrationHelper.applyGroupCode(event);\r\n\t\t\t});\r\n\r\n\t\t\t//Update form id\r\n\t\t\tvar componentId = $element.attr(\"id\");\r\n\r\n\t\t\t// We need to make the form id and the submit button form attributes unique.\r\n\t\t\tvar formId = $groupCodeForm.attr(\"id\");\r\n\t\t\tvar $submitButton = $groupCodeForm.find(\"[data-component='submitButton']\");\r\n\r\n\t\t\tvar newId = `${formId}_${componentId}`;\r\n\r\n\t\t\t$groupCodeForm.attr(\"id\", newId);\r\n\t\t\t$submitButton.attr(\"form\", newId);\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeSingleRegistration: function($singleRegistration) {\r\n\t\t//initializing the singleRegistrationPriceCode\r\n\t\t$singleRegistration = $($singleRegistration || \"[data-component='singleRegistration']\");\r\n\r\n\t\tvar $priceCodeSelectors = $singleRegistration.find(\"[data-component='singleRegistrationPriceCode.selector']\");\r\n\t\t$priceCodeSelectors.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\tthis._priceCodeChange($element, $singleRegistration);\r\n\t\t\t$element.off(\"change.singleRegistrationPriceCode\");\r\n\t\t\t$element.on(\"change.singleRegistrationPriceCode\", () => this._priceCodeChange($element));\r\n\t\t});\r\n\r\n\t\tif (!$priceCodeSelectors.length) {\r\n\t\t\t//There is no price code selector, so let's set the client data\r\n\t\t\tthis._priceCodeChange($(null), $singleRegistration);\r\n\t\t\tthis._setClientDynamicData($singleRegistration);\r\n\t\t}\r\n\r\n\t\t//InitializePhoneNumberInput for Individual and Spouse\r\n\t\tvar defaultCountry = ((this.accountData || {}).address || {}).country;\r\n\t\twindow.AccountActions.initializePhoneNumberGroupComponent(defaultCountry, $singleRegistration.find(\"[data-component='individualRegistration']\"));\r\n\r\n\t\tvar $spouseRegistration = $singleRegistration.find(\"[data-component='spouseRegistration']\");\r\n\t\tif ($spouseRegistration.length) {\r\n\t\t\twindow.AccountActions.initializePhoneNumberGroupComponent(defaultCountry, $spouseRegistration);\r\n\t\t}\r\n\r\n\t\t//initializing the thisIsMeCheckbox component\r\n\t\t$singleRegistration.find(\"[data-component='thisIsMeCheckbox']\").each((index, checkbox) => {\r\n\t\t\tvar $checkbox = $(checkbox);\r\n\t\t\tvar $input = $checkbox.find(\"[data-component='thisIsMeCheckbox.input']\");\r\n\t\t\t//Remove the for attribute on the label because the whole thisIsMeCheckbox is selectable\r\n\t\t\t$checkbox.find(\"label[data-child-of='thisIsMeCheckbox']\").removeAttr(\"for\");\r\n\t\t\t//Adding the click event listener\r\n\t\t\t$input.off(\"click.thisIsMe\");\r\n\t\t\t$input.on(\"click.thisIsMe\", (event) => {\r\n\t\t\t\tthis.thisIsMeSelected(event, $input);\r\n\t\t\t});\r\n\r\n\t\t\t$checkbox.off(\"click.thisIsMe\");\r\n\t\t\t$checkbox.on(\"click.thisIsMe\", (event) => {\r\n\t\t\t\tif ($input.is(\":disabled\")) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t\t\tthis.thisIsMeSelected(event, $input);\r\n\t\t\t});\r\n\r\n\t\t\t$checkbox.find(\"*\").add($checkbox).css(\"cursor\", \"pointer\");\r\n\t\t});\r\n\r\n\t\t//initializing the session checkboxes\r\n\t\t$singleRegistration.find(\"[data-component='eventRegistrationSessions.singleCheckbox']\").each((index, checkbox) => {\r\n\t\t\tvar $checkbox = $(checkbox);\r\n\t\t\tvar $input = $checkbox.find(\"[data-component='eventRegistrationSessions.singleCheckbox.input']\");\r\n\t\t\t//Setting the for attribute on the label\r\n\t\t\t$checkbox.find(\"label[data-input-label]\").attr(\"for\", $input.attr(\"id\"));\r\n\t\t\t//Adding the click event listener\r\n\t\t\t$input.off(\"click.sessionCheckbox\");\r\n\t\t\t$input.on(\"click.sessionCheckbox\", () => {\r\n\t\t\t\tthis._calculateTotal();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t//Set up listeners so that when any thisIsMeCheckbox is checked, all of the account data from the linked single registration components is synced up\r\n\t\tvar $elements = $singleRegistration.find(\"[data-component='createAccountForm'] input,[data-component='spouseInformation'] input\").not(\"input[data-parent-form-component='accountDemographicsForm']\");\r\n\t\t$elements.off(\"blur.thisIsMeAccountData\");\r\n\t\t$elements.on(\"blur.thisIsMeAccountData\", this._accountDataChanged);\r\n\r\n\t\t$elements = $singleRegistration.find(\r\n\t\t\t\"[data-component='createAccountForm'] select,\" +\r\n\t\t\t\"[data-component='spouseInformation'] select,\" +\r\n\t\t\t\"select[data-parent-form-component='accountDemographicsForm'],\" +\r\n\t\t\t//Handle Account Demographics checkboxes and radio buttons using a change listener\r\n\t\t\t\"input[data-parent-form-component='accountDemographicsForm']:checkbox,\" +\r\n\t\t\t\"input[data-parent-form-component='accountDemographicsForm']:radio\"\r\n\t\t);\r\n\t\t$elements.off(\"change.thisIsMeAccountData\");\r\n\t\t$elements.on(\"change.thisIsMeAccountData\", this._accountDataChanged);\r\n\r\n\t\t//Set up listeners on the Account Demographics inputs\r\n\t\twindow.AccountActions.initializeDemographics({\r\n\t\t\taccountCodes: [],\r\n\t\t\tparentSelector: $singleRegistration\r\n\t\t});\r\n\r\n\t\t//Just in case there is an AddToCart button inside a singleRegistration.\r\n\t\tvar $addToCartButtons = $singleRegistration.find(\"[data-component='addEventToCartButton']\");\r\n\t\t$addToCartButtons.off(\"click.eventRegistration\");\r\n\t\t$addToCartButtons.on(\"click.eventRegistration\", (event) => this.addToCart(event));\r\n\r\n\t\tSmartyStreets.initializeForEventRegistration($singleRegistration.find(\"[data-component='createAccountForm']\").attr(\"id\"));\r\n\t},\r\n\r\n\tremoveGroupCode: function(event, calledFromAddToCart) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"removeGroupCodeLink\"));\r\n\t\tif (!event && !calledFromAddToCart) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif ($(\"[data-component='applyGroupCodeForm']\").attr(\"group-code\")) {\r\n\t\t\t//Clear the current group code.\r\n\t\t\t$(\"[data-component='applyGroupCodeForm']\").removeAttr(\"group-code\");\r\n\t\t\t$(\"[data-component='applyGroupCodeForm']\").removeAttr(\"group-code-price-code\");\r\n\t\t\t$(\"[data-component='applyGroupCodeForm.input']\").val(\"\");\r\n\r\n\t\t\t//If there is a current groupCode component, hide it\r\n\t\t\t$(\"[data-component='currentGroupCode']\").hide();\r\n\r\n\t\t\tvar $registrationTypes = $(\"[data-component='singleRegistrationPriceCode.selector'] option\");\r\n\r\n\t\t\t//Update each registration drop-down with the original\r\n\t\t\t$registrationTypes.each((index, singlePriceSelector) => {\r\n\t\t\t\tvar $singlePriceSelector = $(singlePriceSelector);\r\n\t\t\t\tvar newPriceDescription = $singlePriceSelector.html();\r\n\t\t\t\tvar originalPrice = $singlePriceSelector.attr(\"data-old-price\");\r\n\r\n\t\t\t\tif (originalPrice) {\r\n\t\t\t\t\tnewPriceDescription = this._getNewPriceCodeDescription($singlePriceSelector, originalPrice);\r\n\r\n\t\t\t\t\t$singlePriceSelector.html(newPriceDescription);\r\n\t\t\t\t\t$singlePriceSelector.attr(\"data-price\", originalPrice);\r\n\t\t\t\t\t$singlePriceSelector.removeAttr(\"data-old-price\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis._updateAllPrices();\r\n\r\n\t\t\tCheckoutApi.removeGroupCodeCookie();\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tremoveRegistrant: function(event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"removeRegistrant\"));\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tBootstrapPrompt.confirm({\r\n\t\t\tbtnCancelLabel: window.BUTTON_LABELS.NO,\r\n\t\t\tbtnOKLabel: window.BUTTON_LABELS.YES,\r\n\t\t\tmessage: StoresHelper.getWizardValue(\r\n\t\t\t\tthis[WizardConstants.WIZARDS.EVENT_REGISTRATION_DISPLAY_MESSAGES],\r\n\t\t\t\tWizardConstants.EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields.DELETE_REGISTRANT\r\n\t\t\t)\r\n\t\t}, (result) => {\r\n\t\t\tif (result) {\r\n\t\t\t\tvar $singleRegistration = $(event.target).closest(\"[data-component='singleRegistration']\");\r\n\t\t\t\tvar $eventRegistration = $singleRegistration.closest(\"[data-component='eventRegistration']\");\r\n\t\t\t\tvar $firstCheckboxInput = $singleRegistration.find(\"input[data-component='thisIsMeCheckbox.input']\").first();\r\n\t\t\t\tvar $allCheckedCheckboxInputs = $eventRegistration.find(\"input[data-component='thisIsMeCheckbox.input']:checked\");\r\n\t\t\t\tif ($eventRegistration.find(\"[data-component='singleRegistration']\").length > 1) {\r\n\t\t\t\t\t//There is more than one registrant, we can go ahead and delete it.\r\n\t\t\t\t\tif ($singleRegistration) {\r\n\t\t\t\t\t\t//Unmount existing react components\r\n\t\t\t\t\t\t$singleRegistration.find(\"[data-react-component-name]\").each(function() {\r\n\t\t\t\t\t\t\tReactDOM.unmountComponentAtNode(this.parentElement);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//If there is a thisIsMeCheckbox component that is checked, we might need to do some things.\r\n\t\t\t\t\t\tvar $thisIsMeInputs = $singleRegistration.find(\"input[data-component='thisIsMeCheckbox.input']\");\r\n\r\n\t\t\t\t\t\tvar minimumThisIsMeCheckboxCheckedThatWasNotJustChanged = Number($allCheckedCheckboxInputs.not($thisIsMeInputs).first().closest(\"[data-component='singleRegistration']\").attr(\"data-registrant-number\"));\r\n\t\t\t\t\t\tvar $firstThisIsMeSingleRegistrationThatWasNotJustChanged = $(`[data-component=\"singleRegistration\"][data-registrant-number=\"${minimumThisIsMeCheckboxCheckedThatWasNotJustChanged}\"]`);\r\n\r\n\t\t\t\t\t\tvar $singleRegistrationsWithVisibleSpouseRegistration = $allCheckedCheckboxInputs.not($thisIsMeInputs).closest(\"[data-component='singleRegistration']\").filter((index, element) => {\r\n\t\t\t\t\t\t\tvar $priceCodeSelector = $(element).find(\"[data-component='singleRegistrationPriceCode.selector']\");\r\n\t\t\t\t\t\t\treturn ($priceCodeSelector.length && $priceCodeSelector.has(\"option[data-price-type=couple]:selected\").length) || this.initialPriceType === \"couple\";\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tvar minimumSpouseThisIsMeCheckboxChecked = Number($singleRegistrationsWithVisibleSpouseRegistration.first().attr(\"data-registrant-number\"));\r\n\t\t\t\t\t\tvar $firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged = $(`[data-component=\"singleRegistration\"][data-registrant-number=\"${minimumSpouseThisIsMeCheckboxChecked}\"]`);\r\n\r\n\t\t\t\t\t\tif ($thisIsMeInputs.is(\":checked\")) {\r\n\t\t\t\t\t\t\t//If thisIsMe is checked.\r\n\t\t\t\t\t\t\t//If this is the first one, enable next visible one's fields\r\n\t\t\t\t\t\t\tthis._setFieldDisableStatus($firstThisIsMeSingleRegistrationThatWasNotJustChanged, \"individual\", /*isDisabled*/ false);\r\n\t\t\t\t\t\t\tthis._setFieldDisableStatus($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged, \"spouse\", /*isDisabled*/ false);\r\n\r\n\t\t\t\t\t\t\t//If update is not allowed, we should set the fields to disabled\r\n\t\t\t\t\t\t\tif (!this.accountUpdateAllowed) {\r\n\t\t\t\t\t\t\t\tthis._setFieldDisableStatusInForm($firstThisIsMeSingleRegistrationThatWasNotJustChanged, \"individual\", /*isDisabled*/ true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!this.spouseUpdateAllowed) {\r\n\t\t\t\t\t\t\t\tthis._setFieldDisableStatusInForm($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t//EmailAddress Field are always disabled when we are identified or logged in because we do not want the constituent's username to change\r\n\t\t\t\t\t\t\tthis._setEmailFieldAsDisabled($firstThisIsMeSingleRegistrationThatWasNotJustChanged.find(\"[data-component='individualRegistration']\"), $firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged.find(\"[data-component='spouseRegistration']\"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//If thisIsMe is NOT checked, nothing needs to be done\r\n\r\n\t\t\t\t\t\t//Remove any possible SmartyStreets object\r\n\t\t\t\t\t\tSmartyStreets.removeEventRegistration($singleRegistration.find(\"[data-component='createAccountForm']\").attr(\"id\"));\r\n\r\n\t\t\t\t\t\t//Remove the registrant (and event listeners)\r\n\t\t\t\t\t\t$singleRegistration.remove();\r\n\r\n\t\t\t\t\t\t//Fixing the registrant numbers\r\n\t\t\t\t\t\tvar registrantNumber = 1;\r\n\t\t\t\t\t\t$(\"[data-component='singleRegistration']\").each((index, element) => {\r\n\t\t\t\t\t\t\tvar $singleRegistrationElement = $(element);\r\n\t\t\t\t\t\t\t$singleRegistrationElement.attr(\"data-registrant-number\", registrantNumber);\r\n\t\t\t\t\t\t\tregistrantNumber++;\r\n\t\t\t\t\t\t\tthis._setClientDynamicData($singleRegistrationElement);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tdelete this.savedThisIsMeValues[$singleRegistration.attr(\"id\")];\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//There is the only a single registration, just clear the inputs, do not remove\r\n\t\t\t\t\tvar $individualRegistration = $singleRegistration.find(\"[data-component='individualRegistration']\");\r\n\t\t\t\t\tvar individualFormId = $individualRegistration.find(\"[data-component='createAccountForm']\").attr(\"id\");\r\n\t\t\t\t\tthis._clearRegistrationData($individualRegistration, individualFormId, /*shouldDefaultValues*/ true);\r\n\r\n\t\t\t\t\tvar $spouseRegistration = $singleRegistration.find(\"[data-component='spouseRegistration']\");\r\n\t\t\t\t\tvar spouseFormId = $spouseRegistration.find(\"[data-component='spouseInformation']\").attr(\"id\");\r\n\t\t\t\t\tthis._clearRegistrationData($spouseRegistration, spouseFormId, /*shouldDefaultValues*/ true);\r\n\r\n\t\t\t\t\tdelete this.savedThisIsMeValues[$singleRegistration.attr(\"id\")];\r\n\t\t\t\t\t$allCheckedCheckboxInputs.prop(\"checked\", false);\r\n\r\n\t\t\t\t\tif ($firstCheckboxInput.closest(\"[data-component='thisIsMeCheckbox']\").attr(\"data-is-first-checked-by-default\") === \"true\") {\r\n\t\t\t\t\t\t$firstCheckboxInput.click();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._setFieldDisableStatus($singleRegistration, \"individual\", /*isDisabled*/ false);\r\n\t\t\t\t\t\tthis._setFieldDisableStatus($singleRegistration, \"spouse\", /*isDisabled*/ false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis._calculateTotal();\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn false;\r\n\t},\r\n\r\n\tthisIsMeSelected(event, $checkboxInput) {\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!$checkboxInput.length || $checkboxInput.is(\":disabled\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//This fixes problems when the thisIsMeCheckbox input itself is checked\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tvar $singleRegistration = $checkboxInput.closest(\"[data-component='singleRegistration']\");\r\n\t\tvar $eventRegistration = $singleRegistration.closest(\"[data-component='eventRegistration']\");\r\n\t\tvar singleRegistrationId = $singleRegistration.attr(\"id\");\r\n\t\tvar $allThisIsMeCheckboxesInSingleRegistration = $singleRegistration.find(\"input[data-component='thisIsMeCheckbox.input']\");\r\n\t\tvar $individualRegistration = $singleRegistration.find(\"[data-component='individualRegistration']\");\r\n\t\tvar individualFormId = $individualRegistration.find(\"[data-component='createAccountForm']\").attr(\"id\");\r\n\t\tvar $spouseRegistration = $singleRegistration.find(\"[data-component='spouseRegistration']\");\r\n\t\tvar spouseFormId = $spouseRegistration.find(\"[data-component='spouseInformation']\").attr(\"id\");\r\n\r\n\t\t//Set all the other thisIsMeCheckboxes in this singleRegistration to the same as the one that was just checked.\r\n\t\t$allThisIsMeCheckboxesInSingleRegistration.prop(\"checked\", $checkboxInput.is(\":checked\"));\r\n\r\n\t\tvar $allCheckedCheckboxInputs = $eventRegistration.find(\"input[data-component='thisIsMeCheckbox.input']:checked\");\r\n\t\tvar currentRegistrantNumber = Number($singleRegistration.attr(\"data-registrant-number\"));\r\n\r\n\t\tvar currentContainsVisibleSpouse = $singleRegistration.filter((index, element) => {\r\n\t\t\tvar $priceCodeSelector = $(element).find(\"[data-component='singleRegistrationPriceCode.selector']\");\r\n\t\t\treturn ($priceCodeSelector.length && $priceCodeSelector.has(\"option[data-price-type=couple]:selected\").length) || this.initialPriceType === \"couple\";\r\n\t\t});\r\n\t\tvar minimumThisIsMeCheckboxCheckedThatWasNotJustChanged = Number($allCheckedCheckboxInputs.not($allThisIsMeCheckboxesInSingleRegistration).first().closest(\"[data-component='singleRegistration']\").attr(\"data-registrant-number\"));\r\n\t\tvar $singleRegistrationsWithVisibleSpouseRegistration = $allCheckedCheckboxInputs.not($allThisIsMeCheckboxesInSingleRegistration).closest(\"[data-component='singleRegistration']\").filter((index, element) => {\r\n\t\t\tvar $priceCodeSelector = $(element).find(\"[data-component='singleRegistrationPriceCode.selector']\");\r\n\t\t\treturn ($priceCodeSelector.length && $priceCodeSelector.has(\"option[data-price-type=couple]:selected\").length) || this.initialPriceType === \"couple\";\r\n\t\t});\r\n\t\tvar minimumSpouseThisIsMeCheckboxCheckedThatWasNotJustChanged = Number($singleRegistrationsWithVisibleSpouseRegistration.first().attr(\"data-registrant-number\"));\r\n\r\n\t\tif ($checkboxInput.is(\":checked\")) {\r\n\t\t\t//Do we have existing data on the form, if so, save it\r\n\t\t\t//Save previously entered data\r\n\t\t\tthis.savedThisIsMeValues[singleRegistrationId] = this._serializeSingleRegistration($singleRegistration, /*serializeDemographics*/ true);\r\n\r\n\t\t\t//If there are no other This is Me checkboxes that are checked outside of the parent singleRegistration\r\n\t\t\tif ($allThisIsMeCheckboxesInSingleRegistration.is($checkboxInput) && $allCheckedCheckboxInputs.not($allThisIsMeCheckboxesInSingleRegistration).length == 0) {\r\n\t\t\t\tif (this.accountData) {\r\n\t\t\t\t\t//We should not default the inputs because we will populate them from the account data\r\n\t\t\t\t\tthis._clearRegistrationData($singleRegistration, individualFormId, /*shouldDefaultValues*/ false);\r\n\r\n\t\t\t\t\t//This is the first checkbox input. If we have account data, set it.\r\n\t\t\t\t\tthis._setAccountData(this.accountData, $individualRegistration, individualFormId);\r\n\t\t\t\t\tthis._setAccountData(this.spouseData, $spouseRegistration, spouseFormId);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar thisIsMeData = {};\r\n\r\n\t\t\t\t//Let's copy the fields to the fields where the thisIsMeCheckbox was just checked\r\n\t\t\t\tvar $firstThisIsMeSingleRegistrationThatWasNotJustChanged = $(`[data-component=\"singleRegistration\"][data-registrant-number=\"${minimumThisIsMeCheckboxCheckedThatWasNotJustChanged}\"]`);\r\n\t\t\t\tthisIsMeData = this._serializeSingleRegistration($firstThisIsMeSingleRegistrationThatWasNotJustChanged);\r\n\t\t\t\t//Setting the data for the singleRegistration where the thisIsMeCheckbox was just checked.\r\n\t\t\t\tthis._setAccountData(!this.accountUpdateAllowed && this.accountData ? this.accountData : thisIsMeData.individual, $individualRegistration, individualFormId);\r\n\t\t\t\tthis._copyDemographics($firstThisIsMeSingleRegistrationThatWasNotJustChanged.find(\"[data-component='individualRegistration']\"), $individualRegistration);\r\n\t\t\t\tthis._setAccountData(!this.spouseUpdateAllowed && this.spouseData ? this.spouseData : thisIsMeData.spouse, $spouseRegistration, spouseFormId);\r\n\t\t\t\tthis._copyDemographics($firstThisIsMeSingleRegistrationThatWasNotJustChanged.find(\"[data-component='spouseRegistration']\"), $spouseRegistration);\r\n\r\n\t\t\t\t//If the thisIsMeCheckbox that was just checked is below another one, we just want to disable the fields\r\n\t\t\t\t//This is for the individualRegistration\r\n\t\t\t\tif (currentRegistrantNumber > minimumThisIsMeCheckboxCheckedThatWasNotJustChanged) {\r\n\t\t\t\t\t//Disable the fields in the individual registration for the thisIsMeCheckbox that was checked\r\n\t\t\t\t\tthis._setFieldDisableStatus($singleRegistration, \"individual\", /*isDisabled*/ true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//We just checked a thisIsMeCheckbox above one we already checked.\r\n\t\t\t\t\t//Disable fields for singleRegistration for previously checked thisIsMeCheckbox\r\n\t\t\t\t\tthis._setFieldDisableStatus($firstThisIsMeSingleRegistrationThatWasNotJustChanged, \"individual\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (currentRegistrantNumber > minimumSpouseThisIsMeCheckboxCheckedThatWasNotJustChanged) {\r\n\t\t\t\t\t//Disable spouse fields as we checked a thisIsMeCheckbox below a registrant that already had thisIsMe checked.\r\n\t\t\t\t\tthis._setFieldDisableStatus($singleRegistration, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t} else if (currentContainsVisibleSpouse) {\r\n\t\t\t\t\tvar $firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged = $(`[data-component=\"singleRegistration\"][data-registrant-number=\"${minimumSpouseThisIsMeCheckboxCheckedThatWasNotJustChanged}\"]`);\r\n\t\t\t\t\tthis._setFieldDisableStatus($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//If update is not allowed, we should set the fields to disabled\r\n\t\t\tif (!this.accountUpdateAllowed) {\r\n\t\t\t\tthis._setFieldDisableStatusInForm($singleRegistration, \"individual\", /*isDisabled*/ true);\r\n\t\t\t}\r\n\t\t\tif (!this.spouseUpdateAllowed) {\r\n\t\t\t\tthis._setFieldDisableStatusInForm($singleRegistration, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t}\r\n\r\n\t\t\t//EmailAddress Field are always disabled when we are identified or logged in because we do not want the constituent's username to change\r\n\t\t\tthis._setEmailFieldAsDisabled($individualRegistration, $spouseRegistration);\r\n\r\n\t\t\t//Need to set the address as verified for SmartyStreets\r\n\t\t\t$singleRegistration.find(\"[data-component='createAccountForm'] form\")\r\n\t\t\t\t.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED, \"true\")\r\n\t\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED)\r\n\t\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR);\r\n\t\t} else {\r\n\t\t\t//If this was the first thisIsMeCheckbox checked and there are any more thisIsMeCheckboxes checked,\r\n\t\t\tif (currentRegistrantNumber < minimumThisIsMeCheckboxCheckedThatWasNotJustChanged && $allCheckedCheckboxInputs.length) {\r\n\t\t\t\t//We need to enable the fields to the first singleRegistration where the thisIsMeCheckbox is checked\r\n\t\t\t\tvar $nextThisIsMeSingleRegistration = $allCheckedCheckboxInputs.first().closest(\"[data-component='singleRegistration']\");\r\n\r\n\t\t\t\tthis._setFieldDisableStatus($nextThisIsMeSingleRegistration, \"individual\", /*isDisabled*/ false);\r\n\t\t\t\tthis._setFieldDisableStatus($singleRegistrationsWithVisibleSpouseRegistration, \"spouse\", /*isDisabled*/ false);\r\n\r\n\t\t\t\t//If update is not allowed, we should set the fields to disabled\r\n\t\t\t\tif (!this.accountUpdateAllowed) {\r\n\t\t\t\t\tthis._setFieldDisableStatusInForm($nextThisIsMeSingleRegistration, \"individual\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\t\t\t\tif (!this.spouseUpdateAllowed) {\r\n\t\t\t\t\tthis._setFieldDisableStatusInForm($singleRegistrationsWithVisibleSpouseRegistration, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//EmailAddress Field are always disabled when we are identified or logged in because we do not want the constituent's username to change\r\n\t\t\t\tthis._setEmailFieldAsDisabled($nextThisIsMeSingleRegistration.find(\"[data-component='individualRegistration']\"), $singleRegistrationsWithVisibleSpouseRegistration.find(\"[data-component='spouseRegistration']\"));\r\n\t\t\t}\r\n\r\n\t\t\t//Clear the data\r\n\t\t\tthis._clearRegistrationData($individualRegistration, individualFormId, /*shouldDefaultValues*/ true);\r\n\t\t\tthis._clearRegistrationData($spouseRegistration, spouseFormId, /*shouldDefaultValues*/ true);\r\n\r\n\t\t\tvar savedFormData = this.savedThisIsMeValues[singleRegistrationId];\r\n\t\t\t//Do we have previous saved data\r\n\t\t\tif (savedFormData) {\r\n\t\t\t\tthis._setAccountData(savedFormData.individual, $individualRegistration, individualFormId);\r\n\t\t\t\tthis._setAccountData(savedFormData.spouse, $spouseRegistration, spouseFormId);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tverifySmartyStreets: function(ids, deferred) {\r\n\t\t//We could be verifying multiple address components.\r\n\t\tdeferred = deferred || new $.Deferred();\r\n\r\n\t\tif (ids == null) { //coercion because I want both null and undefined\r\n\t\t\tids = $(\"[data-component='eventRegistration'] [data-component='createAccountForm']\").filter((index, element) => {\r\n\t\t\t\treturn $(element).find(\"[data-component='accountAddressLine1']:enabled\").length;\r\n\t\t\t}).toArray().map(element => $(element).attr(\"id\"));\r\n\t\t}\r\n\r\n\t\tids = ids || [];\r\n\t\tif (ids.length) {\r\n\t\t\tSmartyStreets.verifyAddress(`eventRegistration${ids[0]}`).done(() => {\r\n\t\t\t\tids.splice(0, 1);\r\n\t\t\t\tthis.verifySmartyStreets(ids, deferred);\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_accountDataChanged: function(event) {\r\n\t\tif (!event || !event.target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $field = $(event.target);\r\n\t\tvar $singleRegistration = $field.closest(\"[data-component='singleRegistration']\");\r\n\r\n\t\tif (!$singleRegistration.find(\"input[data-component='thisIsMeCheckbox.input']:checked\").length) {\r\n\t\t\t//This is Me Checkbox is not checked, so we should not need to keep any other input fields in sync\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Need to determine if it is a spouse field or not\r\n\t\tvar individualOrSpouseRegistrationComponent = $field.closest(\"[data-component='individualRegistration'],[data-component='spouseRegistration']\").attr(\"data-component\");\r\n\t\tvar createAccountOrSpouseDataComponent = $field.closest(\"[data-component='createAccountForm'],[data-component='spouseInformation']\").attr(\"data-component\");\r\n\t\tvar accountTypeSelector = `[data-component='${createAccountOrSpouseDataComponent}']`;\r\n\r\n\t\tvar name = $field.attr(\"name\");\r\n\t\tvar value = $field.val();\r\n\r\n\t\tvar $singleRegistrationsWhereThisIsMeIsChecked = $(\"[data-component='singleRegistration']\").not($singleRegistration).has(\"input[data-component='thisIsMeCheckbox.input']:checked\");\r\n\r\n\t\tvar changeFunction;\r\n\t\tvar fieldComponentName = $field.closest(\"[data-component]\").attr(\"data-component\");\r\n\r\n\t\tswitch (fieldComponentName) {\r\n\t\t\tcase \"accountTitle\":\r\n\t\t\t\tchangeFunction = window.AccountActions.setSelectedTitle;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"accountAddressState\":\r\n\t\t\t\tchangeFunction = window.AccountActions.setSelectedState;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"accountAddressCountry\":\r\n\t\t\t\tchangeFunction = window.AccountActions.setSelectedCountry;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"accountEmailType\":\r\n\t\t\t\tchangeFunction = window.AccountActions.setSelectedEmailType;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"accountPhoneType\":\r\n\t\t\t\tchangeFunction = window.AccountActions.setSelectedPhoneType;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"select.input\":\r\n\t\t\t\t$singleRegistrationsWhereThisIsMeIsChecked.find(\r\n\t\t\t\t\t`[data-component='${individualOrSpouseRegistrationComponent}'] [data-component=\"${fieldComponentName}\"][name=\"${name}\"]`\r\n\t\t\t\t).val(value);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"radioButtons.singleRadioButton.input\":\r\n\t\t\t\t$singleRegistrationsWhereThisIsMeIsChecked.find(\r\n\t\t\t\t\t`[data-component='${individualOrSpouseRegistrationComponent}'] [data-component=\"${fieldComponentName}\"][name=\"${name}\"][value=\"${value}\"]`\r\n\t\t\t\t).prop(\"checked\", true);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"singleCheckbox.input\":\r\n\t\t\t\tvar shouldCheck = $field.prop(\"checked\");\r\n\t\t\t\t$singleRegistrationsWhereThisIsMeIsChecked.find(\r\n\t\t\t\t\t`[data-component='${individualOrSpouseRegistrationComponent}'] [data-component=\"${fieldComponentName}\"][name=\"${name}\"]`\r\n\t\t\t\t).prop(\"checked\", shouldCheck);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"multipleCheckboxes.singleCheckbox.input\":\r\n\t\t\t\tvar shouldCheck = $field.prop(\"checked\");\r\n\t\t\t\t$singleRegistrationsWhereThisIsMeIsChecked.find(\r\n\t\t\t\t\t`[data-component='${individualOrSpouseRegistrationComponent}'] [data-component=\"${fieldComponentName}\"][name=\"${name}\"][value=\"${value}\"]`\r\n\t\t\t\t).prop(\"checked\", shouldCheck);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\t$singleRegistrationsWhereThisIsMeIsChecked.find(\r\n\t\t\t\t\t`${accountTypeSelector} [data-component=\"${fieldComponentName}\"]`\r\n\t\t\t\t).val(value);\r\n\t\t}\r\n\r\n\t\tif (changeFunction) {\r\n\t\t\t_.defer(() => {\r\n\t\t\t\t$singleRegistrationsWhereThisIsMeIsChecked.each((index, element) => {\r\n\t\t\t\t\tvar formId = $(element).find(accountTypeSelector).attr(\"id\");\r\n\t\t\t\t\tchangeFunction(formId, value);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t_addReactScriptsForSingleRegistration: function($lastSingleRegistration, reactScriptsForSingleRegistration) {\r\n\t\tvar $reactComponents = $lastSingleRegistration.find(\".isReactComponent\");\r\n\t\tif ($reactComponents.length && reactScriptsForSingleRegistration) {\r\n\t\t\tvar scriptToAdd = \"\";\r\n\t\t\t//We need to find and rerun the scripts to mount the react components.\r\n\t\t\t$reactComponents.each((index, element) => {\r\n\t\t\t\tvar newScript = (reactScriptsForSingleRegistration.filter(singleLineScript => {\r\n\t\t\t\t\treturn singleLineScript.includes(element.id);\r\n\t\t\t\t}) || [\"\"])[0];\r\n\r\n\t\t\t\tif (newScript) {\r\n\t\t\t\t\t//Changing out the reactId\r\n\t\t\t\t\tvar newElementId = `${element.id}${this.registrationNumber}`;\r\n\t\t\t\t\tnewScript = newScript.replace(element.id, newElementId);\r\n\t\t\t\t\telement.id = newElementId;\r\n\r\n\t\t\t\t\tscriptToAdd = `${scriptToAdd}\\n${newScript}`;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.registrationNumber++;\r\n\r\n\t\t\tif (scriptToAdd) {\r\n\t\t\t\t//Adding the script to the document so they will run\r\n\t\t\t\tvar newScriptNode = document.createElement(\"script\");\r\n\t\t\t\tnewScriptNode.textContent = scriptToAdd;\r\n\t\t\t\tdocument.head.appendChild(newScriptNode);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_calculateTotal() {\r\n\t\tvar sum = 0;\r\n\t\t$(\"[data-component='singleRegistration']\").each((index, singleRegistration) => {\r\n\t\t\tvar $singleRegistration = $(singleRegistration);\r\n\t\t\tvar $firstSelectedPriceOption = $singleRegistration.find(\"[data-component='singleRegistrationPriceCode.selector']\").first().find(\"option:selected\");\r\n\t\t\tvar isCouplePrice = ($firstSelectedPriceOption.attr(\"data-price-type\") || this.initialPriceType) === \"couple\";\r\n\t\t\tvar multiplier = isCouplePrice ? 2 : 1;\r\n\t\t\tvar pricePerPerson = Number($firstSelectedPriceOption.attr(\"data-price\") || this.initialPrice) || 0;\r\n\r\n\t\t\tsum += (multiplier * pricePerPerson);\r\n\t\t\t$singleRegistration.find(\"[data-component='eventRegistrationSessions.singleCheckbox.input']:checked\").each((inputIndex, element) => {\r\n\t\t\t\tsum += Number($(element).val()) || 0;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t$(\"[data-dynamic='RegistrationTotal'][data-dynamic-property='eventProperty']\").each((index, element) => $(element).text(ActionsHelper.formatAmount(sum, $(element))));\r\n\t},\r\n\r\n\t_clearRegistrationData($singleRegistration, formParentId, shouldDefaultValues) {\r\n\t\t$singleRegistration.find(\"input:not([data-component='eventRegistrationSessions.singleCheckbox.input'])\").not(\"input[data-parent-form-component='accountDemographicsForm']\").val(\"\");\r\n\t\t$singleRegistration.find(\"input:visible,select:visible\").prop(\"disabled\", false);\r\n\t\twindow.AccountActions.setSelectedCountry(formParentId, window.AccountStore.getDefaultCountry());\r\n\t\twindow.AccountActions.setSelectedState(formParentId, \"\");\r\n\t\twindow.AccountActions.setSelectedTitle(formParentId, \"\");\r\n\t\twindow.AccountActions.setSelectedPhoneType(formParentId, \"\");\r\n\t\twindow.AccountActions.setSelectedEmailType(formParentId, \"\");\r\n\t\tValidationHelper.removeBetterValidationPopup($singleRegistration.find(\"input,select\").removeClass(\"invalid\"));\r\n\r\n\t\t$singleRegistration.find(\"input[data-parent-form-component='accountDemographicsForm']\").prop(\"checked\", false);\r\n\t\t$singleRegistration.find(\"[data-component='accountDemographicsForm'] [name].isDirty\").removeClass(\"isDirty\");\r\n\r\n\t\tvar $selectInputs = $singleRegistration.find(\"select[data-parent-form-component='accountDemographicsForm']\");\r\n\t\tif (shouldDefaultValues) {\r\n\t\t\t$selectInputs.each((index, element) => {\r\n\t\t\t\tvar $selectInput = $(element);\r\n\t\t\t\tvar defaultValue = $selectInput.closest(\"[data-component='select']\").attr(\"data-code-type-default-value\") || \"\";\r\n\t\t\t\t$selectInput.val(defaultValue);\r\n\r\n\t\t\t\tif (defaultValue) {\r\n\t\t\t\t\t$selectInput.addClass(\"isDirty\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$selectInputs.val(\"\");\r\n\t\t}\r\n\r\n\t\t$singleRegistration.find(\"[data-component='createAccountForm'] form\")\r\n\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED)\r\n\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED)\r\n\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR);\r\n\t},\r\n\r\n\t_getEventOrReturn: function(event, isDesignModeMessage, isDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode != null ? isDesignMode : window.CheckoutActions.isDesignMode(), isDesignModeMessage, /*preventDefaultInDesignMode*/false); //coersion, because we want to check for null or undefined\r\n\t},\r\n\r\n\t_getNewPriceCodeDescription: function($singlePriceSelector, newPrice) {\r\n\t\tvar $singleRegistrationPriceCodeDiv = $singlePriceSelector.parents(\"[data-component='singleRegistrationPriceCode']\");\r\n\r\n\t\tvar priceSeparator = $singleRegistrationPriceCodeDiv.attr(\"data-price-separator\");\r\n\t\tvar pricePosition = $singleRegistrationPriceCodeDiv.attr(\"data-price-position\");\r\n\t\tvar displayPrice = ActionsHelper.formatAmount(newPrice, $singleRegistrationPriceCodeDiv)\r\n\r\n\t\tvar priceDescription = $singlePriceSelector.html();\r\n\t\tif (pricePosition === \"after\") {\r\n\t\t\tif (priceSeparator === \"hyphen\") {\r\n\t\t\t\t//Find the hyphen and remove the price which is two characters past the hyphen\r\n\t\t\t\tpriceDescription = priceDescription.substring(0, priceDescription.lastIndexOf(\"-\") + 2);\r\n\t\t\t} else if (priceSeparator === \"parentheses\") {\r\n\t\t\t\t//Find the first parentheses and remove everything past it\r\n\t\t\t\tpriceDescription = priceDescription.substring(0, priceDescription.lastIndexOf(\"(\"));\r\n\t\t\t\tdisplayPrice = \"(\" + displayPrice + \")\";\r\n\t\t\t}\r\n\t\t\tpriceDescription += displayPrice;\r\n\t\t} else if (pricePosition === \"before\") {\r\n\t\t\tif (priceSeparator === \"hyphen\") {\r\n\t\t\t\t//Find the hyphen and keep only it and everything past it\r\n\t\t\t\tpriceDescription = priceDescription.substring(priceDescription.lastIndexOf(\"-\") - 1);\r\n\t\t\t} else if (priceSeparator === \"parentheses\") {\r\n\t\t\t\t//Find the last parentheses and keep only everything past it\r\n\t\t\t\tpriceDescription = priceDescription.substring(priceDescription.lastIndexOf(\")\") + 1);\r\n\t\t\t\tdisplayPrice = \"(\" + displayPrice + \")\";\r\n\t\t\t}\r\n\t\t\tpriceDescription = displayPrice + priceDescription;\r\n\t\t}\r\n\r\n\t\treturn priceDescription;\r\n\t},\r\n\r\n\t_getReactScriptForSingleRegistration: function(singleEventRegistrationHtml) {\r\n\t\tvar $reactComponents = $(singleEventRegistrationHtml).find(\".isReactComponent\");\r\n\t\tvar reactScripts = ($(\"html\").find(\"script\").filter((index, element) => element.outerHTML.includes($reactComponents.attr(\"id\")))[0] || {}).innerHTML;\r\n\r\n\t\t//Find the react scripts we need to rerun when adding\r\n\t\tif (reactScripts) {\r\n\t\t\treactScripts = reactScripts.split(/[\\r\\n]+/);\r\n\t\t\tvar reactScriptsForSingleRegistration = reactScripts.filter(singleLineScript => {\r\n\t\t\t\tvar foundScript = false;\r\n\t\t\t\tsingleLineScript = (singleLineScript || \"\");\r\n\t\t\t\t$reactComponents.each((index, element) => {\r\n\t\t\t\t\tfoundScript = foundScript || singleLineScript.includes(element.id);\r\n\t\t\t\t});\r\n\t\t\t\treturn foundScript;\r\n\t\t\t});\r\n\t\t\tthis.registrationNumber = 1;\r\n\t\t\treturn reactScriptsForSingleRegistration;\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\t_priceCodeChange: function($element, $singleRegistration) {\r\n\t\tvar $parentSingleRegistration = $singleRegistration || $element.closest(\"[data-component='singleRegistration']\");\r\n\t\tvar $eventRegistration = $parentSingleRegistration.closest(\"[data-component='eventRegistration']\");\r\n\t\tvar $spouseRegistration = $parentSingleRegistration.find(\"[data-component='spouseRegistration']\");\r\n\t\tvar $option = $element.find(`option[value=\"${$element.val()}\"]`);\r\n\t\tvar priceType = $option.attr(\"data-price-type\") || this.initialPriceType;\r\n\r\n\t\tvar $allCheckedCheckboxInputs = $eventRegistration.find(\"input[data-component='thisIsMeCheckbox.input']:checked\");\r\n\t\tvar $thisIsMeInputs = $parentSingleRegistration.find(\"input[data-component='thisIsMeCheckbox.input']\");\r\n\t\tvar currentRegistrantNumber = Number($parentSingleRegistration.attr(\"data-registrant-number\"));\r\n\t\tvar $singleRegistrationsWithVisibleSpouseRegistration = $allCheckedCheckboxInputs.not($thisIsMeInputs).closest(\"[data-component='singleRegistration']\").filter((index, element) => {\r\n\t\t\tvar $priceCodeSelector = $(element).find(\"[data-component='singleRegistrationPriceCode.selector']\");\r\n\t\t\treturn ($priceCodeSelector.length && $priceCodeSelector.has(\"option[data-price-type=couple]:selected\").length) || this.initialPriceType === \"couple\";\r\n\t\t});\r\n\t\tvar minimumSpouseThisIsMeCheckboxChecked = Number($singleRegistrationsWithVisibleSpouseRegistration.first().attr(\"data-registrant-number\"));\r\n\t\tvar $firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged = $(`[data-component=\"singleRegistration\"][data-registrant-number=\"${minimumSpouseThisIsMeCheckboxChecked}\"]`);\r\n\r\n\t\tif (priceType == \"couple\") {\r\n\t\t\t$spouseRegistration.show();\r\n\r\n\t\t\tif ($thisIsMeInputs.is(\":checked\")) {\r\n\t\t\t\t//If thisIsMe is checked,\r\n\t\t\t\tif (currentRegistrantNumber > minimumSpouseThisIsMeCheckboxChecked) {\r\n\t\t\t\t\t//If this is not first one, disable fields\r\n\t\t\t\t\tthis._setFieldDisableStatus($parentSingleRegistration, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//If this is the first one, enable fields and disable next visible one's fields\r\n\t\t\t\t\tthis._setFieldDisableStatus($parentSingleRegistration, \"spouse\", /*isDisabled*/ false);\r\n\t\t\t\t\tthis._setFieldDisableStatus($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//If update is not allowed, we should set the fields to disabled\r\n\t\t\t\tif (!this.spouseUpdateAllowed) {\r\n\t\t\t\t\tthis._setFieldDisableStatusInForm($parentSingleRegistration, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._setEmailFieldAsDisabled($parentSingleRegistration.find(\"[data-component='individualRegistration']\"), $parentSingleRegistration.find(\"[data-component='spouseRegistration']\"));\r\n\t\t\t} else {\r\n\t\t\t\t//If thisIsMe is NOT checked, make sure fields are enabled\r\n\t\t\t\tthis._setFieldDisableStatus($parentSingleRegistration, \"spouse\", /*isDisabled*/ false);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$spouseRegistration.hide();\r\n\r\n\t\t\tif ($thisIsMeInputs.is(\":checked\")) {\r\n\t\t\t\t//If thisIsMe is checked.\r\n\t\t\t\t//If this is the first one, enable next visible one's fields\r\n\t\t\t\tthis._setFieldDisableStatus($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged, \"spouse\", /*isDisabled*/ false);\r\n\r\n\t\t\t\t//If update is not allowed, we should set the fields to disabled\r\n\t\t\t\tif (!this.spouseUpdateAllowed) {\r\n\t\t\t\t\tthis._setFieldDisableStatusInForm($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged, \"spouse\", /*isDisabled*/ true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._setEmailFieldAsDisabled($firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged.find(\"[data-component='individualRegistration']\"), $firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged.find(\"[data-component='spouseRegistration']\"));\r\n\t\t\t}\r\n\t\t\t//If thisIsMe is NOT checked, it doesn't really matter if the fields are enabled.\r\n\t\t}\r\n\r\n\t\t//If there are any other price code selects on the page, making sure they all match in value.\r\n\t\t$parentSingleRegistration.find(\"[data-component='singleRegistrationPriceCode'] select\").not($element).each((otherSelectIndex, otherSelectElement) => {\r\n\t\t\totherSelectElement.value = $element.val();\r\n\t\t});\r\n\t\tthis._setClientDynamicData($parentSingleRegistration, $option);\r\n\t\tthis._calculateTotal();\r\n\t},\r\n\r\n\t_resetIdsForRepeatedComponents($singleRegistration) {\r\n\t\t$singleRegistration = $($singleRegistration || {});\r\n\r\n\t\tvar $body = $(\"body\");\r\n\r\n\t\tvar $components = $singleRegistration.find(\"[data-repeated-id][id]\").addBack($singleRegistration);\r\n\t\t$components.each((index, element) => {\r\n\t\t\tvar newId = HtmlHelper.getId($body);\r\n\t\t\telement.setAttribute(\"id\", newId);\r\n\t\t});\r\n\r\n\t\tvar $componentsWithLinkedLabels = $singleRegistration.find(\r\n\t\t\t\"[data-component='radioButtons.singleRadioButton.input'],\" +\r\n\t\t\t\"[data-component='singleCheckbox.input'],\" +\r\n\t\t\t\"[data-component='multipleCheckboxes.singleCheckbox.input']\"\r\n\t\t);\r\n\t\t$componentsWithLinkedLabels.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\r\n\t\t\t$element\r\n\t\t\t\t.closest(\r\n\t\t\t\t\t\"[data-component='radioButtons.singleRadioButton'],\" +\r\n\t\t\t\t\t\"[data-component='singleCheckbox'],\" +\r\n\t\t\t\t\t\"[data-component='multipleCheckboxes.singleCheckbox']\"\r\n\t\t\t\t)\r\n\t\t\t\t.find(\"[data-component='label']\")\r\n\t\t\t\t.attr(\"for\", $element.attr(\"id\"));\r\n\t\t});\r\n\t},\r\n\r\n\t_serializeEmailAddress(data, $singleRegistration) {\r\n\t\tvar isThisIsMeChecked = Boolean($singleRegistration.find(\"[data-component='thisIsMeCheckbox.input']:checked\").length);\r\n\t\t//Have to do email addresses differently because they are always disabled when thisIsMe is Checked\r\n\t\tif (isThisIsMeChecked) {\r\n\t\t\tif (data.individual) {\r\n\t\t\t\tvar $individualEmailAddress = $singleRegistration.find(\"[data-component='individualRegistration'] [data-component='accountEmailAddress']\");\r\n\t\t\t\tif ($individualEmailAddress.length && $individualEmailAddress.val()) {\r\n\t\t\t\t\tdata.individual.email = data.individual.email || {};\r\n\t\t\t\t\tdata.individual.email.emailAddress = $individualEmailAddress.val();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (data.spouse) {\r\n\t\t\t\tvar $spouseEmailAddress = $singleRegistration.find(\"[data-component='spouseRegistration'] [data-component='accountEmailAddress']\");\r\n\t\t\t\tif ($spouseEmailAddress.length && $spouseEmailAddress.val()) {\r\n\t\t\t\t\tdata.spouse.email = data.spouse.email || {};\r\n\t\t\t\t\tdata.spouse.email.emailAddress = $spouseEmailAddress.val();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t},\r\n\r\n\t_serializeSingleRegistration($singleRegistration, serializeDemographics) {\r\n\t\tvar data = {};\r\n\t\t//Save previously entered data\r\n\t\tvar $individualRegistration = $singleRegistration.find(\"[data-component='individualRegistration']\");\r\n\t\tvar $spouseRegistration = $singleRegistration.find(\"[data-component='spouseRegistration']\");\r\n\r\n\t\tdata.individual = ActionsHelper.serializeForm($individualRegistration.find(\"form#createAccountForm\"));\r\n\t\tdata.spouse = ActionsHelper.serializeForm($spouseRegistration.find(\"form#spouseInformationForm\"));\r\n\r\n\t\t//Initialize Codes so property is never empty\r\n\t\tdata.individual.codes = [];\r\n\t\tdata.spouse.codes = [];\r\n\r\n\t\tif (serializeDemographics) {\r\n\t\t\tAccountFormHelper.updateAccountDemographics(data.individual, $individualRegistration, /* shouldValidate */ false);\r\n\t\t\tAccountFormHelper.updateAccountDemographics(data.spouse, $spouseRegistration, /* shouldValidate */ false);\r\n\t\t}\r\n\r\n\t\tdata = this._serializeEmailAddress(data, $singleRegistration);\r\n\t\tdata.individual.savedFormData = true;\r\n\t\tdata.spouse.savedFormData = true;\r\n\r\n\t\treturn data;\r\n\t},\r\n\r\n\t_setAccountData(data, $component, formId) {\r\n\t\t//This is the first checkbox input. If we have account data, set it.\r\n\t\tif (data) {\r\n\t\t\tthis._setTextInput($component, \"accountFirstName\", data.firstName);\r\n\t\t\tthis._setTextInput($component, \"accountLastName\", data.lastName);\r\n\t\t\tthis._setTextInput($component, \"accountMiddleName\", data.middleName);\r\n\t\t\tthis._setTextInput($component, \"accountMiddleName\", data.middleName);\r\n\t\t\tthis._setTextInput($component, \"accountSuffix\", data.suffix);\r\n\t\t\twindow.AccountActions.setSelectedTitle(formId, data.title);\r\n\t\t\tif (data.address) {\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine1\", data.address.line1);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine2\", data.address.line2);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine3\", data.address.line3);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine4\", data.address.line4);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressCity\", data.address.city);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressPostalCode\", data.address.postalCode);\r\n\t\t\t\twindow.AccountActions.setSelectedCountry(formId, data.address.country || window.AccountStore.getDefaultCountry());\r\n\t\t\t\twindow.AccountActions.setSelectedState(formId, data.address.state);\r\n\t\t\t}\r\n\t\t\tif (data.phone) {\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneCountryCode\", data.phone.internationalCode);\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneAreaCode\", data.phone.areaCode);\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneNumber\", data.phone.phoneNumber);\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneExtension\", data.phone.extension);\r\n\t\t\t\twindow.AccountActions.setSelectedPhoneType(formId, data.phone.type);\r\n\t\t\t}\r\n\t\t\tif (data.email) {\r\n\t\t\t\twindow.AccountActions.setSelectedEmailType(formId, data.email.type);\r\n\t\t\t\tthis._setTextInput($component, \"accountEmailAddress\", data.email.emailAddress);\r\n\t\t\t}\r\n\t\t\twindow.AccountActions.initializeDemographics({\r\n\t\t\t\taccountCodes: data.codes,\r\n\t\t\t\tparentSelector: $component,\r\n\t\t\t\tsetInitialDirty: data.savedFormData\r\n\t\t\t});\r\n\t\t\tValidationHelper.removeBetterValidationPopup($component.find(\"input,select\").removeClass(\"invalid\"));\r\n\t\t}\r\n\t},\r\n\r\n\t_copyDemographics: function($sourceComponent, $targetComponent) {\r\n\t\tif ($sourceComponent.length <= 0 || $targetComponent.length <= 0) {\r\n\t\t\t//There is no source component to copy from or target component to copy to\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $elements = $sourceComponent.find(\r\n\t\t\t\"select[data-parent-form-component='accountDemographicsForm'],\" +\r\n\t\t\t\"input[data-parent-form-component='accountDemographicsForm']:checkbox,\" +\r\n\t\t\t\"input[data-parent-form-component='accountDemographicsForm']:radio\"\r\n\t\t);\r\n\r\n\t\t$elements.each(function(index, demographic) {\r\n\t\t\tvar $demographic = $(demographic);\r\n\t\t\tvar name = $demographic.attr(\"name\");\r\n\t\t\tvar value = $demographic.val();\r\n\t\t\tvar fieldComponentName = $demographic.closest(\"[data-component]\").attr(\"data-component\");\r\n\r\n\t\t\tswitch (fieldComponentName) {\r\n\t\t\t\tcase \"select.input\":\r\n\t\t\t\t\t$targetComponent.find(`[data-component=\"${fieldComponentName}\"][name=\"${name}\"]`).val(value);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"radioButtons.singleRadioButton.input\":\r\n\t\t\t\t\tvar shouldCheck = $demographic.prop(\"checked\");\r\n\t\t\t\t\t$targetComponent.find(`[data-component=\"${fieldComponentName}\"][name=\"${name}\"][value=\"${value}\"]`).prop(\"checked\", shouldCheck);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"singleCheckbox.input\":\r\n\t\t\t\t\tvar shouldCheck = $demographic.prop(\"checked\");\r\n\t\t\t\t\t$targetComponent.find(`[data-component=\"${fieldComponentName}\"][name=\"${name}\"]`).prop(\"checked\", shouldCheck);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"multipleCheckboxes.singleCheckbox.input\":\r\n\t\t\t\t\tvar shouldCheck = $demographic.prop(\"checked\");\r\n\t\t\t\t\t$targetComponent.find(`[data-component=\"${fieldComponentName}\"][name=\"${name}\"][value=\"${value}\"]`).prop(\"checked\", shouldCheck);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_setClientDynamicData: function($singleRegistration, $selectedOption) {\r\n\t\tif (!$selectedOption || !$selectedOption.length) {\r\n\t\t\tvar $priceCodeSelector = $singleRegistration.find(\"[data-component='singleRegistrationPriceCode']\").first().find(\"select\");\r\n\t\t\t$selectedOption = $priceCodeSelector.find(`option[value=\"${$priceCodeSelector.val()}\"]`);\r\n\t\t}\r\n\r\n\t\tvar price = $selectedOption.attr(\"data-price\") || this.initialPrice;\r\n\t\tvar priceDescription = $selectedOption.attr(\"data-price-description\") || this.initialPriceDescription;\r\n\t\tvar registrantNumber = $singleRegistration.attr(\"data-registrant-number\") || \"\";\r\n\r\n\t\t$singleRegistration.find(\"[data-dynamic='Price'][data-dynamic-property='eventSingleRegistrationProperty']\").each((index, priceElement) => {\r\n\t\t\tvar $priceElement = $(priceElement);\r\n\t\t\t$priceElement.text(ActionsHelper.formatAmount(price, $priceElement));\r\n\t\t});\r\n\r\n\t\t$singleRegistration.find(\"[data-dynamic='PriceDescription'][data-dynamic-property='eventSingleRegistrationProperty']\").text(priceDescription);\r\n\t\t$singleRegistration.find(\"[data-dynamic='RegistrantNumber'][data-dynamic-property='eventSingleRegistrationProperty']\").text(registrantNumber);\r\n\t},\r\n\r\n\t_setEmailFieldAsDisabled($individualRegistration, $spouseRegistration) {\r\n\t\t//EmailAddress Field are always disabled when we are identified or logged in because we do not want the constituent's username to change\r\n\t\t//\tWhen we are identified or logged in, we will have this.accountData or this.spouseData\r\n\t\t//\tIf, for some reason, we do not have an email address, let us go ahead and enter one. This would mainly be for the spouseAccount, I would imagine.\r\n\t\tif (this.accountData && this.accountData.email && this.accountData.email.emailAddress) {\r\n\t\t\t$individualRegistration.find(\"input[data-component='accountEmailAddress']\").prop(\"disabled\", true);\r\n\t\t}\r\n\t\tif (this.spouseData && this.spouseData.email && this.spouseData.email.emailAddress) {\r\n\t\t\t$spouseRegistration.find(\"input[data-component='accountEmailAddress']\").prop(\"disabled\", true);\r\n\t\t}\r\n\t},\r\n\r\n\t_setFieldDisableStatus($singleRegistration, type, isDisabled) {\r\n\t\tthis._setFieldDisableStatusInternal($singleRegistration, type, /*shouldRestrictToForm*/ false, isDisabled);\r\n\t},\r\n\r\n\t_setFieldDisableStatusInForm($singleRegistration, type, isDisabled) {\r\n\t\tthis._setFieldDisableStatusInternal($singleRegistration, type, /*shouldRestrictToForm*/ true, isDisabled);\r\n\t},\r\n\r\n\t_setFieldDisableStatusInternal($singleRegistration, type, shouldRestrictToForm, isDisabled) {\r\n\t\tvar formSelector = \"\";\r\n\t\tif (shouldRestrictToForm) {\r\n\t\t\tvar componentName = type === \"individual\" ? \"createAccountForm\" : \"spouseInformation\";\r\n\t\t\tformSelector = `[data-component=\"${componentName}\"] `;\r\n\t\t}\r\n\r\n\t\tvar $fieldsToToggle = $singleRegistration\r\n\t\t\t// Find all input and select elements within the createAccountForm/spouseInformation component that are not\r\n\t\t\t// the This Is Me checkbox, the Event Registration Session checkbox, or the Registration Price Code selector\r\n\t\t\t.find(\r\n\t\t\t\t`[data-component=\"${type}Registration\"] ${formSelector}input:not([data-component=\"thisIsMeCheckbox.input\"],[data-component=\"eventRegistrationSessions.singleCheckbox.input\"]),` +\r\n\t\t\t\t`[data-component=\"${type}Registration\"] ${formSelector}select:not([data-component=\"singleRegistrationPriceCode.selector\"])`\r\n\t\t\t);\r\n\r\n\t\t$fieldsToToggle.prop(\"disabled\", isDisabled);\r\n\t},\r\n\r\n\t_setTextInput($parent, childComponentName, value) {\r\n\t\t$parent.find(`input[data-component=\"${childComponentName}\"]`).val(value || \"\");\r\n\t},\r\n\r\n\t_updateAllPrices() {\r\n\t\tvar $registrations = $(\"[data-component='singleRegistration']\");\r\n\r\n\t\t//Update dynamic data for events\r\n\t\t$registrations.each((index, singleRegistration) => {\r\n\t\t\tvar $priceCodeSelectors = $(singleRegistration).find(\"[data-component='singleRegistrationPriceCode.selector']\");\r\n\t\t\t$priceCodeSelectors.each((index, priceCodeSelector) => {\r\n\t\t\t\tthis._priceCodeChange($(priceCodeSelector), $(singleRegistration));\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t//Update the registration template so that new registrants include the group code pricing\r\n\t\tvar $registrationTemplate = $(\"[data-component='singleRegistration']\").first().attr(\"data-registrant-number\", 1);\r\n\t\tif ($registrationTemplate[0]) {\r\n\t\t\tthis.singleEventRegistrationHtml = $registrationTemplate[0].outerHTML;\r\n\t\t}\r\n\t},\r\n\r\n\t_updateGroupCodeUi(groupCode, data) {\r\n\t\t$(\"[data-component='applyGroupCodeForm']\").attr(\"group-code\", groupCode);\r\n\t\t$(\"[data-component='applyGroupCodeForm']\").attr(\"group-code-price-code\", data.defaultPriceCode);\r\n\r\n\t\t//If there is a current groupCode component, set the label\r\n\t\tvar $groupCodeDynamicLabel = $(\"[data-dynamic-property='groupCode']\");\r\n\r\n\t\t$groupCodeDynamicLabel.each((index, groupLabel) => {\r\n\t\t\tvar $groupLabel = $(groupLabel)\r\n\t\t\tvar $links = $groupLabel.find(\"a\");\r\n\r\n\t\t\t//Check to see if there are any links in the label - if so, update their html\r\n\t\t\tif ($links.length) {\r\n\t\t\t\t$links.each((index, element) => {\r\n\t\t\t\t\tvar $element = $(element);\r\n\r\n\t\t\t\t\t$element.html(groupCode);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$groupLabel.html(groupCode);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(\"[data-component='currentGroupCode']\").show();\r\n\r\n\t\tvar $registrationTypes = $(\"[data-component='singleRegistrationPriceCode.selector'] option\");\r\n\r\n\t\t//Update each registration drop-down with the new price\r\n\t\t$registrationTypes.each((index, singlePriceSelector) => {\r\n\t\t\tvar $singlePriceSelector = $(singlePriceSelector);\r\n\t\t\tvar newPriceDescription = this._getNewPriceCodeDescription($singlePriceSelector, data.newPrice);\r\n\r\n\t\t\t//Save the old price if needed\r\n\t\t\tif (!$singlePriceSelector.attr(\"data-old-price\")) {\r\n\t\t\t\t$singlePriceSelector.attr(\"data-old-price\", $singlePriceSelector.attr(\"data-price\"));\r\n\t\t\t}\r\n\r\n\t\t\t$singlePriceSelector.html(newPriceDescription);\r\n\t\t\t$singlePriceSelector.attr(\"data-price\", data.newPrice);\r\n\t\t});\r\n\t}\r\n};\r\n\r\nmodule.exports = EventRegistrationHelper;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar PledgeActions = require(\"../actions/PledgeActions\");\r\nvar PledgeStore = require(\"../stores/PledgeStore\");\r\n\r\nvar Frequency = require(\"../commonComponents/Frequency\");\r\n\r\nclass DonationFrequency extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<Frequency\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tbeginningComponentName=\"Pledge\"\r\n\t\t\t\ttangibleActions={PledgeActions}\r\n\t\t\t\ttangibleStore={PledgeStore}\r\n\t\t\t\ttangibleType=\"pledge\"\r\n\t\t\t\tdisplayCodeProperty=\"PledgeCode\"\r\n\t\t\t\treactComponentCategory=\"PledgeFrequencyComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nDonationFrequency.defaultProps = {\r\n\ttype: \"button\",\r\n\ttheme: \"0\",\r\n\tisCustomTheme: false\r\n};\r\n\r\nDonationFrequency.propTypes = {\r\n\tisDesignMode: PropTypes.bool, //can do .isRequired\r\n\tpledge: PropTypes.object,\r\n\tfrequencies: PropTypes.array,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]),\r\n\tcontext: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = DonationFrequency;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar PledgeActions = require(\"../actions/PledgeActions\");\r\nvar PledgeStore = require(\"../stores/PledgeStore\");\r\n\r\nvar GiftArray = require(\"../projectComponents/GiftArray\");\r\n\r\nclass PledgeGiftArray extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<GiftArray\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tbeginningComponentName=\"Pledge\"\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\ttangibleActions={PledgeActions}\r\n\t\t\t\ttangibleStore={PledgeStore}\r\n\t\t\t\ttangibleType=\"pledge\"\r\n\t\t\t\tdisplayCodeProperty=\"PledgeCode\"\r\n\t\t\t\treactComponentCategory=\"PledgeGiftArrayComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nPledgeGiftArray.defaultProps = {\r\n\tincludeCurrencySymbol: true,\r\n\tincludeOther: false,\r\n\totherText: \"Other\",\r\n\tshowDecimals: true\r\n};\r\n\r\nPledgeGiftArray.propTypes = {\r\n\tbuttonStyle: PropTypes.object,\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tgiftAmounts: PropTypes.array,\r\n\thideWhenSubaccounts: PropTypes.bool,\r\n\tincludeCurrencySymbol: PropTypes.bool,\r\n\tincludeOther: PropTypes.bool,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\tminimumAmount: PropTypes.number,\r\n\totherText: PropTypes.string,\r\n\tpledge: PropTypes.object,\r\n\tshowDecimals: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]).isRequired\r\n};\r\n\r\nmodule.exports = PledgeGiftArray;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ProductVariantsHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar ProductVariantsHelper = {\r\n\tinitializeProductVariants: function($component, isDesignMode) {\r\n\t\t$component = $($component || \"body\");\r\n\t\tvar $singleVariantComponent = $component.find(\"[data-component='productVariants.singleVariant']\");\r\n\r\n\t\t$singleVariantComponent.off(\"click.productVariants\");\r\n\t\t$singleVariantComponent.off(\"mousedown.productVariants\");\r\n\t\t$singleVariantComponent.off(\"mouseup.productVariants\");\r\n\t\t$singleVariantComponent.off(\"keyup.productVariants\");\r\n\r\n\t\t$singleVariantComponent.on(\"click.productVariants\", (event) => {\r\n\t\t\tthis.variantClicked(event, isDesignMode);\r\n\t\t});\r\n\r\n\t\t$singleVariantComponent.on(\"mousedown.productVariants\", (event) => {\r\n\t\t\tif (event && event.which === 2) {\r\n\t\t\t\t//Making it so middle click does not try to allow the user to scroll\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$singleVariantComponent.on(\"mouseup.productVariants\", (event) => {\r\n\t\t\tif (event && event.which === 2) {\r\n\t\t\t\tthis.variantClicked(event, isDesignMode, /*openInNewTab*/ true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$singleVariantComponent.on(\"keyup.productVariants\", (event) => {\r\n\t\t\tif (event && (event.which === Constants.KEYS.ENTER || event.which === Constants.KEYS.SPACE)) {\r\n\t\t\t\tthis.variantClicked(event, isDesignMode);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tvariantClicked: function(event, isDesignMode, openInNewTab) {\r\n\t\tvar $variant = $(event.target).closest(`[data-component=\"productVariants.singleVariant\"]`);\r\n\r\n\t\tif ((event.ctrlKey || event.metaKey) && isDesignMode) {\r\n\t\t\t$variant.toggleClass(\"selected\");\r\n\t\t}\r\n\r\n\t\tevent = this._getEventOrReturn(event, \"Variant Clicked\", isDesignMode);\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar productUrl = $variant.attr(\"data-url\");\r\n\t\tif (productUrl) {\r\n\t\t\tvar url;\r\n\t\t\tif (productUrl.startsWith(\"/category\")) {\r\n\t\t\t\turl = productUrl;\r\n\t\t\t} else {\r\n\t\t\t\turl = `/purchase/${productUrl}`;\r\n\t\t\t}\r\n\t\t\tif (openInNewTab) {\r\n\t\t\t\twindow.open(url, '_blank');\r\n\t\t\t} else if (window.location.pathname !== url) {\r\n\t\t\t\t$variant.closest(`[data-component=\"productVariants\"]`).find(`[data-component=\"productVariants.singleVariant\"]`).removeClass(\"selected\");\r\n\t\t\t\t$variant.addClass(\"selected\");\r\n\t\t\t\twindow.location = url;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage, isDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode, isDesignModeMessage, /*preventDefaultInDesignMode*/false);\r\n\t}\r\n};\r\n\r\nmodule.exports = ProductVariantsHelper;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"Quantity\");\r\nvar React = require(\"react\");\r\n\r\nvar ProductActions = require(\"../actions/ProductActions\");\r\n\r\nvar ProductStore = require(\"../stores/ProductStore\");\r\n\r\nclass Quantity extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = { selectedQuantity: 1 };\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleAmountChange(event) {\r\n\t\t// must be whole number, > 0\r\n\t\tif (event.currentTarget.value === \"0\") {\r\n\t\t\tProductActions.setQuantity(1, this.props.tangibleCode, this.state.context);\r\n\t\t} else if (event.currentTarget.value.match(/^\\d*$/)) {\r\n\t\t\tProductActions.setQuantity(event.currentTarget.value, this.props.tangibleCode, this.state.context);\r\n\t\t}\r\n\t}\r\n\r\n\thandleAmountBlur(event) {\r\n\t\t// must be whole number, > 0\r\n\t\tvar quantity = event.currentTarget.value;\r\n\t\tvar isValidQuantity = quantity.match(/^[1-9]\\d*$/) !== null;\r\n\r\n\t\tif (!isValidQuantity) {\r\n\t\t\tProductActions.setQuantity(1, this.props.tangibleCode, this.state.context);\r\n\t\t} else {\r\n\t\t\tProductActions.setQuantity(quantity, this.props.tangibleCode, this.state.context);\r\n\t\t}\r\n\t}\r\n\r\n\tgetStateFromStore() {\r\n\t\treturn {\r\n\t\t\tselectedQuantity: ProductStore.getSelectedQuantity(this.state.context, this.props.tangibleCode)\r\n\t\t};\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.getStateFromStore());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tvar context = this.props.context;\r\n\t\tvar contextId = \"\";\r\n\t\tif (context) {\r\n\t\t\tswitch (context) {\r\n\t\t\t\tcase \"tangible\":\r\n\t\t\t\t\tcontext = \"category\";\r\n\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=category]\").attr(\"id\");\r\n\r\n\t\t\t\t\tif (!contextId) {\r\n\t\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=carousel]\").attr(\"id\");\r\n\t\t\t\t\t\tif (contextId) {\r\n\t\t\t\t\t\t\tcontext = \"carousel\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"result\":\r\n\t\t\t\t\tcontext = \"search\";\r\n\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=searchResults]\").attr(\"id\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcontext += `_${contextId}`;\r\n\t\t}\r\n\t\t// At this point, selectedQuantity has been set by the component\r\n\t\tProductActions.setQuantity(this.state.selectedQuantity, this.props.tangibleCode, context, /* isInitialization */ true);\r\n\t\tthis.setState({ context });\r\n\t\tProductStore.addChangeListener(this._onChange);\r\n\r\n\t\t//I don't necessarily like doing this but CheckoutActions, outside of the commonComponents bundle needs to know when to attach quantity change listener.\r\n\t\tif (!this.state.context && !this.props.tangibleCode) {\r\n\t\t\t$(\"body\").trigger(\"mainProductQuantityMounted\");\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tProductStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tProductActions.setQuantity(null, this.props.tangibleCode, this.state.context);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar quantity = this.state.selectedQuantity;\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"Quantity\"\r\n\t\t\t\tdata-react-component-category=\"ProductComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<input\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tvalue={quantity == null ? 1 : quantity}\r\n\t\t\t\t\tonChange={this.handleAmountChange.bind(this)}\r\n\t\t\t\t\tonBlur={this.handleAmountBlur.bind(this)}\r\n\t\t\t\t\tclassName={classNames(this.props.className, !this.state.context && !this.props.tangibleCode ? \"main-product-quantity\" : \"\")}\r\n\t\t\t\t\tdata-override-classes={this.props.className}\r\n\t\t\t\t\tinputMode=\"numeric\"\r\n\t\t\t\t/>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nQuantity.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tisDesignMode: PropTypes.bool,\r\n\tcontext: PropTypes.string,\r\n\ttangibleCode: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = Quantity;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar ProjectActions = require(\"./ProjectActions\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nvar Frequency = require(\"../commonComponents/Frequency\");\r\n\r\nclass DonationFrequency extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<Frequency\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tbeginningComponentName=\"Donation\"\r\n\t\t\t\ttangibleActions={ProjectActions}\r\n\t\t\t\ttangibleStore={ProjectStore}\r\n\t\t\t\ttangibleType=\"project\"\r\n\t\t\t\tdisplayCodeProperty=\"ProjectCode\"\r\n\t\t\t\treactComponentCategory=\"ProjectFrequencyComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nDonationFrequency.defaultProps = {\r\n\ttype: \"button\",\r\n\ttheme: \"0\",\r\n\tisCustomTheme: false\r\n};\r\n\r\nDonationFrequency.propTypes = {\r\n\tisDesignMode: PropTypes.bool, //can do .isRequired\r\n\tproject: PropTypes.object,\r\n\tfrequencies: PropTypes.array,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]),\r\n\tcontext: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = DonationFrequency;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar VisibilityStore = require(\"../client/VisibilityStore\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar GiftArrayValidator = require(\"./validations/GiftArrayValidator\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nclass GiftArray extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\t// Ideally we would get the tangible (project/pledge) from the store, but that does not exist on the server\r\n\t\t// We optimistically render on the server with the props[this.props.tangibleType] (props.project/props.pledge) (the @Model) and on the\r\n\t\t// client, we will get the tangible from the store\r\n\t\tvar tangible = props.tangibleStore.get(props.tangibleType) || props[props.tangibleType] || {};\r\n\t\ttangible = JSON.parse(JSON.stringify(tangible)); // clone the tangible (project/pledge) to avoid reference\r\n\r\n\t\tvar overrides = props.overrides || {};\r\n\r\n\t\tvar giftAmounts = [];\r\n\t\tif (overrides.giftAmounts) {\r\n\t\t\tgiftAmounts = overrides.giftAmounts.slice(0); // clone the array to avoid reference\r\n\t\t} else if (props.giftAmounts) {\r\n\t\t\tgiftAmounts = props.giftAmounts.slice(0); // clone the array to avoid reference\r\n\t\t}\r\n\r\n\t\tvar tangibleCode;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tif (!tangible) {\r\n\t\t\t\ttangible = {\r\n\t\t\t\t\t[props.displayCodeProperty]: \"DESIGN01\",\r\n\t\t\t\t\tdescription: \"test description\"\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (overrides.includeOther || props.includeOther) {\r\n\t\t\tgiftAmounts = giftAmounts.concat(\"other\");\r\n\t\t}\r\n\r\n\t\t//If subaccounts is not visible or if we are in a category or searchResults component, we always want to select the first value.\r\n\t\tvar selectedAmount = \"\";\r\n\t\tif (props.context || !this.isSubaccountVisible()) {\r\n\t\t\tvar initialSelectedIndex = props.defaultSelectedAmountIndex ? (Number(props.defaultSelectedAmountIndex) || 1) - 1 : 0;\r\n\t\t\t//If the index is invalid, just select the first item.\r\n\t\t\tif (initialSelectedIndex >= giftAmounts.length || initialSelectedIndex < 0) {\r\n\t\t\t\tinitialSelectedIndex = 0;\r\n\t\t\t}\r\n\t\t\tselectedAmount = giftAmounts[initialSelectedIndex];\r\n\t\t}\r\n\r\n\t\tvar otherSelected = false;\r\n\t\tif (selectedAmount === \"other\") {\r\n\t\t\totherSelected = true;\r\n\t\t\tselectedAmount = 0;\r\n\t\t}\r\n\r\n\t\tif (props.context) {\r\n\t\t\tif (props[props.tangibleType]) {\r\n\t\t\t\ttangibleCode = props[props.tangibleType].tangibleCode;\r\n\t\t\t} else if (props.isDesignMode) {\r\n\t\t\t\ttangibleCode = tangible[props.displayCodeProperty];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedAmount,\r\n\t\t\totherSelected,\r\n\t\t\tshowOtherTextbox: false,\r\n\t\t\ttangible,\r\n\t\t\ttangibleCode,\r\n\t\t\tgiftAmounts\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleAmountSelected(event) {\r\n\t\tvar selectedValue = event.currentTarget.value;\r\n\r\n\t\tvar otherSelected = false;\r\n\t\tif (selectedValue === \"other\") {\r\n\t\t\totherSelected = true;\r\n\t\t\tselectedValue = 0;\r\n\t\t}\r\n\t\tif (this._isMounted) {\r\n\t\t\tthis.setState({\r\n\t\t\t\totherSelected,\r\n\t\t\t\tshowOtherTextbox: otherSelected\r\n\t\t\t}, () => {\r\n\t\t\t\tif (otherSelected && this.refs.otherTextbox) {\r\n\t\t\t\t\t$(this.refs.otherTextbox).val('');\r\n\t\t\t\t\tthis.refs.otherTextbox.focus();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.props.tangibleActions.setGiftAmount(selectedValue, this.state.tangibleCode, this.state.context);\r\n\t}\r\n\r\n\thandleBlurOther() {\r\n\t\tthis.setState({\r\n\t\t\tfocusedOther: false,\r\n\t\t\tshowOtherTextbox: false\r\n\t\t});\r\n\t}\r\n\r\n\thandleFocusOther() {\r\n\t\tthis.setState({ focusedOther: true });\r\n\t}\r\n\r\n\thandleOtherAmountChange(event) {\r\n\t\t// Enforce that the value can be a number followed by a decimal and up to two digits\r\n\t\t// valid: 8, 8., ., .8, .88\r\n\t\t// invalid: .888, 8.888, asdf, '8,888'\r\n\t\tif (InputHelper.isAmountValid(event.currentTarget.value)) {\r\n\t\t\tthis.props.tangibleActions.setGiftAmount(ActionsHelper.convertFormattedAmountToNumberString(event.currentTarget.value), this.state.tangibleCode, this.state.context);\r\n\t\t}\r\n\t}\r\n\r\n\tisSubaccountVisible() {\r\n\t\tif (VisibilityStore.hasRule(\"subaccountGiftArray\") && $(\"[data-react-component-name='SubaccountGiftArray']\").length) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Subaccounts is either not visible or is has not been loaded yet.\r\n\t\t// If it has not been loaded yet just set the default and SubaccountGiftArray will remove it if necessary.\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\t// If keepDecimals, do not format out the decimals.\r\n\t// User entered information should not strip out decimals.\r\n\tformatAmount(amount, keepDecimals) {\r\n\t\tvar formattedAmount = amount;\r\n\t\tif (amount === \"other\") {\r\n\t\t\tformattedAmount = \"Other\";\r\n\t\t} else {\r\n\t\t\tformattedAmount = ActionsHelper.formatAmount(amount, this.props.showDecimals, this.props.includeCurrencySymbol, keepDecimals);\r\n\t\t}\r\n\t\treturn formattedAmount;\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(this.props.tangibleStore.getState());\r\n\t}\r\n\r\n\tcomponentWillMount() {\r\n\t\t//Setting an instance Id, mainly for when we are in the searchResults and this component is in the grid and list view. We need the names for the radio button groups to be unique.\r\n\t\tthis.instanceId = HtmlHelper.getId($(\"body\"));\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this.props.thisArg || this);\r\n\t\t}\r\n\t\tvar context = this.props.context;\r\n\t\tvar contextId = \"\";\r\n\t\tif (context) {\r\n\t\t\tswitch (context) {\r\n\t\t\t\tcase \"tangible\":\r\n\t\t\t\t\tcontext = \"category\";\r\n\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=category]\").attr(\"id\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"result\":\r\n\t\t\t\t\tcontext = \"search\";\r\n\t\t\t\t\tcontextId = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=searchResults]\").attr(\"id\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcontext += `_${contextId}`;\r\n\t\t}\r\n\t\t//Set custom validator\r\n\t\tthis.setCustomValidation();\r\n\r\n\t\tthis.props.tangibleActions.setMinimumAmount(\r\n\t\t\tthis.props.minimumAmount,\r\n\t\t\tthis.state.tangibleCode,\r\n\t\t\tcontext\r\n\t\t);\r\n\r\n\t\tvar { selectedAmount, otherSelected } = this.state;\r\n\t\tif (!context) {\r\n\t\t\t// Check sessionStorage for cachedValues, update to use \"other\" value if indicated\r\n\t\t\tvar cachedValues = {};\r\n\t\t\tif (this.props.tangibleActions.getCachedValues) {\r\n\t\t\t\tcachedValues = this.props.tangibleActions.getCachedValues() || {};\r\n\t\t\t}\r\n\r\n\t\t\tif (cachedValues.amount || cachedValues.isOtherSelected !== undefined) {\r\n\t\t\t\t// At this point, selectedAmount has been set by the component\r\n\t\t\t\totherSelected = cachedValues.isOtherSelected && this.state.giftAmounts.includes(\"other\");\r\n\r\n\t\t\t\tif (otherSelected) {\r\n\t\t\t\t\t//0 can be selected for other. We want to keep 0, if other is selected and not default to this.state.selectedAmount\r\n\t\t\t\t\tselectedAmount = cachedValues.amount || 0;\r\n\t\t\t\t} else if (cachedValues.amount) {\r\n\t\t\t\t\tvar cachedGiftAmount = this.state.giftAmounts\r\n\t\t\t\t\t\t.find(giftAmount =>\r\n\t\t\t\t\t\t\t// Check both an exact match and a numeric match (50 == \"50\" or \"50.00\" == \"50\")\r\n\t\t\t\t\t\t\tgiftAmount === cachedValues.amount ||\r\n\t\t\t\t\t\t\tNumber(giftAmount) === Number(cachedValues.amount)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (cachedGiftAmount !== undefined) {\r\n\t\t\t\t\t\tselectedAmount = cachedGiftAmount;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// At this point, selectedAmount has been set by the component\r\n\t\tthis.props.tangibleActions.setGiftAmount(\r\n\t\t\tselectedAmount,\r\n\t\t\tthis.state.tangibleCode,\r\n\t\t\tcontext\r\n\t\t);\r\n\r\n\t\tthis.setState({\r\n\t\t\tcontext,\r\n\t\t\totherSelected,\r\n\t\t\tselectedAmount\r\n\t\t});\r\n\r\n\t\tthis.props.tangibleStore.addChangeListener(this._onChange);\r\n\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.GIFT_ARRAY_LOADED,\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.tangibleStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this.props.thisArg || this);\r\n\t\t\tthis.props.tangibleActions.setGiftAmount(null, this.state.tangibleCode, this.state.context);\r\n\t\t}\r\n\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\tsetCustomValidation() {\r\n\t\tif (!this.props.isDesignMode) {\r\n\t\t\tvar $currentNode = $(ReactDOM.findDOMNode(this));\r\n\r\n\t\t\tif (this.props.hideWhenSubaccounts) {\r\n\t\t\t\t$currentNode = $currentNode.add($currentNode.closest(\"[data-component='buttonGiftAmount'],[data-component='radioGiftAmount'],[data-component='selectGiftAmount']\"));\r\n\t\t\t}\r\n\r\n\t\t\t$currentNode.each((index, element) => {\r\n\t\t\t\tvar $element = $(element);\r\n\t\t\t\t$element.attr(\"data-has-custom-validator\", true).data({ customValidator: this.validateDonationMeetsMinimum.bind(this, $element) });\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateDonationMeetsMinimum($element) {\r\n\t\t// Returns {isValid: bool, and errorMessages: string[]}\r\n\t\treturn GiftArrayValidator.validateDonationMeetsMinimum(this.props.tangibleStore, this.state.context, this.state.tangibleCode);\r\n\t}\r\n\r\n\trenderButton(selectedAmount) {\r\n\t\tvar context = this.state.context;\r\n\t\tvar name = `${context ? `giftAmount_${context}_${this.state.tangibleCode}` : \"giftAmount\"}\"_\"${this.instanceId}`;\r\n\t\tvar containsOther = this.state.giftAmounts.includes(\"other\");\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"gift-amounts\" data-hide={this.props.hideWhenSubaccounts ? \"subaccounts\" : null}>\r\n\t\t\t\t{this.state.giftAmounts.map((amount, index) => {\r\n\t\t\t\t\tvar formattedAmount = this.formatAmount(amount);\r\n\r\n\t\t\t\t\tif (amount === \"other\") {\r\n\t\t\t\t\t\tvar otherChecked = !!this.state.otherSelected;\r\n\t\t\t\t\t\tvar otherSelectedAmount = ActionsHelper.replaceAmountDecimalSymbols(selectedAmount);\r\n\t\t\t\t\t\tif (this.state.otherSelected && !this.state.showOtherTextbox && selectedAmount) {\r\n\t\t\t\t\t\t\tformattedAmount = this.formatAmount(selectedAmount, true);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tformattedAmount = this.props.otherText;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"giftAmount\", \"giftAmountOther\", \"radio-button\", this.props.childClass, { selected: otherChecked }])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={amount}\r\n\t\t\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}ButtonGiftArray.button`}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{this.state.showOtherTextbox && this.state.otherSelected &&\r\n\t\t\t\t\t\t\t\t\t<input id=\"txtDonationAmount\" name=\"txtDonationAmount\" type=\"text\" inputMode=\"decimal\" value={otherSelectedAmount} maxLength=\"10\" onBlur={this.handleBlurOther.bind(this)} onChange={this.handleOtherAmountChange.bind(this)} ref=\"otherTextbox\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t{!this.state.showOtherTextbox &&\r\n\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={amount} onChange={this.handleAmountSelected.bind(this)} checked={otherChecked} />\r\n\t\t\t\t\t\t\t\t\t\t<span>{formattedAmount}</span>\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar amountChecked = (selectedAmount === amount && !this.state.otherSelected);\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\tclassName={classNames([\"giftAmount\", \"radio-button\", this.props.childClass, { selected: amountChecked, lastAmount: index === this.state.giftAmounts.length - (containsOther ? 2 : 1) }])}\r\n\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\tkey={amount}\r\n\t\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}ButtonGiftArray.button`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={amount} onChange={this.handleAmountSelected.bind(this)} checked={amountChecked} />\r\n\t\t\t\t\t\t\t<span>{formattedAmount}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderRadio(selectedAmount) {\r\n\t\tvar context = this.state.context;\r\n\t\tvar name = `${context ? `giftAmount_${context}_${this.state.tangibleCode}` : \"giftAmount\"}_${this.instanceId}`;\r\n\t\tvar containsOther = this.state.giftAmounts.includes(\"other\");\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"gift-amounts\" data-hide={this.props.hideWhenSubaccounts ? \"subaccounts\" : null}>\r\n\t\t\t\t{this.state.giftAmounts.map((amount, index) => {\r\n\t\t\t\t\tvar formattedAmount = this.formatAmount(amount);\r\n\t\t\t\t\tvar amountChecked = (selectedAmount === amount && !this.state.otherSelected);\r\n\r\n\t\t\t\t\tif (amount === \"other\") {\r\n\t\t\t\t\t\tvar otherChecked = !!this.state.otherSelected;\r\n\t\t\t\t\t\tvar otherSelectedAmount;\r\n\t\t\t\t\t\tif (!this.state.focusedOther) {\r\n\t\t\t\t\t\t\totherSelectedAmount = this.formatAmount(selectedAmount);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\totherSelectedAmount = ActionsHelper.replaceAmountDecimalSymbols(selectedAmount);\r\n\t\t\t\t\t\t\totherSelectedAmount = otherSelectedAmount === \"0\" ? \"\" : otherSelectedAmount;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"giftAmount\", \"giftAmountOther\", this.props.childClass, { selected: otherChecked }])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={amount}\r\n\t\t\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}RadioGiftArray.radio`}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={amount} onChange={this.handleAmountSelected.bind(this)} checked={otherChecked} />\r\n\t\t\t\t\t\t\t\t\t<span data-component={`${this.props.beginningComponentName}RadioGiftArray.radio.label`}>{this.props.otherText}</span>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t{this.state.otherSelected &&\r\n\t\t\t\t\t\t\t\t\t<input id=\"txtDonationAmount\" name=\"txtDonationAmount\" type=\"text\" inputMode=\"decimal\" value={otherSelectedAmount} maxLength=\"10\" onBlur={this.handleBlurOther.bind(this)} onChange={this.handleOtherAmountChange.bind(this)} onFocus={this.handleFocusOther.bind(this)} ref=\"otherTextbox\" />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\tclassName={classNames([\"giftAmount\", this.props.childClass, { selected: amountChecked, lastAmount: index === this.state.giftAmounts.length - (containsOther ? 2 : 1) }])}\r\n\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\tkey={amount}\r\n\t\t\t\t\t\t\tdata-component={`${this.props.beginningComponentName}RadioGiftArray.radio`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={amount} onChange={this.handleAmountSelected.bind(this)} checked={amountChecked} />\r\n\t\t\t\t\t\t\t<span data-component={`${this.props.beginningComponentName}RadioGiftArray.radio.label`}>{formattedAmount}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderDropdown(selectedAmount) {\r\n\t\tvar otherSelectedAmount;\r\n\t\tif (!this.state.focusedOther) {\r\n\t\t\totherSelectedAmount = this.formatAmount(selectedAmount);\r\n\t\t} else {\r\n\t\t\totherSelectedAmount = ActionsHelper.replaceAmountDecimalSymbols(selectedAmount);\r\n\t\t\totherSelectedAmount = otherSelectedAmount === \"0\" ? \"\" : otherSelectedAmount;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"gift-amounts\" data-hide={this.props.hideWhenSubaccounts ? \"subaccounts\" : null}>\r\n\t\t\t\t<select\r\n\t\t\t\t\tclassName={classNames([\"gift-amounts\", this.props.childClass])}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? { \"pointerEvents\": \"none\" } : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tselected={this.state.otherSelected ? \"other\" : selectedAmount}\r\n\t\t\t\t\tonChange={this.handleAmountSelected.bind(this)}\r\n\t\t\t\t\tdata-component={`${this.props.beginningComponentName}SelectGiftArray.select`}\r\n\t\t\t\t\tvalue={this.state.otherSelected ? \"other\" : (selectedAmount || \"\")}\r\n\t\t\t\t>\r\n\t\t\t\t\t// adds a non-selected option when the subaccounts array is visible\r\n\t\t\t\t\t{this.isSubaccountVisible() &&\r\n\t\t\t\t\t\t<option key=\"\" value=\"\" className={classNames([\"giftAmount\", {}])}> </option>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{this.state.giftAmounts.map((amount, index) => {\r\n\t\t\t\t\t\tvar formattedAmount = this.formatAmount(amount);\r\n\t\t\t\t\t\tvar amountChecked = (selectedAmount === amount && !this.state.otherSelected);\r\n\t\t\t\t\t\tif (amount === \"other\") {\r\n\t\t\t\t\t\t\tamountChecked = !!this.state.otherSelected;\r\n\t\t\t\t\t\t\tformattedAmount = this.props.otherText;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"giftAmount\", { selected: amountChecked, giftAmountOther: amount === \"other\" }])}\r\n\t\t\t\t\t\t\t\tkey={amount}\r\n\t\t\t\t\t\t\t\tvalue={amount}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{formattedAmount}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t\t{this.state.otherSelected &&\r\n\t\t\t\t\t<label className={\"giftAmount giftAmountOther selected\"} key={\"other\"}>\r\n\t\t\t\t\t\t<input id=\"txtDonationAmount\" name=\"txtDonationAmount\" type=\"text\" inputMode=\"decimal\" value={otherSelectedAmount} maxLength=\"10\" onBlur={this.handleBlurOther.bind(this)} onChange={this.handleOtherAmountChange.bind(this)} onFocus={this.handleFocusOther.bind(this)} ref=\"otherTextbox\" />\r\n\t\t\t\t\t</label>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderContainer() {\r\n\t\tvar selectedAmount;\r\n\t\tif (this.state.context) {\r\n\t\t\tselectedAmount = this.props.tangibleStore.getSelectedAmount(this.state.context, this.state.tangibleCode);\r\n\t\t} else {\r\n\t\t\tselectedAmount = this.state.selectedAmount;\r\n\t\t}\r\n\r\n\t\tswitch (this.props.type) {\r\n\t\t\tcase \"button\":\r\n\t\t\t\treturn this.renderButton(selectedAmount);\r\n\t\t\tcase \"radio\":\r\n\t\t\t\treturn this.renderRadio(selectedAmount);\r\n\t\t\tcase \"dropdown\":\r\n\t\t\t\treturn this.renderDropdown(selectedAmount);\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type for GiftArray\");\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar amounts = this.state.giftAmounts;\r\n\t\tvar reactComponentName;\r\n\r\n\t\tif (!this.props.isDesignMode && (!amounts || amounts.length <= 0)) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tswitch (this.props.type) {\r\n\t\t\tcase \"button\":\r\n\t\t\t\treactComponentName = \"ButtonGiftArray\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"radio\":\r\n\t\t\t\treactComponentName = \"RadioGiftArray\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"dropdown\":\r\n\t\t\t\treactComponentName = \"SelectGiftArray\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type for GiftArray\");\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t\treactComponentName = this.props.beginningComponentName + reactComponentName;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName=\"gift-array\"\r\n\t\t\t\tdata-react-component-name={reactComponentName}\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t{amounts && amounts.length > 0 ?\r\n\t\t\t\t\tthis.renderContainer()\r\n\t\t\t\t\t:\r\n\t\t\t\t\t<div className=\"collapsedComponentPlaceholder\">Gift Array</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nGiftArray.defaultProps = {\r\n\tbeginningComponentName: \"\"\r\n};\r\n\r\nGiftArray.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tgiftAmounts: PropTypes.array,\r\n\tincludeOther: PropTypes.bool,\r\n\totherText: PropTypes.string,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]).isRequired,\r\n\tshowDecimals: PropTypes.bool,\r\n\tincludeCurrencySymbol: PropTypes.bool,\r\n\tbuttonStyle: PropTypes.object,\r\n\tminimumAmount: PropTypes.number,\r\n\tchildClass: PropTypes.string,\r\n\thideWhenSubaccounts: PropTypes.bool,\r\n\tcontext: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\ttangibleActions: PropTypes.object,\r\n\ttangibleStore: PropTypes.object,\r\n\tthisArg: PropTypes.object,\r\n\ttangibleType: PropTypes.string,\r\n\tdisplayCodeProperty: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string\r\n};\r\n\r\nmodule.exports = GiftArray;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"GiveAnonymousCheckbox\");\r\n\r\nvar ProjectActions = require(\"./ProjectActions\");\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nclass GiveAnonymousCheckbox extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tisAnonymous: ProjectStore.get(\"isAnonymous\")\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleRecurringAnonymousChange(event) {\r\n\t\tvar checked = event.target.checked;\r\n\r\n\t\tProjectActions.setAnonymous(checked);\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(ProjectStore.getState());\r\n\t}\r\n\r\n\tcomponentWillMount() {\r\n\t\tvar isAnonymous = this.state.isAnonymous;\r\n\r\n\t\tif (ProjectStore.get(\"isAnonymous\") !== isAnonymous) {\r\n\t\t\tProjectActions.setAnonymous(isAnonymous);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tProjectStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tProjectStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tProjectActions.setAnonymous(false);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar isAnonymous = this.state.isAnonymous;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name=\"GiveAnonymousCheckbox\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tstyle={{display: \"inline-block\"}}\r\n\t\t\t>\r\n\t\t\t\t<input type=\"checkbox\" checked={isAnonymous} id=\"giveAnonymousCheckbox\" onChange={this.handleRecurringAnonymousChange} />\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nGiveAnonymousCheckbox.defaultProps = {};\r\n\r\nGiveAnonymousCheckbox.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tproject: PropTypes.object\r\n};\r\n\r\nmodule.exports = GiveAnonymousCheckbox;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ProjectActions\");\r\n\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nvar PledgeStatementHelper = require(\"../accountComponents/PledgeStatementHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar CheckoutApi = require(\"../checkoutComponents/CheckoutApi\");\r\nvar CheckoutConstants = require(\"../checkoutComponents/CheckoutConstants\");\r\nvar DonationUpsellHelper = require(\"../checkoutComponents/DonationUpsellHelper\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\n\r\nvar ProjectActions = {\r\n\tsetGiftAmount: function(selectedAmount, tangibleCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_GIFT_AMOUNT,\r\n\t\t\tselectedAmount,\r\n\t\t\ttangibleCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\tthis._setRecurringSummaryData();\r\n\r\n\t\tthis._updateIsCheckoutDispatcher(context, {\r\n\t\t\tactionType: CheckoutConstants.CART_UPDATE_DONATION_AMOUNT_OPCO,\r\n\t\t\tselectedAmount,\r\n\t\t\ttangibleCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\tDonationUpsellHelper.handleDonationUpsellChange();\r\n\t},\r\n\r\n\tsetMinimumAmount: function(minimumAmount, tangibleCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_MINIMUM_AMOUNT,\r\n\t\t\tminimumAmount,\r\n\t\t\ttangibleCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\t},\r\n\r\n\tsetSubaccountAmount: function(subaccountCode, amount) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_SUBACCOUNT_GIFT_AMOUNT,\r\n\t\t\tamount,\r\n\t\t\tsubaccountCode\r\n\t\t});\r\n\r\n\t\tthis._setRecurringSummaryData();\r\n\r\n\t\tthis._updateIsCheckoutDispatcher(/*context*/null, {\r\n\t\t\tactionType: CheckoutConstants.SET_SUBACCOUNT_GIFT_AMOUNT_OPCO,\r\n\t\t\tamount,\r\n\t\t\tsubaccountCode\r\n\t\t});\r\n\r\n\t\tDonationUpsellHelper.handleDonationUpsellChange();\r\n\t},\r\n\r\n\tsetFrequency: function(selectedFrequency, tangibleCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_DONATION_FREQUENCY,\r\n\t\t\tselectedFrequency,\r\n\t\t\ttangibleCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\tif (selectedFrequency !== \"O\" && ProjectStore.getIsChargeTodayRequired()) {\r\n\t\t\tthis.setUpsell(true);\r\n\t\t}\r\n\r\n\t\tthis._setRecurringSummaryData();\r\n\r\n\t\tthis.triggerTotalChangedHandler();\r\n\r\n\t\tthis._updateIsCheckoutDispatcher(context, {\r\n\t\t\tactionType: CheckoutConstants.CART_UPDATE_DONATION_FREQUENCY_OPCO,\r\n\t\t\tdonationFrequency: ProjectStore.getSelectedFrequency()\r\n\t\t});\r\n\r\n\t\tthis._updateIsChargeTodayInCheckoutStore(context);\r\n\t},\r\n\r\n\tsetDonationPremium: function(selectedPremium, tangibleCode) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_DONATION_PREMIUM,\r\n\t\t\tselectedPremium,\r\n\t\t\ttangibleCode\r\n\t\t});\r\n\t},\r\n\r\n\tsetUseOnDay: function(selectedUseOnDay, tangibleCode, pledgeCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_USE_ON_DAY,\r\n\t\t\tselectedUseOnDay,\r\n\t\t\ttangibleCode,\r\n\t\t\tpledgeCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\tthis._updateIsChargeTodayInCheckoutStore(context);\r\n\t},\r\n\r\n\tsetUpsell: function(upsell, tangibleCode, pledgeCode, context) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_UPSELL,\r\n\t\t\tupsell,\r\n\t\t\ttangibleCode,\r\n\t\t\tpledgeCode,\r\n\t\t\tcontext\r\n\t\t});\r\n\r\n\t\tthis._updateIsChargeTodayInCheckoutStore(context);\r\n\t},\r\n\r\n\tsetAnonymous: function(isAnonymous) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.SET_ANONYMOUS,\r\n\t\t\tisAnonymous\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeStore: function(options) {\r\n\t\tDispatcher.dispatch({\r\n\t\t\tactionType: ProjectConstants.INITIALIZE,\r\n\t\t\toptions: options\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeProjects: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar that = this; // Parent context, don't want to change the this context because jQuery uses it.\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function(event) {\r\n\t\t\tvar project = ProjectStore.get(\"project\");\r\n\t\t\tvar projectCode = project && project.ProjectCode;\r\n\t\t\tvar isSecure = ProjectStore.getIsSecure();\r\n\r\n\t\t\tif (isSecure) {\r\n\t\t\t\tprojectCode = \"secure-project\"\r\n\t\t\t}\r\n\r\n\t\t\tvar $projectPremiums = $(\"[data-component='projectPremiums']\");\r\n\t\t\tvar $projectPremiumsRadios = $projectPremiums.find(\"[data-component='projectPremiumsRadio']\");\r\n\t\t\tvar getPremiumFromRadio = function(selectedPremium) {\r\n\t\t\t\tvar $selectedPremium = $(selectedPremium);\r\n\t\t\t\tvar $parent = $selectedPremium.parent();\r\n\t\t\t\tvar premium;\r\n\r\n\t\t\t\tif ($parent.is(\"[data-component='projectPremiums.optOut']\")) {\r\n\t\t\t\t\tpremium = null;\r\n\t\t\t\t\t// Don't show the ship-to address component if the constituent opts-out of the premium (for OPC)\r\n\t\t\t\t\t$(\"[data-component='shipTo']\").hide();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Cannot use $selectedPremium.siblings() here because the radio buttons are not siblings. We have to go up to the parent projectPremium\r\n\t\t\t\t\t// and then find all the descendant radio buttons to determine which radio this is so we can get the correct premium product code.\r\n\t\t\t\t\tvar radioIndex = $selectedPremium.parents(\"[data-component='projectPremiums']\").first().find(\"[data-component='projectPremiumsRadio']\").index($selectedPremium);\r\n\r\n\t\t\t\t\tif (radioIndex > -1 && project && project[\"Premiums\"] && project[\"Premiums\"][radioIndex]) {\r\n\t\t\t\t\t\tpremium = project[\"Premiums\"][radioIndex][\"ProductCode\"];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tLoggerInstance.error(`Unable to locate the requested premium for projectPremiumRadio index: ${radioIndex}.`);\r\n\t\t\t\t\t\tpremium = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (premium) {\r\n\t\t\t\t\t\t// Show the ship-to address component if the constituent is choosing to receive the premium (for OPC)\r\n\t\t\t\t\t\t$(\"[data-component='shipTo']\").show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn premium;\r\n\t\t\t};\r\n\t\t\tvar handleChangePremium = function(event) {\r\n\t\t\t\tvar $selectedPremium = $(event.target);\r\n\t\t\t\tvar premium = getPremiumFromRadio($selectedPremium);\r\n\r\n\t\t\t\tif ($selectedPremium.prop(\"checked\") && project) {\r\n\t\t\t\t\tProjectActions.setDonationPremium(premium, project[\"ProjectCode\"]);\r\n\t\t\t\t\tthat._checkoutDispatcher.dispatch({\r\n\t\t\t\t\t\tactionType: CheckoutConstants.VALIDATE_PAYPAL_CHECKOUT\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar isUpsellBeforePremiumSelectionKey = `${project[\"ProjectCode\"]}_isUpsellBeforePremiumSelection`;\r\n\r\n\t\t\t\tif (ProjectStore.getIsChargeTodayRequiredOnlyWithPremium()) {\r\n\t\t\t\t\tif (premium) {\r\n\t\t\t\t\t\tif (sessionStorage.getItem(isUpsellBeforePremiumSelectionKey) === null) {\r\n\t\t\t\t\t\t\tsessionStorage.setItem(isUpsellBeforePremiumSelectionKey, JSON.stringify({ isUpsellChecked: ProjectStore.getSelectedUpsell() }));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tProjectActions.setUpsell(true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar wasUpsellChecked = (JSON.parse(sessionStorage.getItem(isUpsellBeforePremiumSelectionKey)) || {}).isUpsellChecked;\r\n\t\t\t\t\t\tProjectActions.setUpsell(Boolean(wasUpsellChecked));\r\n\t\t\t\t\t\tsessionStorage.removeItem(isUpsellBeforePremiumSelectionKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tif ($projectPremiumsRadios.length > 0) {\r\n\t\t\t\t$projectPremiumsRadios.click(handleChangePremium);\r\n\t\t\t}\r\n\r\n\t\t\tif ($projectPremiums.length > 0) {\r\n\t\t\t\t$projectPremiums.each(function(index, premium) {\r\n\t\t\t\t\tvar defaultOptOut = premium.getAttribute(\"data-default-opt-out\");\r\n\t\t\t\t\tvar defaultRadio;\r\n\r\n\t\t\t\t\tif (defaultOptOut) {\r\n\t\t\t\t\t\tdefaultRadio = premium.querySelectorAll(\"[data-component='projectPremiums.optOut'] [data-component='projectPremiumsRadio']\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdefaultRadio = premium.querySelectorAll(\"[data-component='projectPremiums.premium'] [data-component='projectPremiumsRadio']\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (defaultRadio.length > 0) {\r\n\t\t\t\t\t\tdefaultRadio[0].checked = true;\r\n\t\t\t\t\t\tvar premium = getPremiumFromRadio(defaultRadio[0]);\r\n\r\n\t\t\t\t\t\tif (project) {\r\n\t\t\t\t\t\t\tProjectActions.setDonationPremium(premium, project[\"ProjectCode\"]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (project || isSecure) {\r\n\t\t\t\t// Initialize cached values and remove from session storage\r\n\t\t\t\tvar cachedValues = JSON.parse(sessionStorage.getItem(projectCode));\r\n\t\t\t\tif (cachedValues) {\r\n\t\t\t\t\tsessionStorage.removeItem(projectCode);\r\n\r\n\t\t\t\t\tif (cachedValues.startDate) {\r\n\t\t\t\t\t\t$(\"[data-component='recurringStartDateDropdown.selector']\")\r\n\t\t\t\t\t\t\t.filter((index, item) => $(item).closest(\"[data-component='searchResults'],[data-component='category']\").length === 0)\r\n\t\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t\t.val(cachedValues.startDate);\r\n\r\n\t\t\t\t\t\tDispatcher.dispatch({\r\n\t\t\t\t\t\t\tactionType: ProjectConstants.SET_RECURRING_START_DATE,\r\n\t\t\t\t\t\t\tselectedStartDate: cachedValues.startDate\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tthat._updateIsChargeTodayInCheckoutStore();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.isRecurringUpsell) {\r\n\t\t\t\t\t\t_.defer(() => {\r\n\t\t\t\t\t\t\tProjectActions.setUpsell(true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.isDonationUpsellChecked) {\r\n\t\t\t\t\t\t_.defer(() => {\r\n\t\t\t\t\t\t\tDonationUpsellHelper.checkDonationUpsell();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (cachedValues.isDonationUpsellChecked === false) {\r\n\t\t\t\t\t\t_.defer(() => {\r\n\t\t\t\t\t\t\tDonationUpsellHelper.uncheckDonationUpsell();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.premium) {\r\n\t\t\t\t\t\t_.defer(() => {\r\n\t\t\t\t\t\t\tProjectActions.setDonationPremium(cachedValues.premium, projectCode);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.subaccounts) {\r\n\t\t\t\t\t\tObject.keys(cachedValues.subaccounts).forEach(key => {\r\n\t\t\t\t\t\t\tthat.setSubaccountAmount(key, cachedValues.subaccounts[key]);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.projectNote) {\r\n\t\t\t\t\t\t$(\"[data-component='collapsorProjectNote.collapsor.input']\")\r\n\t\t\t\t\t\t\t.prop(\"checked\", true)\r\n\t\t\t\t\t\t\t.trigger(\"change\");\r\n\r\n\t\t\t\t\t\t$(\"[data-component='collapsorProjectNote.input']\")\r\n\t\t\t\t\t\t\t.val(cachedValues.projectNote);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.secureMatchingText) {\r\n\t\t\t\t\t\t$(\"[data-component='textInput'] input[name='secureInput']\")\r\n\t\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t\t.val(cachedValues.secureMatchingText);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.pledgeId) {\r\n\t\t\t\t\t\tProjectStore.setPledgeId(cachedValues.pledgeId);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (cachedValues.relatedAccount) {\r\n\t\t\t\t\t\tProjectStore.setRelatedAccount(cachedValues.relatedAccount);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// add onUnload event for caching selected values ONLY on project detail/landing pages.\r\n\t\t\t\t$(window).off(\"unload.cacheProjectValues\");\r\n\t\t\t\t$(window).on(\"unload.cacheProjectValues\", (event) => {\r\n\t\t\t\t\tif (window.CHECKOUT_COMPLETED) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isOtherSelected = $(\".giftAmount.selected\")\r\n\t\t\t\t\t\t.filter((i, item) => $(item).closest(\"[data-component='searchResults'],[data-component='category']\").length === 0)\r\n\t\t\t\t\t\t.hasClass(\"giftAmountOther\");\r\n\t\t\t\t\tvar startDate = $(\"[data-component='recurringStartDateDropdown.selector']\")\r\n\t\t\t\t\t\t.filter((index, item) => $(item).closest(\"[data-component='searchResults'],[data-component='category']\").length === 0)\r\n\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t.val();\r\n\t\t\t\t\tvar secureMatchingText = $(\"[data-component='textInput'] input[name='secureInput']\")\r\n\t\t\t\t\t\t.first()\r\n\t\t\t\t\t\t.val();\r\n\t\t\t\t\tvar isRecurringUpsell = $(\"input#recurringUpsellCheckbox\").prop(\"checked\");\r\n\t\t\t\t\tvar isDonationUpsellChecked = DonationUpsellHelper.hasDonationUpsell();\r\n\t\t\t\t\tvar value = {\r\n\t\t\t\t\t\tamount: ProjectStore.getSelectedAmount(),\r\n\t\t\t\t\t\tfrequency: ProjectStore.getSelectedFrequency(),\r\n\t\t\t\t\t\tisDonationUpsellChecked,\r\n\t\t\t\t\t\tisOtherSelected,\r\n\t\t\t\t\t\tisRecurringUpsell,\r\n\t\t\t\t\t\tpledgeId: ProjectStore.getPledgeId(),\r\n\t\t\t\t\t\tpremium: ProjectStore.getSelectedPremium(),\r\n\t\t\t\t\t\trelatedAccount: ProjectStore.getRelatedAccount(),\r\n\t\t\t\t\t\tsecureMatchingText: secureMatchingText,\r\n\t\t\t\t\t\tstartDate,\r\n\t\t\t\t\t\tsubaccounts: ProjectStore.getSubaccountAmounts(),\r\n\t\t\t\t\t\tuseOnDay: ProjectStore.getSelectedUseOnDay()\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif ($(\"[data-component='collapsorProjectNote']\").length) {\r\n\t\t\t\t\t\tvar collapsorChecked = $(\"[data-component='collapsorProjectNote.collapsor.input']\")\r\n\t\t\t\t\t\t\t.prop(\"checked\");\r\n\t\t\t\t\t\tvar $collapsorNote = $(\"[data-component='collapsorProjectNote.input']\");\r\n\r\n\t\t\t\t\t\tif (collapsorChecked && $collapsorNote.val()) {\r\n\t\t\t\t\t\t\tvalue.projectNote = $collapsorNote.val();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsessionStorage.setItem(projectCode, JSON.stringify(value));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthat._setRecurringSummaryData();\r\n\t\t});\r\n\t\tProjectActions.initializeStore(options);\r\n\t},\r\n\r\n\tgetCachedValues() {\r\n\t\tvar project = ProjectStore.get(\"project\");\r\n\t\tvar projectCode = project && project.ProjectCode;\r\n\r\n\t\tvar isSecure = ProjectStore.getIsSecure();\r\n\r\n\t\tif (isSecure) {\r\n\t\t\tprojectCode = \"secure-project\";\r\n\t\t}\r\n\r\n\t\tvar cachedData;\r\n\t\tif (project || isSecure) {\r\n\t\t\tcachedData = JSON.parse(sessionStorage.getItem(projectCode));\r\n\t\t}\r\n\r\n\t\treturn cachedData || { };\r\n\t},\r\n\r\n\taddToCart: function(event, context, tangibleCode, successCallback) {\r\n\t\tevent = ProjectActions._getEventOrReturn(event, \"Add To Cart called successfully.\", /*preventDefaultInDesignMode*/false);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar isInPledgeStatementSession = ProjectStore.get(\"isInPledgeStatementSession\");\r\n\t\tvar pledgeStatementEntryWizard = ProjectStore.get(WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY);\r\n\r\n\t\tPledgeStatementHelper.confirmAbandonPledgeStatementSession(isInPledgeStatementSession, pledgeStatementEntryWizard).done(() => {\r\n\t\t\ttry {\r\n\r\n\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\tvar components = [];\r\n\t\t\t\tif (context) {\r\n\t\t\t\t\tvar $parent = $(event.target).closest(\"[data-component='searchResults.project'],[data-component='category.project'],[data-component='carousel.project']\");\r\n\t\t\t\t\tcomponents = [$parent.find(\"[data-has-custom-validator='true']\")];\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//Validate any array that is not within a searchResults, category, or carousel component\r\n\t\t\t\t\tvar componentsToAdd = \"[data-react-component-name='ButtonGiftArray'],[data-react-component-name='RadioGiftArray'],[data-react-component-name='SelectGiftArray']\";\r\n\t\t\t\t\tcomponentsToAdd += \",[data-component='buttonGiftAmount'],[data-component='radioGiftAmount'],[data-component='selectGiftAmount']\";\r\n\r\n\t\t\t\t\tvar $elements = $(componentsToAdd).filter((index, element) => {\r\n\t\t\t\t\t\tvar $element = $(element);\r\n\t\t\t\t\t\treturn $element.parents().length == $element.parents().not(\"[data-component='searchResults.project'],[data-component='category.project'],[data-component='carousel.project']\").length;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tcomponents = [$elements];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\t\tif (!isValid) {\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar shoppingCartData = ProjectActions.getShoppingCartData({ context, tangibleCode });\r\n\t\t\t\t\tCheckoutApi.addToCart(shoppingCartData).done((addToCartResponse) => {\r\n\t\t\t\t\t\tLoggerInstance.debug(addToCartResponse);\r\n\r\n\t\t\t\t\t\tif (addToCartResponse.success) {\r\n\t\t\t\t\t\t\tif (typeof successCallback === \"function\") {\r\n\t\t\t\t\t\t\t\tsuccessCallback();\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(ProjectStore.getWizardValue(\r\n\t\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t{ tangibleType: \"donation\" }\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).fail(() => {\r\n\t\t\t\t\t\tBootstrapPrompt.alert(ProjectStore.getWizardValue(\r\n\t\t\t\t\t\t\tWizardConstants.WIZARDS.SHOPPING_CART_MESSAGES,\r\n\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t{ tangibleType: \"donation\" }\r\n\t\t\t\t\t\t));\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t} catch (exception) {\r\n\t\t\t\tLoggerInstance.error(exception);\r\n\t\t\t} finally {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tgetShoppingCartData: function(cartDataOptions) {\r\n\t\tcartDataOptions = cartDataOptions || {};\r\n\r\n\t\tvar donationInformation = ProjectStore.getDonationInformation(cartDataOptions);\r\n\t\tvar {\r\n\t\t\tproject,\r\n\t\t\tamount,\r\n\t\t\tsubaccountAmounts,\r\n\t\t\tfrequency,\r\n\t\t\tanonymous,\r\n\t\t\tuseOnDay,\r\n\t\t\tupsell,\r\n\t\t\tisRecurring,\r\n\t\t\tpledgeId,\r\n\t\t\tpremium,\r\n\t\t\trelatedAccount,\r\n\t\t\tstartDate,\r\n\t\t\tminimumDonationAmount\r\n\t\t} = donationInformation;\r\n\t\tvar projectNote = $('input[name=projectNote]').val() || undefined;\r\n\r\n\t\t//Creating cartItems to in SE shopping cart\r\n\t\tvar cartItems = {\r\n\t\t\tdonations: []\r\n\t\t};\r\n\t\tif (amount && Number(amount)) {\r\n\t\t\t//The amount might be zero if we are hiding the gift array when showing subaccounts.\r\n\t\t\tcartItems.donations.push({\r\n\t\t\t\tamount,\r\n\t\t\t\tanonymous,\r\n\t\t\t\tcustomerChoseChargeToday: upsell,\r\n\t\t\t\tdeductible: true,\r\n\t\t\t\tfrequency,\r\n\t\t\t\tisRecurring,\r\n\t\t\t\tpledgeId,\r\n\t\t\t\tpremium,\r\n\t\t\t\tproject,\r\n\t\t\t\trelatedAccount,\r\n\t\t\t\tshortComment: projectNote,\r\n\t\t\t\tstartDate,\r\n\t\t\t\tuseOnDay,\r\n\t\t\t\tminimumDonationAmount\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (subaccountAmounts) {\r\n\t\t\tvar startDate = ProjectStore.getSelectedStartDate();\r\n\t\t\tcartItems.donations = cartItems.donations.concat(_.map(subaccountAmounts, (subaccountAmount, subaccount) => {\r\n\t\t\t\tif (subaccountAmount <= 0) {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t\treturn {\r\n\t\t\t\t\tproject,\r\n\t\t\t\t\tsubaccount,\r\n\t\t\t\t\tamount: subaccountAmount,\r\n\t\t\t\t\tfrequency,\r\n\t\t\t\t\tisRecurring,\r\n\t\t\t\t\tanonymous,\r\n\t\t\t\t\tcustomerChoseChargeToday: upsell,\r\n\t\t\t\t\tuseOnDay: frequency !== \"O\" ? useOnDay : null,\r\n\t\t\t\t\tdeductible: true,\r\n\t\t\t\t\tshortComment: projectNote,\r\n\t\t\t\t\tstartDate,\r\n\t\t\t\t\tminimumDonationAmount\r\n\t\t\t\t};\r\n\t\t\t}).filter(donation => !!donation));\r\n\t\t}\r\n\t\treturn { project, cartItems };\r\n\t},\r\n\r\n\tgetMonthFromWizard: function(monthString, wizard) {\r\n\t\tvar monthFromWizard = wizard[`${monthString.toLowerCase()}Display`];\r\n\t\treturn monthFromWizard || monthString;\r\n\t},\r\n\r\n\tinitializeCartRecurringStartDateDropdowns: function ($carts) {\r\n\t\t$carts.each((cartIndex, cart) => {\r\n\t\t\tvar isSaveForLaterCart = cart.getAttribute(\"data-cart-type\") === \"saveForLater\";\r\n\t\t\tvar donations = isSaveForLaterCart ? window.CheckoutActions.getSaveForLaterCartDonations() : window.CheckoutActions.getCartDonations();\r\n\r\n\t\t\t$(cart).find(\"[data-component='cart.populated.project'] [data-component='recurringStartDateDropdown']\").each((dropdownIndex, dropdown) => {\r\n\t\t\t\tvar $dropdownComponent = $(dropdown);\r\n\t\t\t\tvar $dropdownSelector = $dropdownComponent.find(\"select\");\r\n\t\t\t\tvar projectId = $dropdownComponent.attr(\"data-donation-id\");\r\n\t\t\t\tvar donation = donations.find(donation => donation.id === projectId);\r\n\r\n\t\t\t\t// get value from cart\r\n\t\t\t\tif (!donation || donation.frequency === \"O\") {\r\n\t\t\t\t\t$dropdownSelector.empty();\r\n\t\t\t\t\t$dropdownSelector.attr(\"disabled\", true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar startDateMoment = donation.startDate && window.moment(donation.startDate);\r\n\t\t\t\t\tvar startDateOption = startDateMoment ? startDateMoment.format(\"MM-YYYY\") : $dropdownSelector.find(\"option\").eq(0).val();\r\n\r\n\t\t\t\t\tvar containsOption = false;\r\n\t\t\t\t\t$dropdownSelector.find(\"option\").each((optionIndex, optionItem) => {\r\n\t\t\t\t\t\tif ($(optionItem).val() === startDateOption) {\r\n\t\t\t\t\t\t\tcontainsOption = true;\r\n\t\t\t\t\t\t\t$(optionItem).attr(\"selected\", \"selected\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (!containsOption) {\r\n\t\t\t\t\t\t// add option\r\n\t\t\t\t\t\tvar dropdownWizard = ProjectStore.get(WizardConstants.WIZARDS.RECURRING_START_DATE_DROPDOWN_VALUES);\r\n\t\t\t\t\t\tvar formattedMonth = this.getMonthFromWizard(startDateMoment.format(\"MMMM\"), dropdownWizard);\r\n\t\t\t\t\t\t$dropdownSelector.prepend(`<option value=\"${startDateOption}\" selected=\"selected\">${formattedMonth} ${startDateMoment.format(\"YYYY\")}</option>`);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$dropdownSelector.val(startDateOption);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.initializeRecurringStartDateDropdown($dropdownSelector, \"cart\", projectId, /* populateInitialValue */ false);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeRecurringStartDateDropdown: function ($dropdown, context, tangibleCode, populateInitialValue) {\r\n\t\tif (populateInitialValue) {\r\n\t\t\tthis.updateRecurringStartDate(context, tangibleCode, /* event */ null, $dropdown);\r\n\t\t}\r\n\r\n\t\t$dropdown.off(\"change.recurringStartDate\");\r\n\t\t$dropdown.on(\"change.recurringStartDate\", this.updateRecurringStartDate.bind(this, context, tangibleCode));\r\n\t},\r\n\r\n\tinitializeResultRecurringStartDateDropdowns: function ($component, context) {\r\n\t\t// add a listener to each input, on change, write values to store\r\n\t\tvar componentContext = context.split(\"_\")[0];\r\n\t\tif (componentContext === \"search\") {\r\n\t\t\tcomponentContext = \"searchResults\";\r\n\t\t}\r\n\r\n\t\t$component.find(`[data-component=\"${componentContext}.project\"] [data-component=\"recurringStartDateDropdown\"]`).each((index, item) => {\r\n\t\t\tvar $dropdownComponent = $(item);\r\n\t\t\tvar $dropdownSelector = $dropdownComponent.find(\"select\");\r\n\t\t\tvar projectCode = $dropdownComponent.attr(\"data-project-code\");\r\n\r\n\t\t\tthis.initializeRecurringStartDateDropdown($dropdownSelector, context, projectCode, /* populateInitialValue */ true);\r\n\t\t});\r\n\t},\r\n\r\n\tupdateRecurringStartDate: function (context, projectCode, event, $selector) {\r\n\t\tif (event) {\r\n\t\tevent.stopPropagation();\r\n\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tvar $dropdownSelector = $selector || $(event.target);\r\n\t\tvar $dropdownComponent = $dropdownSelector.closest(\"[data-component='recurringStartDateDropdown']\");\r\n\t\tvar selectedValue = $dropdownSelector.val();\r\n\t\tif (selectedValue == null) {\r\n\t\t\tselectedValue = $dropdownSelector.find(\"option\").first().val();\r\n\t\t}\r\n\t\tvar projectId = $dropdownComponent.attr(\"data-donation-id\");\r\n\r\n\t\tif (context === \"cart\") {\r\n\t\t\twindow.CheckoutActions.updateDonation(projectId, { newStartDate: selectedValue });\r\n\t\t} else {\r\n\t\t\tDispatcher.dispatch({\r\n\t\t\t\tactionType: ProjectConstants.SET_RECURRING_START_DATE,\r\n\t\t\t\tcontext,\r\n\t\t\t\tselectedStartDate: selectedValue,\r\n\t\t\t\ttangibleCode: projectCode\r\n\t\t\t});\r\n\r\n\t\t\tthis._updateIsChargeTodayInCheckoutStore(context);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tshouldHidePaymentInformation: function() {\r\n\t\tvar frequency = ProjectStore.getSelectedFrequency() || ProjectStore.get(\"defaultPledgeFrequency\");\r\n\r\n\t\treturn {\r\n\t\t\thideOneTimeOnlyPayments: !frequency || frequency !== \"O\",\r\n\t\t\thideAllPayments: false\r\n\t\t};\r\n\t},\r\n\r\n\tinitializeNonEditableDonations: function () {\r\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\r\n\t\t\tvar $nonEditableProjects = $(\"[data-component='cart.populated.project'][data-donation-types='nonEditable']\");\r\n\t\t\t$nonEditableProjects.find(\":input\").prop(\"disabled\", true);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * This method is called when checkout store initializes. It provides a callback method to be used when\r\n\t * this tangible's concept of a total amount has changed. This will let checkout store determine if\r\n\t * payment information should be hidden - in conjunction with shouldHidePaymentInformation().\r\n\t * @param handleTotalChange the callback method to trigger a total amount update.\r\n\t */\r\n\tsetChangeHandlerMethod: function(handleTotalChange) {\r\n\t\tthis._handleTotalChange = handleTotalChange;\r\n\t},\r\n\r\n\ttriggerTotalChangedHandler: function() {\r\n\t\tif (_.isFunction(this._handleTotalChange)) {\r\n\t\t\tthis._handleTotalChange();\r\n\t\t}\r\n\t},\r\n\r\n\t_getEventOrReturn: function(event, isDesignModeMessage, preventDefaultInDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, ProjectStore.get(\"isDesignMode\"), isDesignModeMessage, preventDefaultInDesignMode);\r\n\t},\r\n\r\n\t_isChargeTodayForOPCO: function() {\r\n\t\tvar frequency = ProjectStore.getSelectedFrequency();\r\n\r\n\t\t//We charge today if any of these are true\r\n\t\t//\t1. Frequency is OneTime\r\n\t\t//\t2. The Donation Starts today\r\n\t\t//\t3. The Recurring Upsell box is checked\r\n\t\t//\t4. Charge Today is configured to always required for Recurring Donations\r\n\t\t//\t5. Charge Today is configured to be required for Recurring Donations with a selected Premium\r\n\t\treturn frequency === \"O\" ||\r\n\t\t\tProjectStore.donationStartsToday() ||\r\n\t\t\tProjectStore.getSelectedUpsell() ||\r\n\t\t\tProjectStore.getIsChargeTodayRequired() ||\r\n\t\t\t(\r\n\t\t\t\tProjectStore.getSelectedPremium() &&\r\n\t\t\t\tProjectStore.getIsChargeTodayRequiredOnlyWithPremium()\r\n\t\t\t);\r\n\t},\r\n\r\n\t_setRecurringSummaryData() {\r\n\t\tif (ProjectStore.getIsDesignMode()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $projectRecurringSummaryElement = $(\"[data-component='projectRecurringSummary']\");\r\n\t\tif (!$projectRecurringSummaryElement.length) {\r\n\t\t\t//A projectRecurringSummary component does not exist on the page\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar selectedFrequency = ProjectStore.getSelectedFrequency();\r\n\t\tif (selectedFrequency === \"O\") {\r\n\t\t\t//The frequency One-Time, so no recurring\r\n\t\t\t$projectRecurringSummaryElement.hide();\r\n\t\t} else {\r\n\t\t\tvar $amountElement = $(\"[data-dynamic='AmountForFrequency'][data-dynamic-property='projectRecurringSummaryProperty']\");\r\n\t\t\tif ($amountElement.length) {\r\n\t\t\t\tvar total = Number(ProjectStore.getSelectedAmount()) || 0;\r\n\r\n\t\t\t\tvar subaccounts = ProjectStore.getSubaccountAmounts();\r\n\t\t\t\tif (subaccounts) {\r\n\t\t\t\t\t//Summing subaccount amounts\r\n\t\t\t\t\tfor (var subaccount in subaccounts) {\r\n\t\t\t\t\t\ttotal += Number(subaccounts[subaccount]) || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$amountElement.html(ActionsHelper.formatAmount(total, $amountElement));\r\n\t\t\t}\r\n\r\n\t\t\tvar $frequencyElement = $(\"[data-dynamic='Frequency'][data-dynamic-property='projectRecurringSummaryProperty']\");\r\n\t\t\tif ($frequencyElement.length) {\r\n\t\t\t\t$frequencyElement.text(ProjectStore.getFrequencyDescription(selectedFrequency));\r\n\t\t\t}\r\n\r\n\t\t\t$projectRecurringSummaryElement.show();\r\n\t\t}\r\n\t},\r\n\r\n\t_updateIsChargeTodayInCheckoutStore: function(context) {\r\n\t\tthis._updateIsCheckoutDispatcher(context, {\r\n\t\t\tactionType: CheckoutConstants.CART_UPDATE_DONATION_CHARGE_TODAY_OPCO,\r\n\t\t\tisChargeToday: this._isChargeTodayForOPCO()\r\n\t\t});\r\n\r\n\t\tDonationUpsellHelper.handleDonationUpsellChange();\r\n\t},\r\n\r\n\t_updateIsCheckoutDispatcher: function(context, dispatchData) {\r\n\t\tif (!context) {\r\n\t\t\tif (!this._checkoutDispatcher) {\r\n\t\t\t\tLoggerInstance.error(\"We do not have a checkout dispatcher to update.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// We need to trigger a change in the checkout store so that we know the current data for OPCO.\r\n\t\t\tthis._checkoutDispatcher.dispatch(dispatchData);\r\n\t\t}\r\n\t},\r\n\r\n\tsetCheckoutDispatcher: function(checkoutDispatcher) {\r\n\t\tthis._checkoutDispatcher = checkoutDispatcher;\r\n\t},\r\n\r\n\tgetIsSecure: function () {\r\n\t\treturn ProjectStore.getIsSecure();\r\n\t},\r\n\r\n\tsetIsSecure: function(isSecure) {\r\n\t\tProjectStore.setIsSecure(isSecure);\r\n\t},\r\n\r\n\tsetSecureProjectsWizard: function (secureProjectsWizard) {\r\n\t\tsecureProjectsWizard = secureProjectsWizard || {};\r\n\t\tProjectStore.setSecureProjectsWizard(secureProjectsWizard);\r\n\t},\r\n\r\n\tgetProjectDispatcher: function() {\r\n\t\treturn ProjectStore.getProjectDispatcher();\r\n\t}\r\n};\r\n\r\nmodule.exports = ProjectActions;\r\n","Object.assign = require(\"object-assign\");\r\n\r\nvar keyMirror = require(\"keyMirror\");\r\n\r\nvar Constants = keyMirror({\r\n\tINITIALIZE: null,\r\n\tGIFT_ARRAY_LOADED: null,\r\n\tSET_ANONYMOUS: null,\r\n\tSET_DONATION_FREQUENCY: null,\r\n\tSET_DONATION_PREMIUM: null,\r\n\tSET_GIFT_AMOUNT: null,\r\n\tSET_MINIMUM_AMOUNT: null,\r\n\tSET_RECURRING_START_DATE: null,\r\n\tSET_SUBACCOUNT_GIFT_AMOUNT: null,\r\n\tSET_USE_ON_DAY: null,\r\n\tSET_UPSELL: null\r\n});\r\n\r\nmodule.exports = Constants;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar ProjectActions = require(\"./ProjectActions\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nvar GiftArray = require(\"./GiftArray\");\r\n\r\nclass ProjectGiftArray extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<GiftArray\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\ttangibleActions={ProjectActions}\r\n\t\t\t\ttangibleStore={ProjectStore}\r\n\t\t\t\ttangibleType=\"project\"\r\n\t\t\t\tdisplayCodeProperty=\"ProjectCode\"\r\n\t\t\t\treactComponentCategory=\"ProjectComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nProjectGiftArray.defaultProps = {\r\n\tincludeCurrencySymbol: true,\r\n\tincludeOther: false,\r\n\totherText: \"Other\",\r\n\tshowDecimals: true\r\n};\r\n\r\nProjectGiftArray.propTypes = {\r\n\tbuttonStyle: PropTypes.object,\r\n\tchildClass: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tgiftAmounts: PropTypes.array,\r\n\thideWhenSubaccounts: PropTypes.bool,\r\n\tincludeCurrencySymbol: PropTypes.bool,\r\n\tincludeOther: PropTypes.bool,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\tminimumAmount: PropTypes.number,\r\n\totherText: PropTypes.string,\r\n\tproject: PropTypes.object,\r\n\tshowDecimals: PropTypes.bool,\r\n\ttheme: PropTypes.string,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]).isRequired\r\n};\r\n\r\nmodule.exports = ProjectGiftArray;\r\n","\"use strict\";\r\n\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\nvar LoggerInstance = require(\"js-logger\").get(\"Store\");\r\n\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar AbstractStore = require(\"../stores/AbstractStore\");\r\n\r\nvar CHANGE_EVENT = \"change\";\r\n\r\nvar state = {\r\n\tdefaultPledgeFrequency: null,\r\n\tisAnonymous: false,\r\n\tisDesignMode: false,\r\n\tisInPledgeStatementSession: false,\r\n\tisSecure: false,\r\n\tminimumAmount: null,\r\n\tminimumAmounts: {},\r\n\tproject: null,\r\n\tpledgeId: null,\r\n\trelatedAccount: null,\r\n\tselectedAmount: null,\r\n\tselectedAmounts: {},\r\n\tselectedFrequency: null,\r\n\tselectedFrequencies: {},\r\n\tselectedPremium: null,\r\n\tselectedPremiums: {},\r\n\tselectedStartDate: null,\r\n\tselectedStartDates: {},\r\n\tselectedUpsells: {},\r\n\tselectedUseOnDay: null,\r\n\tselectedUseOnDays: {},\r\n\tsubaccountAmounts: {},\r\n\tupsell: false,\r\n\twizardCheckoutDisplayMessages: {},\r\n\twizardDefaultUseOnDay: {},\r\n\twizardFrequencies: {},\r\n\twizardPledgeStatementEntry: {},\r\n\twizardProjectCompletionDefaults: {},\r\n\twizardRecurringStartDateDropdownValues: {},\r\n\twizardSecureProjects: {},\r\n\twizardShoppingCartDisplayMessages: {},\r\n\twizardSubaccounts: {},\r\n\twizardUseOnDays: {}\r\n};\r\n\r\nvar ProjectStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\t// Use to determine which pledge we're associated with, if any\r\n\t\t\tvar { tangibleCode, pledgeCode } = action;\r\n\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase ProjectConstants.SET_GIFT_AMOUNT:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedAmounts[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedAmounts[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedAmounts[action.context][action.tangibleCode] = action.selectedAmount;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedAmount = action.selectedAmount;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_MINIMUM_AMOUNT:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.minimumAmounts[action.context]) {\r\n\t\t\t\t\t\t\tstate.minimumAmounts[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.minimumAmounts[action.context][action.tangibleCode] = action.minimumAmount;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.minimumAmount = action.minimumAmount;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_SUBACCOUNT_GIFT_AMOUNT:\r\n\t\t\t\t\tstate.subaccountAmounts[action.subaccountCode] = action.amount;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_DONATION_FREQUENCY:\r\n\t\t\t\t\tif (pledgeCode) {\r\n\t\t\t\t\t\ttangibleCode = `${tangibleCode}_${pledgeCode}`;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedFrequencies[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedFrequencies[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedFrequencies[action.context][tangibleCode] = action.selectedFrequency;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedFrequency = action.selectedFrequency;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_DONATION_PREMIUM:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedPremiums[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedPremiums[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedPremiums[action.context][action.tangibleCode] = action.selectedPremium;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedPremium = action.selectedPremium;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_RECURRING_START_DATE:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedStartDates[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedStartDates[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedStartDates[action.context][action.tangibleCode] = action.selectedStartDate;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedStartDate = action.selectedStartDate;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_USE_ON_DAY:\r\n\t\t\t\t\tif (pledgeCode) {\r\n\t\t\t\t\t\ttangibleCode = `${tangibleCode}_${pledgeCode}`;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedUseOnDays[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedUseOnDays[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedUseOnDays[action.context][tangibleCode] = action.selectedUseOnDay;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedUseOnDay = action.selectedUseOnDay;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_UPSELL:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tvar { tangibleCode, pledgeCode } = action;\r\n\t\t\t\t\t\tif (pledgeCode) {\r\n\t\t\t\t\t\t\ttangibleCode = `${tangibleCode}_${pledgeCode}`;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!state.selectedUpsells[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedUpsells[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedUpsells[action.context][tangibleCode] = action.upsell;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.upsell = action.upsell;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.SET_ANONYMOUS:\r\n\t\t\t\t\tstate.isAnonymous = action.isAnonymous;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase ProjectConstants.INITIALIZE:\r\n\t\t\t\t\tstate.defaultPledgeFrequency = action.options.defaultPledgeFrequency;\r\n\t\t\t\t\tstate.isDesignMode = action.options.isDesignMode;\r\n\t\t\t\t\tstate.isInPledgeStatementSession = action.options.isInPledgeStatementSession;\r\n\t\t\t\t\tstate.project = action.options.project;\r\n\t\t\t\t\tstate.wizardCheckoutDisplayMessages = action.options.wizardCheckoutDisplayMessages;\r\n\t\t\t\t\tstate.wizardDefaultUseOnDay = action.options.wizardDefaultUseOnDay;\r\n\t\t\t\t\tstate.wizardFrequencies = action.options.wizardFrequencies;\r\n\t\t\t\t\tstate.wizardPledgeStatementEntry = action.options.wizardPledgeStatementEntry;\r\n\t\t\t\t\tstate.wizardProjectCompletionDefaults = action.options.wizardProjectCompletionDefaults;\r\n\t\t\t\t\tstate.wizardRecurringStartDateDropdownValues = action.options.wizardRecurringStartDateDropdownValues;\r\n\t\t\t\t\tstate.wizardShoppingCartDisplayMessages = action.options.wizardShoppingCartDisplayMessages;\r\n\t\t\t\t\tstate.wizardSubaccounts = action.options.wizardSubaccounts;\r\n\t\t\t\t\tstate.wizardUseOnDays = action.options.wizardUseOnDays;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\tLoggerInstance.debug(`Undefined action triggered in project store. ${action.actionType}`);\r\n\t\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tdonationStartsToday(context, tangibleCode) {\r\n\t\treturn this\r\n\t\t\t.getCalculatedStartDate(context, tangibleCode)\r\n\t\t\t.isSame(new Date(), \"day\");\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n\r\n\t// This is only used to determine if we're showing the recurring upsell checkbox. It uses\r\n\t// the calculated date from combining the start date (month and year) and the use on day,\r\n\t// and is not necessarily an accurate reflection of the actual start date that will be\r\n\t// assigned to the recurring.\r\n\t//\r\n\t// Returns a moment instance.\r\n\tgetCalculatedStartDate(context, tangible, pledgeCode) {\r\n\t\tvar today = window.moment();\r\n\t\tvar startDate = this.getSelectedStartDate(context, tangible);\r\n\t\tvar useOnDay = this.getSelectedUseOnDay(context, tangible, pledgeCode);\r\n\r\n\t\t// If we don't have an assiged start date, use today\r\n\t\tif (!startDate) {\r\n\t\t\tstartDate = today;\r\n\t\t} else {\r\n\t\t\tstartDate = window.moment(startDate, \"MM-YYYY\");\r\n\t\t}\r\n\r\n\t\t// set the day to the selected use on day\r\n\t\tstartDate.date(useOnDay);\r\n\r\n\t\treturn startDate;\r\n\t}\r\n\r\n\tgetIsDesignMode() {\r\n\t\treturn state.isDesignMode;\r\n\t}\r\n\r\n\tgetIsSecure() {\r\n\t\treturn state.isSecure;\r\n\t}\r\n\r\n\tsetIsSecure(isSecure) {\r\n\t\tstate.isSecure = isSecure;\r\n\t}\r\n\r\n\tsetSecureProjectsWizard(secureProjectsWizard) {\r\n\t\tstate.wizardSecureProjects = secureProjectsWizard;\r\n\t}\r\n\r\n\tgetPledgeId() {\r\n\t\treturn state.pledgeId;\r\n\t}\r\n\r\n\tsetPledgeId(pledgeId) {\r\n\t\tstate.pledgeId = pledgeId;\r\n\t}\r\n\r\n\tgetRelatedAccount() {\r\n\t\treturn state.relatedAccount;\r\n\t}\r\n\r\n\tsetRelatedAccount(relatedAccount) {\r\n\t\tstate.relatedAccount = relatedAccount;\r\n\t}\r\n\r\n\tgetMinimumAmount(context, tangibleCode) {\r\n\t\tif (context) {\r\n\t\t\tif (state.minimumAmounts[context]) {\r\n\t\t\t\treturn state.minimumAmounts[context][tangibleCode];\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn state.minimumAmount;\r\n\t}\r\n\r\n\tgetSelectedAmount(context, tangibleCode) {\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedAmounts[context]) {\r\n\t\t\t\treturn state.selectedAmounts[context][tangibleCode];\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.selectedAmount;\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedFrequency(context, tangibleCode, pledgeCode) {\r\n\t\tvar selectedFrequency = state.selectedFrequency;\r\n\t\tvar defaultFrequency = state.wizardProjectCompletionDefaults.defaultFrequency || \"O\";\r\n\r\n\t\tif (pledgeCode) {\r\n\t\t\ttangibleCode = `${tangibleCode}_${pledgeCode}`;\r\n\t\t\tdefaultFrequency = state.defaultPledgeFrequency;\r\n\t\t}\r\n\r\n\t\tif (context && state.selectedFrequencies[context]) {\r\n\t\t\tselectedFrequency = state.selectedFrequencies[context][tangibleCode];\r\n\t\t}\r\n\r\n\t\treturn selectedFrequency || defaultFrequency;\r\n\t}\r\n\r\n\tgetSelectedPremium(context, tangibleCode) {\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedPremiums[context]) {\r\n\t\t\t\treturn state.selectedPremiums[context][tangibleCode];\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.selectedPremium;\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedStartDate(context, tangibleCode) {\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedStartDates[context]) {\r\n\t\t\t\treturn state.selectedStartDates[context][tangibleCode];\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn state.selectedStartDate;\r\n\t}\r\n\r\n\tgetSelectedUseOnDay(context, tangibleCode, pledgeCode) {\r\n\t\tif (pledgeCode) {\r\n\t\t\ttangibleCode = `${tangibleCode}_${pledgeCode}`;\r\n\t\t}\r\n\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedUseOnDays[context]) {\r\n\t\t\t\treturn state.selectedUseOnDays[context][tangibleCode];\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.selectedUseOnDay;\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedUpsell(context, tangibleCode, pledgeCode) {\r\n\t\tif (context) {\r\n\t\t\tif (pledgeCode) {\r\n\t\t\t\ttangibleCode = `${tangibleCode}_${pledgeCode}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (state.selectedUpsells[context]) {\r\n\t\t\t\treturn state.selectedUpsells[context][tangibleCode];\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.upsell;\r\n\t\t}\r\n\t}\r\n\r\n\tgetSubaccountAmounts() {\r\n\t\treturn Object.keys(state.subaccountAmounts).length\r\n\t\t\t? state.subaccountAmounts\r\n\t\t\t: null;\r\n\t}\r\n\r\n\tgetFrequencyDescription(frequency) {\r\n\t\treturn state.wizardFrequencies[`${frequency}_Description`] || frequency;\r\n\t}\r\n\r\n\tgetIsChargeTodayRequired() {\r\n\t\treturn state.wizardProjectCompletionDefaults.requireDonation === WizardConstants.PROJECT_COMPLETION_DEFAULTS_REQUIRE_DONATION_VALUES.YES;\r\n\t}\r\n\r\n\tgetIsChargeTodayRequiredOnlyWithPremium() {\r\n\t\treturn state.wizardProjectCompletionDefaults.requireDonation === WizardConstants.PROJECT_COMPLETION_DEFAULTS_REQUIRE_DONATION_VALUES.WITH_PREMIUM;\r\n\t}\r\n\r\n\tgetDonationInformation(cartDataOptions) {\r\n\t\tcartDataOptions = cartDataOptions || {};\r\n\t\tvar { context, tangibleCode } = cartDataOptions;\r\n\r\n\t\tif (state.isSecure) {\r\n\t\t\ttangibleCode = state.wizardSecureProjects.projectCode;\r\n\t\t}\r\n\r\n\t\tvar donationInformation = {\r\n\t\t\t// Because the project information is pulled from the Tangibles table populated from SE, we cannot properly camelCase keys.\r\n\t\t\t// We are using the bracket notation to indicate that this is intended\r\n\t\t\tproject: tangibleCode || state.project[\"ProjectCode\"],\r\n\t\t\tamount: this.getSelectedAmount(context, tangibleCode),\r\n\t\t\tsubaccountAmounts: context ? null : state.subaccountAmounts,\r\n\t\t\tfrequency: this.getSelectedFrequency(context, tangibleCode),\r\n\t\t\tanonymous: context ? false : state.isAnonymous,\r\n\t\t\tuseOnDay: this.getSelectedUseOnDay(context, tangibleCode),\r\n\t\t\tupsell: false,\r\n\t\t\tpremium: this.getSelectedPremium(context, tangibleCode),\r\n\t\t\tstartDate: this.getSelectedStartDate(context, tangibleCode),\r\n\t\t\tminimumDonationAmount: this.getMinimumAmount(context, tangibleCode)\r\n\t\t};\r\n\t\tdonationInformation.isRecurring = donationInformation.frequency !== \"O\";\r\n\r\n\t\tif (!donationInformation.useOnDay && donationInformation.isRecurring && state.wizardDefaultUseOnDay && state.wizardDefaultUseOnDay.defaultUseOnDay) {\r\n\t\t\tdonationInformation.useOnDay = state.wizardDefaultUseOnDay.defaultUseOnDay;\r\n\t\t} else if (!donationInformation.isRecurring) {\r\n\t\t\tdonationInformation.useOnDay = null;\r\n\t\t}\r\n\r\n\t\tif (donationInformation.frequency !== \"O\" && !this.donationStartsToday(context, tangibleCode)) {\r\n\t\t\t// If the frequency is not \"O\", where we explicitly charge today no matter what,\r\n\t\t\t// or if the donation does not start exactly today then we get the value from what the user selected.\r\n\t\t\t// Otherwise the component is hidden, and upsell is false.\r\n\t\t\tdonationInformation.upsell = this.getSelectedUpsell(context, tangibleCode);\r\n\t\t}\r\n\r\n\t\tif (!donationInformation.upsell && (this.getIsChargeTodayRequired() || (donationInformation.premium && this.getIsChargeTodayRequiredOnlyWithPremium))) {\r\n\t\t\tdonationInformation.upsell = true;\r\n\t\t}\r\n\r\n\t\t// Donations toward a Secure Pledge will set state.pledgeId and possibly state.relatedAccount when the Secure Project Page loads.\r\n\t\tif (state.isSecure) {\r\n\t\t\tif (state.pledgeId) {\r\n\t\t\t\tdonationInformation.pledgeId = state.pledgeId;\r\n\t\t\t}\r\n\r\n\t\t\tif (state.relatedAccount) {\r\n\t\t\t\tdonationInformation.relatedAccount = state.relatedAccount;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn donationInformation;\r\n\t}\r\n\r\n\tgetProjectDispatcher() {\r\n\t\treturn Dispatcher;\r\n\t}\r\n};\r\n\r\nmodule.exports = new ProjectStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"RecurringUpsellCheckbox\");\r\n\r\nvar ProjectActions = require(\"./ProjectActions\");\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nvar VisibilityStore = require(\"../client/VisibilityStore\");\r\n\r\nclass RecurringUpsellCheckbox extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar upsell = !!props.defaultChecked;\r\n\t\tvar project = ProjectStore.get(\"project\") || props.project || {};\r\n\t\tproject = JSON.parse(JSON.stringify(project)); // clone the project to avoid reference\r\n\t\tvar tangibleCode;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tif (!project) {\r\n\t\t\t\tproject = {\r\n\t\t\t\t\tprojectCode: \"DESIGN01\",\r\n\t\t\t\t\tdescription: \"test description\"\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (props.context) {\r\n\t\t\tif (props.project) {\r\n\t\t\t\ttangibleCode = props.project.tangibleCode;\r\n\t\t\t} else if (props.isDesignMode) {\r\n\t\t\t\ttangibleCode = project[\"ProjectCode\"];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tupsell,\r\n\t\t\ttangibleCode\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleRecurringUpsellChange(event) {\r\n\t\tvar checked = event.target.checked;\r\n\r\n\t\tProjectActions.setUpsell(checked, this.state.tangibleCode, this.props.pledgeCode, this.state.context);\r\n\t}\r\n\r\n\telementsToShowHide(contextId, $context) {\r\n\t\tif (contextId) {\r\n\t\t\tvar $recurringUpsell = $(ReactDOM.findDOMNode(this));\r\n\t\t\treturn $recurringUpsell.closest(\"[data-component='category.pledge'],[data-component='category.project'],[data-component='searchResults.pledge'],[data-component='searchResults.project']\").find(\"[data-component$='.recurringUpsell']\");\r\n\t\t}\r\n\t\treturn $context.find(\"[data-component$='.recurringUpsell']\").not(\"[data-component='category.pledge'] [data-component$='.recurringUpsell'],[data-component='category.project'] [data-component$='.recurringUpsell'],[data-component='searchResults.pledge'] [data-component$='.recurringUpsell'],[data-component='searchResults.project'] [data-component$='.recurringUpsell']\");\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(ProjectStore.getState());\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tvar $recurringUpsell = $(ReactDOM.findDOMNode(this));\r\n\t\tvar tangibleCode = this.state.tangibleCode;\r\n\t\tvar { context, pledgeCode } = this.props;\r\n\r\n\t\tvar ruleIdentifier;\r\n\t\tvar contextId = \"\";\r\n\r\n\t\tif (context) {\r\n\t\t\tcontextId = this.getContextId($recurringUpsell, context);\r\n\t\t\tcontext = this.getUpdatedContext(context);\r\n\r\n\t\t\tcontext += `_${contextId}`;\r\n\t\t\truleIdentifier = `recurringUpsellCheckbox_${context}_${tangibleCode}`;\r\n\r\n\t\t\tif (pledgeCode) {\r\n\t\t\t\truleIdentifier = `${ruleIdentifier}_${pledgeCode}`;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\truleIdentifier = \"recurringUpsellCheckbox\";\r\n\t\t}\r\n\r\n\t\t$recurringUpsell.closest(\"[data-component$=recurringUpsell]\").children(\"[data-component$='recurringUpsell.label']\").attr(\"for\", ruleIdentifier);\r\n\t\tif (typeof ($) !== \"undefined\") {\r\n\t\t\tif (!VisibilityStore.hasRule(ruleIdentifier)) {\r\n\t\t\t\tVisibilityStore.addRule({\r\n\t\t\t\t\tidentifier: ruleIdentifier,\r\n\t\t\t\t\ttriggers: [ProjectConstants.SET_USE_ON_DAY, ProjectConstants.SET_DONATION_FREQUENCY, ProjectConstants.SET_RECURRING_START_DATE],\r\n\t\t\t\t\tshouldTrigger: (action) => {\r\n\t\t\t\t\t\t// Sub-criteria, cannot rely on SET_DONATION_FREQUENCY or SET_USE_ON_DAY or SET_RECURRING_START_DATE\r\n\t\t\t\t\t\t// coersion because certain actions were passing null for context and tangible code, while local values are undefined.\r\n\t\t\t\t\t\treturn action.context == context &&\r\n\t\t\t\t\t\t\taction.tangibleCode == tangibleCode &&\r\n\t\t\t\t\t\t\t(!pledgeCode || (!action.context || (action.pledgeCode && action.pledgeCode == pledgeCode)));\r\n\t\t\t\t\t},\r\n\t\t\t\t\tshow: (action) => {\r\n\t\t\t\t\t\tvar startDate = ProjectStore.getCalculatedStartDate(context, tangibleCode, pledgeCode);\r\n\t\t\t\t\t\treturn !window.moment().isSame(startDate, \"d\") && ProjectStore.getSelectedFrequency(context, tangibleCode, pledgeCode) !== \"O\";\r\n\t\t\t\t\t},\r\n\t\t\t\t\telements: this.elementsToShowHide.bind(this, contextId),\r\n\t\t\t\t\tinitialize: () => {\r\n\t\t\t\t\t\tvar startDate = ProjectStore.getCalculatedStartDate(context, tangibleCode, pledgeCode);\r\n\t\t\t\t\t\treturn !window.moment().isSame(startDate, \"d\") && ProjectStore.getSelectedFrequency(context, tangibleCode, pledgeCode) !== \"O\";\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar selectedUpsell = this.state.upsell;\r\n\t\tif (!context) {\r\n\t\t\tvar cachedValues = {};\r\n\t\t\tif (ProjectActions.getCachedValues) {\r\n\t\t\t\tcachedValues = ProjectActions.getCachedValues() || {};\r\n\t\t\t}\r\n\r\n\t\t\tselectedUpsell = cachedValues.isRecurringUpsell !== undefined ? cachedValues.isRecurringUpsell : this.state.upsell;\r\n\t\t}\r\n\r\n\t\tthis.setState({ context, ruleIdentifier }, () => {\r\n\t\t\t// At this point, upsell has been set by the component\r\n\t\t\t// This has to happen here so the onChange below is invoked\r\n\t\t\tProjectActions.setUpsell(selectedUpsell, tangibleCode, pledgeCode, context);\r\n\t\t});\r\n\t\tProjectStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tgetContextId($component, context) {\r\n\t\tif (!context) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tswitch (context) {\r\n\t\t\tcase \"tangible\":\r\n\t\t\t\treturn $component.closest(\"[data-component=category]\").attr(\"id\");\r\n\t\t\tcase \"result\":\r\n\t\t\t\treturn $component.closest(\"[data-component=searchResults]\").attr(\"id\");\r\n\t\t}\r\n\t}\r\n\r\n\tgetUpdatedContext(context) {\r\n\t\tif (!context) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tswitch (context) {\r\n\t\t\tcase \"tangible\":\r\n\t\t\t\treturn \"category\";\r\n\t\t\tcase \"result\":\r\n\t\t\t\treturn \"search\";\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tvar { context, tangibleCode, ruleIdentifier } = this.state;\r\n\t\tvar { pledgeCode } = this.props;\r\n\r\n\t\tVisibilityStore.removeRule(ruleIdentifier);\r\n\t\tProjectStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tProjectActions.setUpsell(false, tangibleCode, pledgeCode, context);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar { context, tangibleCode, ruleIdentifier } = this.state;\r\n\t\tvar { pledgeCode, isDesignMode } = this.props;\r\n\r\n\t\tvar upsell = context ? ProjectStore.getSelectedUpsell(context, tangibleCode, pledgeCode) : this.state.upsell;\r\n\r\n\t\tvar hasPremium = ProjectStore.getSelectedPremium(context, tangibleCode);\r\n\t\tvar isChargeTodayRequired = ProjectStore.getIsChargeTodayRequired() || (hasPremium && ProjectStore.getIsChargeTodayRequiredOnlyWithPremium());\r\n\r\n\t\tvar isChecked = Boolean(upsell || isChargeTodayRequired);\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tdata-react-component-name=\"RecurringUpsellCheckbox\"\r\n\t\t\t\tdata-react-component-category=\"ProjectComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<input type=\"checkbox\" checked={isChecked} id={ruleIdentifier} onChange={this.handleRecurringUpsellChange.bind(this)} disabled={!isDesignMode && isChargeTodayRequired} />\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nRecurringUpsellCheckbox.defaultProps = {};\r\n\r\nRecurringUpsellCheckbox.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tpledgeCode: PropTypes.string,\r\n\tproject: PropTypes.object,\r\n\tcontext: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = RecurringUpsellCheckbox;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\")\r\n\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\n\r\nvar ProjectActions = require(\"./ProjectActions\");\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nclass SubaccountGiftArray extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar project = props.project || {};\r\n\t\tvar projectSubaccounts = [];\r\n\t\tvar subaccounts = [];\r\n\t\tvar subaccountAmounts = {};\r\n\t\tvar wizardSubaccounts = { subaccountDefaultDescriptions: [] };\r\n\t\tvar subaccount;\r\n\r\n\t\tproject = JSON.parse(JSON.stringify(project)); // clone the project to avoid reference\r\n\r\n\t\t// If we are on the client side\r\n\t\tif (typeof (window) !== \"undefined\") {\r\n\t\t\tvar projectStoreState = ProjectStore.getState();\r\n\t\t\tsubaccountAmounts = projectStoreState.subaccountAmounts || {};\r\n\t\t\twizardSubaccounts = projectStoreState.wizardSubaccounts;\r\n\t\t}\r\n\r\n\t\tprojectSubaccounts = project.subaccounts || [];\r\n\t\tif (!projectSubaccounts.length && project.displayObject && project.displayObject.value && project.displayObject.value.Subaccounts && project.displayObject.value.Subaccounts.length) {\r\n\t\t\tprojectSubaccounts = project.displayObject.value.Subaccounts;\r\n\t\t}\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tprojectSubaccounts = [\r\n\t\t\t\t{ \"Value\":\"SUB1\", \"DefaultDescription\":\"Subaccount 1\", \"Description\":\"Subaccount 1\" },\r\n\t\t\t\t{ \"Value\":\"SUB2\", \"DefaultDescription\":\"Subaccount 2\", \"Description\":\"Subaccount 2\" },\r\n\t\t\t\t{ \"Value\":\"SUB3\", \"DefaultDescription\":\"Subaccount 3\", \"Description\":\"Subaccount 3\" }\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i < projectSubaccounts.length; i++) {\r\n\t\t\tsubaccount = projectSubaccounts[i];\r\n\t\t\tif (subaccount.Description) {\r\n\t\t\t\tsubaccount.description = subaccount.Description;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Subaccount Override description was not provided, use wizard description (if available)\r\n\t\t\t\tvar wizardSubaccountIndex = wizardSubaccounts.subaccountDefaultDescriptions.indexOf(subaccount.Value);\r\n\t\t\t\tif (wizardSubaccountIndex === -1) {\r\n\t\t\t\t\t// Subaccount Override description and wizard were not provided, use default from Y23\r\n\t\t\t\t\tsubaccount.description = subaccount.DefaultDescription\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tsubaccount.description = wizardSubaccounts[`${subaccount.Value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsubaccounts.push(subaccount);\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tproject,\r\n\t\t\tsubaccounts,\r\n\t\t\tsubaccountAmounts,\r\n\t\t\tsubaccountEditing: {}\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleSubaccountAmountChanged(subaccount, event) {\r\n\t\tif (InputHelper.isAmountValid(event.currentTarget.value)) {\r\n\t\t\tProjectActions.setSubaccountAmount(subaccount.Value, ActionsHelper.convertFormattedAmountToNumberString(event.currentTarget.value));\r\n\t\t}\r\n\t}\r\n\r\n\thandleSubaccountAmountEdit(subaccount, editing) {\r\n\t\tthis.state.subaccountEditing[subaccount.Value] = editing;\r\n\t\tthis.setState({ subaccountEditing: this.state.subaccountEditing });\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(ProjectStore.getState());\r\n\t}\r\n\r\n\tcomponentWillMount() {\r\n\t\tvar upsell = this.state.upsell;\r\n\r\n\t\tif (ProjectStore.get(\"upsell\") !== upsell) {\r\n\t\t\tProjectActions.setUpsell(upsell);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t\tProjectStore.addChangeListener(this._onChange);\r\n\r\n\t\tvar $context = $(ReactDOM.findDOMNode(this)).closest(\"[data-component$='GiftAmount']\");\r\n\r\n\t\tif (typeof ($) !== \"undefined\") {\r\n\t\t\tvar shouldSubaccountsBeShown = false;\r\n\t\t\tif (!VisibilityStore.hasRule(\"subaccount\")) {\r\n\t\t\t\tVisibilityStore.addRule({\r\n\t\t\t\t\tidentifier: \"subaccount\",\r\n\t\t\t\t\ttriggers: [],\r\n\t\t\t\t\tshow: (action) => false,\r\n\t\t\t\t\telements: ($context) => $context.find(\"[data-component='SubaccountGiftArray'],[data-show-when='subaccount']\"),\r\n\t\t\t\t\tinitialize: () => {\r\n\t\t\t\t\t\treturn (this.state.subaccounts.length > 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, $context);\r\n\t\t\t}\r\n\t\t\tif (!VisibilityStore.hasRule(\"giftArray\")) {\r\n\t\t\t\tVisibilityStore.addRule({\r\n\t\t\t\t\tidentifier: \"giftArray\",\r\n\t\t\t\t\ttriggers: [ProjectConstants.GIFT_ARRAY_LOADED],\r\n\t\t\t\t\tshouldTrigger: (action) => {\r\n\t\t\t\t\t\treturn true\r\n\t\t\t\t\t},\r\n\t\t\t\t\tshow: () => this.getShouldShowGiftArray($context),\r\n\t\t\t\t\telements: ($context) => $context.find(\"[data-react-component-name='ButtonGiftArray'],[data-react-component-name='RadioGiftArray'],[data-react-component-name='SelectGiftArray'],[data-show-when='giftArray']\"),\r\n\t\t\t\t\tinitialize: () => this.getShouldShowGiftArray($context),\r\n\t\t\t\t}, $context);\r\n\t\t\t}\r\n\t\t\tif (!VisibilityStore.hasRule(\"subaccountGiftArray\")) {\r\n\t\t\t\tVisibilityStore.addRule({\r\n\t\t\t\t\tidentifier: \"subaccountGiftArray\",\r\n\t\t\t\t\ttriggers: [],\r\n\t\t\t\t\tshow: (action) => false,\r\n\t\t\t\t\telements: ($context) => $context.find(\"[data-show-when='both']\"),\r\n\t\t\t\t\tinitialize: ($context) => {\r\n\t\t\t\t\t\tshouldSubaccountsBeShown = this.determineIfSubaccountsShouldBeShown($context);\r\n\t\t\t\t\t\treturn shouldSubaccountsBeShown;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, $context);\r\n\t\t\t}\r\n\r\n\t\t\tif (shouldSubaccountsBeShown) {\r\n\t\t\t\t//If there are no cached values, making sure the gift array does not have a value selected.\r\n\t\t\t\tvar cachedValues = ProjectActions.getCachedValues() || {};\r\n\t\t\t\tvar selectedAmount = cachedValues.amount || \"\";\r\n\t\t\t\tProjectActions.setGiftAmount(selectedAmount);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetShouldShowGiftArray($context) {\r\n\t\t// If the gift array will not be hidden, we don't need to hide\r\n\t\tvar filter = \"[data-react-component-name='ButtonGiftArray']:has([data-hide='subaccounts']),\" +\r\n\t\t\"[data-react-component-name='RadioGiftArray']:has([data-hide='subaccounts']),\" +\r\n\t\t\"[data-react-component-name='SelectGiftArray']:has([data-hide='subaccounts'])\";\r\n\t\tvar show = (this.state.subaccounts.length <= 0 || $context.find(filter).length < 1);\r\n\t\tif (!show) {\r\n\t\t\t//Because we are hiding the gift array project detail page, we want to clear the amount so we are not charged.\r\n\t\t\t//\tWe don't need to consider and pass in tangibleCode and context because we can only have the subaccountGiftArray on the main project detail page and not in category or searchResults.\r\n\t\t\tProjectActions.setGiftAmount(0);\r\n\t\t}\r\n\t\treturn show;\r\n\t}\r\n\r\n\tgetSubaccountAmount(subaccountValue) {\r\n\t\tvar editingSubaccount = this.state.subaccountEditing[subaccountValue];\r\n\t\tvar subaccountAmount = this.state.subaccountAmounts[subaccountValue];\r\n\r\n\t\tif (editingSubaccount && subaccountAmount !== \"\" && subaccountAmount !== \"0\" && subaccountAmount !== \".00\") {\r\n\t\t\treturn ActionsHelper.replaceAmountDecimalSymbols(subaccountAmount);\r\n\t\t}\r\n\t\telse if (!editingSubaccount && subaccountAmount != null && subaccountAmount !== \"\" && subaccountAmount !== \"0\" && subaccountAmount !== \".0\" && subaccountAmount !== \".00\") {\r\n\t\t\treturn ActionsHelper.formatAmount(subaccountAmount, true, true, true);\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tdetermineIfSubaccountsShouldBeShown($context) {\r\n\t\tvar show1 = (this.state.subaccounts.length > 0);\r\n\r\n\t\tvar filter = \"[data-react-component-name='ButtonGiftArray']:has([data-hide='subaccounts']),\" +\r\n\t\t\t\"[data-react-component-name='RadioGiftArray']:has([data-hide='subaccounts']),\" +\r\n\t\t\t\"[data-react-component-name='SelectGiftArray']:has([data-hide='subaccounts'])\";\r\n\t\tvar show2 = (this.state.subaccounts.length <= 0 || $context.find(filter).length < 1);\r\n\r\n\t\treturn show1 && show2;\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tVisibilityStore.removeRule(\"subaccount\");\r\n\t\tVisibilityStore.removeRule(\"giftArray\");\r\n\t\tVisibilityStore.removeRule(\"subaccountGiftArray\");\r\n\t\tProjectStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar subaccounts = this.state.subaccounts;\r\n\r\n\t\tvar emptyPlaceholder = this.props.isDesignMode ? <div className=\"collapsedComponentPlaceholder\">Subaccount Gift Array</div> : null;\r\n\r\n\t\tif (!this.props.isDesignMode && (!subaccounts || subaccounts.length <= 0)) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName=\"subaccount-gift-array\"\r\n\t\t\t\tdata-react-component-name=\"SubaccountGiftArray\"\r\n\t\t\t\tdata-react-component-category=\"ProjectComponents\"\r\n\t\t\t\tdata-component-id={!this.props.isCustomTheme ? this.props.dataComponentId : undefined}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t{subaccounts && subaccounts.length > 0 ?\r\n\t\t\t\t\tsubaccounts.map((subaccount, index) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"subaccount\", \"row\", \"form-group\", this.props.childClass])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={subaccount.Value}\r\n\t\t\t\t\t\t\t\tdata-component=\"SubaccountGiftArray.subaccount\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\t\thtmlFor={`subaccount-${index}`}\r\n\t\t\t\t\t\t\t\t\tdata-component=\"SubaccountGiftArray.subaccount.label\"\r\n\t\t\t\t\t\t\t\t\tclassName={`col-${this.props.horizontalBreakpoint}-2`}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{subaccount.description}\r\n\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\tclassName={`col-${this.props.horizontalBreakpoint}-10`}\r\n\t\t\t\t\t\t\t\t\tdata-component=\"SubaccountGiftArray.subaccount.input\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\tid={`subaccount-${index}`}\r\n\t\t\t\t\t\t\t\t\t\tclassName=\"form-control\"\r\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\tvalue={this.getSubaccountAmount(subaccount.Value)}\r\n\t\t\t\t\t\t\t\t\t\tonChange={this.handleSubaccountAmountChanged.bind(this, subaccount)}\r\n\t\t\t\t\t\t\t\t\t\tonFocus={this.handleSubaccountAmountEdit.bind(this, subaccount, true)}\r\n\t\t\t\t\t\t\t\t\t\tonBlur={this.handleSubaccountAmountEdit.bind(this, subaccount, false)}\r\n\t\t\t\t\t\t\t\t\t\treadOnly={this.props.isDesignMode}\r\n\t\t\t\t\t\t\t\t\t\tinputMode=\"decimal\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t:\r\n\t\t\t\t\temptyPlaceholder\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nSubaccountGiftArray.defaultProps = {\r\n\ttheme: \"0\",\r\n\tisCustomTheme: false,\r\n\thorizontalBreakpoint: \"sm\"\r\n};\r\n\r\nSubaccountGiftArray.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tproject: PropTypes.object,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\thorizontalBreakpoint: PropTypes.string\r\n};\r\n\r\nmodule.exports = SubaccountGiftArray;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"UseOnDaySelector\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar HtmlHelper = require(\"../shared/HtmlHelper\");\r\n\r\nvar ProjectActions = require(\"./ProjectActions\");\r\nvar PledgeActions = require(\"../actions/PledgeActions\");\r\nvar ProjectConstants = require(\"./ProjectConstants\");\r\nvar ProjectStore = require(\"./ProjectStore\");\r\n\r\nvar TokenStore = require(\"../client/TokenStore\");\r\nvar VisibilityStore = require(\"../client/VisibilityStore\");\r\n\r\nclass UseOnDaySelector extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar selectedUseOnDay = null;\r\n\t\tvar project = props.project;\r\n\t\tvar useOnDays = props.useOnDays || [];\r\n\t\tvar wizardUseOnDays = { allowedUseOnDays: [] };\r\n\t\tvar useOnDay;\r\n\t\tvar tangibleCode;\r\n\t\tvar allowedUseOnDays = [];\r\n\r\n\t\t// If we are on the client side\r\n\t\tif (typeof (window) !== \"undefined\") {\r\n\t\t\tvar projectStoreState = ProjectStore.getState();\r\n\r\n\t\t\t// Ideally we would get the project from the store, but that does not exist on the server\r\n\t\t\t// We optimistically render on the server with the props.project (the @Model) and on the\r\n\t\t\t// client, we will get the project from the store\r\n\t\t\tproject = projectStoreState.project || props.project || {};\r\n\t\t\tproject = JSON.parse(JSON.stringify(project)); // clone the project to avoid reference\r\n\t\t\tuseOnDays = props.useOnDays ? props.useOnDays.slice(0) : []; // clone the array to avoid reference\r\n\r\n\t\t\t// We only want to set the initial state from the store if we're not in a repeater.\r\n\t\t\tif (!props.context) {\r\n\t\t\t\tselectedUseOnDay = projectStoreState.selectedUseOnDay;\r\n\t\t\t}\r\n\r\n\t\t\twizardUseOnDays = projectStoreState.wizardUseOnDays;\r\n\t\t\tif (wizardUseOnDays) {\r\n\t\t\t\tallowedUseOnDays = wizardUseOnDays.allowedUseOnDays || [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (allowedUseOnDays) {\r\n\t\t\tfor (var i = useOnDays.length - 1; i >= 0; --i) {\r\n\t\t\t\tuseOnDay = useOnDays[i];\r\n\t\t\t\tvar allowedIndex = allowedUseOnDays.indexOf(useOnDay.value);\r\n\t\t\t\tif (allowedIndex === -1) {\r\n\t\t\t\t\t// UseOnDay is not allowed\r\n\t\t\t\t\tuseOnDays.splice(i, 1);\r\n\t\t\t\t} else if (useOnDay.useDefaultDescription) {\r\n\t\t\t\t\t// UseOnDay should use default description\r\n\t\t\t\t\tuseOnDay.description = wizardUseOnDays[`${useOnDay.value}_Description`];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!selectedUseOnDay) {\r\n\t\t\tselectedUseOnDay = useOnDays.length > 0 ? useOnDays[0].value : \"\";\r\n\t\t}\r\n\r\n\t\tif (props.context) {\r\n\t\t\tif (props.project) {\r\n\t\t\t\ttangibleCode = props.project.tangibleCode;\r\n\t\t\t} else if (props.isDesignMode) {\r\n\t\t\t\ttangibleCode = project[\"ProjectCode\"];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tselectedUseOnDay,\r\n\t\t\tproject,\r\n\t\t\ttangibleCode,\r\n\t\t\tuseOnDays\r\n\t\t};\r\n\r\n\t\tthis._onChange = this._onChange.bind(this);\r\n\t}\r\n\r\n\thandleUseOnDaySelected(event) {\r\n\t\tvar selectedUseOnDay = event.currentTarget.value;\r\n\r\n\t\tProjectActions.setUseOnDay(selectedUseOnDay, this.state.tangibleCode, this.props.pledgeCode, this.state.context);\r\n\t}\r\n\r\n\telementsToShowHide(contextId, $context) {\r\n\t\tif (contextId) {\r\n\t\t\tvar $useOnDaySelector = $(ReactDOM.findDOMNode(this));\r\n\t\t\treturn $useOnDaySelector.closest(\"[data-component='category.project'],[data-component='category.pledge'],[data-component='searchResults.project'],[data-component='searchResults.pledge']\").find(\"[data-component$='UseOnDay']\");\r\n\t\t}\r\n\t\treturn $context.find(\"[data-component$='UseOnDay']\").not(\"[data-component='category.pledge'] [data-component$='UseOnDay'],[data-component='category.project'] [data-component$='UseOnDay'],[data-component='searchResults.pledge'] [data-component$='UseOnDay'][data-component='searchResults.project'] [data-component$='UseOnDay']\");\r\n\t}\r\n\r\n\telementsToUpdateToken(contextId, $context) {\r\n\t\tif (contextId) {\r\n\t\t\tvar $useOnDaySelector = $(ReactDOM.findDOMNode(this));\r\n\t\t\treturn $useOnDaySelector.closest(\"[data-component='category.pledge'],[data-component='category.project'],[data-component='searchResults.pledge'],[data-component='searchResults.project']\").find(\"[data-placeholder='selectedUseOnDay']\");\r\n\t\t}\r\n\t\treturn $context.find(\"[data-placeholder='selectedUseOnDay']\").not(\"[data-component='category.pledge'] [data-placeholder='selectedUseOnDay'],[data-component='category.project'] [data-placeholder='selectedUseOnDay'],[data-component='searchResults.pledge'] [data-placeholder='selectedUseOnDay'],[data-component='searchResults.project'] [data-placeholder='selectedUseOnDay']\");\r\n\t}\r\n\r\n\tgetUseOnDayDescription(useOnDayValue) {\r\n\t\tvar useOnDayObject = this.state.useOnDays.find(useOnDay => useOnDay.value === useOnDayValue);\r\n\t\tif (useOnDayObject) {\r\n\t\t\treturn useOnDayObject.description;\r\n\t\t}\r\n\t\t// TODO: should hide the element?\r\n\t\treturn \"ERROR: Token not found\";\r\n\t}\r\n\r\n\t_onChange() {\r\n\t\tthis.setState(ProjectStore.getState());\r\n\t}\r\n\r\n\tcomponentWillMount() {\r\n\t\t//Setting an instance Id, mainly for when we are in the searchResults and this component is in the grid and list view. We need the names for the radio button groups to be unique.\r\n\t\tthis.instanceId = HtmlHelper.getId($(\"body\"));\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tvar $useOnDay = $(ReactDOM.findDOMNode(this));\r\n\t\tvar tangibleCode = this.state.tangibleCode;\r\n\t\tvar { context, pledgeCode } = this.props;\r\n\t\tvar contextId = \"\";\r\n\t\tif (context) {\r\n\t\t\tcontextId = this.getContextId($useOnDay, context);\r\n\t\t\tcontext = this.getUpdatedContext(context);\r\n\r\n\t\t\tcontext += `_${contextId}`;\r\n\t\t}\r\n\r\n\t\tvar ruleId = `useOnDay_${context}_${tangibleCode}`;\r\n\t\tvar tokenId = `selectedUseOnDay_${context}_${tangibleCode}`;\r\n\r\n\t\tif (context) {\r\n\t\t\truleId = `useOnDay_${context}_${tangibleCode}`;\r\n\t\t\ttokenId = `selectedUseOnDay_${context}_${tangibleCode}`;\r\n\r\n\t\t\tif (pledgeCode) {\r\n\t\t\t\truleId = `${ruleId}_${pledgeCode}`;\r\n\t\t\t\ttokenId = `${tokenId}_${pledgeCode}`;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\truleId = \"useOnDay\";\r\n\t\t\ttokenId = \"selectedUseOnDay\";\r\n\t\t}\r\n\r\n\t\t//For adding Visibility Rules only, we need to distinguish between grid and list view; otherwise, only one of them will be added as a rule.\r\n\t\tif ($useOnDay.parents(\".grid-search-results-wrapper,.grid-category-items-wrapper\").length) {\r\n\t\t\truleId += \"_grid\";\r\n\t\t} else if ($useOnDay.parents(\".list-search-results-wrapper,.list-category-items-wrapper\").length) {\r\n\t\t\truleId += \"_list\";\r\n\t\t}\r\n\r\n\t\tif (typeof ($) !== \"undefined\") {\r\n\t\t\tif (!VisibilityStore.hasRule(ruleId)) {\r\n\t\t\t\tVisibilityStore.addRule({\r\n\t\t\t\t\tidentifier: ruleId,\r\n\t\t\t\t\ttriggers: [ProjectConstants.SET_DONATION_FREQUENCY],\r\n\t\t\t\t\tshouldTrigger: (action) => {\r\n\t\t\t\t\t\t// Sub-criteria, cannot rely on SET_DONATION_FREQUENCY\r\n\t\t\t\t\t\treturn action.context === context && action.tangibleCode === tangibleCode && (!pledgeCode || (!action.context || (action.pledgeCode && action.pledgeCode === pledgeCode)));\r\n\t\t\t\t\t},\r\n\t\t\t\t\tshow: (action) => action.selectedFrequency !== \"O\",\r\n\t\t\t\t\telements: this.elementsToShowHide.bind(this, contextId),\r\n\t\t\t\t\tinitialize: () => {\r\n\t\t\t\t\t\tvar selectedFrequency = ProjectStore.getSelectedFrequency(context, tangibleCode, pledgeCode);\r\n\t\t\t\t\t\treturn selectedFrequency !== \"O\";\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (!TokenStore.hasRule(tokenId)) {\r\n\t\t\t\tTokenStore.addRule({\r\n\t\t\t\t\tidentifier: tokenId,\r\n\t\t\t\t\ttriggers: [ProjectConstants.SET_USE_ON_DAY],\r\n\t\t\t\t\tshouldTrigger: (action) => {\r\n\t\t\t\t\t\t// Sub-criteria, cannot rely on SET_DONATION_FREQUENCY\r\n\t\t\t\t\t\treturn action.context === context && action.tangibleCode === tangibleCode && (!action.pledgeCode || action.pledgeCode === pledgeCode);\r\n\t\t\t\t\t},\r\n\t\t\t\t\telements: this.elementsToUpdateToken.bind(this, contextId),\r\n\t\t\t\t\tgetToken: (action) => this.getUseOnDayDescription(action.selectedUseOnDay),\r\n\t\t\t\t\tinitialize: () => this.getUseOnDayDescription(ProjectStore.getSelectedUseOnDay(context, tangibleCode, pledgeCode))\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\r\n\t\tvar selectedUseOnDay = this.state.selectedUseOnDay;\r\n\t\tif (!context) {\r\n\t\t\t// Check sessionStorage for cachedValues\r\n\t\t\tvar cachedValues = {};\r\n\t\t\tif ($useOnDay.parents(\".create-recurring-use-on-date\").length) {\r\n\t\t\t\t// We are on a pledge page\r\n\t\t\t\tif (PledgeActions.getCachedValues) {\r\n\t\t\t\t\tcachedValues = PledgeActions.getCachedValues() || {};\r\n\t\t\t\t}\r\n\t\t\t} else if (ProjectActions.getCachedValues) {\r\n\t\t\t\tcachedValues = ProjectActions.getCachedValues() || {};\r\n\t\t\t}\r\n\r\n\t\t\tselectedUseOnDay = cachedValues.useOnDay || this.state.selectedUseOnDay;\r\n\t\t}\r\n\r\n\t\t// At this point, selectedUseOnDay has been set by the component\r\n\t\tthis.setState({ context, ruleId, tokenId }, () => {\r\n\t\t\t// This has to happen here so the onChange below is invoked\r\n\t\t\tProjectActions.setUseOnDay(\r\n\t\t\t\tselectedUseOnDay,\r\n\t\t\t\ttangibleCode,\r\n\t\t\t\tthis.props.pledgeCode,\r\n\t\t\t\tcontext\r\n\t\t\t);\r\n\t\t});\r\n\t\tProjectStore.addChangeListener(this._onChange);\r\n\t}\r\n\r\n\tgetContextId($component, context) {\r\n\t\tif (!context) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tswitch (context) {\r\n\t\t\tcase \"tangible\":\r\n\t\t\t\treturn $component.closest(\"[data-component=category]\").attr(\"id\");\r\n\t\t\tcase \"result\":\r\n\t\t\t\treturn $component.closest(\"[data-component=searchResults]\").attr(\"id\");\r\n\t\t}\r\n\t}\r\n\r\n\tgetUpdatedContext(context) {\r\n\t\tif (!context) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tswitch (context) {\r\n\t\t\tcase \"tangible\":\r\n\t\t\t\treturn \"category\";\r\n\t\t\tcase \"result\":\r\n\t\t\t\treturn \"search\";\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tvar { context, tangibleCode, ruleId, tokenId } = this.state;\r\n\t\tvar { pledgeCode } = this.props;\r\n\r\n\t\tVisibilityStore.removeRule(ruleId);\r\n\t\tTokenStore.removeRule(tokenId);\r\n\t\tProjectStore.removeChangeListener(this._onChange);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit wwwroot\\js\\designer\\ExposedComponents.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t\tProjectActions.setUseOnDay(null, tangibleCode, pledgeCode, context);\r\n\t\t}\r\n\t}\r\n\r\n\trenderButton(selectedUseOnDay) {\r\n\t\tvar context = this.state.context;\r\n\t\tvar name = `${context ? `useOnDay_${context}_${this.state.tangibleCode}` : \"useOnDay\"}_${this.instanceId}`;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"donation-use-on-days\">\r\n\t\t\t\t{this.state.useOnDays.map((useOnDay) => {\r\n\t\t\t\t\tvar isSelected = selectedUseOnDay === useOnDay.value;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"useOnDay\", \"radio-button\", this.props.childClass, { selected: isSelected }])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={useOnDay.value}\r\n\t\t\t\t\t\t\t\tdata-component=\"ButtonUseOnDaySelector.button\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={useOnDay.value} onChange={this.handleUseOnDaySelected.bind(this)} checked={isSelected} />\r\n\t\t\t\t\t\t\t<span>{useOnDay.description}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderRadio(selectedUseOnDay) {\r\n\t\tvar context = this.state.context;\r\n\t\tvar name = `${context ? `useOnDay_${context}_${this.state.tangibleCode}` : \"useOnDay\"}_${this.instanceId}`;\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"donation-use-on-days\">\r\n\t\t\t\t{this.state.useOnDays.map((useOnDay) => {\r\n\t\t\t\t\tvar isSelected = selectedUseOnDay === useOnDay.value;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<label\r\n\t\t\t\t\t\t\t\tclassName={classNames([\"useOnDay\", this.props.childClass, { selected: isSelected }])}\r\n\t\t\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\t\t\tkey={useOnDay.value}\r\n\t\t\t\t\t\t\t\tdata-component=\"RadioUseOnDaySelector.radio\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<input type=\"radio\" name={name} value={useOnDay.value} onChange={this.handleUseOnDaySelected.bind(this)} checked={isSelected} />\r\n\t\t\t\t\t\t\t<span data-component=\"RadioUseOnDaySelector.radio.label\">{useOnDay.description}</span>\r\n\t\t\t\t\t\t</label>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderDropdown(selectedUseOnDay) {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<select\r\n\t\t\t\t\t\tclassName={classNames([\"donation-use-on-days\", this.props.childClass])}\r\n\t\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\t\tselected={selectedUseOnDay}\r\n\t\t\t\t\t\tonChange={this.handleUseOnDaySelected.bind(this)}\r\n\t\t\t\t\t\tdata-component=\"SelectUseOnDaySelector.select\"\r\n\t\t\t\t\t\tvalue={selectedUseOnDay || \"\"}\r\n\t\t\t\t>\r\n\t\t\t\t\t{this.state.useOnDays.map((useOnDay) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className=\"useOnDay\" key={useOnDay.value} value={useOnDay.value}>\r\n\t\t\t\t\t\t\t\t{useOnDay.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderContainer() {\r\n\t\tvar selectedUseOnDay;\r\n\t\tif (this.state.context) {\r\n\t\t\tselectedUseOnDay = ProjectStore.getSelectedUseOnDay(this.state.context, this.state.tangibleCode, this.props.pledgeCode);\r\n\t\t} else {\r\n\t\t\tselectedUseOnDay = this.state.selectedUseOnDay;\r\n\t\t}\r\n\r\n\t\tswitch (this.props.type) {\r\n\t\t\tcase \"button\":\r\n\t\t\t\treturn this.renderButton(selectedUseOnDay);\r\n\t\t\tcase \"radio\":\r\n\t\t\t\treturn this.renderRadio(selectedUseOnDay);\r\n\t\t\tcase \"dropdown\":\r\n\t\t\t\treturn this.renderDropdown(selectedUseOnDay);\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type for UseOnDaySelector\");\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar useOnDays = this.state.useOnDays;\r\n\t\tvar reactComponentName;\r\n\r\n\t\tswitch (this.props.type) {\r\n\t\t\tcase \"button\":\r\n\t\t\t\treactComponentName = \"ButtonUseOnDaySelector\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"radio\":\r\n\t\t\t\treactComponentName = \"RadioUseOnDaySelector\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"dropdown\":\r\n\t\t\t\treactComponentName = \"SelectUseOnDaySelector\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type for UseOnDaySelector\");\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tdata-react-component-name={reactComponentName}\r\n\t\t\t\tdata-react-component-category=\"ProjectComponents\"\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t{useOnDays && useOnDays.length > 0 ?\r\n\t\t\t\t\tthis.renderContainer()\r\n\t\t\t\t:\r\n\t\t\t\t\t<div className=\"collapsedComponentPlaceholder\">Use On Day Selector</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nUseOnDaySelector.defaultProps = {\r\n\ttype: \"button\",\r\n\ttheme: \"0\",\r\n\tisCustomTheme: false\r\n};\r\n\r\nUseOnDaySelector.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tproject: PropTypes.object,\r\n\tpledgeCode: PropTypes.string,\r\n\tuseOnDays: PropTypes.array,\r\n\ttype: PropTypes.oneOf([\"button\", \"radio\", \"dropdown\"]).isRequired,\r\n\ttheme: PropTypes.string,\r\n\tcontext: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tchildClass: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string\r\n};\r\n\r\nmodule.exports = UseOnDaySelector;\r\n","\"use strict\";\r\n\r\nvar ActionsHelper = require(\"../../actions/ActionsHelper\");\r\n\r\nvar WizardConstants = require(\"../../constants/WizardConstants\");\r\n\r\nvar GiftArrayValidator = {\r\n\tvalidateDonationMeetsMinimum: function(tangibleStore, context, tangibleCode) {\r\n\t\tvar minimumAmount = Number(tangibleStore.getMinimumAmount(context, tangibleCode)) || 0;\r\n\t\tvar selectedAmount = Number(tangibleStore.getSelectedAmount(context, tangibleCode)) || 0;\r\n\t\tvar storeSubaccountAmounts = tangibleStore.get(\"subaccountAmounts\");\r\n\t\tvar subaccountParsed = storeSubaccountAmounts && JSON.parse(JSON.stringify(storeSubaccountAmounts));\r\n\t\tvar subaccountAmounts = subaccountParsed && Object.keys(subaccountParsed).map((key) => {\r\n\t\t\treturn [subaccountParsed[key]];\r\n\t\t});\r\n\r\n\t\tvar subaccountTotal = 0;\r\n\r\n\t\tif (subaccountAmounts) {\r\n\t\t\tsubaccountAmounts.forEach(value => {\r\n\t\t\t\tsubaccountTotal = Number(value) + subaccountTotal;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar totalAmount = selectedAmount + subaccountTotal;\r\n\r\n\t\tvar errorMessages = [];\r\n\t\tif (totalAmount < minimumAmount) {\r\n\t\t\terrorMessages.push(tangibleStore.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.CHECKOUT_MESSAGES,\r\n\t\t\t\tWizardConstants.CHECKOUT_MESSAGE_FIELDS.GIFT_AMOUNT_INSUFFICIENT,\r\n\t\t\t\t{ formattedAmount: ActionsHelper.formatAmount(minimumAmount, true) }\r\n\t\t\t));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\terrorMessages,\r\n\t\t\tisValid: !errorMessages.length\r\n\t\t};\r\n\t}\r\n};\r\n\r\nmodule.exports = GiftArrayValidator;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nclass BaseSearchPaging extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar currentPageNumber = props.currentPageNumber;\r\n\t\tvar pageSize = props.pageSize || 10;\r\n\t\tvar totalCount = props.totalCount;\r\n\r\n\t\tif (props.isDesignMode) {\r\n\t\t\tcurrentPageNumber = 10;\r\n\t\t\ttotalCount = 20 * pageSize;\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tcurrentPageNumber,\r\n\t\t\tpageSize,\r\n\t\t\ttotalCount\r\n\t\t};\r\n\t}\r\n\r\n\tsetupRelatedComponents() {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tvar lastPage = Math.ceil(this.state.totalCount / this.state.pageSize);\r\n\r\n\t\tvar $searchPaging = $(ReactDOM.findDOMNode(this)).parent(); // The parent is the mount point\r\n\t\tvar $previousButton = $searchPaging.siblings(this.props.previousPageSelector);\r\n\t\tvar $nextButton = $searchPaging.siblings(this.props.nextPageSelector);\r\n\r\n\t\tif (currentPage > 1) {\r\n\t\t\t$previousButton.removeClass(\"disabled\");\r\n\t\t\t$previousButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t\t$previousButton.click(this.handlePageChange.bind(this, currentPage - 1));\r\n\t\t} else {\r\n\t\t\t$previousButton.addClass(\"disabled\");\r\n\t\t\t$previousButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t}\r\n\r\n\t\tif (currentPage < lastPage) {\r\n\t\t\t$nextButton.removeClass(\"disabled\");\r\n\t\t\t$nextButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t\t$nextButton.click(this.handlePageChange.bind(this, currentPage + 1));\r\n\t\t} else {\r\n\t\t\t$nextButton.addClass(\"disabled\");\r\n\t\t\t$nextButton.prop(\"onclick\", null).off(\"click\");\r\n\t\t}\r\n\t}\r\n\r\n\thandlePageChange(pageNumber, event) {\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tif (currentPage === pageNumber) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tif (event && !event.ctrlKey && !event.metaKey) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.setState({ currentPageNumber: pageNumber }, this.setupRelatedComponents);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.props.onPageChange(pageNumber);\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.setupRelatedComponents();\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit JavaScript\\searchComponents\\expose.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this.props.thisArg || this);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit JavaScript\\searchComponents\\expose.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this.props.thisArg || this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar pageSize = this.state.pageSize;\r\n\t\tvar currentPage = this.state.currentPageNumber;\r\n\t\tvar numberPagesToShow = this.props.numberPagesToShow;\r\n\t\tvar lastPage = Math.ceil(this.state.totalCount / pageSize);\r\n\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\tnumberPagesToShow = numberPagesToShow || 3;\r\n\t\t}\r\n\r\n\t\tvar pagesToShow = [];\r\n\t\tif (lastPage < numberPagesToShow) {\r\n\t\t\tpagesToShow = Array(lastPage).fill().map((e, i) => i + 1);\r\n\t\t} else if (currentPage < numberPagesToShow) {\r\n\t\t\tpagesToShow = Array(numberPagesToShow).fill().map((e, i) => i + 1);\r\n\t\t} else {\r\n\t\t\tvar start = currentPage - Math.floor((numberPagesToShow - 1) / 2);\r\n\t\t\tif (start + numberPagesToShow > lastPage) {\r\n\t\t\t\tstart = lastPage - numberPagesToShow + 1;\r\n\t\t\t}\r\n\t\t\tpagesToShow = Array(numberPagesToShow).fill().map((e, i) => i + start);\r\n\t\t}\r\n\r\n\t\tvar includeFirstPageNumber = this.props.includeFirstPageNumber && pagesToShow.indexOf(1) === -1;\r\n\t\tvar showStartEllipses = includeFirstPageNumber && pagesToShow.indexOf(2) === -1;\r\n\t\tvar includeLastPageNumber = this.props.includeLastPageNumber && pagesToShow.indexOf(lastPage) === -1;\r\n\t\tvar showEndEllipses = includeLastPageNumber && pagesToShow.indexOf(lastPage - 1) === -1;\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName={this.props.className}\r\n\t\t\t\tdata-react-component-name={this.props.dataReactComponentName}\r\n\t\t\t\tdata-react-component-category={this.props.dataReactComponentCategory}\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t{includeFirstPageNumber &&\r\n\t\t\t\t\t<span className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === 1 })} data-component={`${this.props.dataReactComponentName}.page`} onClick={this.handlePageChange.bind(this, 1)}>\r\n\t\t\t\t\t\t{1}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{showStartEllipses &&\r\n\t\t\t\t\t<span className=\"paging-item ellipses\" data-component={`${this.props.dataReactComponentName}.pageEllipses`}>\r\n\t\t\t\t\t\t...\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{pagesToShow.map((pageNumber) =>\r\n\t\t\t\t\t<span key={pageNumber} className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === pageNumber })} data-component={`${this.props.dataReactComponentName}.page`} onClick={this.handlePageChange.bind(this, pageNumber)}>\r\n\t\t\t\t\t\t{pageNumber}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t)}\r\n\t\t\t\t{showEndEllipses &&\r\n\t\t\t\t\t<span className=\"paging-item ellipses\" data-component={`${this.props.dataReactComponentName}.pageEllipses`}>\r\n\t\t\t\t\t\t...\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t{includeLastPageNumber &&\r\n\t\t\t\t\t<span className={classNames(\"paging-item page-number\", { \"current-page\": currentPage === lastPage })} data-component={`${this.props.dataReactComponentName}.page`} onClick={this.handlePageChange.bind(this, lastPage)}>\r\n\t\t\t\t\t\t{lastPage}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nBaseSearchPaging.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataChildOf: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\r\n\tnumberPagesToShow: PropTypes.number,\r\n\tincludeFirstPageNumber: PropTypes.bool,\r\n\tincludeLastPageNumber: PropTypes.bool,\r\n\tcurrentPageNumber: PropTypes.number,\r\n\tpageSize: PropTypes.number,\r\n\ttotalCount: PropTypes.number,\r\n\r\n\tclassName: PropTypes.string,\r\n\tdataReactComponentCategory: PropTypes.string.isRequired,\r\n\tdataReactComponentName: PropTypes.string.isRequired,\r\n\tnextPageSelector: PropTypes.string.isRequired,\r\n\tonPageChange: PropTypes.func.isRequired,\r\n\tpreviousPageSelector: PropTypes.string.isRequired,\r\n\tthisArg: PropTypes.object\r\n};\r\n\r\nmodule.exports = BaseSearchPaging;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar BaseSearchPaging = require(\"./BaseSearchPaging\");\r\n\r\nclass EventSearchPaging extends React.Component {\r\n\thandlePageChange(pageNumber) {\r\n\t\tvar $searchResultsComponent = $(ReactDOM.findDOMNode(this)).closest(\"[data-component='eventSearchResults']\");\r\n\t\twindow.EventSearchActions.performEventSearch($searchResultsComponent.attr(\"id\"), pageNumber);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<BaseSearchPaging\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tclassName=\"event-search-paging\"\r\n\t\t\t\tpreviousPageSelector=\"[data-component='eventSearchResults.populated.paging.previousPage']\"\r\n\t\t\t\tnextPageSelector=\"[data-component='eventSearchResults.populated.paging.nextPage']\"\r\n\t\t\t\tonPageChange={this.handlePageChange.bind(this)}\r\n\t\t\t\tdataReactComponentName=\"EventSearchPaging\"\r\n\t\t\t\tdataReactComponentCategory=\"EventSearchPagingComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nEventSearchPaging.propTypes = {\r\n\tcurrentPageNumber: PropTypes.number,\r\n\tdataChildOf: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tincludeFirstPageNumber: PropTypes.bool,\r\n\tincludeLastPageNumber: PropTypes.bool,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tisDesignMode: PropTypes.bool,\r\n\tnumberPagesToShow: PropTypes.number,\r\n\tpageSize: PropTypes.number,\r\n\ttheme: PropTypes.string,\r\n\ttotalCount: PropTypes.number\r\n};\r\n\r\nmodule.exports = EventSearchPaging;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar BaseSearchPaging = require(\"./BaseSearchPaging\");\r\n\r\nclass SearchPaging extends React.Component {\r\n\thandlePageChange(pageNumber) {\r\n\t\tvar $searchResultsComponent = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=searchResults]\");\r\n\t\tsearch($searchResultsComponent.attr(\"id\"), pageNumber);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<BaseSearchPaging\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tclassName=\"search-paging\"\r\n\t\t\t\tpreviousPageSelector={`[data-component=\"searchResults.populated.paging.previousPage\"]`}\r\n\t\t\t\tnextPageSelector={`[data-component=\"searchResults.populated.paging.nextPage\"]`}\r\n\t\t\t\tonPageChange={this.handlePageChange.bind(this)}\r\n\t\t\t\tdataReactComponentName=\"SearchPaging\"\r\n\t\t\t\tdataReactComponentCategory=\"SearchPagingComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nSearchPaging.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataChildOf: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\r\n\tnumberPagesToShow: PropTypes.number,\r\n\tincludeFirstPageNumber: PropTypes.bool,\r\n\tincludeLastPageNumber: PropTypes.bool,\r\n\tcurrentPageNumber: PropTypes.number,\r\n\tpageSize: PropTypes.number,\r\n\ttotalCount: PropTypes.number\r\n};\r\n\r\nmodule.exports = SearchPaging;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nclass SearchSorting extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar selectedValue;\r\n\r\n\t\tif (props.sortType) {\r\n\t\t\tselectedValue = `${props.sortType.toUpperCase()}_${props.sortAscending ? \"true\" : \"false\"}`;\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tavailableValues: this.sortingOptions,\r\n\t\t\tselectedValue\r\n\t\t};\r\n\t}\r\n\r\n\thandleValueSelected(event) {\r\n\t\tvar currentSort = this.state.selectedValue;\r\n\r\n\t\tvar newSort = event.target.value;\r\n\r\n\t\tif (currentSort === newSort || this.props.isDesignMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar domNode = $(ReactDOM.findDOMNode(this));\r\n\t\t//For the SearchResults component\r\n\t\tvar $searchResultsComponent = domNode.closest(\"[data-component=searchResults]\");\r\n\t\tif ($searchResultsComponent.length) {\r\n\t\t\twindow.search($searchResultsComponent.attr(\"id\"), /*page*/0, /*searchText*/undefined, newSort);\r\n\t\t} else {\r\n\t\t\t//For the Category component\r\n\t\t\tvar $categoryComponent = domNode.closest(\"[data-component=category]\");\r\n\t\t\tif ($categoryComponent.length) {\r\n\t\t\t\twindow._categorySearch($categoryComponent.attr(\"id\"), /*pageNumber*/0, newSort);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetSortingOptions() {\r\n\t\tvar config = this.props.sortingConfig || {};\r\n\r\n\t\tthis.sortingOptions = this.props.reactComponentCategory === \"SearchSorting\" ? [\r\n\t\t{\r\n\t\t\tdescription: config.relevance,\r\n\t\t\tsortAscending: false,\r\n\t\t\tvalue: \"RELEVANCE\"\r\n\t\t}] : [];\r\n\r\n\t\tthis.sortingOptions = this.sortingOptions.concat([\r\n\t\t\t{\r\n\t\t\t\tdescription: config.titleAscending,\r\n\t\t\t\tsortAscending: true,\r\n\t\t\t\tvalue: \"TITLE\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tdescription: config.titleDescending,\r\n\t\t\t\tsortAscending: false,\r\n\t\t\t\tvalue: \"TITLE\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tdescription: config.startDateDescending, //Newest to Oldest\r\n\t\t\t\tsortAscending: false,\r\n\t\t\t\tvalue: \"STARTDATE\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tdescription: config.startDateAscending, //Oldest to Newest\r\n\t\t\t\tsortAscending: true,\r\n\t\t\t\tvalue: \"STARTDATE\"\r\n\t\t\t}\r\n\r\n\t\t]);\r\n\r\n\t\tif (this.props.containsOnlyProducts || this.props.isDesignMode) {\r\n\t\t\tthis.sortingOptions = this.sortingOptions.concat([\r\n\t\t\t\t{\r\n\t\t\t\t\tdescription: config.authorAscending,\r\n\t\t\t\t\tsortAscending: true,\r\n\t\t\t\t\tvalue: \"AUTHOR\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tdescription: config.authorDescending,\r\n\t\t\t\t\tsortAscending: false,\r\n\t\t\t\t\tvalue: \"AUTHOR\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tdescription: config.priceAscending,\r\n\t\t\t\t\tsortAscending: true,\r\n\t\t\t\t\tvalue: \"PRICE\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tdescription: config.priceDescending,\r\n\t\t\t\t\tsortAscending: false,\r\n\t\t\t\t\tvalue: \"PRICE\"\r\n\t\t\t\t}\r\n\t\t\t]);\r\n\t\t}\r\n\r\n\t\treturn this.sortingOptions;\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit JavaScript\\searchComponents\\expose.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentLoaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tif (this.props.isDesignMode) {\r\n\t\t\t//To add or remove react components from window, edit JavaScript\\searchComponents\\expose.jsx\r\n\t\t\tparent.window.ComponentActions.childComponentUnloaded(this);\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar sortingOptions = this.getSortingOptions();\r\n\t\tvar availableValues = sortingOptions || this.state.availableValues || [];\r\n\r\n\t\t// if (this.props.isDesignMode) {\r\n\t\t// \tnumberPagesToShow = numberPagesToShow || 3;\r\n\t\t// }\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName=\"search-sorting\"\r\n\t\t\t\tdata-react-component-name=\"SearchSorting\"\r\n\t\t\t\tdata-react-component-category={this.props.reactComponentCategory}\r\n\t\t\t\tdata-component-id={this.props.dataComponentId}\r\n\t\t\t\tdata-nested-id={this.props.dataNestedId}\r\n\t\t\t\tdata-repeated-id={this.props.dataRepeatedId}\r\n\t\t\t\tdata-theme={+this.props.theme ? this.props.theme : undefined}\r\n\t\t\t\tdata-custom={this.props.isCustomTheme || null}\r\n\t\t\t\tdata-child-of={this.props.dataChildOf}\r\n\t\t\t>\r\n\t\t\t\t<select\r\n\t\t\t\t\tclassName={classNames(\"form-control\", \"search-sorting-selector\")}\r\n\t\t\t\t\tstyle={this.props.isDesignMode ? {\"pointerEvents\": \"none\"} : undefined}\r\n\t\t\t\t\tdata-override-classes={this.props.childClass}\r\n\t\t\t\t\tdisabled={this.state.disabled || (!this.props.isDesignMode && (!availableValues || !availableValues.length))}\r\n\t\t\t\t\tname={this.props.selectNameAttribute}\r\n\t\t\t\t\tonChange={this.handleValueSelected.bind(this)}\r\n\t\t\t\t\tvalue={this.state.selectedValue}\r\n\t\t\t\t>\r\n\t\t\t\t\t<option value=\"\"></option>\r\n\t\t\t\t\t{availableValues && availableValues.map((availableValue) => {\r\n\t\t\t\t\t\tvar value = `${availableValue.value}_${availableValue.sortAscending.toString()}`;\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<option className={this.props.optionsClassName} key={value} value={value}>\r\n\t\t\t\t\t\t\t\t{availableValue.description}\r\n\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nSearchSorting.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataChildOf: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\treactComponentCategory: PropTypes.string,\r\n\tsortingConfig: PropTypes.object,\r\n\tsortType: PropTypes.string,\r\n\tsortAscending: PropTypes.bool,\r\n\tcontainsOnlyProducts: PropTypes.bool\r\n};\r\n\r\nmodule.exports = SearchSorting;\r\n","\"use strict\";\r\n\r\nvar PropTypes = require(\"prop-types\");\r\n\r\nvar BaseSearchPaging = require(\"./BaseSearchPaging\");\r\n\r\nclass SponsorshipSearchPaging extends React.Component {\r\n\thandlePageChange(pageNumber) {\r\n\t\tvar $searchResultsComponent = $(ReactDOM.findDOMNode(this)).closest(\"[data-component=sponsorshipSearchResults]\");\r\n\t\twindow.SponsorshipSearchHelper.performSponsorshipSearch($searchResultsComponent.attr(\"id\"), pageNumber);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<BaseSearchPaging\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tthisArg={this}\r\n\t\t\t\tclassName=\"sponsorship-search-paging\"\r\n\t\t\t\tpreviousPageSelector={`[data-component=\"sponsorshipSearchResults.populated.paging.previousPage\"]`}\r\n\t\t\t\tnextPageSelector={`[data-component=\"sponsorshipSearchResults.populated.paging.nextPage\"]`}\r\n\t\t\t\tonPageChange={this.handlePageChange.bind(this)}\r\n\t\t\t\tdataReactComponentName=\"SponsorshipSearchPaging\"\r\n\t\t\t\tdataReactComponentCategory=\"SponsorshipSearchPagingComponents\"\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nSponsorshipSearchPaging.propTypes = {\r\n\tisDesignMode: PropTypes.bool,\r\n\tdataChildOf: PropTypes.string,\r\n\ttheme: PropTypes.string,\r\n\tisCustomTheme: PropTypes.bool,\r\n\tdataRepeatedId: PropTypes.string,\r\n\tdataComponentId: PropTypes.string,\r\n\tdataNestedId: PropTypes.string,\r\n\r\n\tnumberPagesToShow: PropTypes.number,\r\n\tincludeFirstPageNumber: PropTypes.bool,\r\n\tincludeLastPageNumber: PropTypes.bool,\r\n\tcurrentPageNumber: PropTypes.number,\r\n\tpageSize: PropTypes.number,\r\n\ttotalCount: PropTypes.number\r\n};\r\n\r\nmodule.exports = SponsorshipSearchPaging;\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\n\r\nLogger.useDefaults({\r\n\tdefaultLevel: Logger.ERROR\r\n});\r\n\r\nmodule.exports = {\r\n\tEventSearchPaging: require(\"./EventSearchPaging\"),\r\n\tSearchActions: require(\"../actions/SearchActions\"),\r\n\tSearchPaging: require(\"./SearchPaging\"),\r\n\tSearchSorting: require(\"./SearchSorting\"),\r\n\tSpinner: require(\"../client/Spinner\"),\r\n\tSponsorshipSearchHelper: require(\"../sponsorshipComponents/SponsorshipSearchHelper\"),\r\n\tSponsorshipSearchPaging: require(\"./SponsorshipSearchPaging\")\r\n};\r\n","\"use strict\";\r\n\r\nvar Logger = require(\"js-logger\");\r\nvar LoggerInstance = Logger.get(\"ApiHelper\");\r\n\r\n// ApiHelper\r\nmodule.exports = {\r\n\tencodeResourceIdForApi: function (value) {\r\n\t\t//Periods need to be encoded for the WebAPI, because when the WebAPI sees a period, it thinks a file is being requested.\r\n\t\t//\t%2E is a period, but we are double encoding it, as the WebAPI double decodes\r\n\t\treturn encodeURIComponent(encodeURIComponent(value)).replace(/\\./g, \"%252E\");\r\n\t},\r\n\r\n\tgetUrlParameter: function (name, url) {\r\n\t\tif (!url) {\r\n\t\t\turl = window.location.href\r\n\t\t}\r\n\r\n\t\tname = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n\r\n\t\tvar regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);\r\n\t\tvar results = regex.exec(url);\r\n\r\n\t\tif (!results) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (!results[2]) {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\treturn decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n\t},\r\n\r\n\t// Recursivly walk an object's key/value pairs and convert all empty string values to null\r\n\tconvertEmptyValuesToNull: function (objectToModify) {\r\n\t\tif (!objectToModify || typeof objectToModify !== \"object\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tObject.keys(objectToModify).forEach(key => {\r\n\t\t\tif (typeof objectToModify[key] === \"object\") {\r\n\t\t\t\tthis.convertEmptyValuesToNull(objectToModify[key]);\r\n\t\t\t} else {\r\n\t\t\t\tif (objectToModify[key] === \"\") {\r\n\t\t\t\t\tobjectToModify[key] = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t// Will convert something like {\"firstName\": \"User\", \"phone\": { \"type\": null } } to {\"firstName\": \"User\", \"phone\": null }\r\n\tconvertObjectWithAllNullPropertiesToNull: function (objectToModify) {\r\n\t\tif (!objectToModify || typeof objectToModify !== \"object\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar areAllPropertiesNull = true;\r\n\t\t//Going through each property on the model\r\n\t\tObject.keys(objectToModify).forEach(key => {\r\n\t\t\tvar value = objectToModify[key];\r\n\t\t\tif (typeof value === \"object\" && value) {\r\n\t\t\t\t//If we are an object, we are going to recurrsively call ourself\r\n\t\t\t\tif (this.convertObjectWithAllNullPropertiesToNull(value) !== null) {\r\n\t\t\t\t\tareAllPropertiesNull = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//All of the internal object's properties are null, so set the object to null\r\n\t\t\t\t\tobjectToModify[key] = null;\r\n\t\t\t\t}\r\n\t\t\t} else if(value !== null) {\r\n\t\t\t\tareAllPropertiesNull = false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//If all of our properties are null, go ahead and return null (the caller can decide whether to use the return or not); otherwise, return objectToModify\r\n\t\treturn areAllPropertiesNull ? null : objectToModify;\r\n\t},\r\n\r\n\tdeleteUndefinedValues: function (obj, includeNulls) {\r\n\t\t//Delete values that are not set\r\n\t\tObject.keys(obj).forEach(key => {\r\n\t\t\tif (obj[key] === undefined || (includeNulls && obj[key] === null)) {\r\n\t\t\t\tdelete obj[key];\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn obj;\r\n\t},\r\n\r\n\tdisplayErrorMessage: function (jqXHR, fallbackMessage) {\r\n\t\t// TODO - US#5036 Enhance error handling for ASO account creation messages.\r\n\t\tLoggerInstance.error(jqXHR);\r\n\t\tif (jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.message) {\r\n\t\t\tBootstrapPrompt.alert(jqXHR.responseJSON.message);\r\n\t\t} else {\r\n\t\t\tBootstrapPrompt.alert(fallbackMessage || window.GENERAL_MESSAGES.GENERAL_ERROR_MESSAGE);\r\n\t\t}\r\n\t},\r\n\r\n\tgetFileInfo: function (contentDisposition, defaultFileName) {\r\n\t\t// Get the file name from the content disposition response header.\r\n\t\tvar captureGroups = contentDisposition.match(/filename\\*?=['\"]?(?:UTF-\\d['\"]*)?([^;\\r\\n\"']*)['\"]?;?/);\r\n\t\tvar fileName = captureGroups && captureGroups.length > 1 && captureGroups[1] || defaultFileName;\r\n\r\n\t\tvar mimeType = \"application/octet-stream\";\r\n\t\tvar fileExtension = fileName.split(\".\").pop();\r\n\t\tswitch (fileExtension) {\r\n\t\t\tcase \"pdf\":\r\n\t\t\t\tmimeType = \"application/pdf\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"txt\":\r\n\t\t\t\tmimeType = \"text/plain\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"csv\":\r\n\t\t\t\tmimeType = \"text/csv\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"xls\":\r\n\t\t\t\tmimeType = \"application/vnd.ms-excel\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"xlsx\":\r\n\t\t\t\tmimeType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"doc\":\r\n\t\t\t\tmimeType = \"application/msword\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"docx\":\r\n\t\t\t\tmimeType = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"ppt\":\r\n\t\t\t\tmimeType = \"application/vnd.ms-powerpoint\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"pptx\":\r\n\t\t\t\tmimeType = \"application/vnd.openxmlformats-officedocument.presentationml.presentation\";\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tfileName,\r\n\t\t\tmimeType\r\n\t\t};\r\n\t},\r\n\r\n\tlogErrorAndReturnRejectedDeferred: function (logger, errorMessage, deferred) {\r\n\t\treturn this._logAndReturnDeferred(logger, Logger.ERROR, errorMessage, deferred, \"reject\");\r\n\t},\r\n\r\n\tlogErrorAndReturnResolvedDeferred: function(logger, errorMessage, deferred) {\r\n\t\treturn this._logAndReturnDeferred(logger, Logger.ERROR, errorMessage, deferred, \"resolve\");\r\n\t},\r\n\r\n\tlogDebugAndReturnResolvedDeferred: function (logger, message, deferred) {\r\n\t\treturn this._logAndReturnDeferred(logger, Logger.DEBUG, message, deferred, \"resolve\");\r\n\t},\r\n\r\n\t_logAndReturnDeferred: function (logger, loggingLevel, message, deferred, returnType) {\r\n\t\tdeferred = deferred || new $.Deferred();\r\n\r\n\t\tlogger.invoke(loggingLevel, message);\r\n\r\n\t\tswitch (returnType) {\r\n\t\t\tcase \"reject\":\r\n\t\t\t\tdeferred.reject(message);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"resolve\": {\r\n\t\t\t\tdeferred.resolve(message);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn deferred;\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"BootstrapPrompt\");\r\n\r\nvar Wizard = require(\"./Wizard\");\r\n\r\nvar BootstrapPrompt = {\r\n\talert: function (options, callback) {\r\n\t\tvar defaultOptions = {\r\n\t\t\ttype: BootstrapDialog.TYPE_DANGER,\r\n\t\t\ttitle: window.MODAL_TITLES.ERROR,\r\n\t\t\tonshown: (dialogRef) => {\r\n\t\t\t\tdialogRef.$modalFooter.find(\"button\").first().focus();\r\n\t\t\t},\r\n\t\t\tclosable: true,\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\t\tif (typeof options !== \"object\") {\r\n\t\t\toptions = { message: options };\r\n\t\t}\r\n\t\toptions = Object.assign({}, this._getPublishedPageButtonLabels(), defaultOptions, options);\r\n\t\tBootstrapDialog.alert(options);\r\n\t},\r\n\r\n\tsuccess: function (message, callback) {\r\n\t\tBootstrapDialog.alert({\r\n\t\t\ttype: BootstrapDialog.TYPE_SUCCESS,\r\n\t\t\ttitle: window.MODAL_TITLES.SUCCESS,\r\n\t\t\tonshown: (dialogRef) => {\r\n\t\t\t\tdialogRef.$modalFooter.find(\"button\").first().focus();\r\n\t\t\t},\r\n\t\t\tclosable: true,\r\n\t\t\tmessage,\r\n\t\t\tcallback\r\n\t\t});\r\n\t},\r\n\r\n\tconfirm: function (options, callback) {\r\n\t\tvar defaultOptions = {\r\n\t\t\ttype: BootstrapDialog.TYPE_PRIMARY,\r\n\t\t\ttitle: window.MODAL_TITLES.INFORMATION,\r\n\t\t\tonshown: (dialogRef) => {\r\n\t\t\t\tdialogRef.$modalFooter.find(\"button\").first().focus();\r\n\t\t\t},\r\n\t\t\tclosable: false,\r\n\t\t\tcallback: callback,\r\n\t\t\tbtnOKClass: \"btn btn-success\"\r\n\t\t};\r\n\r\n\t\tif (typeof options !== \"object\") {\r\n\t\t\toptions = { message: options };\r\n\t\t}\r\n\t\toptions = Object.assign({}, this._getPublishedPageButtonLabels(), defaultOptions, options);\r\n\t\tBootstrapDialog.confirm(options);\r\n\t},\r\n\r\n\tshow: function (options, callback) {\r\n\t\tvar defaultOptions = {\r\n\t\t\ttype: BootstrapDialog.TYPE_PRIMARY,\r\n\t\t\ttitle: window.MODAL_TITLES.INFORMATION,\r\n\t\t\tonshown: (dialogRef) => {\r\n\t\t\t\tdialogRef.$modalFooter.find(\"button\").first().focus();\r\n\t\t\t},\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\r\n\t\t// We're not passing the published page button labels into this call because a) .show is only used\r\n\t\t// in designer pages, not published pages and b) .show requires a button array to be passed in as\r\n\t\t// options and will ignore all the values that we pass in.\r\n\t\toptions = Object.assign({}, defaultOptions, options);\r\n\t\tBootstrapDialog.show(options);\r\n\t},\r\n\r\n\tprompt: function (options, callback) {\r\n\t\toptions = options || {};\r\n\t\tvar message = options.message || \"\";\r\n\t\tvar placeholder = options.placeholder || \"\";\r\n\t\tvar publishedPageButtonLabels = this._getPublishedPageButtonLabels();\r\n\r\n\t\tBootstrapDialog.show({\r\n\t\t\tmessage: `${message} <input type=\"text\" class=\"dialog-input form-control\" value=\"${placeholder}\">`,\r\n\t\t\ttype: BootstrapDialog.TYPE_PRIMARY,\r\n\t\t\ttitle: window.MODAL_TITLES.INFORMATION,\r\n\t\t\tonshown: function (dialogRef) {\r\n\t\t\t\tvar el = $(\".bootstrap-dialog-body input:text.dialog-input.form-control\").get(0);\r\n\t\t\t\tvar elemLen = el.value.length;\r\n\r\n\t\t\t\tel.selectionStart = elemLen;\r\n\t\t\t\tel.selectionEnd = elemLen;\r\n\t\t\t\tel.focus();\r\n\t\t\t},\r\n\t\t\tbuttons: [{\r\n\t\t\t\tid: \"submit\",\r\n\t\t\t\tlabel: publishedPageButtonLabels.btnOKLabel || \"OK\",\r\n\t\t\t\taction: (dialogRef) => {\r\n\t\t\t\t\tvar value = $.trim(dialogRef.getModalBody().find(\"input\").val());\r\n\r\n\t\t\t\t\tcallback(value);\r\n\r\n\t\t\t\t\tdialogRef.close();\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\tid: \"cancelButton\",\r\n\t\t\t\tlabel: publishedPageButtonLabels.btnCancelLabel || \"Cancel\",\r\n\t\t\t\taction: (dialogRef) => {\r\n\t\t\t\t\tdialogRef.close();\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t});\r\n\t},\r\n\r\n\twizard: function (wizardOptions, callback) {\r\n\t\tvar questions = wizardOptions.questions;\r\n\t\tvar submitText = wizardOptions.submitText;\r\n\t\tvar cancelText = wizardOptions.cancelText;\r\n\t\tvar canSubmit = wizardOptions.canSubmit === false ? false : true; //true is the default value, so undefined must equate to true\r\n\t\tvar canCancel = wizardOptions.canCancel === false ? false : true; //true is the default value, so undefined must equate to true\r\n\t\tvar savedModel = wizardOptions.savedModel;\r\n\t\tvar initializeModelFromSavedModel = wizardOptions.initializeModelFromSavedModel;\r\n\t\tvar allowPartialSave = wizardOptions.allowPartialSave;\r\n\t\tvar WizardComponent = wizardOptions.wizardComponent || Wizard;\r\n\t\tvar title = wizardOptions.title || window.MODAL_TITLES.INFORMATION;\r\n\t\tvar dialogOptions = wizardOptions.dialogOptions;\r\n\t\tvar additionalPages = wizardOptions.additionalPages;\r\n\t\tvar cancelCallback = wizardOptions.cancelCallback;\r\n\t\tvar onInitialDataLoadFunction = wizardOptions.onInitialLoadData;\r\n\t\tvar isDelayOpen = wizardOptions.isDelayOpen; //This means we need some data from the API before we show the first form.\r\n\r\n\t\tvar handleSaveWizard = (dialogRef, model, isPartialSave) => {\r\n\t\t\tdialogRef.$modal.hide();\r\n\t\t\tif ((typeof callback === \"function\")) {\r\n\t\t\t\tcallback(model, isPartialSave);\r\n\t\t\t}\r\n\t\t\tdialogRef.close();\r\n\t\t};\r\n\r\n\t\tvar handleCloseWizard = (dialogRef) => {\r\n\t\t\tif ((typeof cancelCallback === \"function\")) {\r\n\t\t\t\tcancelCallback();\r\n\t\t\t}\r\n\t\t\tdialogRef.$modal.hide();\r\n\t\t\tdialogRef.close();\r\n\t\t};\r\n\r\n\t\tvar handleWizardClosed = (dialogRef) => {\r\n\t\t\tReactDOM.unmountComponentAtNode(dialogRef.$modalBody.find(\"#wizardMountPoint\")[0]);\r\n\t\t};\r\n\r\n\t\tvar defaultOptions = {\r\n\t\t\tmessage: (dialog) => {\r\n\t\t\t\treturn $(`<div id=\"wizardMountPoint\"></div>`);\r\n\t\t\t},\r\n\t\t\ttype: BootstrapDialog.TYPE_PRIMARY,\r\n\t\t\ttitle: title,\r\n\t\t\tonshown: (dialogRef) => {\r\n\t\t\t\tvar props = {\r\n\t\t\t\t\tparagraph: wizardOptions.paragraph,\r\n\t\t\t\t\tquestions,\r\n\t\t\t\t\tadditionalPages,\r\n\t\t\t\t\tallowPartialSave,\r\n\t\t\t\t\tsavedModel,\r\n\t\t\t\t\tinitializeModelFromSavedModel,\r\n\t\t\t\t\tisDelayOpen,\r\n\t\t\t\t\tcanSubmit,\r\n\t\t\t\t\tcanCancel,\r\n\t\t\t\t\tcancelText,\r\n\t\t\t\t\tsubmitText,\r\n\t\t\t\t\tdialog: dialogRef,\r\n\t\t\t\t\tonInitialLoadData: onInitialDataLoadFunction,\r\n\t\t\t\t\tonSave: (model, isPartialSave) => { handleSaveWizard(dialogRef, model, isPartialSave); },\r\n\t\t\t\t\tonCancel: () => { handleCloseWizard(dialogRef); }\r\n\t\t\t\t};\r\n\r\n\t\t\t\tprops = Object.assign({}, props, wizardOptions.props);\r\n\t\t\t\tReactDOM.render(React.createElement(WizardComponent, props), $(\"#wizardMountPoint\")[0]);\r\n\t\t\t},\r\n\t\t\tonhide: (dialogRef) => { handleWizardClosed(dialogRef); }\r\n\t\t};\r\n\t\tdialogOptions = Object.assign({}, defaultOptions, dialogOptions);\r\n\r\n\t\tBootstrapDialog.show(dialogOptions);\r\n\t},\r\n\r\n\t_getPublishedPageButtonLabels() {\r\n\t\tif (!window.BUTTON_LABELS) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tbtnOKLabel: window.BUTTON_LABELS.OK,\r\n\t\t\tbtnCancelLabel: window.BUTTON_LABELS.CANCEL,\r\n\t\t\tbuttonLabel: window.BUTTON_LABELS.OK,\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = BootstrapPrompt;\r\n","\"use strict\";\r\n\r\nvar ApiHelper = require(\"./ApiHelper\");\r\nvar QueryStringHelper = require(\"./QueryStringHelper\");\r\n\r\n// HistoryHelper\r\nmodule.exports = {\r\n\tgetQueryObject() {\r\n\t\tvar currentQueryString = window.location.search;\r\n\t\tif (currentQueryString) {\r\n\t\t\tcurrentQueryString = currentQueryString.substring(1);\r\n\t\t}\r\n\t\tvar currentQueryObject = QueryStringHelper.createObjectFromQueryString(currentQueryString) || {};\r\n\t\treturn currentQueryObject;\r\n\t},\r\n\r\n\thandlePopState: function (executeAction, shouldShortCircuit) {\r\n\t\t//If we have come to the page and there is no query string, we should just reload the page itself, in its starting format\r\n\t\tif (!window.location.search) {\r\n\t\t\twindow.location.reload();\r\n\t\t} else {\r\n\t\t\t//We need to reload affected components\r\n\t\t\tvar query = window.location.search;\r\n\t\t\tif (query) {\r\n\t\t\t\tquery = query.substring(1);\r\n\t\t\t\tvar currentQueryObject = QueryStringHelper.createObjectFromQueryString(query) || {};\r\n\r\n\t\t\t\tif ((typeof shouldShortCircuit === \"function\") && shouldShortCircuit(currentQueryObject)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar shouldExecute = false;\r\n\t\t\t\tvar additionalOptions = {doNotPushState: true};\r\n\t\t\t\tif (currentQueryObject.id) {\r\n\t\t\t\t\tadditionalOptions[currentQueryObject.id] = currentQueryObject;\r\n\t\t\t\t\tshouldExecute = true;\r\n\t\t\t\t} else if (currentQueryObject.c && Array.isArray(currentQueryObject.c)) {\r\n\t\t\t\t\tcurrentQueryObject.c.forEach((componentInstance) => {\r\n\t\t\t\t\t\tif (componentInstance.id) {\r\n\t\t\t\t\t\t\tadditionalOptions[componentInstance.id] = componentInstance;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tshouldExecute = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (shouldExecute) {\r\n\t\t\t\t\texecuteAction(currentQueryObject, additionalOptions);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tpurgeHistoryState: function() {\r\n\t\tvar currentQueryObject = this.getQueryObject();\r\n\r\n\t\t//c should be an array. If it is not, something is wrong, justt delete it.\r\n\t\tif (currentQueryObject.c && !Array.isArray(currentQueryObject.c)) {\r\n\t\t\tdelete currentQueryObject.c;\r\n\t\t}\r\n\r\n\t\tvar queryStringAltered = false;\r\n\t\tif (!currentQueryObject.c) {\r\n\t\t\t//This means we do not have multiple, just have the one\r\n\t\t\tif (!$(`[id=\"${currentQueryObject.id}\"]`).length) {\r\n\t\t\t\t//And it is not on the page\r\n\t\t\t\t//\tDelete all the properties that we set.\r\n\t\t\t\tdelete currentQueryObject.id;\r\n\t\t\t\tdelete currentQueryObject.limit;\r\n\t\t\t\tdelete currentQueryObject.tangibleTypes;\r\n\t\t\t\tdelete currentQueryObject.offset;\r\n\t\t\t\tdelete currentQueryObject.sort;\r\n\t\t\t\tdelete currentQueryObject.ascending;\r\n\t\t\t\tqueryStringAltered = true;\r\n\t\t\t}\r\n\t\t\t//Otherwise, we do not have it in the history\r\n\t\t} else {\r\n\t\t\t//Check if it is in the c array. If so, delete it\r\n\t\t\tfor (var index = 0; index < currentQueryObject.c.length; index++) {\r\n\t\t\t\tif (!$(`[id=\"${currentQueryObject.c[index].id}\"]`).length) {\r\n\t\t\t\t\t//We found one that is not on the page\r\n\t\t\t\t\tcurrentQueryObject.c.splice(index, 1);\r\n\t\t\t\t\tqueryStringAltered = true;\r\n\t\t\t\t\tindex--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (currentQueryObject.c && currentQueryObject.c.length === 1) {\r\n\t\t\t//We just have one now, so we can remove the 'c' notation\r\n\t\t\tcurrentQueryObject = currentQueryObject.c[0];\r\n\t\t}\r\n\r\n\t\t//We are replacing instead of pushing a new one because the pushing for the paging or sorting action would have already happened\r\n\t\t//\tWe are just cleaning up, if necessary.\r\n\t\tif (queryStringAltered) {\r\n\t\t\thistory.replaceState(currentQueryObject, \"\", `?${QueryStringHelper.createQueryString(currentQueryObject)}`);\r\n\t\t}\r\n\t},\r\n\r\n\treplaceHistoryState: function(newQueryObject, title) {\r\n\t\thistory.replaceState(newQueryObject, title || \"\", `?${QueryStringHelper.createQueryString(newQueryObject)}`);\r\n\t},\r\n\r\n\tupdateHistoryStateAfterLoad: function (newQueryObject, updateId, afterCreateObjectLogic) {\r\n\t\tnewQueryObject = ApiHelper.deleteUndefinedValues(newQueryObject || {});\r\n\r\n\t\tvar currentQueryObject = this.getQueryObject();\r\n\r\n\t\tif ((typeof afterCreateObjectLogic === \"function\")) {\r\n\t\t\tafterCreateObjectLogic(currentQueryObject);\r\n\t\t}\r\n\r\n\t\t//c should be an array. If it is not, something is wrong, just delete it.\r\n\t\tif (currentQueryObject.c && !Array.isArray(currentQueryObject.c)) {\r\n\t\t\tdelete currentQueryObject.c;\r\n\t\t}\r\n\r\n\t\tif ((!currentQueryObject.id && !currentQueryObject.c) || currentQueryObject.id === newQueryObject.id) {\r\n\t\t\t//If we do not already have a component history or it is the same as the one we have\r\n\t\t\tObject.assign(currentQueryObject, newQueryObject);\r\n\t\t} else if (currentQueryObject.id && !currentQueryObject.c) {\r\n\t\t\t//We have one component history, but need to add a second one. So go ahead and create a list named \"c\" (short name for constituent browser) and add both histories to it.\r\n\t\t\tcurrentQueryObject.c = [];\r\n\t\t\tcurrentQueryObject.c.push(ApiHelper.deleteUndefinedValues({\r\n\t\t\t\tascending: currentQueryObject.ascending,\r\n\t\t\t\tid: currentQueryObject.id,\r\n\t\t\t\toffset: currentQueryObject.offset,\r\n\t\t\t\tsearchId: currentQueryObject.searchId, //Used for sponsorshipSearch\r\n\t\t\t\tsort: currentQueryObject.sort\r\n\t\t\t}));\r\n\t\t\tdelete currentQueryObject.id;\r\n\t\t\tdelete currentQueryObject.limit;\r\n\t\t\tdelete currentQueryObject.tangibleTypes;\r\n\t\t\tdelete currentQueryObject.offset;\r\n\t\t\tdelete currentQueryObject.sort;\r\n\t\t\tdelete currentQueryObject.ascending;\r\n\t\t\tdelete currentQueryObject.searchId; //Used for sponsorshipSearch\r\n\t\t\tcurrentQueryObject.c.push(newQueryObject);\r\n\t\t} else if (currentQueryObject.c) {\r\n\t\t\t//If we already have it, just replace it.\r\n\t\t\tvar foundItem = false;\r\n\t\t\tfor (var index = 0; index < currentQueryObject.c.length; index++) {\r\n\t\t\t\tif (currentQueryObject.c[index].id === newQueryObject.id) {\r\n\t\t\t\t\t//We found the same one\r\n\t\t\t\t\tcurrentQueryObject.c[index] = newQueryObject;\r\n\t\t\t\t\tfoundItem = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!foundItem) {\r\n\t\t\t\tcurrentQueryObject.c.push(newQueryObject);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (window.lastUpdateId !== updateId) {\r\n\t\t\thistory.pushState(currentQueryObject, \"\", `?${QueryStringHelper.createQueryString(currentQueryObject)}`);\r\n\t\t} else {\r\n\t\t\t//We are replacing if we have more than one searchResults component on the page. When both results come back, we do not want to add multiple history states.\r\n\t\t\thistory.replaceState(currentQueryObject, \"\", `?${QueryStringHelper.createQueryString(currentQueryObject)}`);\r\n\t\t}\r\n\t\twindow.lastUpdateId = updateId;\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\n// HtmlHelper\r\nmodule.exports = {\r\n\taddIdToDataComponents: function($selector) {\r\n\t\tvar $body = $(\"body\");\r\n\t\t$selector = $selector || $(\"body\");\r\n\t\t$selector.find(\"[data-component]:not([id])\").addBack(\"[data-component]:not([id])\").each((index, element) => {\r\n\t\t\tvar newId = this.getId($body);\r\n\t\t\telement.setAttribute(\"id\", newId);\r\n\t\t});\r\n\t},\r\n\r\n\t//random id generator - DDC\r\n\tgetId: function ($contents, min, max, usage) {\r\n\t\t// Usage parameter is used to determine if the id is currently in use on the page\r\n\t\tusage = usage || \"#{0}\";\r\n\t\tvar possibleLetters = \"abcdefghijklmnopqrstuvwxyz\";\r\n\t\tvar letter,\r\n\t\t\tnumber,\r\n\t\t\tid;\r\n\r\n\t\tmin = !min && min !== 0 ? 0 : min;\r\n\t\tmax = !max && max !== 0 ? 100000 : max;\r\n\r\n\t\t//To ensure uniqueness, keep generating random ids until a unique one is genterated.\r\n\t\t//This should execute only once in the vast majority of cases.\r\n\t\tdo {\r\n\t\t\tnumber = Math.floor(Math.random() * (max - min + 1)) + min;\r\n\t\t\tletter = possibleLetters.charAt(Math.floor(Math.random() * possibleLetters.length));\r\n\t\t\tid = `${letter}${number}`;\r\n\t\t} while ($contents.find(usage.replace(\"{0}\", id)).length > 0);\r\n\r\n\t\treturn id;\r\n\t},\r\n\r\n\tsafeClassName: function (name) {\r\n\t\tname = name.replace(/[^a-z0-9]/g, (match, offset, original) => {\r\n\t\t\tvar current = match.charCodeAt(0);\r\n\r\n\t\t\t// Replace spaces with _\r\n\t\t\tif (current == 32) return \"_\";\r\n\r\n\t\t\t// Replace upper case with lower case\r\n\t\t\tif (current >= 65 && current <= 90) {\r\n\t\t\t\tif (offset > 0) {\r\n\t\t\t\t\t// If the previous character was lowercase, replace upper with _lower\r\n\t\t\t\t\tvar previousCharacter = original[offset - 1].charCodeAt(0);\r\n\t\t\t\t\tif (previousCharacter >= 97 && previousCharacter <= 122) {\r\n\t\t\t\t\t\treturn \"_\" + match.toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn match.toLowerCase();\r\n\t\t\t}\r\n\r\n\t\t\t// Replace special characters with hex value\r\n\t\t\treturn \"__\" + (\"000\" + current.toString(16)).slice(-4);\r\n\t\t});\r\n\r\n\t\t// Make sure first character is _\r\n\t\tif (name[0] !== \"_\") name = \"_\" + name;\r\n\t\treturn name;\r\n\t},\r\n\r\n\tsetUniqueFormId: function($form, newId) {\r\n\t\tif (!$form || !newId) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar $submitButton = $form.find(\"[data-component='submitButton']\");\r\n\r\n\t\t$form.attr(\"id\", newId);\r\n\t\t$submitButton.attr(\"form\", newId);\r\n\t},\r\n\r\n\tfocusAndSelectFirstField: function($parnet) {\r\n\t\t$parnet.find(\"input, select, textarea, button\").first().focus().select();\r\n\t},\r\n\r\n\tdeleteChildOfColumnAndPromoteColumnChildren: function($itemToDelete) {\r\n\t\tvar $currentColumn = $itemToDelete.parent();\r\n\t\tvar $currentRow = $currentColumn.parent();\r\n\t\tvar $previousColumn = null;\r\n\r\n\t\t//Remove the item to delete\r\n\t\t$itemToDelete.remove();\r\n\r\n\t\t//Then move all columns after $itemToDelete in the row to previous column placement\r\n\t\twhile ($currentColumn.next().length) {\r\n\t\t\t$previousColumn = $currentColumn;\r\n\t\t\t$currentColumn = $currentColumn.next();\r\n\t\t\t$previousColumn.append($currentColumn.children());\r\n\t\t}\r\n\r\n\t\twhile ($currentRow.next().length) {\r\n\t\t\t//Go to the next row\r\n\t\t\t$currentRow = $currentRow.next();\r\n\t\t\t$previousColumn = $currentColumn;\r\n\t\t\t$currentColumn = $currentRow.children().first();\r\n\r\n\t\t\t//Move from next row, first column to previous row, last column\r\n\t\t\tif ($currentColumn) {\r\n\t\t\t\t$previousColumn.append($currentColumn.children());\r\n\t\t\t}\r\n\r\n\t\t\t//Go through all additional columns on the row to move columns to previous\r\n\t\t\twhile ($currentColumn.next().length) {\r\n\t\t\t\t$previousColumn = $currentColumn;\r\n\t\t\t\t$currentColumn = $currentColumn.next();\r\n\t\t\t\t$previousColumn.append($currentColumn.children());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Delete the last column\r\n\t\tif ($currentColumn.length && !$currentColumn.children(\"div\").length) {\r\n\t\t\t$currentColumn.remove();\r\n\t\t}\r\n\r\n\t\t//If there are no more columns on the row, delete the last row\r\n\t\tif ($currentRow.length && !$currentRow.children(\"div\").length) {\r\n\t\t\t$currentRow.remove();\r\n\t\t}\r\n\t},\r\n\r\n\taddColumnToLastOrNewRow: function ($itemToAdd, $rowContainer) {\r\n\t\tvar supportedColCount = 0;\r\n\r\n\t\t// Get last row in the wrapper\r\n\t\tvar $lastRow = $rowContainer.children(\"div[class='row']\").last();\r\n\r\n\t\tif ($rowContainer.attr(\"data-chunk\")) {\r\n\t\t\t// Pull number of supported columns from the data-chunk attribute if it exists.\r\n\t\t\tsupportedColCount = $rowContainer.attr(\"data-chunk\");\r\n\t\t} else {\r\n\t\t\t// Get column size from the attribute\r\n\t\t\tvar $col = $lastRow.find(\"div[class^='col-']\").first();\r\n\t\t\tvar className = $col.attr(\"class\");\r\n\t\t\tvar size = className.replace(/col-(xs|sm|md|lg)-/, \"\");\r\n\r\n\t\t\t// Check to see if we have a full set of columns\r\n\t\t\tsupportedColCount = 12 / size;\r\n\t\t}\r\n\r\n\t\tvar actualColCount = $lastRow.children(\"div[class^='col-']\").length;\r\n\t\tif (actualColCount < supportedColCount) {\r\n\t\t\t// We can append to this row\r\n\t\t\t$lastRow.append($itemToAdd);\r\n\t\t} else {\r\n\t\t\t// We need to add a new row\r\n\t\t\tvar $newRow = $(\"<div></div>\")\r\n\t\t\t\t.addClass(\"row\")\r\n\t\t\t\t.attr(\"id\", this.getId($(\"body\")))\r\n\t\t\t\t.append($itemToAdd);\r\n\t\t\t$rowContainer.append($newRow);\r\n\t\t}\r\n\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"InputHelper\");\r\n\r\nvar HtmlHelper = require(\"./HtmlHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\n// InputHelper\r\nmodule.exports = {\r\n\tformatDate: function(date, startingFormat, wizardDateFormat) {\r\n\t\tdate = (date || \"\").trim();\r\n\t\t//moment.js recommends against doing this, but it works very well now, until the deprecated feature is removed.\r\n\t\t//\tI used to have this: var momentDate = window.moment(date, startingFormat || wizardDateFormat);\r\n\t\tvar momentDate = window.moment(date);\r\n\t\tif (momentDate.isValid()) {\r\n\t\t\treturn momentDate.format(wizardDateFormat);\r\n\t\t}\r\n\t\treturn date;\r\n\t},\r\n\r\n\tparseAndFormatDate: function (dateString) {\r\n\t\tvar apiDateFormat = \"YYYY-MM-DD\";\r\n\t\tvar date = moment(dateString, apiDateFormat);\r\n\r\n\t\t//Moment essentially converts something like \"010121\" in \"01/01/10121\" so making sure the year range is valid for dates\r\n\t\tif (!date.isValid() || date.year() < 1753 || date.year() > 9999) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn date && date.format(apiDateFormat);\r\n\t},\r\n\r\n\t/* \tallowDecimals: are decimals allowed (default: true, optional)\r\n\t\tgreaterThanZero: do values have to be greater than zero (default: false, optional)\r\n\t\tformatAmount: should the amount formatted with currency symbol and grouping separators (default: true, optional))\r\n\t\tdefaultValue: the default amount if the amount is invalid (optional, if not provided, it will just set it to the last valid value or it will stay blank.\r\n\t\tincludeThousandsSeparator: should the amount be formatted to include a thousands separator (default: true, optional)\r\n\t\tallowNegative: should the amount be allowed to be negative (default: false, optional)\r\n\t*/\r\n\tinitializeAmountInput: function($component, amountSelector, allowDecimals, greaterThanZero, formatAmount, defaultValue, includeThousandsSeparator, allowNegative) {\r\n\t\tif (!$component || !$component.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $donationAmountInputs = $component;\r\n\t\tif (!$component.is(amountSelector)) {\r\n\t\t\t$donationAmountInputs = $component.find(amountSelector);\r\n\t\t}\r\n\r\n\t\tif (!$donationAmountInputs || !$donationAmountInputs.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (allowDecimals == null) { //coercion: undefined == null is true is true as well\r\n\t\t\t//Defaulting to true\r\n\t\t\tallowDecimals = true;\r\n\t\t}\r\n\r\n\t\tif (formatAmount == null) { //coercion: undefined == null is true is true as well\r\n\t\t\t//Defaulting to true\r\n\t\t\tformatAmount = true;\r\n\t\t}\r\n\r\n\t\tif (formatAmount) {\r\n\t\t\t$donationAmountInputs.blur((event) => {\r\n\t\t\t\tvar $target = $(event.currentTarget);\r\n\t\t\t\tvar value = event.currentTarget.value || \"\";\r\n\r\n\t\t\t\tvar amount = ActionsHelper.convertFormattedAmountToNumber(value) || \"\";\r\n\t\t\t\t$target.val(ActionsHelper.formatAmount(amount, $target, /*keepDecimals*/true, includeThousandsSeparator));\r\n\t\t\t});\r\n\t\t} else if (defaultValue) {\r\n\t\t\t$donationAmountInputs.blur((event) => {\r\n\t\t\t\tif (!event.currentTarget.value) {\r\n\t\t\t\t\t$(event.currentTarget).val(defaultValue);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$donationAmountInputs.focus((event) => {\r\n\t\t\tvar target = event.currentTarget;\r\n\t\t\tvar selectAll;\r\n\t\t\tif (target.selectionStart === 0 && target.selectionEnd === (target.value || \"\").length) {\r\n\t\t\t\t//This probably means we tabbed into it, or at least it is all selected.\r\n\t\t\t\tselectAll = true;\r\n\t\t\t}\r\n\t\t\tvar value = target.value || \"\";\r\n\t\t\tvalue = ActionsHelper.convertFormattedAmountToNumberString(value, /*useCurrencyFormatDecimalSeparator*/true) || \"\";\r\n\t\t\t$(target).val(value);\r\n\t\t\ttarget.oldValue = value;\r\n\t\t\tif (selectAll) {\r\n\t\t\t\t//If we tabbed into the field, we should highlighting all the amount text (we have to do this because we changed the value)\r\n\t\t\t\tevent.currentTarget.setSelectionRange(0, value.length);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$donationAmountInputs.change((event) => {\r\n\t\t\tthis._validateAmount(event, allowDecimals, greaterThanZero, defaultValue, allowNegative);\r\n\t\t});\r\n\r\n\t\t$donationAmountInputs.keyup((event) => {\r\n\t\t\tthis._validateAmount(event, allowDecimals, greaterThanZero, defaultValue, allowNegative);\r\n\t\t});\r\n\r\n\t\t$donationAmountInputs.keydown((event) => {\r\n\t\t\tif (event.ctrlKey || event.metaKey || event.altKey) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t//Getting the character code of the decimal character\r\n\t\t\tvar decimalCharacterCode;\r\n\t\t\tvar numberPadDecimalCharacterCode;\r\n\t\t\tif (window.currencyFormat.decimalSeparator === \".\") {\r\n\t\t\t\tdecimalCharacterCode = Constants.KEYS.DECIMAL;\r\n\t\t\t\tnumberPadDecimalCharacterCode = Constants.KEYS.NUM_PAD_DECIMAL;\r\n\t\t\t}\r\n\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\tcase Constants.KEYS.DELETE:\r\n\t\t\t\tcase Constants.KEYS.BACKSPACE:\r\n\t\t\t\tcase Constants.KEYS.ARROW_UP:\r\n\t\t\t\tcase Constants.KEYS.ARROW_RIGHT:\r\n\t\t\t\tcase Constants.KEYS.ARROW_DOWN:\r\n\t\t\t\tcase Constants.KEYS.ARROW_LEFT:\r\n\t\t\t\tcase Constants.KEYS.TAB:\r\n\t\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\tcase Constants.KEYS.HOME:\r\n\t\t\t\tcase Constants.KEYS.END:\r\n\t\t\t\tcase Constants.KEYS.PAGE_UP:\r\n\t\t\t\tcase Constants.KEYS.PAGE_DOWN:\r\n\t\t\t\t\t//event not handled, allowing the key down, as this is not a printable character\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t//Top Numbers and Numpad numbers\r\n\t\t\t\t\tif ((decimalCharacterCode && event.which === decimalCharacterCode) ||\r\n\t\t\t\t\t\t(numberPadDecimalCharacterCode && event.which === numberPadDecimalCharacterCode) ||\r\n\t\t\t\t\t\t(window.currencyFormat.decimalSeparator && window.currencyFormat.decimalSeparator === event.key)) {\r\n\t\t\t\t\t\t//We entered the decimal separator character\r\n\t\t\t\t\t\treturn allowDecimals;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//Negative symbol\r\n\t\t\t\t\tif (event.which === Constants.KEYS.MINUS || event.which === Constants.KEYS.NUM_PAD_MINUS) {\r\n\t\t\t\t\t\treturn allowNegative;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ((event.which >= 48 && event.which <= 57) || (event.which >= 96 && event.which <= 105)) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//Do not allow\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (defaultValue) {\r\n\t\t\t$donationAmountInputs.each((index, element) => {\r\n\t\t\t\tthis._validateAmount({currentTarget: element}, allowDecimals, greaterThanZero, defaultValue, allowNegative);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/* \r\n\tgreaterThanZero: do values have to be greater than zero (default: false, optional)\r\n\tformatDecimal: should the decimal be formatted with grouping separators (default: true, optional))\r\n\tdefaultValue: the default amount if the amount is invalid (optional, if not provided, it will just set it to the last valid value or it will stay blank.\r\n\tincludeThousandsSeparator: should the amount be formatted to include a thousands separator (default: true, optional)\r\n\tallowNegative: should the amount be allowed to be negative (default: false, optional)\r\n\t*/\r\n\tinitializeDecimalInput: function ($component, decimalSelector, greaterThanZero, formatDecimal, defaultValue, includeThousandsSeparator, allowNegative) {\r\n\t\tif (!$component || !$component.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $decimalInputs = $component;\r\n\t\tif (!$component.is(decimalSelector)) {\r\n\t\t\t$decimalInputs = $component.find(decimalSelector);\r\n\t\t}\r\n\r\n\t\tif (!$decimalInputs || !$decimalInputs.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (formatDecimal == null) { //coercion: undefined == null is true is true as well\r\n\t\t\t//Defaulting to true\r\n\t\t\tformatDecimal = true;\r\n\t\t}\r\n\r\n\t\tif (formatDecimal) {\r\n\t\t\t$decimalInputs.blur((event) => {\r\n\t\t\t\tvar $target = $(event.currentTarget);\r\n\t\t\t\tvar value = event.currentTarget.value || \"\";\r\n\r\n\t\t\t\tvar amount = ActionsHelper.convertFormattedAmountToNumber(value) || \"\";\r\n\t\t\t\t$target.val(ActionsHelper.formatDecimal(amount, $target, includeThousandsSeparator));\r\n\t\t\t});\r\n\t\t} else if (defaultValue) {\r\n\t\t\t$decimalInputs.blur((event) => {\r\n\t\t\t\tif (!event.currentTarget.value) {\r\n\t\t\t\t\t$(event.currentTarget).val(defaultValue);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$decimalInputs.focus((event) => {\r\n\t\t\tvar target = event.currentTarget;\r\n\t\t\tvar selectAll;\r\n\t\t\tif (target.selectionStart === 0 && target.selectionEnd === (target.value || \"\").length) {\r\n\t\t\t\t//This probably means we tabbed into it, or at least it is all selected.\r\n\t\t\t\tselectAll = true;\r\n\t\t\t}\r\n\t\t\tvar value = target.value || \"\";\r\n\t\t\tvalue = ActionsHelper.convertFormattedAmountToNumberString(value, /*useCurrencyFormatDecimalSeparator*/true) || \"\";\r\n\t\t\t$(target).val(value);\r\n\t\t\ttarget.oldValue = value;\r\n\t\t\tif (selectAll) {\r\n\t\t\t\t//If we tabbed into the field, we should highlighting all the amount text (we have to do this because we changed the value)\r\n\t\t\t\tevent.currentTarget.setSelectionRange(0, value.length);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$decimalInputs.change((event) => {\r\n\t\t\tthis._validateDecimal(event, greaterThanZero, defaultValue, allowNegative);\r\n\t\t});\r\n\r\n\t\t$decimalInputs.keyup((event) => {\r\n\t\t\tthis._validateDecimal(event, greaterThanZero, defaultValue, allowNegative);\r\n\t\t});\r\n\r\n\t\t$decimalInputs.keydown((event) => {\r\n\t\t\tif (event.ctrlKey || event.metaKey || event.altKey) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t//Getting the character code of the decimal character\r\n\t\t\tvar decimalCharacterCode;\r\n\t\t\tvar numberPadDecimalCharacterCode;\r\n\t\t\tif (window.currencyFormat.decimalSeparator === \".\") {\r\n\t\t\t\tdecimalCharacterCode = Constants.KEYS.DECIMAL;\r\n\t\t\t\tnumberPadDecimalCharacterCode = Constants.KEYS.NUM_PAD_DECIMAL;\r\n\t\t\t}\r\n\r\n\t\t\tswitch (event.which) {\r\n\t\t\t\tcase Constants.KEYS.DELETE:\r\n\t\t\t\tcase Constants.KEYS.BACKSPACE:\r\n\t\t\t\tcase Constants.KEYS.ARROW_UP:\r\n\t\t\t\tcase Constants.KEYS.ARROW_RIGHT:\r\n\t\t\t\tcase Constants.KEYS.ARROW_DOWN:\r\n\t\t\t\tcase Constants.KEYS.ARROW_LEFT:\r\n\t\t\t\tcase Constants.KEYS.TAB:\r\n\t\t\t\tcase Constants.KEYS.ESCAPE:\r\n\t\t\t\tcase Constants.KEYS.HOME:\r\n\t\t\t\tcase Constants.KEYS.END:\r\n\t\t\t\tcase Constants.KEYS.PAGE_UP:\r\n\t\t\t\tcase Constants.KEYS.PAGE_DOWN:\r\n\t\t\t\t\t//event not handled, allowing the key down, as this is not a printable character\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t//Top Numbers and Numpad numbers\r\n\t\t\t\t\tif ((decimalCharacterCode && event.which === decimalCharacterCode) ||\r\n\t\t\t\t\t\t(numberPadDecimalCharacterCode && event.which === numberPadDecimalCharacterCode) ||\r\n\t\t\t\t\t\t(window.currencyFormat.decimalSeparator && window.currencyFormat.decimalSeparator === event.key)) {\r\n\t\t\t\t\t\t//We entered the decimal separator character\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//Negative symbol\r\n\t\t\t\t\tif (event.which === Constants.KEYS.MINUS || event.which === Constants.KEYS.NUM_PAD_MINUS) {\r\n\t\t\t\t\t\treturn allowNegative;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ((event.which >= 48 && event.which <= 57) || (event.which >= 96 && event.which <= 105)) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//Do not allow\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (defaultValue) {\r\n\t\t\t$decimalInputs.each((index, element) => {\r\n\t\t\t\tthis._validateDecimal({ currentTarget: element }, greaterThanZero, defaultValue, allowNegative);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeDates: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar $component = options.$component;\r\n\t\tvar dateSelector = options.dateSelector;\r\n\t\tvar startingFormat = options.startingFormat;\r\n\t\tvar wizardDateFormat = options.wizardDateFormat;\r\n\r\n\t\tif (!$component || !$component.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $dateInputs = $component;\r\n\t\tif (!$component.is(dateSelector)) {\r\n\t\t\t$dateInputs = $component.find(dateSelector);\r\n\t\t}\r\n\r\n\t\tif (!$dateInputs || !$dateInputs.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t$dateInputs.blur((event) => {\r\n\t\t\tvar value = event.currentTarget.value;\r\n\t\t\tevent.currentTarget.value = this.formatDate(value, startingFormat || wizardDateFormat, wizardDateFormat);\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeIntegerInput: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar $component = options.$component;\r\n\t\tvar defaultValue = options.defaultValue;\r\n\t\tvar greaterThanZero = options.greaterThanZero;\r\n\t\tvar numberSelector = options.numberSelector;\r\n\t\tvar allowNegative = options.allowNegative;\r\n\t\tthis.initializeAmountInput($component, numberSelector, /*allowDecimals*/false, greaterThanZero, /*formatAmount*/false, defaultValue, /*includeThousandsSeparator*/false, allowNegative);\r\n\t},\r\n\r\n\tisAmountValid: function(amount, allowNegative) {\r\n\t\tif (amount == null) { // coercion, I want null and undefined to match but not 0\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar escapedDecimalSeparator = ActionsHelper.escapeRegExp(window.currencyFormat.decimalSeparator);\r\n\t\tvar digitWithDecimalSeparator = `^\\\\d*${escapedDecimalSeparator}\\\\d{1,2}$|^\\\\d*$|^\\\\d*${escapedDecimalSeparator}$|^${escapedDecimalSeparator}\\\\d{1,2}$|^${escapedDecimalSeparator}\\\\d{1,2}$|^${escapedDecimalSeparator}$`;\r\n\t\tvar digitWithDecimalSeparatorRegex = new RegExp(digitWithDecimalSeparator, \"g\");\r\n\r\n\t\tif (allowNegative) {\r\n\t\t\t// This regex allows negative numbers, but only if the negative sign is at the beginning of the string.\r\n\t\t\tdigitWithDecimalSeparatorRegex = new RegExp(`${digitWithDecimalSeparator}|^\\\\-\\\\d*${escapedDecimalSeparator}\\\\d{1,2}$|^\\\\-\\\\d*$|^\\\\-\\\\d*${escapedDecimalSeparator}$|^\\\\-${escapedDecimalSeparator}\\\\d{1,2}$|^\\\\-${escapedDecimalSeparator}\\\\d{1,2}$|^\\\\-${escapedDecimalSeparator}$`, \"g\");\r\n\t\t}\r\n\r\n\t\treturn amount.match(digitWithDecimalSeparatorRegex);\r\n\t},\r\n\r\n\tisDecimalValid: function (amount, allowNegative) {\r\n\t\tif (amount == null) { // coercion, I want null and undefined to match but not 0\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar escapedDecimalSeparator = ActionsHelper.escapeRegExp(window.currencyFormat.decimalSeparator);\r\n\t\tvar digitWithDecimalSeparator = `^\\\\d*${escapedDecimalSeparator}\\\\d{1,}$|^\\\\d*$|^\\\\d*${escapedDecimalSeparator}$|^${escapedDecimalSeparator}\\\\d{1,}$|^${escapedDecimalSeparator}\\\\d{1,}$|^${escapedDecimalSeparator}$`;\r\n\t\tvar digitWithDecimalSeparatorRegex = new RegExp(digitWithDecimalSeparator, \"g\");\r\n\r\n\t\tif (allowNegative) {\r\n\t\t\t// This regex allows negative numbers, but only if the negative sign is at the beginning of the string.\r\n\t\t\tdigitWithDecimalSeparatorRegex = new RegExp(`${digitWithDecimalSeparator}|^\\\\-\\\\d*${escapedDecimalSeparator}\\\\d{1,}$|^\\\\-\\\\d*$|^\\\\-\\\\d*${escapedDecimalSeparator}$|^\\\\-${escapedDecimalSeparator}\\\\d{1,}$|^\\\\-${escapedDecimalSeparator}\\\\d{1,}$|^\\\\-${escapedDecimalSeparator}$`, \"g\");\r\n\t\t}\r\n\r\n\t\treturn amount.match(digitWithDecimalSeparatorRegex);\r\n\t},\r\n\r\n\t//Helps make sure the for attribute is correct on the label\r\n\tprepareCheckboxAndLabel: function($parentNode, checkboxComponentName, scopeSelector) {\r\n\t\t$parentNode = ($parentNode || $(\"body\"));\r\n\t\tvar $checkboxComponents = $parentNode.find(`[data-component=\"${checkboxComponentName}\"][data-checkbox]`);\r\n\r\n\t\t$checkboxComponents.each((index, element) => {\r\n\t\t\tvar $singleCheckbox = $(element);\r\n\t\t\tvar checkboxUniqueIdentifier = $singleCheckbox.attr(\"data-checkbox\");\r\n\r\n\t\t\t//Trying to fix issue with repeater when loading the page for the constituent by limiting to a specific scope\r\n\t\t\tvar $scopeParent = scopeSelector ? $singleCheckbox.closest(scopeSelector) : $parentNode;\r\n\t\t\tif (!$scopeParent.length) {\r\n\t\t\t\t$scopeParent = $parentNode;\r\n\t\t\t}\r\n\r\n\t\t\tvar $labelComponent = $scopeParent.find(`[data-checkbox-label=\"${checkboxUniqueIdentifier}\"]`);\r\n\r\n\t\t\tvar checkboxId = $singleCheckbox.attr(\"id\");\r\n\t\t\tif (!checkboxId) {\r\n\t\t\t\tcheckboxId = HtmlHelper.getId($(\"body\"));\r\n\t\t\t\t$singleCheckbox.attr(\"id\", checkboxId);\r\n\t\t\t}\r\n\r\n\t\t\t$labelComponent.attr(\"for\", checkboxId);\r\n\t\t});\r\n\t},\r\n\r\n\tgetGeneralInputValues: function($namedInputs) {\r\n\t\tvar inputData = []\r\n\r\n\t\t$namedInputs.each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\tvar componentName = $element.attr(\"data-component\");\r\n\t\t\tvar $parentComponent,\r\n\t\t\t\tdata = null;\r\n\r\n\t\t\tif (!componentName.includes(\".\")) {\r\n\t\t\t\tLoggerInstance.debug(`${componentName} is not a valid input`);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$parentComponent = $element.parents(`[data-component=\"${componentName.split(\".\")[0]}\"]`);\r\n\t\t\tvar calculatedTypeCategory = $parentComponent.attr(\"data-code-type-category\");\r\n\r\n\t\t\tswitch ($parentComponent.attr(\"data-component\")) {\r\n\t\t\t\tcase \"multipleCheckboxes\":\r\n\t\t\t\t\tif ($element.is(\":checked\")) {\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\"type\": $element.attr(\"name\"),\r\n\t\t\t\t\t\t\t\"value\": $element.val()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\"isDeleted\": true,\r\n\t\t\t\t\t\t\t\"type\": $element.attr(\"name\"),\r\n\t\t\t\t\t\t\t\"value\": $element.val()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"singleCheckbox\":\r\n\t\t\t\t\tdata = { \"type\": $element.attr(\"name\") };\r\n\t\t\t\t\tif ($element.is(\":checked\")) {\r\n\t\t\t\t\t\tdata.value = $parentComponent.attr(\"code-type-true-value\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdata.value = $parentComponent.attr(\"code-type-false-value\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"select\":\r\n\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\"type\": $element.attr(\"name\"),\r\n\t\t\t\t\t\t\"value\": $element.val()\r\n\t\t\t\t\t};\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"radioButtons\":\r\n\t\t\t\t\tif ($element.prop(\"checked\")) {\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\"type\": $element.attr(\"name\"),\r\n\t\t\t\t\t\t\t\"value\": $element.val()\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"textInput\":\r\n\t\t\t\tcase \"textArea\":\r\n\t\t\t\t\tdata = this.getTextInputData($element, $parentComponent);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tLoggerInstance.debug(`${$parentComponent.attr(\"data-component\")} is not supported`);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t//If we have a valid input\r\n\t\t\tif (data) {\r\n\t\t\t\t//Check to see if there is a category that would be used for a calculated type\r\n\t\t\t\tif (calculatedTypeCategory) {\r\n\t\t\t\t\tdata.calculatedTypeCategory = calculatedTypeCategory;\r\n\t\t\t\t}\r\n\t\t\t\tinputData.push(data);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn inputData;\r\n\t},\r\n\r\n\tgetTextInputData: function ($element, $parentComponent) {\r\n\t\tvar dataBinding = $parentComponent.attr(\"data-data-binding\");\r\n\r\n\t\tif (!dataBinding) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar dataBindingType = dataBinding.split(\"-\")[0];\r\n\t\tvar dataBindingValue = dataBinding.replace(\"dataBinding-\", \"\")\r\n\t\t\t.replace(\"singleValueDate-X06-\", \"\")\r\n\t\t\t.replace(\"multiValueDate-X06-\", \"\")\r\n\t\t\t.replace(\"note-NOTE-\", \"\")\r\n\t\t\t.replace(\"singleValueNumber-X07-\", \"\")\r\n\t\t\t.replace(\"multiValueNumber-X07-\", \"\");\r\n\r\n\t\t// For data bindings in the general 'dataBinding' property group,\r\n\t\t// the data binding value represents the type of binding.\r\n\t\tif (dataBindingType === \"dataBinding\") {\r\n\t\t\tdataBindingType = dataBindingValue;\r\n\t\t}\r\n\r\n\t\tswitch (dataBindingType) {\r\n\t\t\tcase \"shortComment\":\r\n\t\t\t\treturn {\r\n\t\t\t\t\tshortComment: $element.val()\r\n\t\t\t\t}\r\n\t\t\tcase \"longComment\":\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlongComment: $element.val()\r\n\t\t\t\t}\r\n\t\t\tcase \"singleValueDate\":\r\n\t\t\tcase \"multiValueDate\":\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttype: dataBindingValue,\r\n\t\t\t\t\tvalue: this.parseAndFormatDate($element.val())\r\n\t\t\t\t};\r\n\t\t\tcase \"note\":\r\n\t\t\t\tvar isLongComment = $parentComponent.attr(\"data-note-field\") === \"long\";\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttype: dataBindingValue,\r\n\t\t\t\t\tshortComment: !isLongComment ? $element.val() : null,\r\n\t\t\t\t\tlongComment: isLongComment ? $element.val() : null\r\n\t\t\t\t};\r\n\t\t\tcase \"singleValueNumber\":\r\n\t\t\tcase \"multiValueNumber\":\r\n\t\t\t\tvar value = $element.val();\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttype: dataBindingValue,\r\n\t\t\t\t\tvalue: (value !== \"\" && Number(value)) || null\r\n\t\t\t\t};\r\n\t\t\tdefault:\r\n\t\t\t\tLoggerInstance.debug(`${dataBinding} is not a supported data binding.`);\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t},\r\n\r\n\tvalidateStartAndEndDates: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar existingErrorMessages = options.existingErrorMessages || [];\r\n\t\tvar startDate = options.startDate;\r\n\t\tvar endDate = options.endDate;\r\n\t\tvar dateFormat = options.dateFormat;\r\n\t\tvar startDateInvalidMessage = options.startDateInvalidMessage;\r\n\t\tvar endDateInvalidMessage = options.endDateInvalidMessage;\r\n\t\tvar endDateLessThanStartDateMessage = options.endDateLessThanStartDateMessage;\r\n\r\n\t\t//Validating Dates\r\n\t\tvar momentStartDate = window.moment(startDate, dateFormat);\r\n\t\tvar momentEndDate = window.moment(endDate, dateFormat);\r\n\t\tif (!momentStartDate.isValid()) {\r\n\t\t\texistingErrorMessages.push(startDateInvalidMessage);\r\n\t\t}\r\n\r\n\t\tif (endDate && !momentEndDate.isValid()) {\r\n\t\t\texistingErrorMessages.push(endDateInvalidMessage);\r\n\t\t}\r\n\r\n\t\tif (momentStartDate.isValid() && momentEndDate.isValid() && momentStartDate > momentEndDate) {\r\n\t\t\texistingErrorMessages.push(endDateLessThanStartDateMessage);\r\n\t\t}\r\n\r\n\t\treturn existingErrorMessages;\r\n\t},\r\n\r\n\tvalidateDates: function(options) {\r\n\t\toptions = options || {};\r\n\t\tvar existingErrorMessages = options.existingErrorMessages || [];\r\n\t\tvar date = options.date;\r\n\t\tvar dateFormat = options.dateFormat;\r\n\t\tvar dateInvalidMessage = options.dateInvalidMessage;\r\n\r\n\t\t//Validating Dates\r\n\t\tvar momentDate = window.moment(date, dateFormat);\r\n\t\tif (!momentDate.isValid()) {\r\n\t\t\texistingErrorMessages.push(dateInvalidMessage);\r\n\t\t}\r\n\r\n\t\treturn existingErrorMessages;\r\n\t},\r\n\r\n\t_validateAmount: function(event, allowDecimals, greaterThanZero, defaultValue, allowNegative) {\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\r\n\t\tif (value.includes(window.currencyFormat.currencySymbol)) {\r\n\t\t\tvar currencyRegex = new RegExp(ActionsHelper.escapeRegExp(window.currencyFormat.currencySymbol), \"g\");\r\n\t\t\tevent.currentTarget.value = value.replace(currencyRegex, \"\");\r\n\t\t}\r\n\r\n\t\t//Works as long as the decimal separator is only a single character\r\n\t\tif (!this.isAmountValid(value, allowNegative) || (Number(value) === 0 && greaterThanZero && value !== \"\") || (!allowDecimals && value.includes(\".\"))) {\r\n\t\t\tif (defaultValue) {\r\n\t\t\t\tevent.currentTarget.value = defaultValue;\r\n\t\t\t} else {\r\n\t\t\t\tevent.currentTarget.value = event.currentTarget.oldValue;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tevent.currentTarget.oldValue = value;\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_validateDecimal: function (event, greaterThanZero, defaultValue, allowNegative) {\r\n\t\tif (!event) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar value = $(event.currentTarget).val() || \"\";\r\n\r\n\t\tif (value.includes(window.currencyFormat.currencySymbol)) {\r\n\t\t\tvar currencyRegex = new RegExp(ActionsHelper.escapeRegExp(window.currencyFormat.currencySymbol), \"g\");\r\n\t\t\tevent.currentTarget.value = value.replace(currencyRegex, \"\");\r\n\t\t}\r\n\r\n\t\t//Works as long as the decimal separator is only a single character\r\n\t\tif (!this.isDecimalValid(value, allowNegative) || (Number(value) === 0 && greaterThanZero && value !== \"\")) {\r\n\t\t\tif (defaultValue) {\r\n\t\t\t\tevent.currentTarget.value = defaultValue;\r\n\t\t\t} else {\r\n\t\t\t\tevent.currentTarget.value = event.currentTarget.oldValue;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tevent.currentTarget.oldValue = value;\r\n\t\treturn true;\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\n// LinkMessageHelper\r\nmodule.exports = {\r\n\tlinkMessageMapper(dataDynamicHref, $selectedElement) {\r\n\t\tswitch (dataDynamicHref) {\r\n\t\t\tcase \"addNewPayment\": return \"'Add New Payment' link clicked.\";\r\n\t\t\tcase \"removeSavedPayment\": return \"Remove From Saved Payments called successfully.\";\r\n\r\n\t\t\tcase \"addRegistrant\": return \"Add Registrant link called successfully.\";\r\n\t\t\tcase \"removeRegistrant\": return \"Remove Registrant link called successfully.\";\r\n\r\n\t\t\tcase \"myEventsDetailPage\": return \"My Events Detail Page link called successfully.\";\r\n\r\n\t\t\tcase \"cancelMyPledge\": return \"Canceling the Pledge called successfully.\";\r\n\t\t\tcase \"cancelMyPledgeEdit\": return \"Cancel Pledge Edit called successfully.\";\r\n\t\t\tcase \"editMyPledge\": return \"Edit Pledge called successfully.\";\r\n\t\t\tcase \"navigateToSecureProjectFromMyPledge\": return \"Navigate to Secure Project Link called successfully.\";\r\n\r\n\t\t\tcase \"cancelMySponsorship\": return \"Canceling the Sponsorship called successfully.\";\r\n\t\t\tcase \"cancelMySponsorshipEdit\": return \"Cancel Sponsorship Edit called successfully.\";\r\n\t\t\tcase \"editMySponsorship\": return \"Edit Sponsorship called successfully.\";\r\n\t\t\tcase \"viewChildCommunications\": return \"View Child Communications called successfully.\";\r\n\r\n\t\t\tcase \"cancelRecurring\": return \"Cancelling the Recurring called successfully.\";\r\n\t\t\tcase \"cancelRecurringDonationEdit\": return \"Cancel Recurring Donation Edit called successfully.\";\r\n\t\t\tcase \"cancelRecurringHeaderEdit\": return \"Cancel Recurring Header Edit called successfully.\";\r\n\t\t\tcase \"cancelRecurringPaymentEdit\": return \"Cancel Recurring Payment Edit called successfully.\";\r\n\t\t\tcase \"deleteRecurringDonation\": return \"Delete Recurring Donation called successfully.\";\r\n\t\t\tcase \"editRecurringDonation\": return \"Edit Recurring Donation called successfully.\";\r\n\t\t\tcase \"editRecurringHeader\": return \"Edit Recurring Header called successfully.\";\r\n\t\t\tcase \"editRecurringPayment\": return \"Edit Recurring Payment called successfully.\";\r\n\r\n\t\t\tcase \"createCommunication\": return \"Create Communication called successfully.\";\r\n\r\n\t\t\tcase \"documentsLoadPartial\": return \"Navigate to Document Type called successfully.\";\r\n\t\t\tcase \"documentsDownload\": return \"Download Document called successfully.\";\r\n\r\n\t\t\tcase \"reportsDownload\": return \"Download Report called successfully.\";\r\n\t\t\tcase \"reportsLoadPartial\": return \"Load Report Parameters called successfully.\";\r\n\r\n\t\t\tcase \"magazineEmailSubscriptionEdit\": return \"Magazine Email Subscription Edit called successfully\";\r\n\t\t\tcase \"magazineEmailSubscriptionCancelEdit\": return \"Cancel Magazine Email Subscription Edit called successfully\";\r\n\r\n\t\t\tcase \"magazineMailSubscriptionEdit\": return \"Magazine Mail Subscription Edit called successfully\";\r\n\t\t\tcase \"magazineMailSubscriptionCancelEdit\": return \"Cancel Magazine Mail Subscription Edit called successfully\";\r\n\r\n\t\t\tcase \"membershipSubscriptionEdit\": return \"Membership Subscription Edit called successfully\";\r\n\t\t\tcase \"membershipSubscriptionCancelEdit\": return \"Cancel Membership Subscription Edit called successfully\";\r\n\r\n\t\t\tcase \"productSubscriptionEdit\": return \"Product Subscription Edit called successfully\";\r\n\t\t\tcase \"productSubscriptionCancelEdit\": return \"Cancel Product Subscription Edit called successfully\";\r\n\r\n\t\t\tcase \"addNewOtherAddress\": return \"Show Add Other Address called successfully.\";\r\n\t\t\tcase \"cancelAddOtherAddress\": return \"Cancel Add Other Address Form called successfully.\";\r\n\t\t\tcase \"cancelEditOtherAddress\": return \"Cancel Edit Other Address called successfully.\";\r\n\t\t\tcase \"deleteOtherAddress\": return \"Delete Other Address called successfully.\";\r\n\t\t\tcase \"editOtherAddress\": return \"Edit Other Address called successfully.\";\r\n\r\n\t\t\tcase \"productKitItemLink\": return \"Product Kits Item Link called successfully.\";\r\n\r\n\t\t\tcase \"category\": return \"Category Link called successfully.\";\r\n\t\t\tcase \"event\":\r\n\t\t\tcase \"register\":\r\n\t\t\t\treturn \"Event Link called successfully.\";\r\n\t\t\tcase \"pledge\": return \"Pledge Link called successfully.\";\r\n\t\t\tcase \"product\":\r\n\t\t\tcase \"purchase\":\r\n\t\t\t\treturn \"Product Link called successfully.\";\r\n\t\t\tcase \"project\":\r\n\t\t\tcase \"donate\":\r\n\t\t\t\treturn \"Project Link called successfully.\";\r\n\t\t\tcase \"subscription\":\r\n\t\t\tcase \"subscribe\":\r\n\t\t\t\treturn \"Subscription Link called successfully.\";\r\n\t\t\tcase \"downloadUrl\": return \"Download Link called successfully.\";\r\n\r\n\t\t\tcase \"toSaveForLater\": return \"Move To Save For Later called successfully.\";\r\n\t\t\tcase \"toShoppingCart\": return \"Move To Shopping Cart called successfully.\";\r\n\r\n\t\t\tcase \"removePremium\": return \"Remove Donation Premium called successfully.\";\r\n\t\t\tcase \"removeFromCart\": return \"Remove From Cart called successfully.\";\r\n\t\t\tcase \"removeCouponLink\": return \"Remove Coupon called successfully.\";\r\n\t\t\tcase \"removeGroupCodeLink\": return \"Remove Group Code called successfully.\";\r\n\r\n\t\t\tcase \"sponsor-a-child\": return \"Link to Child Sponsorship called successfully.\";\r\n\r\n\t\t\tcase \"tangible\": return \"Link to Tangible called successfully.\";\r\n\t\t\tdefault:\r\n\t\t\t\tif ($selectedElement) {\r\n\t\t\t\t\t//In these cases the data-dynamic-href is \"true\"; it was one of, if not the first case.\r\n\t\t\t\t\tif ($selectedElement.parents(\"[data-component='category.category'],[data-component='carousel.category']\").length) {\r\n\t\t\t\t\t\treturn \"Category Link called successfully.\";\r\n\t\t\t\t\t} else if ($selectedElement.parents(\"[data-component='category.project'],[data-component='carousel.project']\").length) {\r\n\t\t\t\t\t\treturn \"Project Link called successfully.\";\r\n\t\t\t\t\t} else if ($selectedElement.parents(\"[data-component='category.product'],[data-component='carousel.product']\").length) {\r\n\t\t\t\t\t\treturn \"Product Link called successfully.\";\r\n\t\t\t\t\t} else if ($selectedElement.parents(\"[data-component='category.pledge'],[data-component='carousel.pledge']\").length) {\r\n\t\t\t\t\t\treturn \"Pledge Link called successfully.\";\r\n\t\t\t\t\t} else if ($selectedElement.parents(\"[data-component='category.event'],[data-component='carousel.event']\").length) {\r\n\t\t\t\t\t\treturn \"Event Link called successfully.\";\r\n\t\t\t\t\t} else if ($selectedElement.parents(\"[data-component='category.subscription'],[data-component='carousel.subscription']\").length) {\r\n\t\t\t\t\t\treturn \"Subscription Link called successfully.\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\n// NumberHelper\r\nmodule.exports = {\r\n\troundToTwoDecimals: function(value) {\r\n\t\treturn parseFloat(Math.round(this.toNumber(value) + 'e2') + 'e-2')\r\n\t},\r\n\r\n\troundToOneDecimal: function(value) {\r\n\t\treturn parseFloat(Math.round(this.toNumber(value) + 'e1') + 'e-1')\r\n\t},\r\n\r\n\ttoNumber: function(value) {\r\n\t\treturn +value || 0;\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\nvar BootstrapPrompt = require(\"./BootstrapPrompt\");\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\n// PartialResponseHelper\r\nmodule.exports = {\r\n\thandleErrorResponse(response) {\r\n\t\tvar jsonResponse;\r\n\t\tif (typeof response === \"string\") {\r\n\t\t\ttry {\r\n\t\t\t\tjsonResponse = JSON.parse(response);\r\n\t\t\t} catch (exception) {\r\n\t\t\t\tjsonResponse = {}; //I guess it wasn't JSON\r\n\t\t\t}\r\n\t\t} else if (typeof response === \"object\") {\r\n\t\t\tjsonResponse = response;\r\n\t\t} else {\r\n\t\t\t//This response was not handled\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Was an invalid partial requested\r\n\t\tif (jsonResponse.message === \"Partial Invalid\") {\r\n\t\t\tvar newerPageVersionMessage = (window.GENERAL_MESSAGES || {}).NEWER_PAGE_VERSION;\r\n\r\n\t\t\t//If there is a message we are supposed to show, show it\r\n\t\t\tif (newerPageVersionMessage) {\r\n\t\t\t\twindow.BUTTON_LABELS = window.BUTTON_LABELS || {};\r\n\t\t\t\tBootstrapPrompt.show({\r\n\t\t\t\t\tbuttons: [{\r\n\t\t\t\t\t\tlabel: window.BUTTON_LABELS.REFRESH || \"Refresh\",\r\n\t\t\t\t\t\taction: (dialogRef) => {\r\n\t\t\t\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t\tdialogRef.close();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, {\r\n\t\t\t\t\t\tlabel: window.BUTTON_LABELS.CANCEL || \"Cancel\",\r\n\t\t\t\t\t\taction: (dialogRef) => {\r\n\t\t\t\t\t\t\tdialogRef.close();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}],\r\n\t\t\t\t\tmessage: newerPageVersionMessage\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t//This response was handled\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t//This response was not handled\r\n\t\treturn false;\r\n\t}\r\n};\r\n","\"use strict\";\r\n\r\n// QueryStringHelper\r\nmodule.exports = {\r\n\tsimpleQueryAsObject: function (windowOverride) {\r\n\t\twindowOverride = windowOverride || window;\r\n\t\tvar query = windowOverride.location.search;\r\n\t\tif (query) {\r\n\t\t\tquery = query.substring(1);\r\n\t\t}\r\n\t\tvar obj = {};\r\n\t\tquery.replace(/([^=&]+)=([^&]*)/g, (match, key, value) => {\r\n\t\t\tobj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n\t\t});\r\n\t\treturn obj;\r\n\t},\r\n\r\n\tobjectFromQueryString: function (queryString) {\r\n\t\tqueryString = queryString || \"\";\r\n\r\n\t\tvar obj = {};\r\n\t\tqueryString.replace(/([^=&]+)=([^&]*)/g, (match, key, value) => {\r\n\t\t\tobj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n\t\t});\r\n\t\treturn obj;\r\n\t},\r\n\r\n\t//Here are some test cases to test the createQueryString and createObjectFromQueryString\r\n\t//All of these examples work fine when calling createQueryString({...}) to convert it to a query string\r\n\t//You can then take the results of that and pass the string into createObjectFromQueryString(\"...\") and it will convert it back into an object\r\n\t//\t{components: [\"test\", \"one\"]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true, secondary: { id2: \"1234\"}} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true, secondary: { id2: \"1234\", third: { id3: \"5678\"}}} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true, secondary: { id2: \"1234\", third: { id3: \"5678\"}, id2a: \"123\"}} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, nestedArray1: [{nest1: \"a\", nest2: \"b\"}], tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, nestedArray1: [{nest1: \"a\", nest2: \"b\"}, {nest1:\"y\", nest2: \"z\"}], tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, nestedArray1: [{nest1: \"a\", nest2: \"b\"}, {nest1:\"y\", nest2: \"z\"}], tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true} }\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, nestedArray1: [{nest1: \"a\", nest2: \"b\"}, {nest1:\"y\", nest2: \"z\"}], tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true}, {id: \"1\", offset: 2, limit: 3, nestedArray: [{nest1: \"x\"}], tangibleTypes: 4, sort: 5, ascending: false} ]}\r\n\t//\t{search: \"book\", category: 20, components: [{ id: \"o99084\", offset: 6, limit: 6, nestedArray1: [{nest1: \"a\", nest2: \"b\"}, {nest1:\"y\", nest2: \"z\"}], tangibleTypes: \"PROJECT,PRODUCTS\", sort: \"title\", ascending: true}, {id: \"1\", offset: 2, limit: 3, nestedArray: [], tangibleTypes: 4, sort: 5, ascending: false} ]}\r\n\tcreateQueryString: function (obj, prefix) {\r\n\t\tvar queryStringArray = [];\r\n\t\tvar property;\r\n\t\tvar isArray = Array.isArray(obj);\r\n\t\tfor (property in obj) {\r\n\t\t\tif (obj.hasOwnProperty(property)) {\r\n\t\t\t\tvar key;\r\n\t\t\t\tif (isArray) {\r\n\t\t\t\t\tkey = prefix ? `${prefix}[${property}]` : property;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//C# uses the . instead of [] notation\r\n\t\t\t\t\tkey = prefix ? `${prefix}.${property}` : property;\r\n\t\t\t\t}\r\n\t\t\t\tvar value = obj[property];\r\n\r\n\t\t\t\tif (value !== null) {\r\n\t\t\t\t\tqueryStringArray.push(typeof value === \"object\" ? this.createQueryString(value, key) : `${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn queryStringArray.join(\"&\");\r\n\t},\r\n\r\n\tcreateObjectFromQueryString: function(queryString) {\r\n\t\t//If this is falsy or not a string, just return an empty object.\r\n\t\tif (!queryString || typeof queryString !== \"string\") {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\tvar finalResult = {};\r\n\t\t//Split query by ampersand\r\n\t\tvar keyValuePairs = queryString.split(\"&\");\r\n\t\tkeyValuePairs.forEach((keyValuePair) => {\r\n\t\t\t//Go through each pair, split on equal\r\n\t\t\tvar values = keyValuePair.split(\"=\");\r\n\t\t\t//If we do not have exactly two pieces, ignore\r\n\t\t\tif (values.length === 2) {\r\n\t\t\t\tvar key = decodeURIComponent(values[0]);\r\n\t\t\t\tvar value = decodeURIComponent(values[1]);\r\n\r\n\t\t\t\t//Check to see if we have an array or object notation\r\n\t\t\t\tvar indexPeriod = key.indexOf(\".\");\r\n\t\t\t\tvar indexBracket = key.indexOf(\"[\");\r\n\r\n\t\t\t\tif (indexPeriod >= 0 && (indexBracket === -1 || indexPeriod < indexBracket)) {\r\n\t\t\t\t\t//The first notation is an object\r\n\t\t\t\t\tvar endingKey = key.substring(indexPeriod);\r\n\t\t\t\t\tkey = key.substring(0, indexPeriod);\r\n\r\n\t\t\t\t\t//If the object does not exist create it\r\n\t\t\t\t\tif (!finalResult[key]) {\r\n\t\t\t\t\t\tfinalResult[key] = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//Handle the object\r\n\t\t\t\t\tthis._createNestedObjectFromQueryStringPieces(endingKey, value, finalResult[key]);\r\n\t\t\t\t} else if (indexBracket >= 0) {\r\n\t\t\t\t\t//We have an array, handle it\r\n\t\t\t\t\tthis._createArrayFromQueryStringPieces(key, value, finalResult);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//Just a simple key/value pair\r\n\t\t\t\t\tfinalResult[key] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn finalResult;\r\n\t},\r\n\r\n\t_createArrayFromQueryStringPieces: function(key, value, currentResult, endingKey) {\r\n\t\t//We are dealing with an array, find the starting and ending bracket to get the index\r\n\t\tvar indexOpen = key.indexOf(\"[\");\r\n\t\tvar indexEnd = key.indexOf(\"]\");\r\n\t\tvar index = key.substring(indexOpen + 1, indexEnd);\r\n\r\n\t\t//Now get the array Name\r\n\t\tvar arrayName = key.substring(0, indexOpen);\r\n\t\t//endingKey is anything after the closing bracket\r\n\t\tendingKey = key.substring(indexEnd + 1);\r\n\r\n\t\tif (!currentResult[arrayName]) {\r\n\t\t\t//If this is the first time we've seen this array, create it\r\n\t\t\tcurrentResult[arrayName] = [];\r\n\t\t}\r\n\r\n\t\t//Do we have object notation next\r\n\t\tvar startWithPeriod = endingKey.startsWith(\".\");\r\n\r\n\t\tif (startWithPeriod) {\r\n\t\t\t//We have object notation next\r\n\t\t\tvar arrayObject = {};\r\n\t\t\tvar alreadyExists = false;\r\n\t\t\tif (currentResult[arrayName][index]) {\r\n\t\t\t\t//If an object already exists here\r\n\t\t\t\tarrayObject = currentResult[arrayName][index];\r\n\t\t\t\talreadyExists = true;\r\n\t\t\t}\r\n\r\n\t\t\t//Handle the object\r\n\t\t\tthis._createNestedObjectFromQueryStringPieces(endingKey, value, arrayObject);\r\n\t\t\tif (!alreadyExists) {\r\n\t\t\t\t//If we didn't already have the object, add it to the array at the current index\r\n\t\t\t\tcurrentResult[arrayName][index] = arrayObject;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t//No object notation, just a primitive value in the array\r\n\t\t\t//Get whatever is at this array's current index\r\n\t\t\tvar currentArrayObject = currentResult[arrayName][index];\r\n\t\t\tif (!currentArrayObject) {\r\n\t\t\t\t//If there is no item, just add the value here\r\n\t\t\t\tcurrentResult[arrayName].splice(index, 0, value);\r\n\t\t\t} else {\r\n\t\t\t\t//If there is an item, it should be an object if we get here, just add this value to the object (the value should be an object too)\r\n\t\t\t\tObject.assign(currentResult[arrayName][index], value);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_createNestedObjectFromQueryStringPieces: function(key, value, currentObject) {\r\n\t\t//We are dealing with an object\r\n\t\tvar indexPeriod = key.indexOf(\".\");\r\n\r\n\t\t//Getting the possible object key\r\n\t\tkey = key.substring(indexPeriod + 1);\r\n\r\n\t\t//If we do not have an array or object notation next, just add the value to the object\r\n\t\tif (!key.includes(\"[\") && !key.includes(\".\")) {\r\n\t\t\tcurrentObject[key] = value;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tindexPeriod = key.indexOf(\".\");\r\n\t\tvar indexBracket = key.indexOf(\"[\");\r\n\r\n\t\tif (indexPeriod >= 0 && (indexBracket === -1 || indexPeriod < indexBracket)) {\r\n\t\t\t//We have object noation next\r\n\t\t\t//Get the value from the first period and onward\r\n\t\t\tvar endingKeyFromPeriod = key.substring(indexPeriod);\r\n\r\n\t\t\t//Get the actual object key\r\n\t\t\tkey = key.substring(0, indexPeriod);\r\n\r\n\t\t\t//If this object does not exist, create it.\r\n\t\t\tif (!currentObject[key]) {\r\n\t\t\t\tcurrentObject[key] = {};\r\n\t\t\t}\r\n\r\n\t\t\t//Handle the object\r\n\t\t\tthis._createNestedObjectFromQueryStringPieces(endingKeyFromPeriod, value, currentObject[key]);\r\n\t\t} else if (indexBracket >= 0) {\r\n\t\t\t//We have an array, handle it\r\n\t\t\tthis._createArrayFromQueryStringPieces(key, value, currentObject);\r\n\t\t}\r\n\t}\r\n};\r\n","var classNames = require(\"classnames\");\r\nvar ReactSelect = require(\"react-select\").default;\r\nvar Components = require(\"react-select\").components;\r\nvar Createable = require(\"react-select\").Creatable;\r\n\r\nclass ClearIndicator extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<span ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-clear-zone\" title=\"Clear all\" aria-label=\"Clear all\">\r\n\t\t\t\t<span className=\"Select-clear\">x</span>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass DropdownIndicator extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<span ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-arrow-zone\">\r\n\t\t\t\t<span className=\"Select-arrow\"></span>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass IndicatorsContainer extends React.Component {\r\n\trender() {\r\n\t\treturn this.props.children;\r\n\t}\r\n}\r\n\r\nclass IndicatorSeparator extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\tnull\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass Input extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div className=\"Select-input-wrapper\">\r\n\t\t\t\t<Components.Input\r\n\t\t\t\t\t{...this.props}\r\n\t\t\t\t\tclassName=\"Select-input\"\r\n\t\t\t\t\tstyle={{ display: \"inline-block\" }}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass MultiValueContainer extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-value\">\r\n\t\t\t\t{this.props.children[1]}\r\n\t\t\t\t{this.props.children[0]}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass MultiValueLabel extends React.Component {\r\n\trender() {\r\n\t\tvar data = this.props.data;\r\n\t\tvar label = typeof(data) === \"string\" ? data : (data && data.label);\r\n\t\treturn (\r\n\t\t\t<span ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-value-label\">\r\n\t\t\t\t{label}\r\n\t\t\t\t<span className=\"Select-aria-only\"> </span>\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass MultiValueRemove extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<span ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-value-icon\">x</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass Option extends React.Component {\r\n\thandleMouseDown(event) {\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tif (this.props.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.props.innerProps.onClick(this.props.data, event);\r\n\t}\r\n\r\n\thandleMouseEnter(event) {\r\n\t\tif (this.props.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.props.innerProps.onMouseOver(this.props.data, event);\r\n\t}\r\n\r\n\thandleMouseMove(event) {\r\n\t\tif (this.props.isFocused || this.props.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.props.innerProps.onMouseMove(this.props.data, event);\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar props = this.props;\r\n\t\tvar label = typeof(props.data) === \"string\" ? props.data : (props.data && props.data.label);\r\n\r\n\t\treturn (\r\n\t\t\t<div ref={this.props.innerRef} {...props.innerProps} className={classNames(\r\n\t\t\t\t\"Select-option\",\r\n\t\t\t\tprops.isSelected && \"is-selected\",\r\n\t\t\t\tprops.isFocused && \"is-focused\",\r\n\t\t\t\tprops.isDisabled && \"is-disabled\"\r\n\t\t\t)}\r\n\t\t\t\tonMouseDown={this.handleMouseDown.bind(this)}\r\n\t\t\t\tonMouseEnter={this.handleMouseEnter.bind(this)}\r\n\t\t\t\tonMouseMove={this.handleMouseMove.bind(this)}\r\n\t\t\t>\r\n\t\t\t\t{props.selectProps.hasValueDescriptionOptions &&\r\n\t\t\t\t\t<div className=\"row\">\r\n\t\t\t\t\t\t<div className=\"col-xs-4\">\r\n\t\t\t\t\t\t\t{props.children}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"col-xs-8\">\r\n\t\t\t\t\t\t\t<span className=\"label label-default\">{label}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t{!props.selectProps.hasValueDescriptionOptions && props.children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass Placeholder extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-placeholder\">\r\n\t\t\t\t{this.props.selectProps.placeholder || this.props.children}\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\nclass SelectContainer extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<Components.SelectContainer\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tclassName={classNames(\r\n\t\t\t\t\t\"Select\",\r\n\t\t\t\t\tthis.props.className,\r\n\t\t\t\t\tthis.props.selectProps.isMulti ? \"Select--multi\" : \"Select--single\",\r\n\t\t\t\t\tthis.props.selectProps.isSearchable && \"is-searchable\",\r\n\t\t\t\t\tthis.props.selectProps.isDisabled && \"is-disabled\",\r\n\t\t\t\t\tthis.props.hasValue && \"has-value\"\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t{this.props.children}\r\n\t\t\t</Components.SelectContainer>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass SingleValue extends React.Component {\r\n\trender() {\r\n\t\tvar label = this.props.data && this.props.data.label;\r\n\t\treturn (\r\n\t\t\t<div className=\"Select-value\">\r\n\t\t\t\t<span className=\"Select-value-label\">\r\n\t\t\t\t\t{this.props.children}\r\n\t\t\t\t\t{this.props.selectProps.hasValueDescriptionOptions &&\r\n\t\t\t\t\t\t<span className=\"label label-default\" style={{ marginLeft: 5 }}>{label}</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass ValueContainer extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<span ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-multi-value-wrapper\">\r\n\t\t\t\t{this.props.children}\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass Control extends React.Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<div ref={this.props.innerRef} {...this.props.innerProps} className=\"Select-control\">\r\n\t\t\t\t{this.props.children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nclass Select extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {};\r\n\t}\r\n\r\n\trender() {\r\n\t\tvar components = {\r\n\t\t\tClearIndicator,\r\n\t\t\tControl,\r\n\t\t\tDropdownIndicator,\r\n\t\t\tIndicatorsContainer,\r\n\t\t\tIndicatorSeparator,\r\n\t\t\tInput,\r\n\t\t\tMultiValueContainer,\r\n\t\t\tMultiValueLabel,\r\n\t\t\tMultiValueRemove,\r\n\t\t\tOption,\r\n\t\t\tPlaceholder,\r\n\t\t\tSelectContainer,\r\n\t\t\tSingleValue,\r\n\t\t\tValueContainer,\r\n\t\t};\r\n\r\n\t\treturn this.props.isCreatable ? (\r\n\t\t\t<Createable\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tcomponents={components}\r\n\t\t\t\tcloseMenuOnSelect={!this.props.isMulti}\r\n\t\t\t/>\r\n\t\t) : (\r\n\t\t\t<ReactSelect\r\n\t\t\t\t{...this.props}\r\n\t\t\t\tcomponents={components}\r\n\t\t\t\tinputValue={this.state.inputValue}\r\n\t\t\t\tonInputChange={(inputValue) => this.setState({ inputValue })}\r\n\t\t\t\tcloseMenuOnSelect={!this.props.isMulti}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nSelect.defaultProps = {};\r\n\r\nmodule.exports = Select;\r\n","\"use strict\";\r\n\r\nvar classnames = require(\"classnames\");\r\nvar LoggerInstance = require(\"js-logger\").get(\"Wizard\");\r\n\r\nvar Select = require(\"./Select\");\r\n\r\nvar RegExpHelper = require(\"../designer/RegExpHelper\");\r\n\r\nvar clearAllAnswersFromQuestion = function (model, questionDefinition) {\r\n\tdelete model[questionDefinition.property];\r\n\r\n\tif (questionDefinition.answers) {\r\n\t\tif (!Array.isArray(questionDefinition.answers)) {\r\n\t\t\t// TODO: this should not reach this point, if it does we need a US to investigate\r\n\t\t\tLoggerInstance.error(\"handle fetching answers -- clearAnswerNested\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!questionDefinition.doNotClearNestedAnswers) {\r\n\t\t\tclearAnswersNested(model, questionDefinition.answers);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvar clearAnswersNested = function (model, nonSelectedAnswers) {\r\n\tnonSelectedAnswers.forEach(nonSelectedAnswer => {\r\n\t\tif (nonSelectedAnswer.questions) {\r\n\t\t\tnonSelectedAnswer.questions.forEach(questionDefinition => {\r\n\t\t\t\t//If this is really a row of questions\r\n\t\t\t\tif (questionDefinition.row && questionDefinition.row.questions) {\r\n\t\t\t\t\tquestionDefinition.row.questions.forEach(rowQuestionDefinition => {\r\n\t\t\t\t\t\tclearAllAnswersFromQuestion(model, rowQuestionDefinition);\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Otherwise clear the answers for question\r\n\t\t\t\tclearAllAnswersFromQuestion(model, questionDefinition);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n};\r\n\r\nvar processDynamicQuestions = function (questionDefinition, answer) {\r\n\tif ((typeof questionDefinition.dynamicQuestions === \"function\")) {\r\n\t\tanswer.questions = questionDefinition.dynamicQuestions(answer.value);\r\n\t} else if (typeof (questionDefinition.dynamicQuestions) === \"string\") {\r\n\t\tvar dynamicQuestion;\r\n\t\tswitch (questionDefinition.dynamicQuestions) {\r\n\t\t\tcase \"forEachDescription\":\r\n\t\t\tcase \"forEachDescriptionAppendPropertyToValue\":\r\n\t\t\tcase \"forEachShortAndLongDescription\":\r\n\t\t\t\tvar propertyFromQuestion = \"\";\r\n\t\t\t\tif (questionDefinition.dynamicQuestions === \"forEachDescriptionAppendPropertyToValue\") {\r\n\t\t\t\t\tpropertyFromQuestion = `${questionDefinition.property}_`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdynamicQuestion = [{\r\n\t\t\t\t\tclassName: \"col-xs-8\",\r\n\t\t\t\t\tdefaultAnswer: answer.displayValue,\r\n\t\t\t\t\tdisabled: (model) => !!model[`${propertyFromQuestion}${answer.value}_Description_Default`],\r\n\t\t\t\t\tproperty: `${propertyFromQuestion}${answer.value}_Description`,\r\n\t\t\t\t\tquestion: `${answer.displayValue} Description`\r\n\t\t\t\t}, {\r\n\t\t\t\t\tclassName: \"col-xs-4\",\r\n\t\t\t\t\tdefaultAnswer: true,\r\n\t\t\t\t\tonChange: (model) => {\r\n\t\t\t\t\t\tif (model[`${propertyFromQuestion}${answer.value}_Description_Default`]) {\r\n\t\t\t\t\t\t\tmodel[`${propertyFromQuestion}${answer.value}_Description`] = answer.displayValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tproperty: `${propertyFromQuestion}${answer.value}_Description_Default`,\r\n\t\t\t\t\tquestion: \"Use Default Description\",\r\n\t\t\t\t\ttype: \"checkbox\"\r\n\t\t\t\t\t}];\r\n\r\n\t\t\t\tanswer.className = \"row\";\r\n\t\t\t\tanswer.questions = dynamicQuestion;\r\n\r\n\t\t\t\tif (questionDefinition.dynamicQuestions === \"forEachShortAndLongDescription\") {\r\n\t\t\t\t\tdynamicQuestion.push({\r\n\t\t\t\t\t\tclassName: \"col-xs-12\",\r\n\t\t\t\t\t\tproperty: `${propertyFromQuestion}${answer.value}_LongDescription`,\r\n\t\t\t\t\t\tquestion: `${answer.displayValue} Long Description`\r\n\t\t\t\t\t});\r\n\t\t\t\t\tanswer.className = \"row dynamicQuestionRow\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"subQuestionsShownUponAnswer\":\r\n\t\t\t\tif (answer && questionDefinition.questions) {\r\n\t\t\t\t\tanswer.questions = questionDefinition.questions;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tLoggerInstance.error(\"Unknown dynamicQuestions type while building select.\");\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar setAnswerNested = function (model, questions, savedModel, stateValues, callback) {\r\n\tif (questions) {\r\n\t\tvar inactiveDescriptionFetchesRemainingCount = questions.filter(question => question.mustIncludeSelectedAnswer).length;\r\n\r\n\t\tquestions.forEach(questionDefinition => {\r\n\t\t\t//If this is really a row of questions\r\n\t\t\tif (questionDefinition.row && questionDefinition.row.questions) {\r\n\t\t\t\tsetAnswerNested(model, questionDefinition.row.questions, savedModel, stateValues, callback);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//Mark if this needs to be removed from the savedModel\r\n\t\t\tif (questionDefinition.doNotSaveAnswer) {\r\n\t\t\t\tstateValues.doNotSaveProperties.push(questionDefinition.property)\r\n\t\t\t}\r\n\r\n\t\t\t//Otherwise set the answers for questions\r\n\t\t\tvar defaultAnswer = questionDefinition.defaultAnswer;\r\n\t\t\tvar propertyName = questionDefinition.property;\r\n\t\t\tvar value = model[propertyName];\r\n\r\n\t\t\tif (!model.hasOwnProperty(propertyName) || model[propertyName] === undefined || model[propertyName] === null) {\r\n\t\t\t\tif (savedModel && savedModel.hasOwnProperty(propertyName)) {\r\n\t\t\t\t\tvalue = savedModel[propertyName];\r\n\t\t\t\t} else if (defaultAnswer !== null && defaultAnswer !== undefined) {\r\n\t\t\t\t\tvalue = defaultAnswer;\r\n\t\t\t\t} else if (questionDefinition.disallowNull) {\r\n\t\t\t\t\tvalue = questionDefinition.answers[0].value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value || value === 0 || value === false) {\r\n\t\t\t\t\tif (questionDefinition.answers) {\r\n\t\t\t\t\t\tif (questionDefinition.multiple) {\r\n\t\t\t\t\t\t\tvar validAnswers = questionDefinition.answers.map(a => a.value);\r\n\t\t\t\t\t\t\tvalue = value.filter(v => validAnswers.indexOf(v) !== -1);\r\n\t\t\t\t\t\t} else if (questionDefinition.answers.findIndex(a => a.value === value) === -1 && !questionDefinition.mustIncludeSelectedAnswer) {\r\n\t\t\t\t\t\t\tvalue = null; // No valid value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodel[propertyName] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (questionDefinition.answers) {\r\n\t\t\t\tif (!Array.isArray(questionDefinition.answers)) {\r\n\t\t\t\t\t// TODO: this should not reach this point, if it does we need a US to investigate\r\n\t\t\t\t\tLoggerInstance.error(\"handle fetching answers -- setAnswerNested\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar nestedFetchAnswersCallback = () => {\r\n\t\t\t\t\tvar selectedAnswers = [];\r\n\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\tif (questionDefinition.multiple) {\r\n\t\t\t\t\t\t\tselectedAnswers = questionDefinition.answers.filter(answer => value.find(val => val == answer.value));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar answer = questionDefinition.answers.find(answer => answer.value == value);\r\n\t\t\t\t\t\t\tif (answer) {\r\n\t\t\t\t\t\t\t\tselectedAnswers.push(answer);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tselectedAnswers.forEach(selectedAnswer => {\r\n\t\t\t\t\t\tprocessDynamicQuestions(questionDefinition, selectedAnswer);\r\n\r\n\t\t\t\t\t\tif (selectedAnswer.submitText) {\r\n\t\t\t\t\t\t\tstateValues.submitText = selectedAnswer.submitText;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (selectedAnswer.cancelText) {\r\n\t\t\t\t\t\t\tstateValues.cancelText = selectedAnswer.cancelText;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (selectedAnswer.hasOwnProperty(\"canSubmit\")) {\r\n\t\t\t\t\t\t\tstateValues.canSubmit = selectedAnswer.canSubmit;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (selectedAnswer.hasOwnProperty(\"canCancel\")) {\r\n\t\t\t\t\t\t\tstateValues.canCancel = selectedAnswer.canCancel;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsetDynamicQuestionProperty(model, selectedAnswer.questions);\r\n\t\t\t\t\t\tif (stateValues.loadingInactiveValues && !inactiveDescriptionFetchesRemainingCount) {\r\n\t\t\t\t\t\t\tstateValues.loadingInactiveValues = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbeginFetchAnswers(model, selectedAnswer.questions, savedModel, stateValues, callback);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (questionDefinition.mustIncludeSelectedAnswer) {\r\n\t\t\t\t\tif (!value || questionDefinition.answers.find(answer => answer.value === value)) {\r\n\t\t\t\t\t\t// We don't need to fetch the description if we already have it\r\n\t\t\t\t\t\tinactiveDescriptionFetchesRemainingCount--;\r\n\t\t\t\t\t\tnestedFetchAnswersCallback();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//Try to get the full model of the selected answer, using the selected answer in the url\r\n\t\t\t\t\t\tvar selectedAnswerUrl = questionDefinition.selectedAnswerUrl || (questionDefinition.originalAnswers && questionDefinition.originalAnswers.selectedAnswerUrl);\r\n\t\t\t\t\t\t$.get({url: RegExpHelper.replaceFirstBraceTokenFromObject(selectedAnswerUrl, model)}, (data) => {\r\n\t\t\t\t\t\t\tquestionDefinition.answers.unshift({ displayValue: data && data.description ? data.description : value, value: value, label: value });\r\n\t\t\t\t\t\t}).always(() => {\r\n\t\t\t\t\t\t\tinactiveDescriptionFetchesRemainingCount--;\r\n\t\t\t\t\t\t\tnestedFetchAnswersCallback();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnestedFetchAnswersCallback();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n\r\nvar needToFetchAnswers = function (questions) {\r\n\tif (!questions) {\r\n\t\treturn false;\r\n\t}\r\n\treturn questions.some(questionDefinition => {\r\n\t\tif (questionDefinition.answers && (!Array.isArray(questionDefinition.answers) || questionDefinition.originalAnswers)) {\r\n\t\t\treturn true;\r\n\t\t} else if (questionDefinition.answers) {\r\n\t\t\treturn questionDefinition.answers.some(answerDefinition => {\r\n\t\t\t\tif (!answerDefinition.questions) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn needToFetchAnswers(answerDefinition.questions);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t});\r\n};\r\n\r\nvar needToCheckIfVisible = function (questions) {\r\n\tif (!questions) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn questions.some(questionDefinition => {\r\n\t\tif (questionDefinition.visible && typeof questionDefinition.visible === \"object\") {\r\n\t\t\treturn true;\r\n\t\t} else if (questionDefinition.answer) {\r\n\t\t\treturn questionDefinition.answers.some(answerDefinition => {\r\n\t\t\t\tif (!answerDefinition.questions) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn needToCheckIfVisible(answerDefinition.questions);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t});\r\n};\r\n\r\nvar fetchAnswersForQuestions = function (questions, currentCount, model, callback) {\r\n\tquestions.forEach(questionDefinition => {\r\n\t\t//If this is really a row of questions\r\n\t\tif (questionDefinition.row && questionDefinition.row.questions) {\r\n\t\t\tcurrentCount = fetchAnswersForQuestions(questionDefinition.row.questions, currentCount, model, callback);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Otherwise fetch answers for Questions\r\n\t\tif (questionDefinition.answers && (!Array.isArray(questionDefinition.answers) || questionDefinition.originalAnswers)) {\r\n\t\t\t++currentCount;\r\n\t\t\tfetchAnswers(questionDefinition, model, callback);\r\n\t\t} else if (questionDefinition.answers) {\r\n\t\t\tquestionDefinition.answers.forEach(answerDefinition => {\r\n\t\t\t\tif (answerDefinition.questions) {\r\n\t\t\t\t\tcurrentCount = fetchAnswersForQuestions(answerDefinition.questions, currentCount, model, callback);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\treturn currentCount;\r\n};\r\n\r\nvar fetchAnswers = function (questionDefinition, model, callback) {\r\n\tvar answerObject = questionDefinition.originalAnswers || questionDefinition.answers;\r\n\tvar url = answerObject.url;\r\n\tvar type = answerObject.type;\r\n\tvar valueProperty = answerObject.value;\r\n\tvar displayValueProperty = answerObject.displayValue || valueProperty;\r\n\tvar displayAlphabetical = answerObject.alphabetical;\r\n\tvar labelKey = questionDefinition.labelKey;\r\n\tvar answers = [];\r\n\r\n\twhile (url.indexOf(\"{\") >= 0) {\r\n\t\tquestionDefinition.originalAnswers = answerObject;\r\n\t\t//Replacing a URL that looks something like this \"/api/countries/{selectedCountry}/states\" with the \"selectedCountry\" value set on the model from a previous question\r\n\t\turl = RegExpHelper.replaceFirstBraceTokenFromObject(url, model);\r\n\t}\r\n\r\n\twhile (valueProperty.indexOf(\"{\") >= 0) {\r\n\t\tquestionDefinition.originalAnswers = answerObject;\r\n\t\t//Replacing a Value that looks something like this \"{selectedCountry}\" with the \"selectedCountry\" value set on the model from a previous question\r\n\t\tvalueProperty = RegExpHelper.replaceFirstBraceTokenFromObject(valueProperty, model);\r\n\t}\r\n\r\n\t$.get(url, (data) => {\r\n\t\tswitch (type) {\r\n\t\t\tcase \"collapseDescription\":\r\n\t\t\t\tdata = processCollapseDescriptionData(data, valueProperty);\r\n\t\t\t\tvalueProperty = \"value\";\r\n\t\t\t\tdisplayValueProperty = \"description\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"collapseDescriptionAppendPropertyToValue\":\r\n\t\t\t\tdata = processCollapseDescriptionData(data, valueProperty, `${valueProperty}_`);\r\n\t\t\t\tvalueProperty = \"value\";\r\n\t\t\t\tdisplayValueProperty = \"description\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"childArray\":\r\n\t\t\t\tif (typeof data === \"string\") {\r\n\t\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t\t}\r\n\t\t\t\tvar childName = answerObject.childName;\r\n\t\t\t\tdata = data[childName];\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"paging\":\r\n\t\t\t\t// TODO: enhance paging to handle multiple pages\r\n\t\t\t\tdata = data.items;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif (answerObject.staticEntries && answerObject.staticEntries.length) {\r\n\t\t\tanswers.push(...answerObject.staticEntries);\r\n\t\t}\r\n\r\n\t\tdata.forEach((dataAnswer, index) => {\r\n\t\t\tvar answerModel = {};\r\n\r\n\t\t\tif (displayValueProperty.indexOf(\"$\") !== -1) {\r\n\t\t\t\tanswerModel.displayValue = displayValueProperty.replace(/\\${(.*?)}/g, (match, submatch) => dataAnswer[submatch]);\r\n\t\t\t} else {\r\n\t\t\t\tanswerModel.displayValue = dataAnswer[displayValueProperty];\r\n\t\t\t}\r\n\r\n\t\t\tif (labelKey) {\r\n\t\t\t\tanswerModel.label = dataAnswer[labelKey];\r\n\t\t\t}\r\n\r\n\t\t\tanswerModel.value = dataAnswer[valueProperty];\r\n\t\t\tanswers.push(answerModel);\r\n\t\t});\r\n\r\n\t\tif (displayAlphabetical) {\r\n\t\t\tanswers.sort((a, b) => {\r\n\t\t\t\tvar value1 = ((a && (a.displayValue || a.value)) || \"\").toLowerCase();\r\n\t\t\t\tvar value2 = ((b && (b.displayValue || b.value)) || \"\").toLowerCase();\r\n\r\n\t\t\t\tif (value1 === value2) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (value1 < value2) ? -1 : 1;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tquestionDefinition.answers = answers;\r\n\t\tcallback();\r\n\t});\r\n};\r\n\r\nvar fetchIsVisibleForQuestions = function (questions, currentCount, model, callback) {\r\n\tquestions.forEach(questionDefinition => {\r\n\t\t//If this is really a row of questions\r\n\t\tif (questionDefinition.row && questionDefinition.row.questions) {\r\n\t\t\tcurrentCount = fetchIsVisibleForQuestions(questionDefinition.row.questions, currentCount, model, callback);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Otherwise fetch Is Visible for Questions\r\n\t\tif (questionDefinition.visible && typeof questionDefinition.visible === \"object\") {\r\n\t\t\t++currentCount;\r\n\t\t\tfetchIsVisible(questionDefinition, model, callback);\r\n\t\t} else if (Array.isArray(questionDefinition.answers)) {\r\n\t\t\tquestionDefinition.answers.forEach(answerDefinition => {\r\n\t\t\t\tif (answerDefinition.questions) {\r\n\t\t\t\t\tcurrentCount = fetchIsVisibleForQuestions(answerDefinition.questions, currentCount, model, callback);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\treturn currentCount;\r\n}\r\n\r\nvar fetchIsVisible = function (questionDefinition, model, callback) {\r\n\tvar visibleObject = questionDefinition.visible;\r\n\tvar url = visibleObject.url;\r\n\tvar field = visibleObject.field;\r\n\tvar value = visibleObject.value;\r\n\t//If you ever need to put a token in the URL, you can mirror what fetch answers is doing.'\r\n\t$.get(url, (data) => {\r\n\t\t//If the field on the data we get back from the API call matches our value, we are visible\r\n\t\tif (data && data[field] === value) {\r\n\t\t\t//So we can remove the visible property\r\n\t\t\tdelete questionDefinition.visible;\r\n\t\t} else {\r\n\t\t\t//Otherwise, we need to set visible to false\r\n\t\t\tquestionDefinition.visible = false;\r\n\t\t}\r\n\t\tcallback();\r\n\t});\r\n};\r\n\r\nvar processCollapseDescriptionData = function(data, valueProperty, descriptionAppendKey) {\r\n\tdescriptionAppendKey = descriptionAppendKey || \"\";\r\n\t//Getting values (that have forEachDescriptions) from another wizard answer\r\n\t//\tdata can be a string or an object\r\n\tif (data) {\r\n\t\tif (typeof data === \"string\") {\r\n\t\t\tdata = JSON.parse(data);\r\n\t\t}\r\n\t\tvar array = data[valueProperty];\r\n\t\tif (Array.isArray(array)) {\r\n\t\t\tdata = array.map(arrayValue => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tvalue: arrayValue,\r\n\t\t\t\t\tdescription: data[`${descriptionAppendKey}${arrayValue}_Description`]\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdata = [];\r\n\t\t}\r\n\t} else {\r\n\t\tdata = [];\r\n\t}\r\n\r\n\treturn data;\r\n};\r\n\r\nvar beginFetchAnswers = function (model, questions, savedModel, stateValues, callback) {\r\n\tvar totalCount;\r\n\tvar returnedCount = 0;\r\n\tvar needToFetch = needToFetchAnswers(questions);\r\n\tvar checkIfVisible = needToCheckIfVisible(questions);\r\n\tif (needToFetch || checkIfVisible) {\r\n\t\tquestions.forEach(question => {\r\n\t\t\tquestion.fetching = true;\r\n\t\t});\r\n\r\n\t\tvar fetchReturnCallback = function() {\r\n\t\t\t++returnedCount;\r\n\t\t\tif (totalCount && returnedCount === totalCount) {\r\n\t\t\t\tquestions.forEach(question => {\r\n\t\t\t\t\tquestion.fetching = false;\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Set the value at any level for defaultAnswer/savedModel\r\n\t\t\t\tsetAnswerNested(model, questions, savedModel, stateValues, callback);\r\n\t\t\t\tif ((typeof callback === \"function\")) {\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (needToFetch) {\r\n\t\t\ttotalCount = fetchAnswersForQuestions(questions, 0, model, fetchReturnCallback);\r\n\t\t}\r\n\r\n\t\tif (checkIfVisible) {\r\n\t\t\ttotalCount = totalCount + fetchIsVisibleForQuestions(questions, 0, model, fetchReturnCallback);\r\n\t\t}\r\n\t} else {\r\n\t\t// Set the value at any level for defaultAnswer/savedModel\r\n\t\tsetAnswerNested(model, questions, savedModel, stateValues, callback);\r\n\t\tif ((typeof callback === \"function\")) {\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar setDynamicQuestionProperty = function (model, questions) {\r\n\tif (!questions) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tquestions.forEach(question => {\r\n\t\tif (question.row && question.row.questions) {\r\n\t\t\tsetDynamicQuestionProperty(model, question.row.questions);\r\n\t\t} else {\r\n\t\t\tquestion.property = question.originalProperty || question.property;\r\n\r\n\t\t\twhile (question.property.indexOf(\"{\") >= 0) {\r\n\t\t\t\t//Replacing a questionDefinition property that looks like this \"{selectedCountry}\" with the selectedCountry that was set on the model from a previous question\r\n\t\t\t\tquestion.originalProperty = question.property;\r\n\t\t\t\tquestion.property = RegExpHelper.replaceFirstBraceTokenFromObject(question.property, model);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n};\r\n\r\nclass Wizard extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tvar model = {};\r\n\r\n\t\tif (props.initializeModelFromSavedModel && props.savedModel) {\r\n\t\t\tmodel = props.savedModel;\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tadditionalPageNumber: 0,\r\n\t\t\tadditionalPages: props.additionalPages,\r\n\t\t\tallowPartialSave: props.allowPartialSave,\r\n\t\t\tparagraph: props.paragraph,\r\n\t\t\tquestions: props.questions,\r\n\t\t\tmodel,\r\n\t\t\tloading: true,\r\n\t\t\tloadingInactiveValues: false,\r\n\t\t\tcanSubmit: props.canSubmit,\r\n\t\t\tcanCancel: props.canCancel,\r\n\t\t\tsubmitText: props.submitText,\r\n\t\t\tcancelText: props.cancelText,\r\n\t\t\temptyRequiredFieldsErrorMessage: null,\r\n\t\t\tinvalidInputFieldPatternErrorMessage: null,\r\n\t\t\tisDelayOpen: props.isDelayOpen || false\r\n\t\t};\r\n\t}\r\n\r\n\tsetValue(questionDefinition, propertyName, values) {\r\n\t\tvar possibleAnswers = questionDefinition.answers;\r\n\t\tvar model = this.state.model;\r\n\t\tvar stateValues = {\r\n\t\t\tsubmitText: this.state.submitText,\r\n\t\t\tcancelText: this.state.cancelText,\r\n\t\t\tcanSubmit: this.state.canSubmit,\r\n\t\t\tcanCancel: this.state.canCancel\r\n\t\t};\r\n\t\tvar selectedAnswers = [];\r\n\t\tvar nonSelectedAnswers = [];\r\n\t\tpossibleAnswers.forEach(answer => {\r\n\t\t\t// Use == for coercion, values are coming from option.value, always a string but our answers can be other types\r\n\t\t\tif (values.find(value => value == answer.value)) {\r\n\t\t\t\tselectedAnswers.push(answer);\r\n\t\t\t} else {\r\n\t\t\t\tnonSelectedAnswers.push(answer);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Clear the value at any level\r\n\t\tif (!questionDefinition.doNotClearNestedAnswers) {\r\n\t\t\tclearAnswersNested(model, nonSelectedAnswers);\r\n\t\t}\r\n\r\n\t\tif (questionDefinition.multiple) {\r\n\t\t\tmodel[propertyName] = [];\r\n\t\t} else {\r\n\t\t\tdelete model[propertyName];\r\n\t\t}\r\n\r\n\t\tselectedAnswers.sort((a, b) => values.indexOf(a.value) < values.indexOf(b.value) ? -1 : 1);\r\n\t\tselectedAnswers.forEach(selectedAnswer => {\r\n\t\t\tvar value = selectedAnswer.value;\r\n\r\n\t\t\tif (questionDefinition.multiple) {\r\n\t\t\t\tmodel[propertyName].push(value);\r\n\t\t\t} else {\r\n\t\t\t\tmodel[propertyName] = value;\r\n\t\t\t}\r\n\r\n\t\t\tif (selectedAnswer.submitText) {\r\n\t\t\t\tstateValues.submitText = selectedAnswer.submitText;\r\n\t\t\t}\r\n\t\t\tif (selectedAnswer.cancelText) {\r\n\t\t\t\tstateValues.cancelText = selectedAnswer.cancelText;\r\n\t\t\t}\r\n\t\t\tif (selectedAnswer.hasOwnProperty(\"canSubmit\")) {\r\n\t\t\t\tstateValues.canSubmit = selectedAnswer.canSubmit;\r\n\t\t\t}\r\n\t\t\tif (selectedAnswer.hasOwnProperty(\"canCancel\")) {\r\n\t\t\t\tstateValues.canCancel = selectedAnswer.canCancel;\r\n\t\t\t}\r\n\r\n\t\t\tprocessDynamicQuestions(questionDefinition, selectedAnswer);\r\n\r\n\t\t\t// Set the value at any level for defaultAnswer/savedModel\r\n\t\t\tsetDynamicQuestionProperty(model, selectedAnswer.questions);\r\n\t\t\tbeginFetchAnswers(model, selectedAnswer.questions, this.props.savedModel, stateValues, () => {\r\n\t\t\t\tthis.setState(stateValues);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tstateValues.model = model;\r\n\t\tthis.setState(stateValues);\r\n\t}\r\n\r\n\tgetEmptyRequiredFields(currentQuestions) {\r\n\t\tif (!currentQuestions) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tvar fieldNames = [];\r\n\r\n\t\tcurrentQuestions.forEach(eachQuestion => {\r\n\t\t\t//If the question is not visible return\r\n\t\t\tif(eachQuestion.visible === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar isQuestionRequired = eachQuestion.required;\r\n\t\t\tvar allowSpaces = eachQuestion.allowSpaces;\r\n\t\t\tvar questionAnswer = this.state.model[eachQuestion.property];\r\n\t\t\tvar isAnswerEmpty = questionAnswer === undefined ||\r\n\t\t\t\tquestionAnswer === null ||\r\n\t\t\t\t(typeof questionAnswer === \"string\" && (allowSpaces ? questionAnswer : questionAnswer.trim()) === \"\") ||\r\n\t\t\t\t(eachQuestion.type === \"checkbox\" && !questionAnswer);\r\n\r\n\t\t\t// If we're required and don't have a value we need to push onto the stack and return\r\n\t\t\t// because we don't care about child questions until it's answered\r\n\t\t\tif (isQuestionRequired && isAnswerEmpty) {\r\n\t\t\t\tfieldNames = fieldNames.concat( eachQuestion.property );\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// If it's required, we need to check to see if any below it are also required.\r\n\t\t\t// But we only want to check based on the selected answer\r\n\t\t\tif (eachQuestion.row && eachQuestion.row.questions) {\r\n\t\t\t\tfieldNames = fieldNames.concat(this.getEmptyRequiredFields(eachQuestion.row.questions, fieldNames));\r\n\t\t\t} else if (eachQuestion.answers) {\r\n\t\t\t\teachQuestion.answers.forEach(eachQuestionAnswer => {\r\n\t\t\t\t\tif (eachQuestionAnswer.value === questionAnswer && eachQuestionAnswer.questions) {\r\n\t\t\t\t\t\tfieldNames = fieldNames.concat(this.getEmptyRequiredFields(eachQuestionAnswer.questions, fieldNames));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn fieldNames;\r\n\t}\r\n\r\n\thasEmptyRequiredFields(questions) {\r\n\t\tvar emptyRequiredFields = this.getEmptyRequiredFields(questions);\r\n\t\tif (emptyRequiredFields.length) {\r\n\t\t\tvar message = `Unable to save, the following required fields are empty: [${emptyRequiredFields.join(\", \")}]`;\r\n\t\t\tLoggerInstance.error(message);\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\temptyRequiredFieldsErrorMessage: message\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.setState({\r\n\t\t\t\temptyRequiredFieldsErrorMessage: null\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn emptyRequiredFields.length > 0;\r\n\t}\r\n\r\n\tgetInvalidInputFieldPattern(questions) {\r\n\t\tif (!questions) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tvar invalidMessages = [];\r\n\r\n\t\tquestions.forEach(question => {\r\n\t\t\tvar questionAnswer = this.state.model[question.property];\r\n\t\t\tvar allowSpaces = question.allowSpaces;\r\n\t\t\tvar isAnswerEmpty = questionAnswer === undefined ||\r\n\t\t\t\tquestionAnswer === null ||\r\n\t\t\t\t(typeof questionAnswer === \"string\" && (allowSpaces ? questionAnswer : questionAnswer.trim()) === \"\") ||\r\n\t\t\t\t(question.type === \"checkbox\" && !questionAnswer);\r\n\r\n\t\t\tif (question.pattern && !isAnswerEmpty) {\r\n\t\t\t\tvar regex = new RegExp(question.pattern);\r\n\t\t\t\tif (!regex.test(questionAnswer)) {\r\n\t\t\t\t\tinvalidMessages.push(question.invalidMessage);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (question.row && question.row.questions) {\r\n\t\t\t\tinvalidMessages = invalidMessages.concat(this.getInvalidInputFieldPattern(question.row.questions));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn invalidMessages;\r\n\t}\r\n\r\n\thasInvalidInputFieldPattern(questions) {\r\n\t\tvar invalidMessages = this.getInvalidInputFieldPattern(questions);\r\n\r\n\t\tif (invalidMessages.length) {\r\n\t\t\tvar message = `Unable to save. There are invalid fields:\\n${invalidMessages.join(\"\\n\")}`;\r\n\t\t\tLoggerInstance.error(message);\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tinvalidInputFieldPatternErrorMessage: message\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.setState({\r\n\t\t\t\tinvalidInputFieldPatternErrorMessage: null\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn invalidMessages.length > 0;\r\n\t}\r\n\r\n\thandleSelectPropertyChange(questionDefinition, propertyName, event) {\r\n\t\tvar values = [...event.target.options].filter(option => option.selected).map(option => option.value);\r\n\t\tthis.setValue(questionDefinition, propertyName, values);\r\n\t}\r\n\r\n\thandleSelectSetValue(questionDefinition, propertyName, value) {\r\n\t\tif (!!questionDefinition.multiple !== Array.isArray(value)) {\r\n\t\t\tLoggerInstance.error(\"Value should only be array if question supports multiple values.\");\r\n\t\t}\r\n\r\n\t\tvar values = [];\r\n\t\tif (Array.isArray(value)) {\r\n\t\t\tvalues = value.map(option => option.value);\r\n\t\t} else if (!value) {\r\n\t\t\tvalues = [];\r\n\t\t} else {\r\n\t\t\tvalues = [value.value];\r\n\t\t}\r\n\t\tthis.setValue(questionDefinition, propertyName, values);\r\n\t}\r\n\r\n\thandlePropertyChange(questionDefinition, propertyName, event) {\r\n\t\tvar model = this.state.model;\r\n\t\tvar value = event.target.type === \"checkbox\" ? event.target.checked : event.target.value;\r\n\r\n\t\tif (event.target.type !== \"checkbox\" && questionDefinition.allCaps === true && value) {\r\n\t\t\tvalue = value.toUpperCase();\r\n\t\t}\r\n\r\n\t\t// We need to encode this value if it's a LongDescription\r\n\t\tif (value && propertyName.indexOf(\"_LongDescription\") >= 0) {\r\n\t\t\tvalue = encodeURIComponent(value);\r\n\t\t}\r\n\r\n\t\t// If a positive number is required, force the number entered to be positive and don't raise an error\r\n\t\tif (event.target.type === \"number\" && questionDefinition.requirePositive) {\r\n\t\t\tif (value != null && value !== 0 && !isNaN(value)) {\r\n\t\t\t\tvalue = Math.abs(value);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tmodel[propertyName] = value;\r\n\t\tif ((typeof questionDefinition.onChange === \"function\")) {\r\n\t\t\tquestionDefinition.onChange(model);\r\n\t\t}\r\n\t\telse if (questionDefinition.onChangeIfTrue && model[propertyName]) {\r\n\t\t\t//Currently this is used to be able to do the Default Message Checkbox, setting text box back to default value\r\n\t\t\tfor (var propertyToChange in questionDefinition.onChangeIfTrue) {\r\n\r\n\t\t\t\tif (questionDefinition.onChangeIfTrue.hasOwnProperty(propertyToChange)) {\r\n\t\t\t\t\tvar finalizedPropertyToChange = this.performPropertyReplacement(propertyToChange, model);\r\n\t\t\t\t\tmodel[finalizedPropertyToChange] = questionDefinition.onChangeIfTrue[propertyToChange];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setState({ model });\r\n\t}\r\n\r\n\tperformPropertyReplacement(text, model) {\r\n\t\twhile (text.indexOf(\"{\") >= 0) {\r\n\t\t\t//Replaces any occurrence of {propertyName} in 'text' with the current value of 'model[propertyName]'.\r\n\t\t\ttext = RegExpHelper.replaceFirstBraceTokenFromObject(text, model);\r\n\t\t}\r\n\r\n\t\treturn text;\r\n\t}\r\n\r\n\thandleSaveClick() {\r\n\t\tvar hasEmptyRequiredFields = this.hasEmptyRequiredFields(this.state.questions);\r\n\t\tvar hasInvalidInputFieldPattern = this.hasInvalidInputFieldPattern(this.state.questions);\r\n\r\n\t\tif (!hasEmptyRequiredFields && !hasInvalidInputFieldPattern)\r\n\t\t{\r\n\t\t\tvar additionalPages = this.state.additionalPages;\r\n\t\t\tvar additionalPageNumber = this.state.additionalPageNumber;\r\n\t\t\tvar stateValues = {\r\n\t\t\t\tloading: false\r\n\t\t\t};\r\n\r\n\t\t\t//Check if this wizard has additional pages it needs to show before saving\r\n\t\t\tif(additionalPages && additionalPages.length > additionalPageNumber) {\r\n\t\t\t\t//If so, get the page, set the details into state and then begin fetching answers\r\n\t\t\t\tvar newPage = additionalPages[additionalPageNumber];\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tparagraph: newPage.paragraph,\r\n\t\t\t\t\tquestions: newPage.questions,\r\n\t\t\t\t\tsubmitText: newPage.submitText,\r\n\t\t\t\t\tcancelText: newPage.cancelText,\r\n\t\t\t\t\tadditionalPageNumber: additionalPageNumber + 1,\r\n\t\t\t\t\tloading: true\r\n\t\t\t\t}, () => {\r\n\t\t\t\t\tbeginFetchAnswers(this.state.model, this.state.questions, this.props.savedModel, stateValues, () => {\r\n\t\t\t\t\t\tthis.setState(stateValues);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//Removing properties that should not be saved\r\n\t\t\tthis.state.doNotSaveProperties.forEach(property => {\r\n\t\t\t\tdelete this.state.model[property];\r\n\t\t\t});\r\n\r\n\t\t\tthis.props.onSave(this.state.model);\r\n\t\t}\r\n\t}\r\n\r\n\thandleSavePartialClick() {\r\n\t\tthis.props.onSave(this.state.model, /*isPartialSave*/ true);\r\n\t}\r\n\r\n\thandleCancelClick() {\r\n\t\tthis.props.onCancel();\r\n\t}\r\n\r\n\thandleDragStart(event) {\r\n\t\tevent.dataTransfer.dropEffect = \"move\";\r\n\t\tvar $dragElement = $(event.target);\r\n\r\n\t\t$dragElement.addClass(\"orderedSelectSource\");\r\n\t}\r\n\r\n\thandleDragOver(event) {\r\n\t\tevent.preventDefault();\r\n\t\tvar $parent = $(ReactDOM.findDOMNode(this));\r\n\t\tvar $dropTarget = $(event.target);\r\n\t\tvar $orderedSelectSource = $parent.find(\".orderedSelectSource\");\r\n\t\t$orderedSelectSource.hide();\r\n\r\n\t\tvar $parent = $(ReactDOM.findDOMNode(this));\r\n\t\tvar isSelectedList = false;\r\n\t\tif ($dropTarget.closest(\".selected\").length > 0) {\r\n\t\t\tisSelectedList = true;\r\n\t\t\t$parent.find(\".nonSelected .orderedSelectPlaceholder\").remove();\r\n\t\t} else {\r\n\t\t\t$parent.find(\".selected .orderedSelectPlaceholder\").remove();\r\n\t\t}\r\n\r\n\t\tvar placeholder = \"<li class='orderedSelectPlaceholder'></li>\";\r\n\t\tvar hasPlaceholder = $parent.find(\".orderedSelectPlaceholder\").length > 0;\r\n\t\tif ($dropTarget.is(\"li:not(.orderedSelectPlaceholder)\")) {\r\n\t\t\tvar isBefore = false;\r\n\t\t\tif (hasPlaceholder) {\r\n\t\t\t\tisBefore = $dropTarget.prev().is(\".orderedSelectPlaceholder\");\r\n\t\t\t\t$parent.find(\".orderedSelectPlaceholder\").remove();\r\n\t\t\t}\r\n\t\t\tif (isBefore) {\r\n\t\t\t\t$dropTarget.after(placeholder);\r\n\t\t\t} else {\r\n\t\t\t\t$dropTarget.before(placeholder);\r\n\t\t\t}\r\n\t\t} else if ($dropTarget.is(\".orderedSelect\") && $dropTarget.find(\"li\").length === 0 && !hasPlaceholder) {\r\n\t\t\t$dropTarget.append(placeholder);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\thandleDragEnd(event) {\r\n\t\tevent.stopPropagation();\r\n\t\tvar $parent = $(ReactDOM.findDOMNode(this));\r\n\t\tvar $orderedSelectSource = $parent.find(\".orderedSelectSource\");\r\n\r\n\t\t// Cleanup\r\n\t\t$orderedSelectSource.removeClass(\"orderedSelectSource\");\r\n\t\t$orderedSelectSource.show();\r\n\t\t$parent.find(\".orderedSelectPlaceholder\").remove();\r\n\t}\r\n\r\n\thandleDrop(questionDefinition, selectedAnswers, event) {\r\n\t\tevent.stopPropagation();\r\n\t\tvar $dropTarget = $(event.target);\r\n\t\tvar $parent = $(ReactDOM.findDOMNode(this));\r\n\t\tvar isSelectedList = false;\r\n\t\tvar propertyName = questionDefinition.property;\r\n\t\tvar values = selectedAnswers.map(answer => answer.value);\r\n\t\tvar $orderedSelectSource = $parent.find(\".orderedSelectSource\");\r\n\t\tvar $placeholder = $parent.find(\".orderedSelectPlaceholder\");\r\n\t\tvar changedAnswer = questionDefinition.answers.find(answer => answer.value == $orderedSelectSource.attr(\"data-value\"));\r\n\t\tvar selectedValue = changedAnswer.value;\r\n\t\tvar existingIndex = values.indexOf(changedAnswer.value);\r\n\r\n\t\tif ($dropTarget.closest(\".selected\").length > 0) {\r\n\t\t\tisSelectedList = true;\r\n\t\t}\r\n\r\n\t\tif (isSelectedList) {\r\n\t\t\t//We cannot use \"$.escapeSelector()\" until we upgrade to jQuery 3.0\r\n\t\t\t//CSS.escape is does not work in IE; this is Ok, as wizard is admin.\r\n\t\t\tvar desiredIndex = $dropTarget.closest(\".selected\").find(`li:not([data-value=\"${CSS.escape(selectedValue)}\"])`).index($placeholder);\r\n\t\t\tif (existingIndex !== -1) {\r\n\t\t\t\tvalues.splice(existingIndex, 1);\r\n\t\t\t}\r\n\t\t\tvalues.splice(desiredIndex, 0, selectedValue);\r\n\t\t} else {\r\n\t\t\tif (existingIndex !== -1) {\r\n\t\t\t\tvalues.splice(existingIndex, 1);\r\n\t\t\t} else {\r\n\t\t\t\t// TODO: should we support ordering the non-selected list?\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Cleanup\r\n\t\t$orderedSelectSource.show();\r\n\t\t$orderedSelectSource.removeClass(\"orderedSelectSource\");\r\n\t\t$placeholder.remove();\r\n\r\n\t\tthis.setValue(questionDefinition, propertyName, values);\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tinitialBeginFetchAnswers() {\r\n\t\t// Modifies the state\r\n\t\tvar stateValues = {\r\n\t\t\tcanCancel: this.state.canCancel,\r\n\t\t\tcanSubmit: this.state.canSubmit,\r\n\t\t\tcancelText: this.state.cancelText,\r\n\t\t\tdoNotSaveProperties: [],\r\n\t\t\tloading: this.state.isDelayOpen,\r\n\t\t\tloadingInactiveValues: this.state.questions && this.state.questions.some(question => question.mustIncludeSelectedAnswer),\r\n\t\t\tsubmitText: this.state.submitText\r\n\t\t};\r\n\t\tbeginFetchAnswers(this.state.model, this.state.questions, this.props.savedModel, stateValues, () => {\r\n\t\t\tthis.setState(stateValues);\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentWillMount() {\r\n\t\tif ((typeof this.props.onInitialLoadData === \"function\")) {\r\n\t\t\t//We are going to call this function. Currently the main purpose of this is to make an API call to see which wizard screen should be shown first\r\n\t\t\tthis.props.onInitialLoadData().done((newProps) => {\r\n\t\t\t\t//If it has new props, this means that the wizard is changing, so set those props in state, like we are doing in the constructor\r\n\t\t\t\tif (this._isMounted && newProps) {\r\n\t\t\t\t\tvar newState = {};\r\n\t\t\t\t\tif (newProps.initializeModelFromSavedModel && newProps.savedModel) {\r\n\t\t\t\t\t\tnewState.model = newProps.savedModel;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewState.additionalPages = newProps.additionalPages;\r\n\t\t\t\t\tnewState.allowPartialSave = newProps.allowPartialSave;\r\n\t\t\t\t\tnewState.paragraph = newProps.paragraph;\r\n\t\t\t\t\tnewState.questions = newProps.questions;\r\n\t\t\t\t\tnewState.additionalPages = newProps.additionalPages;\r\n\t\t\t\t\tnewState.loading = true;\r\n\t\t\t\t\tnewState.canSubmit = newProps.canSubmit === false ? false : true;\r\n\t\t\t\t\tnewState.canCancel = newProps.canCancel === false ? false : true;\r\n\t\t\t\t\tnewState.submitText = newProps.submitText;\r\n\t\t\t\t\tnewState.cancelText = newProps.cancelText;\r\n\t\t\t\t\tif (newState.additionalPages) {\r\n\t\t\t\t\t\tnewState.additionalPageNumber = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewState.isDelayOpen = false;\r\n\t\t\t\t\tthis.setState(newState, () => {\r\n\t\t\t\t\t\tif (newProps) {\r\n\t\t\t\t\t\t\t//Calling this so we can run through the beginFetchAnswers, like is done in componentDidMount\r\n\t\t\t\t\t\t\tthis.initialBeginFetchAnswers();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}).always(() => {\r\n\t\t\t\tif (this._isMounted) {\r\n\t\t\t\t\tthis.forceUpdate();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tthis._isMounted = false;\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis._isMounted = true;\r\n\r\n\t\tthis.initialBeginFetchAnswers();\r\n\t}\r\n\r\n\trenderOrderedSelect(questionDefinition, selectedAnswers, nonSelectedAnswers) {\r\n\t\treturn (\r\n\t\t\t<div className=\"row\" onDragStart={this.handleDragStart.bind(this)} onDragEnd={this.handleDragEnd.bind(this)} onDrop={this.handleDrop.bind(this, questionDefinition, selectedAnswers)}>\r\n\t\t\t\t{!questionDefinition.hideAdd &&\r\n\t\t\t\t\t<div className=\"nonSelected col-xs-6\">\r\n\t\t\t\t\t\t<ul className=\"orderedSelect\" onDragOver={this.handleDragOver.bind(this)}>\r\n\t\t\t\t\t\t\t{nonSelectedAnswers.map(nonSelectedAnswer => {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t\t\t\t\tkey={nonSelectedAnswer.value}\r\n\t\t\t\t\t\t\t\t\t\tdata-value={nonSelectedAnswer.value}\r\n\t\t\t\t\t\t\t\t\t\tdraggable=\"true\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{nonSelectedAnswer.displayValue}\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t<div className={`selected col-xs-${questionDefinition.hideAdd ? \"12\" : \"6\"}`}>\r\n\t\t\t\t\t<ul className=\"orderedSelect\" onDragOver={this.handleDragOver.bind(this)}>\r\n\t\t\t\t\t\t{selectedAnswers.map(selectedAnswer => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<li key={selectedAnswer.value}\r\n\t\t\t\t\t\t\t\t\tdata-value={selectedAnswer.value}\r\n\t\t\t\t\t\t\t\t\tdraggable=\"true\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{selectedAnswer.displayValue}\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\tensureAnswersAreObjects(answers) {\r\n\t\tif (!answers || !Array.isArray(answers)) {\r\n\t\t\treturn answers;\r\n\t\t}\r\n\r\n\t\tvar convertedAnswers = [];\r\n\t\tanswers.forEach(answer => {\r\n\t\t\tif (typeof answer !== \"object\") {\r\n\t\t\t\tconvertedAnswers.push({ value: answer, displayValue: answer });\r\n\t\t\t} else {\r\n\t\t\t\tconvertedAnswers.push(answer);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn convertedAnswers;\r\n\t}\r\n\r\n\trenderSelect(questionDefinition, propertyName) {\r\n\t\tvar hasGroups = questionDefinition.answers.some(answer => answer.isGroup);\r\n\t\tvar multiple = questionDefinition.multiple;\r\n\t\tvar ordering = questionDefinition.order && multiple;\r\n\t\tvar searchable = questionDefinition.searchable;\r\n\t\tvar labelKey = questionDefinition.labelKey;\r\n\t\tvar value = this.state.model[propertyName];\r\n\t\tif (!value && value !== 0) {\r\n\t\t\tvalue = multiple ? [] : \"\";\r\n\t\t}\r\n\t\tvar answers = [];\r\n\t\tvar selectedAnswers = [];\r\n\t\tvar nonSelectedAnswers = [];\r\n\r\n\t\tquestionDefinition.answers = this.ensureAnswersAreObjects(questionDefinition.answers);\r\n\r\n\t\tif (multiple) {\r\n\t\t\tquestionDefinition.answers.forEach(answer => {\r\n\t\t\t\tif (value.find(val => val == answer.value)) {\r\n\t\t\t\t\tselectedAnswers.push(answer);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnonSelectedAnswers.push(answer);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tselectedAnswers.sort((a, b) => value.indexOf(a.value) < value.indexOf(b.value) ? -1 : 1);\r\n\t\t} else if (value) {\r\n\t\t\tvar answer = questionDefinition.answers.find(answer => answer.value == value);\r\n\t\t\tif (answer) {\r\n\t\t\t\tselectedAnswers.push(answer);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (hasGroups) {\r\n\t\t\tvar group = null;\r\n\t\t\tquestionDefinition.answers.forEach(answer => {\r\n\t\t\t\tif (answer.isGroup) {\r\n\t\t\t\t\tgroup = { label: answer.displayValue || answer.value, answers: [] };\r\n\t\t\t\t\tanswers.push(group);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tgroup.answers.push(answer);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tanswers = questionDefinition.answers;\r\n\t\t}\r\n\r\n\t\tif (hasGroups && questionDefinition.order) {\r\n\t\t\tLoggerInstance.error(\"Option groups are not supported with ordering.\");\r\n\t\t}\r\n\t\tif (questionDefinition.order && !multiple) {\r\n\t\t\tLoggerInstance.error(\"Ordering is only supported with multiple select.\");\r\n\t\t}\r\n\r\n\t\tvar selectToRender;\r\n\t\tif (ordering) {\r\n\t\t\tselectToRender = this.renderOrderedSelect(questionDefinition, selectedAnswers, nonSelectedAnswers);\r\n\t\t} else if (searchable) {\r\n\t\t\tselectToRender = (\r\n\t\t\t\t<Select\r\n\t\t\t\t\thasValueDescriptionOptions={!!labelKey}\r\n\t\t\t\t\tisMulti={multiple}\r\n\t\t\t\t\tgetOptionLabel={option => option.displayValue}\r\n\t\t\t\t\tgetOptionValue={option => option.value}\r\n\t\t\t\t\tvalue={answers.filter(option => option.value === value)}\r\n\t\t\t\t\toptions={answers}\r\n\t\t\t\t\tonChange={this.handleSelectSetValue.bind(this, questionDefinition, propertyName)}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tselectToRender = (\r\n\t\t\t\t<select\r\n\t\t\t\t\t\tclassName=\"form-control\"\r\n\t\t\t\t\t\tdata-property={propertyName}\r\n\t\t\t\t\t\tonChange={this.handleSelectPropertyChange.bind(this, questionDefinition, propertyName)}\r\n\t\t\t\t\t\tdisabled={questionDefinition.disabled}\r\n\t\t\t\t\t\tmultiple={multiple}\r\n\t\t\t\t\t\tsize={multiple ? Math.min(questionDefinition.answers.length, 10) : undefined}\r\n\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t>\r\n\t\t\t\t\t{!multiple && !questionDefinition.disallowNull && <option /> }\r\n\t\t\t\t\t{hasGroups ?\r\n\t\t\t\t\t\tanswers.map(group => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<optgroup label={group.label} key={group.label}>\r\n\t\t\t\t\t\t\t\t\t{group.answers.map(answer => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t<option value={answer.value} key={answer.value}>{answer.displayValue || answer.value}</option>\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t</optgroup>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t:\r\n\t\t\t\t\t\tanswers.map(answer => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<option value={answer.value} key={answer.value}>{answer.displayValue || answer.value}</option>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t</select>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t{selectToRender}\r\n\t\t\t\t{selectedAnswers && !questionDefinition.hideDescriptions &&\r\n\t\t\t\t\tselectedAnswers.map(selectedAnswer => {\r\n\t\t\t\t\t\tif (!selectedAnswer.questions) {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<div className={selectedAnswer.className} key={selectedAnswer.value}>\r\n\t\t\t\t\t\t\t\t{selectedAnswer.questions.map((subQuestionDefinition, index) => {\r\n\t\t\t\t\t\t\t\t\treturn this.renderQuestion(subQuestionDefinition, index);\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trenderQuestion(questionDefinition, index, isTopLevel) {\r\n\t\t//This allows us to break questions up into rows\r\n\t\tif (questionDefinition.row && questionDefinition.row.questions) {\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"row\" key={index}>\r\n\t\t\t\t\t{(isTopLevel && index > 0 && !questionDefinition.hideHorizontalRule) && <hr/>}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tquestionDefinition.row.questions.map((rowQuestionDefinition, index) => {\r\n\t\t\t\t\t\t\treturn this.renderQuestion(rowQuestionDefinition, index);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (questionDefinition.visible === false) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\t//Rendering the actual question itself\r\n\t\tvar propertyName = questionDefinition.property;\r\n\r\n\t\tif (questionDefinition.fetching) {\r\n\t\t\treturn (\r\n\t\t\t\t<div key={`${propertyName}_loading`} className=\"spinner\" style={{ minHeight: \"200px\", maxHeight: \"500px\", height: \"unset\" }}>\r\n\t\t\t\t\t<i className=\"fa fa-spinner fa-spin\"></i>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (questionDefinition.labelText && questionDefinition.answers) {\r\n\t\t\tLoggerInstance.error(\"Label is only supported with text input.\");\r\n\t\t}\r\n\r\n\t\tvar disabled = false;\r\n\t\tif ((typeof questionDefinition.disabled === \"function\")) {\r\n\t\t\tdisabled = questionDefinition.disabled(this.state.model);\r\n\t\t} else if (typeof questionDefinition.disabled === \"string\") {\r\n\t\t\tvar disabledValue = this.performPropertyReplacement(questionDefinition.disabled, this.state.model)\r\n\t\t\tdisabled = !!this.state.model[disabledValue];\r\n\t\t}\r\n\r\n\t\tvar propertyValue = this.state.model[propertyName];\r\n\r\n\t\treturn (\r\n\t\t\t<div key={propertyName} className={questionDefinition.className}>\r\n\t\t\t\t{(isTopLevel && index > 0 && !questionDefinition.hideHorizontalRule) && <hr />}\r\n\t\t\t\t<div className=\"wizardQuestion\">\r\n\t\t\t\t\t<span>{questionDefinition.question}</span>\r\n\t\t\t\t\t{questionDefinition.paragraph && Wizard.renderWizardParagraph(questionDefinition.paragraph, /*isQuestionParagraph*/ true)}\r\n\t\t\t\t</div>\r\n\t\t\t\t{questionDefinition.answers ?\r\n\t\t\t\t\tthis.renderSelect(questionDefinition, propertyName)\r\n\t\t\t\t:\r\n\t\t\t\t\t<div className=\"wizardQuestionSimple\">\r\n\t\t\t\t\t\t{questionDefinition.labelText &&\r\n\t\t\t\t\t\t\t<label className=\"wizardQuestionLabel\">{questionDefinition.labelText}</label>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{questionDefinition.type === \"checkbox\" &&\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tid={propertyName}\r\n\t\t\t\t\t\t\t\tdata-property={propertyName}\r\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\tchecked={propertyValue || false}\r\n\t\t\t\t\t\t\t\tonChange={this.handlePropertyChange.bind(this, questionDefinition, propertyName)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{questionDefinition.type === \"textarea\" &&\r\n\t\t\t\t\t\t\t<textarea\r\n\t\t\t\t\t\t\t\tid={propertyName}\r\n\t\t\t\t\t\t\t\tclassName={classnames(\"form-control\", disabled)}\r\n\t\t\t\t\t\t\t\tdata-property={propertyName}\r\n\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\tvalue={propertyValue || \"\"}\r\n\t\t\t\t\t\t\t\tonChange={this.handlePropertyChange.bind(this, questionDefinition, propertyName)}\r\n\t\t\t\t\t\t\t\tplaceholder={questionDefinition.placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\tmaxLength={questionDefinition.maxLength}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{questionDefinition.type === \"number\" &&\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tid={propertyName}\r\n\t\t\t\t\t\t\t\tclassName={classnames(\"form-control\", disabled)}\r\n\t\t\t\t\t\t\t\tdata-property={propertyName}\r\n\t\t\t\t\t\t\t\ttype=\"number\"\r\n\t\t\t\t\t\t\t\tvalue={(!propertyValue && propertyValue !== 0) ? \"\" : propertyValue}\r\n\t\t\t\t\t\t\t\tonChange={this.handlePropertyChange.bind(this, questionDefinition, propertyName)}\r\n\t\t\t\t\t\t\t\tplaceholder={questionDefinition.placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\tmaxLength={questionDefinition.maxLength}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{(questionDefinition.type !== \"checkbox\" && questionDefinition.type !== \"textarea\" && questionDefinition.type !== \"number\" && questionDefinition.type !== \"none\") &&\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tid={propertyName}\r\n\t\t\t\t\t\t\t\tclassName={classnames(\"form-control\", disabled)}\r\n\t\t\t\t\t\t\t\tdata-property={propertyName}\r\n\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\tvalue={propertyValue && propertyName.indexOf(\"_LongDescription\") > -1 ? decodeURIComponent(propertyValue) : propertyValue || \"\"}\r\n\t\t\t\t\t\t\t\tonChange={this.handlePropertyChange.bind(this, questionDefinition, propertyName)}\r\n\t\t\t\t\t\t\t\tplaceholder={questionDefinition.placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t\tmaxLength={questionDefinition.maxLength}\r\n\t\t\t\t\t\t\t\tpattern={questionDefinition.pattern}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\tif (this.state.loading || this.state.loadingInactiveValues) {\r\n\t\t\treturn (\r\n\t\t\t\t<div className=\"spinner\" style={{ minHeight: \"200px\", maxHeight: \"500px\", height: \"unset\" }}>\r\n\t\t\t\t\t<i className=\"fa fa-spinner fa-spin\"></i>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvar disableSubmit = !this.state.canSubmit;\r\n\t\tvar disableCancel = !this.state.canCancel;\r\n\r\n\t\treturn (\r\n\t\t\t<div className={classnames(\"wizard\")}>\r\n\t\t\t\t{this.state.paragraph &&\r\n\t\t\t\t\tWizard.renderWizardParagraph(this.state.paragraph)\r\n\t\t\t\t}\r\n\t\t\t\t{this.state.questions &&\r\n\t\t\t\t\tthis.state.questions.map((questionDefinition, index) => {\r\n\t\t\t\t\t\treturn this.renderQuestion(questionDefinition, index, true);\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\t{this.state.emptyRequiredFieldsErrorMessage &&\r\n\t\t\t\t\t<div className=\"save-error-message alert alert-danger\">{this.state.emptyRequiredFieldsErrorMessage}</div>\r\n\t\t\t\t}\r\n\t\t\t\t{this.state.invalidInputFieldPatternErrorMessage &&\r\n\t\t\t\t\t<div className=\"save-error-message alert alert-danger\" style={{ \"whiteSpace\": \"pre-wrap\" }}>{this.state.invalidInputFieldPatternErrorMessage}</div>\r\n\t\t\t\t}\r\n\t\t\t\t<div className=\"wizardFooter\">\r\n\t\t\t\t\t<button className=\"btn btn-success\" onClick={this.handleSaveClick.bind(this)} disabled={disableSubmit}>{this.state.submitText}</button>\r\n\t\t\t\t\t{this.state.allowPartialSave &&\r\n\t\t\t\t\t\t<button className=\"btn btn-success\" onClick={this.handleSavePartialClick.bind(this)} disabled={disableSubmit}>Save as Draft</button>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{(!disableCancel || !this.props.dialog.defaultOptions.hasOwnProperty(\"closable\") || this.props.dialog.defaultOptions.closable) &&\r\n\t\t\t\t\t\t<button className=\"btn btn-default\" onClick={this.handleCancelClick.bind(this)} disabled={disableCancel}>{this.state.cancelText || \"Cancel\"}</button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n\r\nWizard.defaultProps = {};\r\n\r\nWizard.renderWizardParagraph = (paragraph, isQuestionParagraph = false) => {\r\n\tif (!paragraph) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (typeof paragraph === \"string\") {\r\n\t\treturn <p className={classnames(isQuestionParagraph ? \"wizardQuestionTip\" : \"wizardTip\")}>{paragraph}</p>\r\n\t}\r\n\r\n\tif (typeof paragraph === \"object\") {\r\n\t\treturn <div className={classnames(isQuestionParagraph ? \"wizardQuestionTip\" : \"wizardTip\")} dangerouslySetInnerHTML={paragraph} />\r\n\t}\r\n\r\n\treturn null;\r\n};\r\n\r\nmodule.exports = Wizard;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SponsorshipHelper\");\r\n\r\nvar SponsorshipHelper = class {\r\n\r\n\t/**\r\n\t * Calculate a new per-payment amount based on the newly-selected frequency\r\n\t * @param {int} defaultAmount default amount set in the sponsorship defaults wizard\r\n\t * @param {string} selectedFrequency new frequency selected from sponsorship/my account page\r\n\t * @param {string} initialFrequency the frequency used for the defaultAmount\r\n\t * @returns {int} updated per-payment amount\r\n\t */\r\n\tcalculateUpdatedTotal(defaultAmount, selectedFrequency, initialFrequency) {\r\n\t\tdefaultAmount = Number(defaultAmount);\r\n\r\n\t\tif (initialFrequency && initialFrequency !== \"M\") {\r\n\t\t\tif (selectedFrequency === initialFrequency) {\r\n\t\t\t\treturn defaultAmount;\r\n\t\t\t}\r\n\r\n\t\t\t//Converting the defaultAmount to the appropriate amount for monthly frequency\r\n\t\t\tswitch (initialFrequency) {\r\n\t\t\t\tcase \"A\":\r\n\t\t\t\t\tdefaultAmount /= 12;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"S\":\r\n\t\t\t\t\tdefaultAmount /= 6;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"Q\":\r\n\t\t\t\t\tdefaultAmount /= 3;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tLoggerInstance.error(`Initial frequency ${selectedFrequency} is not supported.`);\r\n\t\t\t\t\treturn defaultAmount;\r\n\t\t\t}\r\n\t\t}\r\n\t\t//Converting monthly frequency to the appropriate amount for the selectedFrequency\r\n\t\tswitch (selectedFrequency) {\r\n\t\t\tcase \"A\":\r\n\t\t\t\t//Doing a ceiling on the hundreths decimal place because the possible division up above can produce some ugly decimals\r\n\t\t\t\t//Using the approach found here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil#Decimal_adjustment\r\n\t\t\t\treturn +(Math.ceil(defaultAmount * 12 + \"e+2\") + \"e-2\");\r\n\t\t\tcase \"S\":\r\n\t\t\t\treturn +(Math.ceil(defaultAmount * 6 + \"e+2\") + \"e-2\");\r\n\t\t\tcase \"Q\":\r\n\t\t\t\treturn +(Math.ceil(defaultAmount * 3 + \"e+2\") + \"e-2\");\r\n\t\t\tcase \"M\":\r\n\t\t\t\treturn +(Math.ceil(defaultAmount + \"e+2\") + \"e-2\");\r\n\t\t\tdefault:\r\n\t\t\t\tLoggerInstance.error(`Select frequency ${selectedFrequency} is not supported.`);\r\n\t\t\t\treturn +(Math.ceil(defaultAmount + \"e+2\") + \"e-2\");;\r\n\t\t}\r\n\t}\r\n\r\n\tgetChildSponsorshipTagHelperAttributes() {\r\n\t\t// These values are also in Common.Components.Helpers.SponsorshipHelper\r\n\t\treturn {\r\n\t\t\t\"aso-child-sponsorship-availability\": true,\r\n\t\t\t\"aso-data-tangible\": '@Model?.Tangible',\r\n\t\t\t\"aso-data-user-id\": \"@ViewBag.UserId\",\r\n\t\t\t\"is-design-mode\": \"@ViewBag.IsDesignMode\"\r\n\t\t};\r\n\t}\r\n\r\n\tcalculateUpdatedTotalForMySponsorships($editSponsorship, currentFrequencyValue) {\r\n\t\tvar defaultAmount = $editSponsorship.attr(\"data-pledge-amount\");\r\n\t\tvar initialFrequency = $editSponsorship.attr(\"data-pledge-initial-frequency\");\r\n\r\n\t\treturn this.calculateUpdatedTotal(+defaultAmount, currentFrequencyValue, initialFrequency);\r\n\t}\r\n};\r\n\r\nmodule.exports = new SponsorshipHelper();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SponsorshipSearchHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar SponsorshipApi = require(\"../api/SponsorshipApi\");\r\n\r\nvar HistoryHelper = require(\"../shared/HistoryHelper\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\nvar LinkMessageHelper = require(\"../shared/LinkMessageHelper\");\r\nvar QueryStringHelper = require(\"../shared/QueryStringHelper\");\r\n\r\nvar GridListToggleHelper = require(\"../designer/components/searchResults/GridListToggleHelper\");\r\n\r\nvar SponsorshipSearchHelper = {\r\n\tinitializeSponsorshipSearchForm: function(isDesignMode, $component, layoutName, isIncorrectSearchId) {\r\n\t\t//Setting the listener on the submit button\r\n\t\tvar $sponsorshipSearchFormComponents = $($component || \"[data-component='sponsorshipSearchForm']\");\r\n\t\t$sponsorshipSearchFormComponents.each((index, element) => {\r\n\t\t\t// We were passing in sponsorshipSearchOtherForm, but we don't currently support other sponsorships. Chris R. confirmed we can remove it from this find.\r\n\t\t\tvar $form = $(element).find(\"form#sponsorshipSearchChildForm\").first();\r\n\t\t\t$form.off(\"submit.sponsorshipSearchForm\");\r\n\t\t\t$form.on(\"submit.sponsorshipSearchForm\", this._submitSponsorshipSearchForm.bind(this, isDesignMode));\r\n\t\t});\r\n\r\n\t\tif (!isDesignMode) {\r\n\t\t\tthis.layoutName = layoutName;\r\n\r\n\t\t\t//This is used to let the HistoryHelper know when to add state or push state. If the id is the same as passed in last time, we replace the state.\r\n\t\t\t//\tEach time a new action occurs (search, paging, etc.), the state should be pushed.\r\n\t\t\twindow.lastUpdateId = 0;\r\n\t\t\t//Seeing if we have any criteria in the query string\r\n\t\t\tvar query = window.location.search;\r\n\t\t\tif (query) {\r\n\t\t\t\tquery = query.substring(1);\r\n\t\t\t\tvar currentQueryObject = QueryStringHelper.createObjectFromQueryString(query) || {};\r\n\r\n\t\t\t\tvar foundInput = this._updateSearchFormFields(currentQueryObject, $sponsorshipSearchFormComponents);\r\n\r\n\t\t\t\tif (foundInput) {\r\n\t\t\t\t\tvar $firstSearchForm = $sponsorshipSearchFormComponents.first();\r\n\r\n\t\t\t\t\tif (!currentQueryObject.id && !currentQueryObject.c) {\r\n\t\t\t\t\t\t//Only search if do not have an Id. Otherwise, we probably already did the search before the page loaded.\r\n\t\t\t\t\t\tthis._performSponsorshipSearchFromSearchForm($firstSearchForm);\r\n\t\t\t\t\t} else if (isIncorrectSearchId) {\r\n\t\t\t\t\t\t//An Id was incorrect when trying to run the search on the server, remove the Ids, keep the criteria and try the search again\r\n\t\t\t\t\t\tisIncorrectSearchId = false;\r\n\t\t\t\t\t\tvar criteria = this._getCriteria($firstSearchForm);\r\n\t\t\t\t\t\tthis._resetSearch(criteria);\r\n\t\t\t\t\t\tthis._performSponsorshipSearchFromSearchForm($firstSearchForm);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.initializeSponsorshipSearchResultsButton(isDesignMode);\r\n\t\t\tthis._initializeGridListToggle();\r\n\r\n\t\t\twindow.onpopstate = (event) => {\r\n\t\t\t\tthis._handlePopState(event);\r\n\t\t\t};\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeSponsorshipSearchResultsButton(isDesignMode, $component) {\r\n\t\tvar $childSponsorship = ($component || $(\"body\")).find(\"[data-component='sponsorshipSearchResults.child']\")\r\n\t\tvar $buttonElements = $childSponsorship.find(\"[data-component='sponsorshipSearchResults.button']\");\r\n\t\tif (!isDesignMode) {\r\n\t\t\t//For the search button\r\n\t\t\t$buttonElements.off(\"mousedown.initializeResultsButton\");\r\n\t\t\t$buttonElements.on(\"mousedown.initializeResultsButton\", (event) => {\r\n\t\t\t\tthis.mouseDownId = $(event.target).attr(\"id\");\r\n\t\t\t\tif (event && event.which === 2) {\r\n\t\t\t\t\t//Making it so middle click does not try to allow the user to scroll\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$buttonElements.off(\"mouseup.initializeResultsButton\");\r\n\t\t\t$buttonElements.on(\"mouseup.initializeResultsButton\", (event) => {\r\n\t\t\t\tvar $element = $(event.target);\r\n\t\t\t\tif (this.mouseDownId === $element.attr(\"id\")) {\r\n\t\t\t\t\tthis._navigateToTangible(false, event);\r\n\t\t\t\t}\r\n\t\t\t\tthis.mouseDownId = null;\r\n\t\t\t});\r\n\t\t\t$(\"body\").off(\"mouseup.initializeResultsButton\");\r\n\t\t\t$(\"body\").on(\"mouseup.initializeResultsButton\", () => {\r\n\t\t\t\tthis.mouseDownId = null;\r\n\t\t\t});\r\n\r\n\t\t\t//For text and image anchor links\r\n\t\t\tvar linkElements = $childSponsorship.find(\"[data-dynamic-href='sponsor-a-child']\");\r\n\t\t\tlinkElements.off(\"click.initializeResultsButton\");\r\n\t\t\tlinkElements.on(\"click.initializeResultsButton\", (event) => {\r\n\t\t\t\tthis._navigateToTangible(false, event);\r\n\t\t\t\tif (event.which === 1) {\r\n\t\t\t\t\t//Only prevent default, etc. if left-clicking. Otherwise, let it do what it normally does, most likely open a new tab.\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$buttonElements.off(\"click.initializeResultsButton\");\r\n\t\t\t$buttonElements.on(\"click.initializeResultsButton\", (event) => {\r\n\t\t\t\tthis._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"sponsor-a-child\"), isDesignMode);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tperformSponsorshipSearch: function(sponsorshipSearchResultsId, pageNumber, sponsorshipType, criteria, additionalOptions) {\r\n\t\tvar currentUpdateId = lastUpdateId + 1;\r\n\t\tadditionalOptions = additionalOptions || {};\r\n\t\tvar $sponsorshipSearchResultsComponents = $(\"[data-component='sponsorshipSearchResults']\");\r\n\t\tif (sponsorshipSearchResultsId) {\r\n\t\t\t$sponsorshipSearchResultsComponents = $sponsorshipSearchResultsComponents.filter(`#${sponsorshipSearchResultsId}`);\r\n\t\t}\r\n\t\t//If there is no criteria, we might be paging, make sure we have it so that the browser history and query strings are updated appropriately.\r\n\t\tcriteria = criteria || this._getCriteria($(\"[data-component='sponsorshipSearchForm']\").first());\r\n\r\n\t\tvar isInitialSearch = !sponsorshipSearchResultsId && !pageNumber && (!additionalOptions || additionalOptions.isInitialSearch !== false);\r\n\r\n\t\t$sponsorshipSearchResultsComponents.each((index, sponsorshipSearchResultsComponent) => {\r\n\t\t\tvar $sponsorshipSearchResultsComponent = $(sponsorshipSearchResultsComponent);\r\n\t\t\tsponsorshipSearchResultsId = $sponsorshipSearchResultsComponent.attr(\"id\");\r\n\t\t\tvar additionalSearchOptions = additionalOptions[sponsorshipSearchResultsId] || {};\r\n\t\t\tvar databaseSearchId = !isInitialSearch ? (additionalSearchOptions.id ? additionalSearchOptions.searchId : $sponsorshipSearchResultsComponent.find(\"[data-component='sponsorshipSearchResults.populated']\").attr(\"data-search-id\")) : undefined;\r\n\t\t\tvar limit = $sponsorshipSearchResultsComponent.attr(\"data-limit\");\r\n\t\t\tvar offset = additionalSearchOptions.offset ? additionalSearchOptions.offset : (pageNumber ? (limit * (pageNumber - 1)) : undefined);\r\n\t\t\tvar gridOrListSelected = $sponsorshipSearchResultsComponent.attr(\"data-selected-results-view\");\r\n\t\t\tif (!sponsorshipType) {\r\n\t\t\t\tsponsorshipType = $sponsorshipSearchResultsComponent.find(\"[data-component='sponsorshipSearchResults.child']\").length ? \"CHILD\" : \"OTHER\";\r\n\t\t\t}\r\n\r\n\t\t\tSponsorshipApi.search({\r\n\t\t\t\tcriteria: criteria,\r\n\t\t\t\tid: sponsorshipSearchResultsId,\r\n\t\t\t\tlayoutId: window.layoutId,\r\n\t\t\t\tlayoutName: this.layoutName,\r\n\t\t\t\tlimit: limit,\r\n\t\t\t\toffset: offset,\r\n\t\t\t\tsearchId: databaseSearchId,\r\n\t\t\t\tsponsorshipType\r\n\t\t\t}).done((data) => {\r\n\t\t\t\t// Unmount existing react components on paging after the search so we do not get that disappearing React component issue.\r\n\t\t\t\t$sponsorshipSearchResultsComponent.find(\"[data-react-component-name]\").each(function() {\r\n\t\t\t\t\tReactDOM.unmountComponentAtNode(this.parentElement);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//Set new sponsorshipSearchResultsComponent\r\n\t\t\t\tvar $data = $(data);\r\n\t\t\t\t$sponsorshipSearchResultsComponent.html($data);\r\n\r\n\t\t\t\tthis.initializeSponsorshipSearchResultsButton(/*isDesignMode*/false);\r\n\t\t\t\tthis._initializeGridListToggle(sponsorshipSearchResultsId, gridOrListSelected);\r\n\r\n\t\t\t\t//Get the new searchId (in the case this is the first search)\r\n\t\t\t\t//\tnull will remove searchId from the query string if there were no results found.\r\n\t\t\t\tdatabaseSearchId = $sponsorshipSearchResultsComponent.find(\"[data-component='sponsorshipSearchResults.populated']\").attr(\"data-search-id\") || null;\r\n\r\n\t\t\t\tif (!additionalOptions.doNotPushState) {\r\n\t\t\t\t\t//Saving History state if we need to do so\r\n\t\t\t\t\tvar searchObject = Object.assign({\r\n\t\t\t\t\t\tid: sponsorshipSearchResultsId,\r\n\t\t\t\t\t\tsearchId: databaseSearchId\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (pageNumber) {\r\n\t\t\t\t\t\tsearchObject.offset = offset;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//We should clear the offset\r\n\t\t\t\t\t\t//\tUndefined won't work as those are removed before the Object.assign\r\n\t\t\t\t\t\t//\tWe specifically need null because in the Object.assign it will replace the old offset, and then null values are removed before creating the query string\r\n\t\t\t\t\t\tsearchObject.offset = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._updateHistoryStateAfterSearch(criteria, searchObject, currentUpdateId);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (sponsorshipSearchResultsId) {\r\n\t\t\t\t\t// Scroll to top of component which was paged\r\n\t\t\t\t\tvar $newSponsorshipSearchResultsComponent = $(`#${sponsorshipSearchResultsId}`);\r\n\t\t\t\t\tvar $window = $(window);\r\n\t\t\t\t\tvar top = $newSponsorshipSearchResultsComponent.offset().top;\r\n\t\t\t\t\tvar distanceToTop = top - $window.scrollTop();\r\n\t\t\t\t\tif (distanceToTop < 0 || distanceToTop > $window.height()) {\r\n\t\t\t\t\t\t$(\"html, body\").animate({ scrollTop: top }, 200);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}).fail((jqXHR, textStatus, errorThrown) => {\r\n\t\t\t\tif (jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.message === \"Partial Invalid\") {\r\n\t\t\t\t\tthis._resetSearch(criteria);\r\n\r\n\t\t\t\t\t//Since we didn't find the right sponsorshipSearchResults Id, let's go ahead and refresh the page, removing the id query string\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\t_getCriteria: function ($target) {\r\n\t\t// We were passing in sponsorshipSearchOtherForm, but we don't currently support other sponsorships. Chris R. confirmed we can remove it from this find.\r\n\t\tvar $namedInputs = $target.find(\"form#sponsorshipSearchChildForm\").first().find(\"input[name],select[name]\");\r\n\t\tvar criteria = InputHelper.getGeneralInputValues($namedInputs) || [];\r\n\r\n\t\t//Removing the blank/empty values.\r\n\t\tvar inputData;\r\n\t\tfor (var index = criteria.length - 1; index >= 0; --index) {\r\n\t\t\tinputData = criteria[index] || {};\r\n\t\t\tif (!inputData.value) {\r\n\t\t\t\tcriteria.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn criteria;\r\n\t},\r\n\r\n\t_getEventOrReturn: function (event, isDesignModeMessage, isDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode != null ? isDesignMode : false, isDesignModeMessage, /*preventDefaultInDesignMode*/false); //coersion, because we want to check for null or undefined\r\n\t},\r\n\r\n\t_handlePopState: function (event) {\r\n\t\tHistoryHelper.handlePopState(/*executeAction*/(currentQueryObject, additionalOptions) => {\r\n\t\t\t//Set input/selects correctly on sponsorshipSearchForm\r\n\t\t\t//Only expecting a single sponsorshipSearchForm on the page.\r\n\t\t\tvar $sponsorshipSearchForms = $(\"[data-component='sponsorshipSearchForm']\");\r\n\t\t\tthis._updateSearchFormFields(currentQueryObject, $sponsorshipSearchForms);\r\n\r\n\t\t\t//Search (as if the search button was clicked, just find the first form)\r\n\t\t\tvar $firstSearchForm = $sponsorshipSearchForms.first();\r\n\t\t\tvar criteria = this._getCriteria($firstSearchForm);\r\n\t\t\tvar sponsorshipType = $firstSearchForm.find(\"[data-component='sponsorshipSearchForm.child']\").length ? \"CHILD\" : \"OTHER\";\r\n\t\t\tadditionalOptions.isInitialSearch = false;\r\n\t\t\tthis.performSponsorshipSearch(/*sponsorshipSearchResultsId*/null, /*pageNumber*/null, sponsorshipType, criteria, additionalOptions);\r\n\t\t}, /*shouldShortCircuit*/(currentQueryObject) => {\r\n\t\t\t//If there is no query string do not perform the sponsorshipSearch\r\n\t\t\treturn Object.keys(currentQueryObject).length === 0;\r\n\t\t});\r\n\t},\r\n\r\n\t_initializeGridListToggle: function(id, previouslySelectedView) {\r\n\t\tGridListToggleHelper.initializeGridListToggle(id, previouslySelectedView, \"sponsorshipSearchResults\", \"grid-sponsorship-search-results-wrapper\", \"list-sponsorship-search-results-wrapper\");\r\n\t},\r\n\r\n\t_navigateToTangible: function(isDesignMode, event) {\r\n\t\tevent = this._getEventOrReturn(event, LinkMessageHelper.linkMessageMapper(\"sponsor-a-child\"), isDesignMode);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $element = $(event.target);\r\n\t\t//Make sure we have a button or anchor\r\n\t\tif (!$element.is(\"button\") && !$element.is(\"a\")) {\r\n\t\t\t$element = $element.closest(\"button,a\");\r\n\t\t}\r\n\r\n\t\tif (event.which === 1) {\r\n\t\t\t//Left-click, is the only one where we check to see if this sponsorship is available\r\n\t\t\tvar sponsorshipCode = $element.closest(\"[data-component='sponsorshipSearchResults.child']\").attr(\"data-sponsorship-code\");\r\n\t\t\tif (!sponsorshipCode) {\r\n\t\t\t\t//We do not have a sponsorshipCode, but we should have\r\n\t\t\t\tLoggerInstance.error(\"There was no sponsorship code when there should have been.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tSponsorshipApi.isAvailableForSponsorship({sponsorshipCode}).done(data => {\r\n\t\t\t\tdata = data || {};\r\n\t\t\t\tvar isAvailableForSponsorship = (data.model || {}).isAvailableForSponsorship;\r\n\r\n\t\t\t\twindow.PledgeActions.setSponsorshipAvailablity(isAvailableForSponsorship);\r\n\t\t\t\tif (isAvailableForSponsorship) {\r\n\t\t\t\t\t//It is available for sponsorship, so go ahead and navigate to the detail page\r\n\t\t\t\t\twindow.location = $element.attr(\"data-url\") || $element.attr(\"href\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//The sponsorship is not available, so show the alert and do not navigate\r\n\t\t\t\t\twindow.PledgeActions.showSponsorshipNotAvailableMessage();\r\n\t\t\t\t}\r\n\t\t\t}).fail(() => {\r\n\t\t\t\t//The sponsorship is not available, so show the alert and do not navigate\r\n\t\t\t\twindow.PledgeActions.setSponsorshipAvailablity(false);\r\n\t\t\t\twindow.PledgeActions.showSponsorshipNotAvailableMessage();\r\n\t\t\t});\r\n\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t} else if (event.which === 2) {\r\n\t\t\tif ($element.is(\"button\")) {\r\n\t\t\t\t//Middle-click, for buttons we need to manually open the new tab.\r\n\t\t\t\twindow.open($element.attr(\"data-url\") || $element.attr(\"href\"), \"_blank\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//For right-click or any other click we don't want to do anything ourselves; we just want to let the context menu appear like it normally does.\r\n\t},\r\n\r\n\t_performSponsorshipSearchFromSearchForm: function($sponsorshipSearchForm) {\r\n\t\tvar sponsorshipType = $sponsorshipSearchForm.find(\"[data-component='sponsorshipSearchForm.child']\").length ? \"CHILD\" : \"OTHER\";\r\n\t\tvar criteria = this._getCriteria($sponsorshipSearchForm);\r\n\t\tthis.performSponsorshipSearch(/*sponsorshipSearchResultsId*/null, /*pageNumber*/null, sponsorshipType, criteria);\r\n\t},\r\n\r\n\t_resetSearch: function(criteria) {\r\n\t\tvar criteriaForQueryString = this._transformCriteriaForQueryString(criteria);\r\n\r\n\t\tHistoryHelper.replaceHistoryState(criteriaForQueryString);\r\n\t},\r\n\r\n\t_submitSponsorshipSearchForm: function(isDesignMode, event) {\r\n\t\tevent = this._getEventOrReturn(event, \"Sponsorship Search Form action called successfully.\", isDesignMode);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $sponsorshipSearchForm = $(event.target).closest(\"[data-component='sponsorshipSearchForm']\");\r\n\t\tthis._performSponsorshipSearchFromSearchForm($sponsorshipSearchForm);\r\n\t},\r\n\r\n\t_transformCriteriaForQueryString: function(criteria) {\r\n\t\t//This will take a query string object that is received from the searchForm and convert it to the format that is used in the query string.\r\n\t\tvar criteriaForQueryString = {};\r\n\t\tif (criteria && criteria.length) {\r\n\t\t\tcriteria.forEach(criterion => {\r\n\t\t\t\tcriteriaForQueryString[`c_${criterion.type}`] = criterion.value;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn criteriaForQueryString;\r\n\t},\r\n\r\n\t_updateHistoryStateAfterSearch: function (criteria, newQueryObject, updateId) {\r\n\t\tvar criteriaForQueryString = this._transformCriteriaForQueryString(criteria);\r\n\r\n\t\tHistoryHelper.updateHistoryStateAfterLoad(newQueryObject, updateId, /*afterCreateObjectLogic*/(currentQueryObject) => {\r\n\t\t\t//Clear criteria from currentQueryObject\r\n\t\t\tObject.keys(currentQueryObject).forEach(key => {\r\n\t\t\t\tif (key && key.startsWith(\"c_\")) {\r\n\t\t\t\t\tdelete currentQueryObject[key];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (criteria && criteria.length) {\r\n\t\t\t\tObject.assign(currentQueryObject, criteriaForQueryString);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_updateSearchFormFields: function(currentQueryObject, $sponsorshipSearchFormComponents) {\r\n\t\tvar foundInput = false;\r\n\r\n\t\t//Reset values\r\n\t\t$sponsorshipSearchFormComponents.find(\"input\").prop(\"checked\", false);\r\n\t\t$sponsorshipSearchFormComponents.find(\"select\").val(\"\");\r\n\r\n\t\t//Populating criteria input/select fields\r\n\t\tObject.keys(currentQueryObject).forEach(key => {\r\n\t\t\tvar value = currentQueryObject[key];\r\n\r\n\t\t\tif (!key || !key.startsWith(\"c_\")) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t//The actual input field does not have c_ in it.\r\n\t\t\tkey = key.replace(\"c_\", \"\");\r\n\r\n\t\t\t//Radio Buttons and Single Checkbox\r\n\t\t\tvar $matchingFields = $sponsorshipSearchFormComponents.find(`input[name=\"${key}\"][value=\"${value}\"],[data-component='singleCheckbox'][code-type=\"${key}\"][code-type-true-value=\"${value}\"] input`);//,`);\r\n\t\t\tif ($matchingFields.length) {\r\n\t\t\t\t$matchingFields.prop(\"checked\", true);\r\n\t\t\t\tfoundInput = true;\r\n\t\t\t} else {\r\n\t\t\t\t//Select\r\n\t\t\t\t$matchingFields = $sponsorshipSearchFormComponents.find(`select[name=\"${key}\"]`);\r\n\t\t\t\tif ($matchingFields.length) {\r\n\t\t\t\t\t$matchingFields.val(value);\r\n\t\t\t\t\tfoundInput = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn foundInput;\r\n\t}\r\n};\r\n\r\nmodule.exports = SponsorshipSearchHelper;\r\n","\"use strict\";\r\n\r\nvar EventEmitter = require(\"events\").EventEmitter;\r\n\r\nvar StoresHelper = require(\"./StoresHelper\");\r\n\r\nvar CHANGE_EVENT = \"change\";\r\n\r\nvar AbstractStore = class extends EventEmitter {\r\n\tconstructor(options) {\r\n\t\toptions = options || {};\r\n\t\tsuper(options);\r\n\r\n\t\tif (this.constructor === AbstractStore) {\r\n\t\t\tthrow new TypeError(\"Cannot construct AbstractStore instances directly!\");\r\n\t\t}\r\n\t}\r\n\r\n\taddChangeListener(callback) {\r\n\t\tthis.on(CHANGE_EVENT, callback);\r\n\t}\r\n\r\n\tremoveChangeListener(callback) {\r\n\t\tthis.removeListener(CHANGE_EVENT, callback);\r\n\t}\r\n\r\n\temitChange() {\r\n\t\tthis.emit(CHANGE_EVENT);\r\n\t}\r\n\r\n\tgetWizardValue(wizardName, propertyName, tokens) {\r\n\t\treturn StoresHelper.getWizardValue(this.get(wizardName), propertyName, tokens);\r\n\t}\r\n};\r\n\r\nmodule.exports = AbstractStore;\r\n","var LoggerInstance = require(\"js-logger\").get(\"Carousel\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false,\r\n\tcarouselCurrentPages: {}, // { carouselId: pagNum } initially empty\r\n\tcategoryId: null,\r\n\tlayoutId: null,\r\n\ttouchstartX: 0,\r\n\ttouchendX: 0,\r\n\turl: null\r\n};\r\n\r\nvar CarouselStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.CAROUSEL_INITIALIZE:\r\n\t\t\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\t\t\tstate.categoryId = action.categoryId;\r\n\t\t\t\t\tstate.layoutId = action.layoutId;\r\n\t\t\t\t\tstate.url = action.url;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tcase Constants.CAROUSEL_NEXT_PAGE:\r\n\t\t\t\t\tvar carouselId = action.carouselId;\r\n\t\t\t\t\tvar currentPage = state.carouselCurrentPages[carouselId];\r\n\t\t\t\t\tif (!currentPage) {\r\n\t\t\t\t\t\t// Assume we haven't had any requests for this component yet.\r\n\t\t\t\t\t\tcurrentPage = 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstate.carouselCurrentPages[carouselId] = currentPage + 1;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tcase Constants.CAROUSEL_PREVIOUS_PAGE:\r\n\t\t\t\t\tvar carouselId = action.carouselId;\r\n\t\t\t\t\tvar currentPage = state.carouselCurrentPages[carouselId];\r\n\r\n\t\t\t\t\tif (currentPage > 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tstate.carouselCurrentPages[carouselId] = currentPage - 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tcase Constants.CAROUSEL_TOUCH_START:\r\n\t\t\t\t\tstate.touchstartX = action.touchstartX;\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\tcase Constants.CAROUSEL_TOUCH_END:\r\n\t\t\t\t\tstate.touchendX = action.touchendX;\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nmodule.exports = new CarouselStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"CategoryStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tcategories: [],\r\n\twizardCategories: {}\r\n};\r\n\r\nvar CategoryStore = class extends AbstractStore {\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\nCategoryStore = new CategoryStore();\r\n\r\nCategoryStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.CATEGORY_INITIALIZE:\r\n\t\t\tstate.categories = action.categories,\r\n\t\t\tstate.wizardCategories = action.wizardCategories;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tCategoryStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = CategoryStore;\r\n","var LoggerInstance = require(\"js-logger\").get(\"ContactUs\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false,\r\n\taccountData: {},\r\n\twizardCommunicationTypes: {}\r\n};\r\n\r\nvar ContactUsStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.CONTACT_US_INITIALIZE:\r\n\t\t\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\t\t\tstate.accountData = action.accountData;\r\n\t\t\t\t\tstate.wizardCommunicationTypes = action.wizardCommunicationTypes;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nmodule.exports = new ContactUsStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EmailSubscriptionStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false,\r\n\twizardEmailSubscriptionDisplayMessages: {}\r\n};\r\n\r\nvar EmailSubscriptionStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.EMAIL_SUBSCRIPTION_INITIALIZE:\r\n\t\t\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\t\t\tstate.wizardEmailSubscriptionDisplayMessages = action.wizardEmailSubscriptionDisplayMessages;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nmodule.exports = new EmailSubscriptionStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"EventSearchStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false,\r\n\twizardEventSearch: {}\r\n};\r\n\r\nvar EventSearchStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.EVENT_SEARCH_INITIALIZE:\r\n\t\t\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\t\t\tstate.wizardEventSearch = action.wizardEventSearch;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nmodule.exports = new EventSearchStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ExpanderStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false\r\n};\r\n\r\nvar ExpanderStore = class extends AbstractStore {\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nExpanderStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.EXPANDER_INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tExpanderStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = new ExpanderStore();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"LogoutStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\twizardLoginDisplayMessages: {},\r\n};\r\n\r\nvar LogoutStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.LOGOUT_INITIALIZE:\r\n\t\t\t\t\tstate.wizardLoginDisplayMessages = action.options.wizardLoginDisplayMessages;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\tLoggerInstance.debug(`Undefined action triggered in logout store. ${action.actionType}`);\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nmodule.exports = new LogoutStore(Dispatcher);","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"NavigationStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false\r\n};\r\n\r\nvar NavigationStore = class extends AbstractStore {\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nNavigationStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.NAVIGATION_INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tNavigationStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = new NavigationStore();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"PledgeStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar ProjectStore = require(\"../projectComponents/ProjectStore\");\r\n\r\nvar SponsorshipHelper = require(\"../sponsorshipComponents/SponsorshipHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar state = {\r\n\tisDesignMode: false,\r\n\tisInPledgeStatementSession: false,\r\n\tisSecure: false,\r\n\tminimumAmount: null,\r\n\tminimumAmounts: {},\r\n\tpledge: {},\r\n\tselectedAmount: null,\r\n\tselectedAmounts: {},\r\n\tselectedFrequencies: {},\r\n\tselectedFrequency: null,\r\n\twizardCheckoutDisplayMessages: {},\r\n\twizardFrequencies: {},\r\n\twizardPledgeCompletionDefaults: {},\r\n\twizardPledgeStatementEntry: {},\r\n\twizardSecurePledges: {},\r\n\twizardShoppingCartDisplayMessages: {},\r\n\twizardSponsorshipDefaults: {},\r\n\twizardSponsorshipDisplayMessages: {},\r\n\tisSponsorshipAvailable: true\r\n};\r\n\r\nvar PledgeStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.PLEDGE_INITIALIZE:\r\n\t\t\t\t\tstate.isDesignMode = action.options.isDesignMode;\r\n\t\t\t\t\tstate.isInPledgeStatementSession = action.options.isInPledgeStatementSession;\r\n\t\t\t\t\tstate.pledge = action.options.pledge;\r\n\t\t\t\t\tstate.wizardCheckoutDisplayMessages = action.options.wizardCheckoutDisplayMessages;\r\n\t\t\t\t\tstate.wizardFrequencies = action.options.wizardFrequencies;\r\n\t\t\t\t\tstate.wizardPledgeCompletionDefaults = action.options.wizardPledgeCompletionDefaults;\r\n\t\t\t\t\tstate.wizardPledgeStatementEntry = action.options.wizardPledgeStatementEntry;\r\n\t\t\t\t\tstate.wizardShoppingCartDisplayMessages = action.options.wizardShoppingCartDisplayMessages;\r\n\t\t\t\t\tstate.wizardSponsorshipDefaults = action.options.wizardSponsorshipDefaults;\r\n\t\t\t\t\tstate.wizardSponsorshipDisplayMessages = action.options.wizardSponsorshipDisplayMessages;\r\n\t\t\t\t\tstate.isSponsorshipAvailable = action.options.isSponsorshipAvailable;\r\n\r\n\t\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", (event) => {\r\n\t\t\t\t\t\tif (state.pledge && !$(\"[data-react-component-name='PledgeButtonFrequency'],[data-react-component-name='PledgeRadioFrequency'],[data-react-component-name='PledgeSelectFrequency']\").length) {\r\n\t\t\t\t\t\t\t//We don't have a frequency, so we need to update the amount, and the frequency will be retrieved from the default frequency\r\n\t\t\t\t\t\t\tvar pledgeCode = (state.pledge || {}).PledgeCode;\r\n\t\t\t\t\t\t\tthis.updateAmount(/*context*/null, pledgeCode);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tcase Constants.PLEDGE_SET_GIFT_AMOUNT:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedAmounts[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedAmounts[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedAmounts[action.context][action.tangibleCode] = action.selectedAmount;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedAmount = action.selectedAmount;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase Constants.PLEDGE_SET_FREQUENCY:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.selectedFrequencies[action.context]) {\r\n\t\t\t\t\t\t\tstate.selectedFrequencies[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.selectedFrequencies[action.context][action.tangibleCode] = action.selectedFrequency;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.selectedFrequency = action.selectedFrequency;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// If we're one-time for this component, we need to hide the recurring component\r\n\t\t\t\t\tif (action.selectedFrequency === \"O\") {\r\n\t\t\t\t\t\t$('[data-component=\"createRecurring\"]').hide();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$('[data-component=\"createRecurring\"]').show();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.updateAmount(action.context, action.tangibleCode);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase Constants.PLEDGE_SET_MINIMUM_AMOUNT:\r\n\t\t\t\t\tif (action.context) {\r\n\t\t\t\t\t\tif (!state.minimumAmounts[action.context]) {\r\n\t\t\t\t\t\t\tstate.minimumAmounts[action.context] = {};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.minimumAmounts[action.context][action.tangibleCode] = action.minimumAmount;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstate.minimumAmount = action.minimumAmount;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase Constants.SPONSORSHIP_AVAILABLITY:\r\n\t\t\t\t\tstate.isSponsorshipAvailable = action.isSponsorshipAvailable;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\tLoggerInstance.debug(`Undefined action triggered in pledge store. ${action.actionType}`);\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tupdateAmount(context, tangibleCode) {\r\n\t\tvar tangibleType = (state.pledge || {}).PledgeType;\r\n\t\tif (tangibleType === Constants.TANGIBLE_TYPES.CHILD) {\r\n\t\t\t// update the component UI to make sure that the SD amount matches what's in the store.\r\n\t\t\tvar $component = $(\"body\").find(\"[data-dynamic='AmountPerGift']\");\r\n\t\t\tif ($component) {\r\n\t\t\t\tvar amount = this.getSelectedAmount(context, tangibleCode, tangibleType);\r\n\t\t\t\tvar formattedAmount = ActionsHelper.formatAmount(amount, $component, /*keepDecimals*/ false);\r\n\r\n\t\t\t\t$component.text(formattedAmount);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetMinimumAmount(context, tangibleCode) {\r\n\t\tif (context) {\r\n\t\t\tif (state.minimumAmounts[context]) {\r\n\t\t\t\treturn state.minimumAmounts[context][tangibleCode];\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn state.minimumAmount;\r\n\t}\r\n\r\n\tgetSelectedAmount(context, tangibleCode, tangibleType) {\r\n\t\tvar amount = null;\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedAmounts[context]) {\r\n\t\t\t\tamount = state.selectedAmounts[context][tangibleCode];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tamount = state.selectedAmount;\r\n\t\t}\r\n\r\n\t\tif (amount === null && tangibleType === Constants.TANGIBLE_TYPES.CHILD) {\r\n\t\t\t// get default amount.\r\n\t\t\tvar defaultAmount = state.pledge[\"AmountOverride\"] || this.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.SPONSORSHIP_DEFAULTS,\r\n\t\t\t\tWizardConstants.SPONSORSHIP_DEFAULTS_FIELDS.DEFAULT_AMOUNT\r\n\t\t\t);\r\n\r\n\t\t\tif (defaultAmount) {\r\n\t\t\t\tvar selectedFrequency = this.getSelectedFrequency(context, tangibleCode, tangibleType);\r\n\t\t\t\tamount = SponsorshipHelper.calculateUpdatedTotal(defaultAmount, selectedFrequency, this.getDefaultPledgeFrequency());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn amount;\r\n\t}\r\n\r\n\tgetSelectedFrequency(context, tangibleCode, tangibleType) {\r\n\t\tvar frequency = null;\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedFrequencies[context]) {\r\n\t\t\t\tfrequency = state.selectedFrequencies[context][tangibleCode];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfrequency = state.selectedFrequency;\r\n\t\t}\r\n\r\n\t\tif (frequency === null && tangibleType === Constants.TANGIBLE_TYPES.CHILD) {\r\n\t\t\t// get default amount.\r\n\t\t\tvar defaultFrequency = state.pledge[\"FrequencyOverride\"] || this.getWizardValue(\r\n\t\t\t\tWizardConstants.WIZARDS.SPONSORSHIP_DEFAULTS,\r\n\t\t\t\tWizardConstants.SPONSORSHIP_DEFAULTS_FIELDS.DEFAULT_FREQUENCY\r\n\t\t\t);\r\n\r\n\t\t\tif (defaultFrequency) {\r\n\t\t\t\tfrequency = defaultFrequency;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn frequency;\r\n\t}\r\n\r\n\tgetDefaultPledgeFrequency() {\r\n\t\tvar pledge = state.pledge || {};\r\n\t\treturn pledge[\"FrequencyOverride\"] || state.wizardPledgeCompletionDefaults.defaultFrequency;\r\n\t}\r\n\r\n\tgetRequireDonation() {\r\n\t\treturn state.wizardPledgeCompletionDefaults.requireDonation === \"yes\";\r\n\t}\r\n\r\n\tgetRequireRecurring() {\r\n\t\treturn state.wizardPledgeCompletionDefaults.requireRecurring === \"yes\";\r\n\t}\r\n\r\n\tgetIsSecure() {\r\n\t\treturn state.isSecure;\r\n\t}\r\n\r\n\tsetIsSecure(isSecure) {\r\n\t\tstate.isSecure = isSecure;\r\n\t}\r\n\r\n\tgetPledgeInformation(cartDataOptions) {\r\n\t\tcartDataOptions = cartDataOptions || {};\r\n\t\tvar pledge = state.pledge || {};\r\n\t\tvar { context, tangibleCode, tangibleType } = cartDataOptions;\r\n\r\n\t\tif (state.isSecure) {\r\n\t\t\ttangibleCode = state.wizardSecurePledges.pledgeCode || \"secure-pledge\";\r\n\t\t\ttangibleType = Constants.TANGIBLE_TYPES.SECURE_PLEDGES;\r\n\t\t}\r\n\r\n\t\ttangibleCode = tangibleCode || pledge[\"PledgeCode\"];\r\n\t\ttangibleType = tangibleType || pledge[\"PledgeType\"];\r\n\r\n\t\tvar pledgeInformation = {\r\n\t\t\t// Because the pledge information is pulled from the Tangibles table populated from SE, we cannot properly camelCase keys.\r\n\t\t\t// We are using the bracket notation to indicate that this is intended\r\n\t\t\tamount: this.getSelectedAmount(context, tangibleCode, tangibleType),\r\n\t\t\tfrequency: this.getSelectedFrequency(context, tangibleCode , tangibleType) || this.getDefaultPledgeFrequency(),\r\n\t\t\tpledge: tangibleCode,\r\n\t\t\tpledgeId: pledge[\"RecordId\"],\r\n\t\t\tprojectCode: pledge[\"DefaultProjectCode\"],\r\n\t\t\tupsell: ProjectStore.getSelectedUpsell(context, tangibleCode),\r\n\t\t\tuseOnDay: ProjectStore.getSelectedUseOnDay(context, tangibleCode),\r\n\t\t\tstartDate: ProjectStore.getSelectedStartDate(context, tangibleCode)\r\n\t\t};\r\n\r\n\t\treturn pledgeInformation;\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n\r\n\tsetIsSecure(isSecure) {\r\n\t\tstate.isSecure = isSecure;\r\n\t}\r\n\r\n\tsetSecurePledgesWizard(securePledgesWizard) {\r\n\t\tstate.wizardSecurePledges = securePledgesWizard;\r\n\t}\r\n};\r\n\r\nmodule.exports = new PledgeStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar SuggestedDonationHelper = require(\"../commonComponents/SuggestedDonationHelper\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tproductCode: null,\r\n\tisDesignMode: false,\r\n\tisInPledgeStatementSession: false,\r\n\tisShippable: false,\r\n\tselectedQuantity: null,\r\n\tselectedQuantities: {},\r\n\tselectedSuggestedDonation: null,\r\n\tselectedSuggestedDonations: {},\r\n\tdefaultSuggestedDonation: null, // this is the default value from the model.\r\n\tdefaultSuggestedDonations: {}, // these are the default values from the models.\r\n\twarehouse: null,\r\n\twizardPledgeStatementEntry: {},\r\n\twizardShoppingCartDisplayMessages: {}\r\n};\r\n\r\nvar ProductStore = class extends AbstractStore {\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n\r\n\tgetSelectedQuantity(context, tangibleCode) {\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedQuantities[context]) {\r\n\t\t\t\treturn state.selectedQuantities[context][tangibleCode];\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.selectedQuantity;\r\n\t\t}\r\n\t}\r\n\r\n\tgetOrderInformation(cartDataOptions) {\r\n\t\tcartDataOptions = cartDataOptions || {};\r\n\t\tvar { context, tangibleCode } = cartDataOptions;\r\n\r\n\t\treturn {\r\n\t\t\tproduct: tangibleCode || state.productCode,\r\n\t\t\tisShippable: state.isShippable,\r\n\t\t\tquantity: this.getSelectedQuantity(context, tangibleCode) || \"1\",\r\n\t\t\tsuggestedDonation: this.getSuggestedDonation(context, tangibleCode),\r\n\t\t\twarehouse: state.warehouse\r\n\t\t};\r\n\t}\r\n\r\n\tgetDefaultSuggestedDonation(context, productCode)\r\n\t{\r\n\t\tif (context) {\r\n\t\t\tif (state.defaultSuggestedDonations[context]) {\r\n\t\t\t\treturn state.defaultSuggestedDonations[context][productCode];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.defaultSuggestedDonation;\r\n\t\t}\r\n\t}\r\n\r\n\tgetSuggestedDonation(context, productCode) {\r\n\t\tif (context && !productCode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (context) {\r\n\t\t\tif (state.selectedSuggestedDonations[context]) {\r\n\t\t\t\treturn state.selectedSuggestedDonations[context][productCode];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn state.selectedSuggestedDonation;\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateSuggestedAmount(amount, context, productCode) {\r\n\t\tamount = amount || this.getSuggestedDonation(context, productCode);\r\n\t\tvar defaultSuggestedAmount = this.getDefaultSuggestedDonation(context, productCode);\r\n\r\n\t\treturn SuggestedDonationHelper.validateAmount(\r\n\t\t\tamount,\r\n\t\t\tdefaultSuggestedAmount);\r\n\t}\r\n};\r\nProductStore = new ProductStore();\r\n\r\nProductStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.PRODUCT_INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\tstate.isInPledgeStatementSession = action.isInPledgeStatementSession;\r\n\t\t\tstate.isShippable = action.isShippable;\r\n\t\t\tstate.productCode = action.productCode;\r\n\t\t\tstate.defaultSuggestedDonation = action.defaultSuggestedDonation;\r\n\t\t\tstate.warehouse = action.warehouse;\r\n\t\t\tstate.wizardPledgeStatementEntry = action.wizardPledgeStatementEntry;\r\n\t\t\tstate.wizardShoppingCartDisplayMessages = action.wizardShoppingCartDisplayMessages;\r\n\r\n\t\t\tif (state.productCode && state.defaultSuggestedDonation >= 0) {\r\n\t\t\t\tSuggestedDonationHelper.updateSuggestedDonationComponent(\r\n\t\t\t\t\taction.defaultSuggestedDonation,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\tstate.productCode);\r\n\t\t\t}\r\n\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tcase Constants.PRODUCT_INITIALIZE_SUGGESTED_DONATION:\r\n\t\t\t// This should behave the same as the PRODUCT_SET_SUGGESTED_DONATION except we are not\r\n\t\t\t// validating the amount as this is the first time we're setting it.\r\n\t\t\tvar initialAmount = (+action.amount).toFixed(2);\r\n\t\t\tif (action.context) {\r\n\t\t\t\tif (!state.selectedSuggestedDonations[action.context]) {\r\n\t\t\t\t\tstate.selectedSuggestedDonations[action.context] = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!state.defaultSuggestedDonations[action.context]) {\r\n\t\t\t\t\tstate.defaultSuggestedDonations[action.context] = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstate.selectedSuggestedDonations[action.context][action.productCode] = initialAmount;\r\n\t\t\t\tstate.defaultSuggestedDonations[action.context][action.productCode] = initialAmount;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tstate.selectedSuggestedDonation = initialAmount;\r\n\t\t\t\tstate.defaultSuggestedDonation = initialAmount;\r\n\t\t\t}\r\n\r\n\t\t\tSuggestedDonationHelper.updateSuggestedDonationComponent(\r\n\t\t\t\tinitialAmount,\r\n\t\t\t\taction.context,\r\n\t\t\t\taction.productCode);\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.PRODUCT_SET_QUANTITY:\r\n\t\t\tif (action.context) {\r\n\t\t\t\tif (!state.selectedQuantities[action.context]) {\r\n\t\t\t\t\tstate.selectedQuantities[action.context] = {};\r\n\t\t\t\t}\r\n\t\t\t\tstate.selectedQuantities[action.context][action.tangibleCode] = action.selectedQuantity;\r\n\t\t\t} else {\r\n\t\t\t\tstate.selectedQuantity = action.selectedQuantity;\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase Constants.PRODUCT_SET_SUGGESTED_DONATION:\r\n\t\t\tvar { amount, context, productCode } = action;\r\n\r\n\t\t\tvar suggestedDonationSetIsValid = ProductStore.validateSuggestedAmount(\r\n\t\t\t\t+amount,\r\n\t\t\t\tcontext,\r\n\t\t\t\tproductCode);\r\n\r\n\t\t\tvar newAmount = (+amount).toFixed(2);\r\n\t\t\tif (context) {\r\n\t\t\t\tif (!state.selectedSuggestedDonations[context]) {\r\n\t\t\t\t\tstate.selectedSuggestedDonations[context] = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstate.selectedSuggestedDonations[context][productCode] = newAmount;\r\n\t\t\t} else {\r\n\t\t\t\tstate.selectedSuggestedDonation = newAmount;\r\n\t\t\t}\r\n\r\n\t\t\t// Because both values are string, we cannot use coersion to check equality between 100 and 100.00.\r\n\t\t\t// Casting as a number will drop any .00 values so this functions essentially the same way.\r\n\t\t\tif (+amount !== +newAmount) {\r\n\t\t\t\tSuggestedDonationHelper.updateSuggestedDonationComponent(newAmount, context, productCode);\r\n\t\t\t}\r\n\r\n\t\t\tif (suggestedDonationSetIsValid) {\r\n\t\t\t\tSuggestedDonationHelper.hideInvalidSuggestedDonationMessage(context, productCode);\r\n\t\t\t} else {\r\n\t\t\t\tSuggestedDonationHelper.showInvalidSuggestedDonationMessage(context, productCode);\r\n\t\t\t}\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tProductStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = ProductStore;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"ShipToStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false,\r\n\tprevSelectorValue: null\r\n};\r\n\r\nvar ShipToStore = class extends AbstractStore {\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nShipToStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.SHIPTO_INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tcase Constants.SHIPTO_SET_SELECTOR:\r\n\t\t\tstate.prevSelectorValue = action.selectorValue;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tShipToStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = new ShipToStore();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SlideShowStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tintervalId: null,\r\n\tisDesignMode: false,\r\n\tslideIndex: 0,\r\n\ttouchstartX: 0,\r\n\ttouchendX: 0\r\n};\r\n\r\nvar SlideShowStore = class extends AbstractStore {\r\n\tconstructor(dispatcher) {\r\n\t\tsuper();\r\n\t\tthis.dispatchToken = dispatcher.register(action => {\r\n\t\t\tswitch (action.actionType) {\r\n\t\t\t\tcase Constants.SLIDESHOW_INITIALIZE:\r\n\t\t\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\t\t\treturn true; // Don't emit change\r\n\r\n\t\t\t\tcase Constants.SLIDESHOW_STARTED:\r\n\t\t\t\t\tstate.slideIndex = action.slideIndex;\r\n\t\t\t\t\tif (state.intervalId >= 0) {\r\n\t\t\t\t\t\tclearInterval(state.intervalId);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstate.intervalId = action.intervalId;\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\tcase Constants.SLIDESHOW_STOPPED:\r\n\t\t\t\t\tif (state.intervalId >= 0) {\r\n\t\t\t\t\t\tclearInterval(state.intervalId);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstate.intervalId = null;\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\tcase Constants.SLIDESHOW_TOUCH_START:\r\n\t\t\t\t\tstate.touchstartX = action.touchstartX;\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\tcase Constants.SLIDESHOW_TOUCH_END:\r\n\t\t\t\t\tstate.touchendX = action.touchendX;\r\n\t\t\t\t\treturn true;\r\n\r\n\t\t\t\tcase Constants.SLIDESHOW_CHANGE_SLIDE:\r\n\t\t\t\t\tstate.slideIndex = action.slideIndex;\r\n\t\t\t\t\tstate.touchstartX = 0;\r\n\t\t\t\t\tstate.touchendX = 0;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// no op\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.emitChange();\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nmodule.exports = new SlideShowStore(Dispatcher);\r\n","\"use strict\";\r\n\r\nvar StoresHelper = {\r\n\tgetWizardValue(wizardContent, propertyName, tokens) {\r\n\t\t// This method keeps us from needing to add the same methods to every store and action class.\r\n\t\tif (!tokens) {\r\n\t\t\treturn this._getValue(wizardContent, propertyName);\r\n\t\t}\r\n\r\n\t\treturn this._getTokenizedValue(wizardContent, propertyName, tokens);\r\n\t},\r\n\r\n\t_getTokenizedValue(wizard, propertyName, tokens) {\r\n\t\tvar tokenizedValue = this._getValue(wizard, propertyName);\r\n\r\n\t\tif (tokenizedValue) {\r\n\t\t\tfor (var key in tokens) {\r\n\t\t\t\tvar token = `{${key}}`;\r\n\t\t\t\ttokenizedValue = tokenizedValue.replace(token, tokens[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn tokenizedValue;\r\n\t},\r\n\r\n\t_getValue(wizard, propertyName) {\r\n\t\tif (wizard) {\r\n\t\t\treturn wizard[propertyName];\r\n\t\t}\r\n\t}\r\n};\r\n\r\nmodule.exports = StoresHelper;\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"TabStore\");\r\n\r\nvar AbstractStore = require(\"./AbstractStore\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar Dispatcher = require(\"../dispatcher/Dispatcher\");\r\n\r\nvar state = {\r\n\tisDesignMode: false\r\n};\r\n\r\nvar TabStore = class extends AbstractStore {\r\n\tgetState() {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tget(key) {\r\n\t\treturn state[key];\r\n\t}\r\n};\r\n\r\nTabStore.dispatchToken = Dispatcher.register(function (action) {\r\n\tswitch (action.actionType) {\r\n\t\tcase Constants.TABS_INITIALIZE:\r\n\t\t\tstate.isDesignMode = action.isDesignMode;\r\n\t\t\treturn true; // Don't emit change\r\n\r\n\t\tdefault:\r\n\t\t\t// no op\r\n\t\t\treturn true;\r\n\t}\r\n\r\n\tTabStore.emitChange();\r\n\treturn true;\r\n});\r\n\r\nmodule.exports = new TabStore();\r\n","\"use strict\";\r\n\r\nvar LoggerInstance = require(\"js-logger\").get(\"SubscriptionHelper\");\r\n\r\nvar AccountFormHelper = require(\"../accountComponents/AccountFormHelper\");\r\nvar SmartyStreets = require(\"../accountComponents/SmartyStreets\");\r\nvar PledgeStatementHelper = require(\"../accountComponents/PledgeStatementHelper\");\r\n\r\nvar ActionsHelper = require(\"../actions/ActionsHelper\");\r\n\r\nvar CheckoutApi = require(\"../checkoutComponents/CheckoutApi\");\r\n\r\nvar Spinner = require(\"../client/Spinner\");\r\n\r\nvar ValidationHelper = require(\"../commonComponents/ValidationHelper\");\r\n\r\nvar WizardConstants = require(\"../constants/WizardConstants\");\r\n\r\nvar Constants = require(\"../designer/Constants\");\r\n\r\nvar BootstrapPrompt = require(\"../shared/BootstrapPrompt\");\r\nvar InputHelper = require(\"../shared/InputHelper\");\r\n\r\nvar StoresHelper = require(\"../stores/StoresHelper\");\r\n\r\nvar SubscriptionHelper = {\r\n\taddToCart: function (event) {\r\n\t\tif (!ActionsHelper.getEventOrReturn(event, /*isDesignMode*/false)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar isInPledgeStatementSession = this.isInPledgeStatementSession;\r\n\t\tvar pledgeStatementEntryWizard = this[WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY];\r\n\r\n\t\tPledgeStatementHelper.confirmAbandonPledgeStatementSession(isInPledgeStatementSession, pledgeStatementEntryWizard).done(() => {\r\n\t\t\ttry {\r\n\t\t\t\t//Validation\r\n\t\t\t\tvar components = [\r\n\t\t\t\t\t$(\"[data-component='subscription']\")\r\n\t\t\t\t];\r\n\r\n\t\t\t\tSpinner.showSpinner();\r\n\t\t\t\tValidationHelper.validate({ components }).always(isValid => {\r\n\t\t\t\t\tif (!isValid) {\r\n\t\t\t\t\t\tLoggerInstance.error(\"Validation Failed to add to cart in SubscriptionHelper.\");\r\n\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.verifySmartyStreets().done(() => {\r\n\t\t\t\t\t\tvar shoppingCartData = this.getShoppingCartData();\r\n\t\t\t\t\t\tCheckoutApi.addToCart({ cartItems: shoppingCartData }).done((addToCartResponse) => {\r\n\t\t\t\t\t\t\tif (addToCartResponse.success) {\r\n\t\t\t\t\t\t\t\t//Unlike the other addToCart buttons, the subscription addToCart button is only available on the subscription detail page and there are no options to go anywhere else but the shopping cart page.\r\n\t\t\t\t\t\t\t\twindow.location = \"/shoppingcart\";\r\n\t\t\t\t\t\t\t} else if (addToCartResponse.message) {\r\n\t\t\t\t\t\t\t\t//This should be a constituent-safe message\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(addToCartResponse.message);\r\n\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\t\t\t\t\t\tthis[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES],\r\n\t\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t\t{ tangibleType: \"subscription\" }\r\n\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).fail(() => {\r\n\t\t\t\t\t\t\tBootstrapPrompt.alert(StoresHelper.getWizardValue(\r\n\t\t\t\t\t\t\t\tthis[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES],\r\n\t\t\t\t\t\t\t\tWizardConstants.SHOPPING_CART_MESSAGE_FIELDS.ADD_TO_CART_ERROR,\r\n\t\t\t\t\t\t\t\t{ tangibleType: \"subscription\" }\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}).fail(() => Spinner.removeSpinner());\r\n\t\t\t\t});\r\n\t\t\t} catch (exception) {\r\n\t\t\t\tLoggerInstance.error(exception);\r\n\t\t\t\tSpinner.removeSpinner();\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t});\r\n\t},\r\n\tautoRenewSelected: function(event, $checkboxInput) {\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!$checkboxInput.length || $checkboxInput.is(\":disabled\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $subscriptionComponent = $checkboxInput.closest(\"[data-component='subscription']\");\r\n\t\tvar $allAutoRenewCheckboxesInSubscription = $subscriptionComponent.find(\"input[data-component='autoRenewCheckbox.input']\");\r\n\r\n\t\t//Set all the other autoRenewCheckboxes in this subscription component to the same as the one that was just checked.\r\n\t\t$allAutoRenewCheckboxesInSubscription.prop(\"checked\", $checkboxInput.is(\":checked\"));\r\n\r\n\t\t//This fixes problems when the autoRenewCheckbox is inside the subscriptionPriceCodes component.\r\n\t\tevent.stopPropagation();\r\n\t},\r\n\r\n\tgetSelectedAddress: function($otherAddressSelector) {\r\n\t\tvar $selectedOption = $otherAddressSelector.find(\"option:selected\");\r\n\t\tif (!$selectedOption.length) {\r\n\t\t\t$selectedOption = $otherAddressSelector.find(\"option\").first();\r\n\t\t}\r\n\r\n\t\tif (!$selectedOption.length) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcity: $selectedOption.attr(\"data-city\"),\r\n\t\t\tcountry: $selectedOption.attr(\"data-country\"),\r\n\t\t\tid: Number($selectedOption.attr(\"value\")),\r\n\t\t\tline1: $selectedOption.attr(\"data-line1\"),\r\n\t\t\tline2: $selectedOption.attr(\"data-line2\"),\r\n\t\t\tline3: $selectedOption.attr(\"data-line3\"),\r\n\t\t\tline4: $selectedOption.attr(\"data-line4\"),\r\n\t\t\tpostalCode: $selectedOption.attr(\"data-postal-code\"),\r\n\t\t\tstate: $selectedOption.attr(\"data-state\")\r\n\t\t};\r\n\t},\r\n\r\n\tgetSelectedEmail: function($otherEmailSelector) {\r\n\t\tvar $selectedOption = $otherEmailSelector.find(\"option:selected\");\r\n\t\tif (!$selectedOption.length) {\r\n\t\t\t$selectedOption = $otherEmailSelector.find(\"option\").first();\r\n\t\t}\r\n\r\n\t\tif (!$selectedOption.length) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\temailAddress: $selectedOption.attr(\"data-email\"),\r\n\t\t\tid: Number($selectedOption.attr(\"value\")),\r\n\t\t\ttype: $selectedOption.attr(\"data-type\")\r\n\t\t};\r\n\t},\r\n\r\n\tgetShoppingCartData: function() {\r\n\t\tvar subscriptionData = {\r\n\t\t\tsubscriptionCode: window.tangibleCode\r\n\t\t};\r\n\r\n\t\tvar $subscriptionComponent = $(\"[data-component='subscription']\");\r\n\r\n\t\tvar subscriptionAccountData = AccountFormHelper.serializeCreateAccountFormOnly({\r\n\t\t\taccountFormId: $subscriptionComponent.find(\"[data-component='createAccountForm']\").attr(\"id\")\r\n\t\t});\r\n\t\tsubscriptionData.account = subscriptionAccountData;\r\n\r\n\t\tsubscriptionData = Object.assign(subscriptionData, {\r\n\t\t\tautoRenewChecked: $subscriptionComponent.find(\"[data-component='autoRenewCheckbox'] input\").first().is(\":checked\"),\r\n\t\t\totherAddressId: $subscriptionComponent.find(\"[data-component='otherAddressDropdown.selector']:visible\").first().find(\"option:selected\").val(),\r\n\t\t\totherEmailId: $subscriptionComponent.find(\"[data-component='otherEmailDropdown.selector']:visible\").first().find(\"option:selected\").val(),\r\n\t\t\tpriceCode: $subscriptionComponent.find(\"[data-component='subscriptionPriceCodes.singlePriceCode'].selected\").first().attr(\"data-price-code\"),\r\n\t\t\tquantity: $subscriptionComponent.find(\"[data-component='subscriptionQuantity']\").val() || 1,\r\n\t\t\tstartDate: $subscriptionComponent.find(\"[data-component='subscriptionStartDate']\").val(),\r\n\t\t\tsubscriptionNote: $subscriptionComponent.find(\"[data-component='subscriptionNote']\").val(),\r\n\t\t\tthisIsMeChecked: $subscriptionComponent.find(\"[data-component='thisIsMeCheckbox'] input\").first().is(\":checked\")\r\n\t\t});\r\n\t\treturn { subscriptions: [subscriptionData] };\r\n\t},\r\n\r\n\tinitialize: function(options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tthis.accountData = options.accountData;\r\n\t\tthis.isInPledgeStatementSession = options.isInPledgeStatementSession;\r\n\t\tthis.organizationPrimaryContact = options.organizationPrimaryContact;\r\n\t\tthis.wizardDateFormat = options.wizardDateFormat || {};\r\n\t\tthis[WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY] = options[WizardConstants.WIZARDS.PLEDGE_STATEMENT_ENTRY] || {};\r\n\t\tthis[WizardConstants.WIZARDS.SUBSCRIPTION_DISPLAY_MESSAGES] = options[WizardConstants.WIZARDS.SUBSCRIPTION_DISPLAY_MESSAGES] || {};\r\n\t\tthis[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES] = options[WizardConstants.WIZARDS.SHOPPING_CART_MESSAGES] || {};\r\n\r\n\t\tvar $subscriptionComponent = $(\"[data-component='subscription']\").first();\r\n\t\tvar $firstCreateAccountForm = $subscriptionComponent.find(\"[data-component='createAccountForm']\").first();\r\n\t\tthis.accountUpdateAllowed = $firstCreateAccountForm.is(\"[data-update-allowed]\");\r\n\r\n\t\t//If we are Unidentified, we want to allow updating data.\r\n\t\tif (!this.accountData) {\r\n\t\t\tthis.accountUpdateAllowed = true;\r\n\t\t\tthis._setFieldDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t}\r\n\r\n\t\t$firstCreateAccountForm.attr(\"data-update-allowed\", true);\r\n\r\n\t\t//Initialize AddToCart Buttons\r\n\t\t$(\"[data-component='addSubscriptionToCartButton']\").off(\"click.subscriptionPurchase\").on(\"click.subscriptionPurchase\", (event) => this.addToCart(event));\r\n\r\n\t\t$(document).ready(() => {\r\n\t\t\tthis.initializeSubscriptionComponent(options);\r\n\t\t\tthis.initializeSubscriptionPromotionalCodeComponent(\r\n\t\t\t\t$(\"[data-component='applyPromotionalCodeForm']\"),\r\n\t\t\t\toptions.layoutId\r\n\t\t\t);\r\n\r\n\t\t\tvar $firstThisIsMe = $subscriptionComponent.find(\"input[data-component='thisIsMeCheckbox.input']\").first();\r\n\t\t\tif ($subscriptionComponent.find(\"[data-component='thisIsMeCheckbox']\").attr(\"data-is-first-checked-by-default\") === \"true\") {\r\n\t\t\t\tif ($firstThisIsMe.is(\":checked\")) {\r\n\t\t\t\t\t//Uncheck and then check again to make sure the appropriate events were triggered\r\n\t\t\t\t\t$firstThisIsMe.click();\r\n\t\t\t\t}\r\n\t\t\t\t$firstThisIsMe.click();\r\n\t\t\t} else if ($firstThisIsMe.is(\":checked\")) {\r\n\t\t\t\t//It was checked, but it shouldn't be\r\n\t\t\t\t$firstThisIsMe.click();\r\n\t\t\t} else {\r\n\t\t\t\tthis._setFieldDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeOtherAddressDropdownComponents: function($subscriptionComponent) {\r\n\t\t$subscriptionComponent = $($subscriptionComponent || \"[data-component='subscription']\");\r\n\r\n\t\tvar isThisIsMeChecked = $subscriptionComponent.find(\"[data-component='thisIsMeCheckbox.input']\").first().is(\":checked\");\r\n\r\n\t\t$subscriptionComponent.find(\"[data-component='otherAddressDropdown']\").each((index, otherAddressDropdown) => {\r\n\t\t\tvar $otherAddressDropdown = $(otherAddressDropdown);\r\n\t\t\tvar $selector = $otherAddressDropdown.find(\"[data-component='otherAddressDropdown.selector']\");\r\n\t\t\t//Hide the other address dropdown if this is me is not checked\r\n\t\t\tif (!isThisIsMeChecked) {\r\n\t\t\t\t$otherAddressDropdown.hide();\r\n\t\t\t} else {\r\n\t\t\t\t$otherAddressDropdown.show();\r\n\t\t\t\tthis.setOtherAddress($subscriptionComponent, $selector);\r\n\t\t\t}\r\n\t\t\t$selector.off(\"change.otherAddressDropdown\");\r\n\t\t\t//Setting a change listener on the other address dropdown select\r\n\t\t\t$selector.on(\"change.otherAddressDropdown\", () => {\r\n\t\t\t\t//If there are any other other address dropdowns on the page, making sure they all match in value\r\n\t\t\t\t$subscriptionComponent.find(\"[data-component='otherAddressDropdown.selector']\").not($selector).each((otherSelectIndex, otherSelectElement) => {\r\n\t\t\t\t\totherSelectElement.value = $selector.val();\r\n\t\t\t\t});\r\n\t\t\t\tthis.setOtherAddress($subscriptionComponent, $selector);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeOtherEmailDropdownComponents: function($subscriptionComponent) {\r\n\t\t$subscriptionComponent = $($subscriptionComponent || \"[data-component='subscription']\");\r\n\r\n\t\tvar isThisIsMeChecked = $subscriptionComponent.find(\"[data-component='thisIsMeCheckbox.input']\").first().is(\":checked\");\r\n\r\n\t\t$subscriptionComponent.find(\"[data-component='otherEmailDropdown']\").each((index, otherEmailDropdown) => {\r\n\t\t\tvar $otherEmailDropdown = $(otherEmailDropdown);\r\n\t\t\tvar $selector = $otherEmailDropdown.find(\"[data-component='otherEmailDropdown.selector']\");\r\n\t\t\t//Hide the other email dropdown if this is me is not checked\r\n\t\t\tif (!isThisIsMeChecked) {\r\n\t\t\t\t$otherEmailDropdown.hide();\r\n\t\t\t} else {\r\n\t\t\t\t$otherEmailDropdown.show();\r\n\t\t\t\tthis.setOtherEmail($subscriptionComponent, $selector);\r\n\t\t\t}\r\n\t\t\t$selector.off(\"change.otherEmailDropdown\");\r\n\t\t\t//Setting a change listener on the other email dropdown select\r\n\t\t\t$selector.on(\"change.otherEmailDropdown\", () => {\r\n\t\t\t\t//If there are any other other email dropdowns on the page, making sure they all match in value\r\n\t\t\t\t$subscriptionComponent.find(\"[data-component='otherEmailDropdown.selector']\").not($selector).each((otherSelectIndex, otherSelectElement) => {\r\n\t\t\t\t\totherSelectElement.value = $selector.val();\r\n\t\t\t\t});\r\n\t\t\t\tthis.setOtherEmail($subscriptionComponent, $selector);\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\r\n\tinitializeSubscriptionComponent: function (options) {\r\n\t\toptions = options || {};\r\n\t\tvar $subscriptionComponent = $(\"[data-component='subscription']\");\r\n\r\n\t\t//InitializePhoneNumberInput\r\n\t\tvar defaultCountry = ((this.accountData || {}).address || {}).country;\r\n\t\twindow.AccountActions.initializePhoneNumberGroupComponent(defaultCountry, $subscriptionComponent.find(\"[data-component='createAccountForm']\"));\r\n\r\n\t\t//initializing the thisIsMeCheckbox component\r\n\t\t$subscriptionComponent.find(\"[data-component='thisIsMeCheckbox']\").each((index, checkbox) => {\r\n\t\t\tvar $checkbox = $(checkbox);\r\n\t\t\tvar $input = $checkbox.find(\"[data-component='thisIsMeCheckbox.input']\");\r\n\t\t\t//Removing for on label because the whole thisIsMeCheckbox is clickable\r\n\t\t\t$checkbox.find(\"label[data-child-of='thisIsMeCheckbox']\").removeAttr(\"for\");\r\n\t\t\t//Adding the click event listener\r\n\t\t\t$input.off(\"click.thisIsMe\");\r\n\t\t\t$input.on(\"click.thisIsMe\", (event) => {\r\n\t\t\t\tthis.thisIsMeSelected(event, $input);\r\n\t\t\t});\r\n\r\n\t\t\t$checkbox.off(\"click.thisIsMe\");\r\n\t\t\t$checkbox.on(\"click.thisIsMe\", (event) => {\r\n\t\t\t\tif ($input.is(\":disabled\")) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t\t\tthis.thisIsMeSelected(event, $input);\r\n\t\t\t});\r\n\r\n\t\t\t$checkbox.find(\"*\").add($checkbox).css(\"cursor\", \"pointer\");\r\n\t\t});\r\n\r\n\t\t$subscriptionComponent.find(\"[data-component='autoRenewCheckbox']\").each((index, checkbox) => {\r\n\t\t\tvar $checkbox = $(checkbox);\r\n\t\t\tvar $input = $checkbox.find(\"[data-component='autoRenewCheckbox.input']\");\r\n\t\t\t//Removing for on label because the whole autoRenew is clickable\r\n\t\t\t$checkbox.find(\"label[data-child-of='autoRenewCheckbox']\").removeAttr(\"for\");\r\n\r\n\t\t\t// If the subscription doesn't support auto-renew, disable.\r\n\t\t\tif (!options.supportsAutoRenew) {\r\n\t\t\t\t$input\r\n\t\t\t\t\t.prop(\"checked\", false)\r\n\t\t\t\t\t.prop(\"disabled\", true);\r\n\t\t\t} else {\r\n\t\t\t\t//Adding the click event listener\r\n\t\t\t\t$input.off(\"click.autoRenew\");\r\n\t\t\t\t$input.on(\"click.autoRenew\", (event) => {\r\n\t\t\t\t\tthis.autoRenewSelected(event, $input);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$checkbox.off(\"click.autoRenew\");\r\n\t\t\t\t$checkbox.on(\"click.autoRenew\", (event) => {\r\n\t\t\t\t\tif ($input.is(\":disabled\")) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$input.prop(\"checked\", !$input.prop(\"checked\"));\r\n\t\t\t\t\tthis.autoRenewSelected(event, $input);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$checkbox.find(\"*\").add($checkbox).css(\"cursor\", \"pointer\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.initializeSubscriptionPriceCodesComponent();\r\n\r\n\t\tthis.initializeOtherAddressDropdownComponents($subscriptionComponent);\r\n\r\n\t\tthis.initializeOtherEmailDropdownComponents($subscriptionComponent);\r\n\r\n\t\t//Initialize the Subscription Quantity component\r\n\t\tInputHelper.initializeIntegerInput({\r\n\t\t\t$component: $subscriptionComponent,\r\n\t\t\tdefaultValue: 1,\r\n\t\t\tgreaterThanZero: true,\r\n\t\t\tnumberSelector: \"[data-component='subscriptionQuantity']\"\r\n\t\t});\r\n\r\n\t\t//Initializing the quantity component value to 1.\r\n\t\t$(\"[data-component='subscriptionQuantity']\").val(1);\r\n\r\n\t\t//Initialize the Subscription Start Date component(s)\r\n\t\tInputHelper.initializeDates({\r\n\t\t\t$component: $subscriptionComponent,\r\n\t\t\tdateSelector: \"[data-component='subscriptionStartDate']\",\r\n\t\t\twizardDateFormat: this.wizardDateFormat.dateFormat\r\n\t\t});\r\n\r\n\t\t//Adding custom validator for Start Date for when add to cart is clicked\r\n\t\t$subscriptionComponent.find(\"[data-component='subscriptionStartDate']\").each((index, element) => {\r\n\t\t\tvar $element = $(element);\r\n\t\t\t$element.attr(\"data-has-custom-validator\", true).data({\r\n\t\t\t\tcustomValidator: () => {\r\n\t\t\t\t\tvar errorMessages = [];\r\n\t\t\t\t\tvar startDate = $element.val();\r\n\r\n\t\t\t\t\t//coersion, want to be true if not null and not undefined and not empty string; that is the only time I want to do the validation\r\n\t\t\t\t\tif (startDate != null && startDate != \"\") {\r\n\t\t\t\t\t\terrorMessages = InputHelper.validateStartAndEndDates({\r\n\t\t\t\t\t\t\tdateFormat: this.wizardDateFormat.dateFormat,\r\n\t\t\t\t\t\t\tstartDate,\r\n\t\t\t\t\t\t\tstartDateInvalidMessage: this[WizardConstants.WIZARDS.SUBSCRIPTION_DISPLAY_MESSAGES].startDateInvalid\r\n\t\t\t\t\t\t}) || [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\terrorMessages,\r\n\t\t\t\t\t\tisValid: !errorMessages.length\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tSmartyStreets.initializeForSubscriptionPurchase($subscriptionComponent.find(\"[data-component='createAccountForm']\").attr(\"id\"));\r\n\t},\r\n\r\n\tinitializeSubscriptionPriceCodesComponent: function($component, isDesignMode) {\r\n\t\t$component = $($component || \"body\");\r\n\r\n\t\tif ($component.is(\"[data-component='subscriptionPriceCodes']\")) {\r\n\t\t\t$component.attr(\"data-partial\", `prices-${$component.attr(\"id\")}`);\r\n\t\t}\r\n\r\n\t\tvar $singlePriceCodeComponents = $component.find(\"[data-component='subscriptionPriceCodes.singlePriceCode']\");\r\n\r\n\t\t//Setting up the click listeners to change the selected class\r\n\t\t$singlePriceCodeComponents.off(\"click.subscriptionPriceCodes\");\r\n\t\t$singlePriceCodeComponents.off(\"keyup.subscriptionPriceCodes\");\r\n\r\n\t\t$singlePriceCodeComponents.on(\"click.subscriptionPriceCodes\", (event) => {\r\n\t\t\tthis.priceCodeClicked(event, isDesignMode);\r\n\t\t});\r\n\t\t$singlePriceCodeComponents.on(\"keyup.subscriptionPriceCodes\", (event) => {\r\n\t\t\tif (event && (event.which === Constants.KEYS.ENTER || event.which === Constants.KEYS.SPACE)) {\r\n\t\t\t\tthis.priceCodeClicked(event, isDesignMode);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (!isDesignMode) {\r\n\t\t\t$singlePriceCodeComponents.first().addClass(\"selected\");\r\n\t\t}\r\n\t},\r\n\r\n\tinitializeSubscriptionPromotionalCodeComponent: function ($promoCodeFormComponent, layoutId) {\r\n\t\tif (!$promoCodeFormComponent || !$promoCodeFormComponent.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $form = $promoCodeFormComponent.find(\"form\");\r\n\r\n\t\t// make form id unique\r\n\t\tvar componentId = $promoCodeFormComponent.attr(\"id\");\r\n\t\tvar formId = $form.attr(\"id\");\r\n\t\tvar $submitButton = $form.find(\"[data-component='submitButton']\");\r\n\r\n\t\tvar newId = `${formId}_${componentId}`;\r\n\r\n\t\t$form.attr(\"id\", newId);\r\n\t\t$submitButton.attr(\"form\", newId);\r\n\r\n\t\t$form.off(\"submit.promotionalCodeForm\");\r\n\t\t$form.on(\"submit.promotionalCodeForm\", (event) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\tvar $formInput = $promoCodeFormComponent.find(\"[data-component='applyPromotionalCodeForm.input']\");\r\n\t\t\tvar promotion = $formInput.val().toUpperCase();\r\n\t\t\tvar subscription = window.tangibleCode;\r\n\t\t\tvar $priceComponent = $(\"[data-component='subscriptionPriceCodes']\");\r\n\r\n\t\t\tif (!promotion) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$formInput.val(\"\");\r\n\r\n\t\t\t// trigger price code refresh\r\n\t\t\t$priceComponent.load(`/subscriptions/${subscription}/prices?layoutId=${layoutId}&id=${$priceComponent.attr(\"id\")}&promotion=${promotion} .subscription-price-codes-wrapper`, (response, status) => {\r\n\t\t\t\tif (status !== \"error\") {\r\n\t\t\t\t\tthis.initializeSubscriptionPriceCodesComponent($priceComponent, false);\r\n\r\n\t\t\t\t\tvar appliedPromotion = $(response).attr(\"data-promotion\");\r\n\r\n\t\t\t\t\tvar $currentPromotionalCode = $(\"[data-component='currentPromotionalCode']\");\r\n\t\t\t\t\tif (appliedPromotion) {\r\n\t\t\t\t\t\t$currentPromotionalCode.find(\"[data-dynamic='PromotionalCode']\").html(promotion);\r\n\t\t\t\t\t\t$currentPromotionalCode.show();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$currentPromotionalCode.find(\"[data-dynamic='PromotionalCode']\").html(\"\");\r\n\t\t\t\t\t\t$currentPromotionalCode.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn false;\r\n\t\t});\r\n\t},\r\n\r\n\tremovePromotionalCode(event, isDesignMode, layoutId) {\r\n\t\tevent = this._getEventOrReturn(event, \"Remove promotional code clicked successfully\", isDesignMode);\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tvar subscription = window.tangibleCode;\r\n\t\tvar $priceComponent = $(\"[data-component='subscriptionPriceCodes']\");\r\n\r\n\t\tvar $currentPromotionalCode = $(\"[data-component='currentPromotionalCode']\");\r\n\t\t$currentPromotionalCode.hide();\r\n\r\n\t\t$priceComponent.load(`/subscriptions/${subscription}/prices?layoutId=${layoutId}&id=${$priceComponent.attr(\"id\")}&promotion= .subscription-price-codes-wrapper`, (response, status) => {\r\n\t\t\tif (status !== \"error\") {\r\n\t\t\t\tthis.initializeSubscriptionPriceCodesComponent($priceComponent, false);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\tpriceCodeClicked: function(event, isDesignMode) {\r\n\t\t//When a price code is clicked, we just need to change the selected class\r\n\t\tvar $singlePriceCode = $(event.target).closest(\"[data-component='subscriptionPriceCodes.singlePriceCode']\");\r\n\r\n\t\tif ((isDesignMode && (event.ctrlKey || event.metaKey)) || (!isDesignMode && !$singlePriceCode.hasClass(\"selected\"))) {\r\n\t\t\t$singlePriceCode.toggleClass(\"selected\");\r\n\t\t\t$singlePriceCode.closest(\"[data-component='subscriptionPriceCodes']\").find(\"[data-component='subscriptionPriceCodes.singlePriceCode']\").not($singlePriceCode).removeClass(\"selected\");\r\n\t\t}\r\n\r\n\t\t//This is below because we want all that is above to occur in the designer and the constituent page.\r\n\t\t//\tHave this below to show the message that the price code has been clicked.\r\n\t\tthis._getEventOrReturn(event, \"Single Subscription Price Code Clicked\", isDesignMode);\r\n\t},\r\n\r\n\tsetOtherAddress: function($subscriptionComponent, $otherAddressSelector) {\r\n\t\tvar selectedAddress = this.getSelectedAddress($otherAddressSelector) || {};\r\n\r\n\t\tvar $createAccountForm = $subscriptionComponent.find(\"[data-component='createAccountForm']\");\r\n\t\tvar createAccountFormId = $createAccountForm.attr(\"id\");\r\n\r\n\t\tvar id = selectedAddress.id || 0;\r\n\t\tif (id <= 0) {\r\n\t\t\tthis._setAddressDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t\tthis._clearAddressData($subscriptionComponent, createAccountFormId);\r\n\t\t} else {\r\n\t\t\tthis._setAccountData({\r\n\t\t\t\taddress: selectedAddress,\r\n\t\t\t\tonlyAddressData: true\r\n\t\t\t}, $subscriptionComponent, createAccountFormId);\r\n\t\t\tthis._setAddressDisableStatus($subscriptionComponent, /*isDisabled*/true);\r\n\t\t}\r\n\t},\r\n\r\n\tsetOtherEmail: function($subscriptionComponent, $otherEmailSelector) {\r\n\t\tvar selectedEmail = this.getSelectedEmail($otherEmailSelector) || {};\r\n\r\n\t\tvar $createAccountForm = $subscriptionComponent.find(\"[data-component='createAccountForm']\");\r\n\t\tvar createAccountFormId = $createAccountForm.attr(\"id\");\r\n\r\n\t\tvar id = selectedEmail.id || 0;\r\n\t\tif (id <= 0) {\r\n\t\t\tthis._setEmailDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t\tthis._clearEmailData($subscriptionComponent, createAccountFormId);\r\n\t\t} else {\r\n\t\t\tthis._setAccountData({\r\n\t\t\t\temail: selectedEmail,\r\n\t\t\t\tonlyEmailData: true\r\n\t\t\t}, $subscriptionComponent, createAccountFormId);\r\n\t\t\tthis._setEmailDisableStatus($subscriptionComponent, /*isDisabled*/true);\r\n\t\t}\r\n\t},\r\n\r\n\tthisIsMeSelected: function(event, $checkboxInput) {\r\n\t\tif (!event) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!$checkboxInput.length || $checkboxInput.is(\":disabled\")) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $subscriptionComponent = $checkboxInput.closest(\"[data-component='subscription']\");\r\n\t\tvar $allThisIsMeCheckboxesInSubscription = $subscriptionComponent.find(\"input[data-component='thisIsMeCheckbox.input']\");\r\n\t\tvar $createAccountForm = $subscriptionComponent.find(\"[data-component='createAccountForm']\");\r\n\t\tvar createAccountFormId = $createAccountForm.attr(\"id\");\r\n\t\tvar $otherAddressDropdowns = $subscriptionComponent.find(\"[data-component='otherAddressDropdown']\");\r\n\t\tvar $otherEmailDropdowns = $subscriptionComponent.find(\"[data-component='otherEmailDropdown']\");\r\n\r\n\t\t//Set all the other thisIsMeCheckboxes in this subscription component to the same as the one that was just checked.\r\n\t\t$allThisIsMeCheckboxesInSubscription.prop(\"checked\", $checkboxInput.is(\":checked\"));\r\n\r\n\t\t//This fixes problems when the thisIsMeCheckbox is inside the subscriptionPriceCodes component.\r\n\t\tevent.stopPropagation();\r\n\t\t//We do not have accountData, meaning we are unidentified, so after we set all the other thisIsMe checkboxes the same, we should return.\r\n\t\tif (!this.accountData) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar accountData = Object.assign({}, this.accountData);\r\n\r\n\t\t//We are checking the otherAddressDropdown component, if one exists on the page\r\n\t\tvar selectedAddress = this.getSelectedAddress($otherAddressDropdowns.first().find(\"[data-component='otherAddressDropdown.selector']\"));\r\n\t\tvar isAddressSelected = false;\r\n\t\tvar emptyAddressSelected = false;\r\n\t\tif (selectedAddress) {\r\n\t\t\tif (selectedAddress.id > 0) {\r\n\t\t\t\taccountData.address = selectedAddress;\r\n\t\t\t\tisAddressSelected = true;\r\n\t\t\t} else if (selectedAddress.id === 0) {\r\n\t\t\t\taccountData.address = {};\r\n\t\t\t\temptyAddressSelected = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//We are checking the otherAddressDropdown component, if one exists on the page\r\n\t\tvar selectedEmail = this.getSelectedEmail($otherEmailDropdowns.first().find(\"[data-component='otherEmailDropdown.selector']\"));\r\n\t\tvar isEmailSelected = false;\r\n\t\tvar emptyEmailSelected = false;\r\n\t\tif (selectedEmail) {\r\n\t\t\tif (selectedEmail.id > 0) {\r\n\t\t\t\taccountData.email = selectedEmail;\r\n\t\t\t\tisEmailSelected = true;\r\n\t\t\t} else if (selectedEmail.id === 0) {\r\n\t\t\t\taccountData.email = {};\r\n\t\t\t\temptyEmailSelected = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ($checkboxInput.is(\":checked\")) {\r\n\t\t\t$otherAddressDropdowns.show();\r\n\t\t\t$otherEmailDropdowns.show();\r\n\t\t\t//Do we have existing data on the form, if so, save it\r\n\t\t\t//Save previously entered data\r\n\t\t\tthis.savedThisIsMeValues = this._serializeSubscriptionPurchaseData($subscriptionComponent);\r\n\r\n\t\t\tthis._clearSubscriptionPurchaseData($subscriptionComponent, createAccountFormId);\r\n\r\n\t\t\t//This is the first checkbox input. If we have account data, set it.\r\n\t\t\tthis._setAccountData(accountData, $subscriptionComponent, createAccountFormId);\r\n\r\n\t\t\t//If update is not allowed, we should set the fields to disabled\r\n\t\t\tif (!this.accountUpdateAllowed) {\r\n\t\t\t\tthis._setFieldDisableStatus($subscriptionComponent, /*isDisabled*/true);\r\n\t\t\t}\r\n\r\n\t\t\tif (isAddressSelected) {\r\n\t\t\t\t//If we have an otherAddressDropdown component and one is selected, we are disabling the address fields.\r\n\t\t\t\tthis._setAddressDisableStatus($subscriptionComponent, /*isDisabled*/true);\r\n\t\t\t} else if (emptyAddressSelected) {\r\n\t\t\t\t//If the empty address is selected, we have to be sure that the address fields are enabled\r\n\t\t\t\tthis._setAddressDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t\t}\r\n\r\n\t\t\tif (isEmailSelected) {\r\n\t\t\t\t//If we have an otherEmailDropdown component and one is selected, we are disabling the address fields.\r\n\t\t\t\tthis._setEmailDisableStatus($subscriptionComponent, /*isDisabled*/true);\r\n\t\t\t} else if (emptyEmailSelected) {\r\n\t\t\t\t//If the empty address is selected, we have to be sure that the address fields are enabled\r\n\t\t\t\tthis._setEmailDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t\t}\r\n\r\n\t\t\t//Need to set the address as verified for SmartyStreets\r\n\t\t\t$createAccountForm.find(\"form\")\r\n\t\t\t\t.attr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED, \"true\")\r\n\t\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED)\r\n\t\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR);\r\n\t\t} else {\r\n\t\t\t$otherAddressDropdowns.hide();\r\n\t\t\t$otherEmailDropdowns.hide();\r\n\t\t\t//Clear the data\r\n\t\t\tthis._clearSubscriptionPurchaseData($subscriptionComponent, createAccountFormId);\r\n\r\n\t\t\tvar savedFormData = this.savedThisIsMeValues;\r\n\t\t\t//Do we have previous saved data\r\n\t\t\tif (savedFormData) {\r\n\t\t\t\tthis._setAccountData(savedFormData, $subscriptionComponent, createAccountFormId);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tverifySmartyStreets: function(ids, deferred) {\r\n\t\t//We could be verifying multiple address components.\r\n\t\tdeferred = deferred || new $.Deferred();\r\n\r\n\t\tif (ids == null) { //coercion because I want both null and undefined\r\n\t\t\tids = $(\"[data-component='subscription'] [data-component='createAccountForm']\").filter((index, element) => {\r\n\t\t\t\treturn $(element).find(\"[data-component='accountAddressLine1']:enabled\").length;\r\n\t\t\t}).toArray().map(element => $(element).attr(\"id\"));\r\n\t\t}\r\n\r\n\t\tids = ids || [];\r\n\t\tif (ids.length) {\r\n\t\t\tSmartyStreets.verifyAddress(`subscription${ids[0]}`).done(() => {\r\n\t\t\t\tids.splice(0, 1);\r\n\t\t\t\tthis.verifySmartyStreets(ids, deferred);\r\n\t\t\t}).fail(() => {\r\n\t\t\t\tdeferred.reject();\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tdeferred.resolve();\r\n\t\t}\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t_clearAddressData($subscriptionComponent, formParentId) {\r\n\t\tthis._setAddressDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\r\n\t\t$subscriptionComponent.find(\"[data-component='accountAddressLine1'],[data-component='accountAddressLine2'],[data-component='accountAddressLine3'],[data-component='accountAddressLine4'],[data-component='accountAddressCity'],[data-component='accountAddressPostalCode']\")\r\n\t\t\t\t\t\t\t.val(\"\");\r\n\t\twindow.AccountActions.setSelectedCountry(formParentId, window.AccountStore.getDefaultCountry());\r\n\t\twindow.AccountActions.setSelectedState(formParentId, \"\");\r\n\r\n\t\tValidationHelper.removeBetterValidationPopup($subscriptionComponent.find(\"[data-component='accountAddressLine1'],[data-component='accountAddressLine2'],[data-component='accountAddressLine3'],[data-component='accountAddressLine4'],[data-component='accountAddressCity'],[data-component='accountAddressPostalCode'],[data-component='accountAddressState'] select,[data-component='accountAddressCountry'] select\").removeClass(\"invalid\"));\r\n\r\n\t\t$subscriptionComponent.find(\"[data-component='createAccountForm'] form\")\r\n\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.VERIFIED)\r\n\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.USER_CERTIFIED)\r\n\t\t\t.removeAttr(Constants.ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES.ERROR);\r\n\t},\r\n\r\n\t_clearEmailData($subscriptionComponent, formParentId) {\r\n\t\tthis._setEmailDisableStatus($subscriptionComponent, /*isDisabled*/false);\r\n\t\t$subscriptionComponent.find(\"[data-component='accountEmailAddress']\").val(\"\");\r\n\r\n\t\twindow.AccountActions.setSelectedEmailType(formParentId, \"\");\r\n\r\n\t\tValidationHelper.removeBetterValidationPopup($subscriptionComponent.find(\"[data-component='accountEmailAddress'],[data-component='accountEmailType'] select\").removeClass(\"invalid\"));\r\n\t},\r\n\r\n\t_clearSubscriptionPurchaseData($subscriptionComponent, formParentId) {\r\n\t\t$subscriptionComponent.find(\"input:visible,select:visible\").prop(\"disabled\", false);\r\n\t\t$subscriptionComponent.find(\"input:not([data-component='autoRenewCheckbox.input'],[data-component='thisIsMeCheckbox.input'],[data-component='subscriptionStartDate'],[data-component='subscriptionQuantity'])\").val(\"\");\r\n\t\twindow.AccountActions.setSelectedTitle(formParentId, \"\");\r\n\t\twindow.AccountActions.setSelectedPhoneType(formParentId, \"\");\r\n\t\twindow.AccountActions.setSelectedOrganizationType(formParentId, \"\");\r\n\t\tValidationHelper.removeBetterValidationPopup($subscriptionComponent.find(\"input,select\").removeClass(\"invalid\"));\r\n\r\n\t\tthis._clearAddressData($subscriptionComponent, formParentId);\r\n\t\tthis._clearEmailData($subscriptionComponent, formParentId);\r\n\t},\r\n\r\n\t_getEventOrReturn: function(event, isDesignModeMessage, isDesignMode) {\r\n\t\treturn ActionsHelper.getEventOrReturn(event, isDesignMode != null ? isDesignMode : window.AccountActions.isDesignMode(), isDesignModeMessage, /*preventDefaultInDesignMode*/false); //coersion, because we want to check for null or undefined\r\n\t},\r\n\r\n\t_serializeSubscriptionPurchaseData: function($subscriptionComponent) {\r\n\t\tvar data = {};\r\n\t\t//Save previously entered data\r\n\t\tdata = ActionsHelper.serializeForm($subscriptionComponent.find(\"form#createAccountForm\"));\r\n\r\n\t\treturn data;\r\n\t},\r\n\r\n\t_setAccountData: function(data, $component, formId) {\r\n\t\t//This is the first checkbox input. If we have account data, set it.\r\n\t\tif (data) {\r\n\t\t\tif (!data.onlyAddressData && !data.onlyEmailData) {\r\n\t\t\t\tvar account = data;\r\n\t\t\t\tif (data.type == \"O\") {\r\n\t\t\t\t\taccount = this.organizationPrimaryContact || {};\r\n\t\t\t\t\tthis._setTextInput($component, \"organizationName\", data.name);\r\n\t\t\t\t\twindow.AccountActions.setSelectedOrganizationType(formId, data.organizationType);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._setTextInput($component, \"accountFirstName\", account.firstName);\r\n\t\t\t\tthis._setTextInput($component, \"accountLastName\", account.lastName);\r\n\t\t\t\tthis._setTextInput($component, \"accountMiddleName\", account.middleName);\r\n\t\t\t\tthis._setTextInput($component, \"accountMiddleName\", account.middleName);\r\n\t\t\t\tthis._setTextInput($component, \"accountSuffix\", account.suffix);\r\n\t\t\t\twindow.AccountActions.setSelectedTitle(formId, account.title);\r\n\t\t\t}\r\n\t\t\tif (data.address) {\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine1\", data.address.line1);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine2\", data.address.line2);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine3\", data.address.line3);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressLine4\", data.address.line4);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressCity\", data.address.city);\r\n\t\t\t\tthis._setTextInput($component, \"accountAddressPostalCode\", data.address.postalCode);\r\n\t\t\t\twindow.AccountActions.setSelectedCountry(formId, data.address.country || window.AccountStore.getDefaultCountry());\r\n\t\t\t\twindow.AccountActions.setSelectedState(formId, data.address.state);\r\n\t\t\t}\r\n\t\t\tif (data.phone) {\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneCountryCode\", data.phone.internationalCode);\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneAreaCode\", data.phone.areaCode);\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneNumber\", data.phone.phoneNumber);\r\n\t\t\t\tthis._setTextInput($component, \"accountPhoneExtension\", data.phone.extension);\r\n\t\t\t\twindow.AccountActions.setSelectedPhoneType(formId, data.phone.type);\r\n\t\t\t}\r\n\t\t\tif (data.email) {\r\n\t\t\t\twindow.AccountActions.setSelectedEmailType(formId, data.email.type);\r\n\t\t\t\tthis._setTextInput($component, \"accountEmailAddress\", data.email.emailAddress);\r\n\t\t\t}\r\n\t\t\tValidationHelper.removeBetterValidationPopup($component.find(\"input,select\").removeClass(\"invalid\"));\r\n\t\t}\r\n\t},\r\n\r\n\t_setAddressDisableStatus: function($subscriptionComponent, isDisabled) {\r\n\t\t$subscriptionComponent.find(\"[data-component='accountAddressLine1'],[data-component='accountAddressLine2'],[data-component='accountAddressLine3'],[data-component='accountAddressLine4'],[data-component='accountAddressCity'],[data-component='accountAddressPostalCode'],[data-component='accountAddressState'] select,[data-component='accountAddressCountry'] select\")\r\n\t\t\t\t\t\t\t.prop(\"disabled\", isDisabled);\r\n\t},\r\n\r\n\t_setEmailDisableStatus: function($subscriptionComponent, isDisabled) {\r\n\t\t$subscriptionComponent.find(\"[data-component='accountEmailAddress'],[data-component='accountEmailType'] select\").prop(\"disabled\", isDisabled);\r\n\t},\r\n\r\n\t_setFieldDisableStatus: function($subscriptionComponent, isDisabled) {\r\n\t\t$subscriptionComponent.find(\"input:not([data-component='autoRenewCheckbox.input'],[data-component='thisIsMeCheckbox.input'],[data-component='subscriptionStartDate'],[data-component='subscriptionQuantity']),select:not([data-component='otherAddressDropdown.selector'],[data-component='otherEmailDropdown.selector'])\").prop(\"disabled\", isDisabled);\r\n\t},\r\n\r\n\t_setTextInput: function($parent, childComponentName, value) {\r\n\t\t$parent.find(`input[data-component=\"${childComponentName}\"]`).val(value || \"\");\r\n\t}\r\n};\r\n\r\nmodule.exports = SubscriptionHelper;\r\n","import memoize from '@emotion/memoize';\nimport unitless from '@emotion/unitless';\nimport hashString from '@emotion/hash';\nimport Stylis from '@emotion/stylis';\nimport stylisRuleSheet from 'stylis-rule-sheet';\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar processStyleName = memoize(function (styleName) {\n return styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\nvar processStyleValue = function processStyleValue(key, value) {\n if (value == null || typeof value === 'boolean') {\n return '';\n }\n\n if (unitless[key] !== 1 && key.charCodeAt(1) !== 45 && // custom properties\n !isNaN(value) && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n return oldProcessStyleValue(key, value);\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'function':\n if (process.env.NODE_ENV !== 'production') {\n console.error('Passing functions to cx is deprecated and will be removed in the next major version of Emotion.\\n' + 'Please call the function before passing it to cx.');\n }\n\n toAdd = classnames([arg()]);\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\nvar isBrowser = typeof document !== 'undefined';\n\n/*\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n- 'polyfills' on server side\n\n// usage\n\nimport StyleSheet from 'glamor/lib/sheet'\nlet styleSheet = new StyleSheet()\n\nstyleSheet.inject()\n- 'injects' the stylesheet into the page (or into memory if on server)\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction makeStyleTag(opts) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', opts.key || '');\n\n if (opts.nonce !== undefined) {\n tag.setAttribute('nonce', opts.nonce);\n }\n\n tag.appendChild(document.createTextNode('')) // $FlowFixMe\n ;\n (opts.container !== undefined ? opts.container : document.head).appendChild(tag);\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = process.env.NODE_ENV === 'production'; // the big drawback here is that the css won't be editable in devtools\n\n this.tags = [];\n this.ctr = 0;\n this.opts = options;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.inject = function inject() {\n if (this.injected) {\n throw new Error('already injected!');\n }\n\n this.tags[0] = makeStyleTag(this.opts);\n this.injected = true;\n };\n\n _proto.speedy = function speedy(bool) {\n if (this.ctr !== 0) {\n // cannot change speedy mode after inserting any rule to sheet. Either call speedy(${bool}) earlier in your app, or call flush() before speedy(${bool})\n throw new Error(\"cannot change speedy now\");\n }\n\n this.isSpeedy = !!bool;\n };\n\n _proto.insert = function insert(rule, sourceMap) {\n // this is the ultrafast version, works across browsers\n if (this.isSpeedy) {\n var tag = this.tags[this.tags.length - 1];\n var sheet = sheetForTag(tag);\n\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('illegal rule', rule); // eslint-disable-line no-console\n }\n }\n } else {\n var _tag = makeStyleTag(this.opts);\n\n this.tags.push(_tag);\n\n _tag.appendChild(document.createTextNode(rule + (sourceMap || '')));\n }\n\n this.ctr++;\n\n if (this.ctr % 65000 === 0) {\n this.tags.push(makeStyleTag(this.opts));\n }\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0; // todo - look for remnants in document.styleSheets\n\n this.injected = false;\n };\n\n return StyleSheet;\n}();\n\nfunction createEmotion(context, options) {\n if (context.__SECRET_EMOTION__ !== undefined) {\n return context.__SECRET_EMOTION__;\n }\n\n if (options === undefined) options = {};\n var key = options.key || 'css';\n\n if (process.env.NODE_ENV !== 'production') {\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var current;\n\n function insertRule(rule) {\n current += rule;\n\n if (isBrowser) {\n sheet.insert(rule, currentSourceMap);\n }\n }\n\n var insertionPlugin = stylisRuleSheet(insertRule);\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var caches = {\n registered: {},\n inserted: {},\n nonce: options.nonce,\n key: key\n };\n var sheet = new StyleSheet(options);\n\n if (isBrowser) {\n // 🚀\n sheet.inject();\n }\n\n var stylis = new Stylis(stylisOptions);\n stylis.use(options.stylisPlugins)(insertionPlugin);\n var currentSourceMap = '';\n\n function handleInterpolation(interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n return '';\n\n case 'function':\n if (interpolation.__emotion_styles !== undefined) {\n var selector = interpolation.toString();\n\n if (selector === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return selector;\n }\n\n if (this === undefined && process.env.NODE_ENV !== 'production') {\n console.error('Interpolating functions in css calls is deprecated and will be removed in the next major version of Emotion.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n return handleInterpolation.call(this, this === undefined ? interpolation() : // $FlowFixMe\n interpolation(this.mergedProps, this.context), couldBeSelectorInterpolation);\n\n case 'object':\n return createStringFromObject.call(this, interpolation);\n\n default:\n var cached = caches.registered[interpolation];\n return couldBeSelectorInterpolation === false && cached !== undefined ? cached : interpolation;\n }\n }\n\n var objectToStringCache = new WeakMap();\n\n function createStringFromObject(obj) {\n if (objectToStringCache.has(obj)) {\n // $FlowFixMe\n return objectToStringCache.get(obj);\n }\n\n var string = '';\n\n if (Array.isArray(obj)) {\n obj.forEach(function (interpolation) {\n string += handleInterpolation.call(this, interpolation, false);\n }, this);\n } else {\n Object.keys(obj).forEach(function (key) {\n if (typeof obj[key] !== 'object') {\n if (caches.registered[obj[key]] !== undefined) {\n string += key + \"{\" + caches.registered[obj[key]] + \"}\";\n } else {\n string += processStyleName(key) + \":\" + processStyleValue(key, obj[key]) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(obj[key]) && typeof obj[key][0] === 'string' && caches.registered[obj[key][0]] === undefined) {\n obj[key].forEach(function (value) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value) + \";\";\n });\n } else {\n string += key + \"{\" + handleInterpolation.call(this, obj[key], false) + \"}\";\n }\n }\n }, this);\n }\n\n objectToStringCache.set(obj, string);\n return string;\n }\n\n var name;\n var stylesWithLabel;\n var labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\n\n var createClassName = function createClassName(styles, identifierName) {\n return hashString(styles + identifierName) + identifierName;\n };\n\n if (process.env.NODE_ENV !== 'production') {\n var oldCreateClassName = createClassName;\n var sourceMappingUrlPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n\n createClassName = function createClassName(styles, identifierName) {\n return oldCreateClassName(styles.replace(sourceMappingUrlPattern, function (sourceMap) {\n currentSourceMap = sourceMap;\n return '';\n }), identifierName);\n };\n }\n\n var createStyles = function createStyles(strings) {\n var stringMode = true;\n var styles = '';\n var identifierName = '';\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation.call(this, strings, false);\n } else {\n styles += strings[0];\n }\n\n for (var _len = arguments.length, interpolations = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n interpolations.forEach(function (interpolation, i) {\n styles += handleInterpolation.call(this, interpolation, styles.charCodeAt(styles.length - 1) === 46 // .\n );\n\n if (stringMode === true && strings[i + 1] !== undefined) {\n styles += strings[i + 1];\n }\n }, this);\n stylesWithLabel = styles;\n styles = styles.replace(labelPattern, function (match, p1) {\n identifierName += \"-\" + p1;\n return '';\n });\n name = createClassName(styles, identifierName);\n return styles;\n };\n\n if (process.env.NODE_ENV !== 'production') {\n var oldStylis = stylis;\n\n stylis = function stylis(selector, styles) {\n oldStylis(selector, styles);\n currentSourceMap = '';\n };\n }\n\n function insert(scope, styles) {\n if (caches.inserted[name] === undefined) {\n current = '';\n stylis(scope, styles);\n caches.inserted[name] = current;\n }\n }\n\n var css = function css() {\n var styles = createStyles.apply(this, arguments);\n var selector = key + \"-\" + name;\n\n if (caches.registered[selector] === undefined) {\n caches.registered[selector] = stylesWithLabel;\n }\n\n insert(\".\" + selector, styles);\n return selector;\n };\n\n var keyframes = function keyframes() {\n var styles = createStyles.apply(this, arguments);\n var animation = \"animation-\" + name;\n insert('', \"@keyframes \" + animation + \"{\" + styles + \"}\");\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n var styles = createStyles.apply(this, arguments);\n insert('', styles);\n };\n\n function getRegisteredStyles(registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (caches.registered[className] !== undefined) {\n registeredStyles.push(className);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n }\n\n function merge(className, sourceMap) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles, sourceMap);\n }\n\n function cx() {\n for (var _len2 = arguments.length, classNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classNames[_key2] = arguments[_key2];\n }\n\n return merge(classnames(classNames));\n }\n\n function hydrateSingleId(id) {\n caches.inserted[id] = true;\n }\n\n function hydrate(ids) {\n ids.forEach(hydrateSingleId);\n }\n\n function flush() {\n if (isBrowser) {\n sheet.flush();\n sheet.inject();\n }\n\n caches.inserted = {};\n caches.registered = {};\n }\n\n if (isBrowser) {\n var chunks = document.querySelectorAll(\"[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(chunks, function (node) {\n // $FlowFixMe\n sheet.tags[0].parentNode.insertBefore(node, sheet.tags[0]); // $FlowFixMe\n\n node.getAttribute(\"data-emotion-\" + key).split(' ').forEach(hydrateSingleId);\n });\n }\n\n var emotion = {\n flush: flush,\n hydrate: hydrate,\n cx: cx,\n merge: merge,\n getRegisteredStyles: getRegisteredStyles,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n css: css,\n sheet: sheet,\n caches: caches\n };\n context.__SECRET_EMOTION__ = emotion;\n return emotion;\n}\n\nexport default createEmotion;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","import createEmotion from 'create-emotion';\n\nvar context = typeof global !== 'undefined' ? global : {};\n\nvar _createEmotion = createEmotion(context),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n caches = _createEmotion.caches;\n\nexport { flush, hydrate, cx, merge, getRegisteredStyles, injectGlobal, keyframes, css, sheet, caches };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n\"use strict\";\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function (condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nmodule.exports.Dispatcher = require('./lib/Dispatcher');\n","/**\n * Copyright (c) 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Dispatcher\n * \n * @preventMunge\n */\n\n'use strict';\n\nexports.__esModule = true;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar _prefix = 'ID_';\n\n/**\n * Dispatcher is used to broadcast payloads to registered callbacks. This is\n * different from generic pub-sub systems in two ways:\n *\n * 1) Callbacks are not subscribed to particular events. Every payload is\n * dispatched to every registered callback.\n * 2) Callbacks can be deferred in whole or part until other callbacks have\n * been executed.\n *\n * For example, consider this hypothetical flight destination form, which\n * selects a default city when a country is selected:\n *\n * var flightDispatcher = new Dispatcher();\n *\n * // Keeps track of which country is selected\n * var CountryStore = {country: null};\n *\n * // Keeps track of which city is selected\n * var CityStore = {city: null};\n *\n * // Keeps track of the base flight price of the selected city\n * var FlightPriceStore = {price: null}\n *\n * When a user changes the selected city, we dispatch the payload:\n *\n * flightDispatcher.dispatch({\n * actionType: 'city-update',\n * selectedCity: 'paris'\n * });\n *\n * This payload is digested by `CityStore`:\n *\n * flightDispatcher.register(function(payload) {\n * if (payload.actionType === 'city-update') {\n * CityStore.city = payload.selectedCity;\n * }\n * });\n *\n * When the user selects a country, we dispatch the payload:\n *\n * flightDispatcher.dispatch({\n * actionType: 'country-update',\n * selectedCountry: 'australia'\n * });\n *\n * This payload is digested by both stores:\n *\n * CountryStore.dispatchToken = flightDispatcher.register(function(payload) {\n * if (payload.actionType === 'country-update') {\n * CountryStore.country = payload.selectedCountry;\n * }\n * });\n *\n * When the callback to update `CountryStore` is registered, we save a reference\n * to the returned token. Using this token with `waitFor()`, we can guarantee\n * that `CountryStore` is updated before the callback that updates `CityStore`\n * needs to query its data.\n *\n * CityStore.dispatchToken = flightDispatcher.register(function(payload) {\n * if (payload.actionType === 'country-update') {\n * // `CountryStore.country` may not be updated.\n * flightDispatcher.waitFor([CountryStore.dispatchToken]);\n * // `CountryStore.country` is now guaranteed to be updated.\n *\n * // Select the default city for the new country\n * CityStore.city = getDefaultCityForCountry(CountryStore.country);\n * }\n * });\n *\n * The usage of `waitFor()` can be chained, for example:\n *\n * FlightPriceStore.dispatchToken =\n * flightDispatcher.register(function(payload) {\n * switch (payload.actionType) {\n * case 'country-update':\n * case 'city-update':\n * flightDispatcher.waitFor([CityStore.dispatchToken]);\n * FlightPriceStore.price =\n * getFlightPriceStore(CountryStore.country, CityStore.city);\n * break;\n * }\n * });\n *\n * The `country-update` payload will be guaranteed to invoke the stores'\n * registered callbacks in order: `CountryStore`, `CityStore`, then\n * `FlightPriceStore`.\n */\n\nvar Dispatcher = (function () {\n function Dispatcher() {\n _classCallCheck(this, Dispatcher);\n\n this._callbacks = {};\n this._isDispatching = false;\n this._isHandled = {};\n this._isPending = {};\n this._lastID = 1;\n }\n\n /**\n * Registers a callback to be invoked with every dispatched payload. Returns\n * a token that can be used with `waitFor()`.\n */\n\n Dispatcher.prototype.register = function register(callback) {\n var id = _prefix + this._lastID++;\n this._callbacks[id] = callback;\n return id;\n };\n\n /**\n * Removes a callback based on its token.\n */\n\n Dispatcher.prototype.unregister = function unregister(id) {\n !this._callbacks[id] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Dispatcher.unregister(...): `%s` does not map to a registered callback.', id) : invariant(false) : undefined;\n delete this._callbacks[id];\n };\n\n /**\n * Waits for the callbacks specified to be invoked before continuing execution\n * of the current callback. This method should only be used by a callback in\n * response to a dispatched payload.\n */\n\n Dispatcher.prototype.waitFor = function waitFor(ids) {\n !this._isDispatching ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Dispatcher.waitFor(...): Must be invoked while dispatching.') : invariant(false) : undefined;\n for (var ii = 0; ii < ids.length; ii++) {\n var id = ids[ii];\n if (this._isPending[id]) {\n !this._isHandled[id] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Dispatcher.waitFor(...): Circular dependency detected while ' + 'waiting for `%s`.', id) : invariant(false) : undefined;\n continue;\n }\n !this._callbacks[id] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Dispatcher.waitFor(...): `%s` does not map to a registered callback.', id) : invariant(false) : undefined;\n this._invokeCallback(id);\n }\n };\n\n /**\n * Dispatches a payload to all registered callbacks.\n */\n\n Dispatcher.prototype.dispatch = function dispatch(payload) {\n !!this._isDispatching ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.') : invariant(false) : undefined;\n this._startDispatching(payload);\n try {\n for (var id in this._callbacks) {\n if (this._isPending[id]) {\n continue;\n }\n this._invokeCallback(id);\n }\n } finally {\n this._stopDispatching();\n }\n };\n\n /**\n * Is this Dispatcher currently dispatching.\n */\n\n Dispatcher.prototype.isDispatching = function isDispatching() {\n return this._isDispatching;\n };\n\n /**\n * Call the callback stored with the given id. Also do some internal\n * bookkeeping.\n *\n * @internal\n */\n\n Dispatcher.prototype._invokeCallback = function _invokeCallback(id) {\n this._isPending[id] = true;\n this._callbacks[id](this._pendingPayload);\n this._isHandled[id] = true;\n };\n\n /**\n * Set up bookkeeping needed when dispatching.\n *\n * @internal\n */\n\n Dispatcher.prototype._startDispatching = function _startDispatching(payload) {\n for (var id in this._callbacks) {\n this._isPending[id] = false;\n this._isHandled[id] = false;\n }\n this._pendingPayload = payload;\n this._isDispatching = true;\n };\n\n /**\n * Clear bookkeeping used for dispatching.\n *\n * @internal\n */\n\n Dispatcher.prototype._stopDispatching = function _stopDispatching() {\n delete this._pendingPayload;\n this._isDispatching = false;\n };\n\n return Dispatcher;\n})();\n\nmodule.exports = Dispatcher;","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.6.1\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.TRACE = defineLogLevel(1, 'TRACE');\r\n\tLogger.DEBUG = defineLogLevel(2, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(3, 'INFO');\r\n\tLogger.TIME = defineLogLevel(4, 'TIME');\r\n\tLogger.WARN = defineLogLevel(5, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\t\t\r\n\t\t// Gets the current logging level for the logging instance\r\n\t\tgetLevel: function () {\r\n\t\t\treturn this.context.filterLevel;\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\ttrace: function () {\r\n\t\t\tthis.invoke(Logger.TRACE, arguments);\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.trace = bind(globalLogger, globalLogger.trace);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Gets the global logging filter level\r\n\tLogger.getLevel = function() {\r\n\t\treturn globalLogger.getLevel();\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t} else if (context.level === Logger.DEBUG && console.debug) {\r\n\t\t\t\t\thdlr = console.debug;\r\n\t\t\t\t} else if (context.level === Logger.TRACE && console.trace) {\r\n\t\t\t\t\thdlr = console.trace;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Createa an alias to useDefaults to avoid reaking a react-hooks rule.\r\n\tLogger.setDefaults = Logger.useDefaults;\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n","/**\n * Copyright 2013-2014 Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n\"use strict\";\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function(obj) {\n var ret = {};\n var key;\n if (!(obj instanceof Object && !Array.isArray(obj))) {\n throw new Error('keyMirror(...): Argument must be an object.');\n }\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\n\nmodule.exports = keyMirror;\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/** @license React v16.1.2\n * react-dom.development.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar _assign = require('object-assign');\nvar emptyFunction$1 = require('fbjs/lib/emptyFunction');\nvar EventListener = require('fbjs/lib/EventListener');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar checkPropTypes = require('prop-types/checkPropTypes');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\n!React ? invariant(false, 'ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.') : void 0;\n\n// These attributes should be all lowercase to allow for\n// case insensitive checks\nvar RESERVED_PROPS = {\n children: true,\n dangerouslySetInnerHTML: true,\n defaultValue: true,\n defaultChecked: true,\n innerHTML: true,\n suppressContentEditableWarning: true,\n suppressHydrationWarning: true,\n style: true\n};\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\n HAS_STRING_BOOLEAN_VALUE: 0x40,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n * attribute namespace URL. (Attribute names not specified use no namespace.)\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function (domPropertyConfig) {\n var Injection = DOMPropertyInjection;\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n for (var propName in Properties) {\n !!properties.hasOwnProperty(propName) ? invariant(false, \"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.\", propName) : void 0;\n\n var lowerCased = propName.toLowerCase();\n var propConfig = Properties[propName];\n\n var propertyInfo = {\n attributeName: lowerCased,\n attributeNamespace: null,\n propertyName: propName,\n mutationMethod: null,\n\n mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE),\n hasStringBooleanValue: checkMask(propConfig, Injection.HAS_STRING_BOOLEAN_VALUE)\n };\n !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? invariant(false, \"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s\", propName) : void 0;\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n\n propertyInfo.attributeName = attributeName;\n }\n\n if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n }\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n propertyInfo.mutationMethod = DOMMutationMethods[propName];\n }\n\n // Downcase references to whitelist properties to check for membership\n // without case-sensitivity. This allows the whitelist to pick up\n // `allowfullscreen`, which should be written using the property configuration\n // for `allowFullscreen`\n properties[propName] = propertyInfo;\n }\n }\n};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n/* eslint-enable max-len */\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n\n\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\n\n/**\n * Map from property \"standard name\" to an object with info about how to set\n * the property in the DOM. Each object contains:\n *\n * attributeName:\n * Used when rendering markup or with `*Attribute()`.\n * attributeNamespace\n * propertyName:\n * Used on DOM node instances. (This includes properties that mutate due to\n * external factors.)\n * mutationMethod:\n * If non-null, used instead of the property or `setAttribute()` after\n * initial render.\n * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\n * hasBooleanValue:\n * Whether the property should be removed when set to a falsey value.\n * hasNumericValue:\n * Whether the property must be numeric or parse as a numeric and should be\n * removed when set to a falsey value.\n * hasPositiveNumericValue:\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * hasOverloadedBooleanValue:\n * Whether the property can be used as a flag as well as with a value.\n * Removed when strictly equal to false; present without a value when\n * strictly equal to true; present with a value otherwise.\n */\nvar properties = {};\n\n/**\n * Checks whether a property name is a writeable attribute.\n * @method\n */\nfunction shouldSetAttribute(name, value) {\n if (isReservedProp(name)) {\n return false;\n }\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return false;\n }\n if (value === null) {\n return true;\n }\n switch (typeof value) {\n case 'boolean':\n return shouldAttributeAcceptBooleanValue(name);\n case 'undefined':\n case 'number':\n case 'string':\n case 'object':\n return true;\n default:\n // function, symbol\n return false;\n }\n}\n\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction shouldAttributeAcceptBooleanValue(name) {\n if (isReservedProp(name)) {\n return true;\n }\n var propertyInfo = getPropertyInfo(name);\n if (propertyInfo) {\n return propertyInfo.hasBooleanValue || propertyInfo.hasStringBooleanValue || propertyInfo.hasOverloadedBooleanValue;\n }\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix === 'data-' || prefix === 'aria-';\n}\n\n/**\n * Checks to see if a property name is within the list of properties\n * reserved for internal React operations. These properties should\n * not be set on an HTML element.\n *\n * @private\n * @param {string} name\n * @return {boolean} If the name is within reserved props\n */\nfunction isReservedProp(name) {\n return RESERVED_PROPS.hasOwnProperty(name);\n}\n\nvar injection = DOMPropertyInjection;\n\nvar MUST_USE_PROPERTY = injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = injection.HAS_OVERLOADED_BOOLEAN_VALUE;\nvar HAS_STRING_BOOLEAN_VALUE = injection.HAS_STRING_BOOLEAN_VALUE;\n\nvar HTMLDOMPropertyConfig = {\n // When adding attributes to this list, be sure to also add them to\n // the `possibleStandardNames` module to ensure casing and incorrect\n // name warnings.\n Properties: {\n allowFullScreen: HAS_BOOLEAN_VALUE,\n // specifies target context for links with `preload` type\n async: HAS_BOOLEAN_VALUE,\n // Note: there is a special case that prevents it from being written to the DOM\n // on the client side because the browsers are inconsistent. Instead we call focus().\n autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_OVERLOADED_BOOLEAN_VALUE,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n contentEditable: HAS_STRING_BOOLEAN_VALUE,\n controls: HAS_BOOLEAN_VALUE,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: HAS_STRING_BOOLEAN_VALUE,\n formNoValidate: HAS_BOOLEAN_VALUE,\n hidden: HAS_BOOLEAN_VALUE,\n loop: HAS_BOOLEAN_VALUE,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n playsInline: HAS_BOOLEAN_VALUE,\n readOnly: HAS_BOOLEAN_VALUE,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n scoped: HAS_BOOLEAN_VALUE,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n start: HAS_NUMERIC_VALUE,\n // support for projecting regular DOM Elements via V1 named slots ( shadow dom )\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: HAS_STRING_BOOLEAN_VALUE,\n // Style must be explicitly set in the attribute list. React components\n // expect a style object\n style: 0,\n // Keep it in the whitelist because it is case-sensitive for SVG.\n tabIndex: 0,\n // itemScope is for for Microdata support.\n // See http://schema.org/docs/gs.html\n itemScope: HAS_BOOLEAN_VALUE,\n // These attributes must stay in the white-list because they have\n // different attribute names (see DOMAttributeNames below)\n acceptCharset: 0,\n className: 0,\n htmlFor: 0,\n httpEquiv: 0,\n // Attributes with mutation methods must be specified in the whitelist\n // Set the string boolean flag to allow the behavior\n value: HAS_STRING_BOOLEAN_VALUE\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMMutationMethods: {\n value: function (node, value) {\n if (value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + value);\n }\n }\n }\n};\n\nvar HAS_STRING_BOOLEAN_VALUE$1 = injection.HAS_STRING_BOOLEAN_VALUE;\n\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n/**\n * This is a list of all SVG attributes that need special casing,\n * namespacing, or boolean value assignment.\n *\n * When adding attributes to this list, be sure to also add them to\n * the `possibleStandardNames` module to ensure casing and incorrect\n * name warnings.\n *\n * SVG Attributes List:\n * https://www.w3.org/TR/SVG/attindex.html\n * SMIL Spec:\n * https://www.w3.org/TR/smil\n */\nvar ATTRS = ['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'x-height', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xmlns:xlink', 'xml:lang', 'xml:space'];\n\nvar SVGDOMPropertyConfig = {\n Properties: {\n autoReverse: HAS_STRING_BOOLEAN_VALUE$1,\n externalResourcesRequired: HAS_STRING_BOOLEAN_VALUE$1,\n preserveAlpha: HAS_STRING_BOOLEAN_VALUE$1\n },\n DOMAttributeNames: {\n autoReverse: 'autoReverse',\n externalResourcesRequired: 'externalResourcesRequired',\n preserveAlpha: 'preserveAlpha'\n },\n DOMAttributeNamespaces: {\n xlinkActuate: NS.xlink,\n xlinkArcrole: NS.xlink,\n xlinkHref: NS.xlink,\n xlinkRole: NS.xlink,\n xlinkShow: NS.xlink,\n xlinkTitle: NS.xlink,\n xlinkType: NS.xlink,\n xmlBase: NS.xml,\n xmlLang: NS.xml,\n xmlSpace: NS.xml\n }\n};\n\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n};\n\nATTRS.forEach(function (original) {\n var reactName = original.replace(CAMELIZE, capitalize);\n\n SVGDOMPropertyConfig.Properties[reactName] = 0;\n SVGDOMPropertyConfig.DOMAttributeNames[reactName] = original;\n});\n\ninjection.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\ninjection.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\nvar ReactErrorUtils = {\n // Used by Fiber to simulate a try-catch.\n _caughtError: null,\n _hasCaughtError: false,\n\n // Used by event system to capture/rethrow the first error.\n _rethrowError: null,\n _hasRethrowError: false,\n\n injection: {\n injectErrorUtils: function (injectedErrorUtils) {\n !(typeof injectedErrorUtils.invokeGuardedCallback === 'function') ? invariant(false, 'Injected invokeGuardedCallback() must be a function.') : void 0;\n invokeGuardedCallback = injectedErrorUtils.invokeGuardedCallback;\n }\n },\n\n /**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n invokeGuardedCallback: function (name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(ReactErrorUtils, arguments);\n },\n\n /**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if _caughtError and _rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n invokeGuardedCallbackAndCatchFirstError: function (name, func, context, a, b, c, d, e, f) {\n ReactErrorUtils.invokeGuardedCallback.apply(this, arguments);\n if (ReactErrorUtils.hasCaughtError()) {\n var error = ReactErrorUtils.clearCaughtError();\n if (!ReactErrorUtils._hasRethrowError) {\n ReactErrorUtils._hasRethrowError = true;\n ReactErrorUtils._rethrowError = error;\n }\n }\n },\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n return rethrowCaughtError.apply(ReactErrorUtils, arguments);\n },\n\n hasCaughtError: function () {\n return ReactErrorUtils._hasCaughtError;\n },\n\n clearCaughtError: function () {\n if (ReactErrorUtils._hasCaughtError) {\n var error = ReactErrorUtils._caughtError;\n ReactErrorUtils._caughtError = null;\n ReactErrorUtils._hasCaughtError = false;\n return error;\n } else {\n invariant(false, 'clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n};\n\nvar invokeGuardedCallback = function (name, func, context, a, b, c, d, e, f) {\n ReactErrorUtils._hasCaughtError = false;\n ReactErrorUtils._caughtError = null;\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n ReactErrorUtils._caughtError = error;\n ReactErrorUtils._hasCaughtError = true;\n }\n};\n\n{\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // untintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {\n // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n var didError = true;\n\n // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n function callCallback() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false);\n func.apply(context, funcArgs);\n didError = false;\n }\n\n // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n var error = void 0;\n // Use this to track whether the error event is ever called.\n var didSetError = false;\n var isCrossOriginError = false;\n\n function onError(event) {\n error = event.error;\n didSetError = true;\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n }\n\n // Create a fake event type.\n var evtType = 'react-' + (name ? name : 'invokeguardedcallback');\n\n // Attach our event handlers\n window.addEventListener('error', onError);\n fakeNode.addEventListener(evtType, callCallback, false);\n\n // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');\n }\n ReactErrorUtils._hasCaughtError = true;\n ReactErrorUtils._caughtError = error;\n } else {\n ReactErrorUtils._hasCaughtError = false;\n ReactErrorUtils._caughtError = null;\n }\n\n // Remove our event listeners\n window.removeEventListener('error', onError);\n };\n\n invokeGuardedCallback = invokeGuardedCallbackDev;\n }\n}\n\nvar rethrowCaughtError = function () {\n if (ReactErrorUtils._hasRethrowError) {\n var error = ReactErrorUtils._rethrowError;\n ReactErrorUtils._rethrowError = null;\n ReactErrorUtils._hasRethrowError = false;\n throw error;\n }\n};\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!eventPluginOrder) {\n // Wait until an `eventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName];\n var pluginIndex = eventPluginOrder.indexOf(pluginName);\n !(pluginIndex > -1) ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : void 0;\n if (plugins[pluginIndex]) {\n continue;\n }\n !pluginModule.extractEvents ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : void 0;\n plugins[pluginIndex] = pluginModule;\n var publishedEvents = pluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : void 0;\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n !!eventNameDispatchConfigs.hasOwnProperty(eventName) ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : void 0;\n eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n !!registrationNameModules[registrationName] ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : void 0;\n registrationNameModules[registrationName] = pluginModule;\n registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\n\n/**\n * Ordered list of injected plugins.\n */\nvar plugins = [];\n\n/**\n * Mapping from event name to dispatch config\n */\nvar eventNameDispatchConfigs = {};\n\n/**\n * Mapping from registration name to plugin module\n */\nvar registrationNameModules = {};\n\n/**\n * Mapping from registration name to event name\n */\nvar registrationNameDependencies = {};\n\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\nvar possibleRegistrationNames = {};\n// Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\nfunction injectEventPluginOrder(injectedEventPluginOrder) {\n !!eventPluginOrder ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : void 0;\n // Clone the ordering so it cannot be dynamically mutated.\n eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n recomputePluginOrdering();\n}\n\n/**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\nfunction injectEventPluginsByName(injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var pluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n !!namesToPlugins[pluginName] ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : void 0;\n namesToPlugins[pluginName] = pluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n}\n\nvar EventPluginRegistry = Object.freeze({\n\tplugins: plugins,\n\teventNameDispatchConfigs: eventNameDispatchConfigs,\n\tregistrationNameModules: registrationNameModules,\n\tregistrationNameDependencies: registrationNameDependencies,\n\tpossibleRegistrationNames: possibleRegistrationNames,\n\tinjectEventPluginOrder: injectEventPluginOrder,\n\tinjectEventPluginsByName: injectEventPluginsByName\n});\n\nvar getFiberCurrentPropsFromNode = null;\nvar getInstanceFromNode = null;\nvar getNodeFromInstance = null;\n\nvar injection$2 = {\n injectComponentTree: function (Injected) {\n getFiberCurrentPropsFromNode = Injected.getFiberCurrentPropsFromNode;\n getInstanceFromNode = Injected.getInstanceFromNode;\n getNodeFromInstance = Injected.getNodeFromInstance;\n\n {\n warning(getNodeFromInstance && getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.');\n }\n }\n};\n\n\n\n\n\n\nvar validateEventDispatches;\n{\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.');\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = getNodeFromInstance(inst);\n ReactErrorUtils.invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\n\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\n\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n !(next != null) ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : void 0;\n\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n * @param {function} cb Callback invoked with each element or a collection.\n * @param {?} [scope] Scope used as `this` in a callback.\n */\nfunction forEachAccumulated(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n}\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\n\n/**\n * Methods for injecting dependencies.\n */\nvar injection$1 = {\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: injectEventPluginsByName\n};\n\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\nfunction getListener(inst, registrationName) {\n var listener;\n\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var stateNode = inst.stateNode;\n if (!stateNode) {\n // Work in progress (ex: onload events in incremental mode).\n return null;\n }\n var props = getFiberCurrentPropsFromNode(stateNode);\n if (!props) {\n // Work in progress.\n return null;\n }\n listener = props[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n !(!listener || typeof listener === 'function') ? invariant(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener) : void 0;\n return listener;\n}\n\n/**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\nfunction extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n}\n\n/**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\nfunction enqueueEvents(events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n}\n\n/**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\nfunction processEventQueue(simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : void 0;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n}\n\nvar EventPluginHub = Object.freeze({\n\tinjection: injection$1,\n\tgetListener: getListener,\n\textractEvents: extractEvents,\n\tenqueueEvents: enqueueEvents,\n\tprocessEventQueue: processEventQueue\n});\n\nvar IndeterminateComponent = 0; // Before we know whether it is functional or class\nvar FunctionalComponent = 1;\nvar ClassComponent = 2;\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\nvar HostComponent = 5;\nvar HostText = 6;\nvar CallComponent = 7;\nvar CallHandlerPhase = 8;\nvar ReturnComponent = 9;\nvar Fragment = 10;\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactInternalInstance$' + randomKey;\nvar internalEventHandlersKey = '__reactEventHandlers$' + randomKey;\n\nfunction precacheFiberNode$1(hostInst, node) {\n node[internalInstanceKey] = hostInst;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest = void 0;\n var inst = node[internalInstanceKey];\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber, this will always be the deepest root.\n return inst;\n }\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode$1(node) {\n var inst = node[internalInstanceKey];\n if (inst) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n return inst;\n } else {\n return null;\n }\n }\n return null;\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance$1(inst) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode;\n }\n\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n invariant(false, 'getNodeFromInstance: Invalid argument.');\n}\n\nfunction getFiberCurrentPropsFromNode$1(node) {\n return node[internalEventHandlersKey] || null;\n}\n\nfunction updateFiberProps$1(node, props) {\n node[internalEventHandlersKey] = props;\n}\n\nvar ReactDOMComponentTree = Object.freeze({\n\tprecacheFiberNode: precacheFiberNode$1,\n\tgetClosestInstanceFromNode: getClosestInstanceFromNode,\n\tgetInstanceFromNode: getInstanceFromNode$1,\n\tgetNodeFromInstance: getNodeFromInstance$1,\n\tgetFiberCurrentPropsFromNode: getFiberCurrentPropsFromNode$1,\n\tupdateFiberProps: updateFiberProps$1\n});\n\nfunction getParent(inst) {\n do {\n inst = inst['return'];\n // TODO: If this is a HostRoot we might want to bail out.\n // That is depending on if we want nested subtrees (layers) to bubble\n // events to their parent. We could also go through parentNode on the\n // host node but that wouldn't work for React Native and doesn't let us\n // do the portal feature.\n } while (inst && inst.tag !== HostComponent);\n if (inst) {\n return inst;\n }\n return null;\n}\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = getParent(tempA)) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = getParent(tempB)) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = getParent(instA);\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = getParent(instB);\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB || instA === instB.alternate) {\n return instA;\n }\n instA = getParent(instA);\n instB = getParent(instB);\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\n\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n return getParent(inst);\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = getParent(inst);\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (true) {\n if (!from) {\n break;\n }\n if (from === common) {\n break;\n }\n var alternate = from.alternate;\n if (alternate !== null && alternate === common) {\n break;\n }\n pathFrom.push(from);\n from = getParent(from);\n }\n var pathTo = [];\n while (true) {\n if (!to) {\n break;\n }\n if (to === common) {\n break;\n }\n var _alternate = to.alternate;\n if (_alternate !== null && _alternate === common) {\n break;\n }\n pathTo.push(to);\n to = getParent(to);\n }\n for (var i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (var _i = pathTo.length; _i-- > 0;) {\n fn(pathTo[_i], 'captured', argTo);\n }\n}\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing even a\n * single one.\n */\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n {\n warning(inst, 'Dispatching inst must not be null');\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? getParentInstance(targetInst) : null;\n traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (inst && event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\nvar EventPropagators = Object.freeze({\n\taccumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n\taccumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n\taccumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches,\n\taccumulateDirectDispatches: accumulateDirectDispatches\n});\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n }\n return contentKey;\n}\n\n/**\n * This helper object stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\nvar compositionState = {\n _root: null,\n _startText: null,\n _fallbackText: null\n};\n\nfunction initialize(nativeEventTarget) {\n compositionState._root = nativeEventTarget;\n compositionState._startText = getText();\n return true;\n}\n\nfunction reset() {\n compositionState._root = null;\n compositionState._startText = null;\n compositionState._fallbackText = null;\n}\n\nfunction getData() {\n if (compositionState._fallbackText) {\n return compositionState._fallbackText;\n }\n\n var start;\n var startValue = compositionState._startText;\n var startLength = startValue.length;\n var end;\n var endValue = getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n compositionState._fallbackText = endValue.slice(start, sliceTail);\n return compositionState._fallbackText;\n}\n\nfunction getText() {\n if ('value' in compositionState._root) {\n return compositionState._root.value;\n }\n return compositionState._root[getTextContentAccessor()];\n}\n\n/* eslint valid-typeof: 0 */\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\nvar EVENT_POOL_SIZE = 10;\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: null,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction$1.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction$1.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction$1.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction$1.thatReturnsFalse;\n return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction$1.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = emptyFunction$1.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {\n this.isPersistent = emptyFunction$1.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction$1.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function () {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction$1));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction$1));\n }\n }\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n var Super = this;\n\n var E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\n _assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = _assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n addEventPoolingTo(Class);\n};\n\n/** Proxying after everything set on SyntheticEvent\n * to resolve Proxy issue on some WebKit browsers\n * in which some Event properties are set to undefined (GH#10010)\n */\n{\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n warning(didWarnForAddedNewProperty || target.isPersistent(), \"This synthetic event is reused for performance reasons. If you're \" + \"seeing this, you're adding a new property in the synthetic event object. \" + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.');\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\n}\n\naddEventPoolingTo(SyntheticEvent);\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {String} propName\n * @param {?object} getVal\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n warning(warningCondition, \"This synthetic event is reused for performance reasons. If you're seeing this, \" + \"you're %s `%s` on a released/nullified synthetic event. %s. \" + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result);\n }\n}\n\nfunction getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) {\n var EventConstructor = this;\n if (EventConstructor.eventPool.length) {\n var instance = EventConstructor.eventPool.pop();\n EventConstructor.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new EventConstructor(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\n\nfunction releasePooledEvent(event) {\n var EventConstructor = this;\n !(event instanceof EventConstructor) ? invariant(false, 'Trying to release an event instance into a pool of a different type.') : void 0;\n event.destructor();\n if (EventConstructor.eventPool.length < EVENT_POOL_SIZE) {\n EventConstructor.eventPool.push(event);\n }\n}\n\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.eventPool = [];\n EventConstructor.getPooled = getPooledEvent;\n EventConstructor.release = releasePooledEvent;\n}\n\nvar SyntheticEvent$1 = SyntheticEvent;\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent$1.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent$1.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent$1.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent$1.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case 'topCompositionUpdate':\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case 'topKeyDown':\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n case 'topKeyPress':\n case 'topMouseDown':\n case 'topBlur':\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition status, if any.\nvar isComposing = false;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!isComposing) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!isComposing && eventType === eventTypes.compositionStart) {\n isComposing = initialize(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (isComposing) {\n fallbackData = getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {TopLevelTypes} topLevelType Record from `BrowserEventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case 'topKeyPress':\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'topTextInput':\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `BrowserEventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (isComposing) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n var chars = getData();\n reset();\n isComposing = false;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case 'topPaste':\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case 'topKeyPress':\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (!isKeypressCommand(nativeEvent)) {\n // IE fires the `keypress` event when a user types an emoji via\n // Touch keyboard of Windows. In such a case, the `char` property\n // holds an emoji character like `\\uD83D\\uDE0A`. Because its length\n // is 2, the property `which` does not represent an emoji correctly.\n // In such a case, we directly return the `char` property instead of\n // using `which`.\n if (nativeEvent.char && nativeEvent.char.length > 1) {\n return nativeEvent.char;\n } else if (nativeEvent.which) {\n return String.fromCharCode(nativeEvent.which);\n }\n }\n return null;\n case 'topCompositionEnd':\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n event.data = chars;\n accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\n// Use to restore controlled state after a change event has fired.\n\nvar fiberHostComponent = null;\n\nvar ReactControlledComponentInjection = {\n injectFiberControlledHostComponent: function (hostComponentImpl) {\n // The fiber implementation doesn't use dynamic dispatch so we need to\n // inject the implementation.\n fiberHostComponent = hostComponentImpl;\n }\n};\n\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n // We perform this translation at the end of the event loop so that we\n // always receive the correct fiber here\n var internalInstance = getInstanceFromNode(target);\n if (!internalInstance) {\n // Unmounted\n return;\n }\n !(fiberHostComponent && typeof fiberHostComponent.restoreControlledState === 'function') ? invariant(false, 'Fiber needs to be injected to handle a fiber target for controlled events. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n var props = getFiberCurrentPropsFromNode(internalInstance.stateNode);\n fiberHostComponent.restoreControlledState(internalInstance.stateNode, internalInstance.type, props);\n}\n\nvar injection$3 = ReactControlledComponentInjection;\n\nfunction enqueueStateRestore(target) {\n if (restoreTarget) {\n if (restoreQueue) {\n restoreQueue.push(target);\n } else {\n restoreQueue = [target];\n }\n } else {\n restoreTarget = target;\n }\n}\n\nfunction restoreStateIfNeeded() {\n if (!restoreTarget) {\n return;\n }\n var target = restoreTarget;\n var queuedTargets = restoreQueue;\n restoreTarget = null;\n restoreQueue = null;\n\n restoreStateOfTarget(target);\n if (queuedTargets) {\n for (var i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i]);\n }\n }\n}\n\nvar ReactControlledComponent = Object.freeze({\n\tinjection: injection$3,\n\tenqueueStateRestore: enqueueStateRestore,\n\trestoreStateIfNeeded: restoreStateIfNeeded\n});\n\n// Used as a way to call batchedUpdates when we don't have a reference to\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n\n// Defaults\nvar fiberBatchedUpdates = function (fn, bookkeeping) {\n return fn(bookkeeping);\n};\n\nvar isNestingBatched = false;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isNestingBatched) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state. Therefore, we add the target to\n // a queue of work.\n return fiberBatchedUpdates(fn, bookkeeping);\n }\n isNestingBatched = true;\n try {\n return fiberBatchedUpdates(fn, bookkeeping);\n } finally {\n // Here we wait until all updates have propagated, which is important\n // when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n // Then we restore state of any controlled component.\n isNestingBatched = false;\n restoreStateIfNeeded();\n }\n}\n\nvar ReactGenericBatchingInjection = {\n injectFiberBatchedUpdates: function (_batchedUpdates) {\n fiberBatchedUpdates = _batchedUpdates;\n }\n};\n\nvar injection$4 = ReactGenericBatchingInjection;\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\n/**\n * HTML nodeType values that represent the type of the node\n */\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG <use> element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n\n var currentValue = '' + node[valueField];\n\n // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable,\n configurable: true,\n get: function () {\n return descriptor.get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n descriptor.set.call(this, value);\n }\n });\n\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n }\n\n // TODO: Once it's just Fiber we can move this to node._wrapperState\n node._valueTracker = trackValueOnNode(node);\n}\n\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node);\n // if there is no tracker at this point it's unlikely\n // that trying again will succeed\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n return false;\n}\n\nvar eventTypes$1 = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n var event = SyntheticEvent$1.getPooled(eventTypes$1.change, inst, nativeEvent, target);\n event.type = 'change';\n // Flag this event loop as needing state restore.\n enqueueStateRestore(target);\n accumulateTwoPhaseDispatches(event);\n return event;\n}\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n enqueueEvents(event);\n processEventQueue(false);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance$1(targetInst);\n if (updateValueIfChanged(targetNode)) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n activeElement = null;\n activeElementInst = null;\n}\n\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n if (getInstIfValueChanged(activeElementInst)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst);\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === 'topClick') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topInput' || topLevelType === 'topChange') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n eventTypes: eventTypes$1,\n\n _isInputEventSupported: isInputEventSupported,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n};\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: null,\n detail: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent$1.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent$1.augmentClass(SyntheticUIEvent, UIEventInterface);\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n pageX: null,\n pageY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: null,\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nvar eventTypes$2 = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\n\nvar EnterLeaveEventPlugin = {\n eventTypes: eventTypes$2,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : getNodeFromInstance$1(from);\n var toNode = to == null ? win : getNodeFromInstance$1(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes$2.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes$2.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n};\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\n\n/**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n\n\nfunction get(key) {\n return key._reactInternalFiber;\n}\n\nfunction has(key) {\n return key._reactInternalFiber !== undefined;\n}\n\nfunction set(key, value) {\n key._reactInternalFiber = value;\n}\n\nvar ReactInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar ReactCurrentOwner = ReactInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame = ReactInternals.ReactDebugCurrentFrame;\n\nfunction getComponentName(fiber) {\n var type = fiber.type;\n\n if (typeof type === 'string') {\n return type;\n }\n if (typeof type === 'function') {\n return type.displayName || type.name;\n }\n return null;\n}\n\n// Don't change these two values:\nvar NoEffect = 0; // 0b00000000\nvar PerformedWork = 1; // 0b00000001\n\n// You can change the rest (and add more).\nvar Placement = 2; // 0b00000010\nvar Update = 4; // 0b00000100\nvar PlacementAndUpdate = 6; // 0b00000110\nvar Deletion = 8; // 0b00001000\nvar ContentReset = 16; // 0b00010000\nvar Callback = 32; // 0b00100000\nvar Err = 64; // 0b01000000\nvar Ref = 128; // 0b10000000\n\nvar MOUNTING = 1;\nvar MOUNTED = 2;\nvar UNMOUNTED = 3;\n\nfunction isFiberMountedImpl(fiber) {\n var node = fiber;\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n if ((node.effectTag & Placement) !== NoEffect) {\n return MOUNTING;\n }\n while (node['return']) {\n node = node['return'];\n if ((node.effectTag & Placement) !== NoEffect) {\n return MOUNTING;\n }\n }\n } else {\n while (node['return']) {\n node = node['return'];\n }\n }\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return MOUNTED;\n }\n // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n return UNMOUNTED;\n}\n\nfunction isFiberMounted(fiber) {\n return isFiberMountedImpl(fiber) === MOUNTED;\n}\n\nfunction isMounted(component) {\n {\n var owner = ReactCurrentOwner.current;\n if (owner !== null && owner.tag === ClassComponent) {\n var ownerFiber = owner;\n var instance = ownerFiber.stateNode;\n warning(instance._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber) || 'A component');\n instance._warnedAboutRefsInRender = true;\n }\n }\n\n var fiber = get(component);\n if (!fiber) {\n return false;\n }\n return isFiberMountedImpl(fiber) === MOUNTED;\n}\n\nfunction assertIsMounted(fiber) {\n !(isFiberMountedImpl(fiber) === MOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n var state = isFiberMountedImpl(fiber);\n !(state !== UNMOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;\n if (state === MOUNTING) {\n return null;\n }\n return fiber;\n }\n // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n var a = fiber;\n var b = alternate;\n while (true) {\n var parentA = a['return'];\n var parentB = parentA ? parentA.alternate : null;\n if (!parentA || !parentB) {\n // We're at the root.\n break;\n }\n\n // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n child = child.sibling;\n }\n // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n invariant(false, 'Unable to find node on an unmounted component.');\n }\n\n if (a['return'] !== b['return']) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n var didFindChild = false;\n var _child = parentA.child;\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild) {\n // Search parent B's child set\n _child = parentB.child;\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n _child = _child.sibling;\n }\n !didFindChild ? invariant(false, 'Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.') : void 0;\n }\n }\n\n !(a.alternate === b) ? invariant(false, 'Return fibers should always be each others\\' alternates. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n }\n // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n !(a.tag === HostRoot) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n }\n // Otherwise B has to be current branch.\n return alternate;\n}\n\nfunction findCurrentHostFiber(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n if (!currentParent) {\n return null;\n }\n\n // Next we'll drill down this component to find the first HostComponent/Text.\n var node = currentParent;\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n } else if (node.child) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n if (node === currentParent) {\n return null;\n }\n while (!node.sibling) {\n if (!node['return'] || node['return'] === currentParent) {\n return null;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n return null;\n}\n\nfunction findCurrentHostFiberWithNoPortals(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n if (!currentParent) {\n return null;\n }\n\n // Next we'll drill down this component to find the first HostComponent/Text.\n var node = currentParent;\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n } else if (node.child && node.tag !== HostPortal) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n if (node === currentParent) {\n return null;\n }\n while (!node.sibling) {\n if (!node['return'] || node['return'] === currentParent) {\n return null;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n return null;\n}\n\nvar CALLBACK_BOOKKEEPING_POOL_SIZE = 10;\nvar callbackBookkeepingPool = [];\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findRootContainerNode(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst['return']) {\n inst = inst['return'];\n }\n if (inst.tag !== HostRoot) {\n // This can happen if we're in a detached tree.\n return null;\n }\n return inst.stateNode.containerInfo;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) {\n if (callbackBookkeepingPool.length) {\n var instance = callbackBookkeepingPool.pop();\n instance.topLevelType = topLevelType;\n instance.nativeEvent = nativeEvent;\n instance.targetInst = targetInst;\n return instance;\n }\n return {\n topLevelType: topLevelType,\n nativeEvent: nativeEvent,\n targetInst: targetInst,\n ancestors: []\n };\n}\n\nfunction releaseTopLevelCallbackBookKeeping(instance) {\n instance.topLevelType = null;\n instance.nativeEvent = null;\n instance.targetInst = null;\n instance.ancestors.length = 0;\n if (callbackBookkeepingPool.length < CALLBACK_BOOKKEEPING_POOL_SIZE) {\n callbackBookkeepingPool.push(instance);\n }\n}\n\nfunction handleTopLevelImpl(bookKeeping) {\n var targetInst = bookKeeping.targetInst;\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n if (!ancestor) {\n bookKeeping.ancestors.push(ancestor);\n break;\n }\n var root = findRootContainerNode(ancestor);\n if (!root) {\n break;\n }\n bookKeeping.ancestors.push(ancestor);\n ancestor = getClosestInstanceFromNode(root);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n _handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\n// TODO: can we stop exporting these?\nvar _enabled = true;\nvar _handleTopLevel = void 0;\n\nfunction setHandleTopLevel(handleTopLevel) {\n _handleTopLevel = handleTopLevel;\n}\n\nfunction setEnabled(enabled) {\n _enabled = !!enabled;\n}\n\nfunction isEnabled() {\n return _enabled;\n}\n\n/**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `BrowserEventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\nfunction trapBubbledEvent(topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, dispatchEvent.bind(null, topLevelType));\n}\n\n/**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `BrowserEventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\nfunction trapCapturedEvent(topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, dispatchEvent.bind(null, topLevelType));\n}\n\nfunction dispatchEvent(topLevelType, nativeEvent) {\n if (!_enabled) {\n return;\n }\n\n var nativeEventTarget = getEventTarget(nativeEvent);\n var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n if (targetInst !== null && typeof targetInst.tag === 'number' && !isFiberMounted(targetInst)) {\n // If we get an event (ex: img onload) before committing that\n // component's mount, ignore it for now (that is, treat it as if it was an\n // event on a non-React tree). We might also consider queueing events and\n // dispatching them after the mount.\n targetInst = null;\n }\n\n var bookKeeping = getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst);\n\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n releaseTopLevelCallbackBookKeeping(bookKeeping);\n }\n}\n\nvar ReactDOMEventListener = Object.freeze({\n\tget _enabled () { return _enabled; },\n\tget _handleTopLevel () { return _handleTopLevel; },\n\tsetHandleTopLevel: setHandleTopLevel,\n\tsetEnabled: setEnabled,\n\tisEnabled: isEnabled,\n\ttrapBubbledEvent: trapBubbledEvent,\n\ttrapCapturedEvent: trapCapturedEvent,\n\tdispatchEvent: dispatchEvent\n});\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\n/**\n * Types of raw signals from the browser caught at the top level.\n *\n * For events like 'submit' which don't consistently bubble (which we\n * trap at a lower node than `document`), binding at `document` would\n * cause duplicate events so we don't include them here.\n */\nvar topLevelTypes$1 = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCancel: 'cancel',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topClose: 'close',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoad: 'load',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topToggle: 'toggle',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\nvar BrowserEventConstants = {\n topLevelTypes: topLevelTypes$1\n};\n\nfunction runEventQueueInBatch(events) {\n enqueueEvents(events);\n processEventQueue(false);\n}\n\n/**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n */\nfunction handleTopLevel(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n}\n\nvar topLevelTypes = BrowserEventConstants.topLevelTypes;\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactDOMEventListener, which is injected and can therefore support\n * pluggable event sources. This is the only work that occurs in the main\n * thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar reactTopListenersCounter = 0;\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + ('' + Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\nfunction listenTo(registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n trapBubbledEvent('topWheel', 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n trapCapturedEvent('topFocus', 'focus', mountAt);\n trapCapturedEvent('topBlur', 'blur', mountAt);\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.topFocus = true;\n } else if (dependency === 'topCancel') {\n if (isEventSupported('cancel', true)) {\n trapCapturedEvent('topCancel', 'cancel', mountAt);\n }\n isListening.topCancel = true;\n } else if (dependency === 'topClose') {\n if (isEventSupported('close', true)) {\n trapCapturedEvent('topClose', 'close', mountAt);\n }\n isListening.topClose = true;\n } else if (topLevelTypes.hasOwnProperty(dependency)) {\n trapBubbledEvent(dependency, topLevelTypes[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n}\n\nfunction isListeningToAllDependencies(registrationName, mountAt) {\n var isListening = getListeningForDocument(mountAt);\n var dependencies = registrationNameDependencies[registrationName];\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === TEXT_NODE) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\nfunction getOffsets(outerNode) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode$$1 = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n // expose properties, triggering a \"Permission denied error\" if any of its\n // properties are accessed. The only seemingly possible way to avoid erroring\n // is to access a property that typically works for non-anonymous divs and\n // catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n try {\n /* eslint-disable no-unused-expressions */\n anchorNode.nodeType;\n focusNode$$1.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode$$1, focusOffset);\n}\n\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode$$1, focusOffset) {\n var length = 0;\n var start = -1;\n var end = -1;\n var indexWithinAnchor = 0;\n var indexWithinFocus = 0;\n var node = outerNode;\n var parentNode = null;\n\n outer: while (true) {\n var next = null;\n\n while (true) {\n if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n start = length + anchorOffset;\n }\n if (node === focusNode$$1 && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n end = length + focusOffset;\n }\n\n if (node.nodeType === TEXT_NODE) {\n length += node.nodeValue.length;\n }\n\n if ((next = node.firstChild) === null) {\n break;\n }\n // Moving from `node` to its first child `next`.\n parentNode = node;\n node = next;\n }\n\n while (true) {\n if (node === outerNode) {\n // If `outerNode` has children, this is always the second time visiting\n // it. If it has no children, this is still the first loop, and the only\n // valid selection is anchorNode and focusNode both equal to this node\n // and both offsets 0, in which case we will have handled above.\n break outer;\n }\n if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n start = length;\n }\n if (parentNode === focusNode$$1 && ++indexWithinFocus === focusOffset) {\n end = length;\n }\n if ((next = node.nextSibling) !== null) {\n break;\n }\n node = parentNode;\n parentNode = node.parentNode;\n }\n\n // Moving from `node` to its next sibling `next`.\n node = next;\n }\n\n if (start === -1 || end === -1) {\n // This should never happen. (Would happen if the anchor/focus nodes aren't\n // actually inside the passed-in node.)\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n return;\n }\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\n\nfunction getSelectionInformation() {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection$1(focusedElem) : null\n };\n}\n\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\nfunction restoreSelection(priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (hasSelectionCapabilities(priorFocusedElem)) {\n setSelection(priorFocusedElem, priorSelectionRange);\n }\n\n // Focusing a node can change the scroll position, which is undesirable\n var ancestors = [];\n var ancestor = priorFocusedElem;\n while (ancestor = ancestor.parentNode) {\n if (ancestor.nodeType === ELEMENT_NODE) {\n ancestors.push({\n element: ancestor,\n left: ancestor.scrollLeft,\n top: ancestor.scrollTop\n });\n }\n }\n\n focusNode(priorFocusedElem);\n\n for (var i = 0; i < ancestors.length; i++) {\n var info = ancestors[i];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n}\n\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\nfunction getSelection$1(input) {\n var selection = void 0;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else {\n // Content editable or old IE textarea.\n selection = getOffsets(input);\n }\n\n return selection || { start: 0, end: 0 };\n}\n\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\nfunction setSelection(input, offsets) {\n var start = offsets.start,\n end = offsets.end;\n\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else {\n setOffsets(input, offsets);\n }\n}\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes$3 = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement$1);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent$1.getPooled(eventTypes$3.select, activeElementInst$1, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement$1;\n\n accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n eventTypes: eventTypes$3,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var doc = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget.document : nativeEventTarget.nodeType === DOCUMENT_NODE ? nativeEventTarget : nativeEventTarget.ownerDocument;\n // Track whether all listeners exists for this plugin. If none exist, we do\n // not extract events. See #3639.\n if (!doc || !isListeningToAllDependencies('onSelect', doc)) {\n return null;\n }\n\n var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement$1 = targetNode;\n activeElementInst$1 = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement$1 = null;\n activeElementInst$1 = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case 'topMouseUp':\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n }\n};\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent$1.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent$1.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent$1.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent$1.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent$1.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent$1.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes$4 = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'toggle', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes$4[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\n// Only used in DEV for exhaustiveness validation.\nvar knownHTMLTopLevelTypes = ['topAbort', 'topCancel', 'topCanPlay', 'topCanPlayThrough', 'topClose', 'topDurationChange', 'topEmptied', 'topEncrypted', 'topEnded', 'topError', 'topInput', 'topInvalid', 'topLoad', 'topLoadedData', 'topLoadedMetadata', 'topLoadStart', 'topPause', 'topPlay', 'topPlaying', 'topProgress', 'topRateChange', 'topReset', 'topSeeked', 'topSeeking', 'topStalled', 'topSubmit', 'topSuspend', 'topTimeUpdate', 'topToggle', 'topVolumeChange', 'topWaiting'];\n\nvar SimpleEventPlugin = {\n eventTypes: eventTypes$4,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topKeyPress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case 'topClick':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n default:\n {\n if (knownHTMLTopLevelTypes.indexOf(topLevelType) === -1) {\n warning(false, 'SimpleEventPlugin: Unhandled event type, `%s`. This warning ' + 'is likely caused by a bug in React. Please file an issue.', topLevelType);\n }\n }\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent$1;\n break;\n }\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n accumulateTwoPhaseDispatches(event);\n return event;\n }\n};\n\nsetHandleTopLevel(handleTopLevel);\n\n/**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\ninjection$1.injectEventPluginOrder(DOMEventPluginOrder);\ninjection$2.injectComponentTree(ReactDOMComponentTree);\n\n/**\n * Some important event plugins included by default (without having to require\n * them).\n */\ninjection$1.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n});\n\nvar enableAsyncSubtreeAPI = true;\nvar enableAsyncSchedulingByDefaultInReactDOM = false;\n// Exports React.Fragment\nvar enableReactFragment = false;\n// Exports ReactDOM.createRoot\nvar enableCreateRoot = false;\nvar enableUserTimingAPI = true;\n\n// Mutating mode (React DOM, React ART, React Native):\nvar enableMutatingReconciler = true;\n// Experimental noop mode (currently unused):\nvar enableNoopReconciler = false;\n// Experimental persistent mode (CS):\nvar enablePersistentReconciler = false;\n\n// Only used in www builds.\n\nvar valueStack = [];\n\n{\n var fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n return {\n current: defaultValue\n };\n}\n\n\n\nfunction pop(cursor, fiber) {\n if (index < 0) {\n {\n warning(false, 'Unexpected pop.');\n }\n return;\n }\n\n {\n if (fiber !== fiberStack[index]) {\n warning(false, 'Unexpected Fiber popped.');\n }\n }\n\n cursor.current = valueStack[index];\n\n valueStack[index] = null;\n\n {\n fiberStack[index] = null;\n }\n\n index--;\n}\n\nfunction push(cursor, value, fiber) {\n index++;\n\n valueStack[index] = cursor.current;\n\n {\n fiberStack[index] = fiber;\n }\n\n cursor.current = value;\n}\n\nfunction reset$1() {\n while (index > -1) {\n valueStack[index] = null;\n\n {\n fiberStack[index] = null;\n }\n\n index--;\n }\n}\n\nvar describeComponentFrame = function (name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n};\n\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case IndeterminateComponent:\n case FunctionalComponent:\n case ClassComponent:\n case HostComponent:\n var owner = fiber._debugOwner;\n var source = fiber._debugSource;\n var name = getComponentName(fiber);\n var ownerName = null;\n if (owner) {\n ownerName = getComponentName(owner);\n }\n return describeComponentFrame(name, source, ownerName);\n default:\n return '';\n }\n}\n\n// This function can only be called with a work-in-progress fiber and\n// only during begin or complete phase. Do not call it under any other\n// circumstances.\nfunction getStackAddendumByWorkInProgressFiber(workInProgress) {\n var info = '';\n var node = workInProgress;\n do {\n info += describeFiber(node);\n // Otherwise this return pointer might point to the wrong tree:\n node = node['return'];\n } while (node);\n return info;\n}\n\nfunction getCurrentFiberOwnerName() {\n {\n var fiber = ReactDebugCurrentFiber.current;\n if (fiber === null) {\n return null;\n }\n var owner = fiber._debugOwner;\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentName(owner);\n }\n }\n return null;\n}\n\nfunction getCurrentFiberStackAddendum() {\n {\n var fiber = ReactDebugCurrentFiber.current;\n if (fiber === null) {\n return null;\n }\n // Safe because if current fiber exists, we are reconciling,\n // and it is guaranteed to be the work-in-progress version.\n return getStackAddendumByWorkInProgressFiber(fiber);\n }\n return null;\n}\n\nfunction resetCurrentFiber() {\n ReactDebugCurrentFrame.getCurrentStack = null;\n ReactDebugCurrentFiber.current = null;\n ReactDebugCurrentFiber.phase = null;\n}\n\nfunction setCurrentFiber(fiber) {\n ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackAddendum;\n ReactDebugCurrentFiber.current = fiber;\n ReactDebugCurrentFiber.phase = null;\n}\n\nfunction setCurrentPhase(phase) {\n ReactDebugCurrentFiber.phase = phase;\n}\n\nvar ReactDebugCurrentFiber = {\n current: null,\n phase: null,\n resetCurrentFiber: resetCurrentFiber,\n setCurrentFiber: setCurrentFiber,\n setCurrentPhase: setCurrentPhase,\n getCurrentFiberOwnerName: getCurrentFiberOwnerName,\n getCurrentFiberStackAddendum: getCurrentFiberStackAddendum\n};\n\n// Prefix measurements so that it's possible to filter them.\n// Longer prefixes are hard to read in DevTools.\nvar reactEmoji = '\\u269B';\nvar warningEmoji = '\\u26D4';\nvar supportsUserTiming = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';\n\n// Keep track of current fiber so that we know the path to unwind on pause.\n// TODO: this looks the same as nextUnitOfWork in scheduler. Can we unify them?\nvar currentFiber = null;\n// If we're in the middle of user code, which fiber and method is it?\n// Reusing `currentFiber` would be confusing for this because user code fiber\n// can change during commit phase too, but we don't need to unwind it (since\n// lifecycles in the commit phase don't resemble a tree).\nvar currentPhase = null;\nvar currentPhaseFiber = null;\n// Did lifecycle hook schedule an update? This is often a performance problem,\n// so we will keep track of it, and include it in the report.\n// Track commits caused by cascading updates.\nvar isCommitting = false;\nvar hasScheduledUpdateInCurrentCommit = false;\nvar hasScheduledUpdateInCurrentPhase = false;\nvar commitCountInCurrentWorkLoop = 0;\nvar effectCountInCurrentCommit = 0;\nvar isWaitingForCallback = false;\n// During commits, we only show a measurement once per method name\n// to avoid stretch the commit phase with measurement overhead.\nvar labelsInCurrentCommit = new Set();\n\nvar formatMarkName = function (markName) {\n return reactEmoji + ' ' + markName;\n};\n\nvar formatLabel = function (label, warning$$1) {\n var prefix = warning$$1 ? warningEmoji + ' ' : reactEmoji + ' ';\n var suffix = warning$$1 ? ' Warning: ' + warning$$1 : '';\n return '' + prefix + label + suffix;\n};\n\nvar beginMark = function (markName) {\n performance.mark(formatMarkName(markName));\n};\n\nvar clearMark = function (markName) {\n performance.clearMarks(formatMarkName(markName));\n};\n\nvar endMark = function (label, markName, warning$$1) {\n var formattedMarkName = formatMarkName(markName);\n var formattedLabel = formatLabel(label, warning$$1);\n try {\n performance.measure(formattedLabel, formattedMarkName);\n } catch (err) {}\n // If previous mark was missing for some reason, this will throw.\n // This could only happen if React crashed in an unexpected place earlier.\n // Don't pile on with more errors.\n\n // Clear marks immediately to avoid growing buffer.\n performance.clearMarks(formattedMarkName);\n performance.clearMeasures(formattedLabel);\n};\n\nvar getFiberMarkName = function (label, debugID) {\n return label + ' (#' + debugID + ')';\n};\n\nvar getFiberLabel = function (componentName, isMounted, phase) {\n if (phase === null) {\n // These are composite component total time measurements.\n return componentName + ' [' + (isMounted ? 'update' : 'mount') + ']';\n } else {\n // Composite component methods.\n return componentName + '.' + phase;\n }\n};\n\nvar beginFiberMark = function (fiber, phase) {\n var componentName = getComponentName(fiber) || 'Unknown';\n var debugID = fiber._debugID;\n var isMounted = fiber.alternate !== null;\n var label = getFiberLabel(componentName, isMounted, phase);\n\n if (isCommitting && labelsInCurrentCommit.has(label)) {\n // During the commit phase, we don't show duplicate labels because\n // there is a fixed overhead for every measurement, and we don't\n // want to stretch the commit phase beyond necessary.\n return false;\n }\n labelsInCurrentCommit.add(label);\n\n var markName = getFiberMarkName(label, debugID);\n beginMark(markName);\n return true;\n};\n\nvar clearFiberMark = function (fiber, phase) {\n var componentName = getComponentName(fiber) || 'Unknown';\n var debugID = fiber._debugID;\n var isMounted = fiber.alternate !== null;\n var label = getFiberLabel(componentName, isMounted, phase);\n var markName = getFiberMarkName(label, debugID);\n clearMark(markName);\n};\n\nvar endFiberMark = function (fiber, phase, warning$$1) {\n var componentName = getComponentName(fiber) || 'Unknown';\n var debugID = fiber._debugID;\n var isMounted = fiber.alternate !== null;\n var label = getFiberLabel(componentName, isMounted, phase);\n var markName = getFiberMarkName(label, debugID);\n endMark(label, markName, warning$$1);\n};\n\nvar shouldIgnoreFiber = function (fiber) {\n // Host components should be skipped in the timeline.\n // We could check typeof fiber.type, but does this work with RN?\n switch (fiber.tag) {\n case HostRoot:\n case HostComponent:\n case HostText:\n case HostPortal:\n case ReturnComponent:\n case Fragment:\n return true;\n default:\n return false;\n }\n};\n\nvar clearPendingPhaseMeasurement = function () {\n if (currentPhase !== null && currentPhaseFiber !== null) {\n clearFiberMark(currentPhaseFiber, currentPhase);\n }\n currentPhaseFiber = null;\n currentPhase = null;\n hasScheduledUpdateInCurrentPhase = false;\n};\n\nvar pauseTimers = function () {\n // Stops all currently active measurements so that they can be resumed\n // if we continue in a later deferred loop from the same unit of work.\n var fiber = currentFiber;\n while (fiber) {\n if (fiber._debugIsCurrentlyTiming) {\n endFiberMark(fiber, null, null);\n }\n fiber = fiber['return'];\n }\n};\n\nvar resumeTimersRecursively = function (fiber) {\n if (fiber['return'] !== null) {\n resumeTimersRecursively(fiber['return']);\n }\n if (fiber._debugIsCurrentlyTiming) {\n beginFiberMark(fiber, null);\n }\n};\n\nvar resumeTimers = function () {\n // Resumes all measurements that were active during the last deferred loop.\n if (currentFiber !== null) {\n resumeTimersRecursively(currentFiber);\n }\n};\n\nfunction recordEffect() {\n if (enableUserTimingAPI) {\n effectCountInCurrentCommit++;\n }\n}\n\nfunction recordScheduleUpdate() {\n if (enableUserTimingAPI) {\n if (isCommitting) {\n hasScheduledUpdateInCurrentCommit = true;\n }\n if (currentPhase !== null && currentPhase !== 'componentWillMount' && currentPhase !== 'componentWillReceiveProps') {\n hasScheduledUpdateInCurrentPhase = true;\n }\n }\n}\n\nfunction startRequestCallbackTimer() {\n if (enableUserTimingAPI) {\n if (supportsUserTiming && !isWaitingForCallback) {\n isWaitingForCallback = true;\n beginMark('(Waiting for async callback...)');\n }\n }\n}\n\nfunction stopRequestCallbackTimer(didExpire) {\n if (enableUserTimingAPI) {\n if (supportsUserTiming) {\n isWaitingForCallback = false;\n var warning$$1 = didExpire ? 'React was blocked by main thread' : null;\n endMark('(Waiting for async callback...)', '(Waiting for async callback...)', warning$$1);\n }\n }\n}\n\nfunction startWorkTimer(fiber) {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n return;\n }\n // If we pause, this is the fiber to unwind from.\n currentFiber = fiber;\n if (!beginFiberMark(fiber, null)) {\n return;\n }\n fiber._debugIsCurrentlyTiming = true;\n }\n}\n\nfunction cancelWorkTimer(fiber) {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n return;\n }\n // Remember we shouldn't complete measurement for this fiber.\n // Otherwise flamechart will be deep even for small updates.\n fiber._debugIsCurrentlyTiming = false;\n clearFiberMark(fiber, null);\n }\n}\n\nfunction stopWorkTimer(fiber) {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n return;\n }\n // If we pause, its parent is the fiber to unwind from.\n currentFiber = fiber['return'];\n if (!fiber._debugIsCurrentlyTiming) {\n return;\n }\n fiber._debugIsCurrentlyTiming = false;\n endFiberMark(fiber, null, null);\n }\n}\n\nfunction stopFailedWorkTimer(fiber) {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n return;\n }\n // If we pause, its parent is the fiber to unwind from.\n currentFiber = fiber['return'];\n if (!fiber._debugIsCurrentlyTiming) {\n return;\n }\n fiber._debugIsCurrentlyTiming = false;\n var warning$$1 = 'An error was thrown inside this error boundary';\n endFiberMark(fiber, null, warning$$1);\n }\n}\n\nfunction startPhaseTimer(fiber, phase) {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n clearPendingPhaseMeasurement();\n if (!beginFiberMark(fiber, phase)) {\n return;\n }\n currentPhaseFiber = fiber;\n currentPhase = phase;\n }\n}\n\nfunction stopPhaseTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n if (currentPhase !== null && currentPhaseFiber !== null) {\n var warning$$1 = hasScheduledUpdateInCurrentPhase ? 'Scheduled a cascading update' : null;\n endFiberMark(currentPhaseFiber, currentPhase, warning$$1);\n }\n currentPhase = null;\n currentPhaseFiber = null;\n }\n}\n\nfunction startWorkLoopTimer(nextUnitOfWork) {\n if (enableUserTimingAPI) {\n currentFiber = nextUnitOfWork;\n if (!supportsUserTiming) {\n return;\n }\n commitCountInCurrentWorkLoop = 0;\n // This is top level call.\n // Any other measurements are performed within.\n beginMark('(React Tree Reconciliation)');\n // Resume any measurements that were in progress during the last loop.\n resumeTimers();\n }\n}\n\nfunction stopWorkLoopTimer(interruptedBy) {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n var warning$$1 = null;\n if (interruptedBy !== null) {\n if (interruptedBy.tag === HostRoot) {\n warning$$1 = 'A top-level update interrupted the previous render';\n } else {\n var componentName = getComponentName(interruptedBy) || 'Unknown';\n warning$$1 = 'An update to ' + componentName + ' interrupted the previous render';\n }\n } else if (commitCountInCurrentWorkLoop > 1) {\n warning$$1 = 'There were cascading updates';\n }\n commitCountInCurrentWorkLoop = 0;\n // Pause any measurements until the next loop.\n pauseTimers();\n endMark('(React Tree Reconciliation)', '(React Tree Reconciliation)', warning$$1);\n }\n}\n\nfunction startCommitTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n isCommitting = true;\n hasScheduledUpdateInCurrentCommit = false;\n labelsInCurrentCommit.clear();\n beginMark('(Committing Changes)');\n }\n}\n\nfunction stopCommitTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n\n var warning$$1 = null;\n if (hasScheduledUpdateInCurrentCommit) {\n warning$$1 = 'Lifecycle hook scheduled a cascading update';\n } else if (commitCountInCurrentWorkLoop > 0) {\n warning$$1 = 'Caused by a cascading update in earlier commit';\n }\n hasScheduledUpdateInCurrentCommit = false;\n commitCountInCurrentWorkLoop++;\n isCommitting = false;\n labelsInCurrentCommit.clear();\n\n endMark('(Committing Changes)', '(Committing Changes)', warning$$1);\n }\n}\n\nfunction startCommitHostEffectsTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n effectCountInCurrentCommit = 0;\n beginMark('(Committing Host Effects)');\n }\n}\n\nfunction stopCommitHostEffectsTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n var count = effectCountInCurrentCommit;\n effectCountInCurrentCommit = 0;\n endMark('(Committing Host Effects: ' + count + ' Total)', '(Committing Host Effects)', null);\n }\n}\n\nfunction startCommitLifeCyclesTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n effectCountInCurrentCommit = 0;\n beginMark('(Calling Lifecycle Methods)');\n }\n}\n\nfunction stopCommitLifeCyclesTimer() {\n if (enableUserTimingAPI) {\n if (!supportsUserTiming) {\n return;\n }\n var count = effectCountInCurrentCommit;\n effectCountInCurrentCommit = 0;\n endMark('(Calling Lifecycle Methods: ' + count + ' Total)', '(Calling Lifecycle Methods)', null);\n }\n}\n\n{\n var warnedAboutMissingGetChildContext = {};\n}\n\n// A cursor to the current merged context object on the stack.\nvar contextStackCursor = createCursor(emptyObject);\n// A cursor to a boolean indicating whether the context has changed.\nvar didPerformWorkStackCursor = createCursor(false);\n// Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\nvar previousContext = emptyObject;\n\nfunction getUnmaskedContext(workInProgress) {\n var hasOwnContext = isContextProvider(workInProgress);\n if (hasOwnContext) {\n // If the fiber is a context provider itself, when we read its context\n // we have already pushed its own child context on the stack. A context\n // provider should not \"see\" its own child context. Therefore we read the\n // previous (parent) context instead for a context provider.\n return previousContext;\n }\n return contextStackCursor.current;\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n var instance = workInProgress.stateNode;\n instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var type = workInProgress.type;\n var contextTypes = type.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n\n // Avoid recreating masked context unless unmasked context has changed.\n // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n // This may trigger infinite loops if componentWillReceiveProps calls setState.\n var instance = workInProgress.stateNode;\n if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n return instance.__reactInternalMemoizedMaskedChildContext;\n }\n\n var context = {};\n for (var key in contextTypes) {\n context[key] = unmaskedContext[key];\n }\n\n {\n var name = getComponentName(workInProgress) || 'Unknown';\n checkPropTypes(contextTypes, context, 'context', name, ReactDebugCurrentFiber.getCurrentFiberStackAddendum);\n }\n\n // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // Context is created before the class component is instantiated so check for instance.\n if (instance) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return context;\n}\n\nfunction hasContextChanged() {\n return didPerformWorkStackCursor.current;\n}\n\nfunction isContextConsumer(fiber) {\n return fiber.tag === ClassComponent && fiber.type.contextTypes != null;\n}\n\nfunction isContextProvider(fiber) {\n return fiber.tag === ClassComponent && fiber.type.childContextTypes != null;\n}\n\nfunction popContextProvider(fiber) {\n if (!isContextProvider(fiber)) {\n return;\n }\n\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n}\n\nfunction popTopLevelContextObject(fiber) {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n !(contextStackCursor.cursor == null) ? invariant(false, 'Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n push(contextStackCursor, context, fiber);\n push(didPerformWorkStackCursor, didChange, fiber);\n}\n\nfunction processChildContext(fiber, parentContext) {\n var instance = fiber.stateNode;\n var childContextTypes = fiber.type.childContextTypes;\n\n // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n if (typeof instance.getChildContext !== 'function') {\n {\n var componentName = getComponentName(fiber) || 'Unknown';\n\n if (!warnedAboutMissingGetChildContext[componentName]) {\n warnedAboutMissingGetChildContext[componentName] = true;\n warning(false, '%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n }\n }\n return parentContext;\n }\n\n var childContext = void 0;\n {\n ReactDebugCurrentFiber.setCurrentPhase('getChildContext');\n }\n startPhaseTimer(fiber, 'getChildContext');\n childContext = instance.getChildContext();\n stopPhaseTimer();\n {\n ReactDebugCurrentFiber.setCurrentPhase(null);\n }\n for (var contextKey in childContext) {\n !(contextKey in childContextTypes) ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', getComponentName(fiber) || 'Unknown', contextKey) : void 0;\n }\n {\n var name = getComponentName(fiber) || 'Unknown';\n checkPropTypes(childContextTypes, childContext, 'child context', name,\n // In practice, there is one case in which we won't get a stack. It's when\n // somebody calls unstable_renderSubtreeIntoContainer() and we process\n // context from the parent component instance. The stack will be missing\n // because it's outside of the reconciliation, and so the pointer has not\n // been set. This is rare and doesn't matter. We'll also remove that API.\n ReactDebugCurrentFiber.getCurrentFiberStackAddendum);\n }\n\n return _assign({}, parentContext, childContext);\n}\n\nfunction pushContextProvider(workInProgress) {\n if (!isContextProvider(workInProgress)) {\n return false;\n }\n\n var instance = workInProgress.stateNode;\n // We push the context as early as possible to ensure stack integrity.\n // If the instance does not exist yet, we will push null at first,\n // and replace it on the stack later when invalidating the context.\n var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyObject;\n\n // Remember the parent context so we can merge with it later.\n // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n previousContext = contextStackCursor.current;\n push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n\n return true;\n}\n\nfunction invalidateContextProvider(workInProgress, didChange) {\n var instance = workInProgress.stateNode;\n !instance ? invariant(false, 'Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n if (didChange) {\n // Merge parent and own context.\n // Skip this if we're not updating due to sCU.\n // This avoids unnecessarily recomputing memoized values.\n var mergedContext = processChildContext(workInProgress, previousContext);\n instance.__reactInternalMemoizedMergedChildContext = mergedContext;\n\n // Replace the old (or empty) context with the new one.\n // It is important to unwind the context in the reverse order.\n pop(didPerformWorkStackCursor, workInProgress);\n pop(contextStackCursor, workInProgress);\n // Now push the new context and mark that it has changed.\n push(contextStackCursor, mergedContext, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n } else {\n pop(didPerformWorkStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n }\n}\n\nfunction resetContext() {\n previousContext = emptyObject;\n contextStackCursor.current = emptyObject;\n didPerformWorkStackCursor.current = false;\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n // makes sense elsewhere\n !(isFiberMounted(fiber) && fiber.tag === ClassComponent) ? invariant(false, 'Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n var node = fiber;\n while (node.tag !== HostRoot) {\n if (isContextProvider(node)) {\n return node.stateNode.__reactInternalMemoizedMergedChildContext;\n }\n var parent = node['return'];\n !parent ? invariant(false, 'Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n node = parent;\n }\n return node.stateNode.context;\n}\n\nvar NoWork = 0; // TODO: Use an opaque type once ESLint et al support the syntax\n\nvar Sync = 1;\nvar Never = 2147483647; // Max int32: Math.pow(2, 31) - 1\n\nvar UNIT_SIZE = 10;\nvar MAGIC_NUMBER_OFFSET = 2;\n\n// 1 unit of expiration time represents 10ms.\nfunction msToExpirationTime(ms) {\n // Always add an offset so that we don't clash with the magic number for NoWork.\n return (ms / UNIT_SIZE | 0) + MAGIC_NUMBER_OFFSET;\n}\n\nfunction ceiling(num, precision) {\n return ((num / precision | 0) + 1) * precision;\n}\n\nfunction computeExpirationBucket(currentTime, expirationInMs, bucketSizeMs) {\n return ceiling(currentTime + expirationInMs / UNIT_SIZE, bucketSizeMs / UNIT_SIZE);\n}\n\nvar NoContext = 0;\nvar AsyncUpdates = 1;\n\n{\n var hasBadMapPolyfill = false;\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n /* eslint-disable no-new */\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n /* eslint-enable no-new */\n } catch (e) {\n // TODO: Consider warning about bad polyfills\n hasBadMapPolyfill = true;\n }\n}\n\n// A Fiber is work on a Component that needs to be done or was done. There can\n// be more than one per component.\n\n\n{\n var debugCounter = 1;\n}\n\nfunction FiberNode(tag, key, internalContextTag) {\n // Instance\n this.tag = tag;\n this.key = key;\n this.type = null;\n this.stateNode = null;\n\n // Fiber\n this['return'] = null;\n this.child = null;\n this.sibling = null;\n this.index = 0;\n\n this.ref = null;\n\n this.pendingProps = null;\n this.memoizedProps = null;\n this.updateQueue = null;\n this.memoizedState = null;\n\n this.internalContextTag = internalContextTag;\n\n // Effects\n this.effectTag = NoEffect;\n this.nextEffect = null;\n\n this.firstEffect = null;\n this.lastEffect = null;\n\n this.expirationTime = NoWork;\n\n this.alternate = null;\n\n {\n this._debugID = debugCounter++;\n this._debugSource = null;\n this._debugOwner = null;\n this._debugIsCurrentlyTiming = false;\n if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n Object.preventExtensions(this);\n }\n }\n}\n\n// This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n// more difficult to predict when they get optimized and they are almost\n// never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n// always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n// to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n// is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n// compatible.\nvar createFiber = function (tag, key, internalContextTag) {\n // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n return new FiberNode(tag, key, internalContextTag);\n};\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\n// This is used to create an alternate fiber to do work on.\nfunction createWorkInProgress(current, pendingProps, expirationTime) {\n var workInProgress = current.alternate;\n if (workInProgress === null) {\n // We use a double buffering pooling technique because we know that we'll\n // only ever need at most two versions of a tree. We pool the \"other\" unused\n // node that we're free to reuse. This is lazily created to avoid allocating\n // extra objects for things that are never updated. It also allow us to\n // reclaim the extra memory if needed.\n workInProgress = createFiber(current.tag, current.key, current.internalContextTag);\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n\n {\n // DEV-only fields\n workInProgress._debugID = current._debugID;\n workInProgress._debugSource = current._debugSource;\n workInProgress._debugOwner = current._debugOwner;\n }\n\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n // We already have an alternate.\n // Reset the effect tag.\n workInProgress.effectTag = NoEffect;\n\n // The effect list is no longer valid.\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n }\n\n workInProgress.expirationTime = expirationTime;\n workInProgress.pendingProps = pendingProps;\n\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n\n // These will be overridden during the parent's reconciliation\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n\n return workInProgress;\n}\n\nfunction createHostRootFiber() {\n var fiber = createFiber(HostRoot, null, NoContext);\n return fiber;\n}\n\nfunction createFiberFromElement(element, internalContextTag, expirationTime) {\n var owner = null;\n {\n owner = element._owner;\n }\n\n var fiber = void 0;\n var type = element.type,\n key = element.key;\n\n if (typeof type === 'function') {\n fiber = shouldConstruct(type) ? createFiber(ClassComponent, key, internalContextTag) : createFiber(IndeterminateComponent, key, internalContextTag);\n fiber.type = type;\n fiber.pendingProps = element.props;\n } else if (typeof type === 'string') {\n fiber = createFiber(HostComponent, key, internalContextTag);\n fiber.type = type;\n fiber.pendingProps = element.props;\n } else if (typeof type === 'object' && type !== null && typeof type.tag === 'number') {\n // Currently assumed to be a continuation and therefore is a fiber already.\n // TODO: The yield system is currently broken for updates in some cases.\n // The reified yield stores a fiber, but we don't know which fiber that is;\n // the current or a workInProgress? When the continuation gets rendered here\n // we don't know if we can reuse that fiber or if we need to clone it.\n // There is probably a clever way to restructure this.\n fiber = type;\n fiber.pendingProps = element.props;\n } else {\n var info = '';\n {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n var ownerName = owner ? getComponentName(owner) : null;\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n }\n invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info);\n }\n\n {\n fiber._debugSource = element._source;\n fiber._debugOwner = element._owner;\n }\n\n fiber.expirationTime = expirationTime;\n\n return fiber;\n}\n\nfunction createFiberFromFragment(elements, internalContextTag, expirationTime, key) {\n var fiber = createFiber(Fragment, key, internalContextTag);\n fiber.pendingProps = elements;\n fiber.expirationTime = expirationTime;\n return fiber;\n}\n\nfunction createFiberFromText(content, internalContextTag, expirationTime) {\n var fiber = createFiber(HostText, null, internalContextTag);\n fiber.pendingProps = content;\n fiber.expirationTime = expirationTime;\n return fiber;\n}\n\nfunction createFiberFromHostInstanceForDeletion() {\n var fiber = createFiber(HostComponent, null, NoContext);\n fiber.type = 'DELETED';\n return fiber;\n}\n\nfunction createFiberFromCall(call, internalContextTag, expirationTime) {\n var fiber = createFiber(CallComponent, call.key, internalContextTag);\n fiber.type = call.handler;\n fiber.pendingProps = call;\n fiber.expirationTime = expirationTime;\n return fiber;\n}\n\nfunction createFiberFromReturn(returnNode, internalContextTag, expirationTime) {\n var fiber = createFiber(ReturnComponent, null, internalContextTag);\n fiber.expirationTime = expirationTime;\n return fiber;\n}\n\nfunction createFiberFromPortal(portal, internalContextTag, expirationTime) {\n var fiber = createFiber(HostPortal, portal.key, internalContextTag);\n fiber.pendingProps = portal.children || [];\n fiber.expirationTime = expirationTime;\n fiber.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null, // Used by persistent updates\n implementation: portal.implementation\n };\n return fiber;\n}\n\nfunction createFiberRoot(containerInfo, hydrate) {\n // Cyclic construction. This cheats the type system right now because\n // stateNode is any.\n var uninitializedFiber = createHostRootFiber();\n var root = {\n current: uninitializedFiber,\n containerInfo: containerInfo,\n pendingChildren: null,\n remainingExpirationTime: NoWork,\n isReadyForCommit: false,\n finishedWork: null,\n context: null,\n pendingContext: null,\n hydrate: hydrate,\n nextScheduledRoot: null\n };\n uninitializedFiber.stateNode = root;\n return root;\n}\n\nvar onCommitFiberRoot = null;\nvar onCommitFiberUnmount = null;\nvar hasLoggedError = false;\n\nfunction catchErrors(fn) {\n return function (arg) {\n try {\n return fn(arg);\n } catch (err) {\n if (true && !hasLoggedError) {\n hasLoggedError = true;\n warning(false, 'React DevTools encountered an error: %s', err);\n }\n }\n };\n}\n\nfunction injectInternals(internals) {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // No DevTools\n return false;\n }\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // https://github.com/facebook/react/issues/3877\n return true;\n }\n if (!hook.supportsFiber) {\n {\n warning(false, 'The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://fb.me/react-devtools');\n }\n // DevTools exists, even though it doesn't support Fiber.\n return true;\n }\n try {\n var rendererID = hook.inject(internals);\n // We have successfully injected, so now it is safe to set up hooks.\n onCommitFiberRoot = catchErrors(function (root) {\n return hook.onCommitFiberRoot(rendererID, root);\n });\n onCommitFiberUnmount = catchErrors(function (fiber) {\n return hook.onCommitFiberUnmount(rendererID, fiber);\n });\n } catch (err) {\n // Catch all errors because it is unsafe to throw during initialization.\n {\n warning(false, 'React DevTools encountered an error: %s.', err);\n }\n }\n // DevTools exists\n return true;\n}\n\nfunction onCommitRoot(root) {\n if (typeof onCommitFiberRoot === 'function') {\n onCommitFiberRoot(root);\n }\n}\n\nfunction onCommitUnmount(fiber) {\n if (typeof onCommitFiberUnmount === 'function') {\n onCommitFiberUnmount(fiber);\n }\n}\n\n{\n var didWarnUpdateInsideUpdate = false;\n}\n\n// Callbacks are not validated until invocation\n\n\n// Singly linked-list of updates. When an update is scheduled, it is added to\n// the queue of the current fiber and the work-in-progress fiber. The two queues\n// are separate but they share a persistent structure.\n//\n// During reconciliation, updates are removed from the work-in-progress fiber,\n// but they remain on the current fiber. That ensures that if a work-in-progress\n// is aborted, the aborted updates are recovered by cloning from current.\n//\n// The work-in-progress queue is always a subset of the current queue.\n//\n// When the tree is committed, the work-in-progress becomes the current.\n\n\nfunction createUpdateQueue(baseState) {\n var queue = {\n baseState: baseState,\n expirationTime: NoWork,\n first: null,\n last: null,\n callbackList: null,\n hasForceUpdate: false,\n isInitialized: false\n };\n {\n queue.isProcessing = false;\n }\n return queue;\n}\n\nfunction insertUpdateIntoQueue(queue, update) {\n // Append the update to the end of the list.\n if (queue.last === null) {\n // Queue is empty\n queue.first = queue.last = update;\n } else {\n queue.last.next = update;\n queue.last = update;\n }\n if (queue.expirationTime === NoWork || queue.expirationTime > update.expirationTime) {\n queue.expirationTime = update.expirationTime;\n }\n}\n\nfunction insertUpdateIntoFiber(fiber, update) {\n // We'll have at least one and at most two distinct update queues.\n var alternateFiber = fiber.alternate;\n var queue1 = fiber.updateQueue;\n if (queue1 === null) {\n // TODO: We don't know what the base state will be until we begin work.\n // It depends on which fiber is the next current. Initialize with an empty\n // base state, then set to the memoizedState when rendering. Not super\n // happy with this approach.\n queue1 = fiber.updateQueue = createUpdateQueue(null);\n }\n\n var queue2 = void 0;\n if (alternateFiber !== null) {\n queue2 = alternateFiber.updateQueue;\n if (queue2 === null) {\n queue2 = alternateFiber.updateQueue = createUpdateQueue(null);\n }\n } else {\n queue2 = null;\n }\n queue2 = queue2 !== queue1 ? queue2 : null;\n\n // Warn if an update is scheduled from inside an updater function.\n {\n if ((queue1.isProcessing || queue2 !== null && queue2.isProcessing) && !didWarnUpdateInsideUpdate) {\n warning(false, 'An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n didWarnUpdateInsideUpdate = true;\n }\n }\n\n // If there's only one queue, add the update to that queue and exit.\n if (queue2 === null) {\n insertUpdateIntoQueue(queue1, update);\n return;\n }\n\n // If either queue is empty, we need to add to both queues.\n if (queue1.last === null || queue2.last === null) {\n insertUpdateIntoQueue(queue1, update);\n insertUpdateIntoQueue(queue2, update);\n return;\n }\n\n // If both lists are not empty, the last update is the same for both lists\n // because of structural sharing. So, we should only append to one of\n // the lists.\n insertUpdateIntoQueue(queue1, update);\n // But we still need to update the `last` pointer of queue2.\n queue2.last = update;\n}\n\nfunction getUpdateExpirationTime(fiber) {\n if (fiber.tag !== ClassComponent && fiber.tag !== HostRoot) {\n return NoWork;\n }\n var updateQueue = fiber.updateQueue;\n if (updateQueue === null) {\n return NoWork;\n }\n return updateQueue.expirationTime;\n}\n\nfunction getStateFromUpdate(update, instance, prevState, props) {\n var partialState = update.partialState;\n if (typeof partialState === 'function') {\n var updateFn = partialState;\n return updateFn.call(instance, prevState, props);\n } else {\n return partialState;\n }\n}\n\nfunction processUpdateQueue(current, workInProgress, queue, instance, props, renderExpirationTime) {\n if (current !== null && current.updateQueue === queue) {\n // We need to create a work-in-progress queue, by cloning the current queue.\n var currentQueue = queue;\n queue = workInProgress.updateQueue = {\n baseState: currentQueue.baseState,\n expirationTime: currentQueue.expirationTime,\n first: currentQueue.first,\n last: currentQueue.last,\n isInitialized: currentQueue.isInitialized,\n // These fields are no longer valid because they were already committed.\n // Reset them.\n callbackList: null,\n hasForceUpdate: false\n };\n }\n\n {\n // Set this flag so we can warn if setState is called inside the update\n // function of another setState.\n queue.isProcessing = true;\n }\n\n // Reset the remaining expiration time. If we skip over any updates, we'll\n // increase this accordingly.\n queue.expirationTime = NoWork;\n\n // TODO: We don't know what the base state will be until we begin work.\n // It depends on which fiber is the next current. Initialize with an empty\n // base state, then set to the memoizedState when rendering. Not super\n // happy with this approach.\n var state = void 0;\n if (queue.isInitialized) {\n state = queue.baseState;\n } else {\n state = queue.baseState = workInProgress.memoizedState;\n queue.isInitialized = true;\n }\n var dontMutatePrevState = true;\n var update = queue.first;\n var didSkip = false;\n while (update !== null) {\n var updateExpirationTime = update.expirationTime;\n if (updateExpirationTime > renderExpirationTime) {\n // This update does not have sufficient priority. Skip it.\n var remainingExpirationTime = queue.expirationTime;\n if (remainingExpirationTime === NoWork || remainingExpirationTime > updateExpirationTime) {\n // Update the remaining expiration time.\n queue.expirationTime = updateExpirationTime;\n }\n if (!didSkip) {\n didSkip = true;\n queue.baseState = state;\n }\n // Continue to the next update.\n update = update.next;\n continue;\n }\n\n // This update does have sufficient priority.\n\n // If no previous updates were skipped, drop this update from the queue by\n // advancing the head of the list.\n if (!didSkip) {\n queue.first = update.next;\n if (queue.first === null) {\n queue.last = null;\n }\n }\n\n // Process the update\n var _partialState = void 0;\n if (update.isReplace) {\n state = getStateFromUpdate(update, instance, state, props);\n dontMutatePrevState = true;\n } else {\n _partialState = getStateFromUpdate(update, instance, state, props);\n if (_partialState) {\n if (dontMutatePrevState) {\n // $FlowFixMe: Idk how to type this properly.\n state = _assign({}, state, _partialState);\n } else {\n state = _assign(state, _partialState);\n }\n dontMutatePrevState = false;\n }\n }\n if (update.isForced) {\n queue.hasForceUpdate = true;\n }\n if (update.callback !== null) {\n // Append to list of callbacks.\n var _callbackList = queue.callbackList;\n if (_callbackList === null) {\n _callbackList = queue.callbackList = [];\n }\n _callbackList.push(update);\n }\n update = update.next;\n }\n\n if (queue.callbackList !== null) {\n workInProgress.effectTag |= Callback;\n } else if (queue.first === null && !queue.hasForceUpdate) {\n // The queue is empty. We can reset it.\n workInProgress.updateQueue = null;\n }\n\n if (!didSkip) {\n didSkip = true;\n queue.baseState = state;\n }\n\n {\n // No longer processing.\n queue.isProcessing = false;\n }\n\n return state;\n}\n\nfunction commitCallbacks(queue, context) {\n var callbackList = queue.callbackList;\n if (callbackList === null) {\n return;\n }\n // Set the list to null to make sure they don't get called more than once.\n queue.callbackList = null;\n for (var i = 0; i < callbackList.length; i++) {\n var update = callbackList[i];\n var _callback = update.callback;\n // This update might be processed again. Clear the callback so it's only\n // called once.\n update.callback = null;\n !(typeof _callback === 'function') ? invariant(false, 'Invalid argument passed as callback. Expected a function. Instead received: %s', _callback) : void 0;\n _callback.call(context);\n }\n}\n\nvar fakeInternalInstance = {};\nvar isArray = Array.isArray;\n\n{\n var didWarnAboutStateAssignmentForComponent = {};\n\n var warnOnInvalidCallback = function (callback, callerName) {\n warning(callback === null || typeof callback === 'function', '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n };\n\n // This is so gross but it's at least non-critical and can be removed if\n // it causes problems. This is meant to give a nicer error message for\n // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n // ...)) which otherwise throws a \"_processChildContext is not a function\"\n // exception.\n Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n enumerable: false,\n value: function () {\n invariant(false, '_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn\\'t supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).');\n }\n });\n Object.freeze(fakeInternalInstance);\n}\n\nvar ReactFiberClassComponent = function (scheduleWork, computeExpirationForFiber, memoizeProps, memoizeState) {\n // Class component state updater\n var updater = {\n isMounted: isMounted,\n enqueueSetState: function (instance, partialState, callback) {\n var fiber = get(instance);\n callback = callback === undefined ? null : callback;\n {\n warnOnInvalidCallback(callback, 'setState');\n }\n var expirationTime = computeExpirationForFiber(fiber);\n var update = {\n expirationTime: expirationTime,\n partialState: partialState,\n callback: callback,\n isReplace: false,\n isForced: false,\n nextCallback: null,\n next: null\n };\n insertUpdateIntoFiber(fiber, update);\n scheduleWork(fiber, expirationTime);\n },\n enqueueReplaceState: function (instance, state, callback) {\n var fiber = get(instance);\n callback = callback === undefined ? null : callback;\n {\n warnOnInvalidCallback(callback, 'replaceState');\n }\n var expirationTime = computeExpirationForFiber(fiber);\n var update = {\n expirationTime: expirationTime,\n partialState: state,\n callback: callback,\n isReplace: true,\n isForced: false,\n nextCallback: null,\n next: null\n };\n insertUpdateIntoFiber(fiber, update);\n scheduleWork(fiber, expirationTime);\n },\n enqueueForceUpdate: function (instance, callback) {\n var fiber = get(instance);\n callback = callback === undefined ? null : callback;\n {\n warnOnInvalidCallback(callback, 'forceUpdate');\n }\n var expirationTime = computeExpirationForFiber(fiber);\n var update = {\n expirationTime: expirationTime,\n partialState: null,\n callback: callback,\n isReplace: false,\n isForced: true,\n nextCallback: null,\n next: null\n };\n insertUpdateIntoFiber(fiber, update);\n scheduleWork(fiber, expirationTime);\n }\n };\n\n function checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext) {\n if (oldProps === null || workInProgress.updateQueue !== null && workInProgress.updateQueue.hasForceUpdate) {\n // If the workInProgress already has an Update effect, return true\n return true;\n }\n\n var instance = workInProgress.stateNode;\n var type = workInProgress.type;\n if (typeof instance.shouldComponentUpdate === 'function') {\n startPhaseTimer(workInProgress, 'shouldComponentUpdate');\n var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);\n stopPhaseTimer();\n\n {\n warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');\n }\n\n return shouldUpdate;\n }\n\n if (type.prototype && type.prototype.isPureReactComponent) {\n return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n }\n\n return true;\n }\n\n function checkClassInstance(workInProgress) {\n var instance = workInProgress.stateNode;\n var type = workInProgress.type;\n {\n var name = getComponentName(workInProgress);\n var renderPresent = instance.render;\n\n if (!renderPresent) {\n if (type.prototype && typeof type.prototype.render === 'function') {\n warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n } else {\n warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n }\n }\n\n var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;\n warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;\n warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n var noInstancePropTypes = !instance.propTypes;\n warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n var noInstanceContextTypes = !instance.contextTypes;\n warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';\n warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n if (type.prototype && type.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n warning(false, '%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(workInProgress) || 'A pure component');\n }\n var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';\n warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n var noComponentDidReceiveProps = typeof instance.componentDidReceiveProps !== 'function';\n warning(noComponentDidReceiveProps, '%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';\n warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n var hasMutatedProps = instance.props !== workInProgress.pendingProps;\n warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n var noInstanceDefaultProps = !instance.defaultProps;\n warning(noInstanceDefaultProps, 'Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n }\n\n var state = instance.state;\n if (state && (typeof state !== 'object' || isArray(state))) {\n invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));\n }\n if (typeof instance.getChildContext === 'function') {\n !(typeof workInProgress.type.childContextTypes === 'object') ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', getComponentName(workInProgress)) : void 0;\n }\n }\n\n function resetInputPointers(workInProgress, instance) {\n instance.props = workInProgress.memoizedProps;\n instance.state = workInProgress.memoizedState;\n }\n\n function adoptClassInstance(workInProgress, instance) {\n instance.updater = updater;\n workInProgress.stateNode = instance;\n // The instance needs access to the fiber so that it can schedule updates\n set(instance, workInProgress);\n {\n instance._reactInternalInstance = fakeInternalInstance;\n }\n }\n\n function constructClassInstance(workInProgress, props) {\n var ctor = workInProgress.type;\n var unmaskedContext = getUnmaskedContext(workInProgress);\n var needsContext = isContextConsumer(workInProgress);\n var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;\n var instance = new ctor(props, context);\n adoptClassInstance(workInProgress, instance);\n\n // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // ReactFiberContext usually updates this cache but can't for newly-created instances.\n if (needsContext) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return instance;\n }\n\n function callComponentWillMount(workInProgress, instance) {\n startPhaseTimer(workInProgress, 'componentWillMount');\n var oldState = instance.state;\n instance.componentWillMount();\n\n stopPhaseTimer();\n\n if (oldState !== instance.state) {\n {\n warning(false, '%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress));\n }\n updater.enqueueReplaceState(instance, instance.state, null);\n }\n }\n\n function callComponentWillReceiveProps(workInProgress, instance, newProps, newContext) {\n startPhaseTimer(workInProgress, 'componentWillReceiveProps');\n var oldState = instance.state;\n instance.componentWillReceiveProps(newProps, newContext);\n stopPhaseTimer();\n\n if (instance.state !== oldState) {\n {\n var componentName = getComponentName(workInProgress) || 'Component';\n if (!didWarnAboutStateAssignmentForComponent[componentName]) {\n warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n didWarnAboutStateAssignmentForComponent[componentName] = true;\n }\n }\n updater.enqueueReplaceState(instance, instance.state, null);\n }\n }\n\n // Invokes the mount life-cycles on a previously never rendered instance.\n function mountClassInstance(workInProgress, renderExpirationTime) {\n var current = workInProgress.alternate;\n\n {\n checkClassInstance(workInProgress);\n }\n\n var instance = workInProgress.stateNode;\n var state = instance.state || null;\n\n var props = workInProgress.pendingProps;\n !props ? invariant(false, 'There must be pending props for an initial mount. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n var unmaskedContext = getUnmaskedContext(workInProgress);\n\n instance.props = props;\n instance.state = workInProgress.memoizedState = state;\n instance.refs = emptyObject;\n instance.context = getMaskedContext(workInProgress, unmaskedContext);\n\n if (enableAsyncSubtreeAPI && workInProgress.type != null && workInProgress.type.prototype != null && workInProgress.type.prototype.unstable_isAsyncReactComponent === true) {\n workInProgress.internalContextTag |= AsyncUpdates;\n }\n\n if (typeof instance.componentWillMount === 'function') {\n callComponentWillMount(workInProgress, instance);\n // If we had additional state updates during this life-cycle, let's\n // process them now.\n var updateQueue = workInProgress.updateQueue;\n if (updateQueue !== null) {\n instance.state = processUpdateQueue(current, workInProgress, updateQueue, instance, props, renderExpirationTime);\n }\n }\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.effectTag |= Update;\n }\n }\n\n // Called on a preexisting class instance. Returns false if a resumed render\n // could be reused.\n // function resumeMountClassInstance(\n // workInProgress: Fiber,\n // priorityLevel: PriorityLevel,\n // ): boolean {\n // const instance = workInProgress.stateNode;\n // resetInputPointers(workInProgress, instance);\n\n // let newState = workInProgress.memoizedState;\n // let newProps = workInProgress.pendingProps;\n // if (!newProps) {\n // // If there isn't any new props, then we'll reuse the memoized props.\n // // This could be from already completed work.\n // newProps = workInProgress.memoizedProps;\n // invariant(\n // newProps != null,\n // 'There should always be pending or memoized props. This error is ' +\n // 'likely caused by a bug in React. Please file an issue.',\n // );\n // }\n // const newUnmaskedContext = getUnmaskedContext(workInProgress);\n // const newContext = getMaskedContext(workInProgress, newUnmaskedContext);\n\n // const oldContext = instance.context;\n // const oldProps = workInProgress.memoizedProps;\n\n // if (\n // typeof instance.componentWillReceiveProps === 'function' &&\n // (oldProps !== newProps || oldContext !== newContext)\n // ) {\n // callComponentWillReceiveProps(\n // workInProgress,\n // instance,\n // newProps,\n // newContext,\n // );\n // }\n\n // // Process the update queue before calling shouldComponentUpdate\n // const updateQueue = workInProgress.updateQueue;\n // if (updateQueue !== null) {\n // newState = processUpdateQueue(\n // workInProgress,\n // updateQueue,\n // instance,\n // newState,\n // newProps,\n // priorityLevel,\n // );\n // }\n\n // // TODO: Should we deal with a setState that happened after the last\n // // componentWillMount and before this componentWillMount? Probably\n // // unsupported anyway.\n\n // if (\n // !checkShouldComponentUpdate(\n // workInProgress,\n // workInProgress.memoizedProps,\n // newProps,\n // workInProgress.memoizedState,\n // newState,\n // newContext,\n // )\n // ) {\n // // Update the existing instance's state, props, and context pointers even\n // // though we're bailing out.\n // instance.props = newProps;\n // instance.state = newState;\n // instance.context = newContext;\n // return false;\n // }\n\n // // Update the input pointers now so that they are correct when we call\n // // componentWillMount\n // instance.props = newProps;\n // instance.state = newState;\n // instance.context = newContext;\n\n // if (typeof instance.componentWillMount === 'function') {\n // callComponentWillMount(workInProgress, instance);\n // // componentWillMount may have called setState. Process the update queue.\n // const newUpdateQueue = workInProgress.updateQueue;\n // if (newUpdateQueue !== null) {\n // newState = processUpdateQueue(\n // workInProgress,\n // newUpdateQueue,\n // instance,\n // newState,\n // newProps,\n // priorityLevel,\n // );\n // }\n // }\n\n // if (typeof instance.componentDidMount === 'function') {\n // workInProgress.effectTag |= Update;\n // }\n\n // instance.state = newState;\n\n // return true;\n // }\n\n // Invokes the update life-cycles and returns false if it shouldn't rerender.\n function updateClassInstance(current, workInProgress, renderExpirationTime) {\n var instance = workInProgress.stateNode;\n resetInputPointers(workInProgress, instance);\n\n var oldProps = workInProgress.memoizedProps;\n var newProps = workInProgress.pendingProps;\n if (!newProps) {\n // If there aren't any new props, then we'll reuse the memoized props.\n // This could be from already completed work.\n newProps = oldProps;\n !(newProps != null) ? invariant(false, 'There should always be pending or memoized props. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n }\n var oldContext = instance.context;\n var newUnmaskedContext = getUnmaskedContext(workInProgress);\n var newContext = getMaskedContext(workInProgress, newUnmaskedContext);\n\n // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n\n if (typeof instance.componentWillReceiveProps === 'function' && (oldProps !== newProps || oldContext !== newContext)) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, newContext);\n }\n\n // Compute the next state using the memoized state and the update queue.\n var oldState = workInProgress.memoizedState;\n // TODO: Previous state can be null.\n var newState = void 0;\n if (workInProgress.updateQueue !== null) {\n newState = processUpdateQueue(current, workInProgress, workInProgress.updateQueue, instance, newProps, renderExpirationTime);\n } else {\n newState = oldState;\n }\n\n if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(workInProgress.updateQueue !== null && workInProgress.updateQueue.hasForceUpdate)) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.effectTag |= Update;\n }\n }\n return false;\n }\n\n var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);\n\n if (shouldUpdate) {\n if (typeof instance.componentWillUpdate === 'function') {\n startPhaseTimer(workInProgress, 'componentWillUpdate');\n instance.componentWillUpdate(newProps, newState, newContext);\n stopPhaseTimer();\n }\n if (typeof instance.componentDidUpdate === 'function') {\n workInProgress.effectTag |= Update;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.effectTag |= Update;\n }\n }\n\n // If shouldComponentUpdate returned false, we should still update the\n // memoized props/state to indicate that this work can be reused.\n memoizeProps(workInProgress, newProps);\n memoizeState(workInProgress, newState);\n }\n\n // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n instance.props = newProps;\n instance.state = newState;\n instance.context = newContext;\n\n return shouldUpdate;\n }\n\n return {\n adoptClassInstance: adoptClassInstance,\n constructClassInstance: constructClassInstance,\n mountClassInstance: mountClassInstance,\n // resumeMountClassInstance,\n updateClassInstance: updateClassInstance\n };\n};\n\n// The Symbol used to tag the special React types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_PORTAL_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.portal') || 0xeaca;\n\nfunction createPortal$1(children, containerInfo,\n// TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n return {\n // This tag allow us to uniquely identify this as a React Portal\n $$typeof: REACT_PORTAL_TYPE,\n key: key == null ? null : '' + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\n\nvar getCurrentFiberStackAddendum$1 = ReactDebugCurrentFiber.getCurrentFiberStackAddendum;\n\n\n{\n var didWarnAboutMaps = false;\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n var ownerHasKeyUseWarning = {};\n var ownerHasFunctionTypeWarning = {};\n\n var warnForMissingKey = function (child) {\n if (child === null || typeof child !== 'object') {\n return;\n }\n if (!child._store || child._store.validated || child.key != null) {\n return;\n }\n !(typeof child._store === 'object') ? invariant(false, 'React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n child._store.validated = true;\n\n var currentComponentErrorInfo = 'Each child in an array or iterator should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.' + (getCurrentFiberStackAddendum$1() || '');\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n warning(false, 'Each child in an array or iterator should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.%s', getCurrentFiberStackAddendum$1());\n };\n}\n\nvar isArray$1 = Array.isArray;\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE;\nvar REACT_CALL_TYPE;\nvar REACT_RETURN_TYPE;\nvar REACT_FRAGMENT_TYPE;\nif (typeof Symbol === 'function' && Symbol['for']) {\n REACT_ELEMENT_TYPE = Symbol['for']('react.element');\n REACT_CALL_TYPE = Symbol['for']('react.call');\n REACT_RETURN_TYPE = Symbol['for']('react.return');\n REACT_FRAGMENT_TYPE = Symbol['for']('react.fragment');\n} else {\n REACT_ELEMENT_TYPE = 0xeac7;\n REACT_CALL_TYPE = 0xeac8;\n REACT_RETURN_TYPE = 0xeac9;\n REACT_FRAGMENT_TYPE = 0xeacb;\n}\n\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable === 'undefined') {\n return null;\n }\n var iteratorFn = ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n return null;\n}\n\nfunction coerceRef(current, element) {\n var mixedRef = element.ref;\n if (mixedRef !== null && typeof mixedRef !== 'function') {\n if (element._owner) {\n var owner = element._owner;\n var inst = void 0;\n if (owner) {\n var ownerFiber = owner;\n !(ownerFiber.tag === ClassComponent) ? invariant(false, 'Stateless function components cannot have refs.') : void 0;\n inst = ownerFiber.stateNode;\n }\n !inst ? invariant(false, 'Missing owner for string ref %s. This error is likely caused by a bug in React. Please file an issue.', mixedRef) : void 0;\n var stringRef = '' + mixedRef;\n // Check if previous string ref matches new string ref\n if (current !== null && current.ref !== null && current.ref._stringRef === stringRef) {\n return current.ref;\n }\n var ref = function (value) {\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n if (value === null) {\n delete refs[stringRef];\n } else {\n refs[stringRef] = value;\n }\n };\n ref._stringRef = stringRef;\n return ref;\n } else {\n !(typeof mixedRef === 'string') ? invariant(false, 'Expected ref to be a function or a string.') : void 0;\n !element._owner ? invariant(false, 'Element ref was specified as a string (%s) but no owner was set. You may have multiple copies of React loaded. (details: https://fb.me/react-refs-must-have-owner).', mixedRef) : void 0;\n }\n }\n return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (returnFiber.type !== 'textarea') {\n var addendum = '';\n {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + (getCurrentFiberStackAddendum$1() || '');\n }\n invariant(false, 'Objects are not valid as a React child (found: %s).%s', Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild, addendum);\n }\n}\n\nfunction warnOnFunctionType() {\n var currentComponentErrorInfo = 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.' + (getCurrentFiberStackAddendum$1() || '');\n\n if (ownerHasFunctionTypeWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasFunctionTypeWarning[currentComponentErrorInfo] = true;\n\n warning(false, 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.%s', getCurrentFiberStackAddendum$1() || '');\n}\n\n// This wrapper function exists because I expect to clone the code in each path\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\nfunction ChildReconciler(shouldClone, shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return;\n }\n if (!shouldClone) {\n // When we're reconciling in place we have a work in progress copy. We\n // actually want the current copy. If there is no current copy, then we\n // don't need to track deletion side-effects.\n if (childToDelete.alternate === null) {\n return;\n }\n childToDelete = childToDelete.alternate;\n }\n // Deletions are added in reversed order so we add it to the front.\n // At this point, the return fiber's effect list is empty except for\n // deletions, so we can just append the deletion to the list. The remaining\n // effects aren't added until the complete phase. Once we implement\n // resuming, this may not be true.\n var last = returnFiber.lastEffect;\n if (last !== null) {\n last.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n childToDelete.nextEffect = null;\n childToDelete.effectTag = Deletion;\n }\n\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return null;\n }\n\n // TODO: For the shouldClone case, this could be micro-optimized a bit by\n // assuming that after the first child we've already added everything.\n var childToDelete = currentFirstChild;\n while (childToDelete !== null) {\n deleteChild(returnFiber, childToDelete);\n childToDelete = childToDelete.sibling;\n }\n return null;\n }\n\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n // Add the remaining children to a temporary map so that we can find them by\n // keys quickly. Implicit (null) keys get added to this set with their index\n var existingChildren = new Map();\n\n var existingChild = currentFirstChild;\n while (existingChild !== null) {\n if (existingChild.key !== null) {\n existingChildren.set(existingChild.key, existingChild);\n } else {\n existingChildren.set(existingChild.index, existingChild);\n }\n existingChild = existingChild.sibling;\n }\n return existingChildren;\n }\n\n function useFiber(fiber, pendingProps, expirationTime) {\n // We currently set sibling to null and index to 0 here because it is easy\n // to forget to do before returning it. E.g. for the single child case.\n if (shouldClone) {\n var clone = createWorkInProgress(fiber, pendingProps, expirationTime);\n clone.index = 0;\n clone.sibling = null;\n return clone;\n } else {\n // We override the expiration time even if it is earlier, because if\n // we're reconciling at a later time that means that this was\n // down-prioritized.\n fiber.expirationTime = expirationTime;\n fiber.effectTag = NoEffect;\n fiber.index = 0;\n fiber.sibling = null;\n fiber.pendingProps = pendingProps;\n return fiber;\n }\n }\n\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects) {\n // Noop.\n return lastPlacedIndex;\n }\n var current = newFiber.alternate;\n if (current !== null) {\n var oldIndex = current.index;\n if (oldIndex < lastPlacedIndex) {\n // This is a move.\n newFiber.effectTag = Placement;\n return lastPlacedIndex;\n } else {\n // This item can stay in place.\n return oldIndex;\n }\n } else {\n // This is an insertion.\n newFiber.effectTag = Placement;\n return lastPlacedIndex;\n }\n }\n\n function placeSingleChild(newFiber) {\n // This is simpler for the single child case. We only need to do a\n // placement for inserting new children.\n if (shouldTrackSideEffects && newFiber.alternate === null) {\n newFiber.effectTag = Placement;\n }\n return newFiber;\n }\n\n function updateTextNode(returnFiber, current, textContent, expirationTime) {\n if (current === null || current.tag !== HostText) {\n // Insert\n var created = createFiberFromText(textContent, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, textContent, expirationTime);\n existing['return'] = returnFiber;\n return existing;\n }\n }\n\n function updateElement(returnFiber, current, element, expirationTime) {\n if (current !== null && current.type === element.type) {\n // Move based on index\n var existing = useFiber(current, element.props, expirationTime);\n existing.ref = coerceRef(current, element);\n existing['return'] = returnFiber;\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n return existing;\n } else {\n // Insert\n var created = createFiberFromElement(element, returnFiber.internalContextTag, expirationTime);\n created.ref = coerceRef(current, element);\n created['return'] = returnFiber;\n return created;\n }\n }\n\n function updateCall(returnFiber, current, call, expirationTime) {\n // TODO: Should this also compare handler to determine whether to reuse?\n if (current === null || current.tag !== CallComponent) {\n // Insert\n var created = createFiberFromCall(call, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n } else {\n // Move based on index\n var existing = useFiber(current, call, expirationTime);\n existing['return'] = returnFiber;\n return existing;\n }\n }\n\n function updateReturn(returnFiber, current, returnNode, expirationTime) {\n if (current === null || current.tag !== ReturnComponent) {\n // Insert\n var created = createFiberFromReturn(returnNode, returnFiber.internalContextTag, expirationTime);\n created.type = returnNode.value;\n created['return'] = returnFiber;\n return created;\n } else {\n // Move based on index\n var existing = useFiber(current, null, expirationTime);\n existing.type = returnNode.value;\n existing['return'] = returnFiber;\n return existing;\n }\n }\n\n function updatePortal(returnFiber, current, portal, expirationTime) {\n if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n // Insert\n var created = createFiberFromPortal(portal, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, portal.children || [], expirationTime);\n existing['return'] = returnFiber;\n return existing;\n }\n }\n\n function updateFragment(returnFiber, current, fragment, expirationTime, key) {\n if (current === null || current.tag !== Fragment) {\n // Insert\n var created = createFiberFromFragment(fragment, returnFiber.internalContextTag, expirationTime, key);\n created['return'] = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, fragment, expirationTime);\n existing['return'] = returnFiber;\n return existing;\n }\n }\n\n function createChild(returnFiber, newChild, expirationTime) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n var created = createFiberFromText('' + newChild, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n var _created = createFiberFromFragment(newChild.props.children, returnFiber.internalContextTag, expirationTime, newChild.key);\n _created['return'] = returnFiber;\n return _created;\n } else {\n var _created2 = createFiberFromElement(newChild, returnFiber.internalContextTag, expirationTime);\n _created2.ref = coerceRef(null, newChild);\n _created2['return'] = returnFiber;\n return _created2;\n }\n }\n\n case REACT_CALL_TYPE:\n {\n var _created3 = createFiberFromCall(newChild, returnFiber.internalContextTag, expirationTime);\n _created3['return'] = returnFiber;\n return _created3;\n }\n\n case REACT_RETURN_TYPE:\n {\n var _created4 = createFiberFromReturn(newChild, returnFiber.internalContextTag, expirationTime);\n _created4.type = newChild.value;\n _created4['return'] = returnFiber;\n return _created4;\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _created5 = createFiberFromPortal(newChild, returnFiber.internalContextTag, expirationTime);\n _created5['return'] = returnFiber;\n return _created5;\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _created6 = createFiberFromFragment(newChild, returnFiber.internalContextTag, expirationTime, null);\n _created6['return'] = returnFiber;\n return _created6;\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType();\n }\n }\n\n return null;\n }\n\n function updateSlot(returnFiber, oldFiber, newChild, expirationTime) {\n // Update the fiber if the keys match, otherwise return null.\n\n var key = oldFiber !== null ? oldFiber.key : null;\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n if (key !== null) {\n return null;\n }\n return updateTextNode(returnFiber, oldFiber, '' + newChild, expirationTime);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n if (newChild.key === key) {\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, oldFiber, newChild.props.children, expirationTime, key);\n }\n return updateElement(returnFiber, oldFiber, newChild, expirationTime);\n } else {\n return null;\n }\n }\n\n case REACT_CALL_TYPE:\n {\n if (newChild.key === key) {\n return updateCall(returnFiber, oldFiber, newChild, expirationTime);\n } else {\n return null;\n }\n }\n\n case REACT_RETURN_TYPE:\n {\n // Returns don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a\n // yield.\n if (key === null) {\n return updateReturn(returnFiber, oldFiber, newChild, expirationTime);\n } else {\n return null;\n }\n }\n\n case REACT_PORTAL_TYPE:\n {\n if (newChild.key === key) {\n return updatePortal(returnFiber, oldFiber, newChild, expirationTime);\n } else {\n return null;\n }\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n if (key !== null) {\n return null;\n }\n\n return updateFragment(returnFiber, oldFiber, newChild, expirationTime, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType();\n }\n }\n\n return null;\n }\n\n function updateFromMap(existingChildren, returnFiber, newIdx, newChild, expirationTime) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys, so we neither have to check the old nor\n // new node for the key. If both are text nodes, they match.\n var matchedFiber = existingChildren.get(newIdx) || null;\n return updateTextNode(returnFiber, matchedFiber, '' + newChild, expirationTime);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, _matchedFiber, newChild.props.children, expirationTime, newChild.key);\n }\n return updateElement(returnFiber, _matchedFiber, newChild, expirationTime);\n }\n\n case REACT_CALL_TYPE:\n {\n var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n return updateCall(returnFiber, _matchedFiber2, newChild, expirationTime);\n }\n\n case REACT_RETURN_TYPE:\n {\n // Returns don't have keys, so we neither have to check the old nor\n // new node for the key. If both are returns, they match.\n var _matchedFiber3 = existingChildren.get(newIdx) || null;\n return updateReturn(returnFiber, _matchedFiber3, newChild, expirationTime);\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _matchedFiber4 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n return updatePortal(returnFiber, _matchedFiber4, newChild, expirationTime);\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _matchedFiber5 = existingChildren.get(newIdx) || null;\n return updateFragment(returnFiber, _matchedFiber5, newChild, expirationTime, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType();\n }\n }\n\n return null;\n }\n\n /**\n * Warns if there is a duplicate or missing key\n */\n function warnOnInvalidKey(child, knownKeys) {\n {\n if (typeof child !== 'object' || child === null) {\n return knownKeys;\n }\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_CALL_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(child);\n var key = child.key;\n if (typeof key !== 'string') {\n break;\n }\n if (knownKeys === null) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n warning(false, 'Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.%s', key, getCurrentFiberStackAddendum$1());\n break;\n default:\n break;\n }\n }\n return knownKeys;\n }\n\n function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, expirationTime) {\n // This algorithm can't optimize by searching from boths ends since we\n // don't have backpointers on fibers. I'm trying to see how far we can get\n // with that model. If it ends up not being worth the tradeoffs, we can\n // add it later.\n\n // Even with a two ended optimization, we'd want to optimize for the case\n // where there are few changes and brute force the comparison instead of\n // going for the Map. It'd like to explore hitting that path first in\n // forward-only mode and only go for the Map once we notice that we need\n // lots of look ahead. This doesn't handle reversal as well as two ended\n // search but that's unusual. Besides, for the two ended optimization to\n // work on Iterables, we'd need to copy the whole set.\n\n // In this first iteration, we'll just live with hitting the bad case\n // (adding everything to a Map) in for every insert/move.\n\n // If you change this code, also update reconcileChildrenIterator() which\n // uses the same algorithm.\n\n {\n // First, validate keys.\n var knownKeys = null;\n for (var i = 0; i < newChildren.length; i++) {\n var child = newChildren[i];\n knownKeys = warnOnInvalidKey(child, knownKeys);\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], expirationTime);\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n break;\n }\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (newIdx === newChildren.length) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber = createChild(returnFiber, newChildren[newIdx], expirationTime);\n if (!_newFiber) {\n continue;\n }\n lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber;\n } else {\n previousNewFiber.sibling = _newFiber;\n }\n previousNewFiber = _newFiber;\n }\n return resultingFirstChild;\n }\n\n // Add all children to a key map for quick lookups.\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber);\n\n // Keep scanning and use the map to restore deleted items as moves.\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], expirationTime);\n if (_newFiber2) {\n if (shouldTrackSideEffects) {\n if (_newFiber2.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren['delete'](_newFiber2.key === null ? newIdx : _newFiber2.key);\n }\n }\n lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber2;\n } else {\n previousNewFiber.sibling = _newFiber2;\n }\n previousNewFiber = _newFiber2;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, expirationTime) {\n // This is the same implementation as reconcileChildrenArray(),\n // but using the iterator instead.\n\n var iteratorFn = getIteratorFn(newChildrenIterable);\n !(typeof iteratorFn === 'function') ? invariant(false, 'An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n {\n // Warn about using Maps as children\n if (typeof newChildrenIterable.entries === 'function') {\n var possibleMap = newChildrenIterable;\n if (possibleMap.entries === iteratorFn) {\n warning(didWarnAboutMaps, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.%s', getCurrentFiberStackAddendum$1());\n didWarnAboutMaps = true;\n }\n }\n\n // First, validate keys.\n // We'll get a different iterator later for the main pass.\n var _newChildren = iteratorFn.call(newChildrenIterable);\n if (_newChildren) {\n var knownKeys = null;\n var _step = _newChildren.next();\n for (; !_step.done; _step = _newChildren.next()) {\n var child = _step.value;\n knownKeys = warnOnInvalidKey(child, knownKeys);\n }\n }\n }\n\n var newChildren = iteratorFn.call(newChildrenIterable);\n !(newChildren != null) ? invariant(false, 'An iterable object provided no iterator.') : void 0;\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n\n var step = newChildren.next();\n for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, expirationTime);\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (!oldFiber) {\n oldFiber = nextOldFiber;\n }\n break;\n }\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (step.done) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber3 = createChild(returnFiber, step.value, expirationTime);\n if (_newFiber3 === null) {\n continue;\n }\n lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber3;\n } else {\n previousNewFiber.sibling = _newFiber3;\n }\n previousNewFiber = _newFiber3;\n }\n return resultingFirstChild;\n }\n\n // Add all children to a key map for quick lookups.\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber);\n\n // Keep scanning and use the map to restore deleted items as moves.\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, expirationTime);\n if (_newFiber4 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber4.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren['delete'](_newFiber4.key === null ? newIdx : _newFiber4.key);\n }\n }\n lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber4;\n } else {\n previousNewFiber.sibling = _newFiber4;\n }\n previousNewFiber = _newFiber4;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, expirationTime) {\n // There's no need to check for keys on text nodes since we don't have a\n // way to define them.\n if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n // We already have an existing node so let's just update it and delete\n // the rest.\n deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n var existing = useFiber(currentFirstChild, textContent, expirationTime);\n existing['return'] = returnFiber;\n return existing;\n }\n // The existing first child is not a text node so we need to create one\n // and delete the existing ones.\n deleteRemainingChildren(returnFiber, currentFirstChild);\n var created = createFiberFromText(textContent, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n }\n\n function reconcileSingleElement(returnFiber, currentFirstChild, element, expirationTime) {\n var key = element.key;\n var child = currentFirstChild;\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n if (child.tag === Fragment ? element.type === REACT_FRAGMENT_TYPE : child.type === element.type) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, element.type === REACT_FRAGMENT_TYPE ? element.props.children : element.props, expirationTime);\n existing.ref = coerceRef(child, element);\n existing['return'] = returnFiber;\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n child = child.sibling;\n }\n\n if (element.type === REACT_FRAGMENT_TYPE) {\n var created = createFiberFromFragment(element.props.children, returnFiber.internalContextTag, expirationTime, element.key);\n created['return'] = returnFiber;\n return created;\n } else {\n var _created7 = createFiberFromElement(element, returnFiber.internalContextTag, expirationTime);\n _created7.ref = coerceRef(currentFirstChild, element);\n _created7['return'] = returnFiber;\n return _created7;\n }\n }\n\n function reconcileSingleCall(returnFiber, currentFirstChild, call, expirationTime) {\n var key = call.key;\n var child = currentFirstChild;\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n if (child.tag === CallComponent) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, call, expirationTime);\n existing['return'] = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n child = child.sibling;\n }\n\n var created = createFiberFromCall(call, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n }\n\n function reconcileSingleReturn(returnFiber, currentFirstChild, returnNode, expirationTime) {\n // There's no need to check for keys on yields since they're stateless.\n var child = currentFirstChild;\n if (child !== null) {\n if (child.tag === ReturnComponent) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, null, expirationTime);\n existing.type = returnNode.value;\n existing['return'] = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n }\n }\n\n var created = createFiberFromReturn(returnNode, returnFiber.internalContextTag, expirationTime);\n created.type = returnNode.value;\n created['return'] = returnFiber;\n return created;\n }\n\n function reconcileSinglePortal(returnFiber, currentFirstChild, portal, expirationTime) {\n var key = portal.key;\n var child = currentFirstChild;\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, portal.children || [], expirationTime);\n existing['return'] = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n child = child.sibling;\n }\n\n var created = createFiberFromPortal(portal, returnFiber.internalContextTag, expirationTime);\n created['return'] = returnFiber;\n return created;\n }\n\n // This API will tag the children with the side-effect of the reconciliation\n // itself. They will be added to the side-effect list as we pass through the\n // children and the parent.\n function reconcileChildFibers(returnFiber, currentFirstChild, newChild, expirationTime) {\n // This function is not recursive.\n // If the top level item is an array, we treat it as a set of children,\n // not as a fragment. Nested arrays on the other hand will be treated as\n // fragment nodes. Recursion happens at the normal flow.\n\n // Handle top level unkeyed fragments as if they were arrays.\n // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n // We treat the ambiguous cases above the same.\n if (enableReactFragment && typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null) {\n newChild = newChild.props.children;\n }\n\n // Handle object types\n var isObject = typeof newChild === 'object' && newChild !== null;\n\n if (isObject) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, expirationTime));\n\n case REACT_CALL_TYPE:\n return placeSingleChild(reconcileSingleCall(returnFiber, currentFirstChild, newChild, expirationTime));\n case REACT_RETURN_TYPE:\n return placeSingleChild(reconcileSingleReturn(returnFiber, currentFirstChild, newChild, expirationTime));\n case REACT_PORTAL_TYPE:\n return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, expirationTime));\n }\n }\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, expirationTime));\n }\n\n if (isArray$1(newChild)) {\n return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, expirationTime);\n }\n\n if (getIteratorFn(newChild)) {\n return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, expirationTime);\n }\n\n if (isObject) {\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType();\n }\n }\n if (typeof newChild === 'undefined') {\n // If the new child is undefined, and the return fiber is a composite\n // component, throw an error. If Fiber return types are disabled,\n // we already threw above.\n switch (returnFiber.tag) {\n case ClassComponent:\n {\n {\n var instance = returnFiber.stateNode;\n if (instance.render._isMockFunction) {\n // We allow auto-mocks to proceed as if they're returning null.\n break;\n }\n }\n }\n // Intentionally fall through to the next case, which handles both\n // functions and classes\n // eslint-disable-next-lined no-fallthrough\n case FunctionalComponent:\n {\n var Component = returnFiber.type;\n invariant(false, '%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.', Component.displayName || Component.name || 'Component');\n }\n }\n }\n\n // Remaining cases are all treated as empty.\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n\n return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true, true);\n\nvar reconcileChildFibersInPlace = ChildReconciler(false, true);\n\nvar mountChildFibersInPlace = ChildReconciler(false, false);\n\nfunction cloneChildFibers(current, workInProgress) {\n !(current === null || workInProgress.child === current.child) ? invariant(false, 'Resuming work not yet implemented.') : void 0;\n\n if (workInProgress.child === null) {\n return;\n }\n\n var currentChild = workInProgress.child;\n var newChild = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);\n workInProgress.child = newChild;\n\n newChild['return'] = workInProgress;\n while (currentChild.sibling !== null) {\n currentChild = currentChild.sibling;\n newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);\n newChild['return'] = workInProgress;\n }\n newChild.sibling = null;\n}\n\n{\n var warnedAboutStatelessRefs = {};\n}\n\nvar ReactFiberBeginWork = function (config, hostContext, hydrationContext, scheduleWork, computeExpirationForFiber) {\n var shouldSetTextContent = config.shouldSetTextContent,\n useSyncScheduling = config.useSyncScheduling,\n shouldDeprioritizeSubtree = config.shouldDeprioritizeSubtree;\n var pushHostContext = hostContext.pushHostContext,\n pushHostContainer = hostContext.pushHostContainer;\n var enterHydrationState = hydrationContext.enterHydrationState,\n resetHydrationState = hydrationContext.resetHydrationState,\n tryToClaimNextHydratableInstance = hydrationContext.tryToClaimNextHydratableInstance;\n\n var _ReactFiberClassCompo = ReactFiberClassComponent(scheduleWork, computeExpirationForFiber, memoizeProps, memoizeState),\n adoptClassInstance = _ReactFiberClassCompo.adoptClassInstance,\n constructClassInstance = _ReactFiberClassCompo.constructClassInstance,\n mountClassInstance = _ReactFiberClassCompo.mountClassInstance,\n updateClassInstance = _ReactFiberClassCompo.updateClassInstance;\n\n // TODO: Remove this and use reconcileChildrenAtExpirationTime directly.\n\n\n function reconcileChildren(current, workInProgress, nextChildren) {\n reconcileChildrenAtExpirationTime(current, workInProgress, nextChildren, workInProgress.expirationTime);\n }\n\n function reconcileChildrenAtExpirationTime(current, workInProgress, nextChildren, renderExpirationTime) {\n if (current === null) {\n // If this is a fresh new component that hasn't been rendered yet, we\n // won't update its child set by applying minimal side-effects. Instead,\n // we will add them all to the child before it gets rendered. That means\n // we can optimize this reconciliation pass by not tracking side-effects.\n workInProgress.child = mountChildFibersInPlace(workInProgress, workInProgress.child, nextChildren, renderExpirationTime);\n } else if (current.child === workInProgress.child) {\n // If the current child is the same as the work in progress, it means that\n // we haven't yet started any work on these children. Therefore, we use\n // the clone algorithm to create a copy of all the current children.\n\n // If we had any progressed work already, that is invalid at this point so\n // let's throw it out.\n workInProgress.child = reconcileChildFibers(workInProgress, workInProgress.child, nextChildren, renderExpirationTime);\n } else {\n // If, on the other hand, it is already using a clone, that means we've\n // already begun some work on this tree and we can continue where we left\n // off by reconciling against the existing children.\n workInProgress.child = reconcileChildFibersInPlace(workInProgress, workInProgress.child, nextChildren, renderExpirationTime);\n }\n }\n\n function updateFragment(current, workInProgress) {\n var nextChildren = workInProgress.pendingProps;\n if (hasContextChanged()) {\n // Normally we can bail out on props equality but if context has changed\n // we don't do the bailout and we have to reuse existing props instead.\n if (nextChildren === null) {\n nextChildren = workInProgress.memoizedProps;\n }\n } else if (nextChildren === null || workInProgress.memoizedProps === nextChildren) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n reconcileChildren(current, workInProgress, nextChildren);\n memoizeProps(workInProgress, nextChildren);\n return workInProgress.child;\n }\n\n function markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (ref !== null && (!current || current.ref !== ref)) {\n // Schedule a Ref effect\n workInProgress.effectTag |= Ref;\n }\n }\n\n function updateFunctionalComponent(current, workInProgress) {\n var fn = workInProgress.type;\n var nextProps = workInProgress.pendingProps;\n\n var memoizedProps = workInProgress.memoizedProps;\n if (hasContextChanged()) {\n // Normally we can bail out on props equality but if context has changed\n // we don't do the bailout and we have to reuse existing props instead.\n if (nextProps === null) {\n nextProps = memoizedProps;\n }\n } else {\n if (nextProps === null || memoizedProps === nextProps) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n // TODO: consider bringing fn.shouldComponentUpdate() back.\n // It used to be here.\n }\n\n var unmaskedContext = getUnmaskedContext(workInProgress);\n var context = getMaskedContext(workInProgress, unmaskedContext);\n\n var nextChildren;\n\n {\n ReactCurrentOwner.current = workInProgress;\n ReactDebugCurrentFiber.setCurrentPhase('render');\n nextChildren = fn(nextProps, context);\n ReactDebugCurrentFiber.setCurrentPhase(null);\n }\n // React DevTools reads this flag.\n workInProgress.effectTag |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren);\n memoizeProps(workInProgress, nextProps);\n return workInProgress.child;\n }\n\n function updateClassComponent(current, workInProgress, renderExpirationTime) {\n // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n var hasContext = pushContextProvider(workInProgress);\n\n var shouldUpdate = void 0;\n if (current === null) {\n if (!workInProgress.stateNode) {\n // In the initial pass we might need to construct the instance.\n constructClassInstance(workInProgress, workInProgress.pendingProps);\n mountClassInstance(workInProgress, renderExpirationTime);\n shouldUpdate = true;\n } else {\n invariant(false, 'Resuming work not yet implemented.');\n // In a resume, we'll already have an instance we can reuse.\n // shouldUpdate = resumeMountClassInstance(workInProgress, renderExpirationTime);\n }\n } else {\n shouldUpdate = updateClassInstance(current, workInProgress, renderExpirationTime);\n }\n return finishClassComponent(current, workInProgress, shouldUpdate, hasContext);\n }\n\n function finishClassComponent(current, workInProgress, shouldUpdate, hasContext) {\n // Refs should update even if shouldComponentUpdate returns false\n markRef(current, workInProgress);\n\n if (!shouldUpdate) {\n // Context providers should defer to sCU for rendering\n if (hasContext) {\n invalidateContextProvider(workInProgress, false);\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n\n var instance = workInProgress.stateNode;\n\n // Rerender\n ReactCurrentOwner.current = workInProgress;\n var nextChildren = void 0;\n {\n ReactDebugCurrentFiber.setCurrentPhase('render');\n nextChildren = instance.render();\n ReactDebugCurrentFiber.setCurrentPhase(null);\n }\n // React DevTools reads this flag.\n workInProgress.effectTag |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren);\n // Memoize props and state using the values we just used to render.\n // TODO: Restructure so we never read values from the instance.\n memoizeState(workInProgress, instance.state);\n memoizeProps(workInProgress, instance.props);\n\n // The context might have changed so we need to recalculate it.\n if (hasContext) {\n invalidateContextProvider(workInProgress, true);\n }\n\n return workInProgress.child;\n }\n\n function pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n if (root.pendingContext) {\n pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n } else if (root.context) {\n // Should always be set\n pushTopLevelContextObject(workInProgress, root.context, false);\n }\n pushHostContainer(workInProgress, root.containerInfo);\n }\n\n function updateHostRoot(current, workInProgress, renderExpirationTime) {\n pushHostRootContext(workInProgress);\n var updateQueue = workInProgress.updateQueue;\n if (updateQueue !== null) {\n var prevState = workInProgress.memoizedState;\n var state = processUpdateQueue(current, workInProgress, updateQueue, null, null, renderExpirationTime);\n if (prevState === state) {\n // If the state is the same as before, that's a bailout because we had\n // no work that expires at this time.\n resetHydrationState();\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n var element = state.element;\n var root = workInProgress.stateNode;\n if ((current === null || current.child === null) && root.hydrate && enterHydrationState(workInProgress)) {\n // If we don't have any current children this might be the first pass.\n // We always try to hydrate. If this isn't a hydration pass there won't\n // be any children to hydrate which is effectively the same thing as\n // not hydrating.\n\n // This is a bit of a hack. We track the host root as a placement to\n // know that we're currently in a mounting state. That way isMounted\n // works as expected. We must reset this before committing.\n // TODO: Delete this when we delete isMounted and findDOMNode.\n workInProgress.effectTag |= Placement;\n\n // Ensure that children mount into this root without tracking\n // side-effects. This ensures that we don't store Placement effects on\n // nodes that will be hydrated.\n workInProgress.child = mountChildFibersInPlace(workInProgress, workInProgress.child, element, renderExpirationTime);\n } else {\n // Otherwise reset hydration state in case we aborted and resumed another\n // root.\n resetHydrationState();\n reconcileChildren(current, workInProgress, element);\n }\n memoizeState(workInProgress, state);\n return workInProgress.child;\n }\n resetHydrationState();\n // If there is no update queue, that's a bailout because the root has no props.\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n\n function updateHostComponent(current, workInProgress, renderExpirationTime) {\n pushHostContext(workInProgress);\n\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n }\n\n var type = workInProgress.type;\n var memoizedProps = workInProgress.memoizedProps;\n var nextProps = workInProgress.pendingProps;\n if (nextProps === null) {\n nextProps = memoizedProps;\n !(nextProps !== null) ? invariant(false, 'We should always have pending or current props. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n }\n var prevProps = current !== null ? current.memoizedProps : null;\n\n if (hasContextChanged()) {\n // Normally we can bail out on props equality but if context has changed\n // we don't do the bailout and we have to reuse existing props instead.\n } else if (nextProps === null || memoizedProps === nextProps) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n\n var nextChildren = nextProps.children;\n var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n if (isDirectTextChild) {\n // We special case a direct text child of a host node. This is a common\n // case. We won't handle it as a reified child. We will instead handle\n // this in the host environment that also have access to this prop. That\n // avoids allocating another HostText fiber and traversing it.\n nextChildren = null;\n } else if (prevProps && shouldSetTextContent(type, prevProps)) {\n // If we're switching from a direct text child to a normal child, or to\n // empty, we need to schedule the text content to be reset.\n workInProgress.effectTag |= ContentReset;\n }\n\n markRef(current, workInProgress);\n\n // Check the host config to see if the children are offscreen/hidden.\n if (renderExpirationTime !== Never && !useSyncScheduling && shouldDeprioritizeSubtree(type, nextProps)) {\n // Down-prioritize the children.\n workInProgress.expirationTime = Never;\n // Bailout and come back to this fiber later.\n return null;\n }\n\n reconcileChildren(current, workInProgress, nextChildren);\n memoizeProps(workInProgress, nextProps);\n return workInProgress.child;\n }\n\n function updateHostText(current, workInProgress) {\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n }\n var nextProps = workInProgress.pendingProps;\n if (nextProps === null) {\n nextProps = workInProgress.memoizedProps;\n }\n memoizeProps(workInProgress, nextProps);\n // Nothing to do here. This is terminal. We'll do the completion step\n // immediately after.\n return null;\n }\n\n function mountIndeterminateComponent(current, workInProgress, renderExpirationTime) {\n !(current === null) ? invariant(false, 'An indeterminate component should never have mounted. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n var fn = workInProgress.type;\n var props = workInProgress.pendingProps;\n var unmaskedContext = getUnmaskedContext(workInProgress);\n var context = getMaskedContext(workInProgress, unmaskedContext);\n\n var value;\n\n {\n if (fn.prototype && typeof fn.prototype.render === 'function') {\n var componentName = getComponentName(workInProgress);\n warning(false, \"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n }\n ReactCurrentOwner.current = workInProgress;\n value = fn(props, context);\n }\n // React DevTools reads this flag.\n workInProgress.effectTag |= PerformedWork;\n\n if (typeof value === 'object' && value !== null && typeof value.render === 'function') {\n // Proceed under the assumption that this is a class instance\n workInProgress.tag = ClassComponent;\n\n // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n var hasContext = pushContextProvider(workInProgress);\n adoptClassInstance(workInProgress, value);\n mountClassInstance(workInProgress, renderExpirationTime);\n return finishClassComponent(current, workInProgress, true, hasContext);\n } else {\n // Proceed under the assumption that this is a functional component\n workInProgress.tag = FunctionalComponent;\n {\n var Component = workInProgress.type;\n\n if (Component) {\n warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component');\n }\n if (workInProgress.ref !== null) {\n var info = '';\n var ownerName = ReactDebugCurrentFiber.getCurrentFiberOwnerName();\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n var warningKey = ownerName || workInProgress._debugID || '';\n var debugSource = workInProgress._debugSource;\n if (debugSource) {\n warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n }\n if (!warnedAboutStatelessRefs[warningKey]) {\n warnedAboutStatelessRefs[warningKey] = true;\n warning(false, 'Stateless function components cannot be given refs. ' + 'Attempts to access this ref will fail.%s%s', info, ReactDebugCurrentFiber.getCurrentFiberStackAddendum());\n }\n }\n }\n reconcileChildren(current, workInProgress, value);\n memoizeProps(workInProgress, props);\n return workInProgress.child;\n }\n }\n\n function updateCallComponent(current, workInProgress, renderExpirationTime) {\n var nextCall = workInProgress.pendingProps;\n if (hasContextChanged()) {\n // Normally we can bail out on props equality but if context has changed\n // we don't do the bailout and we have to reuse existing props instead.\n if (nextCall === null) {\n nextCall = current && current.memoizedProps;\n !(nextCall !== null) ? invariant(false, 'We should always have pending or current props. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n }\n } else if (nextCall === null || workInProgress.memoizedProps === nextCall) {\n nextCall = workInProgress.memoizedProps;\n // TODO: When bailing out, we might need to return the stateNode instead\n // of the child. To check it for work.\n // return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n\n var nextChildren = nextCall.children;\n\n // The following is a fork of reconcileChildrenAtExpirationTime but using\n // stateNode to store the child.\n if (current === null) {\n workInProgress.stateNode = mountChildFibersInPlace(workInProgress, workInProgress.stateNode, nextChildren, renderExpirationTime);\n } else if (current.child === workInProgress.child) {\n workInProgress.stateNode = reconcileChildFibers(workInProgress, workInProgress.stateNode, nextChildren, renderExpirationTime);\n } else {\n workInProgress.stateNode = reconcileChildFibersInPlace(workInProgress, workInProgress.stateNode, nextChildren, renderExpirationTime);\n }\n\n memoizeProps(workInProgress, nextCall);\n // This doesn't take arbitrary time so we could synchronously just begin\n // eagerly do the work of workInProgress.child as an optimization.\n return workInProgress.stateNode;\n }\n\n function updatePortalComponent(current, workInProgress, renderExpirationTime) {\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n var nextChildren = workInProgress.pendingProps;\n if (hasContextChanged()) {\n // Normally we can bail out on props equality but if context has changed\n // we don't do the bailout and we have to reuse existing props instead.\n if (nextChildren === null) {\n nextChildren = current && current.memoizedProps;\n !(nextChildren != null) ? invariant(false, 'We should always have pending or current props. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n }\n } else if (nextChildren === null || workInProgress.memoizedProps === nextChildren) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress);\n }\n\n if (current === null) {\n // Portals are special because we don't append the children during mount\n // but at commit. Therefore we need to track insertions which the normal\n // flow doesn't do during mount. This doesn't happen at the root because\n // the root always starts with a \"current\" with a null child.\n // TODO: Consider unifying this with how the root works.\n workInProgress.child = reconcileChildFibersInPlace(workInProgress, workInProgress.child, nextChildren, renderExpirationTime);\n memoizeProps(workInProgress, nextChildren);\n } else {\n reconcileChildren(current, workInProgress, nextChildren);\n memoizeProps(workInProgress, nextChildren);\n }\n return workInProgress.child;\n }\n\n /*\n function reuseChildrenEffects(returnFiber : Fiber, firstChild : Fiber) {\n let child = firstChild;\n do {\n // Ensure that the first and last effect of the parent corresponds\n // to the children's first and last effect.\n if (!returnFiber.firstEffect) {\n returnFiber.firstEffect = child.firstEffect;\n }\n if (child.lastEffect) {\n if (returnFiber.lastEffect) {\n returnFiber.lastEffect.nextEffect = child.firstEffect;\n }\n returnFiber.lastEffect = child.lastEffect;\n }\n } while (child = child.sibling);\n }\n */\n\n function bailoutOnAlreadyFinishedWork(current, workInProgress) {\n cancelWorkTimer(workInProgress);\n\n // TODO: We should ideally be able to bail out early if the children have no\n // more work to do. However, since we don't have a separation of this\n // Fiber's priority and its children yet - we don't know without doing lots\n // of the same work we do anyway. Once we have that separation we can just\n // bail out here if the children has no more work at this priority level.\n // if (workInProgress.priorityOfChildren <= priorityLevel) {\n // // If there are side-effects in these children that have not yet been\n // // committed we need to ensure that they get properly transferred up.\n // if (current && current.child !== workInProgress.child) {\n // reuseChildrenEffects(workInProgress, child);\n // }\n // return null;\n // }\n\n cloneChildFibers(current, workInProgress);\n return workInProgress.child;\n }\n\n function bailoutOnLowPriority(current, workInProgress) {\n cancelWorkTimer(workInProgress);\n\n // TODO: Handle HostComponent tags here as well and call pushHostContext()?\n // See PR 8590 discussion for context\n switch (workInProgress.tag) {\n case HostRoot:\n pushHostRootContext(workInProgress);\n break;\n case ClassComponent:\n pushContextProvider(workInProgress);\n break;\n case HostPortal:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n }\n // TODO: What if this is currently in progress?\n // How can that happen? How is this not being cloned?\n return null;\n }\n\n // TODO: Delete memoizeProps/State and move to reconcile/bailout instead\n function memoizeProps(workInProgress, nextProps) {\n workInProgress.memoizedProps = nextProps;\n }\n\n function memoizeState(workInProgress, nextState) {\n workInProgress.memoizedState = nextState;\n // Don't reset the updateQueue, in case there are pending updates. Resetting\n // is handled by processUpdateQueue.\n }\n\n function beginWork(current, workInProgress, renderExpirationTime) {\n if (workInProgress.expirationTime === NoWork || workInProgress.expirationTime > renderExpirationTime) {\n return bailoutOnLowPriority(current, workInProgress);\n }\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n return mountIndeterminateComponent(current, workInProgress, renderExpirationTime);\n case FunctionalComponent:\n return updateFunctionalComponent(current, workInProgress);\n case ClassComponent:\n return updateClassComponent(current, workInProgress, renderExpirationTime);\n case HostRoot:\n return updateHostRoot(current, workInProgress, renderExpirationTime);\n case HostComponent:\n return updateHostComponent(current, workInProgress, renderExpirationTime);\n case HostText:\n return updateHostText(current, workInProgress);\n case CallHandlerPhase:\n // This is a restart. Reset the tag to the initial phase.\n workInProgress.tag = CallComponent;\n // Intentionally fall through since this is now the same.\n case CallComponent:\n return updateCallComponent(current, workInProgress, renderExpirationTime);\n case ReturnComponent:\n // A return component is just a placeholder, we can just run through the\n // next one immediately.\n return null;\n case HostPortal:\n return updatePortalComponent(current, workInProgress, renderExpirationTime);\n case Fragment:\n return updateFragment(current, workInProgress);\n default:\n invariant(false, 'Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n\n function beginFailedWork(current, workInProgress, renderExpirationTime) {\n // Push context providers here to avoid a push/pop context mismatch.\n switch (workInProgress.tag) {\n case ClassComponent:\n pushContextProvider(workInProgress);\n break;\n case HostRoot:\n pushHostRootContext(workInProgress);\n break;\n default:\n invariant(false, 'Invalid type of work. This error is likely caused by a bug in React. Please file an issue.');\n }\n\n // Add an error effect so we can handle the error during the commit phase\n workInProgress.effectTag |= Err;\n\n // This is a weird case where we do \"resume\" work — work that failed on\n // our first attempt. Because we no longer have a notion of \"progressed\n // deletions,\" reset the child to the current child to make sure we delete\n // it again. TODO: Find a better way to handle this, perhaps during a more\n // general overhaul of error handling.\n if (current === null) {\n workInProgress.child = null;\n } else if (workInProgress.child !== current.child) {\n workInProgress.child = current.child;\n }\n\n if (workInProgress.expirationTime === NoWork || workInProgress.expirationTime > renderExpirationTime) {\n return bailoutOnLowPriority(current, workInProgress);\n }\n\n // If we don't bail out, we're going be recomputing our children so we need\n // to drop our effect list.\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n\n // Unmount the current children as if the component rendered null\n var nextChildren = null;\n reconcileChildrenAtExpirationTime(current, workInProgress, nextChildren, renderExpirationTime);\n\n if (workInProgress.tag === ClassComponent) {\n var instance = workInProgress.stateNode;\n workInProgress.memoizedProps = instance.props;\n workInProgress.memoizedState = instance.state;\n }\n\n return workInProgress.child;\n }\n\n return {\n beginWork: beginWork,\n beginFailedWork: beginFailedWork\n };\n};\n\nvar ReactFiberCompleteWork = function (config, hostContext, hydrationContext) {\n var createInstance = config.createInstance,\n createTextInstance = config.createTextInstance,\n appendInitialChild = config.appendInitialChild,\n finalizeInitialChildren = config.finalizeInitialChildren,\n prepareUpdate = config.prepareUpdate,\n mutation = config.mutation,\n persistence = config.persistence;\n var getRootHostContainer = hostContext.getRootHostContainer,\n popHostContext = hostContext.popHostContext,\n getHostContext = hostContext.getHostContext,\n popHostContainer = hostContext.popHostContainer;\n var prepareToHydrateHostInstance = hydrationContext.prepareToHydrateHostInstance,\n prepareToHydrateHostTextInstance = hydrationContext.prepareToHydrateHostTextInstance,\n popHydrationState = hydrationContext.popHydrationState;\n\n\n function markUpdate(workInProgress) {\n // Tag the fiber with an update effect. This turns a Placement into\n // an UpdateAndPlacement.\n workInProgress.effectTag |= Update;\n }\n\n function markRef(workInProgress) {\n workInProgress.effectTag |= Ref;\n }\n\n function appendAllReturns(returns, workInProgress) {\n var node = workInProgress.stateNode;\n if (node) {\n node['return'] = workInProgress;\n }\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText || node.tag === HostPortal) {\n invariant(false, 'A call cannot have host component children.');\n } else if (node.tag === ReturnComponent) {\n returns.push(node.type);\n } else if (node.child !== null) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n while (node.sibling === null) {\n if (node['return'] === null || node['return'] === workInProgress) {\n return;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n }\n\n function moveCallToHandlerPhase(current, workInProgress, renderExpirationTime) {\n var call = workInProgress.memoizedProps;\n !call ? invariant(false, 'Should be resolved by now. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n // First step of the call has completed. Now we need to do the second.\n // TODO: It would be nice to have a multi stage call represented by a\n // single component, or at least tail call optimize nested ones. Currently\n // that requires additional fields that we don't want to add to the fiber.\n // So this requires nested handlers.\n // Note: This doesn't mutate the alternate node. I don't think it needs to\n // since this stage is reset for every pass.\n workInProgress.tag = CallHandlerPhase;\n\n // Build up the returns.\n // TODO: Compare this to a generator or opaque helpers like Children.\n var returns = [];\n appendAllReturns(returns, workInProgress);\n var fn = call.handler;\n var props = call.props;\n var nextChildren = fn(props, returns);\n\n var currentFirstChild = current !== null ? current.child : null;\n workInProgress.child = reconcileChildFibers(workInProgress, currentFirstChild, nextChildren, renderExpirationTime);\n return workInProgress.child;\n }\n\n function appendAllChildren(parent, workInProgress) {\n // We only have the top Fiber that was created but we need recurse down its\n // children to find all the terminal nodes.\n var node = workInProgress.child;\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText) {\n appendInitialChild(parent, node.stateNode);\n } else if (node.tag === HostPortal) {\n // If we have a portal child, then we don't want to traverse\n // down its children. Instead, we'll get insertions from each child in\n // the portal directly.\n } else if (node.child !== null) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) {\n return;\n }\n while (node.sibling === null) {\n if (node['return'] === null || node['return'] === workInProgress) {\n return;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n }\n\n var updateHostContainer = void 0;\n var updateHostComponent = void 0;\n var updateHostText = void 0;\n if (mutation) {\n if (enableMutatingReconciler) {\n // Mutation mode\n updateHostContainer = function (workInProgress) {\n // Noop\n };\n updateHostComponent = function (current, workInProgress, updatePayload, type, oldProps, newProps, rootContainerInstance) {\n // TODO: Type this specific to this type of component.\n workInProgress.updateQueue = updatePayload;\n // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update. All the work is done in commitWork.\n if (updatePayload) {\n markUpdate(workInProgress);\n }\n };\n updateHostText = function (current, workInProgress, oldText, newText) {\n // If the text differs, mark it as an update. All the work in done in commitWork.\n if (oldText !== newText) {\n markUpdate(workInProgress);\n }\n };\n } else {\n invariant(false, 'Mutating reconciler is disabled.');\n }\n } else if (persistence) {\n if (enablePersistentReconciler) {\n // Persistent host tree mode\n var cloneInstance = persistence.cloneInstance,\n createContainerChildSet = persistence.createContainerChildSet,\n appendChildToContainerChildSet = persistence.appendChildToContainerChildSet,\n finalizeContainerChildren = persistence.finalizeContainerChildren;\n\n // An unfortunate fork of appendAllChildren because we have two different parent types.\n\n var appendAllChildrenToContainer = function (containerChildSet, workInProgress) {\n // We only have the top Fiber that was created but we need recurse down its\n // children to find all the terminal nodes.\n var node = workInProgress.child;\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText) {\n appendChildToContainerChildSet(containerChildSet, node.stateNode);\n } else if (node.tag === HostPortal) {\n // If we have a portal child, then we don't want to traverse\n // down its children. Instead, we'll get insertions from each child in\n // the portal directly.\n } else if (node.child !== null) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) {\n return;\n }\n while (node.sibling === null) {\n if (node['return'] === null || node['return'] === workInProgress) {\n return;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n };\n updateHostContainer = function (workInProgress) {\n var portalOrRoot = workInProgress.stateNode;\n var childrenUnchanged = workInProgress.firstEffect === null;\n if (childrenUnchanged) {\n // No changes, just reuse the existing instance.\n } else {\n var container = portalOrRoot.containerInfo;\n var newChildSet = createContainerChildSet(container);\n if (finalizeContainerChildren(container, newChildSet)) {\n markUpdate(workInProgress);\n }\n portalOrRoot.pendingChildren = newChildSet;\n // If children might have changed, we have to add them all to the set.\n appendAllChildrenToContainer(newChildSet, workInProgress);\n // Schedule an update on the container to swap out the container.\n markUpdate(workInProgress);\n }\n };\n updateHostComponent = function (current, workInProgress, updatePayload, type, oldProps, newProps, rootContainerInstance) {\n // If there are no effects associated with this node, then none of our children had any updates.\n // This guarantees that we can reuse all of them.\n var childrenUnchanged = workInProgress.firstEffect === null;\n var currentInstance = current.stateNode;\n if (childrenUnchanged && updatePayload === null) {\n // No changes, just reuse the existing instance.\n // Note that this might release a previous clone.\n workInProgress.stateNode = currentInstance;\n } else {\n var recyclableInstance = workInProgress.stateNode;\n var newInstance = cloneInstance(currentInstance, updatePayload, type, oldProps, newProps, workInProgress, childrenUnchanged, recyclableInstance);\n if (finalizeInitialChildren(newInstance, type, newProps, rootContainerInstance)) {\n markUpdate(workInProgress);\n }\n workInProgress.stateNode = newInstance;\n if (childrenUnchanged) {\n // If there are no other effects in this tree, we need to flag this node as having one.\n // Even though we're not going to use it for anything.\n // Otherwise parents won't know that there are new children to propagate upwards.\n markUpdate(workInProgress);\n } else {\n // If children might have changed, we have to add them all to the set.\n appendAllChildren(newInstance, workInProgress);\n }\n }\n };\n updateHostText = function (current, workInProgress, oldText, newText) {\n if (oldText !== newText) {\n // If the text content differs, we'll create a new text instance for it.\n var rootContainerInstance = getRootHostContainer();\n var currentHostContext = getHostContext();\n workInProgress.stateNode = createTextInstance(newText, rootContainerInstance, currentHostContext, workInProgress);\n // We'll have to mark it as having an effect, even though we won't use the effect for anything.\n // This lets the parents know that at least one of their children has changed.\n markUpdate(workInProgress);\n }\n };\n } else {\n invariant(false, 'Persistent reconciler is disabled.');\n }\n } else {\n if (enableNoopReconciler) {\n // No host operations\n updateHostContainer = function (workInProgress) {\n // Noop\n };\n updateHostComponent = function (current, workInProgress, updatePayload, type, oldProps, newProps, rootContainerInstance) {\n // Noop\n };\n updateHostText = function (current, workInProgress, oldText, newText) {\n // Noop\n };\n } else {\n invariant(false, 'Noop reconciler is disabled.');\n }\n }\n\n function completeWork(current, workInProgress, renderExpirationTime) {\n // Get the latest props.\n var newProps = workInProgress.pendingProps;\n if (newProps === null) {\n newProps = workInProgress.memoizedProps;\n } else if (workInProgress.expirationTime !== Never || renderExpirationTime === Never) {\n // Reset the pending props, unless this was a down-prioritization.\n workInProgress.pendingProps = null;\n }\n\n switch (workInProgress.tag) {\n case FunctionalComponent:\n return null;\n case ClassComponent:\n {\n // We are leaving this subtree, so pop context if any.\n popContextProvider(workInProgress);\n return null;\n }\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n var fiberRoot = workInProgress.stateNode;\n if (fiberRoot.pendingContext) {\n fiberRoot.context = fiberRoot.pendingContext;\n fiberRoot.pendingContext = null;\n }\n\n if (current === null || current.child === null) {\n // If we hydrated, pop so that we can delete any remaining children\n // that weren't hydrated.\n popHydrationState(workInProgress);\n // This resets the hacky state to fix isMounted before committing.\n // TODO: Delete this when we delete isMounted and findDOMNode.\n workInProgress.effectTag &= ~Placement;\n }\n updateHostContainer(workInProgress);\n return null;\n }\n case HostComponent:\n {\n popHostContext(workInProgress);\n var rootContainerInstance = getRootHostContainer();\n var type = workInProgress.type;\n if (current !== null && workInProgress.stateNode != null) {\n // If we have an alternate, that means this is an update and we need to\n // schedule a side-effect to do the updates.\n var oldProps = current.memoizedProps;\n // If we get updated because one of our children updated, we don't\n // have newProps so we'll have to reuse them.\n // TODO: Split the update API as separate for the props vs. children.\n // Even better would be if children weren't special cased at all tho.\n var instance = workInProgress.stateNode;\n var currentHostContext = getHostContext();\n var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext);\n\n updateHostComponent(current, workInProgress, updatePayload, type, oldProps, newProps, rootContainerInstance);\n\n if (current.ref !== workInProgress.ref) {\n markRef(workInProgress);\n }\n } else {\n if (!newProps) {\n !(workInProgress.stateNode !== null) ? invariant(false, 'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n // This can happen when we abort work.\n return null;\n }\n\n var _currentHostContext = getHostContext();\n // TODO: Move createInstance to beginWork and keep it on a context\n // \"stack\" as the parent. Then append children as we go in beginWork\n // or completeWork depending on we want to add then top->down or\n // bottom->up. Top->down is faster in IE11.\n var wasHydrated = popHydrationState(workInProgress);\n if (wasHydrated) {\n // TODO: Move this and createInstance step into the beginPhase\n // to consolidate.\n if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, _currentHostContext)) {\n // If changes to the hydrated node needs to be applied at the\n // commit-phase we mark this as such.\n markUpdate(workInProgress);\n }\n } else {\n var _instance = createInstance(type, newProps, rootContainerInstance, _currentHostContext, workInProgress);\n\n appendAllChildren(_instance, workInProgress);\n\n // Certain renderers require commit-time effects for initial mount.\n // (eg DOM renderer supports auto-focus for certain elements).\n // Make sure such renderers get scheduled for later work.\n if (finalizeInitialChildren(_instance, type, newProps, rootContainerInstance)) {\n markUpdate(workInProgress);\n }\n workInProgress.stateNode = _instance;\n }\n\n if (workInProgress.ref !== null) {\n // If there is a ref on a host node we need to schedule a callback\n markRef(workInProgress);\n }\n }\n return null;\n }\n case HostText:\n {\n var newText = newProps;\n if (current && workInProgress.stateNode != null) {\n var oldText = current.memoizedProps;\n // If we have an alternate, that means this is an update and we need\n // to schedule a side-effect to do the updates.\n updateHostText(current, workInProgress, oldText, newText);\n } else {\n if (typeof newText !== 'string') {\n !(workInProgress.stateNode !== null) ? invariant(false, 'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n // This can happen when we abort work.\n return null;\n }\n var _rootContainerInstance = getRootHostContainer();\n var _currentHostContext2 = getHostContext();\n var _wasHydrated = popHydrationState(workInProgress);\n if (_wasHydrated) {\n if (prepareToHydrateHostTextInstance(workInProgress)) {\n markUpdate(workInProgress);\n }\n } else {\n workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext2, workInProgress);\n }\n }\n return null;\n }\n case CallComponent:\n return moveCallToHandlerPhase(current, workInProgress, renderExpirationTime);\n case CallHandlerPhase:\n // Reset the tag to now be a first phase call.\n workInProgress.tag = CallComponent;\n return null;\n case ReturnComponent:\n // Does nothing.\n return null;\n case Fragment:\n return null;\n case HostPortal:\n popHostContainer(workInProgress);\n updateHostContainer(workInProgress);\n return null;\n // Error cases\n case IndeterminateComponent:\n invariant(false, 'An indeterminate component should have become determinate before completing. This error is likely caused by a bug in React. Please file an issue.');\n // eslint-disable-next-line no-fallthrough\n default:\n invariant(false, 'Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n\n return {\n completeWork: completeWork\n };\n};\n\nvar invokeGuardedCallback$2 = ReactErrorUtils.invokeGuardedCallback;\nvar hasCaughtError$1 = ReactErrorUtils.hasCaughtError;\nvar clearCaughtError$1 = ReactErrorUtils.clearCaughtError;\n\n\nvar ReactFiberCommitWork = function (config, captureError) {\n var getPublicInstance = config.getPublicInstance,\n mutation = config.mutation,\n persistence = config.persistence;\n\n\n var callComponentWillUnmountWithTimer = function (current, instance) {\n startPhaseTimer(current, 'componentWillUnmount');\n instance.props = current.memoizedProps;\n instance.state = current.memoizedState;\n instance.componentWillUnmount();\n stopPhaseTimer();\n };\n\n // Capture errors so they don't interrupt unmounting.\n function safelyCallComponentWillUnmount(current, instance) {\n {\n invokeGuardedCallback$2(null, callComponentWillUnmountWithTimer, null, current, instance);\n if (hasCaughtError$1()) {\n var unmountError = clearCaughtError$1();\n captureError(current, unmountError);\n }\n }\n }\n\n function safelyDetachRef(current) {\n var ref = current.ref;\n if (ref !== null) {\n {\n invokeGuardedCallback$2(null, ref, null, null);\n if (hasCaughtError$1()) {\n var refError = clearCaughtError$1();\n captureError(current, refError);\n }\n }\n }\n }\n\n function commitLifeCycles(current, finishedWork) {\n switch (finishedWork.tag) {\n case ClassComponent:\n {\n var instance = finishedWork.stateNode;\n if (finishedWork.effectTag & Update) {\n if (current === null) {\n startPhaseTimer(finishedWork, 'componentDidMount');\n instance.props = finishedWork.memoizedProps;\n instance.state = finishedWork.memoizedState;\n instance.componentDidMount();\n stopPhaseTimer();\n } else {\n var prevProps = current.memoizedProps;\n var prevState = current.memoizedState;\n startPhaseTimer(finishedWork, 'componentDidUpdate');\n instance.props = finishedWork.memoizedProps;\n instance.state = finishedWork.memoizedState;\n instance.componentDidUpdate(prevProps, prevState);\n stopPhaseTimer();\n }\n }\n var updateQueue = finishedWork.updateQueue;\n if (updateQueue !== null) {\n commitCallbacks(updateQueue, instance);\n }\n return;\n }\n case HostRoot:\n {\n var _updateQueue = finishedWork.updateQueue;\n if (_updateQueue !== null) {\n var _instance = finishedWork.child !== null ? finishedWork.child.stateNode : null;\n commitCallbacks(_updateQueue, _instance);\n }\n return;\n }\n case HostComponent:\n {\n var _instance2 = finishedWork.stateNode;\n\n // Renderers may schedule work to be done after host components are mounted\n // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n // These effects should only be committed when components are first mounted,\n // aka when there is no current/alternate.\n if (current === null && finishedWork.effectTag & Update) {\n var type = finishedWork.type;\n var props = finishedWork.memoizedProps;\n commitMount(_instance2, type, props, finishedWork);\n }\n\n return;\n }\n case HostText:\n {\n // We have no life-cycles associated with text.\n return;\n }\n case HostPortal:\n {\n // We have no life-cycles associated with portals.\n return;\n }\n default:\n {\n invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n }\n\n function commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n if (ref !== null) {\n var instance = finishedWork.stateNode;\n switch (finishedWork.tag) {\n case HostComponent:\n ref(getPublicInstance(instance));\n break;\n default:\n ref(instance);\n }\n }\n }\n\n function commitDetachRef(current) {\n var currentRef = current.ref;\n if (currentRef !== null) {\n currentRef(null);\n }\n }\n\n // User-originating errors (lifecycles and refs) should not interrupt\n // deletion, so don't let them throw. Host-originating errors should\n // interrupt deletion, so it's okay\n function commitUnmount(current) {\n if (typeof onCommitUnmount === 'function') {\n onCommitUnmount(current);\n }\n\n switch (current.tag) {\n case ClassComponent:\n {\n safelyDetachRef(current);\n var instance = current.stateNode;\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(current, instance);\n }\n return;\n }\n case HostComponent:\n {\n safelyDetachRef(current);\n return;\n }\n case CallComponent:\n {\n commitNestedUnmounts(current.stateNode);\n return;\n }\n case HostPortal:\n {\n // TODO: this is recursive.\n // We are also not using this parent because\n // the portal will get pushed immediately.\n if (enableMutatingReconciler && mutation) {\n unmountHostComponents(current);\n } else if (enablePersistentReconciler && persistence) {\n emptyPortalContainer(current);\n }\n return;\n }\n }\n }\n\n function commitNestedUnmounts(root) {\n // While we're inside a removed host node we don't want to call\n // removeChild on the inner nodes because they're removed by the top\n // call anyway. We also want to call componentWillUnmount on all\n // composites before this host node is removed from the tree. Therefore\n var node = root;\n while (true) {\n commitUnmount(node);\n // Visit children because they may contain more composite or host nodes.\n // Skip portals because commitUnmount() currently visits them recursively.\n if (node.child !== null && (\n // If we use mutation we drill down into portals using commitUnmount above.\n // If we don't use mutation we drill down into portals here instead.\n !mutation || node.tag !== HostPortal)) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n if (node === root) {\n return;\n }\n while (node.sibling === null) {\n if (node['return'] === null || node['return'] === root) {\n return;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n }\n\n function detachFiber(current) {\n // Cut off the return pointers to disconnect it from the tree. Ideally, we\n // should clear the child pointer of the parent alternate to let this\n // get GC:ed but we don't know which for sure which parent is the current\n // one so we'll settle for GC:ing the subtree of this child. This child\n // itself will be GC:ed when the parent updates the next time.\n current['return'] = null;\n current.child = null;\n if (current.alternate) {\n current.alternate.child = null;\n current.alternate['return'] = null;\n }\n }\n\n if (!mutation) {\n var commitContainer = void 0;\n if (persistence) {\n var replaceContainerChildren = persistence.replaceContainerChildren,\n createContainerChildSet = persistence.createContainerChildSet;\n\n var emptyPortalContainer = function (current) {\n var portal = current.stateNode;\n var containerInfo = portal.containerInfo;\n\n var emptyChildSet = createContainerChildSet(containerInfo);\n replaceContainerChildren(containerInfo, emptyChildSet);\n };\n commitContainer = function (finishedWork) {\n switch (finishedWork.tag) {\n case ClassComponent:\n {\n return;\n }\n case HostComponent:\n {\n return;\n }\n case HostText:\n {\n return;\n }\n case HostRoot:\n case HostPortal:\n {\n var portalOrRoot = finishedWork.stateNode;\n var containerInfo = portalOrRoot.containerInfo,\n _pendingChildren = portalOrRoot.pendingChildren;\n\n replaceContainerChildren(containerInfo, _pendingChildren);\n return;\n }\n default:\n {\n invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n };\n } else {\n commitContainer = function (finishedWork) {\n // Noop\n };\n }\n if (enablePersistentReconciler || enableNoopReconciler) {\n return {\n commitResetTextContent: function (finishedWork) {},\n commitPlacement: function (finishedWork) {},\n commitDeletion: function (current) {\n // Detach refs and call componentWillUnmount() on the whole subtree.\n commitNestedUnmounts(current);\n detachFiber(current);\n },\n commitWork: function (current, finishedWork) {\n commitContainer(finishedWork);\n },\n\n commitLifeCycles: commitLifeCycles,\n commitAttachRef: commitAttachRef,\n commitDetachRef: commitDetachRef\n };\n } else if (persistence) {\n invariant(false, 'Persistent reconciler is disabled.');\n } else {\n invariant(false, 'Noop reconciler is disabled.');\n }\n }\n var commitMount = mutation.commitMount,\n commitUpdate = mutation.commitUpdate,\n resetTextContent = mutation.resetTextContent,\n commitTextUpdate = mutation.commitTextUpdate,\n appendChild = mutation.appendChild,\n appendChildToContainer = mutation.appendChildToContainer,\n insertBefore = mutation.insertBefore,\n insertInContainerBefore = mutation.insertInContainerBefore,\n removeChild = mutation.removeChild,\n removeChildFromContainer = mutation.removeChildFromContainer;\n\n\n function getHostParentFiber(fiber) {\n var parent = fiber['return'];\n while (parent !== null) {\n if (isHostParent(parent)) {\n return parent;\n }\n parent = parent['return'];\n }\n invariant(false, 'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.');\n }\n\n function isHostParent(fiber) {\n return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n }\n\n function getHostSibling(fiber) {\n // We're going to search forward into the tree until we find a sibling host\n // node. Unfortunately, if multiple insertions are done in a row we have to\n // search past them. This leads to exponential search for the next sibling.\n var node = fiber;\n siblings: while (true) {\n // If we didn't find anything, let's try the next sibling.\n while (node.sibling === null) {\n if (node['return'] === null || isHostParent(node['return'])) {\n // If we pop out of the root or hit the parent the fiber we are the\n // last sibling.\n return null;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n while (node.tag !== HostComponent && node.tag !== HostText) {\n // If it is not host node and, we might have a host node inside it.\n // Try to search down until we find one.\n if (node.effectTag & Placement) {\n // If we don't have a child, try the siblings instead.\n continue siblings;\n }\n // If we don't have a child, try the siblings instead.\n // We also skip portals because they are not part of this host tree.\n if (node.child === null || node.tag === HostPortal) {\n continue siblings;\n } else {\n node.child['return'] = node;\n node = node.child;\n }\n }\n // Check if this host node is stable or about to be placed.\n if (!(node.effectTag & Placement)) {\n // Found it!\n return node.stateNode;\n }\n }\n }\n\n function commitPlacement(finishedWork) {\n // Recursively insert all host nodes into the parent.\n var parentFiber = getHostParentFiber(finishedWork);\n var parent = void 0;\n var isContainer = void 0;\n switch (parentFiber.tag) {\n case HostComponent:\n parent = parentFiber.stateNode;\n isContainer = false;\n break;\n case HostRoot:\n parent = parentFiber.stateNode.containerInfo;\n isContainer = true;\n break;\n case HostPortal:\n parent = parentFiber.stateNode.containerInfo;\n isContainer = true;\n break;\n default:\n invariant(false, 'Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.');\n }\n if (parentFiber.effectTag & ContentReset) {\n // Reset the text content of the parent before doing any insertions\n resetTextContent(parent);\n // Clear ContentReset from the effect tag\n parentFiber.effectTag &= ~ContentReset;\n }\n\n var before = getHostSibling(finishedWork);\n // We only have the top Fiber that was inserted but we need recurse down its\n // children to find all the terminal nodes.\n var node = finishedWork;\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n if (before) {\n if (isContainer) {\n insertInContainerBefore(parent, node.stateNode, before);\n } else {\n insertBefore(parent, node.stateNode, before);\n }\n } else {\n if (isContainer) {\n appendChildToContainer(parent, node.stateNode);\n } else {\n appendChild(parent, node.stateNode);\n }\n }\n } else if (node.tag === HostPortal) {\n // If the insertion itself is a portal, then we don't want to traverse\n // down its children. Instead, we'll get insertions from each child in\n // the portal directly.\n } else if (node.child !== null) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n if (node === finishedWork) {\n return;\n }\n while (node.sibling === null) {\n if (node['return'] === null || node['return'] === finishedWork) {\n return;\n }\n node = node['return'];\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n }\n\n function unmountHostComponents(current) {\n // We only have the top Fiber that was inserted but we need recurse down its\n var node = current;\n\n // Each iteration, currentParent is populated with node's host parent if not\n // currentParentIsValid.\n var currentParentIsValid = false;\n var currentParent = void 0;\n var currentParentIsContainer = void 0;\n\n while (true) {\n if (!currentParentIsValid) {\n var parent = node['return'];\n findParent: while (true) {\n !(parent !== null) ? invariant(false, 'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n switch (parent.tag) {\n case HostComponent:\n currentParent = parent.stateNode;\n currentParentIsContainer = false;\n break findParent;\n case HostRoot:\n currentParent = parent.stateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n case HostPortal:\n currentParent = parent.stateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n }\n parent = parent['return'];\n }\n currentParentIsValid = true;\n }\n\n if (node.tag === HostComponent || node.tag === HostText) {\n commitNestedUnmounts(node);\n // After all the children have unmounted, it is now safe to remove the\n // node from the tree.\n if (currentParentIsContainer) {\n removeChildFromContainer(currentParent, node.stateNode);\n } else {\n removeChild(currentParent, node.stateNode);\n }\n // Don't visit children because we already visited them.\n } else if (node.tag === HostPortal) {\n // When we go into a portal, it becomes the parent to remove from.\n // We will reassign it back when we pop the portal on the way up.\n currentParent = node.stateNode.containerInfo;\n // Visit children because portals might contain host components.\n if (node.child !== null) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n } else {\n commitUnmount(node);\n // Visit children because we may find more host components below.\n if (node.child !== null) {\n node.child['return'] = node;\n node = node.child;\n continue;\n }\n }\n if (node === current) {\n return;\n }\n while (node.sibling === null) {\n if (node['return'] === null || node['return'] === current) {\n return;\n }\n node = node['return'];\n if (node.tag === HostPortal) {\n // When we go out of the portal, we need to restore the parent.\n // Since we don't keep a stack of them, we will search for it.\n currentParentIsValid = false;\n }\n }\n node.sibling['return'] = node['return'];\n node = node.sibling;\n }\n }\n\n function commitDeletion(current) {\n // Recursively delete all host nodes from the parent.\n // Detach refs and call componentWillUnmount() on the whole subtree.\n unmountHostComponents(current);\n detachFiber(current);\n }\n\n function commitWork(current, finishedWork) {\n switch (finishedWork.tag) {\n case ClassComponent:\n {\n return;\n }\n case HostComponent:\n {\n var instance = finishedWork.stateNode;\n if (instance != null) {\n // Commit the work prepared earlier.\n var newProps = finishedWork.memoizedProps;\n // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n var oldProps = current !== null ? current.memoizedProps : newProps;\n var type = finishedWork.type;\n // TODO: Type the updateQueue to be specific to host components.\n var updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n if (updatePayload !== null) {\n commitUpdate(instance, updatePayload, type, oldProps, newProps, finishedWork);\n }\n }\n return;\n }\n case HostText:\n {\n !(finishedWork.stateNode !== null) ? invariant(false, 'This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n var textInstance = finishedWork.stateNode;\n var newText = finishedWork.memoizedProps;\n // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n var oldText = current !== null ? current.memoizedProps : newText;\n commitTextUpdate(textInstance, oldText, newText);\n return;\n }\n case HostRoot:\n {\n return;\n }\n default:\n {\n invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n }\n\n function commitResetTextContent(current) {\n resetTextContent(current.stateNode);\n }\n\n if (enableMutatingReconciler) {\n return {\n commitResetTextContent: commitResetTextContent,\n commitPlacement: commitPlacement,\n commitDeletion: commitDeletion,\n commitWork: commitWork,\n commitLifeCycles: commitLifeCycles,\n commitAttachRef: commitAttachRef,\n commitDetachRef: commitDetachRef\n };\n } else {\n invariant(false, 'Mutating reconciler is disabled.');\n }\n};\n\nvar NO_CONTEXT = {};\n\nvar ReactFiberHostContext = function (config) {\n var getChildHostContext = config.getChildHostContext,\n getRootHostContext = config.getRootHostContext;\n\n\n var contextStackCursor = createCursor(NO_CONTEXT);\n var contextFiberStackCursor = createCursor(NO_CONTEXT);\n var rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\n function requiredContext(c) {\n !(c !== NO_CONTEXT) ? invariant(false, 'Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n return c;\n }\n\n function getRootHostContainer() {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n return rootInstance;\n }\n\n function pushHostContainer(fiber, nextRootInstance) {\n // Push current root instance onto the stack;\n // This allows us to reset root when portals are popped.\n push(rootInstanceStackCursor, nextRootInstance, fiber);\n\n var nextRootContext = getRootHostContext(nextRootInstance);\n\n // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor, nextRootContext, fiber);\n }\n\n function popHostContainer(fiber) {\n pop(contextStackCursor, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n }\n\n function getHostContext() {\n var context = requiredContext(contextStackCursor.current);\n return context;\n }\n\n function pushHostContext(fiber) {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor.current);\n var nextContext = getChildHostContext(context, fiber.type, rootInstance);\n\n // Don't push this Fiber's context unless it's unique.\n if (context === nextContext) {\n return;\n }\n\n // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor, nextContext, fiber);\n }\n\n function popHostContext(fiber) {\n // Do not pop unless this Fiber provided the current context.\n // pushHostContext() only pushes Fibers that provide unique contexts.\n if (contextFiberStackCursor.current !== fiber) {\n return;\n }\n\n pop(contextStackCursor, fiber);\n pop(contextFiberStackCursor, fiber);\n }\n\n function resetHostContainer() {\n contextStackCursor.current = NO_CONTEXT;\n rootInstanceStackCursor.current = NO_CONTEXT;\n }\n\n return {\n getHostContext: getHostContext,\n getRootHostContainer: getRootHostContainer,\n popHostContainer: popHostContainer,\n popHostContext: popHostContext,\n pushHostContainer: pushHostContainer,\n pushHostContext: pushHostContext,\n resetHostContainer: resetHostContainer\n };\n};\n\nvar ReactFiberHydrationContext = function (config) {\n var shouldSetTextContent = config.shouldSetTextContent,\n hydration = config.hydration;\n\n // If this doesn't have hydration mode.\n\n if (!hydration) {\n return {\n enterHydrationState: function () {\n return false;\n },\n resetHydrationState: function () {},\n tryToClaimNextHydratableInstance: function () {},\n prepareToHydrateHostInstance: function () {\n invariant(false, 'Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');\n },\n prepareToHydrateHostTextInstance: function () {\n invariant(false, 'Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');\n },\n popHydrationState: function (fiber) {\n return false;\n }\n };\n }\n\n var canHydrateInstance = hydration.canHydrateInstance,\n canHydrateTextInstance = hydration.canHydrateTextInstance,\n getNextHydratableSibling = hydration.getNextHydratableSibling,\n getFirstHydratableChild = hydration.getFirstHydratableChild,\n hydrateInstance = hydration.hydrateInstance,\n hydrateTextInstance = hydration.hydrateTextInstance,\n didNotMatchHydratedContainerTextInstance = hydration.didNotMatchHydratedContainerTextInstance,\n didNotMatchHydratedTextInstance = hydration.didNotMatchHydratedTextInstance,\n didNotHydrateContainerInstance = hydration.didNotHydrateContainerInstance,\n didNotHydrateInstance = hydration.didNotHydrateInstance,\n didNotFindHydratableContainerInstance = hydration.didNotFindHydratableContainerInstance,\n didNotFindHydratableContainerTextInstance = hydration.didNotFindHydratableContainerTextInstance,\n didNotFindHydratableInstance = hydration.didNotFindHydratableInstance,\n didNotFindHydratableTextInstance = hydration.didNotFindHydratableTextInstance;\n\n // The deepest Fiber on the stack involved in a hydration context.\n // This may have been an insertion or a hydration.\n\n var hydrationParentFiber = null;\n var nextHydratableInstance = null;\n var isHydrating = false;\n\n function enterHydrationState(fiber) {\n var parentInstance = fiber.stateNode.containerInfo;\n nextHydratableInstance = getFirstHydratableChild(parentInstance);\n hydrationParentFiber = fiber;\n isHydrating = true;\n return true;\n }\n\n function deleteHydratableInstance(returnFiber, instance) {\n {\n switch (returnFiber.tag) {\n case HostRoot:\n didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n break;\n case HostComponent:\n didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n break;\n }\n }\n\n var childToDelete = createFiberFromHostInstanceForDeletion();\n childToDelete.stateNode = instance;\n childToDelete['return'] = returnFiber;\n childToDelete.effectTag = Deletion;\n\n // This might seem like it belongs on progressedFirstDeletion. However,\n // these children are not part of the reconciliation list of children.\n // Even if we abort and rereconcile the children, that will try to hydrate\n // again and the nodes are still in the host tree so these will be\n // recreated.\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n }\n\n function insertNonHydratedInstance(returnFiber, fiber) {\n fiber.effectTag |= Placement;\n {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n switch (fiber.tag) {\n case HostComponent:\n var type = fiber.type;\n var props = fiber.pendingProps;\n didNotFindHydratableContainerInstance(parentContainer, type, props);\n break;\n case HostText:\n var text = fiber.pendingProps;\n didNotFindHydratableContainerTextInstance(parentContainer, text);\n break;\n }\n break;\n }\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n switch (fiber.tag) {\n case HostComponent:\n var _type = fiber.type;\n var _props = fiber.pendingProps;\n didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type, _props);\n break;\n case HostText:\n var _text = fiber.pendingProps;\n didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n break;\n }\n break;\n }\n default:\n return;\n }\n }\n }\n\n function tryHydrate(fiber, nextInstance) {\n switch (fiber.tag) {\n case HostComponent:\n {\n var type = fiber.type;\n var props = fiber.pendingProps;\n var instance = canHydrateInstance(nextInstance, type, props);\n if (instance !== null) {\n fiber.stateNode = instance;\n return true;\n }\n return false;\n }\n case HostText:\n {\n var text = fiber.pendingProps;\n var textInstance = canHydrateTextInstance(nextInstance, text);\n if (textInstance !== null) {\n fiber.stateNode = textInstance;\n return true;\n }\n return false;\n }\n default:\n return false;\n }\n }\n\n function tryToClaimNextHydratableInstance(fiber) {\n if (!isHydrating) {\n return;\n }\n var nextInstance = nextHydratableInstance;\n if (!nextInstance) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n }\n if (!tryHydrate(fiber, nextInstance)) {\n // If we can't hydrate this instance let's try the next one.\n // We use this as a heuristic. It's based on intuition and not data so it\n // might be flawed or unnecessary.\n nextInstance = getNextHydratableSibling(nextInstance);\n if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n }\n // We matched the next one, we'll now assume that the first one was\n // superfluous and we'll delete it. Since we can't eagerly delete it\n // we'll have to schedule a deletion. To do that, this node needs a dummy\n // fiber associated with it.\n deleteHydratableInstance(hydrationParentFiber, nextHydratableInstance);\n }\n hydrationParentFiber = fiber;\n nextHydratableInstance = getFirstHydratableChild(nextInstance);\n }\n\n function prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n var instance = fiber.stateNode;\n var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber);\n // TODO: Type this specific to this type of component.\n fiber.updateQueue = updatePayload;\n // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update.\n if (updatePayload !== null) {\n return true;\n }\n return false;\n }\n\n function prepareToHydrateHostTextInstance(fiber) {\n var textInstance = fiber.stateNode;\n var textContent = fiber.memoizedProps;\n var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n {\n if (shouldUpdate) {\n // We assume that prepareToHydrateHostTextInstance is called in a context where the\n // hydration parent is the parent host component of this host text.\n var returnFiber = hydrationParentFiber;\n if (returnFiber !== null) {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n break;\n }\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n break;\n }\n }\n }\n }\n }\n return shouldUpdate;\n }\n\n function popToNextHostParent(fiber) {\n var parent = fiber['return'];\n while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot) {\n parent = parent['return'];\n }\n hydrationParentFiber = parent;\n }\n\n function popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) {\n // We're deeper than the current hydration context, inside an inserted\n // tree.\n return false;\n }\n if (!isHydrating) {\n // If we're not currently hydrating but we're in a hydration context, then\n // we were an insertion and now need to pop up reenter hydration of our\n // siblings.\n popToNextHostParent(fiber);\n isHydrating = true;\n return false;\n }\n\n var type = fiber.type;\n\n // If we have any remaining hydratable nodes, we need to delete them now.\n // We only do this deeper than head and body since they tend to have random\n // other nodes in them. We also ignore components with pure text content in\n // side of them.\n // TODO: Better heuristic.\n if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n var nextInstance = nextHydratableInstance;\n while (nextInstance) {\n deleteHydratableInstance(fiber, nextInstance);\n nextInstance = getNextHydratableSibling(nextInstance);\n }\n }\n\n popToNextHostParent(fiber);\n nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n return true;\n }\n\n function resetHydrationState() {\n hydrationParentFiber = null;\n nextHydratableInstance = null;\n isHydrating = false;\n }\n\n return {\n enterHydrationState: enterHydrationState,\n resetHydrationState: resetHydrationState,\n tryToClaimNextHydratableInstance: tryToClaimNextHydratableInstance,\n prepareToHydrateHostInstance: prepareToHydrateHostInstance,\n prepareToHydrateHostTextInstance: prepareToHydrateHostTextInstance,\n popHydrationState: popHydrationState\n };\n};\n\n// This lets us hook into Fiber to debug what it's doing.\n// See https://github.com/facebook/react/pull/8033.\n// This is not part of the public API, not even for React DevTools.\n// You may only inject a debugTool if you work on React Fiber itself.\nvar ReactFiberInstrumentation = {\n debugTool: null\n};\n\nvar ReactFiberInstrumentation_1 = ReactFiberInstrumentation;\n\nvar defaultShowDialog = function (capturedError) {\n return true;\n};\n\nvar showDialog = defaultShowDialog;\n\nfunction logCapturedError(capturedError) {\n var logError = showDialog(capturedError);\n\n // Allow injected showDialog() to prevent default console.error logging.\n // This enables renderers like ReactNative to better manage redbox behavior.\n if (logError === false) {\n return;\n }\n\n {\n var componentName = capturedError.componentName,\n componentStack = capturedError.componentStack,\n errorBoundaryName = capturedError.errorBoundaryName,\n errorBoundaryFound = capturedError.errorBoundaryFound,\n willRetry = capturedError.willRetry;\n\n\n var componentNameMessage = componentName ? 'The above error occurred in the <' + componentName + '> component:' : 'The above error occurred in one of your React components:';\n\n var errorBoundaryMessage = void 0;\n // errorBoundaryFound check is sufficient; errorBoundaryName check is to satisfy Flow.\n if (errorBoundaryFound && errorBoundaryName) {\n if (willRetry) {\n errorBoundaryMessage = 'React will try to recreate this component tree from scratch ' + ('using the error boundary you provided, ' + errorBoundaryName + '.');\n } else {\n errorBoundaryMessage = 'This error was initially handled by the error boundary ' + errorBoundaryName + '.\\n' + 'Recreating the tree from scratch failed so React will unmount the tree.';\n }\n } else {\n errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://fb.me/react-error-boundaries to learn more about error boundaries.';\n }\n var combinedMessage = '' + componentNameMessage + componentStack + '\\n\\n' + ('' + errorBoundaryMessage);\n\n // In development, we provide our own message with just the component stack.\n // We don't include the original error message and JS stack because the browser\n // has already printed it. Even if the application swallows the error, it is still\n // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n console.error(combinedMessage);\n }\n}\n\nvar invokeGuardedCallback$1 = ReactErrorUtils.invokeGuardedCallback;\nvar hasCaughtError = ReactErrorUtils.hasCaughtError;\nvar clearCaughtError = ReactErrorUtils.clearCaughtError;\n\n\n{\n var didWarnAboutStateTransition = false;\n var didWarnSetStateChildContext = false;\n var didWarnStateUpdateForUnmountedComponent = {};\n\n var warnAboutUpdateOnUnmounted = function (fiber) {\n var componentName = getComponentName(fiber) || 'ReactClass';\n if (didWarnStateUpdateForUnmountedComponent[componentName]) {\n return;\n }\n warning(false, 'Can only update a mounted or mounting ' + 'component. This usually means you called setState, replaceState, ' + 'or forceUpdate on an unmounted component. This is a no-op.\\n\\nPlease ' + 'check the code for the %s component.', componentName);\n didWarnStateUpdateForUnmountedComponent[componentName] = true;\n };\n\n var warnAboutInvalidUpdates = function (instance) {\n switch (ReactDebugCurrentFiber.phase) {\n case 'getChildContext':\n if (didWarnSetStateChildContext) {\n return;\n }\n warning(false, 'setState(...): Cannot call setState() inside getChildContext()');\n didWarnSetStateChildContext = true;\n break;\n case 'render':\n if (didWarnAboutStateTransition) {\n return;\n }\n warning(false, 'Cannot update during an existing state transition (such as within ' + \"`render` or another component's constructor). Render methods should \" + 'be a pure function of props and state; constructor side-effects are ' + 'an anti-pattern, but can be moved to `componentWillMount`.');\n didWarnAboutStateTransition = true;\n break;\n }\n };\n}\n\nvar ReactFiberScheduler = function (config) {\n var hostContext = ReactFiberHostContext(config);\n var hydrationContext = ReactFiberHydrationContext(config);\n var popHostContainer = hostContext.popHostContainer,\n popHostContext = hostContext.popHostContext,\n resetHostContainer = hostContext.resetHostContainer;\n\n var _ReactFiberBeginWork = ReactFiberBeginWork(config, hostContext, hydrationContext, scheduleWork, computeExpirationForFiber),\n beginWork = _ReactFiberBeginWork.beginWork,\n beginFailedWork = _ReactFiberBeginWork.beginFailedWork;\n\n var _ReactFiberCompleteWo = ReactFiberCompleteWork(config, hostContext, hydrationContext),\n completeWork = _ReactFiberCompleteWo.completeWork;\n\n var _ReactFiberCommitWork = ReactFiberCommitWork(config, captureError),\n commitResetTextContent = _ReactFiberCommitWork.commitResetTextContent,\n commitPlacement = _ReactFiberCommitWork.commitPlacement,\n commitDeletion = _ReactFiberCommitWork.commitDeletion,\n commitWork = _ReactFiberCommitWork.commitWork,\n commitLifeCycles = _ReactFiberCommitWork.commitLifeCycles,\n commitAttachRef = _ReactFiberCommitWork.commitAttachRef,\n commitDetachRef = _ReactFiberCommitWork.commitDetachRef;\n\n var now = config.now,\n scheduleDeferredCallback = config.scheduleDeferredCallback,\n useSyncScheduling = config.useSyncScheduling,\n prepareForCommit = config.prepareForCommit,\n resetAfterCommit = config.resetAfterCommit;\n\n // Represents the current time in ms.\n\n var startTime = now();\n var mostRecentCurrentTime = msToExpirationTime(0);\n\n // Represents the expiration time that incoming updates should use. (If this\n // is NoWork, use the default strategy: async updates in async mode, sync\n // updates in sync mode.)\n var expirationContext = NoWork;\n\n var isWorking = false;\n\n // The next work in progress fiber that we're currently working on.\n var nextUnitOfWork = null;\n var nextRoot = null;\n // The time at which we're currently rendering work.\n var nextRenderExpirationTime = NoWork;\n\n // The next fiber with an effect that we're currently committing.\n var nextEffect = null;\n\n // Keep track of which fibers have captured an error that need to be handled.\n // Work is removed from this collection after componentDidCatch is called.\n var capturedErrors = null;\n // Keep track of which fibers have failed during the current batch of work.\n // This is a different set than capturedErrors, because it is not reset until\n // the end of the batch. This is needed to propagate errors correctly if a\n // subtree fails more than once.\n var failedBoundaries = null;\n // Error boundaries that captured an error during the current commit.\n var commitPhaseBoundaries = null;\n var firstUncaughtError = null;\n var didFatal = false;\n\n var isCommitting = false;\n var isUnmounting = false;\n\n // Used for performance tracking.\n var interruptedBy = null;\n\n function resetContextStack() {\n // Reset the stack\n reset$1();\n // Reset the cursors\n resetContext();\n resetHostContainer();\n }\n\n function commitAllHostEffects() {\n while (nextEffect !== null) {\n {\n ReactDebugCurrentFiber.setCurrentFiber(nextEffect);\n }\n recordEffect();\n\n var effectTag = nextEffect.effectTag;\n if (effectTag & ContentReset) {\n commitResetTextContent(nextEffect);\n }\n\n if (effectTag & Ref) {\n var current = nextEffect.alternate;\n if (current !== null) {\n commitDetachRef(current);\n }\n }\n\n // The following switch statement is only concerned about placement,\n // updates, and deletions. To avoid needing to add a case for every\n // possible bitmap value, we remove the secondary effects from the\n // effect tag and switch on that value.\n var primaryEffectTag = effectTag & ~(Callback | Err | ContentReset | Ref | PerformedWork);\n switch (primaryEffectTag) {\n case Placement:\n {\n commitPlacement(nextEffect);\n // Clear the \"placement\" from effect tag so that we know that this is inserted, before\n // any life-cycles like componentDidMount gets called.\n // TODO: findDOMNode doesn't rely on this any more but isMounted\n // does and isMounted is deprecated anyway so we should be able\n // to kill this.\n nextEffect.effectTag &= ~Placement;\n break;\n }\n case PlacementAndUpdate:\n {\n // Placement\n commitPlacement(nextEffect);\n // Clear the \"placement\" from effect tag so that we know that this is inserted, before\n // any life-cycles like componentDidMount gets called.\n nextEffect.effectTag &= ~Placement;\n\n // Update\n var _current = nextEffect.alternate;\n commitWork(_current, nextEffect);\n break;\n }\n case Update:\n {\n var _current2 = nextEffect.alternate;\n commitWork(_current2, nextEffect);\n break;\n }\n case Deletion:\n {\n isUnmounting = true;\n commitDeletion(nextEffect);\n isUnmounting = false;\n break;\n }\n }\n nextEffect = nextEffect.nextEffect;\n }\n\n {\n ReactDebugCurrentFiber.resetCurrentFiber();\n }\n }\n\n function commitAllLifeCycles() {\n while (nextEffect !== null) {\n var effectTag = nextEffect.effectTag;\n\n if (effectTag & (Update | Callback)) {\n recordEffect();\n var current = nextEffect.alternate;\n commitLifeCycles(current, nextEffect);\n }\n\n if (effectTag & Ref) {\n recordEffect();\n commitAttachRef(nextEffect);\n }\n\n if (effectTag & Err) {\n recordEffect();\n commitErrorHandling(nextEffect);\n }\n\n var next = nextEffect.nextEffect;\n // Ensure that we clean these up so that we don't accidentally keep them.\n // I'm not actually sure this matters because we can't reset firstEffect\n // and lastEffect since they're on every node, not just the effectful\n // ones. So we have to clean everything as we reuse nodes anyway.\n nextEffect.nextEffect = null;\n // Ensure that we reset the effectTag here so that we can rely on effect\n // tags to reason about the current life-cycle.\n nextEffect = next;\n }\n }\n\n function commitRoot(finishedWork) {\n // We keep track of this so that captureError can collect any boundaries\n // that capture an error during the commit phase. The reason these aren't\n // local to this function is because errors that occur during cWU are\n // captured elsewhere, to prevent the unmount from being interrupted.\n isWorking = true;\n isCommitting = true;\n startCommitTimer();\n\n var root = finishedWork.stateNode;\n !(root.current !== finishedWork) ? invariant(false, 'Cannot commit the same tree as before. This is probably a bug related to the return field. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n root.isReadyForCommit = false;\n\n // Reset this to null before calling lifecycles\n ReactCurrentOwner.current = null;\n\n var firstEffect = void 0;\n if (finishedWork.effectTag > PerformedWork) {\n // A fiber's effect list consists only of its children, not itself. So if\n // the root has an effect, we need to add it to the end of the list. The\n // resulting list is the set that would belong to the root's parent, if\n // it had one; that is, all the effects in the tree including the root.\n if (finishedWork.lastEffect !== null) {\n finishedWork.lastEffect.nextEffect = finishedWork;\n firstEffect = finishedWork.firstEffect;\n } else {\n firstEffect = finishedWork;\n }\n } else {\n // There is no effect on the root.\n firstEffect = finishedWork.firstEffect;\n }\n\n prepareForCommit();\n\n // Commit all the side-effects within a tree. We'll do this in two passes.\n // The first pass performs all the host insertions, updates, deletions and\n // ref unmounts.\n nextEffect = firstEffect;\n startCommitHostEffectsTimer();\n while (nextEffect !== null) {\n var didError = false;\n var _error = void 0;\n {\n invokeGuardedCallback$1(null, commitAllHostEffects, null);\n if (hasCaughtError()) {\n didError = true;\n _error = clearCaughtError();\n }\n }\n if (didError) {\n !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n captureError(nextEffect, _error);\n // Clean-up\n if (nextEffect !== null) {\n nextEffect = nextEffect.nextEffect;\n }\n }\n }\n stopCommitHostEffectsTimer();\n\n resetAfterCommit();\n\n // The work-in-progress tree is now the current tree. This must come after\n // the first pass of the commit phase, so that the previous tree is still\n // current during componentWillUnmount, but before the second pass, so that\n // the finished work is current during componentDidMount/Update.\n root.current = finishedWork;\n\n // In the second pass we'll perform all life-cycles and ref callbacks.\n // Life-cycles happen as a separate pass so that all placements, updates,\n // and deletions in the entire tree have already been invoked.\n // This pass also triggers any renderer-specific initial effects.\n nextEffect = firstEffect;\n startCommitLifeCyclesTimer();\n while (nextEffect !== null) {\n var _didError = false;\n var _error2 = void 0;\n {\n invokeGuardedCallback$1(null, commitAllLifeCycles, null);\n if (hasCaughtError()) {\n _didError = true;\n _error2 = clearCaughtError();\n }\n }\n if (_didError) {\n !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n captureError(nextEffect, _error2);\n if (nextEffect !== null) {\n nextEffect = nextEffect.nextEffect;\n }\n }\n }\n\n isCommitting = false;\n isWorking = false;\n stopCommitLifeCyclesTimer();\n stopCommitTimer();\n if (typeof onCommitRoot === 'function') {\n onCommitRoot(finishedWork.stateNode);\n }\n if (true && ReactFiberInstrumentation_1.debugTool) {\n ReactFiberInstrumentation_1.debugTool.onCommitWork(finishedWork);\n }\n\n // If we caught any errors during this commit, schedule their boundaries\n // to update.\n if (commitPhaseBoundaries) {\n commitPhaseBoundaries.forEach(scheduleErrorRecovery);\n commitPhaseBoundaries = null;\n }\n\n if (firstUncaughtError !== null) {\n var _error3 = firstUncaughtError;\n firstUncaughtError = null;\n onUncaughtError(_error3);\n }\n\n var remainingTime = root.current.expirationTime;\n\n if (remainingTime === NoWork) {\n capturedErrors = null;\n failedBoundaries = null;\n }\n\n return remainingTime;\n }\n\n function resetExpirationTime(workInProgress, renderTime) {\n if (renderTime !== Never && workInProgress.expirationTime === Never) {\n // The children of this component are hidden. Don't bubble their\n // expiration times.\n return;\n }\n\n // Check for pending updates.\n var newExpirationTime = getUpdateExpirationTime(workInProgress);\n\n // TODO: Calls need to visit stateNode\n\n // Bubble up the earliest expiration time.\n var child = workInProgress.child;\n while (child !== null) {\n if (child.expirationTime !== NoWork && (newExpirationTime === NoWork || newExpirationTime > child.expirationTime)) {\n newExpirationTime = child.expirationTime;\n }\n child = child.sibling;\n }\n workInProgress.expirationTime = newExpirationTime;\n }\n\n function completeUnitOfWork(workInProgress) {\n while (true) {\n // The current, flushed, state of this fiber is the alternate.\n // Ideally nothing should rely on this, but relying on it here\n // means that we don't need an additional field on the work in\n // progress.\n var current = workInProgress.alternate;\n {\n ReactDebugCurrentFiber.setCurrentFiber(workInProgress);\n }\n var next = completeWork(current, workInProgress, nextRenderExpirationTime);\n {\n ReactDebugCurrentFiber.resetCurrentFiber();\n }\n\n var returnFiber = workInProgress['return'];\n var siblingFiber = workInProgress.sibling;\n\n resetExpirationTime(workInProgress, nextRenderExpirationTime);\n\n if (next !== null) {\n stopWorkTimer(workInProgress);\n if (true && ReactFiberInstrumentation_1.debugTool) {\n ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);\n }\n // If completing this work spawned new work, do that next. We'll come\n // back here again.\n return next;\n }\n\n if (returnFiber !== null) {\n // Append all the effects of the subtree and this fiber onto the effect\n // list of the parent. The completion order of the children affects the\n // side-effect order.\n if (returnFiber.firstEffect === null) {\n returnFiber.firstEffect = workInProgress.firstEffect;\n }\n if (workInProgress.lastEffect !== null) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = workInProgress.firstEffect;\n }\n returnFiber.lastEffect = workInProgress.lastEffect;\n }\n\n // If this fiber had side-effects, we append it AFTER the children's\n // side-effects. We can perform certain side-effects earlier if\n // needed, by doing multiple passes over the effect list. We don't want\n // to schedule our own side-effect on our own list because if end up\n // reusing children we'll schedule this effect onto itself since we're\n // at the end.\n var effectTag = workInProgress.effectTag;\n // Skip both NoWork and PerformedWork tags when creating the effect list.\n // PerformedWork effect is read by React DevTools but shouldn't be committed.\n if (effectTag > PerformedWork) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = workInProgress;\n } else {\n returnFiber.firstEffect = workInProgress;\n }\n returnFiber.lastEffect = workInProgress;\n }\n }\n\n stopWorkTimer(workInProgress);\n if (true && ReactFiberInstrumentation_1.debugTool) {\n ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);\n }\n\n if (siblingFiber !== null) {\n // If there is more work to do in this returnFiber, do that next.\n return siblingFiber;\n } else if (returnFiber !== null) {\n // If there's no more work in this returnFiber. Complete the returnFiber.\n workInProgress = returnFiber;\n continue;\n } else {\n // We've reached the root.\n var root = workInProgress.stateNode;\n root.isReadyForCommit = true;\n return null;\n }\n }\n\n // Without this explicit null return Flow complains of invalid return type\n // TODO Remove the above while(true) loop\n // eslint-disable-next-line no-unreachable\n return null;\n }\n\n function performUnitOfWork(workInProgress) {\n // The current, flushed, state of this fiber is the alternate.\n // Ideally nothing should rely on this, but relying on it here\n // means that we don't need an additional field on the work in\n // progress.\n var current = workInProgress.alternate;\n\n // See if beginning this work spawns more work.\n startWorkTimer(workInProgress);\n {\n ReactDebugCurrentFiber.setCurrentFiber(workInProgress);\n }\n var next = beginWork(current, workInProgress, nextRenderExpirationTime);\n {\n ReactDebugCurrentFiber.resetCurrentFiber();\n }\n if (true && ReactFiberInstrumentation_1.debugTool) {\n ReactFiberInstrumentation_1.debugTool.onBeginWork(workInProgress);\n }\n\n if (next === null) {\n // If this doesn't spawn new work, complete the current work.\n next = completeUnitOfWork(workInProgress);\n }\n\n ReactCurrentOwner.current = null;\n\n return next;\n }\n\n function performFailedUnitOfWork(workInProgress) {\n // The current, flushed, state of this fiber is the alternate.\n // Ideally nothing should rely on this, but relying on it here\n // means that we don't need an additional field on the work in\n // progress.\n var current = workInProgress.alternate;\n\n // See if beginning this work spawns more work.\n startWorkTimer(workInProgress);\n {\n ReactDebugCurrentFiber.setCurrentFiber(workInProgress);\n }\n var next = beginFailedWork(current, workInProgress, nextRenderExpirationTime);\n {\n ReactDebugCurrentFiber.resetCurrentFiber();\n }\n if (true && ReactFiberInstrumentation_1.debugTool) {\n ReactFiberInstrumentation_1.debugTool.onBeginWork(workInProgress);\n }\n\n if (next === null) {\n // If this doesn't spawn new work, complete the current work.\n next = completeUnitOfWork(workInProgress);\n }\n\n ReactCurrentOwner.current = null;\n\n return next;\n }\n\n function workLoop(expirationTime) {\n if (capturedErrors !== null) {\n // If there are unhandled errors, switch to the slow work loop.\n // TODO: How to avoid this check in the fast path? Maybe the renderer\n // could keep track of which roots have unhandled errors and call a\n // forked version of renderRoot.\n slowWorkLoopThatChecksForFailedWork(expirationTime);\n return;\n }\n if (nextRenderExpirationTime === NoWork || nextRenderExpirationTime > expirationTime) {\n return;\n }\n\n if (nextRenderExpirationTime <= mostRecentCurrentTime) {\n // Flush all expired work.\n while (nextUnitOfWork !== null) {\n nextUnitOfWork = performUnitOfWork(nextUnitOfWork);\n }\n } else {\n // Flush asynchronous work until the deadline runs out of time.\n while (nextUnitOfWork !== null && !shouldYield()) {\n nextUnitOfWork = performUnitOfWork(nextUnitOfWork);\n }\n }\n }\n\n function slowWorkLoopThatChecksForFailedWork(expirationTime) {\n if (nextRenderExpirationTime === NoWork || nextRenderExpirationTime > expirationTime) {\n return;\n }\n\n if (nextRenderExpirationTime <= mostRecentCurrentTime) {\n // Flush all expired work.\n while (nextUnitOfWork !== null) {\n if (hasCapturedError(nextUnitOfWork)) {\n // Use a forked version of performUnitOfWork\n nextUnitOfWork = performFailedUnitOfWork(nextUnitOfWork);\n } else {\n nextUnitOfWork = performUnitOfWork(nextUnitOfWork);\n }\n }\n } else {\n // Flush asynchronous work until the deadline runs out of time.\n while (nextUnitOfWork !== null && !shouldYield()) {\n if (hasCapturedError(nextUnitOfWork)) {\n // Use a forked version of performUnitOfWork\n nextUnitOfWork = performFailedUnitOfWork(nextUnitOfWork);\n } else {\n nextUnitOfWork = performUnitOfWork(nextUnitOfWork);\n }\n }\n }\n }\n\n function renderRootCatchBlock(root, failedWork, boundary, expirationTime) {\n // We're going to restart the error boundary that captured the error.\n // Conceptually, we're unwinding the stack. We need to unwind the\n // context stack, too.\n unwindContexts(failedWork, boundary);\n\n // Restart the error boundary using a forked version of\n // performUnitOfWork that deletes the boundary's children. The entire\n // failed subree will be unmounted. During the commit phase, a special\n // lifecycle method is called on the error boundary, which triggers\n // a re-render.\n nextUnitOfWork = performFailedUnitOfWork(boundary);\n\n // Continue working.\n workLoop(expirationTime);\n }\n\n function renderRoot(root, expirationTime) {\n !!isWorking ? invariant(false, 'renderRoot was called recursively. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n isWorking = true;\n\n // We're about to mutate the work-in-progress tree. If the root was pending\n // commit, it no longer is: we'll need to complete it again.\n root.isReadyForCommit = false;\n\n // Check if we're starting from a fresh stack, or if we're resuming from\n // previously yielded work.\n if (root !== nextRoot || expirationTime !== nextRenderExpirationTime || nextUnitOfWork === null) {\n // Reset the stack and start working from the root.\n resetContextStack();\n nextRoot = root;\n nextRenderExpirationTime = expirationTime;\n nextUnitOfWork = createWorkInProgress(nextRoot.current, null, expirationTime);\n }\n\n startWorkLoopTimer(nextUnitOfWork);\n\n var didError = false;\n var error = null;\n {\n invokeGuardedCallback$1(null, workLoop, null, expirationTime);\n if (hasCaughtError()) {\n didError = true;\n error = clearCaughtError();\n }\n }\n\n // An error was thrown during the render phase.\n while (didError) {\n if (didFatal) {\n // This was a fatal error. Don't attempt to recover from it.\n firstUncaughtError = error;\n break;\n }\n\n var failedWork = nextUnitOfWork;\n if (failedWork === null) {\n // An error was thrown but there's no current unit of work. This can\n // happen during the commit phase if there's a bug in the renderer.\n didFatal = true;\n continue;\n }\n\n // \"Capture\" the error by finding the nearest boundary. If there is no\n // error boundary, we use the root.\n var boundary = captureError(failedWork, error);\n !(boundary !== null) ? invariant(false, 'Should have found an error boundary. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n if (didFatal) {\n // The error we just captured was a fatal error. This happens\n // when the error propagates to the root more than once.\n continue;\n }\n\n didError = false;\n error = null;\n {\n invokeGuardedCallback$1(null, renderRootCatchBlock, null, root, failedWork, boundary, expirationTime);\n if (hasCaughtError()) {\n didError = true;\n error = clearCaughtError();\n continue;\n }\n }\n // We're finished working. Exit the error loop.\n break;\n }\n\n var uncaughtError = firstUncaughtError;\n\n // We're done performing work. Time to clean up.\n stopWorkLoopTimer(interruptedBy);\n interruptedBy = null;\n isWorking = false;\n didFatal = false;\n firstUncaughtError = null;\n\n if (uncaughtError !== null) {\n onUncaughtError(uncaughtError);\n }\n\n return root.isReadyForCommit ? root.current.alternate : null;\n }\n\n // Returns the boundary that captured the error, or null if the error is ignored\n function captureError(failedWork, error) {\n // It is no longer valid because we exited the user code.\n ReactCurrentOwner.current = null;\n {\n ReactDebugCurrentFiber.resetCurrentFiber();\n }\n\n // Search for the nearest error boundary.\n var boundary = null;\n\n // Passed to logCapturedError()\n var errorBoundaryFound = false;\n var willRetry = false;\n var errorBoundaryName = null;\n\n // Host containers are a special case. If the failed work itself is a host\n // container, then it acts as its own boundary. In all other cases, we\n // ignore the work itself and only search through the parents.\n if (failedWork.tag === HostRoot) {\n boundary = failedWork;\n\n if (isFailedBoundary(failedWork)) {\n // If this root already failed, there must have been an error when\n // attempting to unmount it. This is a worst-case scenario and\n // should only be possible if there's a bug in the renderer.\n didFatal = true;\n }\n } else {\n var node = failedWork['return'];\n while (node !== null && boundary === null) {\n if (node.tag === ClassComponent) {\n var instance = node.stateNode;\n if (typeof instance.componentDidCatch === 'function') {\n errorBoundaryFound = true;\n errorBoundaryName = getComponentName(node);\n\n // Found an error boundary!\n boundary = node;\n willRetry = true;\n }\n } else if (node.tag === HostRoot) {\n // Treat the root like a no-op error boundary\n boundary = node;\n }\n\n if (isFailedBoundary(node)) {\n // This boundary is already in a failed state.\n\n // If we're currently unmounting, that means this error was\n // thrown while unmounting a failed subtree. We should ignore\n // the error.\n if (isUnmounting) {\n return null;\n }\n\n // If we're in the commit phase, we should check to see if\n // this boundary already captured an error during this commit.\n // This case exists because multiple errors can be thrown during\n // a single commit without interruption.\n if (commitPhaseBoundaries !== null && (commitPhaseBoundaries.has(node) || node.alternate !== null && commitPhaseBoundaries.has(node.alternate))) {\n // If so, we should ignore this error.\n return null;\n }\n\n // The error should propagate to the next boundary -— we keep looking.\n boundary = null;\n willRetry = false;\n }\n\n node = node['return'];\n }\n }\n\n if (boundary !== null) {\n // Add to the collection of failed boundaries. This lets us know that\n // subsequent errors in this subtree should propagate to the next boundary.\n if (failedBoundaries === null) {\n failedBoundaries = new Set();\n }\n failedBoundaries.add(boundary);\n\n // This method is unsafe outside of the begin and complete phases.\n // We might be in the commit phase when an error is captured.\n // The risk is that the return path from this Fiber may not be accurate.\n // That risk is acceptable given the benefit of providing users more context.\n var _componentStack = getStackAddendumByWorkInProgressFiber(failedWork);\n var _componentName = getComponentName(failedWork);\n\n // Add to the collection of captured errors. This is stored as a global\n // map of errors and their component stack location keyed by the boundaries\n // that capture them. We mostly use this Map as a Set; it's a Map only to\n // avoid adding a field to Fiber to store the error.\n if (capturedErrors === null) {\n capturedErrors = new Map();\n }\n\n var capturedError = {\n componentName: _componentName,\n componentStack: _componentStack,\n error: error,\n errorBoundary: errorBoundaryFound ? boundary.stateNode : null,\n errorBoundaryFound: errorBoundaryFound,\n errorBoundaryName: errorBoundaryName,\n willRetry: willRetry\n };\n\n capturedErrors.set(boundary, capturedError);\n\n try {\n logCapturedError(capturedError);\n } catch (e) {\n // Prevent cycle if logCapturedError() throws.\n // A cycle may still occur if logCapturedError renders a component that throws.\n console.error(e);\n }\n\n // If we're in the commit phase, defer scheduling an update on the\n // boundary until after the commit is complete\n if (isCommitting) {\n if (commitPhaseBoundaries === null) {\n commitPhaseBoundaries = new Set();\n }\n commitPhaseBoundaries.add(boundary);\n } else {\n // Otherwise, schedule an update now.\n // TODO: Is this actually necessary during the render phase? Is it\n // possible to unwind and continue rendering at the same priority,\n // without corrupting internal state?\n scheduleErrorRecovery(boundary);\n }\n return boundary;\n } else if (firstUncaughtError === null) {\n // If no boundary is found, we'll need to throw the error\n firstUncaughtError = error;\n }\n return null;\n }\n\n function hasCapturedError(fiber) {\n // TODO: capturedErrors should store the boundary instance, to avoid needing\n // to check the alternate.\n return capturedErrors !== null && (capturedErrors.has(fiber) || fiber.alternate !== null && capturedErrors.has(fiber.alternate));\n }\n\n function isFailedBoundary(fiber) {\n // TODO: failedBoundaries should store the boundary instance, to avoid\n // needing to check the alternate.\n return failedBoundaries !== null && (failedBoundaries.has(fiber) || fiber.alternate !== null && failedBoundaries.has(fiber.alternate));\n }\n\n function commitErrorHandling(effectfulFiber) {\n var capturedError = void 0;\n if (capturedErrors !== null) {\n capturedError = capturedErrors.get(effectfulFiber);\n capturedErrors['delete'](effectfulFiber);\n if (capturedError == null) {\n if (effectfulFiber.alternate !== null) {\n effectfulFiber = effectfulFiber.alternate;\n capturedError = capturedErrors.get(effectfulFiber);\n capturedErrors['delete'](effectfulFiber);\n }\n }\n }\n\n !(capturedError != null) ? invariant(false, 'No error for given unit of work. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n switch (effectfulFiber.tag) {\n case ClassComponent:\n var instance = effectfulFiber.stateNode;\n\n var info = {\n componentStack: capturedError.componentStack\n };\n\n // Allow the boundary to handle the error, usually by scheduling\n // an update to itself\n instance.componentDidCatch(capturedError.error, info);\n return;\n case HostRoot:\n if (firstUncaughtError === null) {\n firstUncaughtError = capturedError.error;\n }\n return;\n default:\n invariant(false, 'Invalid type of work. This error is likely caused by a bug in React. Please file an issue.');\n }\n }\n\n function unwindContexts(from, to) {\n var node = from;\n while (node !== null) {\n switch (node.tag) {\n case ClassComponent:\n popContextProvider(node);\n break;\n case HostComponent:\n popHostContext(node);\n break;\n case HostRoot:\n popHostContainer(node);\n break;\n case HostPortal:\n popHostContainer(node);\n break;\n }\n if (node === to || node.alternate === to) {\n stopFailedWorkTimer(node);\n break;\n } else {\n stopWorkTimer(node);\n }\n node = node['return'];\n }\n }\n\n function computeAsyncExpiration() {\n // Given the current clock time, returns an expiration time. We use rounding\n // to batch like updates together.\n // Should complete within ~1000ms. 1200ms max.\n var currentTime = recalculateCurrentTime();\n var expirationMs = 1000;\n var bucketSizeMs = 200;\n return computeExpirationBucket(currentTime, expirationMs, bucketSizeMs);\n }\n\n function computeExpirationForFiber(fiber) {\n var expirationTime = void 0;\n if (expirationContext !== NoWork) {\n // An explicit expiration context was set;\n expirationTime = expirationContext;\n } else if (isWorking) {\n if (isCommitting) {\n // Updates that occur during the commit phase should have sync priority\n // by default.\n expirationTime = Sync;\n } else {\n // Updates during the render phase should expire at the same time as\n // the work that is being rendered.\n expirationTime = nextRenderExpirationTime;\n }\n } else {\n // No explicit expiration context was set, and we're not currently\n // performing work. Calculate a new expiration time.\n if (useSyncScheduling && !(fiber.internalContextTag & AsyncUpdates)) {\n // This is a sync update\n expirationTime = Sync;\n } else {\n // This is an async update\n expirationTime = computeAsyncExpiration();\n }\n }\n return expirationTime;\n }\n\n function scheduleWork(fiber, expirationTime) {\n return scheduleWorkImpl(fiber, expirationTime, false);\n }\n\n function scheduleWorkImpl(fiber, expirationTime, isErrorRecovery) {\n recordScheduleUpdate();\n\n {\n if (!isErrorRecovery && fiber.tag === ClassComponent) {\n var instance = fiber.stateNode;\n warnAboutInvalidUpdates(instance);\n }\n }\n\n var node = fiber;\n while (node !== null) {\n // Walk the parent path to the root and update each node's\n // expiration time.\n if (node.expirationTime === NoWork || node.expirationTime > expirationTime) {\n node.expirationTime = expirationTime;\n }\n if (node.alternate !== null) {\n if (node.alternate.expirationTime === NoWork || node.alternate.expirationTime > expirationTime) {\n node.alternate.expirationTime = expirationTime;\n }\n }\n if (node['return'] === null) {\n if (node.tag === HostRoot) {\n var root = node.stateNode;\n if (!isWorking && root === nextRoot && expirationTime <= nextRenderExpirationTime) {\n // Restart the root from the top.\n if (nextUnitOfWork !== null) {\n // This is an interruption. (Used for performance tracking.)\n interruptedBy = fiber;\n }\n nextRoot = null;\n nextUnitOfWork = null;\n nextRenderExpirationTime = NoWork;\n }\n requestWork(root, expirationTime);\n } else {\n {\n if (!isErrorRecovery && fiber.tag === ClassComponent) {\n warnAboutUpdateOnUnmounted(fiber);\n }\n }\n return;\n }\n }\n node = node['return'];\n }\n }\n\n function scheduleErrorRecovery(fiber) {\n scheduleWorkImpl(fiber, Sync, true);\n }\n\n function recalculateCurrentTime() {\n // Subtract initial time so it fits inside 32bits\n var ms = now() - startTime;\n mostRecentCurrentTime = msToExpirationTime(ms);\n return mostRecentCurrentTime;\n }\n\n function deferredUpdates(fn) {\n var previousExpirationContext = expirationContext;\n expirationContext = computeAsyncExpiration();\n try {\n return fn();\n } finally {\n expirationContext = previousExpirationContext;\n }\n }\n\n function syncUpdates(fn) {\n var previousExpirationContext = expirationContext;\n expirationContext = Sync;\n try {\n return fn();\n } finally {\n expirationContext = previousExpirationContext;\n }\n }\n\n // TODO: Everything below this is written as if it has been lifted to the\n // renderers. I'll do this in a follow-up.\n\n // Linked-list of roots\n var firstScheduledRoot = null;\n var lastScheduledRoot = null;\n\n var isCallbackScheduled = false;\n var isRendering = false;\n var nextFlushedRoot = null;\n var nextFlushedExpirationTime = NoWork;\n var deadlineDidExpire = false;\n var hasUnhandledError = false;\n var unhandledError = null;\n var deadline = null;\n\n var isBatchingUpdates = false;\n var isUnbatchingUpdates = false;\n\n // Use these to prevent an infinite loop of nested updates\n var NESTED_UPDATE_LIMIT = 1000;\n var nestedUpdateCount = 0;\n\n var timeHeuristicForUnitOfWork = 1;\n\n // requestWork is called by the scheduler whenever a root receives an update.\n // It's up to the renderer to call renderRoot at some point in the future.\n function requestWork(root, expirationTime) {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n invariant(false, 'Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.');\n }\n\n // Add the root to the schedule.\n // Check if this root is already part of the schedule.\n if (root.nextScheduledRoot === null) {\n // This root is not already scheduled. Add it.\n root.remainingExpirationTime = expirationTime;\n if (lastScheduledRoot === null) {\n firstScheduledRoot = lastScheduledRoot = root;\n root.nextScheduledRoot = root;\n } else {\n lastScheduledRoot.nextScheduledRoot = root;\n lastScheduledRoot = root;\n lastScheduledRoot.nextScheduledRoot = firstScheduledRoot;\n }\n } else {\n // This root is already scheduled, but its priority may have increased.\n var remainingExpirationTime = root.remainingExpirationTime;\n if (remainingExpirationTime === NoWork || expirationTime < remainingExpirationTime) {\n // Update the priority.\n root.remainingExpirationTime = expirationTime;\n }\n }\n\n if (isRendering) {\n // Prevent reentrancy. Remaining work will be scheduled at the end of\n // the currently rendering batch.\n return;\n }\n\n if (isBatchingUpdates) {\n // Flush work at the end of the batch.\n if (isUnbatchingUpdates) {\n // ...unless we're inside unbatchedUpdates, in which case we should\n // flush it now.\n performWorkOnRoot(root, Sync);\n }\n return;\n }\n\n // TODO: Get rid of Sync and use current time?\n if (expirationTime === Sync) {\n performWork(Sync, null);\n } else if (!isCallbackScheduled) {\n isCallbackScheduled = true;\n startRequestCallbackTimer();\n scheduleDeferredCallback(performAsyncWork);\n }\n }\n\n function findHighestPriorityRoot() {\n var highestPriorityWork = NoWork;\n var highestPriorityRoot = null;\n\n if (lastScheduledRoot !== null) {\n var previousScheduledRoot = lastScheduledRoot;\n var root = firstScheduledRoot;\n while (root !== null) {\n var remainingExpirationTime = root.remainingExpirationTime;\n if (remainingExpirationTime === NoWork) {\n // This root no longer has work. Remove it from the scheduler.\n\n // TODO: This check is redudant, but Flow is confused by the branch\n // below where we set lastScheduledRoot to null, even though we break\n // from the loop right after.\n !(previousScheduledRoot !== null && lastScheduledRoot !== null) ? invariant(false, 'Should have a previous and last root. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n if (root === root.nextScheduledRoot) {\n // This is the only root in the list.\n root.nextScheduledRoot = null;\n firstScheduledRoot = lastScheduledRoot = null;\n break;\n } else if (root === firstScheduledRoot) {\n // This is the first root in the list.\n var next = root.nextScheduledRoot;\n firstScheduledRoot = next;\n lastScheduledRoot.nextScheduledRoot = next;\n root.nextScheduledRoot = null;\n } else if (root === lastScheduledRoot) {\n // This is the last root in the list.\n lastScheduledRoot = previousScheduledRoot;\n lastScheduledRoot.nextScheduledRoot = firstScheduledRoot;\n root.nextScheduledRoot = null;\n break;\n } else {\n previousScheduledRoot.nextScheduledRoot = root.nextScheduledRoot;\n root.nextScheduledRoot = null;\n }\n root = previousScheduledRoot.nextScheduledRoot;\n } else {\n if (highestPriorityWork === NoWork || remainingExpirationTime < highestPriorityWork) {\n // Update the priority, if it's higher\n highestPriorityWork = remainingExpirationTime;\n highestPriorityRoot = root;\n }\n if (root === lastScheduledRoot) {\n break;\n }\n previousScheduledRoot = root;\n root = root.nextScheduledRoot;\n }\n }\n }\n\n // If the next root is the same as the previous root, this is a nested\n // update. To prevent an infinite loop, increment the nested update count.\n var previousFlushedRoot = nextFlushedRoot;\n if (previousFlushedRoot !== null && previousFlushedRoot === highestPriorityRoot) {\n nestedUpdateCount++;\n } else {\n // Reset whenever we switch roots.\n nestedUpdateCount = 0;\n }\n nextFlushedRoot = highestPriorityRoot;\n nextFlushedExpirationTime = highestPriorityWork;\n }\n\n function performAsyncWork(dl) {\n performWork(NoWork, dl);\n }\n\n function performWork(minExpirationTime, dl) {\n deadline = dl;\n\n // Keep working on roots until there's no more work, or until the we reach\n // the deadline.\n findHighestPriorityRoot();\n\n if (enableUserTimingAPI && deadline !== null) {\n var didExpire = nextFlushedExpirationTime < recalculateCurrentTime();\n stopRequestCallbackTimer(didExpire);\n }\n\n while (nextFlushedRoot !== null && nextFlushedExpirationTime !== NoWork && (minExpirationTime === NoWork || nextFlushedExpirationTime <= minExpirationTime) && !deadlineDidExpire) {\n performWorkOnRoot(nextFlushedRoot, nextFlushedExpirationTime);\n // Find the next highest priority work.\n findHighestPriorityRoot();\n }\n\n // We're done flushing work. Either we ran out of time in this callback,\n // or there's no more work left with sufficient priority.\n\n // If we're inside a callback, set this to false since we just completed it.\n if (deadline !== null) {\n isCallbackScheduled = false;\n }\n // If there's work left over, schedule a new callback.\n if (nextFlushedRoot !== null && !isCallbackScheduled) {\n isCallbackScheduled = true;\n startRequestCallbackTimer();\n scheduleDeferredCallback(performAsyncWork);\n }\n\n // Clean-up.\n deadline = null;\n deadlineDidExpire = false;\n nestedUpdateCount = 0;\n\n if (hasUnhandledError) {\n var _error4 = unhandledError;\n unhandledError = null;\n hasUnhandledError = false;\n throw _error4;\n }\n }\n\n function performWorkOnRoot(root, expirationTime) {\n !!isRendering ? invariant(false, 'performWorkOnRoot was called recursively. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n isRendering = true;\n\n // Check if this is async work or sync/expired work.\n // TODO: Pass current time as argument to renderRoot, commitRoot\n if (expirationTime <= recalculateCurrentTime()) {\n // Flush sync work.\n var finishedWork = root.finishedWork;\n if (finishedWork !== null) {\n // This root is already complete. We can commit it.\n root.finishedWork = null;\n root.remainingExpirationTime = commitRoot(finishedWork);\n } else {\n root.finishedWork = null;\n finishedWork = renderRoot(root, expirationTime);\n if (finishedWork !== null) {\n // We've completed the root. Commit it.\n root.remainingExpirationTime = commitRoot(finishedWork);\n }\n }\n } else {\n // Flush async work.\n var _finishedWork = root.finishedWork;\n if (_finishedWork !== null) {\n // This root is already complete. We can commit it.\n root.finishedWork = null;\n root.remainingExpirationTime = commitRoot(_finishedWork);\n } else {\n root.finishedWork = null;\n _finishedWork = renderRoot(root, expirationTime);\n if (_finishedWork !== null) {\n // We've completed the root. Check the deadline one more time\n // before committing.\n if (!shouldYield()) {\n // Still time left. Commit the root.\n root.remainingExpirationTime = commitRoot(_finishedWork);\n } else {\n // There's no time left. Mark this root as complete. We'll come\n // back and commit it later.\n root.finishedWork = _finishedWork;\n }\n }\n }\n }\n\n isRendering = false;\n }\n\n // When working on async work, the reconciler asks the renderer if it should\n // yield execution. For DOM, we implement this with requestIdleCallback.\n function shouldYield() {\n if (deadline === null) {\n return false;\n }\n if (deadline.timeRemaining() > timeHeuristicForUnitOfWork) {\n return false;\n }\n deadlineDidExpire = true;\n return true;\n }\n\n // TODO: Not happy about this hook. Conceptually, renderRoot should return a\n // tuple of (isReadyForCommit, didError, error)\n function onUncaughtError(error) {\n !(nextFlushedRoot !== null) ? invariant(false, 'Should be working on a root. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n // Unschedule this root so we don't work on it again until there's\n // another update.\n nextFlushedRoot.remainingExpirationTime = NoWork;\n if (!hasUnhandledError) {\n hasUnhandledError = true;\n unhandledError = error;\n }\n }\n\n // TODO: Batching should be implemented at the renderer level, not inside\n // the reconciler.\n function batchedUpdates(fn, a) {\n var previousIsBatchingUpdates = isBatchingUpdates;\n isBatchingUpdates = true;\n try {\n return fn(a);\n } finally {\n isBatchingUpdates = previousIsBatchingUpdates;\n if (!isBatchingUpdates && !isRendering) {\n performWork(Sync, null);\n }\n }\n }\n\n // TODO: Batching should be implemented at the renderer level, not inside\n // the reconciler.\n function unbatchedUpdates(fn) {\n if (isBatchingUpdates && !isUnbatchingUpdates) {\n isUnbatchingUpdates = true;\n try {\n return fn();\n } finally {\n isUnbatchingUpdates = false;\n }\n }\n return fn();\n }\n\n // TODO: Batching should be implemented at the renderer level, not within\n // the reconciler.\n function flushSync(fn) {\n var previousIsBatchingUpdates = isBatchingUpdates;\n isBatchingUpdates = true;\n try {\n return syncUpdates(fn);\n } finally {\n isBatchingUpdates = previousIsBatchingUpdates;\n !!isRendering ? invariant(false, 'flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.') : void 0;\n performWork(Sync, null);\n }\n }\n\n return {\n computeAsyncExpiration: computeAsyncExpiration,\n computeExpirationForFiber: computeExpirationForFiber,\n scheduleWork: scheduleWork,\n batchedUpdates: batchedUpdates,\n unbatchedUpdates: unbatchedUpdates,\n flushSync: flushSync,\n deferredUpdates: deferredUpdates\n };\n};\n\n{\n var didWarnAboutNestedUpdates = false;\n}\n\n// 0 is PROD, 1 is DEV.\n// Might add PROFILE later.\n\n\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) {\n return emptyObject;\n }\n\n var fiber = get(parentComponent);\n var parentContext = findCurrentUnmaskedContext(fiber);\n return isContextProvider(fiber) ? processChildContext(fiber, parentContext) : parentContext;\n}\n\nvar ReactFiberReconciler$1 = function (config) {\n var getPublicInstance = config.getPublicInstance;\n\n var _ReactFiberScheduler = ReactFiberScheduler(config),\n computeAsyncExpiration = _ReactFiberScheduler.computeAsyncExpiration,\n computeExpirationForFiber = _ReactFiberScheduler.computeExpirationForFiber,\n scheduleWork = _ReactFiberScheduler.scheduleWork,\n batchedUpdates = _ReactFiberScheduler.batchedUpdates,\n unbatchedUpdates = _ReactFiberScheduler.unbatchedUpdates,\n flushSync = _ReactFiberScheduler.flushSync,\n deferredUpdates = _ReactFiberScheduler.deferredUpdates;\n\n function scheduleTopLevelUpdate(current, element, callback) {\n {\n if (ReactDebugCurrentFiber.phase === 'render' && ReactDebugCurrentFiber.current !== null && !didWarnAboutNestedUpdates) {\n didWarnAboutNestedUpdates = true;\n warning(false, 'Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(ReactDebugCurrentFiber.current) || 'Unknown');\n }\n }\n\n callback = callback === undefined ? null : callback;\n {\n warning(callback === null || typeof callback === 'function', 'render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n }\n\n var expirationTime = void 0;\n // Check if the top-level element is an async wrapper component. If so,\n // treat updates to the root as async. This is a bit weird but lets us\n // avoid a separate `renderAsync` API.\n if (enableAsyncSubtreeAPI && element != null && element.type != null && element.type.prototype != null && element.type.prototype.unstable_isAsyncReactComponent === true) {\n expirationTime = computeAsyncExpiration();\n } else {\n expirationTime = computeExpirationForFiber(current);\n }\n\n var update = {\n expirationTime: expirationTime,\n partialState: { element: element },\n callback: callback,\n isReplace: false,\n isForced: false,\n nextCallback: null,\n next: null\n };\n insertUpdateIntoFiber(current, update);\n scheduleWork(current, expirationTime);\n }\n\n function findHostInstance(fiber) {\n var hostFiber = findCurrentHostFiber(fiber);\n if (hostFiber === null) {\n return null;\n }\n return hostFiber.stateNode;\n }\n\n return {\n createContainer: function (containerInfo, hydrate) {\n return createFiberRoot(containerInfo, hydrate);\n },\n updateContainer: function (element, container, parentComponent, callback) {\n // TODO: If this is a nested container, this won't be the root.\n var current = container.current;\n\n {\n if (ReactFiberInstrumentation_1.debugTool) {\n if (current.alternate === null) {\n ReactFiberInstrumentation_1.debugTool.onMountContainer(container);\n } else if (element === null) {\n ReactFiberInstrumentation_1.debugTool.onUnmountContainer(container);\n } else {\n ReactFiberInstrumentation_1.debugTool.onUpdateContainer(container);\n }\n }\n }\n\n var context = getContextForSubtree(parentComponent);\n if (container.context === null) {\n container.context = context;\n } else {\n container.pendingContext = context;\n }\n\n scheduleTopLevelUpdate(current, element, callback);\n },\n\n\n batchedUpdates: batchedUpdates,\n\n unbatchedUpdates: unbatchedUpdates,\n\n deferredUpdates: deferredUpdates,\n\n flushSync: flushSync,\n\n getPublicRootInstance: function (container) {\n var containerFiber = container.current;\n if (!containerFiber.child) {\n return null;\n }\n switch (containerFiber.child.tag) {\n case HostComponent:\n return getPublicInstance(containerFiber.child.stateNode);\n default:\n return containerFiber.child.stateNode;\n }\n },\n\n\n findHostInstance: findHostInstance,\n\n findHostInstanceWithNoPortals: function (fiber) {\n var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n if (hostFiber === null) {\n return null;\n }\n return hostFiber.stateNode;\n },\n injectIntoDevTools: function (devToolsConfig) {\n var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n\n return injectInternals(_assign({}, devToolsConfig, {\n findHostInstanceByFiber: function (fiber) {\n return findHostInstance(fiber);\n },\n findFiberByHostInstance: function (instance) {\n if (!findFiberByHostInstance) {\n // Might not be implemented by the renderer.\n return null;\n }\n return findFiberByHostInstance(instance);\n }\n }));\n }\n };\n};\n\nvar ReactFiberReconciler$2 = Object.freeze({\n\tdefault: ReactFiberReconciler$1\n});\n\nvar ReactFiberReconciler$3 = ( ReactFiberReconciler$2 && ReactFiberReconciler$1 ) || ReactFiberReconciler$2;\n\n// TODO: bundle Flow types with the package.\n\n\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar reactReconciler = ReactFiberReconciler$3['default'] ? ReactFiberReconciler$3['default'] : ReactFiberReconciler$3;\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.1.2';\n\n// a requestAnimationFrame, storing the time for the start of the frame, then\n// scheduling a postMessage which gets scheduled after paint. Within the\n// postMessage handler do as much work as possible until time + frame rate.\n// By separating the idle call into a separate event tick we ensure that\n// layout, paint and other browser work is counted against the available time.\n// The frame rate is dynamically adjusted.\n\n{\n if (ExecutionEnvironment.canUseDOM && typeof requestAnimationFrame !== 'function') {\n warning(false, 'React depends on requestAnimationFrame. Make sure that you load a ' + 'polyfill in older browsers. http://fb.me/react-polyfills');\n }\n}\n\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nvar now = void 0;\nif (hasNativePerformanceNow) {\n now = function () {\n return performance.now();\n };\n} else {\n now = function () {\n return Date.now();\n };\n}\n\n// TODO: There's no way to cancel, because Fiber doesn't atm.\nvar rIC = void 0;\n\nif (!ExecutionEnvironment.canUseDOM) {\n rIC = function (frameCallback) {\n setTimeout(function () {\n frameCallback({\n timeRemaining: function () {\n return Infinity;\n }\n });\n });\n return 0;\n };\n} else if (typeof requestIdleCallback !== 'function') {\n // Polyfill requestIdleCallback.\n\n var scheduledRICCallback = null;\n\n var isIdleScheduled = false;\n var isAnimationFrameScheduled = false;\n\n var frameDeadline = 0;\n // We start out assuming that we run at 30fps but then the heuristic tracking\n // will adjust this value to a faster fps if we get more frequent animation\n // frames.\n var previousFrameTime = 33;\n var activeFrameTime = 33;\n\n var frameDeadlineObject;\n if (hasNativePerformanceNow) {\n frameDeadlineObject = {\n timeRemaining: function () {\n // We assume that if we have a performance timer that the rAF callback\n // gets a performance timer value. Not sure if this is always true.\n return frameDeadline - performance.now();\n }\n };\n } else {\n frameDeadlineObject = {\n timeRemaining: function () {\n // Fallback to Date.now()\n return frameDeadline - Date.now();\n }\n };\n }\n\n // We use the postMessage trick to defer idle work until after the repaint.\n var messageKey = '__reactIdleCallback$' + Math.random().toString(36).slice(2);\n var idleTick = function (event) {\n if (event.source !== window || event.data !== messageKey) {\n return;\n }\n isIdleScheduled = false;\n var callback = scheduledRICCallback;\n scheduledRICCallback = null;\n if (callback !== null) {\n callback(frameDeadlineObject);\n }\n };\n // Assumes that we have addEventListener in this environment. Might need\n // something better for old IE.\n window.addEventListener('message', idleTick, false);\n\n var animationTick = function (rafTime) {\n isAnimationFrameScheduled = false;\n var nextFrameTime = rafTime - frameDeadline + activeFrameTime;\n if (nextFrameTime < activeFrameTime && previousFrameTime < activeFrameTime) {\n if (nextFrameTime < 8) {\n // Defensive coding. We don't support higher frame rates than 120hz.\n // If we get lower than that, it is probably a bug.\n nextFrameTime = 8;\n }\n // If one frame goes long, then the next one can be short to catch up.\n // If two frames are short in a row, then that's an indication that we\n // actually have a higher frame rate than what we're currently optimizing.\n // We adjust our heuristic dynamically accordingly. For example, if we're\n // running on 120hz display or 90hz VR display.\n // Take the max of the two in case one of them was an anomaly due to\n // missed frame deadlines.\n activeFrameTime = nextFrameTime < previousFrameTime ? previousFrameTime : nextFrameTime;\n } else {\n previousFrameTime = nextFrameTime;\n }\n frameDeadline = rafTime + activeFrameTime;\n if (!isIdleScheduled) {\n isIdleScheduled = true;\n window.postMessage(messageKey, '*');\n }\n };\n\n rIC = function (callback) {\n // This assumes that we only schedule one callback at a time because that's\n // how Fiber uses it.\n scheduledRICCallback = callback;\n if (!isAnimationFrameScheduled) {\n // If rAF didn't already schedule one, we need to schedule a frame.\n // TODO: If this rAF doesn't materialize because the browser throttles, we\n // might want to still have setTimeout trigger rIC as a backup to ensure\n // that we keep performing work.\n isAnimationFrameScheduled = true;\n requestAnimationFrame(animationTick);\n }\n return 0;\n };\n} else {\n rIC = requestIdleCallback;\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\n// isAttributeNameSafe() is currently duplicated in DOMMarkupOperations.\n// TODO: Find a better place for this.\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n return true;\n }\n if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n {\n warning(false, 'Invalid attribute name: `%s`', attributeName);\n }\n return false;\n}\n\n// shouldIgnoreValue() is currently duplicated in DOMMarkupOperations.\n// TODO: Find a better place for this.\nfunction shouldIgnoreValue(propertyInfo, value) {\n return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\n\n\n\n\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected) {\n {\n var propertyInfo = getPropertyInfo(name);\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod || propertyInfo.mustUseProperty) {\n return node[propertyInfo.propertyName];\n } else {\n var attributeName = propertyInfo.attributeName;\n\n var stringValue = null;\n\n if (propertyInfo.hasOverloadedBooleanValue) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n if (value === '') {\n return true;\n }\n if (shouldIgnoreValue(propertyInfo, expected)) {\n return value;\n }\n if (value === '' + expected) {\n return expected;\n }\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldIgnoreValue(propertyInfo, expected)) {\n // We had an attribute but shouldn't have had one, so read it\n // for the error message.\n return node.getAttribute(attributeName);\n }\n if (propertyInfo.hasBooleanValue) {\n // If this was a boolean, it doesn't matter what the value is\n // the fact that we have it is the same as the expected.\n return expected;\n }\n // Even if this property uses a namespace we use getAttribute\n // because we assume its namespaced name is the same as our config.\n // To use getAttributeNS we need the local name which we don't have\n // in our config atm.\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldIgnoreValue(propertyInfo, expected)) {\n return stringValue === null ? expected : stringValue;\n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n }\n}\n\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\nfunction getValueForAttribute(node, name, expected) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n var value = node.getAttribute(name);\n if (value === '' + expected) {\n return expected;\n }\n return value;\n }\n}\n\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\nfunction setValueForProperty(node, name, value) {\n var propertyInfo = getPropertyInfo(name);\n\n if (propertyInfo && shouldSetAttribute(name, value)) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(propertyInfo, value)) {\n deleteValueForProperty(node, name);\n return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\n var attributeName = propertyInfo.attributeName;\n var namespace = propertyInfo.attributeNamespace;\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n if (namespace) {\n node.setAttributeNS(namespace, attributeName, '' + value);\n } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n node.setAttribute(attributeName, '');\n } else {\n node.setAttribute(attributeName, '' + value);\n }\n }\n } else {\n setValueForAttribute(node, name, shouldSetAttribute(name, value) ? value : null);\n return;\n }\n\n {\n \n }\n}\n\nfunction setValueForAttribute(node, name, value) {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n\n {\n \n }\n}\n\n/**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\nfunction deleteValueForAttribute(node, name) {\n node.removeAttribute(name);\n}\n\n/**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\nfunction deleteValueForProperty(node, name) {\n var propertyInfo = getPropertyInfo(name);\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (propertyInfo.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else {\n node.removeAttribute(name);\n }\n}\n\nvar ReactControlledValuePropTypes = {\n checkPropTypes: null\n};\n\n{\n var hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n };\n\n var propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n };\n\n /**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\n ReactControlledValuePropTypes.checkPropTypes = function (tagName, props, getStack) {\n checkPropTypes(propTypes, props, 'prop', tagName, getStack);\n };\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar getCurrentFiberOwnerName$2 = ReactDebugCurrentFiber.getCurrentFiberOwnerName;\nvar getCurrentFiberStackAddendum$3 = ReactDebugCurrentFiber.getCurrentFiberStackAddendum;\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\nfunction getHostProps(element, props) {\n var node = element;\n var value = props.value;\n var checked = props.checked;\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : node._wrapperState.initialValue,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n\n return hostProps;\n}\n\nfunction initWrapperState(element, props) {\n {\n ReactControlledValuePropTypes.checkPropTypes('input', props, getCurrentFiberStackAddendum$3);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerName$2() || 'A component', props.type);\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerName$2() || 'A component', props.type);\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n var node = element;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n controlled: isControlled(props)\n };\n}\n\nfunction updateWrapper(element, props) {\n var node = element;\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n warning(false, 'A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components%s', props.type, getCurrentFiberStackAddendum$3());\n didWarnUncontrolledToControlled = true;\n }\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n warning(false, 'A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components%s', props.type, getCurrentFiberStackAddendum$3());\n didWarnControlledToUncontrolled = true;\n }\n }\n\n var checked = props.checked;\n if (checked != null) {\n setValueForProperty(node, 'checked', checked || false);\n }\n\n var value = props.value;\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value) || 0;\n\n if (\n // eslint-disable-next-line\n value != valueAsNumber ||\n // eslint-disable-next-line\n value == valueAsNumber && node.value != value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else if (node.value !== '' + value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\n\nfunction postMountWrapper(element, props) {\n var node = element;\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n}\n\nfunction restoreControlledState$1(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form. It might not even be in the\n // document. Let's just use the local `querySelectorAll` to ensure we don't\n // miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherProps = getFiberCurrentPropsFromNode$1(otherNode);\n !otherProps ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n updateWrapper(otherNode, otherProps);\n }\n }\n}\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n // We can silently skip them because invalid DOM nesting warning\n // catches these cases in Fiber.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\nfunction validateProps(element, props) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n {\n warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n }\n}\n\nfunction postMountWrapper$1(element, props) {\n // value=\"\" should make a value attribute (#6219)\n if (props.value != null) {\n element.setAttribute('value', props.value);\n }\n}\n\nfunction getHostProps$1(element, props) {\n var hostProps = _assign({ children: undefined }, props);\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar getCurrentFiberOwnerName$3 = ReactDebugCurrentFiber.getCurrentFiberOwnerName;\nvar getCurrentFiberStackAddendum$4 = ReactDebugCurrentFiber.getCurrentFiberStackAddendum;\n\n\n{\n var didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerName$3();\n if (ownerName) {\n return '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n */\nfunction checkSelectPropTypes(props) {\n ReactControlledValuePropTypes.checkPropTypes('select', props, getCurrentFiberStackAddendum$4);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n } else if (!props.multiple && isArray) {\n warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n }\n }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n var options = node.options;\n\n if (multiple) {\n var selectedValues = propValue;\n var selectedValue = {};\n for (var i = 0; i < selectedValues.length; i++) {\n // Prefix to avoid chaos with special keys.\n selectedValue['$' + selectedValues[i]] = true;\n }\n for (var _i = 0; _i < options.length; _i++) {\n var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n if (options[_i].selected !== selected) {\n options[_i].selected = selected;\n }\n if (selected && setDefaultSelected) {\n options[_i].defaultSelected = true;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n var _selectedValue = '' + propValue;\n var defaultSelected = null;\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n if (options[_i2].value === _selectedValue) {\n options[_i2].selected = true;\n if (setDefaultSelected) {\n options[_i2].defaultSelected = true;\n }\n return;\n }\n if (defaultSelected === null && !options[_i2].disabled) {\n defaultSelected = options[_i2];\n }\n }\n if (defaultSelected !== null) {\n defaultSelected.selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\nfunction getHostProps$2(element, props) {\n return _assign({}, props, {\n value: undefined\n });\n}\n\nfunction initWrapperState$1(element, props) {\n var node = element;\n {\n checkSelectPropTypes(props);\n }\n\n var value = props.value;\n node._wrapperState = {\n initialValue: value != null ? value : props.defaultValue,\n wasMultiple: !!props.multiple\n };\n\n {\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n didWarnValueDefaultValue$1 = true;\n }\n }\n}\n\nfunction postMountWrapper$2(element, props) {\n var node = element;\n node.multiple = !!props.multiple;\n var value = props.value;\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n }\n}\n\nfunction postUpdateWrapper(element, props) {\n var node = element;\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n node._wrapperState.initialValue = undefined;\n\n var wasMultiple = node._wrapperState.wasMultiple;\n node._wrapperState.wasMultiple = !!props.multiple;\n\n var value = props.value;\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (wasMultiple !== !!props.multiple) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n }\n }\n}\n\nfunction restoreControlledState$2(element, props) {\n var node = element;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n }\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar getCurrentFiberStackAddendum$5 = ReactDebugCurrentFiber.getCurrentFiberStackAddendum;\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\n\nfunction getHostProps$3(element, props) {\n var node = element;\n !(props.dangerouslySetInnerHTML == null) ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n // solution. The value can be a boolean or object so that's why it's forced\n // to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + node._wrapperState.initialValue\n });\n\n return hostProps;\n}\n\nfunction initWrapperState$2(element, props) {\n var node = element;\n {\n ReactControlledValuePropTypes.checkPropTypes('textarea', props, getCurrentFiberStackAddendum$5);\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n didWarnValDefaultVal = true;\n }\n }\n\n var value = props.value;\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n {\n warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n }\n !(defaultValue == null) ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? invariant(false, '<textarea> can only have at most one child.') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n node._wrapperState = {\n initialValue: '' + initialValue\n };\n}\n\nfunction updateWrapper$1(element, props) {\n var node = element;\n var value = props.value;\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n}\n\nfunction postMountWrapper$3(element, props) {\n var node = element;\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === node._wrapperState.initialValue) {\n node.value = textContent;\n }\n}\n\nfunction restoreControlledState$3(element, props) {\n // DOM component is still mounted; update\n updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE$1 = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nvar Namespaces = {\n html: HTML_NAMESPACE$1,\n mathml: MATH_NAMESPACE,\n svg: SVG_NAMESPACE\n};\n\n// Assumes there is no parent namespace.\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n case 'math':\n return MATH_NAMESPACE;\n default:\n return HTML_NAMESPACE$1;\n }\n}\n\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE$1) {\n // No (or default) parent namespace: potential entry point.\n return getIntrinsicNamespace(type);\n }\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n // We're leaving SVG.\n return HTML_NAMESPACE$1;\n }\n // By default, pass namespace below.\n return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer = void 0;\n\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n\n if (node.namespaceURI === Namespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n if (node.nodeType === TEXT_NODE) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nvar setTextContent$1 = setTextContent;\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nvar warnValidStyle = emptyFunction$1;\n\n{\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var warnHyphenatedStyleName = function (name, getStack) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), getStack());\n };\n\n var warnBadVendoredStyleName = function (name, getStack) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), getStack());\n };\n\n var warnStyleValueWithSemicolon = function (name, value, getStack) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n warning(false, \"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.%s', name, value.replace(badStyleValueWithSemicolonPattern, ''), getStack());\n };\n\n var warnStyleValueIsNaN = function (name, value, getStack) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, getStack());\n };\n\n var warnStyleValueIsInfinity = function (name, value, getStack) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n warning(false, '`Infinity` is an invalid value for the `%s` css style property.%s', name, getStack());\n };\n\n warnValidStyle = function (name, value, getStack) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, getStack);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, getStack);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, getStack);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value, getStack);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value, getStack);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\nfunction createDangerousStringForStyles(styles) {\n {\n var serialized = '';\n var delimiter = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (styleValue != null) {\n var isCustomProperty = styleName.indexOf('--') === 0;\n serialized += delimiter + hyphenateStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n\n delimiter = ';';\n }\n }\n return serialized || null;\n }\n}\n\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\nfunction setValueForStyles(node, styles, getStack) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styles[styleName], getStack);\n }\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\nvar HTML$1 = '__html';\n\nfunction assertValidProps(tag, props, getStack) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, getStack()) : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML$1 in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;\n }\n {\n warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.%s', getStack());\n }\n !(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getStack()) : void 0;\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n default:\n return true;\n }\n}\n\nvar ariaProperties = {\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction getStackAddendum() {\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n return stack != null ? stack : '';\n}\n\nfunction validateProperty(tagName, name) {\n if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null;\n\n // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (correctName == null) {\n warning(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.%s', name, getStackAddendum());\n warnedProperties[name] = true;\n return true;\n }\n // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== correctName) {\n warning(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?%s', name, correctName, getStackAddendum());\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;\n\n // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n }\n // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== standardName) {\n warning(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?%s', name, standardName, getStackAddendum());\n warnedProperties[name] = true;\n return true;\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n warning(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, type, getStackAddendum());\n } else if (invalidProps.length > 1) {\n warning(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, type, getStackAddendum());\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\n\nfunction getStackAddendum$1() {\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n return stack != null ? stack : '';\n}\n\nfunction validateProperties$1(type, props) {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n if (type === 'select' && props.multiple) {\n warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.%s', type, getStackAddendum$1());\n } else {\n warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', type, getStackAddendum$1());\n }\n }\n}\n\n// When adding attributes to the HTML or SVG whitelist, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n // HTML\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n 'class': 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n 'default': 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n 'for': 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n\n // SVG\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n 'in': 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n 'typeof': 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nfunction getStackAddendum$2() {\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n return stack != null ? stack : '';\n}\n\n{\n var warnedProperties$1 = {};\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var EVENT_NAME_REGEX = /^on[A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n var validateProperty$1 = function (tagName, name, value) {\n if (hasOwnProperty$1.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n if (registrationNameModules.hasOwnProperty(name)) {\n return true;\n }\n\n if (plugins.length === 0 && EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we might be in a server environment.\n // Don't check events in this case.\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n if (registrationName != null) {\n warning(false, 'Invalid event handler property `%s`. Did you mean `%s`?%s', name, registrationName, getStackAddendum$2());\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName.indexOf('on') === 0 && lowerCasedName.length > 2) {\n warning(false, 'Unknown event handler property `%s`. It will be ignored.%s', name, getStackAddendum$2());\n warnedProperties$1[name] = true;\n return true;\n }\n\n // Let the ARIA attribute hook validate ARIA attributes\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n warning(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n warning(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n warning(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n warning(false, 'Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.%s', typeof value, getStackAddendum$2());\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warning(false, 'Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.%s', name, getStackAddendum$2());\n warnedProperties$1[name] = true;\n return true;\n }\n\n var isReserved = isReservedProp(name);\n\n // Known attributes should match the casing specified in the property config.\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n if (standardName !== name) {\n warning(false, 'Invalid DOM property `%s`. Did you mean `%s`?%s', name, standardName, getStackAddendum$2());\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n warning(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.%s', name, lowerCasedName, getStackAddendum$2());\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && !shouldAttributeAcceptBooleanValue(name)) {\n if (value) {\n warning(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.%s', value, name, name, value, name, getStackAddendum$2());\n } else {\n warning(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.%s', value, name, name, value, name, name, name, getStackAddendum$2());\n }\n warnedProperties$1[name] = true;\n return true;\n }\n\n // Now that we've validated casing, do not validate\n // data types for reserved props\n if (isReserved) {\n return true;\n }\n\n // Warn when a known attribute is a bad type\n if (!shouldSetAttribute(name, value)) {\n warnedProperties$1[name] = true;\n return false;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props) {\n var unknownProps = [];\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key]);\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n if (unknownProps.length === 1) {\n warning(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior%s', unknownPropString, type, getStackAddendum$2());\n } else if (unknownProps.length > 1) {\n warning(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior%s', unknownPropString, type, getStackAddendum$2());\n }\n};\n\nfunction validateProperties$2(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n warnUnknownProperties(type, props);\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar getCurrentFiberOwnerName$1 = ReactDebugCurrentFiber.getCurrentFiberOwnerName;\nvar getCurrentFiberStackAddendum$2 = ReactDebugCurrentFiber.getCurrentFiberStackAddendum;\n\nvar didWarnInvalidHydration = false;\nvar didWarnShadyDOM = false;\n\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML = '__html';\n\nvar HTML_NAMESPACE = Namespaces.html;\n\n\nvar getStack = emptyFunction$1.thatReturns('');\n\n{\n getStack = getCurrentFiberStackAddendum$2;\n\n var warnedUnknownTags = {\n // Chrome is the only major browser not shipping <time>. But as of July\n // 2017 it intends to ship it due to widespread usage. We intentionally\n // *don't* warn for <time> even if it's unrecognized by Chrome because\n // it soon will be, and many apps have been using it anyway.\n time: true,\n // There are working polyfills for <dialog>. Let people use it.\n dialog: true\n };\n\n var validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props);\n };\n\n // HTML parsing normalizes CR and CRLF to LF.\n // It also can turn \\u0000 into \\uFFFD inside attributes.\n // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n // If we have a mismatch, it might be caused by that.\n // We will still patch up in this case but not fire the warning.\n var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n var normalizeMarkupForTextOrAttribute = function (markup) {\n var markupString = typeof markup === 'string' ? markup : '' + markup;\n return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n };\n\n var warnForTextDifference = function (serverText, clientText) {\n if (didWarnInvalidHydration) {\n return;\n }\n var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n if (normalizedServerText === normalizedClientText) {\n return;\n }\n didWarnInvalidHydration = true;\n warning(false, 'Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n };\n\n var warnForPropDifference = function (propName, serverValue, clientValue) {\n if (didWarnInvalidHydration) {\n return;\n }\n var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n if (normalizedServerValue === normalizedClientValue) {\n return;\n }\n didWarnInvalidHydration = true;\n warning(false, 'Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n };\n\n var warnForExtraAttributes = function (attributeNames) {\n if (didWarnInvalidHydration) {\n return;\n }\n didWarnInvalidHydration = true;\n var names = [];\n attributeNames.forEach(function (name) {\n names.push(name);\n });\n warning(false, 'Extra attributes from the server: %s', names);\n };\n\n var warnForInvalidEventListener = function (registrationName, listener) {\n if (listener === false) {\n warning(false, 'Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.%s', registrationName, registrationName, registrationName, getCurrentFiberStackAddendum$2());\n } else {\n warning(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.%s', registrationName, typeof listener, getCurrentFiberStackAddendum$2());\n }\n };\n\n // Parse the HTML and read it back to normalize the HTML string so that it\n // can be used for comparison.\n var normalizeHTML = function (parent, html) {\n // We could have created a separate document here to avoid\n // re-initializing custom elements if they exist. But this breaks\n // how <noscript> is being handled. So we use the same document.\n // See the discussion in https://github.com/facebook/react/pull/11157.\n var testElement = parent.namespaceURI === HTML_NAMESPACE ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n testElement.innerHTML = html;\n return testElement.innerHTML;\n };\n}\n\nfunction ensureListeningTo(rootContainerElement, registrationName) {\n var isDocumentOrFragment = rootContainerElement.nodeType === DOCUMENT_NODE || rootContainerElement.nodeType === DOCUMENT_FRAGMENT_NODE;\n var doc = isDocumentOrFragment ? rootContainerElement : rootContainerElement.ownerDocument;\n listenTo(registrationName, doc);\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trapClickOnNonInteractiveElement(node) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n // Just set it using the onclick property so that we don't have to manage any\n // bookkeeping for it. Not sure if we need to clear it when the listener is\n // removed.\n // TODO: Only do this for the relevant Safaris maybe?\n node.onclick = emptyFunction$1;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n for (var propKey in nextProps) {\n if (!nextProps.hasOwnProperty(propKey)) {\n continue;\n }\n var nextProp = nextProps[propKey];\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n }\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n setValueForStyles(domElement, nextProp, getStack);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML] : undefined;\n if (nextHtml != null) {\n setInnerHTML(domElement, nextHtml);\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string') {\n // Avoid setting initial textContent when the text is empty. In IE11 setting\n // textContent on a <textarea> will cause the placeholder to not\n // show within the <textarea> until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n if (canSetTextContent) {\n setTextContent$1(domElement, nextProp);\n }\n } else if (typeof nextProp === 'number') {\n setTextContent$1(domElement, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n // Noop\n } else if (propKey === AUTOFOCUS) {\n // We polyfill it separately on the client during commit.\n // We blacklist it here rather than in the property list because we emit it in SSR.\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if (true && typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n ensureListeningTo(rootContainerElement, propKey);\n }\n } else if (isCustomComponentTag) {\n setValueForAttribute(domElement, propKey, nextProp);\n } else if (nextProp != null) {\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n setValueForProperty(domElement, propKey, nextProp);\n }\n }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n // TODO: Handle wasCustomComponentTag\n for (var i = 0; i < updatePayload.length; i += 2) {\n var propKey = updatePayload[i];\n var propValue = updatePayload[i + 1];\n if (propKey === STYLE) {\n setValueForStyles(domElement, propValue, getStack);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n setInnerHTML(domElement, propValue);\n } else if (propKey === CHILDREN) {\n setTextContent$1(domElement, propValue);\n } else if (isCustomComponentTag) {\n if (propValue != null) {\n setValueForAttribute(domElement, propKey, propValue);\n } else {\n deleteValueForAttribute(domElement, propKey);\n }\n } else if (propValue != null) {\n setValueForProperty(domElement, propKey, propValue);\n } else {\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n deleteValueForProperty(domElement, propKey);\n }\n }\n}\n\nfunction createElement$1(type, props, rootContainerElement, parentNamespace) {\n // We create tags in the namespace of their parent container, except HTML\n var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n var domElement;\n var namespaceURI = parentNamespace;\n if (namespaceURI === HTML_NAMESPACE) {\n namespaceURI = getIntrinsicNamespace(type);\n }\n if (namespaceURI === HTML_NAMESPACE) {\n {\n var isCustomComponentTag = isCustomComponent(type, props);\n // Should this check be gated by parent namespace? Not sure we want to\n // allow <SVG> or <mATH>.\n warning(isCustomComponentTag || type === type.toLowerCase(), '<%s /> is using uppercase HTML. Always use lowercase HTML tags ' + 'in React.', type);\n }\n\n if (type === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n // This is guaranteed to yield a script element.\n var firstChild = div.firstChild;\n domElement = div.removeChild(firstChild);\n } else if (typeof props.is === 'string') {\n // $FlowIssue `createElement` should be updated for Web Components\n domElement = ownerDocument.createElement(type, { is: props.is });\n } else {\n // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n domElement = ownerDocument.createElement(type);\n }\n } else {\n domElement = ownerDocument.createElementNS(namespaceURI, type);\n }\n\n {\n if (namespaceURI === HTML_NAMESPACE) {\n if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n warnedUnknownTags[type] = true;\n warning(false, 'The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n }\n }\n }\n\n return domElement;\n}\n\nfunction createTextNode$1(text, rootContainerElement) {\n return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\n\nfunction setInitialProperties$1(domElement, tag, rawProps, rootContainerElement) {\n var isCustomComponentTag = isCustomComponent(tag, rawProps);\n {\n validatePropertiesInDevelopment(tag, rawProps);\n if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {\n warning(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerName$1() || 'A component');\n didWarnShadyDOM = true;\n }\n }\n\n // TODO: Make sure that we check isMounted before firing any of these events.\n var props;\n switch (tag) {\n case 'iframe':\n case 'object':\n trapBubbledEvent('topLoad', 'load', domElement);\n props = rawProps;\n break;\n case 'video':\n case 'audio':\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n trapBubbledEvent(event, mediaEvents[event], domElement);\n }\n }\n props = rawProps;\n break;\n case 'source':\n trapBubbledEvent('topError', 'error', domElement);\n props = rawProps;\n break;\n case 'img':\n case 'image':\n trapBubbledEvent('topError', 'error', domElement);\n trapBubbledEvent('topLoad', 'load', domElement);\n props = rawProps;\n break;\n case 'form':\n trapBubbledEvent('topReset', 'reset', domElement);\n trapBubbledEvent('topSubmit', 'submit', domElement);\n props = rawProps;\n break;\n case 'details':\n trapBubbledEvent('topToggle', 'toggle', domElement);\n props = rawProps;\n break;\n case 'input':\n initWrapperState(domElement, rawProps);\n props = getHostProps(domElement, rawProps);\n trapBubbledEvent('topInvalid', 'invalid', domElement);\n // For controlled components we always need to ensure we're listening\n // to onChange. Even if there is no listener.\n ensureListeningTo(rootContainerElement, 'onChange');\n break;\n case 'option':\n validateProps(domElement, rawProps);\n props = getHostProps$1(domElement, rawProps);\n break;\n case 'select':\n initWrapperState$1(domElement, rawProps);\n props = getHostProps$2(domElement, rawProps);\n trapBubbledEvent('topInvalid', 'invalid', domElement);\n // For controlled components we always need to ensure we're listening\n // to onChange. Even if there is no listener.\n ensureListeningTo(rootContainerElement, 'onChange');\n break;\n case 'textarea':\n initWrapperState$2(domElement, rawProps);\n props = getHostProps$3(domElement, rawProps);\n trapBubbledEvent('topInvalid', 'invalid', domElement);\n // For controlled components we always need to ensure we're listening\n // to onChange. Even if there is no listener.\n ensureListeningTo(rootContainerElement, 'onChange');\n break;\n default:\n props = rawProps;\n }\n\n assertValidProps(tag, props, getStack);\n\n setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps);\n break;\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement, rawProps);\n break;\n case 'option':\n postMountWrapper$1(domElement, rawProps);\n break;\n case 'select':\n postMountWrapper$2(domElement, rawProps);\n break;\n default:\n if (typeof props.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n break;\n }\n}\n\n// Calculate the diff between the two objects.\nfunction diffProperties$1(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n {\n validatePropertiesInDevelopment(tag, nextRawProps);\n }\n\n var updatePayload = null;\n\n var lastProps;\n var nextProps;\n switch (tag) {\n case 'input':\n lastProps = getHostProps(domElement, lastRawProps);\n nextProps = getHostProps(domElement, nextRawProps);\n updatePayload = [];\n break;\n case 'option':\n lastProps = getHostProps$1(domElement, lastRawProps);\n nextProps = getHostProps$1(domElement, nextRawProps);\n updatePayload = [];\n break;\n case 'select':\n lastProps = getHostProps$2(domElement, lastRawProps);\n nextProps = getHostProps$2(domElement, nextRawProps);\n updatePayload = [];\n break;\n case 'textarea':\n lastProps = getHostProps$3(domElement, lastRawProps);\n nextProps = getHostProps$3(domElement, nextRawProps);\n updatePayload = [];\n break;\n default:\n lastProps = lastRawProps;\n nextProps = nextRawProps;\n if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n break;\n }\n\n assertValidProps(tag, nextProps, getStack);\n\n var propKey;\n var styleName;\n var styleUpdates = null;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = lastProps[propKey];\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n styleUpdates[styleName] = '';\n }\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) {\n // Noop. This is handled by the clear text mechanism.\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n // Noop\n } else if (propKey === AUTOFOCUS) {\n // Noop. It doesn't work on updates anyway.\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" fiber pointer gets updated so we need a commit\n // to update this element.\n if (!updatePayload) {\n updatePayload = [];\n }\n } else {\n // For all other deleted properties we add it to the queue. We use\n // the whitelist in the commit phase instead.\n (updatePayload = updatePayload || []).push(propKey, null);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n if (!styleUpdates) {\n if (!updatePayload) {\n updatePayload = [];\n }\n updatePayload.push(propKey, styleUpdates);\n }\n styleUpdates = nextProp;\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML] : undefined;\n var lastHtml = lastProp ? lastProp[HTML] : undefined;\n if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n (updatePayload = updatePayload || []).push(propKey, '' + nextHtml);\n }\n } else {\n // TODO: It might be too late to clear this if we have children\n // inserted already.\n }\n } else if (propKey === CHILDREN) {\n if (lastProp !== nextProp && (typeof nextProp === 'string' || typeof nextProp === 'number')) {\n (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n // Noop\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n // We eagerly listen to this even though we haven't committed yet.\n if (true && typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n ensureListeningTo(rootContainerElement, propKey);\n }\n if (!updatePayload && lastProp !== nextProp) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" props pointer gets updated so we need a commit\n // to update this element.\n updatePayload = [];\n }\n } else {\n // For any other property we always add it to the queue and then we\n // filter it out using the whitelist during the commit.\n (updatePayload = updatePayload || []).push(propKey, nextProp);\n }\n }\n if (styleUpdates) {\n (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n }\n return updatePayload;\n}\n\n// Apply the diff.\nfunction updateProperties$1(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n var isCustomComponentTag = isCustomComponent(tag, nextRawProps);\n // Apply the diff.\n updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag);\n\n // TODO: Ensure that an update gets scheduled if any of the special props\n // changed.\n switch (tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n updateWrapper(domElement, nextRawProps);\n\n // We also check that we haven't missed a value update, such as a\n // Radio group shifting the checked value to another named radio input.\n updateValueIfChanged(domElement);\n break;\n case 'textarea':\n updateWrapper$1(domElement, nextRawProps);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n postUpdateWrapper(domElement, nextRawProps);\n break;\n }\n}\n\nfunction diffHydratedProperties$1(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n {\n var suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING$1] === true;\n var isCustomComponentTag = isCustomComponent(tag, rawProps);\n validatePropertiesInDevelopment(tag, rawProps);\n if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {\n warning(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerName$1() || 'A component');\n didWarnShadyDOM = true;\n }\n }\n\n // TODO: Make sure that we check isMounted before firing any of these events.\n switch (tag) {\n case 'iframe':\n case 'object':\n trapBubbledEvent('topLoad', 'load', domElement);\n break;\n case 'video':\n case 'audio':\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n trapBubbledEvent(event, mediaEvents[event], domElement);\n }\n }\n break;\n case 'source':\n trapBubbledEvent('topError', 'error', domElement);\n break;\n case 'img':\n case 'image':\n trapBubbledEvent('topError', 'error', domElement);\n trapBubbledEvent('topLoad', 'load', domElement);\n break;\n case 'form':\n trapBubbledEvent('topReset', 'reset', domElement);\n trapBubbledEvent('topSubmit', 'submit', domElement);\n break;\n case 'details':\n trapBubbledEvent('topToggle', 'toggle', domElement);\n break;\n case 'input':\n initWrapperState(domElement, rawProps);\n trapBubbledEvent('topInvalid', 'invalid', domElement);\n // For controlled components we always need to ensure we're listening\n // to onChange. Even if there is no listener.\n ensureListeningTo(rootContainerElement, 'onChange');\n break;\n case 'option':\n validateProps(domElement, rawProps);\n break;\n case 'select':\n initWrapperState$1(domElement, rawProps);\n trapBubbledEvent('topInvalid', 'invalid', domElement);\n // For controlled components we always need to ensure we're listening\n // to onChange. Even if there is no listener.\n ensureListeningTo(rootContainerElement, 'onChange');\n break;\n case 'textarea':\n initWrapperState$2(domElement, rawProps);\n trapBubbledEvent('topInvalid', 'invalid', domElement);\n // For controlled components we always need to ensure we're listening\n // to onChange. Even if there is no listener.\n ensureListeningTo(rootContainerElement, 'onChange');\n break;\n }\n\n assertValidProps(tag, rawProps, getStack);\n\n {\n var extraAttributeNames = new Set();\n var attributes = domElement.attributes;\n for (var i = 0; i < attributes.length; i++) {\n var name = attributes[i].name.toLowerCase();\n switch (name) {\n // Built-in SSR attribute is whitelisted\n case 'data-reactroot':\n break;\n // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n case 'value':\n break;\n case 'checked':\n break;\n case 'selected':\n break;\n default:\n // Intentionally use the original name.\n // See discussion in https://github.com/facebook/react/pull/10676.\n extraAttributeNames.add(attributes[i].name);\n }\n }\n }\n\n var updatePayload = null;\n for (var propKey in rawProps) {\n if (!rawProps.hasOwnProperty(propKey)) {\n continue;\n }\n var nextProp = rawProps[propKey];\n if (propKey === CHILDREN) {\n // For text content children we compare against textContent. This\n // might match additional HTML that is hidden when we read it using\n // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n // satisfies our requirement. Our requirement is not to produce perfect\n // HTML and attributes. Ideally we should preserve structure but it's\n // ok not to if the visible content is still enough to indicate what\n // even listeners these nodes might be wired up to.\n // TODO: Warn if there is more than a single textNode as a child.\n // TODO: Should we use domElement.firstChild.nodeValue to compare?\n if (typeof nextProp === 'string') {\n if (domElement.textContent !== nextProp) {\n if (true && !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n updatePayload = [CHILDREN, nextProp];\n }\n } else if (typeof nextProp === 'number') {\n if (domElement.textContent !== '' + nextProp) {\n if (true && !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n updatePayload = [CHILDREN, '' + nextProp];\n }\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if (true && typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n ensureListeningTo(rootContainerElement, propKey);\n }\n } else {\n // Validate that the properties correspond to their expected values.\n var serverValue;\n var propertyInfo;\n if (suppressHydrationWarning) {\n // Don't bother comparing. We're ignoring all these warnings.\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1 ||\n // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n propKey === 'value' || propKey === 'checked' || propKey === 'selected') {\n // Noop\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var rawHtml = nextProp ? nextProp[HTML] || '' : '';\n var serverHTML = domElement.innerHTML;\n var expectedHTML = normalizeHTML(domElement, rawHtml);\n if (expectedHTML !== serverHTML) {\n warnForPropDifference(propKey, serverHTML, expectedHTML);\n }\n } else if (propKey === STYLE) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames['delete'](propKey);\n var expectedStyle = createDangerousStringForStyles(nextProp);\n serverValue = domElement.getAttribute('style');\n if (expectedStyle !== serverValue) {\n warnForPropDifference(propKey, serverValue, expectedStyle);\n }\n } else if (isCustomComponentTag) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames['delete'](propKey.toLowerCase());\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n if (nextProp !== serverValue) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n } else if (shouldSetAttribute(propKey, nextProp)) {\n if (propertyInfo = getPropertyInfo(propKey)) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames['delete'](propertyInfo.attributeName);\n serverValue = getValueForProperty(domElement, propKey, nextProp);\n } else {\n var ownNamespace = parentNamespace;\n if (ownNamespace === HTML_NAMESPACE) {\n ownNamespace = getIntrinsicNamespace(tag);\n }\n if (ownNamespace === HTML_NAMESPACE) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames['delete'](propKey.toLowerCase());\n } else {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames['delete'](propKey);\n }\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n }\n\n if (nextProp !== serverValue) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n }\n }\n }\n\n {\n // $FlowFixMe - Should be inferred as not undefined.\n if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n // $FlowFixMe - Should be inferred as not undefined.\n warnForExtraAttributes(extraAttributeNames);\n }\n }\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps);\n break;\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement, rawProps);\n break;\n case 'select':\n case 'option':\n // For input and textarea we current always set the value property at\n // post mount to force it to diverge from attributes. However, for\n // option and select we don't quite do the same thing and select\n // is not resilient to the DOM state changing so we don't do that here.\n // TODO: Consider not doing this for input and textarea.\n break;\n default:\n if (typeof rawProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n break;\n }\n\n return updatePayload;\n}\n\nfunction diffHydratedText$1(textNode, text) {\n var isDifferent = textNode.nodeValue !== text;\n return isDifferent;\n}\n\nfunction warnForUnmatchedText$1(textNode, text) {\n {\n warnForTextDifference(textNode.nodeValue, text);\n }\n}\n\nfunction warnForDeletedHydratableElement$1(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n didWarnInvalidHydration = true;\n warning(false, 'Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n }\n}\n\nfunction warnForDeletedHydratableText$1(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n didWarnInvalidHydration = true;\n warning(false, 'Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n }\n}\n\nfunction warnForInsertedHydratedElement$1(parentNode, tag, props) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n didWarnInvalidHydration = true;\n warning(false, 'Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n }\n}\n\nfunction warnForInsertedHydratedText$1(parentNode, text) {\n {\n if (text === '') {\n // We expect to insert empty text nodes since they're not represented in\n // the HTML.\n // TODO: Remove this special case if we can just avoid inserting empty\n // text nodes.\n return;\n }\n if (didWarnInvalidHydration) {\n return;\n }\n didWarnInvalidHydration = true;\n warning(false, 'Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n }\n}\n\nfunction restoreControlledState(domElement, tag, props) {\n switch (tag) {\n case 'input':\n restoreControlledState$1(domElement, props);\n return;\n case 'textarea':\n restoreControlledState$3(domElement, props);\n return;\n case 'select':\n restoreControlledState$2(domElement, props);\n return;\n }\n}\n\nvar ReactDOMFiberComponent = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateTextNode: createTextNode$1,\n\tsetInitialProperties: setInitialProperties$1,\n\tdiffProperties: diffProperties$1,\n\tupdateProperties: updateProperties$1,\n\tdiffHydratedProperties: diffHydratedProperties$1,\n\tdiffHydratedText: diffHydratedText$1,\n\twarnForUnmatchedText: warnForUnmatchedText$1,\n\twarnForDeletedHydratableElement: warnForDeletedHydratableElement$1,\n\twarnForDeletedHydratableText: warnForDeletedHydratableText$1,\n\twarnForInsertedHydratedElement: warnForInsertedHydratedElement$1,\n\twarnForInsertedHydratedText: warnForInsertedHydratedText$1,\n\trestoreControlledState: restoreControlledState\n});\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar getCurrentFiberStackAddendum$6 = ReactDebugCurrentFiber.getCurrentFiberStackAddendum;\n\nvar validateDOMNesting = emptyFunction$1;\n\n{\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo$1 = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childText, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null');\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var invalidParentOrAncestor = invalidParent || invalidAncestor;\n if (!invalidParentOrAncestor) {\n return;\n }\n\n var ancestorTag = invalidParentOrAncestor.tag;\n var addendum = getCurrentFiberStackAddendum$6();\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + addendum;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info, addendum);\n } else {\n warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.%s', tagDisplayName, ancestorTag, addendum);\n }\n };\n\n // TODO: turn this into a named export\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo$1;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nvar validateDOMNesting$1 = validateDOMNesting;\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar createElement = createElement$1;\nvar createTextNode = createTextNode$1;\nvar setInitialProperties = setInitialProperties$1;\nvar diffProperties = diffProperties$1;\nvar updateProperties = updateProperties$1;\nvar diffHydratedProperties = diffHydratedProperties$1;\nvar diffHydratedText = diffHydratedText$1;\nvar warnForUnmatchedText = warnForUnmatchedText$1;\nvar warnForDeletedHydratableElement = warnForDeletedHydratableElement$1;\nvar warnForDeletedHydratableText = warnForDeletedHydratableText$1;\nvar warnForInsertedHydratedElement = warnForInsertedHydratedElement$1;\nvar warnForInsertedHydratedText = warnForInsertedHydratedText$1;\nvar updatedAncestorInfo = validateDOMNesting$1.updatedAncestorInfo;\nvar precacheFiberNode = precacheFiberNode$1;\nvar updateFiberProps = updateFiberProps$1;\n\n\n{\n var SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\n if (typeof Map !== 'function' || Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n warning(false, 'React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. http://fb.me/react-polyfills');\n }\n}\n\ninjection$3.injectFiberControlledHostComponent(ReactDOMFiberComponent);\n\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOCUMENT_NODE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n var rootElement = getReactRootElementInContainer(container);\n return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nfunction shouldAutoFocusHostComponent(type, props) {\n switch (type) {\n case 'button':\n case 'input':\n case 'select':\n case 'textarea':\n return !!props.autoFocus;\n }\n return false;\n}\n\nvar DOMRenderer = reactReconciler({\n getRootHostContext: function (rootContainerInstance) {\n var type = void 0;\n var namespace = void 0;\n var nodeType = rootContainerInstance.nodeType;\n switch (nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n {\n type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n var root = rootContainerInstance.documentElement;\n namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n break;\n }\n default:\n {\n var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n var ownNamespace = container.namespaceURI || null;\n type = container.tagName;\n namespace = getChildNamespace(ownNamespace, type);\n break;\n }\n }\n {\n var validatedTag = type.toLowerCase();\n var _ancestorInfo = updatedAncestorInfo(null, validatedTag, null);\n return { namespace: namespace, ancestorInfo: _ancestorInfo };\n }\n return namespace;\n },\n getChildHostContext: function (parentHostContext, type) {\n {\n var parentHostContextDev = parentHostContext;\n var _namespace = getChildNamespace(parentHostContextDev.namespace, type);\n var _ancestorInfo2 = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type, null);\n return { namespace: _namespace, ancestorInfo: _ancestorInfo2 };\n }\n var parentNamespace = parentHostContext;\n return getChildNamespace(parentNamespace, type);\n },\n getPublicInstance: function (instance) {\n return instance;\n },\n prepareForCommit: function () {\n eventsEnabled = isEnabled();\n selectionInformation = getSelectionInformation();\n setEnabled(false);\n },\n resetAfterCommit: function () {\n restoreSelection(selectionInformation);\n selectionInformation = null;\n setEnabled(eventsEnabled);\n eventsEnabled = null;\n },\n createInstance: function (type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n var parentNamespace = void 0;\n {\n // TODO: take namespace into account when validating.\n var hostContextDev = hostContext;\n validateDOMNesting$1(type, null, hostContextDev.ancestorInfo);\n if (typeof props.children === 'string' || typeof props.children === 'number') {\n var string = '' + props.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type, null);\n validateDOMNesting$1(null, string, ownAncestorInfo);\n }\n parentNamespace = hostContextDev.namespace;\n }\n var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n precacheFiberNode(internalInstanceHandle, domElement);\n updateFiberProps(domElement, props);\n return domElement;\n },\n appendInitialChild: function (parentInstance, child) {\n parentInstance.appendChild(child);\n },\n finalizeInitialChildren: function (domElement, type, props, rootContainerInstance) {\n setInitialProperties(domElement, type, props, rootContainerInstance);\n return shouldAutoFocusHostComponent(type, props);\n },\n prepareUpdate: function (domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n {\n var hostContextDev = hostContext;\n if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n var string = '' + newProps.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type, null);\n validateDOMNesting$1(null, string, ownAncestorInfo);\n }\n }\n return diffProperties(domElement, type, oldProps, newProps, rootContainerInstance);\n },\n shouldSetTextContent: function (type, props) {\n return type === 'textarea' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && typeof props.dangerouslySetInnerHTML.__html === 'string';\n },\n shouldDeprioritizeSubtree: function (type, props) {\n return !!props.hidden;\n },\n createTextInstance: function (text, rootContainerInstance, hostContext, internalInstanceHandle) {\n {\n var hostContextDev = hostContext;\n validateDOMNesting$1(null, text, hostContextDev.ancestorInfo);\n }\n var textNode = createTextNode(text, rootContainerInstance);\n precacheFiberNode(internalInstanceHandle, textNode);\n return textNode;\n },\n\n\n now: now,\n\n mutation: {\n commitMount: function (domElement, type, newProps, internalInstanceHandle) {\n domElement.focus();\n },\n commitUpdate: function (domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n // Update the props handle so that we know which props are the ones with\n // with current event handlers.\n updateFiberProps(domElement, newProps);\n // Apply the diff to the DOM node.\n updateProperties(domElement, updatePayload, type, oldProps, newProps);\n },\n resetTextContent: function (domElement) {\n domElement.textContent = '';\n },\n commitTextUpdate: function (textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n },\n appendChild: function (parentInstance, child) {\n parentInstance.appendChild(child);\n },\n appendChildToContainer: function (container, child) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.insertBefore(child, container);\n } else {\n container.appendChild(child);\n }\n },\n insertBefore: function (parentInstance, child, beforeChild) {\n parentInstance.insertBefore(child, beforeChild);\n },\n insertInContainerBefore: function (container, child, beforeChild) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.insertBefore(child, beforeChild);\n } else {\n container.insertBefore(child, beforeChild);\n }\n },\n removeChild: function (parentInstance, child) {\n parentInstance.removeChild(child);\n },\n removeChildFromContainer: function (container, child) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.removeChild(child);\n } else {\n container.removeChild(child);\n }\n }\n },\n\n hydration: {\n canHydrateInstance: function (instance, type, props) {\n if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n return null;\n }\n // This has now been refined to an element node.\n return instance;\n },\n canHydrateTextInstance: function (instance, text) {\n if (text === '' || instance.nodeType !== TEXT_NODE) {\n // Empty strings are not parsed by HTML so there won't be a correct match here.\n return null;\n }\n // This has now been refined to a text node.\n return instance;\n },\n getNextHydratableSibling: function (instance) {\n var node = instance.nextSibling;\n // Skip non-hydratable nodes.\n while (node && node.nodeType !== ELEMENT_NODE && node.nodeType !== TEXT_NODE) {\n node = node.nextSibling;\n }\n return node;\n },\n getFirstHydratableChild: function (parentInstance) {\n var next = parentInstance.firstChild;\n // Skip non-hydratable nodes.\n while (next && next.nodeType !== ELEMENT_NODE && next.nodeType !== TEXT_NODE) {\n next = next.nextSibling;\n }\n return next;\n },\n hydrateInstance: function (instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, instance);\n // TODO: Possibly defer this until the commit phase where all the events\n // get attached.\n updateFiberProps(instance, props);\n var parentNamespace = void 0;\n {\n var hostContextDev = hostContext;\n parentNamespace = hostContextDev.namespace;\n }\n return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance);\n },\n hydrateTextInstance: function (textInstance, text, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, textInstance);\n return diffHydratedText(textInstance, text);\n },\n didNotMatchHydratedContainerTextInstance: function (parentContainer, textInstance, text) {\n {\n warnForUnmatchedText(textInstance, text);\n }\n },\n didNotMatchHydratedTextInstance: function (parentType, parentProps, parentInstance, textInstance, text) {\n if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n warnForUnmatchedText(textInstance, text);\n }\n },\n didNotHydrateContainerInstance: function (parentContainer, instance) {\n {\n if (instance.nodeType === 1) {\n warnForDeletedHydratableElement(parentContainer, instance);\n } else {\n warnForDeletedHydratableText(parentContainer, instance);\n }\n }\n },\n didNotHydrateInstance: function (parentType, parentProps, parentInstance, instance) {\n if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n if (instance.nodeType === 1) {\n warnForDeletedHydratableElement(parentInstance, instance);\n } else {\n warnForDeletedHydratableText(parentInstance, instance);\n }\n }\n },\n didNotFindHydratableContainerInstance: function (parentContainer, type, props) {\n {\n warnForInsertedHydratedElement(parentContainer, type, props);\n }\n },\n didNotFindHydratableContainerTextInstance: function (parentContainer, text) {\n {\n warnForInsertedHydratedText(parentContainer, text);\n }\n },\n didNotFindHydratableInstance: function (parentType, parentProps, parentInstance, type, props) {\n if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n warnForInsertedHydratedElement(parentInstance, type, props);\n }\n },\n didNotFindHydratableTextInstance: function (parentType, parentProps, parentInstance, text) {\n if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n warnForInsertedHydratedText(parentInstance, text);\n }\n }\n },\n\n scheduleDeferredCallback: rIC,\n\n useSyncScheduling: !enableAsyncSchedulingByDefaultInReactDOM\n});\n\ninjection$4.injectFiberBatchedUpdates(DOMRenderer.batchedUpdates);\n\nvar warnedAboutHydrateAPI = false;\n\nfunction renderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;\n\n {\n if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n var hostInstance = DOMRenderer.findHostInstanceWithNoPortals(container._reactRootContainer.current);\n if (hostInstance) {\n warning(hostInstance.parentNode === container, 'render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n }\n }\n\n var isRootRenderedBySomeReact = !!container._reactRootContainer;\n var rootEl = getReactRootElementInContainer(container);\n var hasNonRootReactChild = !!(rootEl && getInstanceFromNode$1(rootEl));\n\n warning(!hasNonRootReactChild || isRootRenderedBySomeReact, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n\n warning(container.nodeType !== ELEMENT_NODE || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n }\n\n var root = container._reactRootContainer;\n if (!root) {\n var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container);\n // First clear any existing content.\n if (!shouldHydrate) {\n var warned = false;\n var rootSibling = void 0;\n while (rootSibling = container.lastChild) {\n {\n if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n warned = true;\n warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n }\n }\n container.removeChild(rootSibling);\n }\n }\n {\n if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n warnedAboutHydrateAPI = true;\n lowPriorityWarning$1(false, 'render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v17. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n }\n }\n var newRoot = DOMRenderer.createContainer(container, shouldHydrate);\n root = container._reactRootContainer = newRoot;\n // Initial mount should not be batched.\n DOMRenderer.unbatchedUpdates(function () {\n DOMRenderer.updateContainer(children, newRoot, parentComponent, callback);\n });\n } else {\n DOMRenderer.updateContainer(children, root, parentComponent, callback);\n }\n return DOMRenderer.getPublicRootInstance(root);\n}\n\nfunction createPortal(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;\n // TODO: pass ReactDOM portal implementation as third argument\n return createPortal$1(children, container, null, key);\n}\n\nfunction ReactRoot(container, hydrate) {\n var root = DOMRenderer.createContainer(container, hydrate);\n this._reactRootContainer = root;\n}\nReactRoot.prototype.render = function (children, callback) {\n var root = this._reactRootContainer;\n DOMRenderer.updateContainer(children, root, null, callback);\n};\nReactRoot.prototype.unmount = function (callback) {\n var root = this._reactRootContainer;\n DOMRenderer.updateContainer(null, root, null, callback);\n};\n\nvar ReactDOM = {\n createPortal: createPortal,\n\n findDOMNode: function (componentOrElement) {\n {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n warning(warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner) || 'A component');\n owner.stateNode._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === ELEMENT_NODE) {\n return componentOrElement;\n }\n\n var inst = get(componentOrElement);\n if (inst) {\n return DOMRenderer.findHostInstance(inst);\n }\n\n if (typeof componentOrElement.render === 'function') {\n invariant(false, 'Unable to find node on an unmounted component.');\n } else {\n invariant(false, 'Element appears to be neither ReactComponent nor DOMNode. Keys: %s', Object.keys(componentOrElement));\n }\n },\n hydrate: function (element, container, callback) {\n // TODO: throw or warn if we couldn't hydrate?\n return renderSubtreeIntoContainer(null, element, container, true, callback);\n },\n render: function (element, container, callback) {\n return renderSubtreeIntoContainer(null, element, container, false, callback);\n },\n unstable_renderSubtreeIntoContainer: function (parentComponent, element, containerNode, callback) {\n !(parentComponent != null && has(parentComponent)) ? invariant(false, 'parentComponent must be a valid React Component') : void 0;\n return renderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n },\n unmountComponentAtNode: function (container) {\n !isValidContainer(container) ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : void 0;\n\n if (container._reactRootContainer) {\n {\n var rootEl = getReactRootElementInContainer(container);\n var renderedByDifferentReact = rootEl && !getInstanceFromNode$1(rootEl);\n warning(!renderedByDifferentReact, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n }\n\n // Unmount should not be batched.\n DOMRenderer.unbatchedUpdates(function () {\n renderSubtreeIntoContainer(null, null, container, false, function () {\n container._reactRootContainer = null;\n });\n });\n // If you call unmountComponentAtNode twice in quick succession, you'll\n // get `true` twice. That's probably fine?\n return true;\n } else {\n {\n var _rootEl = getReactRootElementInContainer(container);\n var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode$1(_rootEl));\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n warning(!hasNonRootReactChild, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n }\n\n return false;\n }\n },\n\n\n // Temporary alias since we already shipped React 16 RC with it.\n // TODO: remove in React 17.\n unstable_createPortal: createPortal,\n\n unstable_batchedUpdates: batchedUpdates,\n\n unstable_deferredUpdates: DOMRenderer.deferredUpdates,\n\n flushSync: DOMRenderer.flushSync,\n\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {\n // For TapEventPlugin which is popular in open source\n EventPluginHub: EventPluginHub,\n // Used by test-utils\n EventPluginRegistry: EventPluginRegistry,\n EventPropagators: EventPropagators,\n ReactControlledComponent: ReactControlledComponent,\n ReactDOMComponentTree: ReactDOMComponentTree,\n ReactDOMEventListener: ReactDOMEventListener\n }\n};\n\nif (enableCreateRoot) {\n ReactDOM.createRoot = function createRoot(container, options) {\n var hydrate = options != null && options.hydrate === true;\n return new ReactRoot(container, hydrate);\n };\n}\n\nvar foundDevTools = DOMRenderer.injectIntoDevTools({\n findFiberByHostInstance: getClosestInstanceFromNode,\n bundleType: 1,\n version: ReactVersion,\n rendererPackageName: 'react-dom'\n});\n\n{\n if (!foundDevTools && ExecutionEnvironment.canUseDOM && window.top === window.self) {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n var protocol = window.location.protocol;\n // Don't warn in exotic cases like chrome-extension://.\n if (/^(https?|file):$/.test(protocol)) {\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://fb.me/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://fb.me/react-devtools-faq' : ''), 'font-weight:bold');\n }\n }\n }\n}\n\n\n\nvar ReactDOM$2 = Object.freeze({\n\tdefault: ReactDOM\n});\n\nvar ReactDOM$3 = ( ReactDOM$2 && ReactDOM ) || ReactDOM$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar reactDom = ReactDOM$3['default'] ? ReactDOM$3['default'] : ReactDOM$3;\n\nmodule.exports = reactDom;\n })();\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import React, { Component, PureComponent } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { css, injectGlobal } from 'emotion';\nimport { createPortal, findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport raf from 'raf';\nimport AutosizeInput from 'react-input-autosize';\nimport { Transition, TransitionGroup } from 'react-transition-group';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, cssKey, state, className) {\n var arr = [cssKey, className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n raf(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(placement, \"\\\".\"));\n } // fulfil contract with flow: implicit return value of undefined\n\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {}, _defineProperty(_ref3, alignToControl(placement), '100%'), _defineProperty(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty(_ref3, \"borderRadius\", borderRadius), _defineProperty(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty(_ref3, \"position\", 'absolute'), _defineProperty(_ref3, \"width\", '100%'), _defineProperty(_ref3, \"zIndex\", 1), _ref3;\n}; // NOTE: internal only\n\nvar MenuPlacer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(MenuPlacer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPlacement\", function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getUpdatedProps\", function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread({}, _this.props, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n });\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(Component);\n\n_defineProperty(MenuPlacer, \"contextTypes\", {\n getPortalPlacement: PropTypes.func\n});\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n var cn = cx(\n /*#__PURE__*/\n css(getStyles('menu', props)), {\n menu: true\n }, className);\n return React.createElement(\"div\", _extends({\n className: cn\n }, innerProps, {\n ref: innerRef\n }), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n return React.createElement(\"div\", {\n className: cx(\n /*#__PURE__*/\n css(getStyles('menuList', props)), {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\"),\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({\n className: cx(\n /*#__PURE__*/\n css(getStyles('noOptionsMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({\n className: cx(\n /*#__PURE__*/\n css(getStyles('loadingMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(MenuPortal)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"state\", {\n placement: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"getPortalPlacement\", function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n });\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n } // callback for occassions where the menu must \"flip\"\n\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n controlElement = _this$props2.controlElement,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = React.createElement(\"div\", {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css(getStyles('menuPortal', state))\n }, children);\n return appendTo ? createPortal(menuWrapper, appendTo) : menuWrapper;\n }\n }]);\n\n return MenuPortal;\n}(Component);\n\n_defineProperty(MenuPortal, \"childContextTypes\", {\n getPortalPlacement: PropTypes.func\n});\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // Custom handling for React\n\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n}\n\nvar diacritics = [{\n base: 'A',\n letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g\n}, {\n base: 'AA',\n letters: /[\\uA732]/g\n}, {\n base: 'AE',\n letters: /[\\u00C6\\u01FC\\u01E2]/g\n}, {\n base: 'AO',\n letters: /[\\uA734]/g\n}, {\n base: 'AU',\n letters: /[\\uA736]/g\n}, {\n base: 'AV',\n letters: /[\\uA738\\uA73A]/g\n}, {\n base: 'AY',\n letters: /[\\uA73C]/g\n}, {\n base: 'B',\n letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g\n}, {\n base: 'C',\n letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g\n}, {\n base: 'D',\n letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g\n}, {\n base: 'DZ',\n letters: /[\\u01F1\\u01C4]/g\n}, {\n base: 'Dz',\n letters: /[\\u01F2\\u01C5]/g\n}, {\n base: 'E',\n letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g\n}, {\n base: 'F',\n letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g\n}, {\n base: 'G',\n letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g\n}, {\n base: 'H',\n letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g\n}, {\n base: 'I',\n letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g\n}, {\n base: 'J',\n letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g\n}, {\n base: 'K',\n letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g\n}, {\n base: 'L',\n letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g\n}, {\n base: 'LJ',\n letters: /[\\u01C7]/g\n}, {\n base: 'Lj',\n letters: /[\\u01C8]/g\n}, {\n base: 'M',\n letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g\n}, {\n base: 'N',\n letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g\n}, {\n base: 'NJ',\n letters: /[\\u01CA]/g\n}, {\n base: 'Nj',\n letters: /[\\u01CB]/g\n}, {\n base: 'O',\n letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g\n}, {\n base: 'OI',\n letters: /[\\u01A2]/g\n}, {\n base: 'OO',\n letters: /[\\uA74E]/g\n}, {\n base: 'OU',\n letters: /[\\u0222]/g\n}, {\n base: 'P',\n letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g\n}, {\n base: 'Q',\n letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g\n}, {\n base: 'R',\n letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g\n}, {\n base: 'S',\n letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g\n}, {\n base: 'T',\n letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g\n}, {\n base: 'TZ',\n letters: /[\\uA728]/g\n}, {\n base: 'U',\n letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g\n}, {\n base: 'V',\n letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g\n}, {\n base: 'VY',\n letters: /[\\uA760]/g\n}, {\n base: 'W',\n letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g\n}, {\n base: 'X',\n letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g\n}, {\n base: 'Y',\n letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g\n}, {\n base: 'Z',\n letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g\n}, {\n base: 'a',\n letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g\n}, {\n base: 'aa',\n letters: /[\\uA733]/g\n}, {\n base: 'ae',\n letters: /[\\u00E6\\u01FD\\u01E3]/g\n}, {\n base: 'ao',\n letters: /[\\uA735]/g\n}, {\n base: 'au',\n letters: /[\\uA737]/g\n}, {\n base: 'av',\n letters: /[\\uA739\\uA73B]/g\n}, {\n base: 'ay',\n letters: /[\\uA73D]/g\n}, {\n base: 'b',\n letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g\n}, {\n base: 'c',\n letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g\n}, {\n base: 'd',\n letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g\n}, {\n base: 'dz',\n letters: /[\\u01F3\\u01C6]/g\n}, {\n base: 'e',\n letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g\n}, {\n base: 'f',\n letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g\n}, {\n base: 'g',\n letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g\n}, {\n base: 'h',\n letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g\n}, {\n base: 'hv',\n letters: /[\\u0195]/g\n}, {\n base: 'i',\n letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g\n}, {\n base: 'j',\n letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g\n}, {\n base: 'k',\n letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g\n}, {\n base: 'l',\n letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g\n}, {\n base: 'lj',\n letters: /[\\u01C9]/g\n}, {\n base: 'm',\n letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g\n}, {\n base: 'n',\n letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g\n}, {\n base: 'nj',\n letters: /[\\u01CC]/g\n}, {\n base: 'o',\n letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g\n}, {\n base: 'oi',\n letters: /[\\u01A3]/g\n}, {\n base: 'ou',\n letters: /[\\u0223]/g\n}, {\n base: 'oo',\n letters: /[\\uA74F]/g\n}, {\n base: 'p',\n letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g\n}, {\n base: 'q',\n letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g\n}, {\n base: 'r',\n letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g\n}, {\n base: 's',\n letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g\n}, {\n base: 't',\n letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g\n}, {\n base: 'tz',\n letters: /[\\uA729]/g\n}, {\n base: 'u',\n letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g\n}, {\n base: 'v',\n letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g\n}, {\n base: 'vy',\n letters: /[\\uA761]/g\n}, {\n base: 'w',\n letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g\n}, {\n base: 'x',\n letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g\n}, {\n base: 'y',\n letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g\n}, {\n base: 'z',\n letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g\n}];\nvar stripDiacritics = function stripDiacritics(str) {\n for (var i = 0; i < diacritics.length; i++) {\n str = str.replace(diacritics[i].letters, diacritics[i].base);\n }\n\n return str;\n};\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar A11yText = function A11yText(props) {\n return React.createElement(\"span\", _extends({\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css({\n zIndex: 9999,\n border: 0,\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: 1,\n width: 1,\n position: 'absolute',\n overflow: 'hidden',\n padding: 0,\n whiteSpace: 'nowrap',\n backgroundColor: 'red',\n color: 'blue'\n })\n }, props));\n};\n\nvar DummyInput =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(DummyInput, _Component);\n\n function DummyInput() {\n _classCallCheck(this, DummyInput);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DummyInput).apply(this, arguments));\n }\n\n _createClass(DummyInput, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n inProp = _this$props.in,\n out = _this$props.out,\n onExited = _this$props.onExited,\n appear = _this$props.appear,\n enter = _this$props.enter,\n exit = _this$props.exit,\n innerRef = _this$props.innerRef,\n emotion = _this$props.emotion,\n props = _objectWithoutProperties(_this$props, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return React.createElement(\"input\", _extends({\n ref: innerRef\n }, props, {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css({\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n })\n }));\n }\n }]);\n\n return DummyInput;\n}(Component);\n\nvar NodeResolver =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(NodeResolver, _Component);\n\n function NodeResolver() {\n _classCallCheck(this, NodeResolver);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NodeResolver).apply(this, arguments));\n }\n\n _createClass(NodeResolver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.props.innerRef(findDOMNode(this));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.innerRef(null);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return NodeResolver;\n}(Component);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\n\nvar ScrollLock =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ScrollLock, _Component);\n\n function ScrollLock() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollLock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollLock)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"originalStyles\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"listenerOptions\", {\n capture: false,\n passive: false\n });\n\n return _this;\n }\n\n _createClass(ScrollLock, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n var _this$props = this.props,\n accountForScrollbars = _this$props.accountForScrollbars,\n touchScrollTarget = _this$props.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n var _this$props2 = this.props,\n accountForScrollbars = _this$props2.accountForScrollbars,\n touchScrollTarget = _this$props2.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return ScrollLock;\n}(Component);\n\n_defineProperty(ScrollLock, \"defaultProps\", {\n accountForScrollbars: true\n});\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\nvar ScrollBlock =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollBlock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollBlock)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n touchScrollTarget: null\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getScrollTarget\", function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n\n _this.setState({\n touchScrollTarget: ref\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blurSelectInput\", function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollBlock, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget; // bail early if not enabled\n\n if (!isEnabled) return children;\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n\n return React.createElement(\"div\", null, React.createElement(\"div\", {\n onClick: this.blurSelectInput,\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css({\n position: 'fixed',\n left: 0,\n bottom: 0,\n right: 0,\n top: 0\n })\n }), React.createElement(NodeResolver, {\n innerRef: this.getScrollTarget\n }, children), touchScrollTarget ? React.createElement(ScrollLock, {\n touchScrollTarget: touchScrollTarget\n }) : null);\n }\n }]);\n\n return ScrollBlock;\n}(PureComponent);\n\nvar ScrollCaptor =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ScrollCaptor);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ScrollCaptor)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isBottom\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isTop\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollTarget\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"touchStart\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancelScroll\", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEventDelta\", function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onWheel\", function (event) {\n _this.handleEventDelta(event, event.deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchStart\", function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchMove\", function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n\n _this.handleEventDelta(event, deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getScrollTarget\", function (ref) {\n _this.scrollTarget = ref;\n });\n\n return _this;\n }\n\n _createClass(ScrollCaptor, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: \"startListening\",\n value: function startListening(el) {\n // bail early if no scroll available\n if (!el) return;\n if (el.scrollHeight <= el.clientHeight) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"stopListening\",\n value: function stopListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(NodeResolver, {\n innerRef: this.getScrollTarget\n }, this.props.children);\n }\n }]);\n\n return ScrollCaptor;\n}(Component);\n\nvar ScrollCaptorSwitch =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(ScrollCaptorSwitch, _Component2);\n\n function ScrollCaptorSwitch() {\n _classCallCheck(this, ScrollCaptorSwitch);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ScrollCaptorSwitch).apply(this, arguments));\n }\n\n _createClass(ScrollCaptorSwitch, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n isEnabled = _this$props2.isEnabled,\n props = _objectWithoutProperties(_this$props2, [\"isEnabled\"]);\n\n return isEnabled ? React.createElement(ScrollCaptor, props) : this.props.children;\n }\n }]);\n\n return ScrollCaptorSwitch;\n}(Component);\n\n_defineProperty(ScrollCaptorSwitch, \"defaultProps\", {\n isEnabled: true\n});\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var isSearchable = context.isSearchable,\n isMulti = context.isMulti,\n label = context.label,\n isDisabled = context.isDisabled;\n\n switch (event) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu, press Tab to select the option and exit the menu.\");\n\n case 'input':\n return \"\".concat(label ? label : 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n }\n};\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value,\n isDisabled = context.isDisabled;\n if (!value) return;\n\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(value, \", deselected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(value, \" is disabled. Select another option.\") : \"option \".concat(value, \", selected.\");\n }\n};\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return \"value \".concat(getOptionLabel(focusedValue), \" focused, \").concat(selectValue.indexOf(focusedValue) + 1, \" of \").concat(selectValue.length, \".\");\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return \"option \".concat(getOptionLabel(focusedOption), \" focused\").concat(focusedOption.isDisabled ? ' disabled' : '', \", \").concat(options.indexOf(focusedOption) + 1, \" of \").concat(options.length, \".\");\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return \"\".concat(screenReaderMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return React.createElement(\"div\", _extends({\n className: cx(\n /*#__PURE__*/\n css(getStyles('container', props)), {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\"),\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ValueContainer, _Component);\n\n function ValueContainer() {\n _classCallCheck(this, ValueContainer);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ValueContainer).apply(this, arguments));\n }\n\n _createClass(ValueContainer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n cx = _this$props.cx,\n isMulti = _this$props.isMulti,\n getStyles = _this$props.getStyles,\n hasValue = _this$props.hasValue;\n return React.createElement(\"div\", {\n className: cx(\n /*#__PURE__*/\n css(getStyles('valueContainer', this.props)), {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, children);\n }\n }]);\n\n return ValueContainer;\n}(Component); // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n return React.createElement(\"div\", {\n className: cx(\n /*#__PURE__*/\n css(getStyles('indicatorsContainer', props)), {\n 'indicators': true\n }, className)\n }, children);\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, [\"size\"]);\n\n return React.createElement(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css({\n display: 'inline-block',\n fill: 'currentColor',\n lineHeight: 1,\n stroke: 'currentColor',\n strokeWidth: 0\n })\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return React.createElement(Svg, _extends({\n size: 20\n }, props), React.createElement(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return React.createElement(Svg, _extends({\n size: 20\n }, props), React.createElement(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref2) {\n var isFocused = _ref2.isFocused,\n _ref2$theme = _ref2.theme,\n baseUnit = _ref2$theme.spacing.baseUnit,\n colors = _ref2$theme.colors;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({}, innerProps, {\n className: cx(\n /*#__PURE__*/\n css(getStyles('dropdownIndicator', props)), {\n 'indicator': true,\n 'dropdown-indicator': true\n }, className)\n }), children || React.createElement(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({}, innerProps, {\n className: cx(\n /*#__PURE__*/\n css(getStyles('clearIndicator', props)), {\n 'indicator': true,\n 'clear-indicator': true\n }, className)\n }), children || React.createElement(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref3) {\n var isDisabled = _ref3.isDisabled,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return React.createElement(\"span\", _extends({}, innerProps, {\n className: cx(\n /*#__PURE__*/\n css(getStyles('indicatorSeparator', props)), {\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar keyframesName = 'react-select-loading-indicator';\nvar keyframesInjected = false;\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref4) {\n var isFocused = _ref4.isFocused,\n size = _ref4.size,\n _ref4$theme = _ref4.theme,\n colors = _ref4$theme.colors,\n baseUnit = _ref4$theme.spacing.baseUnit;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref5) {\n var color = _ref5.color,\n delay = _ref5.delay,\n offset = _ref5.offset;\n return React.createElement(\"span\", {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css({\n animationDuration: '1s',\n animationDelay: \"\".concat(delay, \"ms\"),\n animationIterationCount: 'infinite',\n animationName: keyframesName,\n animationTimingFunction: 'ease-in-out',\n backgroundColor: color,\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n })\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isFocused = props.isFocused,\n isRtl = props.isRtl,\n colors = props.theme.colors;\n var color = isFocused ? colors.neutral80 : colors.neutral20;\n\n if (!keyframesInjected) {\n // eslint-disable-next-line no-unused-expressions\n injectGlobal(\"@keyframes \", keyframesName, \"{0%,80%,100%{opacity:0;}40%{opacity:1;}};\");\n keyframesInjected = true;\n }\n\n return React.createElement(\"div\", _extends({}, innerProps, {\n className: cx(\n /*#__PURE__*/\n css(getStyles('loadingIndicator', props)), {\n 'indicator': true,\n 'loading-indicator': true\n }, className)\n }), React.createElement(LoadingDot, {\n color: color,\n delay: 0,\n offset: isRtl\n }), React.createElement(LoadingDot, {\n color: color,\n delay: 160,\n offset: true\n }), React.createElement(LoadingDot, {\n color: color,\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css$1 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return React.createElement(\"div\", _extends({\n ref: innerRef,\n className: cx(\n /*#__PURE__*/\n css(getStyles('control', props)), {\n 'control': true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return React.createElement(\"div\", {\n className: cx(\n /*#__PURE__*/\n css(getStyles('group', props)), {\n 'group': true\n }, className)\n }, React.createElement(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), React.createElement(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n selectProps = props.selectProps,\n cleanProps = _objectWithoutProperties(props, [\"className\", \"cx\", \"getStyles\", \"theme\", \"selectProps\"]);\n\n return React.createElement(\"div\", _extends({\n className: cx(\n /*#__PURE__*/\n css(getStyles('groupHeading', _objectSpread({\n theme: theme\n }, cleanProps))), {\n 'group-heading': true\n }, className)\n }, cleanProps));\n};\n\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n selectProps = _ref2.selectProps,\n props = _objectWithoutProperties(_ref2, [\"className\", \"cx\", \"getStyles\", \"innerRef\", \"isHidden\", \"isDisabled\", \"theme\", \"selectProps\"]);\n\n return React.createElement(\"div\", {\n className:\n /*#__PURE__*/\n\n /*#__PURE__*/\n css(getStyles('input', _objectSpread({\n theme: theme\n }, props)))\n }, React.createElement(AutosizeInput, _extends({\n className: cx(null, {\n 'input': true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props)));\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return React.createElement(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nvar MultiValueRemove =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(MultiValueRemove, _Component);\n\n function MultiValueRemove() {\n _classCallCheck(this, MultiValueRemove);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MultiValueRemove).apply(this, arguments));\n }\n\n _createClass(MultiValueRemove, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n innerProps = _this$props.innerProps;\n return React.createElement(\"div\", innerProps, children || React.createElement(CrossIcon, {\n size: 14\n }));\n }\n }]);\n\n return MultiValueRemove;\n}(Component);\n\nvar MultiValue =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(MultiValue, _Component2);\n\n function MultiValue() {\n _classCallCheck(this, MultiValue);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(MultiValue).apply(this, arguments));\n }\n\n _createClass(MultiValue, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n components = _this$props2.components,\n cx = _this$props2.cx,\n data = _this$props2.data,\n getStyles = _this$props2.getStyles,\n innerProps = _this$props2.innerProps,\n isDisabled = _this$props2.isDisabled,\n removeProps = _this$props2.removeProps,\n selectProps = _this$props2.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n\n var containerInnerProps = _objectSpread({\n className: cx(\n /*#__PURE__*/\n css(getStyles('multiValue', this.props)), {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className)\n }, innerProps);\n\n var labelInnerProps = {\n className: cx(\n /*#__PURE__*/\n css(getStyles('multiValueLabel', this.props)), {\n 'multi-value__label': true\n }, className)\n };\n\n var removeInnerProps = _objectSpread({\n className: cx(\n /*#__PURE__*/\n css(getStyles('multiValueRemove', this.props)), {\n 'multi-value__remove': true\n }, className)\n }, removeProps);\n\n return React.createElement(Container, {\n data: data,\n innerProps: containerInnerProps,\n selectProps: selectProps\n }, React.createElement(Label, {\n data: data,\n innerProps: labelInnerProps,\n selectProps: selectProps\n }, children), React.createElement(Remove, {\n data: data,\n innerProps: removeInnerProps,\n selectProps: selectProps\n }));\n }\n }]);\n\n return MultiValue;\n}(Component);\n\n_defineProperty(MultiValue, \"defaultProps\", {\n cropWithEllipsis: true\n});\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: isSelected ? colors.primary : colors.primary50\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({\n ref: innerRef,\n className: cx(\n /*#__PURE__*/\n css(getStyles('option', props)), {\n 'option': true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className)\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({\n className: cx(\n /*#__PURE__*/\n css(getStyles('placeholder', props)), {\n 'placeholder': true\n }, className)\n }, innerProps), children);\n};\n\nvar css$2 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: \"calc(100% - \".concat(spacing.baseUnit * 2, \"px)\"),\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return React.createElement(\"div\", _extends({\n className: cx(\n /*#__PURE__*/\n css(getStyles('singleValue', props)), {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread({}, components, props.components);\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _objectSpread({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\nvar baseUnit = 4;\n/* Used to calculate consistent margin/padding on elements */\n\nvar controlHeight = 38;\n/* The minimum height of the control */\n\nvar menuGutter = baseUnit * 2;\n/* The amount of space between the control and menu */\n\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\nvar instanceId = 1;\n\nvar Select =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Select, _Component);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Select).call(this, _props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n isComposing: false,\n menuOptions: {\n render: [],\n focusable: []\n },\n selectValue: []\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blockOptionHover\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clearFocusValueOnUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"commonProps\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"components\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"hasGroups\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initialTouchX\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"initialTouchY\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputIsHiddenAfterUpdate\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"instancePrefix\", '');\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"openAfterFocus\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scrollToFocusedOptionOnUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"userIsDragging\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"controlRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getControlRef\", function (ref) {\n _this.controlRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"focusedOptionRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getFocusedOptionRef\", function (ref) {\n _this.focusedOptionRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"menuListRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getMenuListRef\", function (ref) {\n _this.menuListRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"inputRef\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getInputRef\", function (ref) {\n _this.inputRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cacheComponents\", function (components$$1) {\n _this.components = defaultComponents({\n components: components$$1\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"focus\", _this.focusInput);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"blur\", _this.blurInput);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n onChange(newValue, _objectSpread({}, actionMeta, {\n name: name\n }));\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setValue\", function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.clearFocusValueOnUpdate = true;\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"selectOption\", function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti;\n var selectValue = _this.state.selectValue;\n\n if (isMulti) {\n if (_this.isOptionSelected(newValue, selectValue)) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'deselect-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue([].concat(_toConsumableArray(selectValue), [newValue]), 'select-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue(newValue, 'select-option');\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"removeValue\", function (removedValue) {\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n _this.onChange(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this.getOptionLabel(removedValue) : ''\n }\n });\n\n _this.focusInput();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"clearValue\", function () {\n var isMulti = _this.props.isMulti;\n\n _this.onChange(isMulti ? [] : null, {\n action: 'clear'\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popValue\", function () {\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n\n _this.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this.getOptionLabel(lastSelectedValue) : ''\n }\n });\n\n _this.onChange(selectValue.slice(0, selectValue.length - 1), {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptionLabel\", function (data) {\n return _this.props.getOptionLabel(data);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptionValue\", function (data) {\n return _this.props.getOptionValue(data);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getStyles\", function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getElementId\", function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getActiveDescendentId\", function () {\n var menuIsOpen = _this.props.menuIsOpen;\n var _this$state = _this.state,\n menuOptions = _this$state.menuOptions,\n focusedOption = _this$state.focusedOption;\n if (!focusedOption || !menuIsOpen) return undefined;\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n return option && option.key;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"announceAriaLiveSelection\", function (_ref2) {\n var event = _ref2.event,\n context = _ref2.context;\n\n _this.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"announceAriaLiveContext\", function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this.setState({\n ariaLiveContext: instructionsAriaMessage(event, _objectSpread({}, context, {\n label: _this.props['aria-label']\n }))\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuMouseDown\", function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuMouseMove\", function (event) {\n _this.blockOptionHover = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onControlMouseDown\", function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n //$FlowFixMe\n if (event.target.tagName !== 'INPUT') {\n _this.onMenuClose();\n }\n } //$FlowFixMe\n\n\n if (event.target.tagName !== 'INPUT') {\n event.preventDefault();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onDropdownIndicatorMouseDown\", function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onClearIndicatorMouseDown\", function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n setTimeout(function () {\n return _this.focusInput();\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onScroll\", function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onCompositionStart\", function () {\n _this.setState({\n isComposing: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onCompositionEnd\", function () {\n _this.setState({\n isComposing: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchStart\", function (_ref4) {\n var touches = _ref4.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchMove\", function (_ref5) {\n var touches = _ref5.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTouchEnd\", function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onControlTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onClearIndicatorTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onDropdownIndicatorTouchEnd\", function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (event) {\n var inputValue = event.currentTarget.value;\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n _this.onMenuOpen();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputFocus\", function (event) {\n var _this$props5 = _this.props,\n isSearchable = _this$props5.isSearchable,\n isMulti = _this$props5.isMulti;\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n\n _this.setState({\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputBlur\", function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onOptionHover\", function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"shouldHideSelectedOptions\", function () {\n var _this$props6 = _this.props,\n hideSelectedOptions = _this$props6.hideSelectedOptions,\n isMulti = _this$props6.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onKeyDown\", function (event) {\n var _this$props7 = _this.props,\n isMulti = _this$props7.isMulti,\n backspaceRemovesValue = _this$props7.backspaceRemovesValue,\n escapeClearsValue = _this$props7.escapeClearsValue,\n inputValue = _this$props7.inputValue,\n isClearable = _this$props7.isClearable,\n isDisabled = _this$props7.isDisabled,\n menuIsOpen = _this$props7.menuIsOpen,\n onKeyDown = _this$props7.onKeyDown,\n tabSelectsValue = _this$props7.tabSelectsValue,\n openMenuOnFocus = _this$props7.openMenuOnFocus;\n var _this$state2 = _this.state,\n isComposing = _this$state2.isComposing,\n focusedOption = _this$state2.focusedOption,\n focusedValue = _this$state2.focusedValue,\n selectValue = _this$state2.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n });\n\n var value = _props.value;\n _this.cacheComponents = memoizeOne(_this.cacheComponents, exportedEqual).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n _this.cacheComponents(_props.components);\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var _selectValue = cleanValue(value);\n\n var _menuOptions = _this.buildMenuOptions(_props, _selectValue);\n\n _this.state.menuOptions = _menuOptions;\n _this.state.selectValue = _selectValue;\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props8 = this.props,\n options = _this$props8.options,\n value = _this$props8.value,\n inputValue = _this$props8.inputValue; // re-cache custom components\n\n this.cacheComponents(nextProps.components); // rebuild the menu options\n\n if (nextProps.value !== value || nextProps.options !== options || nextProps.inputValue !== inputValue) {\n var selectValue = cleanValue(nextProps.value);\n var menuOptions = this.buildMenuOptions(nextProps, selectValue);\n var focusedValue = this.getNextFocusedValue(selectValue);\n var focusedOption = this.getNextFocusedOption(menuOptions.focusable);\n this.setState({\n menuOptions: menuOptions,\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue\n });\n } // some updates should toggle the state of the input visibility\n\n\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n isDisabled = _this$props9.isDisabled,\n menuIsOpen = _this$props9.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: \"onMenuOpen\",\n // ==============================\n // Consumer Handlers\n // ==============================\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n var _this$props10 = this.props,\n isSearchable = _this$props10.isSearchable,\n isMulti = _this$props10.isMulti;\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this$state3 = this.state,\n menuOptions = _this$state3.menuOptions,\n selectValue = _this$state3.selectValue,\n isFocused = _this$state3.isFocused;\n var isMulti = this.props.isMulti;\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.inputIsHiddenAfterUpdate = false;\n this.onMenuOpen();\n this.setState({\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n });\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$props11 = this.props,\n isMulti = _this$props11.isMulti,\n isSearchable = _this$props11.isSearchable;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue; // Only multiselects support value focusing\n\n if (!isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'value'\n });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus === -1 ? false : true,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var _this$state5 = this.state,\n focusedOption = _this$state5.focusedOption,\n menuOptions = _this$state5.menuOptions;\n var options = menuOptions.focusable;\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n this.announceAriaLiveContext({\n event: 'menu',\n context: {\n isDisabled: isOptionDisabled(options[nextFocus])\n }\n });\n }\n }, {\n key: \"getTheme\",\n // ==============================\n // Getters\n // ==============================\n value: function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread({}, defaultTheme, this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n var hasValue = this.hasValue();\n\n var getValue = function getValue() {\n return selectValue;\n };\n\n var cx = classNames.bind(null, classNamePrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"getNextFocusedValue\",\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n\n var _this$state6 = this.state,\n focusedValue = _this$state6.focusedValue,\n lastSelectValue = _this$state6.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n }\n }, {\n key: \"getNextFocusedOption\",\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: \"countOptions\",\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props12 = this.props,\n isClearable = _this$props12.isClearable,\n isMulti = _this$props12.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled$$1(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n var _this2 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this2.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel$$1(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n // ==============================\n // Composition Handlers\n // ==============================\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n // ==============================\n // Touch Handlers\n // ==============================\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"buildMenuOptions\",\n // ==============================\n // Menu Options\n // ==============================\n value: function buildMenuOptions(props, selectValue) {\n var _this3 = this;\n\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue,\n options = props.options;\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this3.isOptionDisabled(option, selectValue);\n\n var isSelected = _this3.isOptionSelected(option, selectValue);\n\n var label = _this3.getOptionLabel(option);\n\n var value = _this3.getOptionValue(option);\n\n if (_this3.shouldHideSelectedOptions() && isSelected || !_this3.filterOption({\n label: label,\n value: value,\n data: option\n }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this3.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this3.selectOption(option);\n };\n var optionId = \"\".concat(_this3.getElementId('option'), \"-\").concat(id);\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this3.hasGroups) _this3.hasGroups = true;\n var items = item.options;\n var children = items.map(function (child, i) {\n var option = toOption(child, \"\".concat(itemIndex, \"-\").concat(i));\n if (option) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n\n if (children.length) {\n var groupId = \"\".concat(_this3.getElementId('group'), \"-\").concat(itemIndex);\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, \"\".concat(itemIndex));\n\n if (option) {\n acc.render.push(option);\n acc.focusable.push(item);\n }\n }\n\n return acc;\n }, {\n render: [],\n focusable: []\n });\n } // ==============================\n // Renderers\n // ==============================\n\n }, {\n key: \"constructAriaLiveMessage\",\n value: function constructAriaLiveMessage() {\n var _this$state7 = this.state,\n ariaLiveContext = _this$state7.ariaLiveContext,\n selectValue = _this$state7.selectValue,\n focusedValue = _this$state7.focusedValue,\n focusedOption = _this$state7.focusedOption;\n var _this$props13 = this.props,\n options = _this$props13.options,\n menuIsOpen = _this$props13.menuIsOpen,\n inputValue = _this$props13.inputValue,\n screenReaderStatus = _this$props13.screenReaderStatus; // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : ''; // An aria live message representing the currently focused option in the select.\n\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : ''; // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({\n count: this.countOptions()\n })\n });\n return \"\".concat(focusedValueMsg, \" \").concat(focusedOptionMsg, \" \").concat(resultsMsg, \" \").concat(ariaLiveContext);\n }\n }, {\n key: \"renderInput\",\n value: function renderInput() {\n var _this$props14 = this.props,\n isDisabled = _this$props14.isDisabled,\n isSearchable = _this$props14.isSearchable,\n inputId = _this$props14.inputId,\n inputValue = _this$props14.inputValue,\n tabIndex = _this$props14.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n var id = inputId || this.getElementId('input');\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return React.createElement(DummyInput, {\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n value: \"\"\n });\n } // aria attributes makes the JSX \"noisy\", separated for clarity\n\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n var _this$commonProps = this.commonProps,\n cx = _this$commonProps.cx,\n theme = _this$commonProps.theme,\n selectProps = _this$commonProps.selectProps;\n return React.createElement(Input, _extends({\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n theme: theme,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _this$components = this.components,\n MultiValue = _this$components.MultiValue,\n MultiValueContainer = _this$components.MultiValueContainer,\n MultiValueLabel = _this$components.MultiValueLabel,\n MultiValueRemove = _this$components.MultiValueRemove,\n SingleValue = _this$components.SingleValue,\n Placeholder = _this$components.Placeholder;\n var commonProps = this.commonProps;\n var _this$props15 = this.props,\n controlShouldRenderValue = _this$props15.controlShouldRenderValue,\n isDisabled = _this$props15.isDisabled,\n isMulti = _this$props15.isMulti,\n inputValue = _this$props15.inputValue,\n placeholder = _this$props15.placeholder;\n var _this$state8 = this.state,\n selectValue = _this$state8.selectValue,\n focusedValue = _this$state8.focusedValue,\n isFocused = _this$state8.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt) {\n var isFocused = opt === focusedValue;\n return React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this4.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props16 = this.props,\n isDisabled = _this$props16.isDisabled,\n isLoading = _this$props16.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props17 = this.props,\n isDisabled = _this$props17.isDisabled,\n isLoading = _this$props17.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$components2 = this.components,\n DropdownIndicator = _this$components2.DropdownIndicator,\n IndicatorSeparator = _this$components2.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this5 = this;\n\n var _this$components3 = this.components,\n Group = _this$components3.Group,\n GroupHeading = _this$components3.GroupHeading,\n Menu$$1 = _this$components3.Menu,\n MenuList$$1 = _this$components3.MenuList,\n MenuPortal$$1 = _this$components3.MenuPortal,\n LoadingMessage$$1 = _this$components3.LoadingMessage,\n NoOptionsMessage$$1 = _this$components3.NoOptionsMessage,\n Option = _this$components3.Option;\n var commonProps = this.commonProps;\n var _this$state9 = this.state,\n focusedOption = _this$state9.focusedOption,\n menuOptions = _this$state9.menuOptions;\n var _this$props18 = this.props,\n captureMenuScroll = _this$props18.captureMenuScroll,\n inputValue = _this$props18.inputValue,\n isLoading = _this$props18.isLoading,\n loadingMessage = _this$props18.loadingMessage,\n minMenuHeight = _this$props18.minMenuHeight,\n maxMenuHeight = _this$props18.maxMenuHeight,\n menuIsOpen = _this$props18.menuIsOpen,\n menuPlacement = _this$props18.menuPlacement,\n menuPosition = _this$props18.menuPosition,\n menuPortalTarget = _this$props18.menuPortalTarget,\n menuShouldBlockScroll = _this$props18.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props18.menuShouldScrollIntoView,\n noOptionsMessage = _this$props18.noOptionsMessage,\n onMenuScrollToTop = _this$props18.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props18.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n return React.createElement(Option, _extends({}, commonProps, props, {\n isFocused: isFocused\n }), _this5.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = _objectWithoutProperties(item, [\"type\"]);\n\n var headingId = \"\".concat(item.key, \"-heading\");\n return React.createElement(Group, _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option);\n }));\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = React.createElement(LoadingMessage$$1, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = React.createElement(NoOptionsMessage$$1, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref6) {\n var ref = _ref6.ref,\n _ref6$placerProps = _ref6.placerProps,\n placement = _ref6$placerProps.placement,\n maxHeight = _ref6$placerProps.maxHeight;\n return React.createElement(Menu$$1, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), React.createElement(ScrollCaptorSwitch, {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n }, React.createElement(ScrollBlock, {\n isEnabled: menuShouldBlockScroll\n }, React.createElement(MenuList$$1, _extends({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }), menuUI))));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? React.createElement(MenuPortal$$1, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this6 = this;\n\n var _this$props19 = this.props,\n delimiter = _this$props19.delimiter,\n isDisabled = _this$props19.isDisabled,\n isMulti = _this$props19.isMulti,\n name = _this$props19.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this6.getOptionValue(opt)\n });\n }) : React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return React.createElement(A11yText, {\n \"aria-live\": \"assertive\"\n }, React.createElement(\"p\", {\n id: \"aria-selection-event\"\n }, \"\\xA0\", this.state.ariaLiveSelection), React.createElement(\"p\", {\n id: \"aria-context\"\n }, \"\\xA0\", this.constructAriaLiveMessage()));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$components4 = this.components,\n Control = _this$components4.Control,\n IndicatorsContainer = _this$components4.IndicatorsContainer,\n SelectContainer = _this$components4.SelectContainer,\n ValueContainer = _this$components4.ValueContainer;\n var _this$props20 = this.props,\n className = _this$props20.className,\n id = _this$props20.id,\n isDisabled = _this$props20.isDisabled,\n menuIsOpen = _this$props20.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }]);\n\n return Select;\n}(Component);\n\n_defineProperty(Select, \"defaultProps\", defaultProps);\n\nvar defaultProps$1 = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inherits(StateManager, _Component);\n\n function StateManager() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, StateManager);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(StateManager)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"select\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onInputChange\", function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuOpen\", function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onMenuClose\", function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n });\n\n return _this;\n }\n\n _createClass(StateManager, [{\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"getProp\",\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"callProp\",\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n defaultInputValue = _this$props2.defaultInputValue,\n defaultMenuIsOpen = _this$props2.defaultMenuIsOpen,\n defaultValue = _this$props2.defaultValue,\n props = _objectWithoutProperties(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n\n return StateManager;\n }(Component), _defineProperty(_class, \"defaultProps\", defaultProps$1), _temp;\n};\n\nvar defaultProps$2 = {\n cacheOptions: false,\n defaultOptions: false,\n filterOption: null\n};\nvar makeAsyncSelect = function makeAsyncSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inherits(Async, _Component);\n\n function Async(props) {\n var _this;\n\n _classCallCheck(this, Async);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Async).call(this));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"select\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"lastRequest\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"optionsCache\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleInputChange\", function (newValue, actionMeta) {\n var _this$props = _this.props,\n cacheOptions = _this$props.cacheOptions,\n onInputChange = _this$props.onInputChange; // TODO\n\n var inputValue = handleInputChange(newValue, actionMeta, onInputChange);\n\n if (!inputValue) {\n delete _this.lastRequest;\n\n _this.setState({\n inputValue: '',\n loadedInputValue: '',\n loadedOptions: [],\n isLoading: false,\n passEmptyOptions: false\n });\n\n return;\n }\n\n if (cacheOptions && _this.optionsCache[inputValue]) {\n _this.setState({\n inputValue: inputValue,\n loadedInputValue: inputValue,\n loadedOptions: _this.optionsCache[inputValue],\n isLoading: false,\n passEmptyOptions: false\n });\n } else {\n var request = _this.lastRequest = {};\n\n _this.setState({\n inputValue: inputValue,\n isLoading: true,\n passEmptyOptions: !_this.state.loadedInputValue\n }, function () {\n _this.loadOptions(inputValue, function (options) {\n if (!_this.mounted) return;\n\n if (options) {\n _this.optionsCache[inputValue] = options;\n }\n\n if (request !== _this.lastRequest) return;\n delete _this.lastRequest;\n\n _this.setState({\n isLoading: false,\n loadedInputValue: inputValue,\n loadedOptions: options || [],\n passEmptyOptions: false\n });\n });\n });\n }\n\n return inputValue;\n });\n\n _this.state = {\n defaultOptions: Array.isArray(props.defaultOptions) ? props.defaultOptions : undefined,\n inputValue: typeof props.inputValue !== 'undefined' ? props.inputValue : '',\n isLoading: props.defaultOptions === true ? true : false,\n loadedOptions: [],\n passEmptyOptions: false\n };\n return _this;\n }\n\n _createClass(Async, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.mounted = true;\n var defaultOptions = this.props.defaultOptions;\n var inputValue = this.state.inputValue;\n\n if (defaultOptions === true) {\n this.loadOptions(inputValue, function (options) {\n if (!_this2.mounted) return;\n var isLoading = !!_this2.lastRequest;\n\n _this2.setState({\n defaultOptions: options || [],\n isLoading: isLoading\n });\n });\n }\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n // if the cacheOptions prop changes, clear the cache\n if (nextProps.cacheOptions !== this.props.cacheOptions) {\n this.optionsCache = {};\n }\n\n if (nextProps.defaultOptions !== this.props.defaultOptions) {\n this.setState({\n defaultOptions: Array.isArray(nextProps.defaultOptions) ? nextProps.defaultOptions : undefined\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: \"loadOptions\",\n value: function loadOptions(inputValue, callback) {\n var loadOptions = this.props.loadOptions;\n if (!loadOptions) return callback();\n var loader = loadOptions(inputValue, callback);\n\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n loadOptions = _this$props2.loadOptions,\n props = _objectWithoutProperties(_this$props2, [\"loadOptions\"]);\n\n var _this$state = this.state,\n defaultOptions = _this$state.defaultOptions,\n inputValue = _this$state.inputValue,\n isLoading = _this$state.isLoading,\n loadedInputValue = _this$state.loadedInputValue,\n loadedOptions = _this$state.loadedOptions,\n passEmptyOptions = _this$state.passEmptyOptions;\n var options = passEmptyOptions ? [] : inputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this3.select = _ref;\n },\n options: options,\n isLoading: isLoading,\n onInputChange: this.handleInputChange\n }));\n }\n }]);\n\n return Async;\n }(Component), _defineProperty(_class, \"defaultProps\", defaultProps$2), _temp;\n};\nvar SelectState = manageState(Select);\nvar Async = makeAsyncSelect(SelectState);\n\nvar compareOption = function compareOption() {\n var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var option = arguments.length > 1 ? arguments[1] : undefined;\n var candidate = String(inputValue).toLowerCase();\n var optionValue = String(option.value).toLowerCase();\n var optionLabel = String(option.label).toLowerCase();\n return optionValue === candidate || optionLabel === candidate;\n};\n\nvar builtins = {\n formatCreateLabel: function formatCreateLabel(inputValue) {\n return \"Create \\\"\".concat(inputValue, \"\\\"\");\n },\n isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions) {\n return !(!inputValue || selectValue.some(function (option) {\n return compareOption(inputValue, option);\n }) || selectOptions.some(function (option) {\n return compareOption(inputValue, option);\n }));\n },\n getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n return {\n label: optionLabel,\n value: inputValue,\n __isNew__: true\n };\n }\n};\nvar defaultProps$3 = _objectSpread({\n allowCreateWhileLoading: false,\n createOptionPosition: 'last'\n}, builtins);\nvar makeCreatableSelect = function makeCreatableSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inherits(Creatable, _Component);\n\n function Creatable(props) {\n var _this;\n\n _classCallCheck(this, Creatable);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Creatable).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"select\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onChange\", function (newValue, actionMeta) {\n var _this$props = _this.props,\n getNewOptionData = _this$props.getNewOptionData,\n inputValue = _this$props.inputValue,\n isMulti = _this$props.isMulti,\n onChange = _this$props.onChange,\n onCreateOption = _this$props.onCreateOption,\n value = _this$props.value;\n\n if (actionMeta.action !== 'select-option') {\n return onChange(newValue, actionMeta);\n }\n\n var newOption = _this.state.newOption;\n var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n\n if (valueArray[valueArray.length - 1] === newOption) {\n if (onCreateOption) onCreateOption(inputValue);else {\n var newOptionData = getNewOptionData(inputValue, inputValue);\n var newActionMeta = {\n action: 'create-option'\n };\n\n if (isMulti) {\n onChange([].concat(_toConsumableArray(cleanValue(value)), [newOptionData]), newActionMeta);\n } else {\n onChange(newOptionData, newActionMeta);\n }\n }\n return;\n }\n\n onChange(newValue, actionMeta);\n });\n\n var options = props.options || [];\n _this.state = {\n newOption: undefined,\n options: options\n };\n return _this;\n }\n\n _createClass(Creatable, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var allowCreateWhileLoading = nextProps.allowCreateWhileLoading,\n createOptionPosition = nextProps.createOptionPosition,\n formatCreateLabel = nextProps.formatCreateLabel,\n getNewOptionData = nextProps.getNewOptionData,\n inputValue = nextProps.inputValue,\n isLoading = nextProps.isLoading,\n isValidNewOption = nextProps.isValidNewOption,\n value = nextProps.value;\n var options = nextProps.options || [];\n var newOption = this.state.newOption;\n\n if (isValidNewOption(inputValue, cleanValue(value), options)) {\n newOption = getNewOptionData(inputValue, formatCreateLabel(inputValue));\n } else {\n newOption = undefined;\n }\n\n this.setState({\n newOption: newOption,\n options: (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(_toConsumableArray(options)) : [].concat(_toConsumableArray(options), [newOption]) : options\n });\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var props = _extends({}, this.props);\n\n var options = this.state.options;\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n options: options,\n onChange: this.onChange\n }));\n }\n }]);\n\n return Creatable;\n }(Component), _defineProperty(_class, \"defaultProps\", defaultProps$3), _temp;\n}; // TODO: do this in package entrypoint\n\nvar SelectCreatable = makeCreatableSelect(Select);\nvar Creatable = manageState(SelectCreatable);\n\nvar SelectCreatable$1 = makeCreatableSelect(Select);\nvar SelectCreatableState = manageState(SelectCreatable$1);\nvar AsyncCreatable = makeAsyncSelect(SelectCreatableState);\n\n// strip transition props off before spreading onto select component\n// note we need to be explicit about innerRef for flow\nvar AnimatedInput = function AnimatedInput(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n props = _objectWithoutProperties(_ref, [\"in\", \"onExited\", \"appear\", \"enter\", \"exit\"]);\n\n return React.createElement(WrappedComponent, props);\n };\n};\n\nvar Fade = function Fade(_ref) {\n var Tag = _ref.component,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 1 : _ref$duration,\n inProp = _ref.in,\n onExited = _ref.onExited,\n props = _objectWithoutProperties(_ref, [\"component\", \"duration\", \"in\", \"onExited\"]);\n\n var transition = {\n entering: {\n opacity: 0\n },\n entered: {\n opacity: 1,\n transition: \"opacity \".concat(duration, \"ms\")\n },\n exiting: {\n opacity: 0\n },\n exited: {\n opacity: 0\n }\n };\n return React.createElement(Transition, {\n mountOnEnter: true,\n unmountOnExit: true,\n in: inProp,\n timeout: duration\n }, function (state) {\n var innerProps = {\n style: _objectSpread({}, transition[state])\n };\n return React.createElement(Tag, _extends({\n innerProps: innerProps\n }, props));\n });\n}; // ==============================\n// Collapse Transition\n// ==============================\n\nvar collapseDuration = 260;\n// wrap each MultiValue with a collapse transition; decreases width until\n// finally removing from DOM\nvar Collapse =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Collapse, _Component);\n\n function Collapse() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Collapse);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Collapse)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"duration\", collapseDuration);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"rafID\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n width: 'auto'\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"transition\", {\n exiting: {\n width: 0,\n transition: \"width \".concat(_this.duration, \"ms ease-out\")\n },\n exited: {\n width: 0\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getWidth\", function (ref) {\n if (ref && isNaN(_this.state.width)) {\n /*\n Here we're invoking requestAnimationFrame with a callback invoking our\n call to getBoundingClientRect and setState in order to resolve an edge case\n around portalling. Certain portalling solutions briefly remove children from the DOM\n before appending them to the target node. This is to avoid us trying to call getBoundingClientrect\n while the Select component is in this state.\n */\n // cannot use `offsetWidth` because it is rounded\n _this.rafID = window.requestAnimationFrame(function () {\n var _ref$getBoundingClien = ref.getBoundingClientRect(),\n width = _ref$getBoundingClien.width;\n\n _this.setState({\n width: width\n });\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getStyle\", function (width) {\n return {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: width\n };\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getTransition\", function (state) {\n return _this.transition[state];\n });\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.rafID) {\n window.cancelAnimationFrame(this.rafID);\n }\n } // width must be calculated; cannot transition from `undefined` to `number`\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in;\n var width = this.state.width;\n return React.createElement(Transition, {\n enter: false,\n mountOnEnter: true,\n unmountOnExit: true,\n in: inProp,\n timeout: this.duration\n }, function (state) {\n var style = _objectSpread({}, _this2.getStyle(width), _this2.getTransition(state));\n\n return React.createElement(\"div\", {\n ref: _this2.getWidth,\n style: style\n }, children);\n });\n }\n }]);\n\n return Collapse;\n}(Component);\n\nvar AnimatedMultiValue = function AnimatedMultiValue(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n props = _objectWithoutProperties(_ref, [\"in\", \"onExited\"]);\n\n return React.createElement(Collapse, {\n in: inProp,\n onExited: onExited\n }, React.createElement(WrappedComponent, _extends({\n cropWithEllipsis: inProp\n }, props)));\n };\n};\n\nvar AnimatedPlaceholder = function AnimatedPlaceholder(WrappedComponent) {\n return function (props) {\n return React.createElement(Fade, _extends({\n component: WrappedComponent,\n duration: props.isMulti ? collapseDuration : 1\n }, props));\n };\n};\n\nvar AnimatedSingleValue = function AnimatedSingleValue(WrappedComponent) {\n return function (props) {\n return React.createElement(Fade, _extends({\n component: WrappedComponent\n }, props));\n };\n};\n\n// make ValueContainer a transition group\nvar AnimatedValueContainer = function AnimatedValueContainer(WrappedComponent) {\n return function (props) {\n return React.createElement(TransitionGroup, _extends({\n component: WrappedComponent\n }, props));\n };\n};\n\nvar makeAnimated = function makeAnimated() {\n var externalComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var components$$1 = defaultComponents({\n components: externalComponents\n });\n\n var Input = components$$1.Input,\n MultiValue = components$$1.MultiValue,\n Placeholder = components$$1.Placeholder,\n SingleValue = components$$1.SingleValue,\n ValueContainer = components$$1.ValueContainer,\n rest = _objectWithoutProperties(components$$1, [\"Input\", \"MultiValue\", \"Placeholder\", \"SingleValue\", \"ValueContainer\"]);\n\n return _objectSpread({\n Input: AnimatedInput(Input),\n MultiValue: AnimatedMultiValue(MultiValue),\n Placeholder: AnimatedPlaceholder(Placeholder),\n SingleValue: AnimatedSingleValue(SingleValue),\n ValueContainer: AnimatedValueContainer(ValueContainer)\n }, rest);\n};\n\nvar AnimatedComponents = makeAnimated();\nvar Input$1 = AnimatedComponents.Input;\nvar MultiValue$1 = AnimatedComponents.MultiValue;\nvar Placeholder$1 = AnimatedComponents.Placeholder;\nvar SingleValue$1 = AnimatedComponents.SingleValue;\nvar ValueContainer$1 = AnimatedComponents.ValueContainer;\nvar index = memoizeOne(makeAnimated, exportedEqual);\n\nvar index$1 = manageState(Select);\n\nexport default index$1;\nexport { Select as SelectBase, Async, makeAsyncSelect, AsyncCreatable, Creatable, makeCreatableSelect, createFilter, index as makeAnimated, components, mergeStyles, defaultTheme };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `<ReplaceTransition>` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * <ReplaceTransition in>\n * <Fade><div>I appear first</div></Fade>\n * <Fade><div>I replace the above</div></Fade>\n * </ReplaceTransition>\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `<div>` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","module.exports = (function() { return this[\"React\"]; }());","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./Javascript/ClientComponents.jsx\");\n",""],"names":["Object","assign","require","exports","module","_typeof","o","Symbol","iterator","constructor","prototype","_classCallCheck","a","n","TypeError","_defineProperties","e","r","t","length","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","i","_toPrimitive","toPrimitive","call","String","Number","LoggerInstance","get","AccountStore","PledgeStatementHelper","Spinner","WizardConstants","ActionsHelper","MyRecurringRefresh","ApiHelper","BootstrapPrompt","InputHelper","LinkMessageHelper","PartialResponseHelper","AbstractPledgeManagementHelper","options","_this","_cancelPledgeEditLinkMessageMapper","cancelPledgeEditLinkMessageMapper","_cancelWholePledgeLinkMessageMapper","cancelWholePledgeLinkMessageMapper","_componentSelector","componentSelector","_displayMessagesWizard","displayMessagesWizard","_donateToAllCheckboxComponentName","donateToAllCheckboxComponentName","_donateToAllCheckboxSelector","donateToAllCheckboxSelector","_donateToAllCheckboxInputSelector","donateToAllCheckboxInputSelector","_donateToSingleCheckboxComponentName","donateToSingleCheckboxComponentName","_donateToSingleCheckboxSelector","donateToSingleCheckboxSelector","_donateToSingleCheckboxInputSelector","donateToSingleCheckboxInputSelector","_editMyPledgeLinkMessageMapper","editMyPledgeLinkMessageMapper","_makeDonationSelector","makeDonationSelector","_myRecurringPopulatedSingleRecurringSelector","myRecurringPopulatedSingleRecurringSelector","_myRecurringSelector","myRecurringSelector","_singlePledgeEditComponentName","singlePledgeEditComponentName","_singlePledgeSelector","singlePledgeSelector","_singlePledgeEditSelector","singlePledgeEditSelector","_singlePledgeEditAmountSelector","singlePledgeEditAmountSelector","_donateToAllClicked","event","isDesignMode","ctrlKey","metaKey","$checkbox","$","target","reverseChecked","is","closest","find","isChecked","prop","$component","concat","_donateToSingleClicked","_getEventOrReturn","isDesignModeMessage","getEventOrReturn","_refreshAssociatedRecurringHtml","pledgeId","$recurringContainer","promises","$recurringDonations","each","index","element","deferred","Deferred","recurringDonationId","attr","getMyRecurringHtml","donationId","usingDonations","usingHeader","done","resolve","push","when","apply","undefined","promise","_resolveError","jqXHR","textStatus","responseJSON","handleErrorResponse","displayErrorMessage","reject","value","getComponentHtml","newPledgeId","retrievePledgeApiFunction","Error","$currentPledge","componentId","cancelPledgeEdit","getPledgeViewData","linkMessageMapper","showSpinner","cancelWholePledge","cancelPledgeApiFunction","_this2","confirm","btnCancelLabel","window","BUTTON_LABELS","NO","btnOKLabel","YES","message","cancelPledge","title","result","editPledge","getPledgeEditData","alreadyEditingHeader","makeDonation","makeDonationApiFunction","_this3","isInPledgeStatementSession","pledgeStatementEntryWizard","WIZARDS","PLEDGE_STATEMENT_ENTRY","confirmAbandonPledgeStatementSession","pledgeIds","map","errorMessage","makeDonationSelectionRequired","alert","removeSpinner","initializeComponent","_this4","off","on","prepareCheckboxAndLabel","initializePledgeButtons","_this5","addBack","initializeEdit","initializeAmountInput","save","savePledgeApiFunction","$editPledgeForm","editPledgeData","serializeForm","amount","convertFormattedAmountToNumber","pledgeAmountGreaterThanZero","AccountApi","AccountDemographicsHelper","PaymentHelper","SubmitButtonHelper","ValidationHelper","Constants","AccountCommunicationsHelper","AccountConstants","AccountFormHelper","Dispatcher","DocumentsHelper","GivingStatementHelper","PhoneNumberHelper","ReportsHelper","SmartyStreets","SavedPaymentHelper","MyRelationshipPledgesHelper","setProperty","model","propertyName","propertyValue","propertyParts","split","ref","forEach","propertyPart","_parseUri","uri","anchorTag","document","createElement","href","host","AccountActions","initializeAccount","addEventListener","initializeForPrimaryContactInformation","initializeForOtherAddressesAdd","initializePhoneNumberGroupComponent","primaryAddressCountry","initializeProductDownloadUrl","initializeGivingStatementRequestForm","MyRecurringHelper","initializeMyRecurring","MyPledgesHelper","initializeMyPledges","initializeMyRelationshipPledges","MySponsorshipsHelper","initializeMySponsorships","initializeSavedPayments","initializeSpouseInformationComponent","initializeStore","initializePaymentComponent","initialize","wizardAddressStandardization","isEnabled","getAutoAddStateAndPostalCodesControlRecord","controlRecord","dispatch","actionType","SET_AUTO_ADD_STATE_AND_POSTAL_CODES","isAutoAddStateAndPostalCodes","ACCOUNT_INITIALIZE","initializeAccountType","initializeDemographics","initializeAccountMediaForm","initializeAccountCommunicationForm","initializeReports","changePassword","currentPassword","val","newPassword","confirmPassword","getWizardValue","ACCOUNT_MESSAGES","ACCOUNT_MESSAGE_FIELDS","ACCOUNT_PASSWORDS_MISMATCH","encodePassword","then","performPostSubmitAction","jqHXR","PASSWORD_CHANGE_ERROR","exception","error","changePrimaryContactInformation","components","savedPaymentsDisplayMessagesWizard","$singleAddress","that","submitPrimaryContactInformation","data","shouldUpdateSavedPayments","validate","always","isValid","verifyAddress","address","shouldForceReloadOnStay","haveAddressDefaultsChanged","fail","errorThrown","serializePrimaryContactInformationForm","hasAddressChanged","show","savedPaymentAddressEditPromptText","buttons","label","action","dialog","close","CANCEL","changeSpouseInformation","saveAccountMedia","createAccount","passwordVerificationResult","verifyCreateAccountPasswords","isVerified","serializeDataNecessaryToCreateAnAccount","accountData","apiData","handleAccountCreateResponse","apiResponse","hideSpinner","deleteSavedPayment","paymentRecordId","performLogin","serializeArray","reduce","obj","item","name","actionData","getPostSubmitActionData","accountStoreState","getState","runFallbackAction","returnToReferrer","referrer","currentUrl","location","isValidReferrer","domainWhitelist","some","domainString","toLowerCase","indexOf","status","LOGIN_MESSAGES","LOGIN_MESSAGE_FIELDS","LOGIN_ERROR","resetPassword","resetToken","getUrlParameter","emailAddress","EMAIL_MISSING","RESET_TOKEN_MISSING","response","sendPasswordResetEmail","$emailInput","postActionUndefinedOrNoMessage","onNoPostSubmitAction","onNoStayMessage","FORGOT_PASSWORD_ERROR","processAddSavedPaymentToAccount","addSavedPaymentToAccount","showAddNewPayment","handleAddNewPaymentLinkClick","submitPledgeStatementForm","getAccountType","getAccountCodes","getLoggedInAccount","account","loggedInStatus","otherAddresses","getOtherAddresses","getIsAutoAddStateAndPostalCodes","formParentId","getDefaultCountry","getSelectedCountry","getSelectedEmailType","getSelectedOrganizationType","getSelectedPaymentType","uniqueName","getSelectedPhoneType","getSelectedState","getSelectedTitle","getSelectedMediaOutlet","getPreviousMediaRequest","getAvailableMediaValues","getIsFormInputDisabled","getPlaidDisplayMessages","setSelectedCountry","selectedCountry","SET_SELECTED_COUNTRY","setSelectedEmailType","selectedEmailType","SET_SELECTED_EMAIL_TYPE","setSelectedOrganizationType","selectedOrganizationType","SET_SELECTED_ORGANIZATION_TYPE","setSelectedPaymentType","selectedPaymentType","SET_SELECTED_PAYMENT_TYPE","setSelectedPhoneType","selectedPhoneType","SET_SELECTED_PHONE_TYPE","setSelectedState","selectedState","SET_SELECTED_STATE","setSelectedTitle","selectedTitle","SET_SELECTED_TITLE","setSelectedMediaOutlet","selectedMediaOutlet","setStateByType","SET_MEDIA_OUTLET","setPreviousMediaRequest","previousMediaRequest","SET_PREVIOUS_MEDIA_REQUEST","setAvailableMediaValues","availableValues","SET_AVAILABLE_MEDIA_VALUES","doNotShowAlert","$confirmPasswordField","password","passwordMismatchErrorMessage","serializeCreateGiftAccountForm","serializeAddressForm","shouldEncodePassword","serializeAddOtherAddressForm","serializedAddressData","updateAccountDemographics","$accountTypeSelect","$individual","ACCOUNT_TYPES","INDIVIDUAL","$organization","ORGANIZATION","individualEmpty","children","organizationEmpty","trigger","selectedValue","bind","createCommunication","initializeNumbers","dateFormat","wizardDateFormat","initializeDates","downloadDocument","preventDefault","$document","documentCode","shouldOpenPdfDocumentsInNewTab","DOCUMENTS_CONFIGURATION","DOCUMENTS_COFIGURATION_FIELDS","SHOULD_OPEN_PDF_IN_NEW_TAB","statusCode","DOCUMENTS_DISPLAY_MESSAGES","DOCUMENTS_DISPLAY_MESSAGES_FIELDS","DOWNLOAD_ERROR","DOWNLOAD_UNAVAILABLE","DOWNLOAD_UNAUTHORIZED","loadDocumentsPartial","documentTypeCode","$documentsElement","documentsComponentId","existingBreadcrumb","_getParentDocumentTypeBreadcrumb","_loadDocumentTypes","getDocumentTypes","html","DOCUMENT_TYPE_CHANGED","DOCUMENT_TYPE_ERROR","$selectedElement","$documents","$clickedBreadcrumb","$clickedDocumentType","$currentBreadcrumbItems","$currentDocumentType","last","parentBreadcrumb","currentDocumentTypeCode","currentDocumentTypeTitle","parentSelector","accountCodes","setInitialDirty","$demographicForms","$demographicFormsToDefault","not","code","type","$element","componentName","$parent","startsWith","updateSelectedCheckboxes","addClass","parents","first","updateSelectedRadioButtons","component","codeType","hasNoAccountCode","$form","saveDemographics","$demographicInputs","toggleClass","$selectedComponent","formDataArray","$namedInputs","parentComponentName","stopPropagation","tagName","getDemographics","demographicData","updateAccountCodes","toggleAccountType","newValue","hide","domElement","toggleInputStatus","disabled","TOGGLE_CREATE_ACCOUNT_FORM_INPUTS","loggedInUserCountry","$parentComponent","$downloadLinksMissingHref","promptForUndownloadableProduct","PRODUCT_DOWNLOAD_DISPLAY_MESSAGES","PRODUCT_DOWNLOAD_MESSAGE_FIELDS","UNDOWNLOADABLE_ERROR","$spouseInfoForm","redirectToSecureProject","project","secureProjectSessionKey","secureMatchingText","projectCode","frequency","isOtherSelected","relatedAccount","sessionStorage","setItem","JSON","stringify","_setSmartyStreetsFields","standardizationStatus","standardizationMessage","ADDRESS_VERIFICATION_STATUSES_ATTRIBUTES","USER_CERTIFIED","ADDRESS_VERIFICATION_STATUSES","VERIFIED","ERROR","standardizationResult","provider","ADDRESS_VERIFICATION_PROVIDERS","SMARTYSTREETS","_extends","arguments","hasOwnProperty","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","__proto__","_inherits","create","_setPrototypeOf","PropTypes","SimpleDropdownFromWizard","AccountAddressTypeSelector","_React$Component","render","React","props","thisArg","config","addressTypeConfig","wizard","wizardValuesKey","configKey","reactComponentName","selectClassName","optionsClassName","selectNameAttribute","Component","propTypes","bool","object","required","theme","string","context","isCustomTheme","childClass","dataComponentId","dataNestedId","dataRepeatedId","reactComponentCategory","accountCommunicationFormComponentSelector","propertySelector","codeSelector","dateSelector","noteSelector","numberSelector","nonCheckableFieldsSelector","checkableFormFieldsSelector","$accountCommunicationFormComponent","communication","serializeCommunicationForm","clearCommunicationForm","properties","serializeProperties","codes","serializeCodes","dates","serializeDates","notes","serializeNotes","numbers","serializeNumbers","propertiesArray","getGeneralInputValues","property","values","shortComment","substring","filter","isDeleted","date","note","longComment","initializeIntegerInput","defaultValue","greaterThanZero","allowNegative","customValidator","errorMessages","validateDates","dateInvalidMessage","FORM_VALIDATION_MESSAGES","INVALID_DATE","number","$selectComponentsWithDefaults","keyMirror","AccountEmailTypeSelector","state","initialValue","_onChange","handleEmailTypeSelected","currentTarget","getParentFormId","_isMounted","$formParent","getParentForm","parentFormIdForUpdateAllowed","$parentFormForUpdateAllowed","getParentFormIdFromForm","setState","componentDidMount","updateAllowed","addSpecificListener","addChangeListener","componentWillUnmount","removeChangeListener","removeSpecificListener","emailTypeConfig","DefaultBillingAndShippingAddressHelper","getPrimaryCreateAccountFormId","$primaryForm","getPrimaryAddressFormName","$createAccountForm","hasCreateAccountForm","hasAddressComponents","hasPrimaryAddressForm","primaryAddressFormName","mediaOutlet","serializeCreateAccountFormOnly","selector","useSelectorFunction","selectorFunctionName","getMediaOutlet","accountFormId","createAccountFormSelector","serializeCheckboxes","line1","line2","line3","line4","city","postalCode","country","createAddressIfNotExists","setSmartyStreetsFields","_verifyCountry","$countrySelector","getUnknownCountry","$mediaInput","field","btoa","reactComponent","ReactDOM","findDOMNode","formId","match","lastIndexOf","endsWith","store","parse","foundError","messageGuaranteedConstituentSafe","ACCOUNT_CREATE_ERROR","messagesByField","Array","isArray","messageByField","messages","fieldMessage","shouldValidate","initializeAccountForm","$accountForm","firstName","middleName","lastName","suffix","email","phone","areaCode","phoneNumber","initializeAccountFormListeners","callbackFunction","change","createGiftAccountFormSelector","otherAddressAddFormSelector","billingAddressAddFormSelector","hasPopulatedAccountForm","hasGiftAccount","hasOtherAddress","hasCreateAccount","loggedIn","$createGiftAccountForm","isFormPopulated","$otherAddressEditForm","$savedPayments","shipToSelection","$formSelector","accountObject","zip","validateShippingAddress","_options","checkoutStoreRef","shippingAddressType","bypassShippingValidation","isShippingMissingResult","getIsShippingMethodRequiredAndMissing","isMissing","err","SHIPPING_MESSAGES","SHIPPING_MESSAGE_FIELDS","GIFT_RECIPIENT_MISSING","isAddFormUsedForAdd","SHIPPING_ADDRESS_INCOMPLETE","SHIPPING_ADDRESS_MISSING","$addressForm","NEW_SHIPPING_ADDRESS_INCOMPLETE","validatePrimaryAddress","_options2","classNames","AccountMediaSelector","fetchValue","onChange","updateAvailableValues","addHtmlChangeEvent","inputName","$input","findHtmlInput","inputType","removeHtmlChangeEvent","handleValueSelected","getDisabledState","parentFormId","$firstParentForm","setDisabledState","isDisabled","removeClass","useAccountDefaultFilterValues","requestData","defaultCityFilter","defaultCountryFilter","currentMedia","defaultPostalCodeFilter","defaultStateFilter","currentRequestString","getMediaValuesByAddress","items","parent","ComponentActions","childComponentLoaded","addMediaSelectorListeners","componentDidUpdate","nextProps","nextState","childComponentUnloaded","dataChildOf","className","style","dataRequired","availableValue","id","description","AccountPhoneTypeSelector","handlePhoneTypeSelected","phoneTypeConfig","EventEmitter","AbstractStore","CHANGE_EVENT","availableMediaValues","companyCode","formIsInputDisabledByForm","selectedCountryByForm","selectedEmailTypeByForm","selectedOrganizationTypeForm","selectedPaymentTypesByUniqueName","selectedPhoneTypeByForm","selectedStateByForm","selectedTitleByForm","shouldOpenReportsInNewTab","wizardAccountDisplayMessages","wizardAccountTitles","wizardChildCommunicationsWriteDisplayMessages","wizardCompanyEftErrorMessages","wizardCompanyErrorMessages","wizardCountryList","wizardCountryStateList","wizardCreditCardDisplayMessages","wizardDefaultAddressTypes","wizardDefaultEmailTypes","wizardDefaultPhoneTypes","wizardDocumentsConfiguration","wizardDocumentsDisplayMessages","wizardEventSearch","wizardLoginDisplayMessages","wizardMySponsorshipsDisplayMessages","wizardMyRecurringDisplayMessages","wizardOrganizationContactTypes","wizardOrganizationTypes","wizardOtherAddressesDisplayMessages","wizardPlaidDisplayMessages","wizardPledgeStatementEntry","wizardReportDisplayMessages","wizardSavedPaymentsDisplayMessages","wizardShoppingCartDisplayMessages","wizardSmartyStreetsApiKey","wizardSponsorshipDefaults","wizardYearEndGivingStatementDisplayMessages","_AbstractStore","eventName","callback","removeListener","emitSpecificEvent","emit","stateType","debug","emitChange","defaultCountry","defaultNoAddressCountry","dispatchToken","register","wizardMyPledgesDisplayMessages","wizardProductDownloadDisplayMessages","AccountTitleSelector","handleTitleSelected","titleConfig","BillingAddressSelectionTypes","BILLING_ADDRESS_SELECTION_TYPES","BillingAddressHelper","defaultBillingAddressType","selectDefaultBillingAddressTypes","initializeAddressFormListeners","$billingAddressSelectors","handleAddressSelection","setAddressInputListeners","addressInputSelectors","$selector","updateNewAddressInSelector","$parentSelector","handleShowOtherAddresses","$otherAddresses","$addFormSelectOption","$billingAddress","$options","$addForm","$selectedOption","getBillingAddressInformation","$paymentTypeComponent","selectionType","DEFAULT","NEW","NEW_PRIMARY","NEW_SHIPPING","EXISTING","addFormData","removeNewShippingAddressOptionFromSelector","removeOptionFromSelector","removeExistingAddressOptionFromSelector","addressId","$optionSelector","$billingAddressSelector","$optionToDelete","$defaultBillingOption","remove","updateEditedAddressInSelector","addressData","formattedAddress","generateFormattedAddress","$editedAddressOption","text","updateOptionAddressDataAttributes","addressFormSelector","isNewShippingAddress","isNewPrimaryAddress","shouldAutoSelectDefaultBillingOption","$optionToUpdate","$newAddressOption","before","$option","addressFormData","isPrimary","isDefaultBilling","isDefaultShipping","formatOptions","getFormatOptions","addressFormat","separator","defaultBillingDesignation","includes","defaultBillingDesignationPosition","textAreaSelector","writeCommunicationsSelector","ChildCommunicationsHelper","saveChildCommunications","CHILD_COMMUNICATIONS_MESSAGES","confirmSend","$target","$textArea","communicationData","sponsorshipId","pathname","childCommunicationsSaveCommunication","stayFunction","overrideMessage","successMessage","sendSuccess","success","reload","onStayMessage","initializeListeners","handlePaste","clipboardData","pastedData","originalEvent","getData","replace","execCommand","$communicationForm","CountrySelector","countryConfig","availableCountries","allowedAvailableCountries","availableCountry","useDefaultDescription","slice","allowedIndex","splice","handleCountrySelected","$accountAddressDefaultBillingCheckbox","$otherInputs","$accountAddressDefaultShippingCheckbox","$defaultBillingCheckboxInput","$defaultShippingCheckboxInput","HtmlHelper","singleDocumentSelector","singleDocumentTypeSelector","$documentsComponent","click","$documentType","GivingStatementRequestFormSelector","PrintGivingStatementButtonSelector","StartDateSelector","EndDateSelector","formatDate","dateObj","format","getDateFromString","dateString","moment","year","submitRequest","initializePrintButtons","button","$button","printGivingStatement","print","startMoment","endMoment","YEAR_END_GIVING_STATEMENT_DISPLAY_MESSAGES","YEAR_END_GIVING_STATEMENT_MESSAGE_FIELDS","isSameOrAfter","INVALID_DATE_RANGE","urlString","MyPledgesEditFrequencySelector","frequencies","ProjectStore","_get","p","_superPropBase","getOwnPropertyDescriptor","_AbstractPledgeManage","getMyPledgeHtml","isEditing","myPledgeGet","$data","$newEditForm","newId","setUniqueFormId","replaceWith","focusAndSelectFirstField","cancelMyPledgeEdit","myPledgesCancel","$pledges","refresh","deleteChildOfColumnAndPromoteColumnChildren","editMyPledge","makeDonationToPledgeShortComment","myPledgesMakeDonation","SHOPPING_CART_MESSAGES","SHOPPING_CART_MESSAGE_FIELDS","ADD_TO_CART_ERROR","tangibleType","initializeMyPledgesEdit","saveMyPledge","myPledgesEdit","MyRecurringHeaderEditFrequencySelectorComponent","hideEmptyOption","MyRecurringHeaderEditUseOnDaySelectorComponent","useOnDays","myPledgesSelector","mySponsorshipsSelector","myRecurringDonationEditDonationAmountSelector","myRecurringDonationsSelector","myRecurringDonationsPopulatedViewSelector","myRecurringDonationsEditSelector","myRecurringHeaderSelector","myRecurringHeaderViewSelector","myRecurringHeaderEditSelector","myRecurringPaymentSelector","myRecurringPaymentEditSelector","myRecurringPaymentViewSelector","cancelRecurringDonationEdit","$donationEdit","cancelRecurringHeaderEdit","$headerEdit","cancelRecurringPaymentEdit","$paymentEdit","usingPayment","cancelWholeRecurring","cancelRecurring","$currentRecurring","recurringId","myRecurringCancel","deleteRecurringDonation","$donationPopulatedView","deleteRecurringDonationWithPledge","myRecurringDeleteDonation","deleteType","editRecurringDonation","$donationView","editRecurringHeader","$headerView","editRecurringPayment","$paymentView","saveRecurringDonation","myRecurringComponentId","oldPledgeId","$editDonationComponent","$editDonationForm","editDonationData","donationAmount","donationAmountGreaterThanZero","myRecurringEditDonation","postSubmitActionData","$newHeader","$newDonation","replaceMyRecurringSubComponent","_refreshAssociatedPledgeHtml","saveRecurringHeader","$donations","$editHeaderForm","editHeaderData","myRecurringEditHeader","saveRecurringPayment","getPaymentData","paymentInformation","isNewBillingAddress","billingAddressInformation","saveEditedPayment","myRecurringEditPayment","$newPayment","clearPaymentData","oldRecurringPledgeId","newRecurringPledgeId","$pledgeContainer","$pledgeDonations","$sponsorshipContainer","$sponsorshipDonations","_getMySponsorshipHtml","$allData","$newData","$currentSingleRecurring","append","$oldData","addIdToDataComponents","unmountComponentAtNode","parentElement","myRecurringId","myRecurringGetRecurring","$paymentForms","paymentForm","$paymentForm","newPaymentFormId","$donationForms","donationForm","$donationForm","newDonationFormId","initializeMyRecurringsBillingAddressesAdd","$billingAddressAddForm","newFormId","getId","PostalCodeHelper","addCountryChangeListeners","$myRelationshipPledgesComponent","relationshipType","relationshipRelatedType","myRelationshipPledgesMakeDonation","SponsorshipHelper","singleEditSponsorshipSelector","MySponsorshipsEditFrequencySelector","canEdit","handleFrequencySelected","$editSponsorship","calculateUpdatedTotalForMySponsorships","updateSponsorshipAmountComponent","formattedAmount","formatAmount","singleSponsorshipEditComponentName","newSponsorshipId","$currentSponsorship","cancelMySponsorshipEdit","cancelWholeSponsorship","$sponsorships","editMySponsorship","sponsorshipIds","initializeMySponsorshipsEdit","initializeMySponsorshipsButtons","saveMySponsorship","editSponsorshipData","MySubscriptionsRefresh","SavedPaymentsApi","MySubscriptionsHelper","cancelMagazineEmailSubscriptionEdit","toggleEditSubscription","cancelMagazineMailSubscriptionEdit","cancelMembershipSubscriptionEdit","cancelProductSubscriptionEdit","editMagazineEmailSubscription","editMagazineMailSubscription","editMembershipSubscription","editProductSubscription","initializeEditLinks","initializeRenewLinks","processSubscriptionUpdate","editComponentSelector","getEditSelector","$updateForm","$editComponent","$singleSubscriptionComponent","getSinglePopulatedSelector","$editAccountForm","$autoRenewCheckbox","$editPaymentCheckbox","subscriptionId","subscription","isAutoRenewCheckboxValue","isAutoRenew","autoRenew","isEditPayment","hostedPageTokenObject","payment","paymentResponse","mySubscriptionsEdit","savedPaymentId","getSubscriptionSelector","_updateSuccess","savedPaymentForSubscriptionError","hasAlerted","getViewSelector","getMySubscriptionsHtml","shouldReloadPage","subscriptionType","submitAction","$currentSubscription","mySubscriptionId","mySubscriptionComponentId","mySubscriptionsGetSubscription","initializeEditComponent","$autoRenewCheckboxComponent","$autoRenewInput","$editPaymentComponent","$editPaymentInput","$paymentType","$submitButton","deliveryAccount","deliveryAddress","deliveryEmail","initializeMySubscriptionsBillingAddressesAdd","supportsAutoRenew","subscriptionStatus","autoRenewEvent","$clickedElement","isAutoRenewChecked","$allAutoRenewCheckboxesInSubscription","add","css","editPaymentEvent","isEditPaymentChecked","$allEditPaymentCheckboxesInSubscription","allowedStatusesForVisible","initializeSingleLink","linkSelector","singleSubscriptionSelector","link","$link","OrganizationContactTypeSelector","organizationContactTypeConfig","OrganizationTypeSelector","handleOrganizationTypeSelected","organizationTypeConfig","otherAddressesSingleAddressEditComponentName","otherAddressesSelector","addFormSelector","singleAddressSelector","singleAddressViewSelector","populatedAddressWrapperSelector","otherAddressesAddSmartyStreetsInstance","otherAddressesEditSmartyStreetsInstance","OtherAddressesHelper","$addFormSelector","cancelEditOtherAddress","$currentAddress","_getOtherAddressHtml","removeOtherAddressEdit","cancelAddOtherAddress","_clearAddEditFieldsAndToggle","deleteOtherAddress","otherAddressesDisplayMessagesWizard","BootstrapDialog","TYPE_PRIMARY","MODAL_TITLES","INFORMATION","OK","billingAddressDeleteMessage","deleteConfirmation","otherAddressDelete","editOtherAddress","$editAddressForm","$addressFormComponent","newAddressFormId","initializeForOtherAddressesEdit","addOtherAddress","otherAddressesComponentId","otherAddressAdd","$firstSingleAddress","handleNewOtherAddressAdded","numberOfColumns","$lastRow","currentColumns","$newColumn","clone","empty","saveEditOtherAddress","submitOtherAddress","otherAddressEdit","showAddNewOtherAddress","newScrollPosition","offset","top","height","scrollTop","animate","$addEditForm","toggle","clearVerification","otherAddressesGet","handlePhoneNumberInputFormat","$countryCode","countryCodeInputValue","isCountryInUsOrCanada","$countryCodeInput","$areaCodes","altKey","selectionEnd","selectionStart","which","KEYS","DELETE","BACKSPACE","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","ARROW_LEFT","TAB","ESCAPE","HOME","END","PAGE_UP","PAGE_DOWN","$phoneNumbers","toUpperCase","PledgeStatementApi","$pledgeStatementFormComponent","pledgeStatementData","submitPledgeStatement","defaultErrorMessage","PLEDGE_STATEMENT_ENTRY_FIELDS","INVALID_ACCOUNT_OR_PLEDGE_STATEMENT_MESSAGE","responseObject","SESSION_ABANDONMENT_WARNING_MESSAGE","shouldAbandonPledgeStatementSession","postalCodeFormatWizard","eventSearchPostalCodeSelectorText","$postalCodes","hasAttribute","setAttribute","$country","isCountryAvailable","onCountryChange","countryCode","applyPostalCodeAttributesByCountry","$postalCode","formatRegex","isPostalCodeNumeric","isEventSearchFormPostalCode","removeAttr","reportsComponentSelector","reportSelectSelector","reportParametersComponentSelector","reportButtonSelector","decimalNumberSelector","wholeNumberSelector","downloadReport","loadReportParameters","$reportsComponent","_initializeInputs","_initializeDates","_initializeWholeNumbers","_initializeDecimalNumbers","initializeDecimalInput","report","serializeReport","wizardName","REPORT_DISPLAY_MESSAGES","wizardFields","REPORT_DISPLAY_MESSAGES_FIELDS","REPORT_CONFIGURATION_CHANGED","$reportParametersComponent","reportId","reportParametersComponentId","_loadReportParameters","getReportParameters","$partial","$reportsSelectorComponent","$reportsParametersComponent","$parameterComponents","parameterName","parameterValue","creditCardsAndEftsSelector","isPrimaryCheckboxSelector","isPrimaryDataDrivenSelector","savedPaymentsSelector","addNewSavedPaymentSelector","billingAddressesAddSmartyStreetsInstanceName","isCheckout","$creditCardsAndEfts","$checkboxElements","_changePrimarySavedPayment","$newSavedPayment","$newSavedPaymentPrimaryCheckbox","_handleNewPaymentIsPrimaryChange","$newSavedPaymentSavePaymentCheckbox","_handleNewPaymentSavePaymentChange","_showAddNewPayment","returnedEvent","$savedPaymentComponent","$savedPaymentCheckoutSelector","_isDesignMode","_getWizardValue","SAVED_PAYMENT_DISPLAY_MESSAGES","SAVED_PAYMENT_DISPLAY_MESSAGES_FIELDS","CANNOT_DELETE_BECAUSE_OF_RECURRING","CANNOT_DELETE_BECAUSE_OF_AUTO_RENEWING_SUBSCRIPTION","$savedPayment","localName","_confirmAndUpdateSavedPayment","$isPrimaryCheckbox","$savePaymentCheckbox","shouldMakePrimary","MAKE_PRIMARY_CONFIRMATION_MESSAGE","MAKE_PRIMARY_CONFIRMATION_CONFIRM_BUTTON_TEXT","MAKE_PRIMARY_CONFIRMATION_CANCEL_BUTTON_TEXT","_updateOrResetSavedPayment","REMOVE_DEFAULT_CONFIRMATION_MESSAGE","REMOVE_DEFAULT_CONFIRMATION_CONFIRM_BUTTON_TEXT","REMOVE_DEFAULT_CONFIRMATION_CANCEL_BUTTON_TEXT","shouldUpdate","_updateSavedPayment","_updateSavedPaymentsDisplay","$savedPaymentsComponent","updateSavedPayment","MAKE_PRIMARY_ERROR_TEXT","REMOVE_DEFAULT_ERROR_TEXT","updateWasSuccessful","$allCheckboxes","$allIsPrimaryDataDrivenLabels","$isPrimaryDataDrivenLabel","$savedPaymentAddNewComponent","addSavedPayment","SAVED_PAYMENT_ERROR","wizardField","wizardValue","CheckoutActions","SmartyStreetsAutocomplete","SmartyStreetsVerify","SmartyStreetsApi","smartyStreetsOptions","smartyStreetsInstances","addressStandardizationWizard","isSmartyStreetsEnabled","instanceName","themeId","getSmartyStreetsHtml","restrictedCountries","smartyStreetsVerifyInstance","smartyStreetsApiKeyWizard","apiKey","smartyStreetsAutocompleteInstance","initializeForCreateAccount","_initializeForm","initializeForCreateGiftAccount","initializeForEventRegistration","initializeForBillingAddressesAdd","initializeForSubscriptionPurchase","removeEventRegistration","formSelector","address1InputSelector","address2InputSelector","address3InputSelector","address4InputSelector","cityInputSelector","countryInputSelector","postalCodeInputSelector","stateInputSharedSelector","stateInputSelectSelector","stateInputTextSelector","logErrorAndReturnResolvedDeferred","logDebugAndReturnResolvedDeferred","smartyAutocompleteSelector","smartySuggestionWrapperSelector","smartySuggestionSelector","activeSelector","smartyActiveSuggestionSelector","activeClass","cityAttribute","entriesAttribute","secondaryAttribute","stateAttribute","streetAttribute","postalCodeAttribute","addressVerifiedAttribute","autocompleteHtml","$address1Input","downArrowPressed","upArrowPressed","ENTER","enterKeyPressedOrMouseClicked","removeAutocomplete","addressChanged","manual","$addressLine1","addressText","_getSelectedCountry","lastAddress","selected","COUNTRIES","US","USA","latestAutocompleteRequest","abort","autoCompleteAddress","singleLineAddress","$suggestionHtml","bold","addressSpan","suggestions","firstSuggestion","suggestion","street_line","$singleSuggestion","$addressSpanElement","secondaryText","entries","secondary","multipleEntriesText","streetLineText","suggestionDisplayText","rest","$boldElement","zipcode","after","Math","max","outerWidth","_addEventListeners","position","topPixelText","outerHeight","left","maxHeight","overflow","$suggestionElement","hover","mousedown","$autoComplete","$activeElement","$nextElement","next","$active","street","smartyStreetsFormattedSelectedText","blur","$prevElement","prev","smartyPopupSelector","smartyPopupTypedAddressSelector","smartyGoBackSelector","smartyConstituentCertifiedSelector","smartySecondaryInputSelector","smartySecondarySubmitSelector","smartyAmbiguousChoiceSelector","smartyAmbiguousChoiceIndexAttribute","addressUserVerifiedAttribute","addressVerificationErrorAttribute","missingSecondaryPopupHtml","notEnoughInformationPopupHtml","unknownAddressPopupHtml","ambiguousAddressPopupHtml","addListener","initialized","_isAddressFormVerifiable","addressInputs","_getAddressInputs","hasCountry","hasStreet","address1","hasCity","hasPostalCode","hasState","address2","address3","address4","_anyAddressDataChanged","isAddressVerified","_setAddressUnverified","secondaryInformation","_isAddressEmptyAndVoluntary","_isEnoughInformation","_showNotEnoughInformationMessage","restrictedCountry","_verifyAddress","_setAddressVerificationErrored","_setAddressVerified","verifying","_setAddressValueIfChanged","_getCurrentAddressData","street2","street3","street4","addressInformation","_deleteFalsyValues","_currentAddressToString","addressString","_appendToString","cityStateString","shouldRemoveState","shouldRemovePostalCode","currentString","delimiter","logErrorAndReturnRejectedDeferred","secondaryNumber","standardizeAddress","_verifyAddressSuccess","_handleStandardizationError","currentAddressInformation","_isMissingSecondaryResponse","_showMissingSecondaryInformation","_isInvalidResponse","_showUnknownAddress","_isAmbiguousResponse","_showAmbiguousAddress","_isSkippedStandardizationResponse","_isValid","matchInfo","candidates","_setAddressFields","keys","isAddressEmptyAndVoluntary","addressResponse","shouldPromptUserConfirmation","isSuccessful","isMissingSecondaryNumber","validatedDate","dataChanged","_setSingleAddressField","valueChanged","_getValueFromSmartyStreetAddressComponents","addressComponents","fields","_setSingleAddressDataFromFieldArray","singleValue","_formatResponseAddress","_setAddressInElement","addressArray","addressPiece","createTextNode","$ambiguousHtml","$smartyChoice","$currentChoice","isUsOrCanada","_showAndAddClickEvents","$popup","addresses","self","_removePopup","_showInvalidAddress","$unknownAddressHtmlElement","$missingSecondaryHtmlElement","processSecondarySubmit","verifyInstance","keydown","focus","additionalEventInitializer","appendTo","shouldHideUseAsIsButton","width","userEnteredState","userEnteredPostalCode","_popupEscapeHandler","StateSelector","stateConfig","isAddressVerificationEnabled","alreadyDefaultedStatesFromWizard","availableState","upperCaseKey","allowedStates","availableStates","initialInputType","placeholderText","handleStateSelected","handleModifierSelectedChange","modifierSelected","updatePropsForRemounting","isStandardizableCountry","isSelect","textStyle","pointerEvents","textTransform","hidden","maxLength","onBlur","placeholder","Logger","useDefaults","defaultLevel","CreditCardHelper","EventSearchActions","EventSearchStore","MyRecurringHeaderEditFrequencySelector","MyRecurringHeaderEditUseOnDaySelector","PaymentTypeSelector","SubscriptionHelper","keepDecimals","includeThousandsSeparator","jQuery","formatAmountValue","includeCurrencySymbol","showDecimals","parseFloat","numberDecimals","toFixed","parts","toString","currencyFormat","thousandsSeparator","padEnd","join","decimalSeparator","currencySymbol","isCurrencySymbolInFront","formatDecimal","formatDecimalValue","formattedDecimal","replaceAmountDecimalSymbols","numberString","convertFormattedAmountToNumberString","useCurrencyFormatDecimalSeparator","currencyRegex","RegExp","escapeRegExp","decimalRegex","thousandsRegex","preventDefaultInDesignMode","$hiddenInputs","ProductActions","CarouselStore","CarouselActions","CAROUSEL_INITIALIZE","initializeCarousels","$currentCarousel","readyState","_initializeCarousels","handleTouchStart","handleTouchEnd","handleSwipe","$carousels","carousel","$carousel","initializeResultSuggestedDonations","ProductVariantsHelper","initializeProductVariants","getNextPage","_getCarousel","carouselData","_getCarouselData","currentPage","limit","totalRecords","requestedPage","requestUrl","_buildPageUrl","load","statusText","$this","unwrap","CAROUSEL_NEXT_PAGE","carouselId","getPreviousPage","CAROUSEL_PREVIOUS_PAGE","categoryId","tangibleCode","layoutId","url","params","changedTouches","CAROUSEL_TOUCH_START","touchstartX","screenX","CAROUSEL_TOUCH_END","touchendX","swipeBuffer","touchDiff","abs","GridListToggleHelper","ProjectActions","HistoryHelper","CategoryActions","initializeGridListToggle","previouslySelectedView","CATEGORY_INITIALIZE","navigateToCategory","categoryUrl","navigateToTangible","tangibleUrl","addToCart","addAndStay","afterSubmit","$item","dataComponent","handlePopState","currentQueryObject","additionalOptions","_categorySearch","purgeHistoryState","queryObjectsToDelete","updateId","isCategoryPage","updateHistoryStateAfterLoad","newQueryObject","ContactUsApi","ContactUsStore","ContactUsActions","CONTACT_US_INITIALIZE","submitContactUsRequest","selectorFunction","formType","_getFormValueOrDefault","summary","comment","allowUpdate","submissionData","parentComponent","attributeName","formValue","EmailSubscriptionApi","WizardStore","EmailSubscriptionStore","EmailSubscriptionActions","getDefaultEmailSubscriptionTypes","getValue","getEmailSubscriptionFormError","failedSubscriptions","EMAIL_SUBSCRIPTION_MESSAGES","EMAIL_SUBSCRIPTION_MESSAGE_FIELDS","EMAIL_SUBSCRIPTION_FORM_ERROR","getMyEmailSubscriptionError","MY_EMAIL_SUBSCRIPTIONS_ERROR","initializeEmailSubscriptionForm","EMAIL_SUBSCRIPTION_INITIALIZE","$subscriptionForms","submitEmailSubscriptionRequest","accountForm","accountFormNewId","$firstComponent","initializeMyEmailSubscriptions","form","$submitForm","submitAccountEmailSubscriptions","getEmailSubscriptions","failureCallback","alwaysCallback","asyncCallback","async","input","isSubscribing","subscribe","unsubscribe","typesModelString","typesModel","failedSubscriptionsDisplayString","subType","subTypeDescription","$emailSubscriptionForm","defaultEmailSubscriptionType","eachComponent","showInvalidInputsDialog","shouldEncodePassed","sourceCode","getQueryObject","source","subscriptionTypesToProcess","defaultSubscriptionType","$multipleSubscriptionTypes","eachItem","$eachItem","subscriptionTypes","$selectedCheckbox","$currentComponent","EventSearchApi","QueryStringHelper","changeEventSearchType","$selectorComponent","$searchForm","$distanceSearch","$stateSearch","initializeEventSearch","EVENT_SEARCH_INITIALIZE","$wrapper","_submitEventSearchForm","layoutName","lastUpdateId","query","search","createObjectFromQueryString","_","defer","_updateSearchFormFields","foundInput","$firstSearchForm","_performEventSearchFromSearchForm","initializeEventSearchResultsButton","_initializeGridListToggle","onpopstate","_handlePopState","$eventResult","$buttonElements","mouseDownId","_navigateToTangible","linkElements","performEventSearch","eventSearchResultsId","pageNumber","criteria","currentUpdateId","$eventSearchResultsComponents","_getCriteria","eventSearchResultsComponent","$eventSearchResultsComponent","additionalSearchOptions","gridOrListSelected","elementIndex","doNotPushState","searchObject","_updateHistoryStateAfterSearch","$neweventSearchResultsComponent","$window","distanceToTop","_resetSearch","_getCountry","$eventTypesWrapper","$visibleSearchType","EVENT_SEARCH","EVENT_SEARCH_FIELDS","DEFAULT_COUNTRY","$eventSearchForm","searchType","_getEventSearchType","eventTypes","distance","$eventTypeSelector","$visibleEventType","isInitialSearch","open","deleteUndefinedValues","$eventSearchFormComponents","isFunction","ExpanderStore","ExpanderActions","EXPANDER_INITIALIZE","$expander","$content","toggleExpander","windows","isDesigner","$expanderComponent","LogoutApi","LogoutStore","LogoutActions","LOGOUT_INITIALIZE","initializeLogout","logoutComponent","logout","removeItem","LOGOUT_ERROR","NavigationStore","deviceWidths","DEVICE_MIN_WIDTHS","NavigationActions","NAVIGATION_INITIALIZE","toggleSelected","handledEvent","isPrimaryNavigation","unselect","$selectedElements","$navigationItem","innerWidth","DESKTOP","siblings","toggleHamburger","noMobileLink","_defineProperty","CheckoutApi","ProjectConstants","PledgeStore","PledgeActions","PLEDGE_INITIALIZE","pledge","pledgeCode","PledgeCode","isSecure","getIsSecure","pledgeCacheKey","cachedValues","getItem","startDate","SET_RECURRING_START_DATE","selectedStartDate","_updateIsChargeTodayInCheckoutStore","isCreateRecurringChecked","showRecurringUseOnDay","isRecurringUpsell","setUpsell","isDonateTodayChecked","CHECKOUT_COMPLETED","hasClass","pledgeInformation","getPledgeInformation","pledgeCache","upsell","useOnDay","handleDonateTodayChanged","showSponsorshipNotAvailableMessage","SPONSORSHIP_DISPLAY_MESSAGES","SPONSORSHIP_DISPLAY_MESSAGES_FIELDS","SPONSORSHIP_NOT_AVAILABLE","setSponsorshipAvailablity","isSponsorshipAvailable","SPONSORSHIP_AVAILABLITY","setGiftAmount","selectedAmount","PLEDGE_SET_GIFT_AMOUNT","setMinimumAmount","minimumAmount","PLEDGE_SET_MINIMUM_AMOUNT","setFrequency","selectedFrequency","PLEDGE_SET_FREQUENCY","pledgeProjectOptions","SET_DONATION_FREQUENCY","_projectDispatcher","triggerTotalChangedHandler","getShoppingCartData","cartDataOptions","_PledgeStore$getPledg","isRecurring","getRequireRecurring","donateTodaySelected","getRequireDonation","pledges","$createRecurringCheckbox","getCachedValues","cachedData","successCallback","componentsToAdd","$elements","shoppingCartData","addToCartResponse","shouldHidePaymentInformation","_PledgeStore$getPledg2","hideOneTimeOnlyPayments","hideAllPayments","setChangeHandlerMethod","handleTotalChange","_handleTotalChange","setIsSecure","setProjectDispatcher","projectDispatcher","setSecurePledgesWizard","securePledgesWizard","SuggestedDonationHelper","ProductStore","setQuantity","selectedQuantity","isInitialization","PRODUCT_SET_QUANTITY","reapplyOnePageCoupon","$suggestedDonationComponent","contextType","orderInformation","getOrderInformation","product","isShippable","quantity","suggestedDonation","warehouse","defaultSuggestedDonation","userEnteredSuggestedDonation","cartItems","products","suggestedDonationUserProvided","componentContext","$resultItem","productCode","suggestedDonationAmount","initializeDonationAmount","initializeProducts","checkoutDispatcher","hasSuggestedDonation","isSearchOrCategory","TAX_UPDATED","taxAmount","PRODUCT_INITIALIZE","SearchApi","SearchActions","recordClicked","searchInformation","_lastSearchInformation","searchResultsId","resetSearch","searchText","newQueryStringObject","replaceHistoryState","_searchText","updateHistoryStateAfterSearch","category","ShipToStore","ShipToActions","SHIPTO_INITIALIZE","toggleShipToSelector","$shipTo","SHIPTO_SET_SELECTOR","selectorValue","SlideShowStore","getValidSlideIndex","currentSlideIndex","$slides","SlideShowActions","SLIDESHOW_INITIALIZE","startSlideShow","initializeSlideShow","getTargetDataComponent","querySelectorAll","slideShows","animateSlideTransition","$pages","nextSlideIndex","$outgoingSlide","eq","$incomingSlide","outgoingZindex","incomingZindex","SLIDESHOW_CHANGE_SLIDE","slideIndex","$slideShow","pauseTime","SLIDESHOW_STARTED","intervalId","setInterval","advanceSlideShow","stopSlideShow","SLIDESHOW_STOPPED","$slideDeck","$paging","showSlide","touchEndSlideIndex","page","console","log","setActiveSlide","SLIDESHOW_TOUCH_START","SLIDESHOW_TOUCH_END","TabStore","TabActions","TABS_INITIALIZE","openTab","dataTab","$tabContainer","$tabContentContainer","$selectedTabContents","sendTracking","eventData","isSessionData","client","XMLHttpRequest","setRequestHeader","send","soTrackPageData","pageData","soTrackSessionData","sessionData","AbstractApi","ajaxSettings","_processQueryString","ajax","_logError","post","_requestWithBody","put","_delete","download","xmlHttpRequestSettings","request","responseType","onload","contentDisposition","getResponseHeader","responseURL","fileInfo","getFileInfo","defaultFileName","shouldOpenInNewTab","mimeType","baseUrl","origin","urlEncodedFileName","encodeURIComponent","fileName","urlEncodedDocumentCode","downloadLink","display","body","appendChild","removeChild","URL","revokeObjectURL","createObjectURL","onabort","onerror","settings","_removeCaptchaSpinner","challenge","isChallengeVisible","has","queryString","createQueryString","reCAPTCHA","headers","reCAPTCHAResponseToken","_performRequestWithBody","one","token","callingReCAPTCHA","grecaptcha","execute","contentType","convertEmptyValuesToNull","queryParameterOverrides","QUERY_PARAMETER_OVERRIDES","_AbstractApi","passwordChangeOptions","primaryContactInformation","convertObjectWithAllNullPropertiesToNull","spouseInformation","organizationName","organizationType","sponsorshipType","myPledgesComponentId","donationData","recurringHeaderData","paymentData","documentFileName","credentials","passwordResetOptions","navigator","mimeTypes","ApplePayApi","createApplePayPaymentSession","validationUrl","contactUsRequestData","emailSubscriptionRequestData","isUnsubscribing","isDistanceInKilometers","searchId","PlaidApi","generatePlaidLinkToken","getEftAccountData","publicToken","accounts","savedPaymentData","createHostedPageTokenFromSavedPayment","apiKeyWizard","geolocate","geolocatePrecision","verifyUsAddress","inputId","SponsorshipApi","isAvailableForSponsorship","sponsorshipCode","CheckoutHelper","setTimeout","applePayConfiguration","getApplePayConfiguration","$applePayButton","enableApplePay","PaymentRequest","onApplePayButtonClicked","getComponentsForCheckoutValidation","CHECKOUT_VALIDATION_TYPES","ALTERNATIVE_BUTTON_CHECKOUT","addressStandardizationOptions","applePayErrorMessages","getApplePayDisplayMessages","sessionErrorLogMessage","paymentCreationErrorLogMessage","validateCheckout","validationResult","getCheckoutData","dataToSend","validateWithReCAPTCHA","paymentRequest","getApplePayPaymentRequest","startApplePayPaymentSession","performApplePayCheckout","paymentMethodData","merchantIdentifier","merchantCountry","paymentDetails","merchantDisplayName","getTotalAmount","getCurrency","paymentOptions","handleApplePayError","paymentUnavailable","onmerchantvalidation","validationURL","paymentSessionResponse","session","paymentSession","complete","getApplePayPaymentInformation","processPreTokenizedPaymentCheckout","dismissPaymentSheet","tokenizationFailed","shouldSkipAlert","details","paymentMethod","hostedPageToken","createHostedPageTokenFromApplePayResponseToken","cardType","network","last4Digits","displayName","signature","header","ephemeralPublicKey","transactionId","publicKeyHash","logMessage","completionStatus","CheckoutStore","CartItemQuantity","getStateFromStore","focused","handleBlur","isValidQuantity","setProductQuantity","cartItemId","updateProduct","handleFocus","handleAmountChange","getProductQuantity","onFocus","inputMode","CartItemUseOnDay","wizardUseOnDays","allowedUseOnDays","handleChange","setDonationUseOnDay","updateDonation","selectedUseOnDay","getDonationUseOnDay","enabled","getDonationFrequency","showEmpty","findIndex","defaultProps","arrayOf","shape","ChargeToday","setDonationChargeToday","checked","isChargeToday","getDonationChargeToday","getDonationStartDate","recurringStartsToday","isSame","Date","isChargeTodayRequired","getIsDonationChargeTodayRequired","CheckoutConstants","DonationUpsellHelper","ShippingHelper","TaxHelper","getCartDonations","getSaveForLaterCartDonations","applyCoupon","couponCode","CHECKOUT_MESSAGES","CHECKOUT_MESSAGE_FIELDS","INVALID_COUPON_CODE","isShoppingCart","_applyCartCoupon","_applyOnePageCoupon","cartType","getCartType","systemError","displayableError","COUPON_ERRORS","GEO_RESTRICTION_INFO_NEEDED","COUPON_DISPLAY_MESSAGES","COUPON_MESSAGE_FIELDS","GEOGRAPHIC_ERROR","DEFAULT_ERROR","cartData","applyOnePageCoupon","cart","discountAmount","freeShippingMethod","freeShippingMethodDescription","updateCouponCodeUI","CART_UPDATE_PRODUCT_OPCO_DISCOUNT","productDiscount","_removeCoupon","couponInitialized","couponHasBeenInitialized","$currentCouponComponent","$couponLabel","removeCoupon","removeOpcoCoupon","removeDonationFromCart","removeFromCart","CART_ITEM_PROJECT","removeDonationPremiumFromCart","removePremium","removeProductFromCart","CART_ITEM_PRODUCT","removeRegistrationFromCart","CART_ITEM_EVENT","removeSubscriptionFromCart","CART_ITEM_SUBSCRIPTION","moveToSaveForLater","itemType","_findItemType","cartItem","groupId","groupItems","getGiftGroupDonationsByGroupId","groupItemsCount","minimumDonationAmount","getMinimumDonationAmount","donationGroupTotal","getDonationGroupTotal","isRemoving","applyInsufficientGiftGroupAmountStyling","GIFT_GROUP_AMOUNT_INSUFFICIENT","moveToCart","CART_TYPES","SAVE_FOR_LATER","moveToShoppingCart","GIFT_AMOUNT_INSUFFICIENT","SHOPPING_CART","designerMessage","ITEM_MOVE_FAILED","CART_REMOVE_PENDING","CART_REMOVE_FAILED","CART_REMOVE_SUCCESS","ITEM_REMOVE_FAILED","setDonationAmount","updateAmount","CART_UPDATE_AMOUNT","chargeToday","updateChargeToday","CART_UPDATE_CHARGE_TODAY","setDonationFrequency","updateFrequency","CART_UPDATE_FREQUENCY","updateUseOnDay","CART_UPDATE_USE_ON_DAY","updateQuantity","CART_UPDATE_QUANTITY","donation","getCartDonationForUpdate","premium","newStartDate","CART_UPDATE_PENDING","updateCartDonation","CART_UPDATE_SUCCESS","CART_UPDATE_FAILED","getCartProductForUpdate","updateCartProduct","setHasNewPaymentBeenShown","initializeCartRecurringStartDateDropdowns","$dropdowns","initializeSaveForLaterCheckbox","CHECKOUT_INITIALIZE","isPayPalSupported","disablePayPal","VALIDATE_PAYPAL_CHECKOUT","updateShipping","initializeShippingListeners","initializeTaxListeners","initializeDonationUpsell","setOPCOSubtotal","processCreateAccountAndCheckout","hasCreateAccountAndCheckout","checkoutValidationType","CREATE_ACCOUNT_AND_CHECKOUT","validateBillingAddress","checkoutSubmissionOptions","_validateAndSubmitCheckout","processSavedPaymentCheckout","hasSavedPaymentCheckout","SAVED_PAYMENT_CHECKOUT","shouldApplyPaymentInformation","_submitCheckout","_getCommonComponentsForCheckoutValidation","_isPageType","TANGIBLE_TYPES","PRODUCTS","savedPaymentComponentData","newSavedPayment","isSecurePage","SECURE_PROJECTS","SECURE_PLEDGES","isProjectOrPledgePage","PROJECTS","PLEDGES","elements","validationOptions","addressCorrectionMessage","isDryRun","currentInvalidComponents","shoppingCartErrors","getShoppingCartErrors","getDoShoppingCartErrorToPreventCheckoutExist","_failCheckoutValidation","requirePopulatedAccountForm","isOptOut","allowShippingValidationBypass","savedPaymentCheckout","isDisplayErrorMessage","processPayPalPaymentPreCheckout","updatePayPalButtonState","shouldMarkInvalidComponents","enablePayPal","updateCartTotals","completeCheckout","pageTypeConstant","isPageType","wizardProperty","getPayPalErrorMessages","setPayPalActions","actions","enabledOnLoad","isPayPalEnabled","getGooglePayConfiguration","getGooglePayDisplayMessages","getCheckoutDispatcher","_createCartAction","updateCart","updatedCartItems","couponData","updateLastMinuteDonation","updatedDonation","cloneDeep","updatedProduct","getGroupCodeData","groupCode","eventCode","getShippingQuote","company","includeErrors","inventoryItems","shippingMethods","allowedShippingMethods","getSubscriptionTaxControlRecord","getShippingTaxId","getTaxQuote","removeGroupCodeCookie","cartAction","eventAttendees","donations","subscriptions","CART_UPDATE_DONATION_AMOUNT_OPCO","CART_UPDATE_DONATION_CHARGE_TODAY_OPCO","CART_UPDATE_DONATION_FREQUENCY_OPCO","DISABLE_PAYPAL_CHECKOUT","ENABLE_PAYPAL_CHECKOUT","SET_SUBACCOUNT_GIFT_AMOUNT_OPCO","NumberHelper","availableQuantity","checkoutType","defaultDonationUpsellLabel","defaultDonationUpsellAmountLabel","defaultShippingLabel","defaultSubtotalLabel","defaultShippingMethod","defaultTaxLabel","defaultTotalLabel","donationSubtotal","donationFrequency","donationUpsellAmount","errorsToPreventCheckoutExist","eventRegistrations","eventRegistrationSubtotal","hasShippableProducts","hasOnlyDownloadableOrFreeShippingProducts","isDonationChargeToday","loggedInAccount","payPalActions","enable","disable","payPalEnabled","productPrice","productSubtotal","saveForLaterDonations","saveForLaterRegistrations","saveForLaterProducts","saveForLaterSubscriptions","shippingAddress","shippingAmount","shippingMethod","shippingRates","subaccountAmounts","subscriptionSubtotal","wizardApplePayConfiguration","wizardApplePayDisplayMessages","wizardCheckoutDisplayMessages","wizardCouponDisplayMessages","wizardDefaultContactMethod","wizardDefaultUseOnDay","wizardDonationUpsell","wizardFrequencies","wizardGooglePayConfiguration","wizardGooglePayDisplayMessages","wizardDonationRequired","wizardPayPalDisplayMessages","wizardProjectCompletionDefaults","wizardRecurringRequired","wizardShippingDisplayMessages","SHIPPING_EVENT","addShippingListener","removeShippingListener","emitShippingEvent","getCartItemForUpdate","getCartProducts","getCartSubscriptions","isDirty","getDonationAmount","getAmount","getGiftGroupDonationsByCartItemId","elem","groupDonations","donationSum","toNumber","getMinimumAmount","getChargeToday","customerChoseChargeToday","getFrequency","getDonationPremium","getPremium","donationStartDate","donationUseOnDay","getQuantity","getUseOnDay","requireDonation","PROJECT_COMPLETION_DEFAULTS_REQUIRE_DONATION_VALUES","WITH_PREMIUM","getRequireDonationChangedMessage","requireDonationChangedMessage","getShippingAmount","rate","s","isError","getShippingMethodsForQuote","method","d","getProductSubtotal","discount","price","subtotal","getChargeTodayProjectSubtotalForOPCO","getProjectDonationTotalForOPCO","subaccountTotal","sum","getPledgeSubtotal","getSubtotal","checkoutTypeInformation","getCheckoutTypeInformation","isProductOnePageCheckout","isProjectOnePageCheckout","isPledgeOnePageCheckout","CHILD","isMultiPageCheckout","$subtotalElement","setTotalAmount","setShippingAmount","$shippingElement","setTaxAmount","initializeShippingMethodRates","$shippingMethods","every","SHIPPING_INCALCULABLE","isDefaultShippingValid","selectInitialShippingMethod","SHIPPING_METHOD_MISSING","setShippingMethodRates","SHIPPING_METHOD_NOT_AVAILABLE","addedForCoupon","SHIPPING_METHOD_FREE","shippingRate","$eachShipRate","setFreeShippingMethod","shippingMethodDescription","$exists","$firstContainer","$clonedContainer","addColumnToLastOrNewRow","removeFreeShippingMethod","freeRate","$freeShippingComponent","$freeShippingColumn","$taxElement","setDonationUpsellAmount","$donationUpsellAmountElement","setRecurringDonationUpsellAmounts","recurringDonation","$recurringDonation","originalAmount","recurringDonationUpsellAmount","totalAmount","recurringUpsellAmount","shipping","tax","roundToTwoDecimals","updatePaymentComponents","$totalElement","total","hasNewPaymentBeenShown","setDonationUpsellWizard","hasAutoRenewSubscriptions","hasRecurringDonations","$createAccountAndCheckout","$oneTimeOnlyPaymentComponents","shouldHidePaymentInfo","tangibleActions","getTangibleActions","hidePaymentComponents","showPaymentComponents","$createAccountAndCheckoutComponent","$addNewPaymentComponent","initializeTangibleChangeHandler","payPalErrorMessages","getConfirmationPageRoute","confirmationPageRoute","$checkoutComponent","CheckoutStoreSingleton","subaccountCode","defaultUseOnDay","updateSelectedShippingMethod","CART_UPDATE_PRODUCT_PRICE","DONATION_UPSELL_UPDATE","SHIPPING_REQUEST_PENDING","info","SHIPPING_UPDATED","SHIPPING_CANNOT_BE_CALCULATED","SHIPPING_IS_ALL_FREE","SHIPPING_UPDATE_FAILED","SHIPPING_METHOD_UPDATED","TAX_UPDATE_FAILED","cartHasDonationUpsell","errors","wizardCompany","currency","DonationAmount","originalDonationAmount","validateMinimumAmount","isAmountValid","formatAmountKeepUserDecimals","_formatAmount","$donationUpsellCheckbox","handleDonationUpsellChange","_persistDonationUpsellValues","isLastMinuteDonationCheckedFromSessionStorage","isDonationUpsellCheckboxedByDefault","ready","checkDonationUpsell","hasDonationUpsell","getDonationUpsellCalculationValues","calculationType","lastMinuteDonationCalculation","lastMinuteDonationAmount","_calculateDonationUpsell","recurringDonations","upsellAmountsByFrequency","groupBy","groupedRecurringDonations","upsellAmount","recurringDonationUpsellAmountForOPCO","recurringTotal","uncheckDonationUpsell","didCheckboxChange","donationUpsellValues","LAST_MINUTE_DONATION_CALCULATION_VALUES","CONSTITUENT_DECLINED","PERCENTAGE","STATIC_AMOUNT","ApplePayHelper","EventRegistrationHelper","Frequency","GooglePayHelper","PayPalHelper","allowedFrequencies","googlePayConfiguration","initializeGooglePay","paymentsClient","google","payments","api","PaymentsClient","environment","$buttonComponent","createButton","onClick","onGooglePayButtonClicked","allowedPaymentMethods","buttonColor","buttonSizeMode","buttonType","googlePayErrorMessages","getGooglePayPaymentRequest","performGooglePayCheckout","paymentProviderIdentifier","getGooglePayPaymentInformation","dismissPaymentScreen","statusMessage","tokenizationData","cardNetwork","cardDetails","getBaseUrl","protocol","hostname","port","getCreateUrl","getPayPalButtonOptions","isPayPalLive","env","tagline","commit","additionalErrorMessage","PAYPAL_MESSAGES","PAYPAL_MESSAGE_FIELDS","ADDITIONAL_INFORMATION_REQUIRED","paymentCreateResult","preCheckOutResult","transactionData","res","paymentId","onAuthorize","paymentExecuteDeferred","payPalPaymentInformation","paymentID","cardName","payerID","onCancel","CREATE_ERROR","onError","CHECKOUT_ERROR","defaultSelectedIndex","supportedPaymentTypes","defaultPaymentTypeSelected","selectedType","handleTypeSelected","updateDisplay","$thisDOMNode","paymentType","safeClassName","array","linkToken","openPlaidLink","handlePlaidError","plaidDisplayMessages","handler","destroy","Plaid","onExit","metadata","onSuccess","public_token","multipleBankAccountsSelected","routingNumber","accountNumber","accountType","systemErrorMessage","clientErrorMessage","unknownError","ShipToAccountHelper","payPalCallback","singleProductCode","hasFreeShipping","getShippingAddress","shippingQuoteRequest","isEqual","previousShippingQuoteRequest","inProgress","previousAddress","isAddressSame","updateTax","isSuggestedDonation","isOnePageSuggestedDonation","useSubscriptionTax","shipTaxId","taxDetails","extendedAmount","subscriptionCode","shipToAddressId","fulfillmentMethod","deliveryId","recipientAccountPrimaryAddressId","taxQuoteRequest","shipTo","previousTaxQuoteRequest","totalTaxAdded","$specificElement","showSearchSpinner","removeSearchSpinner","getByConstant","rules","rule","triggers","updateToken","executeRules","$context","rulesToTrigger","executed","shouldTrigger","getToken","TokenStore","addRule","removeRule","identifier","removeToken","hasRule","handleDrop","INITIALIZE","VisibilityStore","hideAll","getInputValues","demographicsCollection","$selectedRadio","StringConstants","BluefinHelper","clearHostedIFrame","bluefinIframeId","getBluefinIframeId","iframePayment","PaymentiFrame","iframeId","clear","getBluefinHostedPageToken","creditCardErrorMessages","eftErrorMessages","errorCallback","encrypt","failure","catchAllMessage","CHECKOUT_BLUEFIN_TOKENIZATION_FAILED","invalidInput","wholeMessage","invalidInputs","BluefinErrorCodes","BlankField","BluefinFieldNames","CreditCard","blankCreditCard","Expiration","blankExpiration","Cvv","blankCvv","BankAccount","blankBankAccountNumber","RoutingNumber","blankRoutingNumber","InputTooShort","shortInputCreditCard","shortInputExpiration","shortInputCvv","shortInputBankAccountNumber","shortInputRoutingNumber","InputTooLong","longInputCreditCard","longInputExpiration","longInputCvv","InputNotNumeric","nonNumericCreditCard","nonNumericExpiration","nonNumericCvv","nonNumericBankAccountNumber","nonNumericRoutingNumber","InvalidCreditCard","invalidCreditCard","InvalidExpiration","invalidExpiration","CHECKOUT_BLUEFIN_TOKENIZATION_SUCCESS","eToken","$iframe","deviceType","DEVICE_TYPES","deviceMinWidth","BraintreeHelper","initializeBraintree","_generateIframe","isBraintreeCreditCard","isBraintreeEft","getBraintreeTokenData","hostedFieldsInstance","clientInstance","billingAddress","_getBillingAddress","tokenize","tokenizeError","payload","invalidFieldKeys","invalidKey","creditCardFormInvalidMessage","_getWizardErrorMessage","COMPANY_ERROR_MESSAGES","BRAINTREE_MESSAGE_FIELDS","CREDIT_CARD_FORM_INVALID","braintree","threeDSecure","_threeDSecurePayment","tokenizedPayment","version","threeDSecureInstanceError","threeDSecureInstance","threeDSecureInstanceErrorMessage","THREEDSECURE_SERVICE_UNAVAILABLE","verificationDetails","_getThreeDSecureVerificationDetails","verifyCard","verifyCardError","verifyCardResponse","verifyCardErrorMessage","THREEDSECURE_VERIFICATION_FAILURE","verificationData","rawCardinalSDKVerificationData","isConstituentCancelled","Payment","ExtendedData","ChallengeCancel","liabilityShifted","threeDSecureInfo","nonce","getEftNonce","eftMessages","$braintreeEftComponent","clientToken","decodeURIComponent","mandateText","mandateTextAcceptButtonLabel","mandateTextDeclineButtonLabel","authorization","serviceUnavailable","usBankAccount","usBankAccountInstance","bankDetails","_getBankDetails","tokenizedPayload","getSecuredSavedPayment","tokenizedSavedPayment","$braintreeCreditCardPayment","billingAddressId","_getAccount","streetAddress","extendedAddress","locality","region","ownershipType","businessName","primaryAddress","shipToAccount","_getShipToAccount","isEmptyObject","tokenizePayload","bin","givenName","surname","_getPhoneNumberFromAccount","countryCodeAlpha2","_getTwoCharacterCountryCode","additionalInformation","shippingGivenName","shippingSurname","shippingPhone","onLookupComplete","internationalCode","extension","primaryAccount","getShippingAccountInfo","isOnlyAddressId","shipToAddress","otherAddress","device","_getDeviceType","$braintreeCardNumberComponent","$braintreeExpirationComponent","$braintreeCardVerificationValueComponent","$braintreeNameOnCardComponent","cardNumberStyle","_getStyleObject","expirationStyle","cardVerificationValueStyle","nameOnCardStyle","braintreeStyles","_setContainerHeightAndWidth","braintreeFields","container","maskInput","showLastFour","paymentFormUnavailableMessage","PAYMENT_FORM_UNAVAILABLE","hostedFields","styles","emittedBy","styleString","styleObject","keyValuePair","marginTop","marginRight","marginBottom","marginLeft","TABLET","MOBILE","deviceTypes","deviceMinWidths","CardConnectHelper","initializeCardConnect","_initializeListeners","_manageIframeAttributes","validateCardNumberToken","_setCardConnectToken","isCardConnect","getCardConnectToken","getDeviceType","setIframeAttributes","src","srcCss","$iframes","iframe","$currentIframe","cardNumberTokenMessage","_getStore","CARDCONNECT_MESSAGE_FIELDS","CARD_NUMBER_TOKEN","CategoryStore","CategoryDropdown","wizardCategories","allowedCategories","categories","hashArray","indexy","currentCategory","parentId","topLevelSortArray","hierarchySort","activeCategory","handleSelectCategory","hierarchySortOrder","b","level","topLevelSort","sortedArray","sort","_selectedCategoryId","indentation","active","role","padding","paddingLeft","CategoryPaging","currentPageNumber","pageSize","totalCount","setupRelatedComponents","lastPage","ceil","$categoryPaging","$previousButton","$nextButton","handlePageChange","$categoryComponent","numberPagesToShow","pagesToShow","fill","start","floor","includeFirstPageNumber","showStartEllipses","includeLastPageNumber","showEndEllipses","usingSavedPayments","$checkedRadioButton","savedPaymentRadioValue","getAccountInfo","isCreateAccount","responseData","checkoutEvent","checkoutDetails","AVAILABLE_QUANTITY","$transactionNote","transactionNote","securePageType","SECURE_PAGE_TYPES","PROJECT","PLEDGE","$secureInput","applyPaymentInformationToCheckoutDetails","checkoutDetailsWithPaymentInformation","contactMethod","defaultContactMethod","isPledgeStatementCart","getShippingAddressType","giftAccount","getGiftAccountInfo","recipient","otherShippingAddress","getAlternateShippingAddress","securePayment","securedSavedPayment","groupCartItemIds","minimumDonationErrorClassName","groupCartItemId","$changedAmountDonationElement","pledgeHasDonationOrRecurring","wizardDonationOrRecurringRequired","cartHasTotalOrRecurring","merge","saveForLater","useAsPrimary","handleExpirationDateInputFormat","hasSlash","handleVerificationNumberInputFormat","validateExpirationDate","validateVerificationNumber","keyup","$expirationDate","expirationDateString","monthString","monthNumber","expirationMonthMessage","CREDIT_CARD_MESSAGES","CREDIT_CARD_MESSAGE_FIELDS","EXPIRATION_MONTH_INVALID","currentYearString","getFullYear","currentYearNumber","yearString","yearNumber","expirationYearMessage","EXPIRATION_YEAR_INVALID","expirationDateIncompleteMessage","EXPIRATION_DATE_INCOMPLETE","$verificationNumber","verificationNumberString","verificationNumberIncompleteMessage","VERIFICATION_NUMBER_INVALID","tangible","storeState","tangibleStore","displayCodeProperty","_setFrequency","displayObject","componentWillMount","instanceId","contextId","renderButton","isSelected","beginningComponentName","renderRadio","renderDropdown","renderContainer","getSelectedFrequency","PledgeType","tabIndex","oneOf","Paging","getLastPageNumber","$mountPoint","PlaidHelper","TokenExHelper","TsysTsepHelper","isTokenEx","initializeTokenEx","isTsysTsep","initializeTsysTsep","initializeEftPayment","disallowSpaceEntry","$eftAccountTypeSelectorComponent","defaultEftAccountTypeValue","$field","SPACE","$savePayment","$savedPaymentInput","defaultCheckedValue","wizardCompanyCreditCardErrorMessages","visibleCCSelector","usingCreditCard","visibleEFTSelector","usingEFT","additionalPaymentData","_getPaymentFormData","creditCardNumberToken","$tokenExElement","tokenExTokenData","getTokenExTokenData","lastFour","getTsysTsepResult","tsepToken","getCardType","cardNumber","expirationDate","cvv","verificationNumber","expirationMonth","expirationYear","isSavedPayment","isZeroDollarTransaction","defaultShippingAddress","radioButton","$otherAddressesComponent","$existingAddressRadio","$populatedAddress","$newAddressRadio","shipAddressType","currentWizardValues","wizardValues","componentWillReceiveProps","hideEmptyOptions","componentCategory","confirmationMessage","navUrl","postSubmitAction","shouldRefreshPageOnSubmit","trim","handleSuggestedDonationChange","initializeSuggestedDonationAmount","setSuggestedDonationAmount","PRODUCT_INITIALIZE_SUGGESTED_DONATION","PRODUCT_SET_SUGGESTED_DONATION","validateAmount","updateSuggestedDonationComponent","findComponentFor","suggestedDonationComponent","showInvalidSuggestedDonationMessage","hideInvalidSuggestedDonationMessage","getIframe","_manageIframeStyling","wrapperId","inputStyle","iframeStyle","authenticationKey","timestamp","tokenExID","fourTokenFour","tokenExConfiguration","pci","base","_getStylePropertyFor","tokenScheme","tokenExIframe","TokenEx","Iframe","_setIframeListeners","_removeTokenizationData","reset","inputString","startIndex","endIndex","$components","_getValidationResponse","_getDeferredValidationResponse","_checkForToken","missingTokenMessage","TOKENEX_MESSAGE_FIELDS","TOKEN_MISSING","hasWaited","_waitForToken","parentComponentSelector","iframeSelector","validateTsysTsepResult","setTsysIframeHeight","uniqueId","syncTsysTsepResult","tsysTsepResult","tokenHandled","getValidationResponse","isPlainObject","queryParameters","isCardNumberValid","isExpirationDateValid","isVerificationNumberValid","validCount","getValidCount","handleThreeValidFieldButNoToken","hasNoTokenResponse","hasError","cardNumberErrorMessage","expirationDateErrorMessage","verificationNumberErrorMessage","REQUIRED_FIELDS","genericErrorMessage","TSYS_TSEP_MESSAGE_FIELDS","GENERIC","removeData","queryParametersString","removeBetterValidationPopup","$inputs","validity","valid","_errorMessages","setFocus","_initializeValidation","innerDeferred","all","_validateAll","_validateComponents","_handleInvalidAndReturn","customSelector","_customValidate","_validateInput","customValidatorDeferreds","_$","$elementsWithCustomValidators","deferredResponse","_markAsInvalid","_$2","minPhoneNumberLength","_onUpdateInvalidInput","_removeChangeHandler","DonationFrequency","GiveAnonymousCheckbox","PledgeFrequency","PledgeGiftArray","ProjectGiftArray","Quantity","RecurringUpsellCheckbox","SearchSorting","SubaccountGiftArray","UseOnDaySelector","constants","mappings","CreditCardProviders","constant","EMAIL_SUBSCRIPTIONS","EVENT_REGISTRATION_DISPLAY_MESSAGES","LAST_MINUTE_DONATION_UPSELL","RECURRING_START_DATE_DROPDOWN_VALUES","SPONSORSHIP_DEFAULTS","SUBSCRIPTION_DISPLAY_MESSAGES","SAVED_PAYMENT_FOR_RECURRING_ERROR","SAVED_PAYMENT_FOR_SUBSCRIPTION_ERROR","BUTTON_LABEL_FIELDS","COUPON_APPLICATION","LAST_MINUTE_DONATION_UPSELL_FIELDS","CALCULATION","AMOUNT","EMAIL_SUBSCRIPTIONS_FIELDS","AVAILABLE_EMAIL_SUBSCRIPTION_TYPES","DEFAULT_CANCEL_REASON","EVENT_REGISTRATION_DISPLAY_MESSAGES_Fields","APPLY_GROUP_CODE_ERROR","ADD_TO_CART_GROUP_CODE_ERROR","DELETE_REGISTRANT","FORM_VALIDATION_MESSAGE_FIELDS","LANDING_PAGE_PERMISSION_CATEGORY_CODES","ACCOUNT","ACCOUNT_MARKETING","SPONSORSHIP_DEFAULTS_FIELDS","DEFAULT_AMOUNT","DEFAULT_FREQUENCY","CommunicationTypeSelector","communicationTypeConfig","_keyMirror","UPDATE_SUBJECT","UPDATE_BODY","COPIED","SELECT_LAYOUT","ADD_LAYOUT","LAYOUT_DELETE","LAYOUT_DELETED","LAYOUT_DELETE_FAILED","LAYOUT_SAVE","LAYOUT_SAVED","LAYOUT_SAVE_FAILED","LAYOUT_SAVE_CANCELLED","LAYOUT_SAVED_AS","LAYOUT_SAVE_AS","LAYOUT_SAVE_AS_FAILED","LAYOUT_SAVE_AS_CANCELLED","LAYOUT_SAVE_DRAFT","LAYOUT_SET_SEO_DATA","DND_COMPONENT_MOVED","DND_COMPONENT_DROPPED","DND_COMPONENT_LOADED","DND_COMPONENT_UNLOADED","IFRAME_LOADED","IFRAME_CLICKED","IFRAME_DOUBLE_CLICKED","SET_PROPERTY","PROPERTIES_SAVED","PROPERTIES_SAVE_FAILED","DELETE_SELECTED_ELEMENT","IFRAME_CLICKED_EVENT","IFRAME_CLICKED_EVENT_FOR_PROPERTY_EDITOR","SET_MODIFIER_SELECTED","SET_PSEUDOCLASS_SELECTED","CHILD_COMPONENT_LOADED","CHILD_COMPONENT_UNLOADED","STYLE_SHEET_RULE_REPLACED","STYLE_SHEET_RULE_DELETED","RECEIVE_PROPERTY_EDITOR_DATA","RECEIVE_PAGE_STORE_DATA","TAB_SELECTED","SET_TABS","LAYOUT_PUBLISH","LAYOUT_PUBLISH_SUCCESS","LAYOUT_PUBLISH_FAILED","STYLE_GUIDE_COMPONENT_GROUP_SELECTED","STYLE_GUIDE_COMPONENT_SELECTED","STYLE_GUIDE_RESET_REACT_COMPONENTS","RECEIVE_STYLEGUIDE_STORE_DATA","RECEIVE_COMPONENT_STORE_DATA","RESET_COMPONENT","RESET_COMPONENT_FAILED","THEME_SELECTED","THEMED_COMPONENT_SAVE_PENDING","THEMED_COMPONENT_SAVE_SUCCESS","THEMED_COMPONENT_SAVE_FAILED","THEME_SAVE_PENDING","THEME_SAVE_SUCCESS","THEME_SAVE_FAILED","THEME_SAVE_AS","THEME_SAVED_AS","THEME_SAVE_AS_FAILED","THEME_SAVE_AS_CANCELLED","THEME_DEACTIVATE","THEME_DEACTIVATED","THEME_DEACTIVATE_FAILED","THEME_REACTIVATE","THEME_REACTIVATED","THEME_REACTIVATE_FAILED","SAVE_REACT_PROPERTIES","ABANDON_UNSAVED_THEME_CHANGES","THEMED_COMPOMENTS_FETCHED","THEMED_COMPOMENTS_FETCH_FAILED","WIZARD_RECEIVE_STORE_DATA","LANDING_PAGE_TYPES","CONFIRMATION","WIDGET","WIDGET_TYPES","DONATION","EMAIL_SUBSCRIPTION","ACCOUNT_STATES","UNIDENTIFIED","IDENTIFIED","LOGGEDIN","DATE_FORMATS","SE_API_DATE_FORMAT","CART_ITEM_PROJECT_PREMIUM","COLUMN_COMPONENTS","COLUMN_SUBCOMPONENTS","CONTAINER_COMPONENTS","CONTAINER_SUBCOMPONENTS","PROPERTY_CATEGORY_SUFFIX","DECIMAL","NUM_PAD_DECIMAL","MINUS","NUM_PAD_MINUS","DYNAMIC_PROPERTY_GROUP_NAMES","DYNAMIC_PROPERTY_MAPS","SMARTYSTREETS_DELIVERY_POINT_VALIDATION_STATUSES","CONFIRMED","NOT_CONFIRMED","CONFIRMED_BY_DROPPING_SECONDARY","CONFIRMED_MISSED_SECONDARY_INFO","SMARTYSTREETS_ADDRESS_VERIFICATION_STATUSES","NONE","PARTIAL","SMARTYSTREETS_ADDRESS_PRECISIONS","STATE","CITY","STREET","CONFIRMED_MISSING_SECONDARY","CONFIRMED_WITHOUT_PRIVATE_MAILBOX_INFO","SMARTYSTREETS_FOOTNOTES","MISSING_SECONDARY_INFORMATION","SMARTYSTREETS_ADDRESS_COMPONENTS","PRIMARY_NUMBER","STREET_PREDIRECTION","STREET_NAME","STREET_POSTDIRECTION","STREET_SUFFIX","SECONDARY_DESIGNATOR","SECONDARY_NUMBER","EXTRA_SECONDARY_DESIGNATOR","EXTRA_SECONDARY_NUMBER","STATE_ABBREVIATION","ZIPCODE","ZIPCODE_PLUS_FOUR","DELIVERY_LINE_1","DELIVERY_LINE_2","URBANIZATION","APPROVAL_TYPES","LAYOUT_STATUSES","LAYOUT_VERSIONS","THEME_VERSIONS","CUSTOM_PREFIX","CATEGORY_EDITORS","MICROSOFT_IDENTITY_PLATFORM","ACCOUNT_ID_KEY","AUTHORITY_ROOT_URL","CACHE_LOCATION","COMMON_TENANT_ID","ERROR_CODES","INVALID_CLIENT","INVALID_RESOURCE","UNAUTHORIZED_CLIENT","USER_CANCELED","APPLE_PAY_PROPERTY_DEFAULTS","BUTTON_STYLE","WIDTH","HEIGHT","PADDING","BORDER_RADIUS","BOX_SIZING","originalDispatch","_isDispatching","dispatchArguments","timer","clearInterval","RegExpHelper","getCalcExpression","getColorName","getCSSLength","getHexColor","getRgbColor","getRgbaColor","getEndingScriptTags","getMatchingScriptTags","getStartingScriptTags","isCalcExpression","isColorName","isCSSLength","isCSSNumber","isNaN","isCSSURL","test","isHexColor","isRgbColor","isRgbaColor","isAlphaNumeric","isNumeric","replaceFirstBraceTokenFromObject","braceTokenMatchRegularExpression","braceTokenReplaceRegularExpression","matchArray","exec","gridListToggleClicked","gridWrapperClass","listWrapperClass","$resultsComponent","$gridResults","$listResults","$results","wizards","getRawValue","w","responseModel","allowIncomplete","allowedStatuses","StoresHelper","addRegistrant","verifySmartyStreets","singleEventRegistrationHtml","$lastSingleRegistration","_resetIdsForRepeatedComponents","_addReactScriptsForSingleRegistration","reactScriptsForSingleRegistration","initializeSingleRegistration","_calculateTotal","removeGroupCode","applyGroupCode","$groupCodeInput","isValidGroupCode","_updateGroupCodeUi","_updateAllPrices","eventRegistrationData","registrants","isThisIsMeAlreadyProcessed","$individualRegistration","$spouseRegistration","$selectedPriceCodeOption","groupCodePriceCode","isThisIsMeIsChecked","individualRegistrationData","individualSessions","mapIndex","individualSession","$individualSession","priceCode","sessionCode","toArray","spouseRegistrationData","spouseSessions","spouseSession","_serializeEmailAddress","individual","spouse","registrant","initialPriceCode","thisIsMeChecked","individualData","initialPriceType","spouseData","events","initialPrice","initialPriceDescription","spouseAccountCodes","savedThisIsMeValues","$addToCartButtons","$singleRegistration","$firstCreateAccountForm","accountUpdateAllowed","spouseUpdateAllowed","wrap","outerHTML","_getReactScriptForSingleRegistration","$firstThisIsMe","initializeGroupCode","$applyGroupCodeForms","$groupCodeForm","_this6","$priceCodeSelectors","_priceCodeChange","_setClientDynamicData","checkbox","thisIsMeSelected","_accountDataChanged","calledFromAddToCart","_this7","$registrationTypes","singlePriceSelector","$singlePriceSelector","newPriceDescription","originalPrice","_getNewPriceCodeDescription","removeRegistrant","_this8","$eventRegistration","$firstCheckboxInput","$allCheckedCheckboxInputs","$thisIsMeInputs","minimumThisIsMeCheckboxCheckedThatWasNotJustChanged","$firstThisIsMeSingleRegistrationThatWasNotJustChanged","$singleRegistrationsWithVisibleSpouseRegistration","$priceCodeSelector","minimumSpouseThisIsMeCheckboxChecked","$firstSpouseThisIsMeSingleRegistrationThatWasNotJustChanged","_setFieldDisableStatus","_setFieldDisableStatusInForm","_setEmailFieldAsDisabled","registrantNumber","$singleRegistrationElement","individualFormId","_clearRegistrationData","spouseFormId","$checkboxInput","_this9","singleRegistrationId","$allThisIsMeCheckboxesInSingleRegistration","currentRegistrantNumber","currentContainsVisibleSpouse","minimumSpouseThisIsMeCheckboxCheckedThatWasNotJustChanged","_serializeSingleRegistration","_setAccountData","thisIsMeData","_copyDemographics","$nextThisIsMeSingleRegistration","savedFormData","ids","_this10","individualOrSpouseRegistrationComponent","createAccountOrSpouseDataComponent","accountTypeSelector","$singleRegistrationsWhereThisIsMeIsChecked","changeFunction","fieldComponentName","shouldCheck","_this11","$reactComponents","scriptToAdd","newScript","singleLineScript","newElementId","registrationNumber","newScriptNode","textContent","head","_this12","singleRegistration","$firstSelectedPriceOption","isCouplePrice","multiplier","pricePerPerson","inputIndex","shouldDefaultValues","$selectInputs","$selectInput","newPrice","$singleRegistrationPriceCodeDiv","priceSeparator","pricePosition","displayPrice","priceDescription","reactScripts","innerHTML","foundScript","_this13","$parentSingleRegistration","priceType","otherSelectIndex","otherSelectElement","$body","$componentsWithLinkedLabels","isThisIsMeChecked","$individualEmailAddress","$spouseEmailAddress","serializeDemographics","_setTextInput","$sourceComponent","$targetComponent","demographic","$demographic","priceElement","$priceElement","_setFieldDisableStatusInternal","shouldRestrictToForm","$fieldsToToggle","childComponentName","_this14","$registrations","priceCodeSelector","$registrationTemplate","_this15","defaultPriceCode","$groupCodeDynamicLabel","groupLabel","$groupLabel","$links","GiftArray","includeOther","otherText","buttonStyle","giftAmounts","hideWhenSubaccounts","isRequired","$singleVariantComponent","variantClicked","openInNewTab","$variant","productUrl","handleAmountBlur","getSelectedQuantity","GiftArrayValidator","overrides","isSubaccountVisible","initialSelectedIndex","defaultSelectedAmountIndex","otherSelected","showOtherTextbox","handleAmountSelected","refs","otherTextbox","handleBlurOther","focusedOther","handleFocusOther","handleOtherAmountChange","setCustomValidation","_this$state","cachedGiftAmount","giftAmount","GIFT_ARRAY_LOADED","$currentNode","validateDonationMeetsMinimum","containsOther","otherChecked","otherSelectedAmount","amountChecked","lastAmount","giftAmountOther","getSelectedAmount","amounts","isAnonymous","handleRecurringAnonymousChange","setAnonymous","SET_GIFT_AMOUNT","_setRecurringSummaryData","_updateIsCheckoutDispatcher","SET_MINIMUM_AMOUNT","setSubaccountAmount","SET_SUBACCOUNT_GIFT_AMOUNT","getIsChargeTodayRequired","setDonationPremium","selectedPremium","SET_DONATION_PREMIUM","setUseOnDay","SET_USE_ON_DAY","SET_UPSELL","SET_ANONYMOUS","initializeProjects","ProjectCode","$projectPremiums","$projectPremiumsRadios","getPremiumFromRadio","$selectedPremium","radioIndex","handleChangePremium","_checkoutDispatcher","isUpsellBeforePremiumSelectionKey","getIsChargeTodayRequiredOnlyWithPremium","isUpsellChecked","getSelectedUpsell","wasUpsellChecked","defaultOptOut","getAttribute","defaultRadio","isDonationUpsellChecked","subaccounts","projectNote","setPledgeId","setRelatedAccount","getPledgeId","getSelectedPremium","getRelatedAccount","getSubaccountAmounts","getSelectedUseOnDay","collapsorChecked","$collapsorNote","donationInformation","getDonationInformation","anonymous","deductible","getSelectedStartDate","subaccountAmount","subaccount","getMonthFromWizard","monthFromWizard","$carts","cartIndex","isSaveForLaterCart","dropdownIndex","dropdown","$dropdownComponent","$dropdownSelector","projectId","startDateMoment","startDateOption","containsOption","optionIndex","optionItem","dropdownWizard","formattedMonth","prepend","initializeRecurringStartDateDropdown","$dropdown","populateInitialValue","updateRecurringStartDate","initializeResultRecurringStartDateDropdowns","initializeNonEditableDonations","$nonEditableProjects","_isChargeTodayForOPCO","donationStartsToday","getIsDesignMode","$projectRecurringSummaryElement","$amountElement","$frequencyElement","getFrequencyDescription","dispatchData","setCheckoutDispatcher","setSecureProjectsWizard","secureProjectsWizard","getProjectDispatcher","defaultPledgeFrequency","minimumAmounts","selectedAmounts","selectedFrequencies","selectedPremiums","selectedStartDates","selectedUpsells","selectedUseOnDays","wizardRecurringStartDateDropdownValues","wizardSecureProjects","wizardSubaccounts","dispatcher","getCalculatedStartDate","today","defaultFrequency","_cartDataOptions","defaultChecked","handleRecurringUpsellChange","elementsToShowHide","$recurringUpsell","_this$props","ruleIdentifier","getContextId","getUpdatedContext","selectedUpsell","_this$state2","_this$props2","hasPremium","projectSubaccounts","subaccountDefaultDescriptions","projectStoreState","Subaccounts","Description","wizardSubaccountIndex","Value","DefaultDescription","subaccountEditing","handleSubaccountAmountChanged","handleSubaccountAmountEdit","editing","shouldSubaccountsBeShown","getShouldShowGiftArray","determineIfSubaccountsShouldBeShown","getSubaccountAmount","subaccountValue","editingSubaccount","show1","show2","emptyPlaceholder","htmlFor","horizontalBreakpoint","readOnly","handleUseOnDaySelected","$useOnDaySelector","elementsToUpdateToken","getUseOnDayDescription","useOnDayValue","useOnDayObject","$useOnDay","ruleId","tokenId","storeSubaccountAmounts","subaccountParsed","BaseSearchPaging","$searchPaging","previousPageSelector","nextPageSelector","onPageChange","dataReactComponentName","dataReactComponentCategory","func","EventSearchPaging","$searchResultsComponent","SearchPaging","sortType","sortAscending","sortingOptions","currentSort","newSort","domNode","getSortingOptions","sortingConfig","relevance","titleAscending","titleDescending","startDateDescending","startDateAscending","containsOnlyProducts","authorAscending","authorDescending","priceAscending","priceDescending","SponsorshipSearchPaging","SponsorshipSearchHelper","performSponsorshipSearch","encodeResourceIdForApi","regex","results","objectToModify","areAllPropertiesNull","includeNulls","fallbackMessage","GENERAL_MESSAGES","GENERAL_ERROR_MESSAGE","captureGroups","fileExtension","pop","logger","_logAndReturnDeferred","DEBUG","loggingLevel","returnType","invoke","Wizard","defaultOptions","TYPE_DANGER","onshown","dialogRef","$modalFooter","closable","_getPublishedPageButtonLabels","TYPE_SUCCESS","SUCCESS","btnOKClass","prompt","publishedPageButtonLabels","el","elemLen","getModalBody","wizardOptions","questions","submitText","cancelText","canSubmit","canCancel","savedModel","initializeModelFromSavedModel","allowPartialSave","WizardComponent","wizardComponent","dialogOptions","additionalPages","cancelCallback","onInitialDataLoadFunction","onInitialLoadData","isDelayOpen","handleSaveWizard","isPartialSave","$modal","handleCloseWizard","handleWizardClosed","$modalBody","paragraph","onSave","onhide","buttonLabel","currentQueryString","executeAction","shouldShortCircuit","shouldExecute","c","componentInstance","queryStringAltered","tangibleTypes","ascending","history","replaceState","afterCreateObjectLogic","foundItem","pushState","$contents","min","usage","possibleLetters","letter","random","charAt","original","current","charCodeAt","previousCharacter","$parnet","select","$itemToDelete","$currentColumn","$currentRow","$previousColumn","$itemToAdd","$rowContainer","supportedColCount","$col","size","actualColCount","$newRow","startingFormat","momentDate","parseAndFormatDate","apiDateFormat","amountSelector","allowDecimals","$donationAmountInputs","selectAll","oldValue","setSelectionRange","_validateAmount","decimalCharacterCode","numberPadDecimalCharacterCode","decimalSelector","$decimalInputs","_validateDecimal","$dateInputs","escapedDecimalSeparator","digitWithDecimalSeparator","digitWithDecimalSeparatorRegex","isDecimalValid","$parentNode","checkboxComponentName","scopeSelector","$checkboxComponents","$singleCheckbox","checkboxUniqueIdentifier","$scopeParent","$labelComponent","checkboxId","inputData","calculatedTypeCategory","getTextInputData","dataBinding","dataBindingType","dataBindingValue","isLongComment","validateStartAndEndDates","existingErrorMessages","endDate","startDateInvalidMessage","endDateInvalidMessage","endDateLessThanStartDateMessage","momentStartDate","momentEndDate","dataDynamicHref","round","roundToOneDecimal","jsonResponse","newerPageVersionMessage","NEWER_PAGE_VERSION","REFRESH","simpleQueryAsObject","windowOverride","objectFromQueryString","prefix","queryStringArray","finalResult","keyValuePairs","indexPeriod","indexBracket","endingKey","_createNestedObjectFromQueryStringPieces","_createArrayFromQueryStringPieces","currentResult","indexOpen","indexEnd","arrayName","startWithPeriod","arrayObject","alreadyExists","currentArrayObject","currentObject","endingKeyFromPeriod","ReactSelect","Components","Createable","Creatable","ClearIndicator","innerRef","innerProps","DropdownIndicator","_React$Component2","IndicatorsContainer","_React$Component3","IndicatorSeparator","_React$Component4","Input","_React$Component5","MultiValueContainer","_React$Component6","MultiValueLabel","_React$Component7","MultiValueRemove","_React$Component8","Option","_React$Component9","handleMouseDown","handleMouseEnter","onMouseOver","handleMouseMove","isFocused","onMouseMove","onMouseDown","onMouseEnter","selectProps","hasValueDescriptionOptions","Placeholder","_React$Component10","SelectContainer","_React$Component11","isMulti","isSearchable","hasValue","SingleValue","_React$Component12","ValueContainer","_React$Component13","Control","_React$Component14","Select","_React$Component15","isCreatable","closeMenuOnSelect","inputValue","onInputChange","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","from","classnames","clearAllAnswersFromQuestion","questionDefinition","answers","doNotClearNestedAnswers","clearAnswersNested","nonSelectedAnswers","nonSelectedAnswer","row","rowQuestionDefinition","processDynamicQuestions","answer","dynamicQuestions","dynamicQuestion","propertyFromQuestion","defaultAnswer","displayValue","question","setAnswerNested","stateValues","inactiveDescriptionFetchesRemainingCount","mustIncludeSelectedAnswer","doNotSaveAnswer","doNotSaveProperties","disallowNull","multiple","validAnswers","v","nestedFetchAnswersCallback","selectedAnswers","selectedAnswer","setDynamicQuestionProperty","loadingInactiveValues","beginFetchAnswers","selectedAnswerUrl","originalAnswers","unshift","needToFetchAnswers","answerDefinition","needToCheckIfVisible","visible","fetchAnswersForQuestions","currentCount","fetchAnswers","answerObject","valueProperty","displayValueProperty","displayAlphabetical","alphabetical","labelKey","processCollapseDescriptionData","childName","staticEntries","dataAnswer","answerModel","submatch","value1","value2","fetchIsVisibleForQuestions","fetchIsVisible","visibleObject","descriptionAppendKey","arrayValue","returnedCount","needToFetch","checkIfVisible","fetching","fetchReturnCallback","originalProperty","additionalPageNumber","loading","emptyRequiredFieldsErrorMessage","invalidInputFieldPatternErrorMessage","setValue","possibleAnswers","getEmptyRequiredFields","currentQuestions","fieldNames","eachQuestion","isQuestionRequired","allowSpaces","questionAnswer","isAnswerEmpty","eachQuestionAnswer","hasEmptyRequiredFields","emptyRequiredFields","getInvalidInputFieldPattern","invalidMessages","pattern","invalidMessage","hasInvalidInputFieldPattern","handleSelectPropertyChange","option","handleSelectSetValue","handlePropertyChange","allCaps","requirePositive","onChangeIfTrue","propertyToChange","finalizedPropertyToChange","performPropertyReplacement","handleSaveClick","newPage","handleSavePartialClick","handleCancelClick","handleDragStart","dataTransfer","dropEffect","$dragElement","handleDragOver","$dropTarget","$orderedSelectSource","isSelectedList","hasPlaceholder","isBefore","handleDragEnd","$placeholder","changedAnswer","existingIndex","desiredIndex","CSS","escape","initialBeginFetchAnswers","newProps","newState","forceUpdate","renderOrderedSelect","onDragStart","onDragEnd","onDrop","hideAdd","onDragOver","draggable","ensureAnswersAreObjects","convertedAnswers","renderSelect","hasGroups","isGroup","ordering","order","searchable","group","selectToRender","getOptionLabel","getOptionValue","hideDescriptions","subQuestionDefinition","renderQuestion","isTopLevel","hideHorizontalRule","minHeight","labelText","disabledValue","renderWizardParagraph","disableSubmit","disableCancel","isQuestionParagraph","dangerouslySetInnerHTML","calculateUpdatedTotal","defaultAmount","initialFrequency","getChildSponsorshipTagHelperAttributes","currentFrequencyValue","initializeSponsorshipSearchForm","isIncorrectSearchId","$sponsorshipSearchFormComponents","_submitSponsorshipSearchForm","_performSponsorshipSearchFromSearchForm","initializeSponsorshipSearchResultsButton","$childSponsorship","sponsorshipSearchResultsId","$sponsorshipSearchResultsComponents","sponsorshipSearchResultsComponent","$sponsorshipSearchResultsComponent","databaseSearchId","$newSponsorshipSearchResultsComponent","$sponsorshipSearchForms","$sponsorshipSearchForm","criteriaForQueryString","_transformCriteriaForQueryString","criterion","$matchingFields","_EventEmitter","tokens","carouselCurrentPages","wizardCommunicationTypes","wizardEmailSubscriptionDisplayMessages","wizardPledgeCompletionDefaults","wizardSecurePledges","wizardSponsorshipDisplayMessages","getDefaultPledgeFrequency","requireRecurring","selectedQuantities","selectedSuggestedDonation","selectedSuggestedDonations","defaultSuggestedDonations","getSuggestedDonation","getDefaultSuggestedDonation","validateSuggestedAmount","defaultSuggestedAmount","initialAmount","suggestedDonationSetIsValid","newAmount","prevSelectorValue","wizardContent","_getValue","_getTokenizedValue","tokenizedValue","autoRenewSelected","$subscriptionComponent","getSelectedAddress","$otherAddressSelector","getSelectedEmail","$otherEmailSelector","subscriptionData","subscriptionAccountData","autoRenewChecked","otherAddressId","otherEmailId","subscriptionNote","organizationPrimaryContact","initializeSubscriptionComponent","initializeSubscriptionPromotionalCodeComponent","initializeOtherAddressDropdownComponents","otherAddressDropdown","$otherAddressDropdown","setOtherAddress","initializeOtherEmailDropdownComponents","otherEmailDropdown","$otherEmailDropdown","setOtherEmail","initializeSubscriptionPriceCodesComponent","startDateInvalid","$singlePriceCodeComponents","priceCodeClicked","$promoCodeFormComponent","$formInput","promotion","$priceComponent","appliedPromotion","$currentPromotionalCode","removePromotionalCode","$singlePriceCode","selectedAddress","createAccountFormId","_setAddressDisableStatus","_clearAddressData","onlyAddressData","selectedEmail","_setEmailDisableStatus","_clearEmailData","onlyEmailData","$allThisIsMeCheckboxesInSubscription","$otherAddressDropdowns","$otherEmailDropdowns","isAddressSelected","emptyAddressSelected","isEmailSelected","emptyEmailSelected","_serializeSubscriptionPurchaseData","_clearSubscriptionPurchaseData"],"sourceRoot":""}