{"version":3,"file":"common.js","mappings":"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IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,SAAU,CACN,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,SAAU,CACN,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,QAAS,CACL,IACA,KACA,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,QAAS,CACL,KACA,IACA,KAEJ,GAAM,CACF,KACA,IACA,IACA,MAEJ,QAAS,CACL,KACA,IACA,KACA,KAEJ,GAAM,CACF,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,KAAKmgC,SACdk8G,EAAWr8I,KAAKxD,QAAQgjC,WAAWW,GAAUsB,GAAQ,MAAU,EAAI,IACvE,OAAO46G,QAA2CA,EAAW,IACjE,EACO11F,CACX,CA/yB4B,GAszB5B,SAAS+vF,GAASmB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,EACzC,CA8BA,SAASjC,GAAcl8G,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,CACR,CAKA,SAASm8G,GAAiBn8G,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAA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CR,CACD5lI,KAAM,IACN4lI,QAAS,kBACR,CACD5lI,KAAM,IACN4lI,QAAS,wBACR,CACD5lI,KAAM,IACN4lI,QAAS,SACR,CACD5lI,KAAM,IACN4lI,QAAS,kBACR,CACD5lI,KAAM,IACN4lI,QAAS,sBACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,IACN4lI,QAAS,YACR,CACD5lI,KAAM,IACN4lI,QAAS,oBACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,IACN4lI,QAAS,+CACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,MACR,CACD5lI,KAAM,KACN4lI,QAAS,MACR,CACD5lI,KAAM,IACN4lI,QAAS,cACR,CACD5lI,KAAM,IACN4lI,QAAS,UACR,CACD5lI,KAAM,IACN4lI,QAAS,qBACR,CACD5lI,KAAM,IACN4lI,QAAS,qBACR,CACD5lI,KAAM,IACN4lI,QAAS,mBACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,IACN4lI,QAAS,sCACR,CACD5lI,KAAM,IACN4lI,QAAS,YACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,IACN4lI,QAAS,cACR,CACD5lI,KAAM,IACN4lI,QAAS,SACR,CACD5lI,KAAM,IACN4lI,QAAS,mBACR,CACD5lI,KAAM,IACN4lI,QAAS,kBACR,CACD5lI,KAAM,IACN4lI,QAAS,uCACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,OACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,KACN4lI,QAAS,MACR,CACD5lI,KAAM,KACN4lI,QAAS,KACR,CACD5lI,KAAM,IACN4lI,QAAS,aACR,CACD5l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","sources":["webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/actions/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/actions/types.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/components/Programs.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/components/SubmitButton.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/containers/PostPurchaseProgramRecommendations.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/helpers/query.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/reducers/email.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/reducers/prismic.js","webpack:///./node_modules/@uplight/marketplace-content/src/PostPurchaseProgramRecommendations/selectors/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/defaultConfig.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/PrismicHtmlSerializer.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/EmbeddedVideo/EmbeddedVideo.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/EmbeddedVideo/EmbeddedVideoInline.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/EmbeddedVideo/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Hyperlink/Hyperlink.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Hyperlink/WithExternalLinkIcon.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Hyperlink/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Image/Image.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Image/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/ListItem/ListItem.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/ListItem/WithCheckmark.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/ListItem/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/OListItem/OListItem.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/OListItem/WithNumbers.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/OListItem/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Span/Span.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/components/Span/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/prismicElements.js","webpack:///./node_modules/@uplight/marketplace-content/src/htmlSerializer/serializeHtml.js","webpack:///./node_modules/@uplight/marketplace-content/src/index.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/Page.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/CardList/CardList.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/Cards/ArticleCard/ArticleCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/Cards/BasicCard/BasicCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/Cards/ExpandableCard/ExpandableCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/Cards/ProgramCard/ProgramCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/DetailsExpandableCard/DetailsExpandableCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/Divider/Divider.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/EnergyCostGraph/EnergyCostGraph.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/HeroCard/HeroCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/PageHero/PageHero.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/PageTitle/BasicPageTitle.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/PageTitle/TradeAllyPageTitle.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/ResponsiveHero/ResponsiveHero.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/ResponsiveHero/templates/BasicTemplate/BasicTemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/ResponsiveHero/templates/CategoryTemplate/CategoryTemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/ResponsiveHero/templates/ClickableImageTemplate/ClickableImageTemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/ResponsiveImage/ResponsiveImage.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionBody/SectionBody.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionBorderTile/SectionBorderTile.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionCTALink/SectionCTALink.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionContactInfo/ContactPoint.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionContactInfo/SectionContactInfo.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionContactInfo/SectionContactInfoSingle.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionExpandableList/ExpandableItem.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionExpandableList/SectionExpandableList.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionImages/SectionImages.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionInfoCard/InfoCardImage.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionInfoCard/SectionInfoCard.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionList/SectionList.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionListItem/ListItem.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionTable/SectionTable.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionTitle/BasicSectionTitle.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/components/SectionTitle/TradeAllySectionTitle.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/helpers/listHelpers.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/helpers/normalizer.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/helpers/query.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/helpers/tableHelpers.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/templates/BasicPageTemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/pages/templates/CenhubTradeAllyTemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/prismicClient.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/ProgramPage.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/BenefitsList/BenefitsList.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/CTAButton/CTAButton.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/ComponentTargetID/ComponentTargetID.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/ContactInfo/Contact.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/ContactInfo/ContactInfo.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/ContentBox/ContentBox.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/ImageLinks/ImageLinks.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/InfoList/InfoList.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/KeyBenefits/KeyBenefits.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/KeyPoints/KeyPoints.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/KeyPoints/components/KeyPointsListItems.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/KeyPoints/helpers.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/LinkedContentMapper/LinkedContentMapper.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/components/ProgramHero/ProgramHero.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/helpers/contentHelpers.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/helpers/normalizer.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/helpers/query.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/templates/BasicTemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/programs/templates/DRPETemplate.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/AnchorLink/AnchorLink.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/Checkbox/Checkbox.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/EmbeddedVideo/EmbeddedVideo.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/EmbeddedVideo/helpers/getVimeoUrl.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/EmbeddedVideo/helpers/getYouTubeUrl.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/ErrorMessage/ErrorMessage.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/Link/Link.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/MarkdownRenderers/CustomReactMarkdown.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/MarkdownRenderers/MarkdownExternalLinkRenderer.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/MarkdownRenderers/MarkdownLinkRenderer.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/MarkdownRenderers/MarketplaceShortcodes.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/MarkdownRenderers/fragmentWrapperRenderer.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/MarketplaceTooltip/MarketplaceTooltip.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/components/TooltipHOC/TooltipHOC.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/helpers/MediaQueryListener.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/helpers/animateScroll.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/helpers/isEnterOrSpace.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/helpers/linkHelper.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/helpers/prismic.js","webpack:///./node_modules/@uplight/remark-shortcode/index.js","webpack:///./node_modules/@uplight/remark-shortcode/lib/Matcher.js","webpack:///./node_modules/@uplight/remark-shortcode/lib/Shortcode.js","webpack:///./node_modules/@uplight/remark-shortcode/lib/clean.js","webpack:///./node_modules/@uplight/remark-sub-sup/index.js","webpack:///./node_modules/@uplight/remark-sub-sup/lib/Match.js","webpack:///./node_modules/@uplight/remark-sub-sup/lib/Matcher.js","webpack:///./node_modules/bail/index.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/mdast-add-list-metadata/index.js","webpack:///./node_modules/mdast-util-from-markdown/dist/index.js","webpack:///./node_modules/mdast-util-from-markdown/index.js","webpack:///./node_modules/mdast-util-to-string/index.js","webpack:///./node_modules/micromark/dist/character/ascii-alpha.js","webpack:///./node_modules/micromark/dist/character/ascii-alphanumeric.js","webpack:///./node_modules/micromark/dist/character/ascii-atext.js","webpack:///./node_modules/micromark/dist/character/ascii-control.js","webpack:///./node_modules/micromark/dist/character/ascii-digit.js","webpack:///./node_modules/micromark/dist/character/ascii-hex-digit.js","webpack:///./node_modules/micromark/dist/character/ascii-punctuation.js","webpack:///./node_modules/micromark/dist/character/markdown-line-ending-or-space.js","webpack:///./node_modules/micromark/dist/character/markdown-line-ending.js","webpack:///./node_modules/micromark/dist/character/markdown-space.js","webpack:///./node_modules/micromark/dist/character/unicode-punctuation.js","webpack:///./node_modules/micromark/dist/character/unicode-whitespace.js","webpack:///./node_modules/micromark/dist/constant/assign.js","webpack:///./node_modules/micromark/dist/constant/from-char-code.js","webpack:///./node_modules/micromark/dist/constant/has-own-property.js","webpack:///./node_modules/micromark/dist/constant/html-block-names.js","webpack:///./node_modules/micromark/dist/constant/html-raw-names.js","webpack:///./node_modules/micromark/dist/constant/splice.js","webpack:///./node_modules/micromark/dist/constant/unicode-punctuation-regex.js","webpack:///./node_modules/micromark/dist/constructs.js","webpack:///./node_modules/micromark/dist/initialize/content.js","webpack:///./node_modules/micromark/dist/initialize/document.js","webpack:///./node_modules/micromark/dist/initialize/flow.js","webpack:///./node_modules/micromark/dist/initialize/text.js","webpack:///./node_modules/micromark/dist/parse.js","webpack:///./node_modules/micromark/dist/postprocess.js","webpack:///./node_modules/micromark/dist/preprocess.js","webpack:///./node_modules/micromark/dist/tokenize/attention.js","webpack:///./node_modules/micromark/dist/tokenize/autolink.js","webpack:///./node_modules/micromark/dist/tokenize/block-quote.js","webpack:///./node_modules/micromark/dist/tokenize/character-escape.js","webpack:///./node_modules/micromark/dist/tokenize/character-reference.js","webpack:///./node_modules/micromark/dist/tokenize/code-fenced.js","webpack:///./node_modules/micromark/dist/tokenize/code-indented.js","webpack:///./node_modules/micromark/dist/tokenize/code-text.js","webpack:///./node_modules/micromark/dist/tokenize/content.js","webpack:///./node_modules/micromark/dist/tokenize/definition.js","webpack:///./node_modules/micromark/dist/tokenize/factory-destination.js","webpack:///./node_modules/micromark/dist/tokenize/factory-label.js","webpack:///./node_modules/micromark/dist/tokenize/factory-space.js","webpack:///./node_modules/micromark/dist/tokenize/factory-title.js","webpack:///./node_modules/micromark/dist/tokenize/factory-whitespace.js","webpack:///./node_modules/micromark/dist/tokenize/hard-break-escape.js","webpack:///./node_modules/micromark/dist/tokenize/heading-atx.js","webpack:///./node_modules/micromark/dist/tokenize/html-flow.js","webpack:///./node_modules/micromark/dist/tokenize/html-text.js","webpack:///./node_modules/micromark/dist/tokenize/label-end.js","webpack:///./node_modules/micromark/dist/tokenize/label-start-image.js","webpack:///./node_modules/micromark/dist/tokenize/label-start-link.js","webpack:///./node_modules/micromark/dist/tokenize/line-ending.js","webpack:///./node_modules/micromark/dist/tokenize/list.js","webpack:///./node_modules/micromark/dist/tokenize/partial-blank-line.js","webpack:///./node_modules/micromark/dist/tokenize/setext-underline.js","webpack:///./node_modules/micromark/dist/tokenize/thematic-break.js","webpack:///./node_modules/micromark/dist/util/chunked-push.js","webpack:///./node_modules/micromark/dist/util/chunked-splice.js","webpack:///./node_modules/micromark/dist/util/classify-character.js","webpack:///./node_modules/micromark/dist/util/combine-extensions.js","webpack:///./node_modules/micromark/dist/util/create-tokenizer.js","webpack:///./node_modules/micromark/dist/util/miniflat.js","webpack:///./node_modules/micromark/dist/util/move-point.js","webpack:///./node_modules/micromark/dist/util/normalize-identifier.js","webpack:///./node_modules/micromark/dist/util/prefix-size.js","webpack:///./node_modules/micromark/dist/util/regex-check.js","webpack:///./node_modules/micromark/dist/util/resolve-all.js","webpack:///./node_modules/micromark/dist/util/safe-from-int.js","webpack:///./node_modules/micromark/dist/util/serialize-chunks.js","webpack:///./node_modules/micromark/dist/util/shallow.js","webpack:///./node_modules/micromark/dist/util/size-chunks.js","webpack:///./node_modules/micromark/dist/util/slice-chunks.js","webpack:///./node_modules/micromark/dist/util/subtokenize.js","webpack:///./node_modules/parse-entities/decode-entity.browser.js","webpack:///./node_modules/react-markdown/lib/ast-to-react.js","webpack:///./node_modules/react-markdown/lib/get-definitions.js","webpack:///./node_modules/react-markdown/lib/plugins/disallow-node.js","webpack:///./node_modules/react-markdown/lib/plugins/naive-html.js","webpack:///./node_modules/react-markdown/lib/react-markdown.js","webpack:///./node_modules/react-markdown/lib/renderers.js","webpack:///./node_modules/react-markdown/lib/symbols.js","webpack:///./node_modules/react-markdown/lib/uri-transformer.js","webpack:///./node_modules/react-markdown/lib/wrap-table-rows.js","webpack:///./node_modules/react-redux/es/utils/PropTypes.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/redux-thunk/lib/index.js","webpack:///./node_modules/remark-parse/index.js","webpack:///./node_modules/trough/index.js","webpack:///./node_modules/trough/wrap.js","webpack:///./node_modules/unified/index.js","webpack:///./node_modules/unist-util-is/convert.js","webpack:///./node_modules/unist-util-stringify-position/index.js","webpack:///./node_modules/unist-util-visit-parents/color.browser.js","webpack:///./node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/unist-util-visit/index.js","webpack:///./node_modules/vfile-message/index.js","webpack:///./node_modules/vfile/index.js","webpack:///./node_modules/vfile/lib/core.js","webpack:///./node_modules/vfile/lib/index.js","webpack:///./node_modules/vfile/lib/minpath.browser.js","webpack:///./node_modules/vfile/lib/minproc.browser.js","webpack:///./node_modules/xtend/immutable.js","webpack:///../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack:///../node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack:///../node_modules/@hypnosphi/create-react-context/lib/index.js","webpack:///packages/@react-aria/focus/src/focusSafely.ts","webpack:///packages/@react-aria/focus/src/isElementVisible.ts","webpack:///packages/@react-aria/focus/src/FocusScope.tsx","webpack:///packages/@react-aria/focus/src/useFocusRing.ts","webpack:///packages/@react-aria/focus/src/FocusRing.tsx","webpack:///packages/@react-aria/focus/src/useFocusable.tsx","webpack:///packages/@react-aria/interactions/src/textSelection.ts","webpack:///packages/@react-aria/interactions/src/utils.ts","webpack:///packages/@react-aria/interactions/src/context.ts","webpack:///packages/@react-aria/interactions/src/usePress.ts","webpack:///packages/@react-aria/interactions/src/Pressable.tsx","webpack:///packages/@react-aria/interactions/src/PressResponder.tsx","webpack:///packages/@react-aria/interactions/src/useFocus.ts","webpack:///packages/@react-aria/interactions/src/useFocusVisible.ts","webpack:///packages/@react-aria/interactions/src/useFocusWithin.ts","webpack:///packages/@react-aria/interactions/src/useHover.ts","webpack:///packages/@react-aria/interactions/src/useInteractOutside.ts","webpack:///packages/@react-aria/interactions/src/createEventHandler.ts","webpack:///packages/@react-aria/interactions/src/useKeyboard.ts","webpack:///packages/@react-aria/interactions/src/useMove.ts","webpack:///packages/@react-aria/interactions/src/useScrollWheel.ts","webpack:///packages/@react-aria/interactions/src/useLongPress.ts","webpack:///packages/@react-aria/label/src/useLabel.ts","webpack:///packages/@react-aria/label/src/useField.ts","webpack:///../node_modules/intl-messageformat/lib/index.js","webpack:///packages/@internationalized/message/src/MessageDictionary.ts","webpack:///packages/@internationalized/message/src/MessageFormatter.ts","webpack:///packages/@internationalized/date/src/queries.ts","webpack:///packages/@internationalized/date/src/conversion.ts","webpack:///packages/@internationalized/date/src/CalendarDate.ts","webpack:///packages/@internationalized/date/src/DateFormatter.ts","webpack:///packages/@internationalized/number/src/NumberFormatter.ts","webpack:///packages/@internationalized/number/src/NumberParser.ts","webpack:///packages/@react-aria/i18n/src/utils.ts","webpack:///packages/@react-aria/i18n/src/useDefaultLocale.ts","webpack:///packages/@react-aria/i18n/src/context.tsx","webpack:///packages/@react-aria/i18n/src/useMessageFormatter.ts","webpack:///packages/@react-aria/i18n/src/useDateFormatter.ts","webpack:///packages/@react-aria/i18n/src/useNumberFormatter.ts","webpack:///packages/@react-aria/i18n/src/useCollator.ts","webpack:///packages/@react-aria/i18n/src/useFilter.ts","webpack:///packages/@react-aria/radio/src/utils.ts","webpack:///packages/@react-aria/radio/src/useRadio.ts","webpack:///packages/@react-aria/radio/src/useRadioGroup.ts","webpack:///packages/@react-aria/ssr/src/SSRProvider.tsx","webpack:///packages/@react-aria/utils/src/useLayoutEffect.ts","webpack:///packages/@react-aria/utils/src/useId.ts","webpack:///packages/@react-aria/utils/src/chain.ts","webpack:///packages/@react-aria/utils/src/mergeProps.ts","webpack:///packages/@react-aria/utils/src/mergeRefs.ts","webpack:///packages/@react-aria/utils/src/filterDOMProps.ts","webpack:///packages/@react-aria/utils/src/focusWithoutScrolling.ts","webpack:///packages/@react-aria/utils/src/getOffset.ts","webpack:///packages/@react-aria/utils/src/runAfterTransition.ts","webpack:///packages/@react-aria/utils/src/useDrag1D.ts","webpack:///packages/@react-aria/utils/src/useGlobalListeners.ts","webpack:///packages/@react-aria/utils/src/useLabels.ts","webpack:///packages/@react-aria/utils/src/useObjectRef.ts","webpack:///packages/@react-aria/utils/src/useUpdateEffect.ts","webpack:///packages/@react-aria/utils/src/useResizeObserver.ts","webpack:///packages/@react-aria/utils/src/useSyncRef.ts","webpack:///packages/@react-aria/utils/src/getScrollParent.ts","webpack:///packages/@react-aria/utils/src/useViewportSize.ts","webpack:///packages/@react-aria/utils/src/useDescription.ts","webpack:///packages/@react-aria/utils/src/platform.ts","webpack:///packages/@react-aria/utils/src/useEvent.ts","webpack:///packages/@react-aria/utils/src/useValueEffect.ts","webpack:///packages/@react-aria/utils/src/scrollIntoView.ts","webpack:///packages/@react-aria/visually-hidden/src/VisuallyHidden.tsx","webpack:///packages/@react-stately/utils/src/useControlledState.ts","webpack:///packages/@react-stately/utils/src/number.ts","webpack:///../node_modules/@restart/hooks/esm/useForceUpdate.js","webpack:///../node_modules/@restart/hooks/esm/usePrevious.js","webpack:///../../src/global.ts","webpack:///../../src/node.ts","webpack:///../../src/env.ts","webpack:///../../src/time.ts","webpack:///../node_modules/@uplight/marketplace-components/lib/Bootstrap.js","webpack:///../node_modules/@uplight/marketplace-components/lib/getReduxStore.js","webpack:///../node_modules/@uplight/marketplace-components/lib/getPropsFromWindow.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/events.js","webpack:///../node_modules/@uplight/marketplace-components/lib/ComponentLoader.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/toggleAddOnModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/Analytics.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/helpers/getProductPrice.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/addToCartModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/checkoutModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/checkoutOptionModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/clickModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/detailImpressionModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/impressionModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/lineItemsModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/productModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/purchaseModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/analytics/models/removeFromCartModel.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AddOnIcon/AddOnIcon.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AriaRadio/Radio.js","webpack:///packages/@react-stately/radio/src/useRadioGroupState.ts","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AriaRadio/RadioGroup.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AttributeSelector/helpers/AttributeCookies.js","webpack:///../../src/is.ts","webpack:///../../src/browser.ts","webpack:///../../src/string.ts","webpack:///../../src/object.ts","webpack:///../../src/misc.ts","webpack:///../../src/logger.ts","webpack:///../../src/flags.ts","webpack:///../../src/syncpromise.ts","webpack:///../../src/scope.ts","webpack:///../../src/session.ts","webpack:///../../src/hub.ts","webpack:///../../src/version.ts","webpack:///../../src/polyfill.ts","webpack:///../../src/error.ts","webpack:///../../src/dsn.ts","webpack:///../../src/stacktrace.ts","webpack:///../../src/normalize.ts","webpack:///../../src/memo.ts","webpack:///../../src/integration.ts","webpack:///../../src/baseclient.ts","webpack:///../../src/api.ts","webpack:///../../src/envelope.ts","webpack:///../../src/request.ts","webpack:///../../../src/transports/noop.ts","webpack:///../../src/severity.ts","webpack:///../../src/basebackend.ts","webpack:///../../src/supports.ts","webpack:///../../../src/stack-parsers.ts","webpack:///../../../src/eventbuilder.ts","webpack:///../../src/promisebuffer.ts","webpack:///../../src/ratelimit.ts","webpack:///../../src/status.ts","webpack:///../../../src/transports/base.ts","webpack:///../../../src/flags.ts","webpack:///../../../src/transports/utils.ts","webpack:///../../../src/transports/base.ts","webpack:///../../src/clientreport.ts","webpack:///../../src/async.ts","webpack:///../../../src/transports/fetch.ts","webpack:///../../../src/transports/xhr.ts","webpack:///../../../src/backend.ts","webpack:///../../../src/transports/new-fetch.ts","webpack:///../../../src/transports/new-xhr.ts","webpack:///../../src/index.ts","webpack:///../../../src/helpers.ts","webpack:///../../src/instrument.ts","webpack:///../../src/enums.ts","webpack:///../../../src/integrations/breadcrumbs.ts","webpack:///../../../src/client.ts","webpack:///../../../src/integrations/functiontostring.ts","webpack:///../../../src/integrations/inboundfilters.ts","webpack:///../../../src/integrations/trycatch.ts","webpack:///../../../src/integrations/globalhandlers.ts","webpack:///../../../src/integrations/linkederrors.ts","webpack:///../../../src/integrations/dedupe.ts","webpack:///../../../src/integrations/useragent.ts","webpack:///../../../src/sdk.ts","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/BrowserCompatibility/definitions.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/BrowserCompatibility/BrowserCompatibility.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/Boundary/Boundary.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/Boundary/getUserMessages.js","webpack:///packages/@react-aria/toggle/src/useToggle.ts","webpack:///packages/@react-stately/toggle/src/useToggleState.ts","webpack:///packages/@react-aria/checkbox/src/useCheckbox.ts","webpack:///packages/@react-aria/checkbox/src/utils.ts","webpack:///packages/@react-aria/checkbox/src/useCheckboxGroup.ts","webpack:///packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/Checkbox/Checkbox.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/CommodityIcon/CommodityIcon.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/Dropdown/Dropdown.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ExternalAddOns/ExternalAddOns.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/isJSX.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/InfoModal/InfoModal.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/Link/Link.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AnchorLink/AnchorLink.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/MarkdownRenderers/MarkdownLinkRenderer.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/MarkdownRenderers/MarketplaceShortcodes.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/MarkdownRenderers/fragmentWrapperRenderer.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/MarkdownRenderers/CustomReactMarkdown.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/MarkdownRenderers/MarkdownTableRenderer.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/parseMarkdownTable.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/MarketplaceTooltip/MarketplaceTooltip.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OfferCard/OfferCard.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/SelectionModal/Header/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/DropDownMenu/DropDownMenu.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/renderDropDownOptions.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/Button/button.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/Button/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/DropdownLookupForm/helpers/getOpcoOptions.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/DropdownLookupForm/LocationType/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/DropdownLookupForm/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/DropdownLookupForm/helpers/renderDropDownChildren.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/MultiSectionLookupForm/SectionForm/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/MultiSectionLookupForm/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/SelectionModal/Body/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/SelectionModal/Footer/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/SelectionModal/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/Trigger/Link/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/Trigger/Disclaimer/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/components/Trigger/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/OpcoNavigator/containers/OpcoNavigator.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/PriceDisplay/components/ProgramAddOn.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/PriceDisplay/PriceDisplay.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/components/ProductAddOnIneligible.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/helpers/getAddOnHeader.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/components/ProgramAddOn.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/analytics/addOnEvents.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/components/ServiceAddOn.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/components/ProductAddOnAvailable.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/ProductAddOn.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductAddOn/helpers/getBillCreditAmount.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductBadge/ProductBadge.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AddOnCallout/components/ServiceCallout.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/AddOnCallout/AddOnCallout.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductCard/ProductCard.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/ProductTile/ProductTile.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/PromotionBanner/PromotionBanner.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/QuantitySelector/QuantitySelector.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/Radio/Radio.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/SaleIcon/SaleIcon.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/StarRating/StarRating.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/components/TooltipHOC/TooltipHOC.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/MediaQueryListener.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/animateScroll.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/classNameHelper.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/createUniqueId.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/creditMessageFormatter.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/decimalFormatter.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/decimalNumberFormatter.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/fetchData.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/fetchOptions.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/genericApiErrorHandler.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/getCommodityValue.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/getGlobalFromWindow.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/getPriceDisplay.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/getValueFromWindow.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/isEnterOrSpace.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/linkHelper.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/helpers/normalizeAttributeGroups.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/redux/actions/errors.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/redux/reducers/errors.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/redux/reducers/externalAddOns.js","webpack:///../node_modules/@uplight/marketplace-components/src/shared/redux/selectors/errors.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/CartRecommendedProducts/components/ProductTiles.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/CartRecommendedProducts/components/CartRecommendations.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/CartRecommendedProducts/components/EmptyCartRecommendations.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/CartRecommendedProducts/containers/CartRecommendedProducts.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/withEinstein/actions/index.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/withEinstein/actions/types.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/withEinstein/containers/withEinstein.js","webpack:///../node_modules/@uplight/marketplace-components/src/slots/withEinstein/reducers/index.js","webpack:///../node_modules/clsx/dist/clsx.m.js","webpack:///../src/index.ts","webpack:///../node_modules/dom-helpers/esm/contains.js","webpack:///../node_modules/dom-helpers/esm/ownerDocument.js","webpack:///../node_modules/dom-helpers/esm/removeEventListener.js","webpack:///../node_modules/exenv/index.js","webpack:///../node_modules/focus-trap-react/dist/focus-trap-react.js","webpack:///../index.js","webpack:///../node_modules/gud/index.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack:///../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack:///../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack:///../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack:///../node_modules/@formatjs/fast-memoize/lib/index.js","webpack:///../node_modules/intl-messageformat/lib/src/formatters.js","webpack:///../node_modules/intl-messageformat/lib/src/core.js","webpack:///../node_modules/intl-messageformat/lib/src/error.js","webpack:///../node_modules/react-bootstrap-typeahead/es/behaviors/classNames.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/ClearButton.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/Input.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/Token.js","webpack:///../../src/utils/isBrowser.js","webpack:///../../src/utils/debounce.js","webpack:///../../src/utils/isFunction.js","webpack:///../../src/utils/getStyleComputedProperty.js","webpack:///../../src/utils/getParentNode.js","webpack:///../../src/utils/getScrollParent.js","webpack:///../../src/utils/getReferenceNode.js","webpack:///../../src/utils/isIE.js","webpack:///../../src/utils/getOffsetParent.js","webpack:///../../src/utils/getRoot.js","webpack:///../../src/utils/findCommonOffsetParent.js","webpack:///../../src/utils/isOffsetContainer.js","webpack:///../../src/utils/getScroll.js","webpack:///../../src/utils/getBordersSize.js","webpack:///../../src/utils/getWindowSizes.js","webpack:///../../src/utils/getClientRect.js","webpack:///../../src/utils/getBoundingClientRect.js","webpack:///../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack:///../../src/utils/includeScroll.js","webpack:///../../src/utils/isFixed.js","webpack:///../../src/utils/getFixedPositionOffsetParent.js","webpack:///../../src/utils/getBoundaries.js","webpack:///../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack:///../../src/utils/computeAutoPlacement.js","webpack:///../../src/utils/getReferenceOffsets.js","webpack:///../../src/utils/getOuterSizes.js","webpack:///../../src/utils/getOppositePlacement.js","webpack:///../../src/utils/getPopperOffsets.js","webpack:///../../src/utils/find.js","webpack:///../../src/utils/runModifiers.js","webpack:///../../src/utils/findIndex.js","webpack:///../../src/methods/update.js","webpack:///../../src/utils/isModifierEnabled.js","webpack:///../../src/utils/getSupportedPropertyName.js","webpack:///../../src/methods/destroy.js","webpack:///../../src/utils/getWindow.js","webpack:///../../src/utils/setupEventListeners.js","webpack:///../../src/methods/enableEventListeners.js","webpack:///../../src/methods/disableEventListeners.js","webpack:///../../src/utils/removeEventListeners.js","webpack:///../../src/utils/isNumeric.js","webpack:///../../src/utils/setStyles.js","webpack:///../../src/modifiers/computeStyle.js","webpack:///../../src/utils/isModifierRequired.js","webpack:///../../src/methods/placements.js","webpack:///../../src/utils/clockwise.js","webpack:///../../src/modifiers/index.js","webpack:///../../src/modifiers/shift.js","webpack:///../../src/modifiers/offset.js","webpack:///../../src/modifiers/preventOverflow.js","webpack:///../../src/modifiers/keepTogether.js","webpack:///../../src/modifiers/arrow.js","webpack:///../../src/modifiers/flip.js","webpack:///../../src/utils/getOppositeVariation.js","webpack:///../../src/modifiers/inner.js","webpack:///../../src/modifiers/hide.js","webpack:///../../src/utils/getRoundedOffsets.js","webpack:///../../src/modifiers/applyStyle.js","webpack:///../../src/utils/setAttributes.js","webpack:///../../src/methods/defaults.js","webpack:///../../src/index.js","webpack:///../node_modules/react-popper/lib/esm/utils.js","webpack:///../node_modules/react-popper/lib/esm/Popper.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/Overlay.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/Typeahead.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/TypeaheadInputMulti.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/TypeaheadInputSingle.js","webpack:///../node_modules/react-bootstrap-typeahead/es/components/TypeaheadMenu.js","webpack:///../node_modules/react-bootstrap-typeahead/es/constants.js","webpack:///../node_modules/react-bootstrap-typeahead/es/core/Context.js","webpack:///../node_modules/react-bootstrap-typeahead/es/core/TypeaheadManager.js","webpack:///../node_modules/react-bootstrap-typeahead/es/core/Typeahead.js","webpack:///../node_modules/react-bootstrap-typeahead/es/propTypes.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getDisplayName.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getIsOnlyResult.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getMenuItemId.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getOptionProperty.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getTruncatedOptions.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getStringLabelKey.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getOptionLabel.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/addCustomOption.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/stripDiacritics.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/warn.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/defaultFilterBy.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getMatchBounds.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getHintText.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getInputProps.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getInputText.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/getUpdatedActiveIndex.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/validateSelectedPropChange.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/isSelectable.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/isShown.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/nodash.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/preventInputBlur.js","webpack:///../node_modules/react-bootstrap-typeahead/es/utils/size.js","webpack:///../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///../node_modules/react-modal/lib/components/Modal.js","webpack:///../node_modules/react-modal/lib/components/ModalPortal.js","webpack:///../node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///../node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///../node_modules/react-modal/lib/helpers/classList.js","webpack:///../node_modules/react-modal/lib/helpers/focusManager.js","webpack:///../node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///../node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///../node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///../node_modules/react-modal/lib/helpers/tabbable.js","webpack:///../node_modules/react-modal/lib/index.js","webpack:///../node_modules/react-overlays/esm/ownerDocument.js","webpack:///../node_modules/react-overlays/esm/safeFindDOMNode.js","webpack:///../node_modules/dom-helpers/esm/canUseDOM.js","webpack:///../node_modules/dom-helpers/esm/addEventListener.js","webpack:///../node_modules/dom-helpers/esm/listen.js","webpack:///../node_modules/@restart/hooks/esm/useEventCallback.js","webpack:///../node_modules/@restart/hooks/esm/useCommittedRef.js","webpack:///../node_modules/react-overlays/esm/useRootClose.js","webpack:///../node_modules/react-popper/lib/esm/Manager.js","webpack:///../node_modules/scroll-into-view-if-needed/es/index.js","webpack:///../src/index.js","webpack:///../node_modules/warning/warning.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/call-bind/callBound.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/call-bind/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/classnames/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/cookie/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/deep-equal/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/define-data-property/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/define-properties/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/escape-html/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/extend/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/fast-deep-equal/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/function-bind/implementation.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/function-bind/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/functions-have-names/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/get-intrinsic/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/gopd/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/has-property-descriptors/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/has-proto/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/has-symbols/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/has-symbols/shams.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/has-tostringtag/shams.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/hasown/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/is-arguments/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/is-buffer/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/is-date-object/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/is-plain-obj/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/is-regex/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash.debounce/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_DataView.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_Map.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_Promise.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_Set.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_Symbol.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_WeakMap.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_baseGetTag.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_baseIsArguments.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_baseIsNative.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_baseIsTypedArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_baseKeys.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_baseUnary.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_coreJsData.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_freeGlobal.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_getNative.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_getRawTag.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_getTag.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_getValue.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_isMasked.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_isPrototype.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_nativeKeys.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_nodeUtil.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_objectToString.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_overArg.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_root.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/_toSource.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isArguments.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isArrayLike.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isBuffer.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isEmpty.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isFunction.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isLength.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isObject.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isObjectLike.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/isTypedArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/lodash/stubFalse.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-assign/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-is/implementation.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-is/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-is/polyfill.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-is/shim.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-keys/implementation.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-keys/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/object-keys/isArguments.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/prop-types/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/react-dom/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/react-is/cjs/react-is.production.min.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/react-is/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/react/cjs/react.production.min.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/regexp.prototype.flags/implementation.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/regexp.prototype.flags/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/regexp.prototype.flags/polyfill.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/regexp.prototype.flags/shim.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/reselect/lib/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/scheduler/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/set-function-length/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/set-function-name/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/symbol-observable/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/symbol-observable/lib/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/symbol-observable/lib/ponyfill.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/universal-cookie/es6/utils.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/universal-cookie/es6/Cookies.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/universal-cookie/es6/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/uuid/index.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/uuid/lib/bytesToUuid.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/uuid/lib/rng-browser.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/uuid/v1.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/uuid/v4.js","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/electric-plug.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-arrow-bullet.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-arrow-out.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-bookmark.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-caret.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-chat.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-checkbox-checked.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-checkbox-empty.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-checkmark.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-close.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-dollar.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-envelope.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-error.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-external-link.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-info.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-link.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/icon-phone.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/snowflake.svg","webpack:///./node_modules/@uplight/marketplace-content/src/shared/icons/sun.svg","webpack:///../node_modules/@uplight/marketplace-components/src/cart/icons/icon-cart.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-arrow-down.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-caret.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-cart.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-checkmark-circle.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-chevron.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-close-modal.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-close.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-commodity-combined.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-commodity-electric.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-commodity-gas.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-configure-products.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-delivery.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-demand-response.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-dollar.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-error.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-external-link.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-free-gift-with-purchase.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-free-gift.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-gift.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-haul-away.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-house.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-info.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-install.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-leaf.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-location.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-minus.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-money-bag.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-new-badge.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-plus.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-radio-disabled.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-radio-selected.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-radio-unselected.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-rebate-bookmark.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-rebate-modal-header.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-star.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-storefront.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/icon-wrench-screwdriver.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/open-link-icon.svg","webpack:///../node_modules/@uplight/marketplace-components/src/shared/icons/round-wrench-screwdriver.svg","webpack:///./node_modules/@prismicio/client/dist/index.cjs","webpack:///./node_modules/@prismicio/helpers/dist/index.cjs","webpack:///./node_modules/@prismicio/react/dist/index.cjs","webpack:///./node_modules/@prismicio/richtext/dist/index.cjs","webpack:///./node_modules/@prismicio/types/dist/index.cjs","webpack:///./node_modules/imgix-url-builder/dist/index.cjs","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/createClass.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/typeof.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///../../../usr/local/lib/node_modules/@uplight/spark/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sendEmail = exports.fetchPrismicRecommendations = exports.fetchPrismicPrograms = void 0;\n\nvar types = _interopRequireWildcard(require(\"./types\"));\n\nvar _prismicClient = _interopRequireDefault(require(\"../../prismicClient\"));\n\nvar _query = require(\"../helpers/query\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar receivePrismicRecommendations = function receivePrismicRecommendations(results) {\n return {\n type: types.RECEIVE_RECOMMENDATIONS_RESULTS,\n results: results\n };\n};\n\nvar receivePrismicPrograms = function receivePrismicPrograms(results) {\n return {\n type: types.RECEIVE_PROGRAMS_RESULTS,\n results: results\n };\n};\n\nvar sendingEmail = function sendingEmail() {\n return {\n type: types.SEND_EMAIL\n };\n};\n\nvar receivedEmail = function receivedEmail() {\n return {\n type: types.RECEIVE_EMAIL_RESULTS\n };\n};\n\nvar emailFail = function emailFail() {\n return {\n type: types.RECEIVE_EMAIL_ERROR\n };\n};\n\nvar fetchPrismicRecommendations = function fetchPrismicRecommendations(siteId) {\n return function fetchPrismicRecommendations(dispatch) {\n var recommendationsClient = new _prismicClient[\"default\"](function (results) {\n return dispatch(receivePrismicRecommendations(results));\n });\n return recommendationsClient.fetchData((0, _query.queryRecommendations)(siteId), function (results) {\n return results;\n });\n };\n};\n\nexports.fetchPrismicRecommendations = fetchPrismicRecommendations;\n\nvar fetchPrismicPrograms = function fetchPrismicRecommendations(siteId, programs) {\n return function fetchPrismicRecommendations(dispatch) {\n var programsClient = new _prismicClient[\"default\"](function (results) {\n return dispatch(receivePrismicPrograms(results));\n });\n return programsClient.fetchData((0, _query.queryPrograms)(siteId, programs), function (results) {\n return results;\n });\n };\n};\n\nexports.fetchPrismicPrograms = fetchPrismicPrograms;\n\nvar sendEmail = function sendEmail(url, email, programs) {\n return function sendEmail(dispatch) {\n dispatch(sendingEmail());\n var options = {\n method: 'POST',\n body: JSON.stringify({\n email: email,\n programs: programs\n }),\n credentials: 'same-origin'\n };\n var errorStatus = 400;\n var responseStatus;\n return fetch(url, options).then(function (response) {\n responseStatus = response.status;\n return response.json();\n }).then(function (body) {\n if (body.error || responseStatus >= errorStatus) {\n throw Error(body.errorMessage || 'System error');\n }\n\n return dispatch(receivedEmail());\n })[\"catch\"](function () {\n return dispatch(emailFail());\n });\n };\n};\n\nexports.sendEmail = sendEmail;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SEND_EMAIL = exports.RECEIVE_RECOMMENDATIONS_RESULTS = exports.RECEIVE_PROGRAMS_RESULTS = exports.RECEIVE_EMAIL_RESULTS = exports.RECEIVE_EMAIL_ERROR = void 0;\nvar RECEIVE_RECOMMENDATIONS_RESULTS = 'RECEIVE_RECOMMENDATIONS_RESULTS';\nexports.RECEIVE_RECOMMENDATIONS_RESULTS = RECEIVE_RECOMMENDATIONS_RESULTS;\nvar RECEIVE_PROGRAMS_RESULTS = 'RECEIVE_PROGRAMS_RESULTS';\nexports.RECEIVE_PROGRAMS_RESULTS = RECEIVE_PROGRAMS_RESULTS;\nvar SEND_EMAIL = 'SEND_EMAIL';\nexports.SEND_EMAIL = SEND_EMAIL;\nvar RECEIVE_EMAIL_RESULTS = 'RECEIVE_EMAIL_RESULTS';\nexports.RECEIVE_EMAIL_RESULTS = RECEIVE_EMAIL_RESULTS;\nvar RECEIVE_EMAIL_ERROR = 'RECEIVE_EMAIL_ERROR';\nexports.RECEIVE_EMAIL_ERROR = RECEIVE_EMAIL_ERROR;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react2 = require(\"@prismicio/react\");\n\nvar _Checkbox = _interopRequireDefault(require(\"../../shared/components/Checkbox/Checkbox\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase, id-blacklist */\nvar Programs = function ProgramsComponent(_ref) {\n var programs = _ref.programs,\n selectProgram = _ref.selectProgram,\n selectedPrograms = _ref.selectedPrograms;\n return programs.map(function (_ref2) {\n var uid = _ref2.uid,\n _ref2$data = _ref2.data,\n program_name = _ref2$data.program_name,\n post_purchase_recommendation_blurb = _ref2$data.post_purchase_recommendation_blurb;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: uid,\n className: \"recommended-programs__card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_Checkbox[\"default\"], {\n id: uid,\n label: \"\",\n checked: !!selectedPrograms[uid],\n onClick: function onClick() {\n return selectProgram(uid);\n }\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"recommended-programs__card-body\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"recommended-programs__card-header\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicText, {\n field: program_name\n })), /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n className: \"recommended-programs__card-info\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicText, {\n field: post_purchase_recommendation_blurb\n }))));\n });\n};\n\nPrograms.propTypes = {\n programs: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n selectProgram: _propTypes[\"default\"].func.isRequired,\n selectedPrograms: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = Programs;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ErrorMessage = _interopRequireDefault(require(\"../../shared/components/ErrorMessage/ErrorMessage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar SubmitButton = function SubmitButtonComponent(_ref) {\n var inFlight = _ref.inFlight,\n ctaText = _ref.ctaText,\n emailPrograms = _ref.emailPrograms,\n error = _ref.error;\n\n if (error) {\n return /*#__PURE__*/_react[\"default\"].createElement(_ErrorMessage[\"default\"], {\n message: \"Oops \\u2013 something isn\\u2019t working right now. Contact customer support.\"\n });\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", {\n type: \"button\",\n onClick: emailPrograms,\n className: \"recommended-programs__email-cta\"\n }, ctaText, inFlight && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"button-loader\"\n }));\n};\n\nSubmitButton.propTypes = {\n error: _propTypes[\"default\"].bool.isRequired,\n inFlight: _propTypes[\"default\"].bool.isRequired,\n ctaText: _propTypes[\"default\"].string.isRequired,\n emailPrograms: _propTypes[\"default\"].func.isRequired\n};\nvar _default = SubmitButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reduxThunk = _interopRequireDefault(require(\"redux-thunk\"));\n\nvar _reactRedux = require(\"react-redux\");\n\nvar _react2 = require(\"@prismicio/react\");\n\nvar prismicH = _interopRequireWildcard(require(\"@prismicio/helpers\"));\n\nvar _redux = require(\"redux\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _email = _interopRequireDefault(require(\"../reducers/email\"));\n\nvar _prismic = _interopRequireDefault(require(\"../reducers/prismic\"));\n\nvar _selectors = require(\"../selectors\");\n\nvar _actions = require(\"../actions\");\n\nvar _Programs = _interopRequireDefault(require(\"../components/Programs\"));\n\nvar _SubmitButton = _interopRequireDefault(require(\"../components/SubmitButton\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/* eslint-disable camelcase */\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n recommendedPrograms: (0, _selectors.combinePrismicData)(state),\n emailState: state.email\n };\n};\n\nvar PostPurchaseProgramRecommendations = /*#__PURE__*/function (_Component) {\n _inherits(PostPurchaseProgramRecommendations, _Component);\n\n var _super = _createSuper(PostPurchaseProgramRecommendations);\n\n function PostPurchaseProgramRecommendations() {\n var _this;\n\n _classCallCheck(this, PostPurchaseProgramRecommendations);\n\n _this = _super.call(this);\n _this.state = {\n selectedPrograms: {}\n };\n _this.emailPrograms = _this.emailPrograms.bind(_assertThisInitialized(_this));\n _this.selectProgram = _this.selectProgram.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PostPurchaseProgramRecommendations, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n dispatch = _this$props.dispatch,\n eligiblePrograms = _this$props.eligiblePrograms,\n siteId = _this$props.siteId;\n\n if (eligiblePrograms && eligiblePrograms.programs && eligiblePrograms.programs.length > 0) {\n dispatch((0, _actions.fetchPrismicRecommendations)(siteId));\n dispatch((0, _actions.fetchPrismicPrograms)(siteId, eligiblePrograms.programs));\n }\n }\n }, {\n key: \"selectProgram\",\n value: function selectProgram(programId) {\n var selectedPrograms = this.state.selectedPrograms;\n selectedPrograms[programId] = !selectedPrograms[programId];\n this.setState({\n selectedPrograms: selectedPrograms\n });\n }\n }, {\n key: \"emailPrograms\",\n value: function emailPrograms() {\n var selectedPrograms = this.state.selectedPrograms;\n var _this$props2 = this.props,\n recommendedPrograms = _this$props2.recommendedPrograms,\n dispatch = _this$props2.dispatch,\n eligiblePrograms = _this$props2.eligiblePrograms,\n email = _this$props2.email,\n reportAction = _this$props2.reportAction;\n var emailUrl = eligiblePrograms.emailUrl;\n var programs = Object.keys(selectedPrograms).filter(function (programId) {\n return selectedPrograms[programId];\n });\n\n if (programs.length === 0) {\n programs = recommendedPrograms.programs.map(function (_ref) {\n var uid = _ref.uid;\n return uid;\n });\n }\n\n reportAction(programs);\n return dispatch((0, _actions.sendEmail)(emailUrl, email, programs));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n _this$props3$recommen = _this$props3.recommendedPrograms,\n header = _this$props3$recommen.header,\n programs = _this$props3$recommen.programs,\n cta_text = _this$props3$recommen.cta_text,\n programs_intro = _this$props3$recommen.programs_intro,\n _this$props3$emailSta = _this$props3.emailState,\n inFlight = _this$props3$emailSta.inFlight,\n success = _this$props3$emailSta.success,\n error = _this$props3$emailSta.error;\n var selectedPrograms = this.state.selectedPrograms;\n\n if (!(programs && programs.length > 0)) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"recommended-programs\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"recommended-programs__header\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicText, {\n field: header\n })), /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n className: \"recommended-programs__info\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicText, {\n field: programs_intro\n })), /*#__PURE__*/_react[\"default\"].createElement(_Programs[\"default\"], {\n programs: programs,\n selectProgram: this.selectProgram,\n selectedPrograms: selectedPrograms\n }), /*#__PURE__*/_react[\"default\"].createElement(_SubmitButton[\"default\"], {\n error: error,\n inFlight: inFlight,\n emailPrograms: this.emailPrograms,\n ctaText: success ? 'Email sent!' : prismicH.asText(cta_text)\n }));\n }\n }], [{\n key: \"getStore\",\n value: function getStore() {\n var middleware = [_reduxThunk[\"default\"]];\n return (0, _redux.createStore)((0, _redux.combineReducers)({\n prismic: _prismic[\"default\"],\n email: _email[\"default\"]\n }), _redux.applyMiddleware.apply(void 0, middleware));\n }\n }]);\n\n return PostPurchaseProgramRecommendations;\n}(_react.Component);\n\nPostPurchaseProgramRecommendations.propTypes = {\n siteId: _propTypes[\"default\"].string.isRequired,\n email: _propTypes[\"default\"].string.isRequired,\n eligiblePrograms: _propTypes[\"default\"].shape({}),\n reportAction: _propTypes[\"default\"].func.isRequired,\n dispatch: _propTypes[\"default\"].func.isRequired,\n emailState: _propTypes[\"default\"].shape({}).isRequired,\n recommendedPrograms: _propTypes[\"default\"].shape({}).isRequired\n};\nPostPurchaseProgramRecommendations.defaultProps = {\n eligiblePrograms: {}\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(PostPurchaseProgramRecommendations);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.queryRecommendations = exports.queryPrograms = void 0;\n\nvar prismic = _interopRequireWildcard(require(\"@prismicio/client\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar queryRecommendations = function queryRecommendations(siteId) {\n return [prismic.Predicates.at('document.type', 'post_purchase_program_recommendations'), prismic.Predicates.at('document.tags', [siteId])];\n};\n\nexports.queryRecommendations = queryRecommendations;\n\nvar queryPrograms = function queryPrograms(siteId, programs) {\n return [prismic.Predicates.at('document.type', 'program'), prismic.Predicates[\"in\"]('my.program.uid', programs), prismic.Predicates.at('document.tags', [siteId])];\n};\n\nexports.queryPrograms = queryPrograms;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = prismicReducer;\n\nvar types = _interopRequireWildcard(require(\"../actions/types\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction prismicReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inFlight: false,\n error: false,\n success: false\n };\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case types.SEND_EMAIL:\n return _objectSpread(_objectSpread({}, state), {}, {\n inFlight: true,\n success: false\n });\n\n case types.RECEIVE_EMAIL_RESULTS:\n return _objectSpread(_objectSpread({}, state), {}, {\n inFlight: false,\n success: true\n });\n\n case types.RECEIVE_EMAIL_ERROR:\n return _objectSpread(_objectSpread({}, state), {}, {\n inFlight: false,\n error: true\n });\n\n default:\n return state;\n }\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = prismicReducer;\n\nvar types = _interopRequireWildcard(require(\"../actions/types\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction prismicReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n recommendations: [],\n programs: []\n };\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case types.RECEIVE_RECOMMENDATIONS_RESULTS:\n return _objectSpread(_objectSpread({}, state), {}, {\n recommendations: action.results\n });\n\n case types.RECEIVE_PROGRAMS_RESULTS:\n return _objectSpread(_objectSpread({}, state), {}, {\n programs: action.results\n });\n\n default:\n return state;\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRecommendations = exports.getPrograms = exports.combinePrismicData = void 0;\n\nvar _reselect = require(\"reselect\");\n\n/* eslint-disable camelcase */\nvar getRecommendations = function getRecommendations(_ref) {\n var recommendations = _ref.prismic.recommendations;\n return recommendations[0] || {};\n};\n\nexports.getRecommendations = getRecommendations;\n\nvar getPrograms = function getPrograms(_ref2) {\n var programs = _ref2.prismic.programs;\n return programs || [];\n};\n\nexports.getPrograms = getPrograms;\nvar combinePrismicData = (0, _reselect.createSelector)([getRecommendations, getPrograms], function (recommendations, programs) {\n var recommendationsCopy = {};\n\n if (recommendations.data && programs.length > 0) {\n recommendationsCopy = recommendations.data;\n recommendationsCopy.programs = recommendationsCopy.programs.reduce(function (acc, _ref3) {\n var _ref3$program = _ref3.program,\n isBroken = _ref3$program.isBroken,\n id = _ref3$program.id;\n var index = programs.findIndex(function (program) {\n return id === program.id;\n });\n\n if (!isBroken && index >= 0) {\n acc.push(programs[index]);\n }\n\n return acc;\n }, []);\n }\n\n return recommendationsCopy;\n});\nexports.combinePrismicData = combinePrismicData;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar defaultConfig = {\n restEndpoint: 'https://uplight-marketplace-store.cdn.prismic.io/api/v2',\n accessToken: ''\n};\nvar _default = defaultConfig;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _react2 = require(\"@prismicio/react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _serializeHtml = _interopRequireDefault(require(\"./serializeHtml\"));\n\nvar _Hyperlink = _interopRequireDefault(require(\"./components/Hyperlink\"));\n\nvar _ListItem = _interopRequireDefault(require(\"./components/ListItem\"));\n\nvar _OListItem = _interopRequireDefault(require(\"./components/OListItem\"));\n\nvar _Span = _interopRequireDefault(require(\"./components/Span\"));\n\nvar _EmbeddedVideo = _interopRequireDefault(require(\"./components/EmbeddedVideo\"));\n\nvar _Image = _interopRequireDefault(require(\"./components/Image\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrismicHtmlSerializer = /*#__PURE__*/function (_Component) {\n _inherits(PrismicHtmlSerializer, _Component);\n\n var _super = _createSuper(PrismicHtmlSerializer);\n\n function PrismicHtmlSerializer(props) {\n var _this;\n\n _classCallCheck(this, PrismicHtmlSerializer);\n\n _this = _super.call(this, props);\n var baseClass = props.baseClass,\n options = props.options;\n _this.baseClass = baseClass;\n _this.serializeHtml = _serializeHtml[\"default\"].bind(_assertThisInitialized(_this));\n _this.components = {\n 'list-item': _ListItem[\"default\"][options.listItem || 'default'],\n 'o-list-item': _OListItem[\"default\"][options.oListItem || 'default'],\n span: _Span[\"default\"][options.span || 'default'],\n hyperlink: _Hyperlink[\"default\"][options.hyperlink || 'default'],\n embed: _EmbeddedVideo[\"default\"][options.embed || 'default'],\n image: _Image[\"default\"][options.image || 'default']\n };\n return _this;\n }\n\n _createClass(PrismicHtmlSerializer, [{\n key: \"render\",\n value: function render() {\n var content = this.props.content;\n return /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicRichText, {\n field: content,\n components: this.serializeHtml\n });\n }\n }]);\n\n return PrismicHtmlSerializer;\n}(_react.Component);\n\nPrismicHtmlSerializer.propTypes = {\n content: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n options: _propTypes[\"default\"].shape({}),\n baseClass: _propTypes[\"default\"].string\n};\nPrismicHtmlSerializer.defaultProps = {\n options: {},\n baseClass: ''\n};\nvar _default = PrismicHtmlSerializer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _EmbeddedVideo = _interopRequireDefault(require(\"../../../shared/components/EmbeddedVideo/EmbeddedVideo\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar EmbeddedVideoSection = function EmbeddedVideoSectionComponent(_ref) {\n var _ref$element$oembed = _ref.element.oembed,\n provider_name = _ref$element$oembed.provider_name,\n embed_url = _ref$element$oembed.embed_url,\n title = _ref$element$oembed.title;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__embedded-video\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_EmbeddedVideo[\"default\"], {\n providerName: provider_name,\n url: embed_url,\n title: title\n }));\n};\n\nEmbeddedVideoSection.propTypes = {\n element: _propTypes[\"default\"].shape({\n oembed: _propTypes[\"default\"].shape({\n embed_url: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = EmbeddedVideoSection;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _EmbeddedVideo = _interopRequireDefault(require(\"../../../shared/components/EmbeddedVideo/EmbeddedVideo\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar EmbeddedVideoInline = function EmbeddedVideoInlineComponent(_ref) {\n var _ref$element$oembed = _ref.element.oembed,\n provider_name = _ref$element$oembed.provider_name,\n embed_url = _ref$element$oembed.embed_url;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__embedded-video--inline\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_EmbeddedVideo[\"default\"], {\n providerName: provider_name,\n url: embed_url\n }));\n};\n\nEmbeddedVideoInline.propTypes = {\n element: _propTypes[\"default\"].shape({\n oembed: _propTypes[\"default\"].shape({\n embed_url: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = EmbeddedVideoInline;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _EmbeddedVideo = _interopRequireDefault(require(\"./EmbeddedVideo\"));\n\nvar _EmbeddedVideoInline = _interopRequireDefault(require(\"./EmbeddedVideoInline\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n \"default\": _EmbeddedVideo[\"default\"],\n inline: _EmbeddedVideoInline[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Hyperlink = function DefaultHyperlink(_ref) {\n var element = _ref.element,\n children = _ref.children,\n currentClass = _ref.currentClass;\n return /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n href: element.data.url,\n className: currentClass,\n external: element.data.target === '_blank'\n }, children);\n};\n\nHyperlink.propTypes = {\n element: _propTypes[\"default\"].shape({}).isRequired,\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = Hyperlink;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconExternalLink = _interopRequireDefault(require(\"../../../shared/icons/icon-external-link.svg\"));\n\nvar _Link = _interopRequireDefault(require(\"../../../shared/components/Link/Link\"));\n\nvar _linkHelper2 = _interopRequireDefault(require(\"../../../shared/helpers/linkHelper\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar WithExternalLinkIcon = function HyperLinkWithExternalLinkIcon(_ref) {\n var element = _ref.element,\n children = _ref.children,\n baseClass = _ref.baseClass,\n currentClass = _ref.currentClass;\n\n var _linkHelper = (0, _linkHelper2[\"default\"])(element.data.url, element.data.target === '_blank'),\n cleanHref = _linkHelper.cleanHref,\n openNewTab = _linkHelper.openNewTab;\n\n return /*#__PURE__*/_react[\"default\"].createElement(_Link[\"default\"], {\n href: cleanHref,\n className: currentClass,\n external: openNewTab\n }, children, \"\\xA0\", openNewTab && /*#__PURE__*/_react[\"default\"].createElement(_iconExternalLink[\"default\"], {\n className: \"\".concat(baseClass, \"__link-icon\")\n }));\n};\n\nWithExternalLinkIcon.propTypes = {\n element: _propTypes[\"default\"].shape({}).isRequired,\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired,\n baseClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = WithExternalLinkIcon;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Hyperlink = _interopRequireDefault(require(\"./Hyperlink\"));\n\nvar _WithExternalLinkIcon = _interopRequireDefault(require(\"./WithExternalLinkIcon\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n \"default\": _Hyperlink[\"default\"],\n WithExternalLinkIcon: _WithExternalLinkIcon[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react2 = require(\"@prismicio/react\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Image = function Image(_ref) {\n var element = _ref.element,\n currentClass = _ref.currentClass;\n\n if (element) {\n return /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicImage, {\n field: element,\n className: currentClass\n });\n }\n\n return null;\n};\n\nImage.propTypes = {\n element: _propTypes[\"default\"].shape({}).isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = Image;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Image = _interopRequireDefault(require(\"./Image\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n \"default\": _Image[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ListItem = function DefaultListItem(_ref) {\n var currentClass = _ref.currentClass,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: currentClass\n }, /*#__PURE__*/_react[\"default\"].createElement(\"p\", null, children));\n};\n\nListItem.propTypes = {\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = ListItem;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconCheckmark = _interopRequireDefault(require(\"../../../shared/icons/icon-checkmark.svg\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar WithCheckmark = function ListItemWithCheckmark(_ref) {\n var currentClass = _ref.currentClass,\n children = _ref.children,\n baseClass = _ref.baseClass;\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: \"\".concat(currentClass, \" \").concat(currentClass, \"--checkmark\")\n }, /*#__PURE__*/_react[\"default\"].createElement(_iconCheckmark[\"default\"], {\n className: \"\".concat(baseClass, \"-list__icon\")\n }), /*#__PURE__*/_react[\"default\"].createElement(\"p\", null, children));\n};\n\nWithCheckmark.propTypes = {\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n baseClass: _propTypes[\"default\"].string.isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = WithCheckmark;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ListItem = _interopRequireDefault(require(\"./ListItem\"));\n\nvar _WithCheckmark = _interopRequireDefault(require(\"./WithCheckmark\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n \"default\": _ListItem[\"default\"],\n WithCheckmark: _WithCheckmark[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable no-invalid-this */\nvar OListItem = function DefaultOListItem(_ref) {\n var currentClass = _ref.currentClass,\n baseClass = _ref.baseClass,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: currentClass\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"\".concat(baseClass, \"-list__item-counter\")\n }, /*#__PURE__*/_react[\"default\"].createElement(\"p\", null, children)));\n};\n\nOListItem.propTypes = {\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n baseClass: _propTypes[\"default\"].string.isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = OListItem;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar WithNumbers = function OListItemWithNumbers(_ref) {\n var currentClass = _ref.currentClass,\n baseClass = _ref.baseClass,\n children = _ref.children,\n index = _ref.index;\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: currentClass\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"\".concat(baseClass, \"-list__item-counter\"),\n key: index\n }, \"\".concat(index + 1, \". \")), /*#__PURE__*/_react[\"default\"].createElement(\"p\", null, children));\n};\n\nWithNumbers.propTypes = {\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n baseClass: _propTypes[\"default\"].string.isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired,\n index: _propTypes[\"default\"].number.isRequired\n};\nvar _default = WithNumbers;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _OListItem = _interopRequireDefault(require(\"./OListItem\"));\n\nvar _WithNumbers = _interopRequireDefault(require(\"./WithNumbers\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n \"default\": _OListItem[\"default\"],\n WithNumbers: _WithNumbers[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Span = function defaultSpan(_ref) {\n var content = _ref.content,\n currentClass = _ref.currentClass;\n\n if (content) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: currentClass\n }, content.split('\\n').reduce(function (acc, currentP) {\n if (acc.length === 0) {\n return [currentP];\n }\n\n var brIndex = (acc.length + 1) / 2 - 1;\n\n var br = /*#__PURE__*/_react[\"default\"].createElement(\"br\", {\n key: brIndex\n });\n\n return acc.concat([br, currentP]);\n }, []));\n }\n\n return null;\n};\n\nSpan.propTypes = {\n content: _propTypes[\"default\"].string.isRequired,\n currentClass: _propTypes[\"default\"].string.isRequired\n};\nvar _default = Span;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Span = _interopRequireDefault(require(\"./Span\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n \"default\": _Span[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar prismicElements = {\n heading1: {\n typeMod: 'heading1',\n Tag: 'h1',\n classMod: '__heading-1'\n },\n heading2: {\n typeMod: 'heading2',\n Tag: 'h2',\n classMod: '__heading-2'\n },\n heading3: {\n typeMod: 'heading3',\n Tag: 'h3',\n classMod: '__heading-3'\n },\n heading4: {\n typeMod: 'heading4',\n Tag: 'h4',\n classMod: '__heading-4'\n },\n heading5: {\n typeMod: 'heading5',\n Tag: 'h5',\n classMod: '__heading-5'\n },\n heading6: {\n typeMod: 'heading6',\n Tag: 'h6',\n classMod: '__heading-6'\n },\n hyperlink: {\n typeMod: 'hyperlink',\n Tag: 'a',\n classMod: '__link'\n },\n 'group-list-item': {\n typeMod: 'group-list-item',\n Tag: 'ul',\n classMod: '-list--unordered'\n },\n 'group-o-list-item': {\n typeMod: 'group-o-list-item',\n Tag: 'ol',\n classMod: '-list--ordered'\n },\n 'list-item': {\n typeMod: 'list-item',\n Tag: 'li',\n classMod: '-list__item'\n },\n 'o-list-item': {\n typeMod: 'o-list-item',\n Tag: 'li',\n classMod: '-list__item'\n },\n paragraph: {\n typeMod: 'paragraph',\n Tag: 'p',\n classMod: '__copy'\n },\n span: {\n typeMod: 'span',\n Tag: 'span',\n classMod: '--span'\n },\n strong: {\n typeMod: 'strong',\n Tag: 'span',\n classMod: '--strong'\n },\n em: {\n typeMod: 'em',\n Tag: 'span',\n classMod: '--em'\n },\n embed: {\n typeMod: 'embed',\n Tag: 'div',\n classMod: '--embed'\n },\n image: {\n typeMod: 'image',\n Tag: 'img',\n classMod: '__image'\n }\n};\nvar _default = prismicElements;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _v = _interopRequireDefault(require(\"uuid/v4\"));\n\nvar _prismicElements = _interopRequireDefault(require(\"./prismicElements\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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\n/* eslint complexity:0, react/no-this-in-sfc:0, no-invalid-this:0 */\nvar SerializeHtml = function serializeHtmlComponent(type, element, content, children, key) {\n var currentElement = _prismicElements[\"default\"][type];\n var typeMod = currentElement.typeMod,\n Tag = currentElement.Tag,\n classMod = currentElement.classMod;\n var Component = this.components[typeMod];\n var renderProps = {\n index: key,\n element: element,\n content: content,\n children: children,\n baseClass: this.baseClass,\n currentClass: \"\".concat(this.baseClass).concat(classMod)\n };\n\n if (Component) {\n return /*#__PURE__*/_react[\"default\"].createElement(Component, _extends({}, renderProps, {\n key: (0, _v[\"default\"])()\n }));\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(Tag, {\n className: renderProps.currentClass,\n key: (0, _v[\"default\"])()\n }, children);\n};\n\nvar _default = SerializeHtml;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Page = _interopRequireDefault(require(\"./pages/Page\"));\n\nvar _ProgramPage = _interopRequireDefault(require(\"./programs/ProgramPage\"));\n\nvar _PostPurchaseProgramRecommendations = _interopRequireDefault(require(\"./PostPurchaseProgramRecommendations/containers/PostPurchaseProgramRecommendations\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n Page: _Page[\"default\"],\n ProgramPage: _ProgramPage[\"default\"],\n PostPurchaseProgramRecommendations: _PostPurchaseProgramRecommendations[\"default\"]\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _prismicClient = _interopRequireDefault(require(\"../prismicClient\"));\n\nvar _BasicPageTemplate = _interopRequireDefault(require(\"./templates/BasicPageTemplate\"));\n\nvar _CenhubTradeAllyTemplate = _interopRequireDefault(require(\"./templates/CenhubTradeAllyTemplate\"));\n\nvar _query = _interopRequireDefault(require(\"./helpers/query\"));\n\nvar _normalizer = _interopRequireDefault(require(\"./helpers/normalizer\"));\n\nvar _prismic = require(\"../shared/helpers/prismic\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar templateMap = {\n Basic: _BasicPageTemplate[\"default\"],\n CenhubTradeAlly: _CenhubTradeAllyTemplate[\"default\"]\n};\n\nvar Page = /*#__PURE__*/function (_Component) {\n _inherits(Page, _Component);\n\n var _super = _createSuper(Page);\n\n function Page(props) {\n var _this;\n\n _classCallCheck(this, Page);\n\n _this = _super.call(this, props);\n var siteId = props.siteId,\n instanceId = props.instanceId,\n errorHandler = props.errorHandler;\n _this.state = {\n pageData: null\n };\n _this.setComponentState = _this.setComponentState.bind(_assertThisInitialized(_this));\n _this.dataClient = new _prismicClient[\"default\"](_this.setComponentState);\n\n _this.dataClient.fetchData((0, _query[\"default\"])(siteId, instanceId), _normalizer[\"default\"], errorHandler);\n\n return _this;\n }\n\n _createClass(Page, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var callbackFunc = this.props.callbackFunc;\n callbackFunc.call(this);\n }\n }, {\n key: \"setComponentState\",\n value: function setComponentState(state) {\n var errorHandler = this.props.errorHandler;\n\n if (state && (!state.pageTemplate || !templateMap[state.pageTemplate])) {\n return errorHandler('Content is defined, but no template is available.', true);\n }\n\n var sliceGroupError = (0, _prismic.getSliceGroupsError)(state.sections);\n\n if (sliceGroupError) {\n return errorHandler(sliceGroupError, true);\n }\n\n this.setState({\n pageData: state\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var pageData = this.state.pageData;\n\n if (!pageData) {\n return null;\n }\n\n var Template = templateMap[pageData.pageTemplate];\n return /*#__PURE__*/_react[\"default\"].createElement(Template, {\n pageData: pageData,\n dataClient: this.dataClient\n });\n }\n }]);\n\n return Page;\n}(_react.Component);\n\nPage.propTypes = {\n siteId: _propTypes[\"default\"].string.isRequired,\n instanceId: _propTypes[\"default\"].string.isRequired,\n errorHandler: _propTypes[\"default\"].func.isRequired,\n callbackFunc: _propTypes[\"default\"].func\n};\nPage.defaultProps = {\n callbackFunc: function callbackFunc() {}\n};\nvar _default = Page;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ExpandableCard = _interopRequireDefault(require(\"../Cards/ExpandableCard/ExpandableCard\"));\n\nvar _ArticleCard = _interopRequireDefault(require(\"../Cards/ArticleCard/ArticleCard\"));\n\nvar _BasicCard = _interopRequireDefault(require(\"../Cards/BasicCard/BasicCard\"));\n\nvar _ProgramCard = _interopRequireDefault(require(\"../Cards/ProgramCard/ProgramCard\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar CardList = function CardListComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var items = sliceData.items,\n cards_alignment = sliceData.primary.cards_alignment;\n var cardTypeMap = {\n Expandable: _ExpandableCard[\"default\"],\n Article: _ArticleCard[\"default\"],\n Basic: _BasicCard[\"default\"],\n Program: _ProgramCard[\"default\"]\n };\n var listClasses = (0, _classnames[\"default\"])({\n 'content-page__cards': true,\n 'content-page__cards--center': cards_alignment === 'Center',\n 'content-page__cards--left': cards_alignment === 'Left',\n 'content-page__cards--right': cards_alignment === 'Right',\n 'content-page__cards--spread': cards_alignment === 'Spread'\n });\n return items.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__cards-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: listClasses\n }, items.map(function (cardItem, idx) {\n var Card = cardTypeMap[cardItem.card_type];\n var key = \"\".concat(cardItem.card_type, \"_\").concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(Card, {\n cardItem: cardItem,\n dataClient: dataClient,\n key: key\n });\n }))));\n};\n/* eslint-disable camelcase */\n\n\nCardList.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n card_type: _propTypes[\"default\"].string.isRequired\n })).isRequired\n }).isRequired\n};\nvar _default = CardList;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ArticleCard = function ArticleCardComponent(_ref) {\n var _ref$cardItem = _ref.cardItem,\n cardTitle = _ref$cardItem.card_title,\n cardTitleAlignment = _ref$cardItem.card_title_alignment,\n cardImage = _ref$cardItem.card_image,\n cardBody = _ref$cardItem.card_body,\n dataClient = _ref.dataClient;\n var titleClasses = (0, _classnames[\"default\"])({\n 'content-page__article-card-title': true,\n 'content-page__article-card-title--center': cardTitleAlignment === 'Center',\n 'content-page__article-card-title--right': cardTitleAlignment === 'Right'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__article-card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__article-card-image\",\n src: cardImage.url,\n alt: \"\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: titleClasses\n }, dataClient.textToMarkdown(cardTitle)), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__article-card-text\",\n content: cardBody\n }));\n};\n\nArticleCard.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n cardItem: _propTypes[\"default\"].shape({\n card_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n card_image: _propTypes[\"default\"].shape({}).isRequired,\n card_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n card_title_alignment: _propTypes[\"default\"].string\n }).isRequired\n};\nvar _default = ArticleCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar BasicCard = function BasicCardComponent(_ref) {\n var _ref$cardItem = _ref.cardItem,\n cardTitle = _ref$cardItem.card_title,\n cardBody = _ref$cardItem.card_body,\n dataClient = _ref.dataClient;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__basic-card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"content-page__basic-card-title\"\n }, dataClient.textToMarkdown(cardTitle)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__basic-card-text\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__basic-card-text\",\n content: cardBody\n })));\n};\n\nBasicCard.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n cardItem: _propTypes[\"default\"].shape({\n card_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n card_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired\n};\nvar _default = BasicCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _isEnterOrSpace = _interopRequireDefault(require(\"../../../../shared/helpers/isEnterOrSpace\"));\n\nvar _iconClose = _interopRequireDefault(require(\"../../../../shared/icons/icon-close.svg\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ExpandableCard = /*#__PURE__*/function (_Component) {\n _inherits(ExpandableCard, _Component);\n\n var _super = _createSuper(ExpandableCard);\n\n function ExpandableCard(props) {\n var _this;\n\n _classCallCheck(this, ExpandableCard);\n\n _this = _super.call(this, props);\n _this.state = {\n showInfo: false\n };\n _this.toggleShowInfo = _this.toggleShowInfo.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ExpandableCard, [{\n key: \"toggleShowInfo\",\n value: function toggleShowInfo() {\n var newState = this.state;\n var showInfo = !newState.showInfo;\n this.setState({\n showInfo: showInfo\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n _this$props$cardItem = _this$props.cardItem,\n cardTitle = _this$props$cardItem.card_title,\n cardImage = _this$props$cardItem.card_image,\n cardBody = _this$props$cardItem.card_body,\n dataClient = _this$props.dataClient;\n var showInfo = this.state.showInfo;\n var infoClass = (0, _classnames[\"default\"])({\n 'content-page__expandable-card-info-hide': !showInfo,\n 'content-page__expandable-card-info-show': showInfo\n });\n var closeClass = (0, _classnames[\"default\"])({\n 'content-page__expandable-card-close-hide': !showInfo,\n 'content-page__expandable-card-close-show': showInfo\n });\n var mainClass = (0, _classnames[\"default\"])({\n 'content-page__expandable-card-main-show': !showInfo,\n 'content-page__expandable-card-main-blur': showInfo\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"button\", {\n title: \"Close\",\n className: closeClass,\n type: \"button\",\n onClick: this.toggleShowInfo,\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && _this2.toggleShowInfo;\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(_iconClose[\"default\"], {\n className: \"content-page__expandable-card-close-icon\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: mainClass\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"content-page__expandable-card-title\"\n }, dataClient.textToMarkdown(cardTitle)), /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__expandable-card-image\",\n src: cardImage.url,\n alt: \"\".concat(dataClient.renderText(cardTitle))\n }), /*#__PURE__*/_react[\"default\"].createElement(\"button\", {\n className: \"content-page__expandable-card-button\",\n type: \"button\",\n onClick: this.toggleShowInfo,\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && _this2.toggleShowInfo;\n }\n }, \"Learn More\")), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: infoClass\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"content-page__expandable-card-text\"\n }, dataClient.renderFullMarkup(cardBody))));\n }\n }]);\n\n return ExpandableCard;\n}(_react.Component);\n/* eslint-disable camelcase */\n\n\nExpandableCard.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n cardItem: _propTypes[\"default\"].shape({\n card_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n card_image: _propTypes[\"default\"].shape({}).isRequired,\n card_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired\n};\nvar _default = ExpandableCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ProgramCard = function ProgramCardComponent(_ref) {\n var _ref$cardItem = _ref.cardItem,\n cardTitle = _ref$cardItem.card_title,\n cardImage = _ref$cardItem.card_image,\n cardBody = _ref$cardItem.card_body,\n dataClient = _ref.dataClient;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__program-card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__program-card-image\",\n src: cardImage.url,\n alt: \"\".concat(dataClient.renderText(cardTitle))\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__program-card-description-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"content-page__program-card-title\"\n }, dataClient.textToMarkdown(cardTitle)), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__program-card-body\",\n content: cardBody\n })));\n};\n\nProgramCard.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n cardItem: _propTypes[\"default\"].shape({\n card_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n card_image: _propTypes[\"default\"].shape({}).isRequired,\n card_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n card_title_alignment: _propTypes[\"default\"].string\n }).isRequired\n};\nvar _default = ProgramCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _react2 = require(\"@prismicio/react\");\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _iconCaret = _interopRequireDefault(require(\"../../../shared/icons/icon-caret.svg\"));\n\nvar _iconDollar = _interopRequireDefault(require(\"../../../shared/icons/icon-dollar.svg\"));\n\nvar _iconArrowBullet = _interopRequireDefault(require(\"../../../shared/icons/icon-arrow-bullet.svg\"));\n\nvar _isEnterOrSpace = _interopRequireDefault(require(\"../../../shared/helpers/isEnterOrSpace\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar iconMap = {\n Money: _iconDollar[\"default\"]\n};\n\nvar DetailsExpandableCard = function DetailsExpandableCard(_ref) {\n var _ref$sliceData = _ref.sliceData,\n items = _ref$sliceData.items,\n _ref$sliceData$primar = _ref$sliceData.primary,\n body = _ref$sliceData$primar.details_card_body,\n image = _ref$sliceData$primar.details_card_image,\n incentive = _ref$sliceData$primar.details_card_incentive_copy,\n icon = _ref$sliceData$primar.details_card_incentive_icon,\n title = _ref$sliceData$primar.details_card_title;\n var Icon = icon && iconMap[icon] || null;\n\n var _useState = (0, _react.useState)(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n var expandIconClass = (0, _classnames[\"default\"])({\n 'content-page__expandable-details-caret': true,\n 'content-page__expandable-details-caret--open': open\n });\n var detailsContainerClassNames = (0, _classnames[\"default\"])('content-page__expandable-details-items', {\n 'content-page__expandable-details-items--hidden': !open\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-image\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicImage, {\n field: image,\n widths: [640]\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-description\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: title\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-body-wrapper\"\n }, Icon && /*#__PURE__*/_react[\"default\"].createElement(Icon, {\n className: \"content-page__expandable-details-incentive-icon\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-body\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__expandable-details\",\n content: incentive\n }), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: body\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-trigger content-page__expandable-details-trigger--mobile\",\n \"aria-expanded\": open,\n onClick: function onClick() {\n return setOpen(!open);\n },\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && setOpen(!open);\n },\n role: \"button\",\n tabIndex: 0\n }, \"View details\", /*#__PURE__*/_react[\"default\"].createElement(_iconCaret[\"default\"], {\n className: expandIconClass\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: detailsContainerClassNames,\n \"aria-live\": \"polite\",\n \"aria-hidden\": !open\n }, items.map(function (_ref2, idx) {\n var heading = _ref2.details_card_detail_heading,\n content = _ref2.details_card_detail_content;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-item\",\n key: \"expanded-details-\".concat(idx)\n }, heading.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(_iconArrowBullet[\"default\"], {\n className: \"content-page__expandable-details-item-icon\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, heading.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-item-heading\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: heading\n })), content.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: content\n })));\n }))))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-details-trigger content-page__expandable-details-trigger--desktop\",\n \"aria-expanded\": open,\n onClick: function onClick() {\n return setOpen(!open);\n },\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && setOpen(!open);\n },\n role: \"button\",\n tabIndex: 0\n }, \"View details\", /*#__PURE__*/_react[\"default\"].createElement(_iconCaret[\"default\"], {\n className: expandIconClass\n }))));\n};\n\nDetailsExpandableCard.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n details_card_detail_heading: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n details_card_detail_content: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n })).isRequired,\n primary: _propTypes[\"default\"].shape({\n details_card_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n details_card_image: _propTypes[\"default\"].shape({}),\n details_card_incentive_copy: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n details_card_incentive_icon: _propTypes[\"default\"].string,\n details_card_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n }).isRequired\n }).isRequired\n};\nvar _default = DetailsExpandableCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Divider = function DividerComponent() {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"hr\", {\n className: \"content-page__divider\"\n }));\n};\n\nvar _default = Divider;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _v = _interopRequireDefault(require(\"uuid/v4\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _electricPlug = _interopRequireDefault(require(\"../../../shared/icons/electric-plug.svg\"));\n\nvar _snowflake = _interopRequireDefault(require(\"../../../shared/icons/snowflake.svg\"));\n\nvar _sun = _interopRequireDefault(require(\"../../../shared/icons/sun.svg\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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\nvar seasons = {\n Summer: {\n dates: /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"(\", /*#__PURE__*/_react[\"default\"].createElement(\"abbr\", {\n title: \"June\"\n }, \"Jun\"), \"\\xA01 to\\xA0\", /*#__PURE__*/_react[\"default\"].createElement(\"abbr\", {\n title: \"September\"\n }, \"Sep\"), \"\\xA030)\"),\n icon: _sun[\"default\"],\n key: 'summer',\n figureInitialCost: false\n },\n Winter: {\n dates: /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, \"(\", /*#__PURE__*/_react[\"default\"].createElement(\"abbr\", {\n title: \"November\"\n }, \"Nov\"), \"\\xA01 to\\xA0\", /*#__PURE__*/_react[\"default\"].createElement(\"abbr\", {\n title: \"March\"\n }, \"Mar\"), \"\\xA031)\"),\n icon: _snowflake[\"default\"],\n key: 'winter',\n figureInitialCost: true\n }\n};\nvar dayHour = 24;\nvar meridiemHour = 12;\nvar percent = 100;\nvar iconMinimumY = 7;\nvar scaleY = 0.25;\n\nvar EnergyCostGraph = function EnergyCostGraph(_ref) {\n var _ref$sliceData$primar = _ref.sliceData.primary,\n economyCost = _ref$sliceData$primar.economy_cost,\n figure = _ref$sliceData$primar.figure,\n peakCost = _ref$sliceData$primar.peak_cost,\n peakHoursStart = _ref$sliceData$primar.peak_hours_start,\n peakHoursStop = _ref$sliceData$primar.peak_hours_stop,\n season = _ref$sliceData$primar.season,\n showFigureText = _ref$sliceData$primar.show_figure_text,\n yMax = _ref$sliceData$primar.y_max;\n\n var toMeridiemString = function toMeridiemString(hour) {\n return \"\".concat(hour % meridiemHour || meridiemHour, \" \").concat(hour >= meridiemHour ? 'pm' : 'am');\n };\n\n var toPercentString = function toPercentString(value) {\n return \"\".concat(value * percent, \"%\");\n };\n\n var toClassNames = function toClassNames() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.map(function (elMod) {\n return \"energy-cost-graph--\".concat(elMod);\n }).join(' ');\n };\n\n var conditionalUuid = function conditionalUuid(condition) {\n return condition ? (0, _v[\"default\"])() : null;\n };\n\n var economyCostFriendly = \"\".concat(economyCost, \"\\xA2\");\n var peakCostFriendly = \"\".concat(peakCost, \"\\xA2\");\n var peakHourStartFriendly = toMeridiemString(peakHoursStart);\n var peakHourStopFriendly = toMeridiemString(peakHoursStop);\n var economyCostY = economyCost * scaleY;\n var peakCostY = peakCost * scaleY;\n var rangeY = Math.max(economyCost, peakCost, yMax) * scaleY;\n var PeakIcon = seasons[season].icon;\n var showEconomyIcon = economyCost >= iconMinimumY;\n var showPeakIcon = peakCost >= iconMinimumY;\n var figureElId = conditionalUuid(showFigureText);\n var columnWidths = [peakHoursStart / dayHour, (peakHoursStop - peakHoursStart) / dayHour, (dayHour - peakHoursStop) / dayHour];\n var columns = [{\n key: 'graph-label-range',\n className: toClassNames('col', 'col__range'),\n style: {\n height: \"\".concat(rangeY, \"rem\")\n }\n }, {\n key: 'graph-label-economy-start',\n className: toClassNames('col', 'col__economy', 'col__first'),\n role: 'img',\n 'aria-label': \"\".concat(season, \" economy hours, ranging from 12 am to \").concat(peakHourStartFriendly, \", costs \").concat(economyCost, \" cents per kilowatt hour.\"),\n style: {\n width: toPercentString(peakHoursStart / dayHour),\n height: \"\".concat(economyCostY, \"rem\")\n },\n children: /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: toClassNames('col-text')\n }, economyCostFriendly), showEconomyIcon && /*#__PURE__*/_react[\"default\"].createElement(_electricPlug[\"default\"], {\n className: toClassNames('col-icon')\n }))\n }, {\n key: 'graph-label-peak',\n className: toClassNames('col', 'col__peak', \"col__peak-\".concat(seasons[season].key)),\n role: 'img',\n 'aria-label': \"\".concat(season, \" economy hours, ranging from \").concat(peakHourStartFriendly, \" to \").concat(peakHourStopFriendly, \", costs \").concat(peakCost, \" cents per kilowatt hour.\"),\n style: {\n width: \"calc(\".concat(toPercentString((peakHoursStop - peakHoursStart) / dayHour), \" - .5rem)\"),\n height: \"\".concat(peakCostY, \"rem\")\n },\n children: /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: toClassNames('col-text')\n }, peakCostFriendly), showPeakIcon && /*#__PURE__*/_react[\"default\"].createElement(PeakIcon, {\n className: toClassNames('col-icon')\n }))\n }, {\n key: 'graph-label-economy-end',\n className: toClassNames('col', 'col__economy', 'col__last'),\n role: 'img',\n 'aria-label': \"\".concat(season, \" economy hours, ranging from \").concat(peakHourStopFriendly, \" to 12 am, costs \").concat(economyCost, \" cents per kilowatt hour.\"),\n style: {\n width: toPercentString((dayHour - peakHoursStop) / dayHour),\n height: \"\".concat(economyCostY, \"rem\")\n },\n children: /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: toClassNames('col-text')\n }, economyCostFriendly), showEconomyIcon && /*#__PURE__*/_react[\"default\"].createElement(_electricPlug[\"default\"], {\n className: toClassNames('col-icon')\n }))\n }];\n var intercolumns = [{\n key: 'graph-label-economy-start',\n className: toClassNames('intercol-label', 'intercol-label__first'),\n style: {\n width: toPercentString(columnWidths[0])\n },\n children: '12 am'\n }, {\n key: 'graph-label-peak-start',\n className: toClassNames('intercol-label'),\n style: {\n width: toPercentString(columnWidths[1] / 2)\n },\n children: /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, peakHourStartFriendly)\n }, {\n key: 'graph-label-peak-end',\n className: toClassNames('intercol-label', 'intercol-label__right'),\n style: {\n width: toPercentString(columnWidths[1] / 2)\n },\n children: /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, peakHourStopFriendly)\n }, {\n key: 'graph-label-economy-end',\n className: toClassNames('intercol-label', 'intercol-label__last'),\n style: {\n width: toPercentString(columnWidths[2])\n },\n children: '12 am'\n }];\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container energy-cost-graph-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__section-body-wrapper energy-cost-graph\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h3\", {\n className: toClassNames('months-header')\n }, \"\".concat(season, \" months\")), /*#__PURE__*/_react[\"default\"].createElement(\"h4\", {\n className: toClassNames('dates-header')\n }, seasons[season].dates), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: toClassNames('graph'),\n \"aria-labelledby\": figureElId\n }, columns.map(function (column) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", column);\n }), intercolumns.map(function (label) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n \"aria-hidden\": \"true\"\n }, label));\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: toClassNames('hours-details')\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(_electricPlug[\"default\"], {\n className: toClassNames('hours-icon')\n }), /*#__PURE__*/_react[\"default\"].createElement(\"strong\", null, \"\".concat(season, \" economy hours: \")), \"12 am - \", peakHourStartFriendly, \" & \", peakHourStopFriendly, \" - 12 am\"), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(PeakIcon, {\n className: toClassNames('hours-icon', \"hours-icon__\".concat(seasons[season].key))\n }), /*#__PURE__*/_react[\"default\"].createElement(\"strong\", null, \"\".concat(season, \" peak hours: \")), /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"energy-cost-graph__time\"\n }, peakHourStartFriendly), \" - \", /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"energy-cost-graph__time\"\n }, peakHourStopFriendly))), figureElId && /*#__PURE__*/_react[\"default\"].createElement(\"figure\", {\n id: figureElId,\n className: toClassNames('figure')\n }, figure > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"strong\", null, \"Figure \".concat(figure, \". \")), \"Energy costs\", seasons[season].figureInitialCost ? \" \".concat(peakCostFriendly, \" per kWh \") : ' the most ', \"during \", seasons[season].key, \" month peak hours (\", /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"energy-cost-graph__time\"\n }, peakHourStartFriendly), \" - \", /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"energy-cost-graph__time\"\n }, peakHourStopFriendly), \")\", !seasons[season].figureInitialCost && \" where the price for electricity is \".concat(peakCostFriendly, \" per kWh\"), \". To save money during weekdays, shift your energy use to economy pricing hours (\", /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"energy-cost-graph__time\"\n }, peakHourStopFriendly), \" - \", /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"energy-cost-graph__time\"\n }, peakHourStartFriendly), \") when energy costs only \", economyCostFriendly, \" per kWh.\")));\n};\n\nEnergyCostGraph.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n /* eslint-disable camelcase */\n economy_cost: _propTypes[\"default\"].number.isRequired,\n figure: _propTypes[\"default\"].number,\n peak_cost: _propTypes[\"default\"].number.isRequired,\n peak_hours_start: _propTypes[\"default\"].number.isRequired,\n peak_hours_stop: _propTypes[\"default\"].number.isRequired,\n season: _propTypes[\"default\"].oneOf(['Summer', 'Winter']).isRequired,\n show_figure_text: _propTypes[\"default\"].bool.isRequired,\n y_max: _propTypes[\"default\"].number\n /* eslint-enable camelcase */\n\n })\n }).isRequired\n};\nvar _default = EnergyCostGraph;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar HeroCard = function HeroCardComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n heroCardTitle = _sliceData$primary.hero_card_title,\n heroCardBody = _sliceData$primary.hero_card_body,\n heroCardImage = _sliceData$primary.hero_card_image;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__hero-card-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__hero-card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__hero-card-text\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__hero-card-title\"\n }, dataClient.textToMarkdown(heroCardTitle)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__hero-card-body\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n content: heroCardBody,\n baseClass: \"hero-card-body\"\n }))), /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n src: heroCardImage.url,\n alt: heroCardImage.name,\n className: \"content-page__hero-card-image\"\n }))));\n};\n/* eslint-disable camelcase */\n\n\nHeroCard.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n hero_card_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n hero_card_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n hero_card_image: _propTypes[\"default\"].shape({}).isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = HeroCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar PageHero = function PageHeroComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n pageHeroTitle = _sliceData$primary.page_hero_title,\n pageHeroIcon = _sliceData$primary.page_hero_icon,\n pageHeroSummary = _sliceData$primary.page_hero_summary;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"page-hero-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"page-hero__row\"\n }, pageHeroIcon.url && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"page-hero__icon-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"page-hero__icon\",\n src: pageHeroIcon.url,\n alt: \"\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"page-hero__info-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"page-hero__title\"\n }, dataClient.textToMarkdown(pageHeroTitle)), /*#__PURE__*/_react[\"default\"].createElement(\"hr\", {\n className: \"page-hero__hr\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n className: \"page-hero__summary\"\n }, dataClient.textToMarkdown(pageHeroSummary))))));\n};\n\nPageHero.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = PageHero;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar BasicPageTitle = function PageTitleComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n page_title = _sliceData$primary.page_title,\n title_alignment = _sliceData$primary.title_alignment;\n var pageTitleClassName = (0, _classnames[\"default\"])('content-page__title', {\n 'content-page__title--left-align': title_alignment === 'Left',\n 'content-page__title--center-align': title_alignment === 'Center',\n 'content-page__title--right-align': title_alignment === 'Right'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: pageTitleClassName\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"content-page__title-text\"\n }, dataClient.textToMarkdown(page_title))));\n};\n/* eslint-disable camelcase */\n\n\nBasicPageTitle.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n page_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = BasicPageTitle;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar TradeAllyPageTitle = function PageTitleComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n page_title = _sliceData$primary.page_title,\n title_alignment = _sliceData$primary.title_alignment;\n var pageTitleClassName = (0, _classnames[\"default\"])('content-page__title--trade-ally', {\n 'content-page__title--left-align': title_alignment === 'Left',\n 'content-page__title--center-align': title_alignment === 'Center',\n 'content-page__title--right-align': title_alignment === 'Right'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: pageTitleClassName\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__title--trade-ally\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"content-page__title-text--trade-ally\"\n }, dataClient.textToMarkdown(page_title))));\n};\n/* eslint-disable camelcase */\n\n\nTradeAllyPageTitle.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n page_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = TradeAllyPageTitle;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MediaQueryListener = _interopRequireDefault(require(\"../../../shared/helpers/MediaQueryListener\"));\n\nvar _ClickableImageTemplate = _interopRequireDefault(require(\"./templates/ClickableImageTemplate/ClickableImageTemplate\"));\n\nvar _CategoryTemplate = _interopRequireDefault(require(\"./templates/CategoryTemplate/CategoryTemplate\"));\n\nvar _BasicTemplate = _interopRequireDefault(require(\"./templates/BasicTemplate/BasicTemplate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar templateMap = {\n Basic: _BasicTemplate[\"default\"],\n Category: _CategoryTemplate[\"default\"],\n 'Clickable Image': _ClickableImageTemplate[\"default\"]\n};\n\nvar ResponsiveHero = /*#__PURE__*/function (_Component) {\n _inherits(ResponsiveHero, _Component);\n\n var _super = _createSuper(ResponsiveHero);\n\n function ResponsiveHero(props) {\n var _this;\n\n _classCallCheck(this, ResponsiveHero);\n\n _this = _super.call(this, props);\n var _props$sliceData$prim = props.sliceData.primary,\n template = _props$sliceData$prim.responsive_page_hero_template,\n desktopImage = _props$sliceData$prim.responsive_page_hero_desktop_image;\n _this.state = {\n image: desktopImage\n };\n _this.TemplateComponent = templateMap[template];\n _this.setImage = _this.setImage.bind(_assertThisInitialized(_this));\n _this.mq = new _MediaQueryListener[\"default\"](function () {\n return _this.setImage();\n });\n return _this;\n }\n\n _createClass(ResponsiveHero, [{\n key: \"setImage\",\n value: function setImage() {\n var _this$props$sliceData = this.props.sliceData.primary,\n desktopImage = _this$props$sliceData.responsive_page_hero_desktop_image,\n mobileImage = _this$props$sliceData.responsive_page_hero_mobile_image;\n var image = this.mq.atMinWidth('tablet') ? desktopImage : mobileImage;\n this.setState({\n image: image\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dataClient = _this$props.dataClient,\n _this$props$sliceData2 = _this$props.sliceData.primary,\n title = _this$props$sliceData2.responsive_page_hero_title,\n subtitle = _this$props$sliceData2.responsive_page_hero_summary,\n buttonText = _this$props$sliceData2.responsive_page_hero_button,\n linkTo = _this$props$sliceData2.responsive_page_hero_link;\n var image = this.state.image;\n return /*#__PURE__*/_react[\"default\"].createElement(this.TemplateComponent, {\n dataClient: dataClient,\n title: title,\n subtitle: subtitle,\n linkTo: linkTo,\n image: image,\n buttonText: buttonText\n });\n }\n }]);\n\n return ResponsiveHero;\n}(_react.Component);\n\nResponsiveHero.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = ResponsiveHero;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar BasicTemplate = function BasicTemplateComponent(_ref) {\n var dataClient = _ref.dataClient,\n title = _ref.title,\n subtitle = _ref.subtitle,\n image = _ref.image,\n linkTo = _ref.linkTo,\n buttonText = _ref.buttonText;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"responsive-hero__wrapper\",\n style: {\n backgroundImage: \"url('\".concat(image.url, \"')\")\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"responsive-hero__title\"\n }, dataClient.textToMarkdown(title)), /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n className: \"responsive-hero__subtitle\"\n }, dataClient.textToMarkdown(subtitle)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"responsive-hero__button-row\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n className: \"responsive-hero__button\",\n href: linkTo.url,\n external: linkTo.target === '_blank'\n }, dataClient.textToMarkdown(buttonText))));\n};\n\nBasicTemplate.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n subtitle: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n image: _propTypes[\"default\"].shape({}).isRequired,\n linkTo: _propTypes[\"default\"].shape({}).isRequired,\n buttonText: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n};\nvar _default = BasicTemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar CategoryTemplate = function CategoryTemplateComponent(_ref) {\n var dataClient = _ref.dataClient,\n title = _ref.title,\n subtitle = _ref.subtitle,\n image = _ref.image;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"responsive-hero-category__wrapper\",\n style: {\n backgroundImage: \"url('\".concat(image.url, \"')\")\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"responsive-hero-category__text\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"responsive-hero-category__title\"\n }, dataClient.textToMarkdown(title)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"responsive-hero-category__description\"\n }, dataClient.renderFullMarkup(subtitle)))));\n};\n\nCategoryTemplate.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n subtitle: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n image: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = CategoryTemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _linkHelper2 = _interopRequireDefault(require(\"../../../../../shared/helpers/linkHelper\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ClickableImageTemplate = function ClickableImageTemplateComponent(_ref) {\n var image = _ref.image,\n linkTo = _ref.linkTo;\n\n var _linkHelper = (0, _linkHelper2[\"default\"])(linkTo.url),\n cleanHref = _linkHelper.cleanHref;\n\n return /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n className: \"responsive-hero__clickable-banner\",\n href: linkTo.url,\n external: linkTo.target === '_blank'\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n src: image.url,\n alt: \"\",\n className: \"responsive-hero__image\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"responsive-hero__link-text\"\n }, \"Go to \".concat(cleanHref)));\n};\n\nClickableImageTemplate.propTypes = {\n image: _propTypes[\"default\"].shape({}).isRequired,\n linkTo: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = ClickableImageTemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ResponsiveImage = function ResponsiveImageComponent(_ref) {\n var _ref$sliceData$primar = _ref.sliceData.primary,\n desktop_image = _ref$sliceData$primar.desktop_image,\n mobile_image = _ref$sliceData$primar.mobile_image,\n image_alignment = _ref$sliceData$primar.image_alignment;\n var wrapperClasses = (0, _classnames[\"default\"])({\n 'content-page__responsive-image-wrapper': true,\n 'content-page__responsive-image-wrapper--left': image_alignment === 'Left',\n 'content-page__responsive-image-wrapper--center': image_alignment === 'Center',\n 'content-page__responsive-image-wrapper--right': image_alignment === 'Right'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: wrapperClasses\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__responsive-image--mobile\",\n src: mobile_image.url,\n alt: mobile_image.alt\n }), /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__responsive-image--desktop\",\n src: desktop_image.url,\n alt: desktop_image.alt\n })));\n};\n\nResponsiveImage.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n desktop_image: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string.isRequired,\n alt: _propTypes[\"default\"].string.isRequired\n }).isRequired,\n mobile_image: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string.isRequired,\n alt: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = ResponsiveImage;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar SectionBody = function BodyComponent(_ref) {\n var sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n section_body_text = _sliceData$primary.section_body_text,\n text_alignment = _sliceData$primary.text_alignment,\n list_item_style = _sliceData$primary.list_item_style;\n var bodyClasses = (0, _classnames[\"default\"])({\n 'content-page__section-body': true,\n 'content-page__section-body--align-left': text_alignment === 'Left',\n 'content-page__section-body--align-center': text_alignment === 'Center',\n 'content-page__section-body--align-right': text_alignment === 'Right'\n });\n var listStyleMap = {\n Bullet: 'default',\n Checkmark: 'WithCheckmark'\n };\n var listStyle = listStyleMap[list_item_style] || listStyleMap.Bullet;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__section-body-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: bodyClasses\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: section_body_text,\n options: {\n listItem: listStyle,\n hyperlink: 'WithExternalLinkIcon'\n }\n }))));\n};\n\nSectionBody.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n section_body_text: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n text_alignment: _propTypes[\"default\"].string.isRequired,\n list_item_style: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = SectionBody;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _react2 = require(\"@prismicio/react\");\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar SectionBorderTile = function SectionBorderTile(_ref) {\n var _ref$sliceData$primar = _ref.sliceData.primary,\n borderColor = _ref$sliceData$primar.border_tile_border_color,\n image = _ref$sliceData$primar.border_tile_image,\n title = _ref$sliceData$primar.border_tile_title,\n body = _ref$sliceData$primar.border_tile_body,\n buttonType = _ref$sliceData$primar.border_tile_button_type,\n buttonCopy = _ref$sliceData$primar.border_tile_button_copy,\n _ref$sliceData$primar2 = _ref$sliceData$primar.border_tile_button_link,\n url = _ref$sliceData$primar2.url,\n target = _ref$sliceData$primar2.target;\n var borderColorPrefix = borderColor.slice(0, 1) === '#' ? '' : '#';\n var buttonClasses = (0, _classnames[\"default\"])('content-page__border-tile-button', {\n 'content-page__border-tile-button--solid-green': buttonType === 'Solid Green',\n 'content-page__border-tile-button--solid-blue': buttonType === 'Solid Blue',\n 'content-page__border-tile-button--hollow-blue': buttonType === 'Hollow Blue'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__border-tile\",\n style: {\n 'border-color': \"\".concat(borderColorPrefix).concat(borderColor)\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__border-tile-image\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicImage, {\n field: image\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__border-tile-text\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: title\n }), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__rich-text\",\n content: body\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__border-tile-cta\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n className: buttonClasses,\n href: url,\n title: buttonCopy,\n external: target === '_blank'\n }, buttonCopy))));\n};\n\nSectionBorderTile.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n border_tile_border_color: _propTypes[\"default\"].string,\n border_tile_image: _propTypes[\"default\"].shape({}),\n border_tile_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n border_tile_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n border_tile_button_type: _propTypes[\"default\"].string,\n border_tile_button_copy: _propTypes[\"default\"].string,\n border_tile_button_link: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string,\n target: _propTypes[\"default\"].string\n })\n }).isRequired\n }).isRequired\n};\nvar _default = SectionBorderTile;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar SectionCTALink = function SectionCTALinkComponent(_ref) {\n var _ref$sliceData$primar = _ref.sliceData.primary,\n theme = _ref$sliceData$primar.theme,\n text = _ref$sliceData$primar.text,\n _ref$sliceData$primar2 = _ref$sliceData$primar.url,\n href = _ref$sliceData$primar2.url,\n target = _ref$sliceData$primar2.target,\n dataClient = _ref.dataClient;\n var ctaClasses = (0, _classnames[\"default\"])('content-page__section-cta-link', {\n 'content-page__section-cta-link--solid-green': theme === 'Solid Green',\n 'content-page__section-cta-link--solid-blue': theme === 'Solid Blue',\n 'content-page__section-cta-link--hollow-blue': theme === 'Hollow Blue'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__section-cta\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n className: ctaClasses,\n href: href,\n title: text,\n external: target === '_blank'\n }, dataClient.renderText(text))));\n};\n\nSectionCTALink.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n theme: _propTypes[\"default\"].string.isRequired,\n text: _propTypes[\"default\"].array.isRequired,\n url: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n dataClient: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = SectionCTALink;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _iconPhone = _interopRequireDefault(require(\"../../../shared/icons/icon-phone.svg\"));\n\nvar _iconEnvelope = _interopRequireDefault(require(\"../../../shared/icons/icon-envelope.svg\"));\n\nvar _iconChat = _interopRequireDefault(require(\"../../../shared/icons/icon-chat.svg\"));\n\nvar _iconLink = _interopRequireDefault(require(\"../../../shared/icons/icon-link.svg\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar iconMap = {\n Phone: _iconPhone[\"default\"],\n Email: _iconEnvelope[\"default\"],\n Chat: _iconChat[\"default\"],\n Link: _iconLink[\"default\"]\n};\nvar defaultLabelMap = {\n Email: 'Email',\n Phone: 'Call',\n Chat: '',\n Link: ''\n};\n\nvar ContactPoint = function ContactPointComponent(_ref) {\n var type = _ref.type,\n labelOverride = _ref.labelOverride,\n contactPointContent = _ref.contactPointContent;\n var Icon = iconMap[type];\n var label = labelOverride || defaultLabelMap[type];\n var contactPoint;\n\n switch (type) {\n case 'Email':\n contactPoint = /*#__PURE__*/_react[\"default\"].createElement(\"a\", {\n className: \"content-page__contact-link\",\n href: \"mailto:\".concat(contactPointContent[0].text)\n }, contactPointContent[0].text);\n break;\n\n case 'Phone':\n contactPoint = /*#__PURE__*/_react[\"default\"].createElement(\"a\", {\n className: \"content-page__contact-link\",\n href: \"tel:\".concat(contactPointContent[0].text)\n }, contactPointContent[0].text);\n break;\n\n default:\n contactPoint = /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__contact-point\",\n content: contactPointContent,\n options: {\n hyperlink: 'WithExternalLinkIcon'\n }\n });\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__contact-point\",\n role: \"heading\",\n \"aria-level\": 4\n }, /*#__PURE__*/_react[\"default\"].createElement(Icon, {\n className: \"content-page__contact-icon\",\n role: \"none\"\n }), label && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"content-page__contact-label\"\n }, label), contactPoint);\n};\n\nContactPoint.propTypes = {\n type: _propTypes[\"default\"].oneOf(['Phone', 'Email', 'Chat', 'Link']).isRequired,\n labelOverride: _propTypes[\"default\"].string,\n contactPointContent: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n};\nContactPoint.defaultProps = {\n labelOverride: null\n};\nvar _default = ContactPoint;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _ContactPoint = _interopRequireDefault(require(\"./ContactPoint\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable react/no-array-index-key */\nvar SectionContactInfo = function ContactInfoComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var items = sliceData.items,\n sectionTitle = sliceData.primary.contact_title;\n return items.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-tier se-tier--relative content-page__contact-info-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-row\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"content-page__contact-title\"\n }, dataClient.textToMarkdown(sectionTitle))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, items.map(function (_ref2, idx) {\n var hasDivider = _ref2.contact_divider,\n heading = _ref2.contact_heading,\n type = _ref2.contact_type,\n labelOverride = _ref2.contact_label,\n contactPointContent = _ref2.contact_point,\n body = _ref2.contact_body;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: \"\".concat(type, \"-\").concat(idx)\n }, hasDivider && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__contact-hr\"\n }), heading.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"h3\", {\n className: \"content-page__contact-subtitle\"\n }, dataClient.textToMarkdown(heading)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__contact\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_ContactPoint[\"default\"], {\n type: type,\n labelOverride: labelOverride,\n contactPointContent: contactPointContent\n }), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__contact-body\",\n content: body\n })));\n })))));\n};\n\nSectionContactInfo.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = SectionContactInfo;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _ContactPoint = _interopRequireDefault(require(\"./ContactPoint\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable react/no-array-index-key */\nvar SectionContactInfoSingle = function SectionContactInfoSingleComponent(_ref) {\n var sliceData = _ref.sliceData;\n var items = sliceData.items;\n return items.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__contact-info-single-wrapper\"\n }, items.map(function (_ref2, idx) {\n var hasDivider = _ref2.contact_divider,\n heading = _ref2.contact_heading,\n type = _ref2.contact_type,\n labelOverride = _ref2.contact_label,\n contactPointContent = _ref2.contact_point,\n body = _ref2.contact_body;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: \"\".concat(type, \"-\").concat(idx)\n }, hasDivider && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__contact-hr\"\n }), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__contact-subtitle\",\n content: heading\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__contact\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_ContactPoint[\"default\"], {\n type: type,\n labelOverride: labelOverride,\n contactPointContent: contactPointContent\n }), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__contact-body\",\n content: body\n })));\n })));\n};\n\nSectionContactInfoSingle.propTypes = {\n sliceData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = SectionContactInfoSingle;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _isEnterOrSpace = _interopRequireDefault(require(\"../../../shared/helpers/isEnterOrSpace\"));\n\nvar _iconCaret = _interopRequireDefault(require(\"../../../shared/icons/icon-caret.svg\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ExpandableItem = /*#__PURE__*/function (_Component) {\n _inherits(ExpandableItem, _Component);\n\n var _super = _createSuper(ExpandableItem);\n\n function ExpandableItem(props) {\n var _this;\n\n _classCallCheck(this, ExpandableItem);\n\n _this = _super.call(this, props);\n _this.state = {\n open: false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ExpandableItem, [{\n key: \"toggle\",\n value: function toggle() {\n var open = this.state.open;\n this.setState({\n open: !open\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n dataClient = _this$props.dataClient,\n divider = _this$props.divider,\n topic = _this$props.topic,\n expandable_heading = _this$props.expandable_heading,\n expandable_body = _this$props.expandable_body;\n var open = this.state.open;\n var iconClass = (0, _classnames[\"default\"])({\n 'content-page__expandable-list-caret': true,\n 'content-page__expandable-list-caret--open': open\n });\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, divider && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-list-hr\"\n }), topic.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"content-page__expandable-list-title\"\n }, dataClient.textToMarkdown(topic)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n \"aria-expanded\": open,\n className: \"content-page__expandable-list-item\",\n onClick: this.toggle,\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && _this2.toggle();\n },\n role: \"button\",\n tabIndex: 0\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h3\", {\n className: \"content-page__expandable-list-handle\"\n }, expandable_heading, /*#__PURE__*/_react[\"default\"].createElement(_iconCaret[\"default\"], {\n className: iconClass\n })), open && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-list-body\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__expandable-list-body\",\n content: expandable_body\n }))));\n }\n }]);\n\n return ExpandableItem;\n}(_react.Component);\n\nExpandableItem.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n divider: _propTypes[\"default\"].bool.isRequired,\n topic: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n expandable_heading: _propTypes[\"default\"].string.isRequired,\n expandable_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n};\nvar _default = ExpandableItem;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ExpandableItem = _interopRequireDefault(require(\"./ExpandableItem\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } 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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar SectionExpandableList = /*#__PURE__*/function (_Component) {\n _inherits(SectionExpandableList, _Component);\n\n var _super = _createSuper(SectionExpandableList);\n\n function SectionExpandableList(props) {\n var _this;\n\n _classCallCheck(this, SectionExpandableList);\n\n _this = _super.call(this, props);\n _this.top = /*#__PURE__*/_react[\"default\"].createRef();\n _this.scrollToTop = _this.scrollToTop.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(SectionExpandableList, [{\n key: \"scrollToTop\",\n value: function scrollToTop() {\n this.top.current.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n _this$props$sliceData = _this$props.sliceData,\n items = _this$props$sliceData.items,\n showBackToTop = _this$props$sliceData.primary.back_to_top,\n dataClient = _this$props.dataClient;\n var leftColItems = items.filter(function (item) {\n return !item.is_right_col;\n });\n var rightColItems = items.filter(function (item) {\n return item.is_right_col;\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-tier content-page__expandable-list\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\",\n ref: this.top\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-row\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, leftColItems.map(function (item, idx) {\n return /*#__PURE__*/_react[\"default\"].createElement(_ExpandableItem[\"default\"], _extends({\n key: \"expandable-left-\".concat(idx),\n dataClient: dataClient\n }, item));\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__expandable-list-hr content-page__expandable-list-hr--tablet\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, rightColItems.map(function (item, idx) {\n return /*#__PURE__*/_react[\"default\"].createElement(_ExpandableItem[\"default\"], _extends({\n key: \"expandable-right-\".concat(idx),\n dataClient: dataClient\n }, item));\n }))), showBackToTop && /*#__PURE__*/_react[\"default\"].createElement(\"button\", {\n className: \"content-page__expandable-list-to-top\",\n type: \"button\",\n tabIndex: 0,\n onKeyPress: this.scrollToTop,\n onClick: this.scrollToTop\n }, \"Back to top\")));\n }\n }]);\n\n return SectionExpandableList;\n}(_react.Component);\n\nSectionExpandableList.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n is_right_col: _propTypes[\"default\"].bool.isRequired\n })).isRequired,\n primary: _propTypes[\"default\"].shape({\n back_to_top: _propTypes[\"default\"].bool.isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = SectionExpandableList;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar SectionImages = function SectionImagesComponent(_ref) {\n var sliceData = _ref.sliceData;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__image-wrapper\"\n }, sliceData.items.map(function (_ref2) {\n var image_asset = _ref2.image_asset;\n return /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__image\",\n src: image_asset.url,\n alt: image_asset.name,\n key: \"picture of \".concat(image_asset.name)\n });\n }));\n};\n\nSectionImages.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n image_asset: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string.isRequired,\n name: _propTypes[\"default\"].string.isRequired\n }).isRequired\n })).isRequired\n }).isRequired\n};\nvar _default = SectionImages;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar InfoCardImage = function InfoCardImageComponent(_ref) {\n var image = _ref.image,\n link = _ref.link,\n alt = _ref.alt;\n\n if (!image.url || !link.url || alt.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n className: \"content-page__info-card-image-link\",\n href: link.url,\n external: link.target === '_blank'\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"content-page__info-card-image\",\n srcSet: image.url,\n src: image.url,\n alt: alt[0].text\n }));\n};\n\nInfoCardImage.propTypes = {\n image: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string\n }).isRequired,\n link: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string,\n target: _propTypes[\"default\"].string\n }).isRequired,\n alt: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n text: _propTypes[\"default\"].string.isRequired\n })).isRequired\n};\nvar _default = InfoCardImage;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _InfoCardImage = _interopRequireDefault(require(\"./InfoCardImage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable react/no-array-index-key */\nvar SectionInfoCard = function InfoCardComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var items = sliceData.items,\n sectionTitle = sliceData.primary.info_title;\n return items.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-tier se-tier--relative content-page__info-card-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-row\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"content-page__info-card-title\"\n }, dataClient.textToMarkdown(sectionTitle))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, items.map(function (_ref2, idx) {\n var body = _ref2.info_body,\n image1 = _ref2.info_image_1,\n image1Link = _ref2.info_link_1,\n image1Alt = _ref2.info_alt_1,\n image2 = _ref2.info_image_2,\n image2Link = _ref2.info_link_2,\n image2Alt = _ref2.info_alt_2;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: \"info-card-\".concat(idx)\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__info-card\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__info-card-body\",\n content: body\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__info-card-images\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_InfoCardImage[\"default\"], {\n alt: image1Alt,\n image: image1,\n link: image1Link\n }), /*#__PURE__*/_react[\"default\"].createElement(_InfoCardImage[\"default\"], {\n alt: image2Alt,\n image: image2,\n link: image2Link\n })));\n })))));\n};\n\nSectionInfoCard.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = SectionInfoCard;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ListItem = _interopRequireDefault(require(\"../SectionListItem/ListItem\"));\n\nvar _listHelpers = _interopRequireDefault(require(\"../../helpers/listHelpers\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar SectionList = function SectionListComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var items = sliceData.items,\n sectionListStyle = sliceData.primary.section_list_style;\n var listItemTypeMap = {\n Numbered: 'ol',\n Bulleted: 'ul'\n };\n var ListType = listItemTypeMap[sectionListStyle];\n\n var _columnizeListItems = (0, _listHelpers[\"default\"])(items),\n leftColumnItems = _columnizeListItems.leftColumnItems,\n rightColumnItems = _columnizeListItems.rightColumnItems;\n\n return items.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__list-wrapper\"\n }, leftColumnItems && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__list-column-left\"\n }, /*#__PURE__*/_react[\"default\"].createElement(ListType, {\n className: \"content-page__list\"\n }, leftColumnItems.map(function (listItem, idx) {\n var counter = \"\".concat(idx + 1);\n var key = \"\".concat(listItem.list_item_type, \"_\").concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(_ListItem[\"default\"], {\n listStyle: sectionListStyle,\n listItem: listItem,\n dataClient: dataClient,\n key: key,\n counter: counter\n });\n }))), rightColumnItems && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__list-column-right\"\n }, /*#__PURE__*/_react[\"default\"].createElement(ListType, {\n className: \"content-page__list\"\n }, rightColumnItems.map(function (listItem, idx) {\n var counter = \"\".concat(leftColumnItems.length + idx + 1);\n var key = \"\".concat(listItem.list_item_type, \"_\").concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(_ListItem[\"default\"], {\n listStyle: sectionListStyle,\n listItem: listItem,\n dataClient: dataClient,\n key: key,\n counter: counter\n });\n })))));\n};\n/* eslint-disable camelcase */\n\n\nSectionList.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n primary: _propTypes[\"default\"].shape({\n section_list_style: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = SectionList;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconCheckmark = _interopRequireDefault(require(\"../../../shared/icons/icon-checkmark.svg\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ListItem = function ListItemComponent(_ref) {\n var listStyle = _ref.listStyle,\n listItem = _ref.listItem,\n dataClient = _ref.dataClient,\n counter = _ref.counter;\n var listItemTitle = listItem.list_item_title,\n listItemBody = listItem.list_item_body;\n var counterStyleMap = {\n Numbered: {\n counterClass: 'content-page__list-item-counter--numbered',\n counterElement: counter\n },\n Bulleted: {\n counterClass: 'content-page__list-item-counter--bulleted',\n counterElement: /*#__PURE__*/_react[\"default\"].createElement(_iconCheckmark[\"default\"], {\n className: \"content-page__list-item-counter__icon\"\n })\n }\n };\n var _counterStyleMap$list = counterStyleMap[listStyle],\n counterElement = _counterStyleMap$list.counterElement,\n counterClass = _counterStyleMap$list.counterClass;\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: \"content-page__list-item\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"\".concat(counterClass)\n }, counterElement), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__list-item-title\"\n }, dataClient.renderText(listItemTitle)), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__list-item-body\",\n content: listItemBody\n }));\n};\n/* eslint-disable camelcase */\n\n\nListItem.propTypes = {\n listStyle: _propTypes[\"default\"].string.isRequired,\n listItem: _propTypes[\"default\"].shape({\n list_item_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n list_item_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired,\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n counter: _propTypes[\"default\"].string\n};\nListItem.defaultProps = {\n counter: ''\n};\nvar _default = ListItem;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _tableHelpers = _interopRequireDefault(require(\"../../helpers/tableHelpers\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar SectionTable = function SectionTableComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData,\n linkedContent = _ref.linkedContent;\n var linkedTableData = (0, _tableHelpers[\"default\"])(sliceData, linkedContent);\n\n if (!linkedTableData) {\n return null;\n }\n\n var sectionTableId = sliceData.primary.section_table_id;\n var tableHeader = linkedTableData.contentData.body.slice(0, 1)[0].items;\n var tableBody = linkedTableData.contentData.body.slice(1);\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"content-page__table-wrapper\",\n id: sectionTableId\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"table\", {\n className: \"content-page__table\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"thead\", {\n className: \"content-page__table-head\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"tr\", {\n className: \"content-page__table-row--head\"\n }, tableHeader.map(function (tableCell, idx) {\n var key = \"table-head-cell-\".concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(\"th\", {\n className: \"content-page__table-cell--head\",\n key: key\n }, dataClient.textToMarkdown(tableCell.table_cell_content));\n }))), /*#__PURE__*/_react[\"default\"].createElement(\"tbody\", {\n className: \"content-page__table-body\"\n }, tableBody.map(function (tableRow, idx) {\n var rowKey = \"table-row-\".concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(\"tr\", {\n className: \"content-page__table-row\",\n key: rowKey\n }, tableRow.items.map(function (tableCell, idx) {\n var cellKey = \"cell-\".concat(rowKey, \"-\").concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(\"td\", {\n className: \"content-page__table-cell\",\n key: cellKey\n }, dataClient.renderFullMarkup(tableCell.table_cell_content));\n }));\n })))));\n};\n/* eslint-disable camelcase */\n\n\nSectionTable.propTypes = {\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n linked_table: _propTypes[\"default\"].shape({\n id: _propTypes[\"default\"].string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n linkedContent: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n id: _propTypes[\"default\"].string.isRequired,\n type: _propTypes[\"default\"].string.isRequired,\n contentData: _propTypes[\"default\"].shape({}).isRequired\n })).isRequired\n};\nvar _default = SectionTable;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar BasicSectionTitle = function SectionTitleComponent(_ref) {\n var sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n section_title_text = _sliceData$primary.section_title_text,\n title_alignment = _sliceData$primary.title_alignment;\n var sectionTitleClassName = (0, _classnames[\"default\"])('content-page__section-title', {\n 'content-page__section-title--left-align': title_alignment === 'Left',\n 'content-page__section-title--center-align': title_alignment === 'Center',\n 'content-page__section-title--right-align': title_alignment === 'Right'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: sectionTitleClassName\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n baseClass: \"content-page__section-title-text\",\n content: section_title_text\n })));\n};\n\nBasicSectionTitle.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n section_title_text: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = BasicSectionTitle;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar TradeAllySectionTitle = function SectionTitleComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n var _sliceData$primary = sliceData.primary,\n section_title_text = _sliceData$primary.section_title_text,\n title_alignment = _sliceData$primary.title_alignment;\n var sectionTitleClassName = (0, _classnames[\"default\"])('content-page__section-title--trade-ally', {\n 'content-page__section-title--left-align': title_alignment === 'Left',\n 'content-page__section-title--center-align': title_alignment === 'Center',\n 'content-page__section-title--right-align': title_alignment === 'Right'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: sectionTitleClassName\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"content-page__section-title-text--trade-ally\"\n }, dataClient.textToMarkdown(section_title_text))));\n};\n\nTradeAllySectionTitle.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n section_title_text: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n }).isRequired\n }).isRequired\n};\nvar _default = TradeAllySectionTitle;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar columnizeListItems = function columnizeListItemsFunction(items) {\n var listMidpoint;\n\n if (items.length > 1) {\n switch (items.length % 2) {\n case 0:\n listMidpoint = items.length / 2;\n break;\n\n case 1:\n listMidpoint = (items.length + 1) / 2;\n break;\n\n default:\n break;\n }\n\n return {\n leftColumnItems: items.slice(0, listMidpoint),\n rightColumnItems: items.slice(listMidpoint)\n };\n }\n\n return {\n leftColumnItems: items\n };\n};\n\nvar _default = columnizeListItems;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = normalizePage;\n\nvar linkedContent = function linkedContent(response) {\n var page = response.find(function (item) {\n return item.type === 'page';\n });\n var massagedResponse = {\n pageTemplate: page.data.page_template,\n sections: page.data.body\n };\n massagedResponse.linkedContent = response.filter(function (items) {\n return items !== page;\n }).map(function (content) {\n return {\n id: content.id,\n type: content.type,\n contentData: content.data\n };\n });\n return massagedResponse;\n};\n\nfunction normalizePage(response) {\n return response && response.length > 0 && linkedContent(response);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = query;\n\nvar prismic = _interopRequireWildcard(require(\"@prismicio/client\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction query(siteId, pageId) {\n return [prismic.Predicates.any('document.type', ['page', 'table']), prismic.Predicates.at('document.tags', [siteId, pageId])];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = linkedTable;\n\nfunction linkedTable(sliceData, linkedContent) {\n return linkedContent && sliceData.primary && sliceData.primary.linked_table && linkedContent.find(function (linkedItem) {\n return linkedItem.id === sliceData.primary.linked_table.id;\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _prismic = require(\"../../shared/helpers/prismic\");\n\nvar _BasicPageTitle = _interopRequireDefault(require(\"../components/PageTitle/BasicPageTitle\"));\n\nvar _PageHero = _interopRequireDefault(require(\"../components/PageHero/PageHero\"));\n\nvar _ResponsiveHero = _interopRequireDefault(require(\"../components/ResponsiveHero/ResponsiveHero\"));\n\nvar _CardList = _interopRequireDefault(require(\"../components/CardList/CardList\"));\n\nvar _EnergyCostGraph = _interopRequireDefault(require(\"../components/EnergyCostGraph/EnergyCostGraph\"));\n\nvar _SectionList = _interopRequireDefault(require(\"../components/SectionList/SectionList\"));\n\nvar _BasicSectionTitle = _interopRequireDefault(require(\"../components/SectionTitle/BasicSectionTitle\"));\n\nvar _SectionBody = _interopRequireDefault(require(\"../components/SectionBody/SectionBody\"));\n\nvar _SectionImages = _interopRequireDefault(require(\"../components/SectionImages/SectionImages\"));\n\nvar _ResponsiveImage = _interopRequireDefault(require(\"../components/ResponsiveImage/ResponsiveImage\"));\n\nvar _HeroCard = _interopRequireDefault(require(\"../components/HeroCard/HeroCard\"));\n\nvar _SectionTable = _interopRequireDefault(require(\"../components/SectionTable/SectionTable\"));\n\nvar _SectionCTALink = _interopRequireDefault(require(\"../components/SectionCTALink/SectionCTALink\"));\n\nvar _SectionContactInfo = _interopRequireDefault(require(\"../components/SectionContactInfo/SectionContactInfo\"));\n\nvar _SectionContactInfoSingle = _interopRequireDefault(require(\"../components/SectionContactInfo/SectionContactInfoSingle\"));\n\nvar _SectionInfoCard = _interopRequireDefault(require(\"../components/SectionInfoCard/SectionInfoCard\"));\n\nvar _SectionExpandableList = _interopRequireDefault(require(\"../components/SectionExpandableList/SectionExpandableList\"));\n\nvar _Divider = _interopRequireDefault(require(\"../components/Divider/Divider\"));\n\nvar _DetailsExpandableCard = _interopRequireDefault(require(\"../components/DetailsExpandableCard/DetailsExpandableCard\"));\n\nvar _SectionBorderTile = _interopRequireDefault(require(\"../components/SectionBorderTile/SectionBorderTile\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar BasicPageTemplate = function BasicPageTemplateComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var sections = pageData.sections,\n linkedContent = pageData.linkedContent;\n var componentMap = {\n energy_cost_graph: _EnergyCostGraph[\"default\"],\n page_hero: _PageHero[\"default\"],\n responsive_hero: _ResponsiveHero[\"default\"],\n section_page_title: _BasicPageTitle[\"default\"],\n section_title: _BasicSectionTitle[\"default\"],\n section_body: _SectionBody[\"default\"],\n divider: _Divider[\"default\"],\n section_card_list: _CardList[\"default\"],\n section_list: _SectionList[\"default\"],\n section_images: _SectionImages[\"default\"],\n section_hero_card: _HeroCard[\"default\"],\n section_table: _SectionTable[\"default\"],\n section_cta_link: _SectionCTALink[\"default\"],\n section_responsive_image: _ResponsiveImage[\"default\"],\n section_contact_info: _SectionContactInfo[\"default\"],\n section_contact_info_single: _SectionContactInfoSingle[\"default\"],\n section_info_card: _SectionInfoCard[\"default\"],\n section_expandable_list: _SectionExpandableList[\"default\"],\n details_expandable_card: _DetailsExpandableCard[\"default\"],\n border_tile_section: _SectionBorderTile[\"default\"]\n };\n var slices = (0, _prismic.nestSlices)(sections);\n var props = {\n dataClient: dataClient,\n linkedContent: linkedContent\n };\n return (0, _prismic.slicesToJsx)(slices, componentMap, props);\n};\n\nBasicPageTemplate.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = BasicPageTemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _TradeAllyPageTitle = _interopRequireDefault(require(\"../components/PageTitle/TradeAllyPageTitle\"));\n\nvar _CardList = _interopRequireDefault(require(\"../components/CardList/CardList\"));\n\nvar _SectionList = _interopRequireDefault(require(\"../components/SectionList/SectionList\"));\n\nvar _TradeAllySectionTitle = _interopRequireDefault(require(\"../components/SectionTitle/TradeAllySectionTitle\"));\n\nvar _SectionBody = _interopRequireDefault(require(\"../components/SectionBody/SectionBody\"));\n\nvar _SectionImages = _interopRequireDefault(require(\"../components/SectionImages/SectionImages\"));\n\nvar _HeroCard = _interopRequireDefault(require(\"../components/HeroCard/HeroCard\"));\n\nvar _SectionTable = _interopRequireDefault(require(\"../components/SectionTable/SectionTable\"));\n\nvar _SectionCTALink = _interopRequireDefault(require(\"../components/SectionCTALink/SectionCTALink\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar CenhubTradeAllyTemplate = function CenhubTradeAllyTemplateComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var sections = pageData.sections,\n linkedContent = pageData.linkedContent;\n var componentMap = {\n section_page_title: _TradeAllyPageTitle[\"default\"],\n section_title: _TradeAllySectionTitle[\"default\"],\n section_body: _SectionBody[\"default\"],\n section_card_list: _CardList[\"default\"],\n section_list: _SectionList[\"default\"],\n section_images: _SectionImages[\"default\"],\n section_hero_card: _HeroCard[\"default\"],\n section_table: _SectionTable[\"default\"],\n section_cta_link: _SectionCTALink[\"default\"]\n };\n return sections.map(function (sliceData, idx) {\n var Component = componentMap[sliceData.slice_type];\n var key = \"\".concat(sliceData.slice_type, \"-\").concat(idx);\n return /*#__PURE__*/_react[\"default\"].createElement(Component, {\n sliceData: sliceData,\n dataClient: dataClient,\n linkedContent: linkedContent,\n key: key\n });\n });\n};\n\nCenhubTradeAllyTemplate.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = CenhubTradeAllyTemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar prismic = _interopRequireWildcard(require(\"@prismicio/client\"));\n\nvar _react2 = require(\"@prismicio/react\");\n\nvar prismicH = _interopRequireWildcard(require(\"@prismicio/helpers\"));\n\nvar _defaultConfig = _interopRequireDefault(require(\"./defaultConfig\"));\n\nvar _CustomReactMarkdown = _interopRequireDefault(require(\"./shared/components/MarkdownRenderers/CustomReactMarkdown\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/* eslint-disable class-methods-use-this */\nvar PrismicClient = /*#__PURE__*/function () {\n function PrismicClient(setComponentState, restEndpoint) {\n _classCallCheck(this, PrismicClient);\n\n this.setComponentState = setComponentState;\n this.client = prismic.createClient(restEndpoint || _defaultConfig[\"default\"].restEndpoint);\n } // TODO:\n // - Build in pagination re-fetching\n\n\n _createClass(PrismicClient, [{\n key: \"fetchData\",\n value: function fetchData(query, normalizer, errorHandler) {\n var _this = this;\n\n return this.client.query(query).then(function (response) {\n var formattedData = normalizer(response.results);\n\n _this.setComponentState(formattedData);\n })[\"catch\"](function (error) {\n if (errorHandler instanceof Function) {\n return errorHandler(error, false);\n } // TODO: Introduce improved handling of error responses when no handle is present\n // eslint-disable-next-line no-console\n\n\n console.warn('Prismic failed to return content. Error response received.');\n return error;\n });\n } // Renders only the plain text, should be used in most cases\n // Preferred means of rendering\n\n }, {\n key: \"renderText\",\n value: function renderText(text) {\n return prismicH.asText(text);\n } // Renders only the plain text, should be used in most cases\n // Preferred means of rendering\n\n }, {\n key: \"textToMarkdown\",\n value: function textToMarkdown(text) {\n // TODO apply reactMarkdown to renderFullmarkup and serializeHTML\n // noWrapper flag causes the markdown to be rendered\n // inside a react fragment and not in a p and div tag.\n // this should not be used to render large bodies of formatted text--\n // use renderFullMarkup for that\n return /*#__PURE__*/_react[\"default\"].createElement(_CustomReactMarkdown[\"default\"], {\n source: prismicH.asText(text),\n noWrapper: true\n });\n } // Renders all the elements configured in Prismic\n // Should be used for all body elements/consider using serializeHTML for more rendering options\n // TODO:\n // - Customize benefitsHtmlSerializer for maximum usable cases\n\n }, {\n key: \"renderFullMarkup\",\n value: function renderFullMarkup(text) {\n return /*#__PURE__*/_react[\"default\"].createElement(_react2.PrismicRichText, {\n field: text\n });\n }\n }]);\n\n return PrismicClient;\n}();\n\nvar _default = PrismicClient;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _prismicClient = _interopRequireDefault(require(\"../prismicClient\"));\n\nvar _BasicTemplate = _interopRequireDefault(require(\"./templates/BasicTemplate\"));\n\nvar _DRPETemplate = _interopRequireDefault(require(\"./templates/DRPETemplate\"));\n\nvar _query = _interopRequireDefault(require(\"./helpers/query\"));\n\nvar _normalizer = _interopRequireDefault(require(\"./helpers/normalizer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar templateMap = {\n Basic: _BasicTemplate[\"default\"],\n DRPE: _DRPETemplate[\"default\"]\n};\n\nvar ProgramPage = /*#__PURE__*/function (_Component) {\n _inherits(ProgramPage, _Component);\n\n var _super = _createSuper(ProgramPage);\n\n function ProgramPage(props) {\n var _this;\n\n _classCallCheck(this, ProgramPage);\n\n _this = _super.call(this, props);\n var siteId = props.siteId,\n instanceId = props.instanceId,\n errorHandler = props.errorHandler;\n _this.state = {\n pageData: null\n };\n _this.setComponentState = _this.setComponentState.bind(_assertThisInitialized(_this));\n _this.dataClient = new _prismicClient[\"default\"](_this.setComponentState);\n\n _this.dataClient.fetchData((0, _query[\"default\"])(siteId, instanceId), _normalizer[\"default\"], errorHandler);\n\n return _this;\n }\n\n _createClass(ProgramPage, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var callbackFunc = this.props.callbackFunc;\n callbackFunc.call(this);\n }\n }, {\n key: \"setComponentState\",\n value: function setComponentState(state) {\n if (state && (!state.page_template || !templateMap[state.page_template])) {\n var errorHandler = this.props.errorHandler;\n return errorHandler('Content is defined, but no template is available.', true);\n }\n\n this.setState({\n pageData: state\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var pageData = this.state.pageData;\n\n if (!pageData) {\n return null;\n }\n\n var Template = templateMap[pageData.page_template];\n return /*#__PURE__*/_react[\"default\"].createElement(Template, {\n pageData: pageData,\n dataClient: this.dataClient\n });\n }\n }]);\n\n return ProgramPage;\n}(_react.Component);\n\nProgramPage.propTypes = {\n siteId: _propTypes[\"default\"].string.isRequired,\n instanceId: _propTypes[\"default\"].string.isRequired,\n errorHandler: _propTypes[\"default\"].func.isRequired,\n callbackFunc: _propTypes[\"default\"].func\n};\nProgramPage.defaultProps = {\n callbackFunc: function callbackFunc() {}\n};\nvar _default = ProgramPage;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar benefitsConfig = {\n oListItem: 'WithNumbers',\n listItem: 'WithCheckmark'\n};\n/* eslint-disable camelcase */\n\nvar BenefitsList = function BenefitsListComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var benefits_list = pageData.benefits_list;\n return benefits_list.map(function (benefitList) {\n var benefit_title = benefitList.benefit_title,\n benefit_background_color = benefitList.benefit_background_color,\n benefit_body = benefitList.benefit_body;\n var backgroundColor = benefit_background_color;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit-wrapper\",\n style: {\n backgroundColor: backgroundColor\n },\n key: dataClient.renderText(benefit_title)\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit-title-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"benefit-body__heading-2\"\n }, dataClient.textToMarkdown(benefit_title))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit-body-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n content: benefit_body,\n baseClass: \"benefit-body\",\n options: benefitsConfig\n })))));\n });\n};\n\nBenefitsList.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = BenefitsList;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar CTAButton = function CTAButtonComponent(_ref) {\n var sliceData = _ref.sliceData,\n dataClient = _ref.dataClient;\n\n if (!sliceData[0].cta_link.url) {\n return null;\n }\n\n return sliceData.map(function (_ref2) {\n var cta_type = _ref2.cta_type,\n cta_text = _ref2.cta_text,\n cta_link = _ref2.cta_link;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list__cta-wrapper\",\n key: cta_link.url\n }, /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n href: cta_link.url,\n external: cta_link.target === '_blank',\n className: \"info-list__cta-\".concat(cta_type.toLowerCase())\n }, dataClient.textToMarkdown(cta_text)));\n });\n};\n\nCTAButton.propTypes = {\n sliceData: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n cta_type: _propTypes[\"default\"].string,\n cta_text: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n cta_link: _propTypes[\"default\"].shape({})\n })).isRequired,\n dataClient: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = CTAButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ComponentTargetID = function ComponentTargetID(_ref) {\n var sliceData = _ref.sliceData;\n\n if (sliceData[0].element_id.length === 0) {\n return null;\n }\n\n return sliceData.map(function (_ref2) {\n var element_id = _ref2.element_id;\n return element_id.map(function (_ref3) {\n var text = _ref3.text;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: text,\n className: \"info-list__component-target\",\n id: text\n });\n });\n });\n};\n\nComponentTargetID.prototype = {\n element_id: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n text: _propTypes[\"default\"].string\n }))\n};\nvar _default = ComponentTargetID;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconPhone = _interopRequireDefault(require(\"../../../shared/icons/icon-phone.svg\"));\n\nvar _iconEnvelope = _interopRequireDefault(require(\"../../../shared/icons/icon-envelope.svg\"));\n\nvar _iconArrowOut = _interopRequireDefault(require(\"../../../shared/icons/icon-arrow-out.svg\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar iconMap = {\n Phone: _iconPhone[\"default\"],\n Email: _iconEnvelope[\"default\"],\n Web: _iconArrowOut[\"default\"]\n};\n/* eslint-disable camelcase */\n\nvar Contact = function ContactComponent(_ref) {\n var dataClient = _ref.dataClient,\n contact_type = _ref.contact_type,\n contact_label = _ref.contact_label,\n contact_link_text = _ref.contact_link_text,\n contact_link_url = _ref.contact_link_url;\n var Icon = iconMap[contact_type];\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"program-contact\"\n }, /*#__PURE__*/_react[\"default\"].createElement(Icon, {\n className: \"program-contact__icon\"\n }), contact_label && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"program-contact__label\"\n }, \"\".concat(dataClient.renderText(contact_label), \" \")), /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n className: \"program-contact__link\",\n href: contact_link_url.url,\n external: contact_link_url.target === '_blank'\n }, dataClient.textToMarkdown(contact_link_text)));\n};\n\nContact.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n contact_type: _propTypes[\"default\"].string.isRequired,\n contact_link_text: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n contact_link_url: _propTypes[\"default\"].shape({}).isRequired,\n contact_label: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n};\nContact.defaultProps = {\n contact_label: undefined\n};\nvar _default = Contact;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Contact = _interopRequireDefault(require(\"./Contact\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ContactInfo = function ContactInfoComponent(_ref) {\n var dataClient = _ref.dataClient,\n sectionTitle = _ref.sectionTitle,\n contactList = _ref.contactList;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-tier se-tier--relative\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-row\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"program-contact__title\"\n }, dataClient.textToMarkdown(sectionTitle))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-col se-col--12 se-col--6Tablet\"\n }, contactList.map(function (_ref2) {\n var contact_subtitle = _ref2.contact_subtitle,\n contact_type = _ref2.contact_type,\n contact_label = _ref2.contact_label,\n contact_link_text = _ref2.contact_link_text,\n contact_link_url = _ref2.contact_link_url;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: contact_link_url.url\n }, contact_subtitle.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(\"h3\", {\n className: \"program-contact__subtitle\"\n }, dataClient.textToMarkdown(contact_subtitle)), /*#__PURE__*/_react[\"default\"].createElement(_Contact[\"default\"], {\n key: contact_link_url.url,\n dataClient: dataClient,\n contact_subtitle: contact_subtitle,\n contact_type: contact_type,\n contact_label: contact_label,\n contact_link_text: contact_link_text,\n contact_link_url: contact_link_url\n }));\n })))));\n};\n\nContactInfo.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sectionTitle: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired,\n contactList: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n};\nvar _default = ContactInfo;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar contentBoxConfig = {\n hyperlink: 'WithExternalLinkIcon'\n};\n/* eslint-disable camelcase */\n\nvar ContentBox = function ContentBoxComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData;\n\n if (sliceData[0].box_title.length === 0 && sliceData[0].box_content.length === 0) {\n return null;\n }\n\n return sliceData.map(function (_ref2) {\n var box_title = _ref2.box_title,\n box_content = _ref2.box_content;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list__content-box-wrapper\",\n key: box_title\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h4\", {\n className: \"info-list__content-box-title\"\n }, dataClient.textToMarkdown(box_title)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list__content-box-body\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n content: box_content,\n baseClass: \"info-list__content-box\",\n options: contentBoxConfig\n })));\n });\n};\n\nContentBox.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n box_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n box_content: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n })).isRequired\n};\nvar _default = ContentBox;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _linkHelper2 = _interopRequireDefault(require(\"../../../shared/helpers/linkHelper\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ImageLinks = function ImageLinksComponent(_ref) {\n var sliceData = _ref.sliceData;\n\n if (!sliceData[0].link_url.url) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list__brands\"\n }, sliceData.map(function (_ref2) {\n var link_image = _ref2.link_image,\n link_url = _ref2.link_url;\n\n var _linkHelper = (0, _linkHelper2[\"default\"])(link_url.url, link_url.target === '_blank'),\n cleanHref = _linkHelper.cleanHref,\n openNewTab = _linkHelper.openNewTab;\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"a\", {\n key: link_url.url,\n href: cleanHref,\n target: openNewTab ? '_blank' : '_self',\n className: \"info-list__brand\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"info-list__brand__image\",\n srcSet: link_image.url,\n src: link_image.url,\n alt: link_image.name\n }));\n }));\n};\n\nImageLinks.propTypes = {\n sliceData: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n link_image: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string,\n target: _propTypes[\"default\"].string,\n name: _propTypes[\"default\"].string\n }),\n link_url: _propTypes[\"default\"].shape({\n url: _propTypes[\"default\"].string,\n target: _propTypes[\"default\"].string,\n name: _propTypes[\"default\"].string\n })\n })).isRequired\n};\nvar _default = ImageLinks;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _contentHelpers = _interopRequireDefault(require(\"../../helpers/contentHelpers\"));\n\nvar _LinkedContentMapper = _interopRequireDefault(require(\"../LinkedContentMapper/LinkedContentMapper\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar infoListConfig = {\n listItem: 'WithCheckmark',\n embed: 'inline'\n};\n/* eslint-disable camelcase */\n\nvar InfoList = function InfoListComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData,\n linkedContent = _ref.linkedContent;\n var linkedContentData = (0, _contentHelpers[\"default\"])(sliceData, linkedContent);\n var _sliceData$primary = sliceData.primary,\n background_color = _sliceData$primary.background_color,\n info_list_title = _sliceData$primary.info_list_title,\n items = sliceData.items;\n var info_list_body = items[0].info_list_body;\n var backgroundColor = background_color;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list-wrapper info-list-wrapper--divider\",\n style: {\n backgroundColor: backgroundColor\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list-title-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"info-list-body__heading-2\"\n }, dataClient.textToMarkdown(info_list_title))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"info-list-body-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n content: info_list_body,\n baseClass: \"info-list-body\",\n options: infoListConfig\n }), /*#__PURE__*/_react[\"default\"].createElement(_LinkedContentMapper[\"default\"], {\n linkedContentData: linkedContentData,\n dataClient: dataClient\n })))));\n};\n\nInfoList.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n sliceData: _propTypes[\"default\"].shape({\n primary: _propTypes[\"default\"].shape({\n background_color: _propTypes[\"default\"].string,\n info_list_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n }),\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n }).isRequired,\n linkedContent: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n id: _propTypes[\"default\"].string,\n type: _propTypes[\"default\"].string,\n content: _propTypes[\"default\"].shape({\n image_links: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n cta_button: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n content_box: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n })\n }))\n};\nInfoList.defaultProps = {\n linkedContent: null\n};\nvar _default = InfoList;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconBookmark = _interopRequireDefault(require(\"../../../shared/icons/icon-bookmark.svg\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"../../../shared/components/MarkdownRenderers/MarkdownLinkRenderer\"));\n\nvar _EmbeddedVideo = _interopRequireDefault(require(\"../../../shared/components/EmbeddedVideo/EmbeddedVideo\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*\n TODO when adding Benefit List component:\n - Refactor generic Benefit Title & Body out as they will be used by non-key\n - Do something about the camelcase linter rule\n*/\n\n/* eslint-disable camelcase */\nvar KeyBenefits = function KeyBenefitsComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var key_benefits = pageData.key_benefits,\n key_benefits_ctas = pageData.key_benefits_ctas,\n key_benefits_media = pageData.key_benefits_media,\n key_benefits_media_link = pageData.key_benefits_media_link,\n key_benefits_title = pageData.key_benefits_title;\n\n var embeddedVideoExists = function embeddedVideoExists(key_benefits_media) {\n return key_benefits_media.provider_name && key_benefits_media.embed_url;\n };\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit-title-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"benefit-body__heading-2\"\n }, dataClient.textToMarkdown(key_benefits_title))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit-body-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n className: \"benefit-body-list benefit-body-list--bookmark\"\n }, key_benefits.map(function (_ref2) {\n var key_benefit_title = _ref2.key_benefit_title,\n key_benefit_body = _ref2.key_benefit_body;\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: \"benefit-body-list__item\",\n key: dataClient.renderText(key_benefit_title)\n }, /*#__PURE__*/_react[\"default\"].createElement(_iconBookmark[\"default\"], {\n className: \"benefit-body-list__bookmark-icon\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"h3\", {\n className: \"benefit-body__heading-3\"\n }, dataClient.textToMarkdown(key_benefit_title)), /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n className: \"key-benefit-body__copy\"\n }, dataClient.textToMarkdown(key_benefit_body)));\n })), key_benefits_ctas.map(function (_ref3) {\n var key_benefits_cta_link = _ref3.key_benefits_cta_link,\n key_benefits_cta_text = _ref3.key_benefits_cta_text,\n key_benefits_cta_type = _ref3.key_benefits_cta_type;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit__cta-wrapper\",\n key: key_benefits_cta_link.url\n }, /*#__PURE__*/_react[\"default\"].createElement(_MarkdownLinkRenderer[\"default\"], {\n href: key_benefits_cta_link.url,\n external: key_benefits_cta_link.target === '_blank',\n className: \"benefit__cta-\".concat(key_benefits_cta_type.toLowerCase())\n }, dataClient.textToMarkdown(key_benefits_cta_text)));\n }), embeddedVideoExists(key_benefits_media) && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit__video-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_EmbeddedVideo[\"default\"], {\n providerName: key_benefits_media.provider_name,\n url: key_benefits_media.embed_url\n })), key_benefits_media_link && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"benefit__video-link\"\n }, dataClient.renderFullMarkup(key_benefits_media_link))))));\n};\n\nKeyBenefits.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = KeyBenefits;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _contentHelpers = _interopRequireDefault(require(\"../../helpers/contentHelpers\"));\n\nvar _LinkedContentMapper = _interopRequireDefault(require(\"../LinkedContentMapper/LinkedContentMapper\"));\n\nvar _KeyPointsListItems = _interopRequireDefault(require(\"./components/KeyPointsListItems\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar keyPointsConfig = {\n hyperlink: 'WithExternalLinkIcon',\n embed: 'inline'\n};\n/* eslint-disable camelcase */\n\nvar KeyPoints = function KeyPointsComponent(_ref) {\n var dataClient = _ref.dataClient,\n sliceData = _ref.sliceData,\n linkedContent = _ref.linkedContent;\n var linkedContentData = (0, _contentHelpers[\"default\"])(sliceData, linkedContent);\n var slice_label = sliceData.slice_label,\n items = sliceData.items,\n _sliceData$primary = sliceData.primary,\n background_color = _sliceData$primary.background_color,\n key_points_title = _sliceData$primary.key_points_title;\n var backgroundColor = background_color;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points-wrapper\",\n style: {\n backgroundColor: backgroundColor\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points-title-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h2\", {\n className: \"key-points-body__heading-2\"\n }, dataClient.textToMarkdown(key_points_title))), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points-body-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_KeyPointsListItems[\"default\"], {\n sliceLabel: slice_label,\n dataClient: dataClient,\n keyPointsConfig: keyPointsConfig,\n items: items\n }), /*#__PURE__*/_react[\"default\"].createElement(_LinkedContentMapper[\"default\"], {\n linkedContentData: linkedContentData,\n dataClient: dataClient\n })))));\n};\n\nKeyPoints.propTypes = {\n dataClient: _propTypes[\"default\"].shape({\n slice_label: _propTypes[\"default\"].string,\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n primary: _propTypes[\"default\"].shape({\n background_color: _propTypes[\"default\"].string,\n key_points_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n })\n }).isRequired,\n sliceData: _propTypes[\"default\"].shape({}).isRequired,\n linkedContent: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n};\nKeyPoints.defaultProps = {\n linkedContent: null\n};\nvar _default = KeyPoints;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _iconBookmark = _interopRequireDefault(require(\"../../../../shared/icons/icon-bookmark.svg\"));\n\nvar _PrismicHtmlSerializer = _interopRequireDefault(require(\"../../../../htmlSerializer/PrismicHtmlSerializer\"));\n\nvar _helpers = _interopRequireDefault(require(\"../helpers\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar keyPointsListTypeConfig = {\n bookmarked: {\n ListType: 'ul',\n CounterType: _iconBookmark[\"default\"],\n counterClassName: '__bookmark-icon',\n numberedCounter: false\n },\n numbered: {\n ListType: 'ol',\n CounterType: 'span',\n counterClassName: '__item-counter',\n numberedCounter: true\n }\n};\n/* eslint-disable camelcase */\n\nvar KeyPointsListItems = function KeyPointsListItemsComponent(_ref) {\n var sliceLabel = _ref.sliceLabel,\n dataClient = _ref.dataClient,\n keyPointsConfig = _ref.keyPointsConfig,\n items = _ref.items;\n var _keyPointsListTypeCon = keyPointsListTypeConfig[sliceLabel],\n ListType = _keyPointsListTypeCon.ListType,\n CounterType = _keyPointsListTypeCon.CounterType,\n counterClassName = _keyPointsListTypeCon.counterClassName,\n numberedCounter = _keyPointsListTypeCon.numberedCounter;\n var listTypeClassName = (0, _classnames[\"default\"])('key-points-body-list', {\n 'key-points-body-list--bookmark': sliceLabel === 'bookmarked',\n 'key-points-body-list--numbered': sliceLabel === 'numbered'\n });\n return /*#__PURE__*/_react[\"default\"].createElement(ListType, {\n className: listTypeClassName\n }, items.map(function (_ref2, idx) {\n var list_item_type = _ref2.list_item_type,\n key_point_title = _ref2.key_point_title,\n key_point_body = _ref2.key_point_body;\n var isContentBox = list_item_type === 'Content Box';\n var key = null;\n\n if (isContentBox) {\n key = \"content-box-\".concat(idx + 1);\n } else {\n key = dataClient.renderText(key_point_title);\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: key\n }, isContentBox && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points-body__content-box-wrapper\"\n }, !(0, _helpers[\"default\"])(key_point_title) && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points-body__content-box-title\"\n }, dataClient.textToMarkdown(key_point_title)), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"key-points-body__content-box-body\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n content: key_point_body,\n baseClass: \"key-points-body__content-box-body\"\n }))), !isContentBox && /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n className: \"key-points-body-list__item\"\n }, /*#__PURE__*/_react[\"default\"].createElement(CounterType, {\n className: \"key-points-body-list\".concat(counterClassName)\n }, numberedCounter && \"\".concat(idx + 1, \". \")), /*#__PURE__*/_react[\"default\"].createElement(\"h3\", {\n className: \"key-points-body__heading-3\"\n }, dataClient.textToMarkdown(key_point_title)), /*#__PURE__*/_react[\"default\"].createElement(_PrismicHtmlSerializer[\"default\"], {\n content: key_point_body,\n baseClass: \"key-points-body\",\n options: keyPointsConfig\n })));\n }));\n};\n\nKeyPointsListItems.propTypes = {\n sliceLabel: _propTypes[\"default\"].string.isRequired,\n dataClient: _propTypes[\"default\"].shape({\n slice_label: _propTypes[\"default\"].string,\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n primary: _propTypes[\"default\"].shape({\n background_color: _propTypes[\"default\"].string,\n key_points_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n })\n }).isRequired,\n keyPointsConfig: _propTypes[\"default\"].shape({}).isRequired,\n items: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({\n list_item_type: _propTypes[\"default\"].string,\n key_point_title: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})),\n key_point_body: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({}))\n })).isRequired\n};\nvar _default = KeyPointsListItems;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar isEmpty = function isEmpty(contentItem) {\n var emptyTextValues = contentItem.filter(function (item) {\n return item.text.length === 0;\n });\n return emptyTextValues.length > 0;\n};\n\nvar _default = isEmpty;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ImageLinks = _interopRequireDefault(require(\"../ImageLinks/ImageLinks\"));\n\nvar _CTAButton = _interopRequireDefault(require(\"../CTAButton/CTAButton\"));\n\nvar _ContentBox = _interopRequireDefault(require(\"../ContentBox/ContentBox\"));\n\nvar _ComponentTargetID = _interopRequireDefault(require(\"../ComponentTargetID/ComponentTargetID\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar LinkedContentMapper = function LinkedContentMapperFunction(_ref) {\n var linkedContentData = _ref.linkedContentData,\n dataClient = _ref.dataClient;\n\n if (!linkedContentData) {\n return null;\n }\n\n var linkedContentMap = {\n image_links: _ImageLinks[\"default\"],\n cta_button: _CTAButton[\"default\"],\n content_box: _ContentBox[\"default\"],\n component_target_id: _ComponentTargetID[\"default\"]\n };\n var content = linkedContentData.content;\n return Object.keys(content).map(function (sliceType, idx) {\n var Component = linkedContentMap[sliceType];\n var sliceData = content[sliceType];\n var key = \"\".concat(sliceType, \"-\").concat(idx);\n return Component && sliceData.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(Component, {\n key: key,\n sliceData: sliceData,\n dataClient: dataClient\n });\n });\n};\n\nLinkedContentMapper.propTypes = {\n linkedContentData: _propTypes[\"default\"].shape({\n id: _propTypes[\"default\"].string,\n content: _propTypes[\"default\"].shape({})\n }),\n dataClient: _propTypes[\"default\"].shape({}).isRequired\n};\nLinkedContentMapper.defaultProps = {\n linkedContentData: null\n};\nvar _default = LinkedContentMapper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar ProgramHero = function ProgramHeroComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var program_name = pageData.program_name,\n program_icon = pageData.program_icon,\n hero_summary = pageData.hero_summary;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"program-hero-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"se-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"program-hero__row\"\n }, program_icon.url && /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"program-hero__icon-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n className: \"program-hero__icon\",\n src: program_icon.url,\n alt: \"\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"program-hero__info-col\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"h1\", {\n className: \"program-hero__name\"\n }, dataClient.textToMarkdown(program_name)), /*#__PURE__*/_react[\"default\"].createElement(\"hr\", {\n className: \"program-hero__hr\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"p\", {\n className: \"program-hero__summary\"\n }, dataClient.textToMarkdown(hero_summary))))));\n};\n\nProgramHero.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = ProgramHero;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = advancedContentHelper;\n\nfunction advancedContentHelper(sliceData, linkedContent) {\n return linkedContent && sliceData.primary && sliceData.primary.advanced_content && linkedContent.find(function (linkedItem) {\n return linkedItem.id === sliceData.primary.advanced_content.id;\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = normalizeProgram;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar linkedContent = function linkedContent(response) {\n if (response.length === 1) {\n return response[0].data;\n }\n\n var program = response.find(function (item) {\n return item.type === 'program';\n });\n var linkedContent = response.filter(function (item) {\n return item !== program;\n }).map(function (content) {\n return {\n id: content.id,\n type: content.type,\n content: content.data\n };\n });\n return _objectSpread(_objectSpread({}, program.data), {}, {\n linkedContent: linkedContent\n });\n};\n\nfunction normalizeProgram(response) {\n return response && response[0] && linkedContent(response);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = queryProgram;\n\nvar prismic = _interopRequireWildcard(require(\"@prismicio/client\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction queryProgram(siteId, programId) {\n return [prismic.Predicates.any('document.type', ['program', 'advanced_slice_content']), prismic.Predicates.at('document.tags', [siteId, programId])];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ProgramHero = _interopRequireDefault(require(\"../components/ProgramHero/ProgramHero\"));\n\nvar _KeyBenefits = _interopRequireDefault(require(\"../components/KeyBenefits/KeyBenefits\"));\n\nvar _ContactInfo = _interopRequireDefault(require(\"../components/ContactInfo/ContactInfo\"));\n\nvar _BenefitsList = _interopRequireDefault(require(\"../components/BenefitsList/BenefitsList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar BasicTemplate = function BasicTemplateComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var key_benefits = pageData.key_benefits,\n contact_list = pageData.contact_list,\n contact_section_title = pageData.contact_section_title,\n benefits_list = pageData.benefits_list;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(_ProgramHero[\"default\"], {\n dataClient: dataClient,\n pageData: pageData\n }), key_benefits.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(_KeyBenefits[\"default\"], {\n dataClient: dataClient,\n pageData: pageData\n }), benefits_list.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(_BenefitsList[\"default\"], {\n dataClient: dataClient,\n pageData: pageData\n }), contact_list && /*#__PURE__*/_react[\"default\"].createElement(_ContactInfo[\"default\"], {\n contactList: contact_list,\n sectionTitle: contact_section_title,\n dataClient: dataClient\n }));\n};\n\nBasicTemplate.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = BasicTemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ProgramHero = _interopRequireDefault(require(\"../components/ProgramHero/ProgramHero\"));\n\nvar _KeyPoints = _interopRequireDefault(require(\"../components/KeyPoints/KeyPoints\"));\n\nvar _ContactInfo = _interopRequireDefault(require(\"../components/ContactInfo/ContactInfo\"));\n\nvar _InfoList = _interopRequireDefault(require(\"../components/InfoList/InfoList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable camelcase */\nvar DRPETemplate = function DRPETemplateComponent(_ref) {\n var dataClient = _ref.dataClient,\n pageData = _ref.pageData;\n var contact_list = pageData.contact_list,\n contact_section_title = pageData.contact_section_title,\n body = pageData.body,\n linkedContent = pageData.linkedContent;\n var componentMap = {\n key_points: _KeyPoints[\"default\"],\n info_list: _InfoList[\"default\"]\n };\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, /*#__PURE__*/_react[\"default\"].createElement(_ProgramHero[\"default\"], {\n dataClient: dataClient,\n pageData: pageData\n }), body.map(function (sliceData, idx) {\n var slice_type = sliceData.slice_type;\n var Component = componentMap[slice_type];\n var key = \"\".concat(slice_type, \"-\").concat(idx);\n return Component && /*#__PURE__*/_react[\"default\"].createElement(Component, {\n key: key,\n sliceData: sliceData,\n dataClient: dataClient,\n linkedContent: linkedContent\n });\n }), contact_list && contact_list.length > 0 && /*#__PURE__*/_react[\"default\"].createElement(_ContactInfo[\"default\"], {\n contactList: contact_list,\n sectionTitle: contact_section_title,\n dataClient: dataClient\n }));\n};\n\nDRPETemplate.propTypes = {\n dataClient: _propTypes[\"default\"].shape({}).isRequired,\n pageData: _propTypes[\"default\"].shape({}).isRequired\n};\nvar _default = DRPETemplate;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _isEnterOrSpace = _interopRequireDefault(require(\"../../helpers/isEnterOrSpace\"));\n\nvar _animateScroll = _interopRequireDefault(require(\"../../helpers/animateScroll\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar AnchorLink = function AnchorLinkComponent(_ref) {\n var className = _ref.className,\n children = _ref.children,\n href = _ref.href;\n\n var handleAnchorClick = function handleAnchorClick(event) {\n event.preventDefault();\n var targetOffset = document.querySelector(href).offsetTop;\n (0, _animateScroll[\"default\"])(targetOffset);\n };\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"a\", {\n href: href,\n tabIndex: 0,\n rel: \"noopener noreferrer\",\n target: \"_self\",\n className: \"link-wrapper \".concat(className),\n onClick: function onClick(event) {\n return handleAnchorClick(event);\n },\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && handleAnchorClick(event);\n }\n }, children);\n};\n\nAnchorLink.propTypes = {\n className: _propTypes[\"default\"].string.isRequired,\n children: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].element, _propTypes[\"default\"].node, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].element)]).isRequired,\n href: _propTypes[\"default\"].string.isRequired\n};\nvar _default = AnchorLink;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconCheckboxEmpty = _interopRequireDefault(require(\"../../icons/icon-checkbox-empty.svg\"));\n\nvar _iconCheckboxChecked = _interopRequireDefault(require(\"../../icons/icon-checkbox-checked.svg\"));\n\nvar _isEnterOrSpace = _interopRequireDefault(require(\"../../helpers/isEnterOrSpace\"));\n\nvar _CustomReactMarkdown = _interopRequireDefault(require(\"../MarkdownRenderers/CustomReactMarkdown\"));\n\nvar _MarkdownExternalLinkRenderer = _interopRequireDefault(require(\"../MarkdownRenderers/MarkdownExternalLinkRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Checkbox = function CheckboxComponent(_ref) {\n var checked = _ref.checked,\n _onClick = _ref.onClick,\n label = _ref.label,\n markdown = _ref.markdown,\n id = _ref.id,\n name = _ref.name;\n\n var Icon = function Icon(_ref2) {\n var checked = _ref2.checked;\n\n if (checked) {\n return /*#__PURE__*/_react[\"default\"].createElement(_iconCheckboxChecked[\"default\"], {\n className: \"mp-checkbox__icon\"\n });\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_iconCheckboxEmpty[\"default\"], {\n className: \"mp-checkbox__icon icon_empty\"\n });\n };\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"mp-checkbox\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"input\", {\n id: id,\n className: \"mp-checkbox__input\",\n type: \"checkbox\",\n checked: checked,\n name: name,\n onChange: function onChange() {},\n tabIndex: -1\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n role: \"button\",\n className: \"mp-checkbox__container\",\n onClick: function onClick() {\n return _onClick(!checked);\n },\n onKeyPress: function onKeyPress(event) {\n return (0, _isEnterOrSpace[\"default\"])(event) && _onClick(!checked);\n },\n tabIndex: 0\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"mp-checkbox__icon-wrapper\"\n }, /*#__PURE__*/_react[\"default\"].createElement(Icon, {\n checked: checked\n })), label && /*#__PURE__*/_react[\"default\"].createElement(\"label\", {\n htmlFor: id,\n className: \"mp-checkbox__label\"\n }, label), markdown && /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"mp-checkbox__markdown\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"mp-checkbox__hidden-label\"\n }, markdown), /*#__PURE__*/_react[\"default\"].createElement(_CustomReactMarkdown[\"default\"], {\n source: markdown,\n renderers: {\n paragraph: 'span',\n link: _MarkdownExternalLinkRenderer[\"default\"]\n }\n }))));\n};\n\nCheckbox.propTypes = {\n checked: _propTypes[\"default\"].bool.isRequired,\n onClick: _propTypes[\"default\"].func.isRequired,\n label: _propTypes[\"default\"].string,\n markdown: _propTypes[\"default\"].string,\n id: _propTypes[\"default\"].string.isRequired,\n name: _propTypes[\"default\"].string\n};\nCheckbox.defaultProps = {\n label: undefined,\n markdown: undefined,\n name: ''\n};\nvar _default = Checkbox;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _getYouTubeUrl = _interopRequireDefault(require(\"./helpers/getYouTubeUrl\"));\n\nvar _getVimeoUrl = _interopRequireDefault(require(\"./helpers/getVimeoUrl\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar EmbeddedVideo = function EmbeddedVideoComponent(_ref) {\n var providerName = _ref.providerName,\n url = _ref.url,\n title = _ref.title;\n var videoUrl;\n\n if (providerName === 'YouTube') {\n videoUrl = (0, _getYouTubeUrl[\"default\"])(url);\n } else if (providerName === 'Vimeo') {\n videoUrl = (0, _getVimeoUrl[\"default\"])(url);\n }\n\n return videoUrl && /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n height: \"100%\",\n width: \"100%\",\n title: title,\n src: videoUrl,\n allowFullScreen: true,\n frameBorder: \"0\",\n allow: \"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n });\n};\n\nEmbeddedVideo.propTypes = {\n providerName: _propTypes[\"default\"].string.isRequired,\n url: _propTypes[\"default\"].string.isRequired\n};\nvar _default = EmbeddedVideo;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getVimeoUrl;\n\nfunction getVimeoUrl(url) {\n var match = url.match(/vimeo.com\\/(\\w+$)/);\n var videoId = match && match[1];\n return videoId && \"https://player.vimeo.com/video/\".concat(videoId);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getYouTubeUrl;\n\nfunction getYouTubeUrl(url) {\n var longOrShareUrl = /(?:https?:\\/{2})?(?:w{3}\\.)?youtu(?:be)?\\.(?:com|be)(?:\\/watch\\?v=|\\/)([^\\s&]+)/;\n var match = url.match(longOrShareUrl);\n var videoId = match && match[1];\n return videoId && \"https://youtube.com/embed/\".concat(videoId);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconError = _interopRequireDefault(require(\"../../icons/icon-error.svg\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ErrorMessage = function ErrorMessageComponent(_ref) {\n var message = _ref.message;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"error-container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(_iconError[\"default\"], {\n className: \"error-container__icon\"\n }), message);\n};\n\nErrorMessage.propTypes = {\n message: _propTypes[\"default\"].string.isRequired\n};\nvar _default = ErrorMessage;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _isEnterOrSpace = _interopRequireDefault(require(\"../../helpers/isEnterOrSpace\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Link = function LinkComponent(_ref) {\n var href = _ref.href,\n children = _ref.children,\n className = _ref.className,\n external = _ref.external,\n track = _ref.track;\n\n var trackEvent = function trackEvent(event) {\n event.preventDefault();\n track();\n\n if (external) {\n return window.open(href);\n }\n\n return window.location.assign(href);\n };\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"a\", {\n href: href,\n tabIndex: 0,\n rel: \"noopener noreferrer\",\n target: external ? '_blank' : '_self',\n className: \"link-wrapper \".concat(className),\n onClick: function onClick(event) {\n return track && trackEvent(event);\n },\n onKeyPress: function onKeyPress(event) {\n return track && (0, _isEnterOrSpace[\"default\"])(event) && trackEvent(event);\n }\n }, children);\n};\n\nLink.propTypes = {\n href: _propTypes[\"default\"].string.isRequired,\n children: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].element, _propTypes[\"default\"].node, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].element)]).isRequired,\n external: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string,\n track: _propTypes[\"default\"].func\n};\nLink.defaultProps = {\n className: '',\n external: false,\n track: undefined\n};\nvar _default = Link;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactMarkdown = _interopRequireDefault(require(\"react-markdown\"));\n\nvar _remarkShortcode = _interopRequireDefault(require(\"@uplight/remark-shortcode\"));\n\nvar _remarkSubSup = _interopRequireDefault(require(\"@uplight/remark-sub-sup\"));\n\nvar _MarkdownLinkRenderer = _interopRequireDefault(require(\"./MarkdownLinkRenderer\"));\n\nvar _MarketplaceShortcodes = _interopRequireDefault(require(\"./MarketplaceShortcodes\"));\n\nvar _fragmentWrapperRenderer = _interopRequireDefault(require(\"./fragmentWrapperRenderer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CustomReactMarkdown = function CustomReactMarkdownComponent(_ref) {\n var className = _ref.className,\n source = _ref.source,\n renderers = _ref.renderers,\n tooltip = _ref.tooltip,\n noWrapper = _ref.noWrapper;\n var renderersCopy = renderers;\n\n if (noWrapper) {\n renderersCopy = _objectSpread(_objectSpread({}, _fragmentWrapperRenderer[\"default\"]), renderers);\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_reactMarkdown[\"default\"], {\n className: \"custom-react-markdown\".concat(className ? \" \".concat(className) : ''),\n source: source,\n plugins: [_remarkShortcode[\"default\"], _remarkSubSup[\"default\"]],\n renderers: _objectSpread({\n link: _MarkdownLinkRenderer[\"default\"],\n shortcode: function shortcode(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(_MarketplaceShortcodes[\"default\"], _extends({}, props, {\n tooltip: tooltip\n }));\n },\n sub: 'sub',\n sup: 'sup'\n }, renderersCopy)\n });\n};\n\nCustomReactMarkdown.propTypes = {\n className: _propTypes[\"default\"].string,\n source: _propTypes[\"default\"].string.isRequired,\n renderers: _propTypes[\"default\"].shape({}),\n tooltip: _propTypes[\"default\"].shape({}),\n noWrapper: _propTypes[\"default\"].bool\n};\nCustomReactMarkdown.defaultProps = {\n className: null,\n renderers: {},\n tooltip: null,\n noWrapper: false\n};\nvar _default = CustomReactMarkdown;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Link = _interopRequireDefault(require(\"../Link/Link\"));\n\nvar _iconExternalLink = _interopRequireDefault(require(\"../../icons/icon-external-link.svg\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar LinkRenderer = function LinkRendererComponent(_ref) {\n var href = _ref.href,\n children = _ref.children;\n var cleanHref = href;\n var forceNewTab = RegExp('{openNewTab}').test(cleanHref);\n\n if (forceNewTab) {\n cleanHref = href.replace('{openNewTab}', '');\n }\n\n var hasNoBase = RegExp('^/').test(cleanHref);\n var isHostUrl = RegExp(window.location.host).test(cleanHref);\n var openNewTab = forceNewTab || !(hasNoBase || isHostUrl);\n return /*#__PURE__*/_react[\"default\"].createElement(_Link[\"default\"], {\n className: \"custom-react-markdown__external-link\",\n href: cleanHref,\n external: openNewTab\n }, children, \"\\xA0\", /*#__PURE__*/_react[\"default\"].createElement(_iconExternalLink[\"default\"], {\n className: \"custom-react-markdown__external-link-icon\"\n }));\n};\n\nLinkRenderer.propTypes = {\n href: _propTypes[\"default\"].string.isRequired,\n children: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].element, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].element)]).isRequired\n};\nvar _default = LinkRenderer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Link = _interopRequireDefault(require(\"../Link/Link\"));\n\nvar _AnchorLink = _interopRequireDefault(require(\"../AnchorLink/AnchorLink\"));\n\nvar _linkHelper2 = _interopRequireDefault(require(\"../../helpers/linkHelper\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar LinkRenderer = function LinkRendererComponent(_ref) {\n var href = _ref.href,\n children = _ref.children,\n className = _ref.className,\n external = _ref.external;\n\n var _linkHelper = (0, _linkHelper2[\"default\"])(href, external),\n cleanHref = _linkHelper.cleanHref,\n openNewTab = _linkHelper.openNewTab,\n scrollToElement = _linkHelper.scrollToElement;\n\n var LinkType = scrollToElement ? _AnchorLink[\"default\"] : _Link[\"default\"];\n return /*#__PURE__*/_react[\"default\"].createElement(LinkType, {\n className: className,\n href: cleanHref,\n external: openNewTab\n }, children);\n};\n\nLinkRenderer.propTypes = {\n href: _propTypes[\"default\"].string.isRequired,\n children: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].element, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].element)]).isRequired,\n className: _propTypes[\"default\"].string,\n external: _propTypes[\"default\"].bool\n};\nLinkRenderer.defaultProps = {\n className: '',\n external: false\n};\nvar _default = LinkRenderer;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _MarketplaceTooltip = _interopRequireDefault(require(\"../MarketplaceTooltip/MarketplaceTooltip\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable import/no-cycle */\nvar MarketplaceShortcodes = function MarketplaceShortcodesFunction(_ref) {\n var identifier = _ref.identifier,\n attributes = _ref.attributes,\n tooltip = _ref.tooltip;\n\n switch (identifier) {\n case 'MarkdownTooltip':\n return /*#__PURE__*/_react[\"default\"].createElement(_MarketplaceTooltip[\"default\"], {\n display: true,\n hideIcon: true,\n title: attributes.title,\n message: tooltip.message,\n styleFlag: \"inline\"\n });\n\n default:\n return null;\n }\n};\n\nMarketplaceShortcodes.propTypes = {\n identifier: _propTypes[\"default\"].string.isRequired,\n attributes: _propTypes[\"default\"].shape({}).isRequired,\n tooltip: _propTypes[\"default\"].shape({})\n};\nMarketplaceShortcodes.defaultProps = {\n tooltip: undefined\n};\nvar _default = MarketplaceShortcodes;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar propTypes = {\n children: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].shape({})).isRequired\n};\nvar fragmentRenderer = {\n root: function root(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, children);\n },\n paragraph: function paragraph(_ref2) {\n var children = _ref2.children;\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, children);\n }\n};\nfragmentRenderer.root.propTypes = propTypes;\nfragmentRenderer.paragraph.propTypes = propTypes;\nvar _default = fragmentRenderer;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _iconInfo = _interopRequireDefault(require(\"../../icons/icon-info.svg\"));\n\nvar _TooltipHOC = _interopRequireDefault(require(\"../TooltipHOC/TooltipHOC\"));\n\nvar _CustomReactMarkdown = _interopRequireDefault(require(\"../MarkdownRenderers/CustomReactMarkdown\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar MarketplaceTooltip = /*#__PURE__*/function (_Component) {\n _inherits(MarketplaceTooltip, _Component);\n\n var _super = _createSuper(MarketplaceTooltip);\n\n function MarketplaceTooltip(props) {\n var _this;\n\n _classCallCheck(this, MarketplaceTooltip);\n\n _this = _super.call(this, props);\n\n if (props.hideIcon) {\n props.setConfig({\n iconDimensions: 0,\n alignMsg: 'left'\n });\n } else {\n props.setConfig({\n iconDimensions: 16,\n alignMsg: 'right'\n });\n }\n\n return _this;\n }\n\n _createClass(MarketplaceTooltip, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n message = _this$props.message,\n display = _this$props.display,\n hideIcon = _this$props.hideIcon,\n styleFlag = _this$props.styleFlag,\n renderMsgBlock = _this$props.renderMsgBlock;\n\n if (!display) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"marketplace-tooltip__header marketplace-tooltip__header--\".concat(styleFlag)\n }, /*#__PURE__*/_react[\"default\"].createElement(_CustomReactMarkdown[\"default\"], {\n source: title,\n noWrapper: true\n }), !hideIcon && /*#__PURE__*/_react[\"default\"].createElement(_iconInfo[\"default\"], {\n className: \"marketplace-tooltip__info-icon marketplace-tooltip__info-icon--\".concat(styleFlag)\n }), renderMsgBlock( /*#__PURE__*/_react[\"default\"].createElement(_CustomReactMarkdown[\"default\"], {\n source: message,\n className: \"marketplace-tooltip__msg-block marketplace-tooltip__msg-block--\".concat(styleFlag)\n })));\n }\n }]);\n\n return MarketplaceTooltip;\n}(_react.Component);\n\nMarketplaceTooltip.propTypes = {\n title: _propTypes[\"default\"].string.isRequired,\n setConfig: _propTypes[\"default\"].func.isRequired,\n styleFlag: _propTypes[\"default\"].string.isRequired,\n renderMsgBlock: _propTypes[\"default\"].func.isRequired,\n display: _propTypes[\"default\"].bool,\n hideIcon: _propTypes[\"default\"].bool,\n message: _propTypes[\"default\"].string\n};\nMarketplaceTooltip.defaultProps = {\n message: '',\n display: true,\n hideIcon: false\n};\n\nvar _default = (0, _TooltipHOC[\"default\"])(MarketplaceTooltip);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar TooltipHOC = function TooltipHOComponent(WrappedComponent) {\n var TooltipHOC = /*#__PURE__*/function (_Component) {\n _inherits(TooltipHOC, _Component);\n\n var _super = _createSuper(TooltipHOC);\n\n function TooltipHOC(props) {\n var _this;\n\n _classCallCheck(this, TooltipHOC);\n\n _this = _super.call(this, props);\n _this.msgRef = /*#__PURE__*/_react[\"default\"].createRef();\n _this.tooltipPositionRef = /*#__PURE__*/_react[\"default\"].createRef();\n _this.config = {\n msgPadding: 20,\n iconDimensions: 0,\n alignMsg: 'left'\n };\n _this.setConfig = _this.setConfig.bind(_assertThisInitialized(_this));\n _this.toggleTooltip = _this.toggleTooltip.bind(_assertThisInitialized(_this));\n _this.renderMsgBlock = _this.renderMsgBlock.bind(_assertThisInitialized(_this));\n _this.handleOutsideClick = _this.handleOutsideClick.bind(_assertThisInitialized(_this));\n _this.handleOutsideKeyPress = _this.handleOutsideKeyPress.bind(_assertThisInitialized(_this));\n _this.state = {\n showTooltip: false,\n position: {},\n shiftLeft: {\n left: 0\n }\n };\n return _this;\n }\n\n _createClass(TooltipHOC, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var showTooltip = this.state.showTooltip;\n\n if (prevState.showTooltip !== showTooltip) {\n this.positionMsgInWindow();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.handleEventListeners(false);\n }\n }, {\n key: \"setConfig\",\n value: function setConfig(config) {\n this.config = _objectSpread(_objectSpread({}, this.config), config);\n }\n }, {\n key: \"getTooltipPosition\",\n value: function getTooltipPosition() {\n var shiftCoefficient = 1.5;\n var _this$config = this.config,\n alignMsg = _this$config.alignMsg,\n iconDimensions = _this$config.iconDimensions;\n var rect = this.tooltipPositionRef.current.getBoundingClientRect();\n var offsetTop = this.tooltipPositionRef.current.offsetTop;\n var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n return {\n rightEdgePosition: rect.left + scrollLeft,\n left: rect[alignMsg] + scrollLeft - iconDimensions * shiftCoefficient,\n top: offsetTop + rect.height\n };\n }\n }, {\n key: \"toggleTooltip\",\n value: function toggleTooltip(show) {\n var showTooltip = this.state.showTooltip;\n\n if (show !== showTooltip) {\n if (show) {\n var position = this.getTooltipPosition();\n\n if (position.rightEdgePosition <= document.documentElement.clientWidth) {\n this.handleEventListeners(true);\n this.setState({\n showTooltip: true,\n position: position\n });\n }\n } else {\n this.handleEventListeners(false);\n this.setState({\n showTooltip: false\n });\n }\n }\n }\n }, {\n key: \"handleEventListeners\",\n value: function handleEventListeners(tooltipOpen) {\n if (tooltipOpen) {\n window.addEventListener('keyup', this.handleOutsideKeyPress);\n window.addEventListener('click', this.handleOutsideClick);\n window.addEventListener('touchstart', this.handleOutsideClick);\n } else {\n window.removeEventListener('keyup', this.handleOutsideKeyPress);\n window.removeEventListener('click', this.handleOutsideClick);\n window.removeEventListener('touchstart', this.handleOutsideClick);\n }\n }\n }, {\n key: \"handleOutsideClick\",\n value: function handleOutsideClick() {\n this.toggleTooltip(false);\n }\n }, {\n key: \"handleOutsideKeyPress\",\n value: function handleOutsideKeyPress(_ref) {\n var target = _ref.target;\n var showTooltip = false;\n\n if (this.tooltipPositionRef.current) {\n showTooltip = this.tooltipPositionRef.current.contains(target);\n }\n\n this.toggleTooltip(showTooltip);\n }\n }, {\n key: \"positionMsgInWindow\",\n value: function positionMsgInWindow() {\n var xPosition = this.msgRef.current.getBoundingClientRect().right;\n var windowWidth = document.documentElement.clientWidth;\n var rightEdgePosition = this.config.msgPadding + xPosition;\n var shift = rightEdgePosition > windowWidth ? windowWidth - rightEdgePosition : 0;\n this.setState({\n shiftLeft: {\n left: \"\".concat(shift, \"px\")\n }\n });\n }\n }, {\n key: \"renderMsgBlock\",\n value: function renderMsgBlock(msgBlock) {\n var styleFlag = this.props.styleFlag;\n var _this$state = this.state,\n showTooltip = _this$state.showTooltip,\n shiftLeft = _this$state.shiftLeft,\n position = _this$state.position;\n var showTooltipClass = (0, _classnames[\"default\"])('marketplace-tooltip__msg', {\n 'marketplace-tooltip__msg--visible': showTooltip\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"tooltip--\".concat(styleFlag)\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: showTooltipClass,\n style: position\n }, /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"marketplace-tooltip__marker\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n ref: this.msgRef,\n style: shiftLeft,\n className: \"marketplace-tooltip__msg-container\"\n }, msgBlock)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"span\", {\n className: \"marketplace-tooltip\",\n role: \"button\",\n tabIndex: 0,\n ref: this.tooltipPositionRef,\n onKeyPress: function onKeyPress() {},\n onFocus: function onFocus() {\n return _this2.toggleTooltip(true);\n },\n onMouseOver: function onMouseOver() {\n return _this2.toggleTooltip(true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this2.toggleTooltip(false);\n },\n onTouchEnd: function onTouchEnd() {\n return _this2.toggleTooltip(true);\n },\n onClick: function onClick(event) {\n return event.stopPropagation();\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(WrappedComponent, _extends({}, this.props, {\n state: this.state,\n setConfig: this.setConfig,\n renderMsgBlock: this.renderMsgBlock,\n toggleTooltip: this.toggleTooltip\n })));\n }\n }]);\n\n return TooltipHOC;\n }(_react.Component);\n\n TooltipHOC.propTypes = {\n styleFlag: _propTypes[\"default\"].string\n };\n TooltipHOC.defaultProps = {\n styleFlag: 'tax'\n };\n return TooltipHOC;\n};\n\nvar _default = TooltipHOC;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar MediaQueryListener = /*#__PURE__*/function () {\n function MediaQueryListener(eventListener) {\n _classCallCheck(this, MediaQueryListener);\n\n this.debounce = 66;\n this.timeout = false;\n this.eventListener = eventListener;\n this.breakPointMap = {\n mobile: {\n display: 'mobile',\n value: 0\n },\n tablet: {\n display: 'tablet',\n value: 1\n },\n desktop: {\n display: 'desktop',\n value: 2\n },\n 'xl-display': {\n display: 'xl-display',\n value: 3\n }\n };\n this.atMinWidth = this.atMinWidth.bind(this);\n this.atMaxWidth = this.atMaxWidth.bind(this);\n this.getBreakPoint = this.getBreakPoint.bind(this);\n this.emitResizeEvent = this.emitResizeEvent.bind(this);\n this.init();\n }\n\n _createClass(MediaQueryListener, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n this.setResizeEvent();\n setTimeout(function () {\n _this.breakPoint = _this.getBreakPoint();\n\n if (_this.breakPoint) {\n _this.setResizeEventListener();\n }\n }, this.debounce);\n }\n }, {\n key: \"getBreakPoint\",\n value: function getBreakPoint() {\n var breakPoint = window.getComputedStyle(document.body, ':before').content.replace(/\"/g, '');\n return this.breakPointMap[breakPoint];\n }\n }, {\n key: \"atMaxWidth\",\n value: function atMaxWidth(view) {\n if (this.breakPoint) {\n var value = this.breakPoint.value;\n var threshold = this.breakPointMap[view];\n\n if (threshold && threshold.display) {\n return value <= threshold.value;\n }\n }\n\n return false;\n }\n }, {\n key: \"atMinWidth\",\n value: function atMinWidth(view) {\n if (this.breakPoint) {\n var value = this.breakPoint.value;\n var threshold = this.breakPointMap[view];\n\n if (threshold && threshold.display) {\n return value >= threshold.value;\n }\n }\n\n return false;\n }\n }, {\n key: \"setResizeEventListener\",\n value: function setResizeEventListener() {\n var _this2 = this;\n\n this.eventListener(this.breakPoint);\n window.addEventListener('windowResize', function (_ref) {\n var detail = _ref.detail;\n return _this2.eventListener(detail);\n });\n }\n }, {\n key: \"setResizeEvent\",\n value: function setResizeEvent() {\n var _this3 = this;\n\n if (!window.resizeEvent) {\n window.resizeEvent = function () {\n clearTimeout(_this3.timeout);\n _this3.timeout = setTimeout(_this3.emitResizeEvent, _this3.debounce);\n };\n\n window.addEventListener('resize', window.resizeEvent);\n }\n }\n }, {\n key: \"emitResizeEvent\",\n value: function emitResizeEvent() {\n var currentBreakPoint = this.getBreakPoint();\n\n if (currentBreakPoint.value !== this.breakPoint.value) {\n this.breakPoint = currentBreakPoint;\n window.dispatchEvent(new CustomEvent('windowResize', {\n detail: this.breakPoint\n }));\n }\n }\n }]);\n\n return MediaQueryListener;\n}();\n\nvar _default = MediaQueryListener;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar scrollConditions = {\n up: {\n scrollStepPx: 20,\n stopCondition: function stopCondition(currentOffset, targetOffset) {\n return currentOffset <= targetOffset;\n }\n },\n down: {\n scrollStepPx: -20,\n stopCondition: function stopCondition(currentOffset, targetOffset) {\n return targetOffset - currentOffset <= 0;\n }\n }\n};\n\nvar animateScroll = function animateScrollHelper(targetOffset) {\n var currentOffset = window.pageYOffset;\n var _int = null;\n var scrollSpeed = 5;\n var scrollDirection;\n\n if (currentOffset > targetOffset) {\n scrollDirection = 'up';\n }\n\n if (currentOffset < targetOffset) {\n scrollDirection = 'down';\n }\n\n if (currentOffset === targetOffset) {\n return;\n }\n\n var _scrollConditions$scr = scrollConditions[scrollDirection],\n scrollStepPx = _scrollConditions$scr.scrollStepPx,\n stopCondition = _scrollConditions$scr.stopCondition;\n _int = setInterval(function () {\n currentOffset -= scrollStepPx;\n window.scrollTo(0, currentOffset);\n\n if (stopCondition(currentOffset, targetOffset)) {\n clearInterval(_int);\n }\n }, scrollSpeed);\n};\n\nvar _default = animateScroll;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar isEnterOrSpace = function isEnterOrSpace(_ref) {\n var key = _ref.key;\n return key === 'Enter' || key === ' ';\n};\n\nvar _default = isEnterOrSpace;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar linkHelper = function linkHelperFunction(href, external) {\n var cleanHref = href;\n var scrollToElement = RegExp('{scrollTo}').test(href);\n var forceNewTab = RegExp('{openNewTab}').test(href);\n var relativeUrl = RegExp('https://{relative}').test(href);\n var openNewTab = false;\n\n if (scrollToElement) {\n cleanHref = href.replace('https://{scrollTo}', '');\n openNewTab = false;\n }\n\n if (forceNewTab || external) {\n cleanHref = href.replace('{openNewTab}', '');\n openNewTab = true;\n }\n\n if (relativeUrl) {\n cleanHref = href.replace('https://{relative}', '');\n openNewTab = false;\n }\n\n return {\n cleanHref: cleanHref,\n openNewTab: openNewTab,\n scrollToElement: scrollToElement\n };\n};\n\nvar _default = linkHelper;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.slicesToJsx = exports.nestSlices = exports.getSliceGroupsError = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar contentGroupRoleModifiersMap = {\n Columns: 'columns'\n};\nvar sliceTypeGroupStart = 'content_group_start';\nvar sliceTypeGroupEnd = 'content_group_end';\n\nvar getSliceGroupsError = function getSliceGroupsError(slices) {\n var sliceCount = slices.length;\n var depth = 0;\n\n for (var i = 0; i < sliceCount; i++) {\n if (slices[i].slice_type === sliceTypeGroupStart) {\n depth += 1;\n } else if (slices[i].slice_type === sliceTypeGroupEnd) {\n depth -= 1;\n }\n\n if (depth < 0) {\n return 'Unexpected [Content Group End] slice: Review Prismic slices configuration to ensure pairing of Content Group Start and Content Group End instances';\n }\n }\n\n if (depth > 0) {\n return '[Content Group Start] and [Content Group End] mismatch: One or more Content Group End slices are missing. Review Prismic slices configuration';\n }\n\n return null;\n};\n\nexports.getSliceGroupsError = getSliceGroupsError;\n\nvar nestSlices = function nestSlices(slices) {\n var _sliceHandlers;\n\n var sliceHandlers = (_sliceHandlers = {\n \"default\": function _default(slice, depth) {\n depth.at(-1).children.push(slice);\n }\n }, _defineProperty(_sliceHandlers, sliceTypeGroupStart, function (slice, depth) {\n var child = {\n children: [],\n id: slice.id\n };\n\n if (slice.primary) {\n child.key = slice.primary.key;\n child.role = slice.primary.role;\n }\n\n depth.at(-1).children.push(child);\n depth.push(child);\n }), _defineProperty(_sliceHandlers, sliceTypeGroupEnd, function (_slice, depth) {\n var isRoot = depth.length === 1;\n\n if (!isRoot) {\n depth.pop();\n }\n }), _sliceHandlers);\n var rootGroup = [{\n children: []\n }];\n var nestedSlices = slices.reduce(function (depth, slice) {\n var sliceHandler = sliceHandlers[slice.slice_type] || sliceHandlers[\"default\"];\n sliceHandler(slice, depth);\n return depth;\n }, rootGroup);\n return nestedSlices[0].children;\n};\n\nexports.nestSlices = nestSlices;\n\nvar generateSliceGroupClasses = function generateSliceGroupClasses(item) {\n var base = 'slice-group';\n var content = \"\".concat(base, \"__content\");\n var modifier = contentGroupRoleModifiersMap[item.role];\n var classNames = ['se-container', base];\n var classNamesContent = [content];\n\n if (modifier) {\n classNames.push(\"\".concat(base, \"--\").concat(modifier));\n classNamesContent.push(\"\".concat(content, \"--\").concat(modifier));\n }\n\n if (item.key) {\n classNames.push(\"\".concat(base, \"--\").concat(item.key));\n classNamesContent.push(\"\".concat(content, \"--\").concat(item.key));\n }\n\n return {\n className: classNames.join(' '),\n classNameContent: classNamesContent.join(' ')\n };\n};\n\nvar slicesToJsx = function slicesToJsx(array, componentMap, props) {\n return array.reduce(function (result, item) {\n var isContentGroup = item.id && item.children;\n var Component = componentMap[item.slice_type];\n\n if (isContentGroup) {\n var _generateSliceGroupCl = generateSliceGroupClasses(item),\n className = _generateSliceGroupCl.className,\n classNameContent = _generateSliceGroupCl.classNameContent;\n\n result.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: item.id,\n className: className\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: classNameContent\n }, slicesToJsx(item.children, componentMap, props))));\n } else if (Component) {\n result.push( /*#__PURE__*/_react[\"default\"].createElement(Component, _extends({\n sliceData: item,\n key: item.id\n }, props)));\n }\n\n return result;\n }, []);\n};\n\nexports.slicesToJsx = slicesToJsx;\nvar _default2 = {\n getSliceGroupsError: getSliceGroupsError,\n nestSlices: nestSlices,\n slicesToJsx: slicesToJsx\n};\nexports[\"default\"] = _default2;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _unistUtilVisit = _interopRequireDefault(require(\"unist-util-visit\"));\n\nvar _Matcher2 = _interopRequireDefault(require(\"./lib/Matcher\"));\n\n/* eslint-disable no-param-reassign */\nvar transformer = function transformTree(tree) {\n var transform = function transformNode(node, parent) {\n var children = node.children;\n\n if (children) {\n for (var i = 0; i < children.length; i += 1) {\n transform(children[i], node);\n }\n\n return;\n }\n\n var value = node.value;\n\n var _Matcher = new _Matcher2[\"default\"](value),\n shortcodes = _Matcher.shortcodes;\n\n if (shortcodes.length) {\n var _children = [];\n\n for (var _i = 0; _i < shortcodes.length; _i += 1) {\n var _shortcodes$_i = shortcodes[_i],\n type = _shortcodes$_i.type,\n identifier = _shortcodes$_i.identifier,\n attributes = _shortcodes$_i.attributes,\n start = _shortcodes$_i.start,\n end = _shortcodes$_i.end;\n\n _children.push({\n type: 'text',\n value: value.substring(0, start)\n });\n\n _children.push({\n type: type,\n identifier: identifier,\n attributes: attributes\n });\n\n _children.push({\n type: 'text',\n value: value.substring(end + 1)\n });\n\n parent.children = _children;\n }\n }\n };\n\n (0, _unistUtilVisit[\"default\"])(tree, 'root', function (node) {\n transform(node);\n });\n};\n\nvar remarkSubSup = function remarkSubSupPlugin() {\n return transformer;\n};\n\nvar _default = remarkSubSup;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _Shortcode = _interopRequireDefault(require(\"./Shortcode\"));\n\nvar Matcher = /*#__PURE__*/function () {\n function Matcher(text) {\n (0, _classCallCheck2[\"default\"])(this, Matcher);\n this.text = text || '';\n this.shortcodes = [];\n this.currentOpen = null;\n this.braces = ['[[', ']]'];\n this.find();\n }\n\n (0, _createClass2[\"default\"])(Matcher, [{\n key: \"find\",\n value: function find() {\n for (var i = 0; i < this.text.length; i += 1) {\n var current = this.text[i] + this.text[i + 1];\n var match = current === this.braces[0] || current === this.braces[1];\n\n if (match) {\n if (this.currentOpen === null) {\n this.currentOpen = i;\n } else {\n this.shortcodes.push(new _Shortcode[\"default\"](this.currentOpen, i + 1, this.text.substring(this.currentOpen + 2, i)));\n this.currentOpen = null;\n }\n }\n }\n }\n }]);\n return Matcher;\n}();\n\nvar _default = Matcher;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _clean = _interopRequireDefault(require(\"./clean\"));\n\nvar Shortcode = /*#__PURE__*/function () {\n function Shortcode(start, end, text) {\n (0, _classCallCheck2[\"default\"])(this, Shortcode);\n this.text = text.trim();\n this.start = start;\n this.end = end;\n this.type = 'shortcode';\n this.identifier = this.setIdentifier();\n this.attributes = this.setAttributes();\n }\n\n (0, _createClass2[\"default\"])(Shortcode, [{\n key: \"setIdentifier\",\n value: function setIdentifier() {\n var _this$text$split = this.text.split(' '),\n _this$text$split2 = (0, _slicedToArray2[\"default\"])(_this$text$split, 1),\n identifier = _this$text$split2[0];\n\n return identifier;\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes() {\n var attributes = {};\n var attrs = this.text.trim().match(/(?:[\\w-]*=\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')|[^}\\s]+))/g);\n\n if (attrs) {\n for (var i = 0; i < attrs.length; i += 1) {\n var _attrs$i$split = attrs[i].split('='),\n _attrs$i$split2 = (0, _slicedToArray2[\"default\"])(_attrs$i$split, 2),\n key = _attrs$i$split2[0],\n value = _attrs$i$split2[1];\n\n attributes[(0, _clean[\"default\"])(key)] = (0, _clean[\"default\"])(value);\n }\n }\n\n return attributes;\n }\n }]);\n return Shortcode;\n}();\n\nvar _default = Shortcode;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar clean = function cleanValues(text) {\n return text.replace(/^(\"|')|(\"|')$/g, '');\n};\n\nvar _default = clean;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _unistUtilVisit = _interopRequireDefault(require(\"unist-util-visit\"));\n\nvar _Matcher2 = _interopRequireDefault(require(\"./lib/Matcher\"));\n\n/* eslint-disable no-param-reassign */\nvar transformer = function transformTree(tree) {\n var transform = function transformNode(node, parent) {\n var children = node.children;\n\n if (children) {\n for (var i = 0; i < children.length; i += 1) {\n transform(children[i], node);\n }\n\n return;\n }\n\n var value = node.value;\n\n var _Matcher = new _Matcher2[\"default\"](node.value),\n matches = _Matcher.matches;\n\n if (matches.length) {\n var _children = [];\n\n for (var _i = 0; _i < matches.length; _i += 1) {\n var match = matches[_i];\n\n _children.push({\n type: 'text',\n value: value.substring(0, match.start)\n });\n\n _children.push({\n type: match.tag,\n children: [{\n type: 'text',\n value: value.substring(match.start + 1, match.end)\n }]\n });\n\n _children.push({\n type: 'text',\n value: value.substring(match.end + 1)\n });\n\n parent.children = _children;\n }\n }\n };\n\n (0, _unistUtilVisit[\"default\"])(tree, 'root', function (node) {\n transform(node);\n });\n};\n\nvar remarkSubSup = function remarkSubSupPlugin() {\n return transformer;\n};\n\nvar _default = remarkSubSup;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar Match = function Match(start, end, tag) {\n (0, _classCallCheck2[\"default\"])(this, Match);\n this.start = start;\n this.end = end;\n this.tag = tag;\n};\n\nvar _default = Match;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _Match = _interopRequireDefault(require(\"./Match\"));\n\nvar Matcher = /*#__PURE__*/function () {\n function Matcher(text) {\n (0, _classCallCheck2[\"default\"])(this, Matcher);\n this.text = text || '';\n this.matches = [];\n this.currentMark = '';\n this.currentStart = 0;\n this.markers = {\n '~': 'sub',\n '^': 'sup'\n };\n this.find();\n }\n\n (0, _createClass2[\"default\"])(Matcher, [{\n key: \"find\",\n value: function find() {\n for (var i = 0; i < this.text.length; i += 1) {\n var match = this.markers[this.text[i]];\n\n if (match) {\n if (this.currentMark === this.text[i]) {\n this.matches.push(new _Match[\"default\"](this.currentStart, i, this.markers[this.currentMark]));\n this.reset();\n } else {\n this.currentMark = this.text[i];\n this.currentStart = i;\n }\n }\n }\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.currentMark = '';\n this.currentStart = 0;\n }\n }]);\n return Matcher;\n}();\n\nvar _default = Matcher;\nexports[\"default\"] = _default;","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\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\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(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { 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;\n","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0, i, n;\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var tree = {type: 'root', children: []}\n var stack = [tree]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// This module is copied from .\nvar basics = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from .\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n} // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\n\n// Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\nmodule.exports = createTokenizer\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","\"use strict\";\n\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","import PropTypes from 'prop-types';\n\nexport var subscriptionShape = PropTypes.shape({\n trySubscribe: PropTypes.func.isRequired,\n tryUnsubscribe: PropTypes.func.isRequired,\n notifyNestedSubs: PropTypes.func.isRequired,\n isSubscribed: PropTypes.func.isRequired\n});\n\nexport var storeShape = PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n});","function _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\nimport { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\nimport warning from '../utils/warning';\n\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n warning(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nexport function createProvider() {\n var _Provider$childContex;\n\n var storeKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'store';\n var subKey = arguments[1];\n\n var subscriptionKey = subKey || storeKey + 'Subscription';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[storeKey] = this[storeKey], _ref[subscriptionKey] = null, _ref;\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this[storeKey] = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return Children.only(this.props.children);\n };\n\n return Provider;\n }(Component);\n\n if (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n if (this[storeKey] !== nextProps.store) {\n warnAboutReceivingStore();\n }\n };\n }\n\n Provider.propTypes = {\n store: storeShape.isRequired,\n children: PropTypes.element.isRequired\n };\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[storeKey] = storeShape.isRequired, _Provider$childContex[subscriptionKey] = subscriptionShape, _Provider$childContex);\n\n return Provider;\n}\n\nexport default createProvider();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n var current = [];\n var next = [];\n\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n },\n get: function get() {\n return next;\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription = function () {\n function Subscription(store, parentSub, onStateChange) {\n _classCallCheck(this, Subscription);\n\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n }\n\n Subscription.prototype.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n Subscription.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n Subscription.prototype.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n\n this.listeners = createListenerCollection();\n }\n };\n\n Subscription.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","var _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\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\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\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport { Component, createElement } from 'react';\n\nimport Subscription from '../utils/Subscription';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\n\nvar hotReloadingVersion = 0;\nvar dummyState = {};\nfunction noop() {}\nfunction makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (error) {\n selector.shouldComponentUpdate = true;\n selector.error = error;\n }\n }\n };\n\n return selector;\n}\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory) {\n var _contextTypes, _childContextTypes;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$getDisplayName = _ref.getDisplayName,\n getDisplayName = _ref$getDisplayName === undefined ? function (name) {\n return 'ConnectAdvanced(' + name + ')';\n } : _ref$getDisplayName,\n _ref$methodName = _ref.methodName,\n methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName,\n _ref$renderCountProp = _ref.renderCountProp,\n renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp,\n _ref$shouldHandleStat = _ref.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat,\n _ref$storeKey = _ref.storeKey,\n storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey,\n _ref$withRef = _ref.withRef,\n withRef = _ref$withRef === undefined ? false : _ref$withRef,\n connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']);\n\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n\n var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = storeShape, _contextTypes[subscriptionKey] = subscriptionShape, _contextTypes);\n var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = subscriptionShape, _childContextTypes);\n\n return function wrapWithConnect(WrappedComponent) {\n invariant(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + (methodName + '. Instead received ' + JSON.stringify(WrappedComponent)));\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n withRef: withRef,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = props[storeKey] || context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_this);\n\n invariant(_this.store, 'Could not find \"' + storeKey + '\" in either the context or props of ' + ('\"' + displayName + '\". Either wrap the root component in a , ') + ('or explicitly pass \"' + storeKey + '\" as a prop to \"' + displayName + '\".'));\n\n _this.initSelector();\n _this.initSubscription();\n return _this;\n }\n\n Connect.prototype.getChildContext = function getChildContext() {\n var _ref2;\n\n // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n var subscription = this.propsMode ? null : this.subscription;\n return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2;\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n if (!shouldHandleStateChanges) return;\n\n // componentWillMount fires during server side rendering, but componentDidMount and\n // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n // To handle the case where a child component may have triggered a state change by\n // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n // re-render.\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n if (this.selector.shouldComponentUpdate) this.forceUpdate();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n invariant(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.'));\n return this.wrappedInstance;\n };\n\n Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n\n Connect.prototype.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n\n Connect.prototype.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) return;\n\n // parentSub's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new Subscription(this.store, parentSub, this.onStateChange.bind(this));\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n\n Connect.prototype.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n\n Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidUpdate` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription) && this.subscription.isSubscribed();\n };\n\n Connect.prototype.addExtraProps = function addExtraProps(props) {\n if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props;\n // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n var withExtras = _extends({}, props);\n if (withRef) withExtras.ref = this.setWrappedInstance;\n if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n return withExtras;\n };\n\n Connect.prototype.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n\n if (selector.error) {\n throw selector.error;\n } else {\n return createElement(WrappedComponent, this.addExtraProps(selector.props));\n }\n };\n\n return Connect;\n }(Component);\n\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n Connect.childContextTypes = childContextTypes;\n Connect.contextTypes = contextTypes;\n Connect.propTypes = contextTypes;\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n var _this2 = this;\n\n // We are hot reloading!\n if (this.version !== version) {\n this.version = version;\n this.initSelector();\n\n // If any connected descendants don't hot reload (and resubscribe in the process), their\n // listeners will be lost when we unsubscribe. Unfortunately, by copying over all\n // listeners, this does mean that the old versions of connected descendants will still be\n // notified of state changes; however, their onStateChange function is a no-op so this\n // isn't a huge deal.\n var oldListeners = [];\n\n if (this.subscription) {\n oldListeners = this.subscription.listeners.get();\n this.subscription.tryUnsubscribe();\n }\n this.initSubscription();\n if (shouldHandleStateChanges) {\n this.subscription.trySubscribe();\n oldListeners.forEach(function (listener) {\n return _this2.subscription.listeners.subscribe(listener);\n });\n }\n }\n };\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","var hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\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) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\n\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n// \n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n// \n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n// \n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n// \n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n// \nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n };\n\n // allow detectFactoryAndVerify to get ownProps\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\n\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\n\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return { dispatch: dispatch };\n }) : undefined;\n}\n\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\n\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\n\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\n\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\n\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","var _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\nimport verifyPlainObject from '../utils/verifyPlainObject';\n\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\n\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n\n var hasRunOnce = false;\n var mergedProps = void 0;\n\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\n\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\n\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\n\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","function _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\nimport verifySubselectors from './verifySubselectors';\n\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\n\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n\n var hasRunAtLeastOnce = false;\n var state = void 0;\n var ownProps = void 0;\n var stateProps = void 0;\n var dispatchProps = void 0;\n var mergedProps = void 0;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n\n// TODO: Add more comments\n\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutProperties(_ref2, ['initMapStateToProps', 'initMapDispatchToProps', 'initMergeProps']);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","var _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\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\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error('Invalid value of type ' + typeof arg + ' for ' + name + ' argument when connecting component ' + options.wrappedComponentName + '.');\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n\n// createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\nexport function createConnect() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === undefined ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === undefined ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === undefined ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$pure = _ref2.pure,\n pure = _ref2$pure === undefined ? true : _ref2$pure,\n _ref2$areStatesEqual = _ref2.areStatesEqual,\n areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual,\n _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual,\n areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? shallowEqual : _ref2$areOwnPropsEqua,\n _ref2$areStatePropsEq = _ref2.areStatePropsEqual,\n areStatePropsEqual = _ref2$areStatePropsEq === undefined ? shallowEqual : _ref2$areStatePropsEq,\n _ref2$areMergedPropsE = _ref2.areMergedPropsEqual,\n areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? shallowEqual : _ref2$areMergedPropsE,\n extraOptions = _objectWithoutProperties(_ref2, ['pure', 'areStatesEqual', 'areOwnPropsEqual', 'areStatePropsEqual', 'areMergedPropsEqual']);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return 'Connect(' + name + ')';\n },\n\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n\n }, extraOptions));\n };\n}\n\nexport default createConnect();","'use strict';\n\nexports.__esModule = true;\nfunction createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexports['default'] = thunk;","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n )\n }\n}\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(error, tree, file) {\n if (error) {\n next(error)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n if ('value' in ctx.file) {\n ctx.file.value = result\n }\n\n ctx.file.contents = result\n } else {\n ctx.file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var freezeIndex = -1\n var frozen\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var index = -1\n\n while (++index < attachers.length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n\n if (values[1] === false) {\n continue\n }\n\n if (values[1] === true) {\n values[1] = undefined\n }\n\n transformer = values[0].apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n while (++index < plugins.length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var index = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n return attachers[index]\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var result\n var complete\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(error, tree) {\n complete = true\n result = tree\n bail(error)\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(error) {\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var file\n var complete\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n}\n\n// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\n// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n","'use strict'\n\n// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusWithoutScrolling, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: HTMLElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = document.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction isStyleVisible(element: Element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and \n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */ \nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n// import {FocusScope, useFocusScope} from 'react-events/focus-scope';\n// export {FocusScope};\n\ninterface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\ninterface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: HTMLElement,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): HTMLElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\nlet scopes: Map = new Map();\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n// For now, it relies on the DOM tree order rather than the React tree order, and is probably\n// less optimized for performance.\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n let parentScope = ctx?.scopeRef;\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n useLayoutEffect(() => {\n scopes.set(scopeRef, parentScope);\n return () => {\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || scopes.has(parentScope))\n ) {\n activeScope = parentScope;\n }\n scopes.delete(scopeRef);\n };\n }, [scopeRef, parentScope]);\n\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as HTMLElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as HTMLElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as HTMLElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as HTMLElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as HTMLElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as HTMLElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: HTMLElement[]) {\n return scope[0].parentElement;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || scopeRef !== activeScope) {\n return;\n }\n\n let focusedElement = document.activeElement as HTMLElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (scopeRef === activeScope && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (scopeRef === activeScope) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (scopeRef === activeScope && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n focusedNode.current.focus();\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => cancelAnimationFrame(raf.current);\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n for (let scope of scopes.keys()) {\n if (isElementInScope(element, scope.current)) {\n return true;\n }\n }\n return false;\n}\n\nfunction isElementInScope(element: Element, scope: HTMLElement[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let s of scopes.keys()) {\n if ((s === scope || isAncestorScope(scope, s)) && isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = scopes.get(scope);\n if (!parent) {\n return false;\n }\n\n if (parent === ancestor) {\n return true;\n }\n\n return isAncestorScope(ancestor, parent);\n}\n\nfunction focusElement(element: HTMLElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: HTMLElement[]) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = sentinel;\n focusElement(walker.nextNode() as HTMLElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, []);\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as HTMLElement : null);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n let nodeToRestore = nodeToRestoreRef.current;\n if (!restoreFocus) {\n return;\n }\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as HTMLElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n\n if (restoreFocus && nodeToRestore && isElementInScope(document.activeElement, scopeRef.current)) {\n requestAnimationFrame(() => {\n if (document.body.contains(nodeToRestore)) {\n focusElement(nodeToRestore);\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: HTMLElement, opts?: FocusManagerOptions, scope?: HTMLElement[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as HTMLElement).matches(selector)\n && isElementVisible(node as HTMLElement)\n && (!scope || isElementInScope(node as HTMLElement, scope))) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as HTMLElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as HTMLElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as HTMLElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let root = ref.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable});\n let nextNode = walker.nextNode() as HTMLElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let root = ref.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: HTMLElement;\n let last: HTMLElement;\n do {\n last = walker.lastChild() as HTMLElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","import {HTMLAttributes, useState} from 'react';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useRef} from 'react';\n\ninterface FocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\ninterface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: HTMLAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: FocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n }).current;\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.isFocused && state.isFocusVisible);\n\n let updateState = () => setFocusVisible(state.isFocused && state.isFocusVisible);\n\n let onFocusChange = isFocused => {\n state.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n };\n\n useFocusVisibleListener((isFocusVisible) => {\n state.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: state.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useFocusRing} from './useFocusRing';\n\ninterface FocusRingProps {\n /** Child element to apply CSS classes to. */\n children: ReactElement,\n /** CSS class to apply when the element is focused. */\n focusClass?: string,\n /** CSS class to apply when the element has keyboard focus. */\n focusRingClass?: string,\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default false\n */\n within?: boolean,\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\n/**\n * A utility component that applies a CSS class when an element has keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function FocusRing(props: FocusRingProps) {\n let {children, focusClass, focusRingClass} = props;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing(props);\n let child = React.Children.only(children);\n\n return React.cloneElement(child, mergeProps(child.props, {\n ...focusProps,\n className: clsx({\n [focusClass || '']: isFocused,\n [focusRingClass || '']: isFocusVisible\n })\n }));\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableDOMProps, FocusableProps} from '@react-types/shared';\nimport {focusSafely} from './';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {HTMLAttributes, MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\ninterface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\ninterface FocusableProviderProps extends HTMLAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\ninterface FocusableAria {\n /** Props for the focusable element. */\n focusableProps: HTMLAttributes\n}\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject): FocusableAria {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n focusSafely(domRef.current);\n }\n autoFocusRef.current = false;\n }, [domRef]);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: HTMLElement) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: HTMLElement) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: Element;\n currentTarget: Element;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as Element;\n this.currentTarget = nativeEvent.currentTarget as Element;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n onBlur,\n observer: null as MutationObserver\n });\n let state = stateRef.current;\n state.onBlur = onBlur;\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, [state]);\n\n // This function is called during a React onFocus event.\n return (e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n state.isFocused = true;\n\n let target = e.target;\n let onBlurHandler = (e: FocusEvent) => {\n let state = stateRef.current;\n state.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n state.onBlur?.(new SyntheticFocusEvent('blur', e));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n state.observer = new MutationObserver(() => {\n if (state.isFocused && target.disabled) {\n state.observer.disconnect();\n target.dispatchEvent(new FocusEvent('blur'));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true}));\n }\n });\n\n state.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {focusWithoutScrolling, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {HTMLAttributes, RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {isVirtualClick} from './utils';\nimport {PointerType, PressEvents} from '@react-types/shared';\nimport {PressResponderContext} from './context';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: HTMLElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: HTMLAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: HTMLAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent) && e.currentTarget.contains(e.target as HTMLElement)) {\n if (shouldPreventDefaultKeyboard(e.target as Element)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget as HTMLElement;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent) && !e.repeat && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e)) {\n if (shouldPreventDefaultKeyboard(e.target as Element)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as HTMLElement;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target.contains(target) && isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link') {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as HTMLElement)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as HTMLElement)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as HTMLElement) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as HTMLElement)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as HTMLElement).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: HTMLElement): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent): boolean {\n const {key, code, target} = event;\n const element = target as HTMLElement;\n const {tagName, isContentEditable} = element;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n (tagName !== 'INPUT' &&\n tagName !== 'TEXTAREA' &&\n isContentEditable !== true) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: HTMLElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: HTMLElement) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: HTMLElement) {\n // We cannot prevent default if the target is a draggable element.\n return !target.draggable;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element) {\n return !((target.tagName === 'INPUT' || target.tagName === 'BUTTON') && (target as HTMLButtonElement | HTMLInputElement).type === 'submit');\n}\n\nfunction isVirtualPointerEvent(event: PointerEvent) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216\n return (\n (event.width === 0 && event.height === 0) ||\n (event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0\n )\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {HTMLAttributes, ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement, string>\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {FocusEvent, HTMLAttributes} from 'react';\nimport {FocusEvents} from '@react-types/shared';\nimport {useSyntheticBlurEvent} from './utils';\n\ninterface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: HTMLAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let onBlur: FocusProps['onBlur'];\n if (!props.isDisabled && (props.onBlur || props.onFocusChange)) {\n onBlur = (e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n return true;\n }\n };\n } else {\n onBlur = null;\n }\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n let onFocus: FocusProps['onFocus'];\n if (!props.isDisabled && (props.onFocus || props.onFocusChange || props.onBlur)) {\n onFocus = (e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n };\n }\n\n return {\n focusProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac} from '@react-aria/utils';\nimport {isVirtualClick} from './utils';\nimport {useEffect, useState} from 'react';\n\ntype Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\ntype FocusVisibleHandler = (isFocusVisible: boolean) => void;\ninterface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\ninterface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {FocusEvent, HTMLAttributes, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\ninterface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\ninterface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: HTMLAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let state = useRef({\n isFocusWithin: false\n }).current;\n\n let onBlur = props.isDisabled ? null : (e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.isFocusWithin = false;\n\n if (props.onBlurWithin) {\n props.onBlurWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(false);\n }\n }\n };\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = props.isDisabled ? null : (e: FocusEvent) => {\n if (!state.isFocusWithin) {\n if (props.onFocusWithin) {\n props.onFocusWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(true);\n }\n\n state.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n };\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {HoverEvents} from '@react-types/shared';\nimport {HTMLAttributes, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: HTMLAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: HTMLAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\ninterface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {HTMLAttributes} from 'react';\nimport {KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: HTMLAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {MoveEvents, PointerType} from '@react-types/shared';\nimport React, {HTMLAttributes, useMemo, useRef} from 'react';\nimport {useGlobalListeners} from '@react-aria/utils';\n\ninterface MoveResult {\n /** Props to spread on the target element. */\n moveProps: HTMLAttributes\n}\n\ninterface EventBase {\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let {onMoveStart, onMove, onMoveEnd} = props;\n\n let state = useRef<{\n didMove: boolean,\n lastPosition: {pageX: number, pageY: number} | null,\n id: number | null\n }>({didMove: false, lastPosition: null, id: null});\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let moveProps = useMemo(() => {\n let moveProps: HTMLAttributes = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n let move = (originalEvent: EventBase, pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let end = (originalEvent: EventBase, pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n if (typeof PointerEvent === 'undefined') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n move(e, 'mouse', e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n end(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n let onTouchMove = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n let {pageX, pageY} = e.changedTouches[touch];\n move(e, 'touch', pageX - state.current.lastPosition.pageX, pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX, pageY};\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n end(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let {pageX, pageY, identifier} = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX, pageY};\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n\n moveProps.onPointerDown = (e: React.PointerEvent) => {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n\n let triggerKeyboardMove = (e: EventBase, deltaX: number, deltaY: number) => {\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, onMoveStart, onMove, onMoveEnd, addGlobalListener, removeGlobalListener]);\n\n return {moveProps};\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useCallback} from 'react';\nimport {ScrollEvents} from '@react-types/shared';\nimport {useEvent} from '@react-aria/utils';\n\nexport interface ScrollWheelProps extends ScrollEvents {\n /** Whether the scroll listener should be disabled. */\n isDisabled?: boolean\n}\n\n// scroll wheel needs to be added not passively so it's cancelable, small helper hook to remember that\nexport function useScrollWheel(props: ScrollWheelProps, ref: RefObject): void {\n let {onScroll, isDisabled} = props;\n let onScrollHandler = useCallback((e) => {\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) {\n return;\n }\n\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n\n if (onScroll) {\n onScroll({deltaX: e.deltaX, deltaY: e.deltaY});\n }\n }, [onScroll]);\n\n useEvent(ref, 'wheel', isDisabled ? null : onScrollHandler);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HTMLAttributes, useRef} from 'react';\nimport {LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\n\ninterface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\ninterface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: HTMLAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HelpTextProps, Validation} from '@react-types/shared';\nimport {HTMLAttributes} from 'react';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\ninterface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport type LocalizedStrings = {\n [lang: string]: {\n [key: string]: string\n }\n};\n\n/**\n * Stores a mapping of localized strings. Can be used to find the\n * closest available string for a given locale.\n */\nexport class MessageDictionary {\n private messages: LocalizedStrings;\n private defaultLocale: string;\n\n constructor(messages: LocalizedStrings, defaultLocale: string = 'en-US') {\n // Clone messages so we don't modify the original object.\n this.messages = {...messages};\n this.defaultLocale = defaultLocale;\n }\n\n getStringForLocale(key: string, locale: string) {\n let strings = this.messages[locale];\n if (!strings) {\n strings = getStringsForLocale(locale, this.messages, this.defaultLocale);\n this.messages[locale] = strings;\n }\n\n let string = strings[key];\n if (!string) {\n throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n }\n\n return string;\n }\n}\n\nfunction getStringsForLocale(locale: string, strings: LocalizedStrings, defaultLocale = 'en-US') {\n // If there is an exact match, use it.\n if (strings[locale]) {\n return strings[locale];\n }\n\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = getLanguage(locale);\n for (let key in strings) {\n if (key.startsWith(language + '-')) {\n return strings[key];\n }\n }\n\n // Nothing close, use english.\n return strings[defaultLocale];\n}\n\nfunction getLanguage(locale: string) {\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n return new Intl.Locale(locale).language;\n }\n\n return locale.split('-')[0];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FormatXMLElementFn, PrimitiveType} from 'intl-messageformat/src/formatters';\nimport IntlMessageFormat from 'intl-messageformat';\nimport {MessageDictionary} from './MessageDictionary';\n\n/**\n * Formats ICU Message strings to create localized strings from a MessageDictionary.\n */\nexport class MessageFormatter {\n private locale: string;\n private messages: MessageDictionary;\n private cache: {[key: string]: IntlMessageFormat};\n\n constructor(locale: string, messages: MessageDictionary) {\n this.locale = locale;\n this.messages = messages;\n this.cache = {};\n }\n\n format(key: string, variables: Record> | undefined) {\n let message = this.cache[key];\n if (!message) {\n let msg = this.messages.getStringForLocale(key, this.locale);\n if (!msg) {\n throw new Error(`Could not find intl message ${key} in ${this.locale} locale`);\n }\n\n message = new IntlMessageFormat(msg, this.locale);\n this.cache[key] = message;\n }\n let varCopy: Record> | undefined;\n if (variables) {\n varCopy = Object.keys(variables).reduce((acc, key) => {\n acc[key] = variables[key] == null ? false : variables[key];\n return acc;\n }, {});\n }\n\n return message.format(varCopy);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyTime} from './types';\nimport {CalendarDate, CalendarDateTime, ZonedDateTime} from './CalendarDate';\nimport {fromAbsolute, toAbsolute, toCalendar, toCalendarDate} from './conversion';\nimport {weekStartData} from './weekStartData';\n\ntype DateValue = CalendarDate | CalendarDateTime | ZonedDateTime;\n\n/** Returns whether the given dates occur on the same day, regardless of the time or calendar system. */\nexport function isSameDay(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, using the calendar system of the first date. */\nexport function isSameMonth(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, using the calendar system of the first date. */\nexport function isSameYear(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n a = startOfYear(a);\n b = startOfYear(b);\n return a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the given dates occur on the same day, and are of the same calendar system. */\nexport function isEqualDay(a: DateValue, b: DateValue): boolean {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, and are of the same calendar system. */\nexport function isEqualMonth(a: DateValue, b: DateValue): boolean {\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, and are of the same calendar system. */\nexport function isEqualYear(a: DateValue, b: DateValue): boolean {\n a = startOfYear(a);\n b = startOfYear(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the date is today in the given time zone. */\nexport function isToday(date: DateValue, timeZone: string): boolean {\n return isSameDay(date, today(timeZone));\n}\n\n/**\n * Returns the day of week for the given date and locale. Days are numbered from zero to six,\n * where zero is the first day of the week in the given locale. For example, in the United States,\n * the first day of the week is Sunday, but in France it is Monday.\n */\nexport function getDayOfWeek(date: DateValue, locale: string): number {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n return dayOfWeek;\n}\n\n/** Returns the current time in the given time zone. */\nexport function now(timeZone: string): ZonedDateTime {\n return fromAbsolute(Date.now(), timeZone);\n}\n\n/** Returns today's date in the given time zone. */\nexport function today(timeZone: string): CalendarDate {\n return toCalendarDate(now(timeZone));\n}\n\nexport function compareDate(a: AnyCalendarDate, b: AnyCalendarDate): number {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\n\nexport function compareTime(a: AnyTime, b: AnyTime): number {\n return timeToMs(a) - timeToMs(b);\n}\n\nfunction timeToMs(a: AnyTime): number {\n return a.hour * 60 * 60 * 1000 + a.minute * 60 * 1000 + a.second * 1000 + a.millisecond;\n}\n\n/**\n * Returns the number of hours in the given date and time zone.\n * Usually this is 24, but it could be 23 or 25 if the date is on a daylight saving transition.\n */\nexport function getHoursInDay(a: CalendarDate, timeZone: string): number {\n let ms = toAbsolute(a, timeZone);\n let tomorrow = a.add({days: 1});\n let tomorrowMs = toAbsolute(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\n\nlet localTimeZone = null;\n\n/** Returns the time zone identifier for the current user. */\nexport function getLocalTimeZone(): string {\n // TODO: invalidate this somehow?\n if (localTimeZone == null) {\n localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n return localTimeZone;\n}\n\n/** Returns the first date of the month for the given date. */\nexport function startOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function startOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function startOfMonth(date: CalendarDate): CalendarDate;\nexport function startOfMonth(date: DateValue): DateValue;\nexport function startOfMonth(date: DateValue): DateValue {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({days: date.day - 1});\n}\n\n/** Returns the last date of the month for the given date. */\nexport function endOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function endOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function endOfMonth(date: CalendarDate): CalendarDate;\nexport function endOfMonth(date: DateValue): DateValue;\nexport function endOfMonth(date: DateValue): DateValue {\n return date.add({days: date.calendar.getDaysInMonth(date) - date.day});\n}\n\n/** Returns the first day of the year for the given date. */\nexport function startOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function startOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function startOfYear(date: CalendarDate): CalendarDate;\nexport function startOfYear(date: DateValue): DateValue;\nexport function startOfYear(date: DateValue): DateValue {\n return startOfMonth(date.subtract({months: date.month - 1}));\n}\n\n/** Returns the last day of the year for the given date. */\nexport function endOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function endOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function endOfYear(date: CalendarDate): CalendarDate;\nexport function endOfYear(date: DateValue): DateValue;\nexport function endOfYear(date: DateValue): DateValue {\n return endOfMonth(date.add({months: date.calendar.getMonthsInYear(date) - date.month}));\n}\n\nexport function getMinimumMonthInYear(date: AnyCalendarDate) {\n if (date.calendar.getMinimumMonthInYear) {\n return date.calendar.getMinimumMonthInYear(date);\n }\n\n return 1;\n}\n\nexport function getMinimumDayInMonth(date: AnyCalendarDate) {\n if (date.calendar.getMinimumDayInMonth) {\n return date.calendar.getMinimumDayInMonth(date);\n }\n\n return 1;\n}\n\n/** Returns the first date of the week for the given date and locale. */\nexport function startOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function startOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function startOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function startOfWeek(date: DateValue, locale: string): DateValue;\nexport function startOfWeek(date: DateValue, locale: string): DateValue {\n let dayOfWeek = getDayOfWeek(date, locale);\n return date.subtract({days: dayOfWeek});\n}\n\n/** Returns the last date of the week for the given date and locale. */\nexport function endOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function endOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function endOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function endOfWeek(date: DateValue, locale: string): DateValue {\n return startOfWeek(date, locale).add({days: 6});\n}\n\nconst cachedRegions = new Map();\n\nfunction getRegion(locale: string) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n cachedRegions.set(locale, region);\n }\n return region;\n }\n\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? null : part;\n}\n\nfunction getWeekStart(locale: string) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = getRegion(locale);\n return weekStartData[region] || 0;\n}\n\n/** Returns the number of weeks in the given month and locale. */\nexport function getWeeksInMonth(date: DateValue, locale: string): number {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil((getDayOfWeek(startOfMonth(date), locale) + days) / 7);\n}\n\n/** Returns the lesser of the two provider dates. */\nexport function minDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) <= 0 ? a : b;\n }\n\n return a || b;\n}\n\n/** Returns the greater of the two provider dates. */\nexport function maxDate(a: A, b: B): A | B {\n if (a && b) {\n return a.compare(b) >= 0 ? a : b;\n }\n\n return a || b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\n/** Returns whether the given date is on a weekend in the given locale. */\nexport function isWeekend(date: DateValue, locale: string): boolean {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\n/** Returns whether the given date is on a weekday in the given locale. */\nexport function isWeekday(date: DateValue, locale: string): boolean {\n return !isWeekend(date, locale);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {getLocalTimeZone} from './queries';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime) {\n date = toCalendar(date, new GregorianCalendar());\n return epochFromParts(date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string) {\n // Fast path: for local timezone, use native Date.\n if (timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n return {\n year: namedParts.era === 'BC' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n date.setFullYear(dateTime.year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\n/** Converts a value with date components such as a `CalendarDateTime` or `ZonedDateTime` into a `CalendarDate`. */\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\n/**\n * Converts a date value to a `CalendarDateTime`. An optional `Time` value can be passed to set the time\n * of the resulting value, otherwise it will default to midnight.\n */\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\n/** Extracts the time components from a value containing a date and time. */\nexport function toTime(dateTime: CalendarDateTime | ZonedDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\n/** Converts a date from one calendar system to another. */\nexport function toCalendar(date: T, calendar: Calendar): T {\n if (date.calendar.identifier === calendar.identifier) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n return copy;\n}\n\n/**\n * Converts a date value to a `ZonedDateTime` in the provided time zone. The `disambiguation` option can be set\n * to control how values that fall on daylight saving time changes are interpreted.\n */\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation): ZonedDateTime {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime) {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\n/** Converts a `ZonedDateTime` from one time zone to another. */\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\n/** Converts the given `ZonedDateTime` into the user's local time zone. */\nexport function toLocalTimeZone(date: ZonedDateTime): ZonedDateTime {\n return toTimeZone(date, getLocalTimeZone());\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {add, addTime, addZoned, constrain, constrainTime, cycleDate, cycleTime, cycleZoned, set, setTime, setZoned, subtract, subtractTime, subtractZoned} from './manipulation';\nimport {AnyCalendarDate, AnyTime, Calendar, CycleOptions, CycleTimeOptions, DateDuration, DateField, DateFields, DateTimeDuration, Disambiguation, TimeDuration, TimeField, TimeFields} from './types';\nimport {compareDate, compareTime} from './queries';\nimport {dateTimeToString, dateToString, timeToString, zonedDateTimeToString} from './string';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {toCalendarDateTime, toDate, toZoned, zonedToDate} from './conversion';\n\nfunction shiftArgs(args: any[]) {\n let calendar: Calendar = typeof args[0] === 'object'\n ? args.shift()\n : new GregorianCalendar();\n\n let era: string;\n if (typeof args[0] === 'string') {\n era = args.shift();\n } else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n\n return [calendar, era, year, month, day];\n}\n\n/** A CalendarDate represents a date without any time components in a specific calendar system. */\nexport class CalendarDate {\n // This prevents TypeScript from allowing other types with the same fields to match.\n // i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n // If that behavior is desired, use the AnyCalendarDate interface instead.\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n\n constructor(year: number, month: number, day: number);\n constructor(era: string, year: number, month: number, day: number);\n constructor(calendar: Calendar, year: number, month: number, day: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): CalendarDate {\n if (this.era) {\n return new CalendarDate(this.calendar, this.era, this.year, this.month, this.day);\n } else {\n return new CalendarDate(this.calendar, this.year, this.month, this.day);\n }\n }\n\n /** Returns a new `CalendarDate` with the given duration added to it. */\n add(duration: DateDuration): CalendarDate {\n return add(this, duration);\n }\n\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */\n subtract(duration: DateDuration): CalendarDate {\n return subtract(this, duration);\n }\n\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields): CalendarDate {\n return set(this, fields);\n }\n\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField, amount: number, options?: CycleOptions): CalendarDate {\n return cycleDate(this, field, amount, options);\n }\n\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */\n toDate(timeZone: string): Date {\n return toDate(this, timeZone);\n }\n\n /** Converts the date to an ISO 8601 formatted string. */\n toString(): string {\n return dateToString(this);\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: AnyCalendarDate): number {\n return compareDate(this, b);\n }\n}\n\n/** A Time represents a clock time without any date components. */\nexport class Time {\n // This prevents TypeScript from allowing other types with the same fields to match.\n #type;\n /** The hour, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n\n constructor(\n hour: number = 0,\n minute: number = 0,\n second: number = 0,\n millisecond: number = 0\n ) {\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n constrainTime(this);\n }\n\n /** Returns a copy of this time. */\n copy(): Time {\n return new Time(this.hour, this.minute, this.second, this.millisecond);\n }\n\n /** Returns a new `Time` with the given duration added to it. */\n add(duration: TimeDuration) {\n return addTime(this, duration);\n }\n\n /** Returns a new `Time` with the given duration subtracted from it. */\n subtract(duration: TimeDuration) {\n return subtractTime(this, duration);\n }\n\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: TimeFields) {\n return setTime(this, fields);\n }\n\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: TimeField, amount: number, options?: CycleTimeOptions) {\n return cycleTime(this, field, amount, options);\n }\n\n /** Converts the time to an ISO 8601 formatted string. */\n toString() {\n return timeToString(this);\n }\n\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */\n compare(b: AnyTime) {\n return compareTime(this, b);\n }\n}\n\n/** A CalendarDateTime represents a date and time without a time zone, in a specific calendar system. */\nexport class CalendarDateTime {\n // This prevents TypeScript from allowing other types with the same fields to match.\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n /** The hour in the day, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n\n constructor(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): CalendarDateTime {\n if (this.era) {\n return new CalendarDateTime(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n } else {\n return new CalendarDateTime(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n }\n\n /** Returns a new `CalendarDateTime` with the given duration added to it. */\n add(duration: DateTimeDuration): CalendarDateTime {\n return add(this, duration);\n }\n\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */\n subtract(duration: DateTimeDuration): CalendarDateTime {\n return subtract(this, duration);\n }\n\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields & TimeFields): CalendarDateTime {\n return set(setTime(this, fields), fields);\n }\n\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField | TimeField, amount: number, options?: CycleTimeOptions): CalendarDateTime {\n switch (field) {\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return cycleDate(this, field, amount, options);\n default:\n return cycleTime(this, field, amount, options);\n }\n }\n\n /** Converts the date to a native JavaScript Date object in the given time zone. */\n toDate(timeZone: string, disambiguation?: Disambiguation): Date {\n return toDate(this, timeZone, disambiguation);\n }\n\n /** Converts the date to an ISO 8601 formatted string. */\n toString(): string {\n return dateTimeToString(this);\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: CalendarDate | CalendarDateTime | ZonedDateTime): number {\n let res = compareDate(this, b);\n if (res === 0) {\n return compareTime(this, toCalendarDateTime(b));\n }\n\n return res;\n }\n}\n\n/** A ZonedDateTime represents a date and time in a specific time zone and calendar system. */\nexport class ZonedDateTime {\n // This prevents TypeScript from allowing other types with the same fields to match.\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n /** The hour in the day, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n /** The IANA time zone identifier that this date and time is represented in. */\n public readonly timeZone: string;\n /** The UTC offset for this time, in seconds. */\n public readonly offset: number;\n\n constructor(year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): ZonedDateTime {\n if (this.era) {\n return new ZonedDateTime(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n } else {\n return new ZonedDateTime(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n }\n\n /** Returns a new `ZonedDateTime` with the given duration added to it. */\n add(duration: DateTimeDuration) {\n return addZoned(this, duration);\n }\n\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */\n subtract(duration: DateTimeDuration) {\n return subtractZoned(this, duration);\n }\n\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields & TimeFields, disambiguation?: Disambiguation) {\n return setZoned(this, fields, disambiguation);\n }\n\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField | TimeField, amount: number, options?: CycleTimeOptions) {\n return cycleZoned(this, field, amount, options);\n }\n\n /** Converts the date to a native JavaScript Date object. */\n toDate() {\n return zonedToDate(this);\n }\n\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */\n toString() {\n return zonedDateTimeToString(this);\n }\n\n /** Converts the date to an ISO 8601 formatted string in UTC. */\n toAbsoluteString() {\n return this.toDate().toISOString();\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: CalendarDate | CalendarDateTime | ZonedDateTime) {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - toZoned(b, this.timeZone).toDate().getTime();\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\ninterface ResolvedDateTimeFormatOptions extends Intl.ResolvedDateTimeFormatOptions {\n hourCycle?: Intl.DateTimeFormatOptions['hourCycle']\n}\n\ninterface DateRangeFormatPart extends Intl.DateTimeFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */\nexport class DateFormatter implements Intl.DateTimeFormat {\n private formatter: Intl.DateTimeFormat;\n private options: Intl.DateTimeFormatOptions;\n private resolvedHourCycle: Intl.DateTimeFormatOptions['hourCycle'];\n\n constructor(locale: string, options: Intl.DateTimeFormatOptions = {}) {\n this.formatter = getCachedDateFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a date as a string according to the locale and format options passed to the constructor. */\n format(value: Date): string {\n return this.formatter.format(value);\n }\n\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */\n formatToParts(value: Date): Intl.DateTimeFormatPart[] {\n return this.formatter.formatToParts(value);\n }\n\n /** Formats a date range as a string. */\n formatRange(start: Date, end: Date): string {\n // @ts-ignore\n if (typeof this.formatter.formatRange === 'function') {\n // @ts-ignore\n return this.formatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n\n /** Formats a date range as an array of parts. */\n formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as DateRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as DateRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): ResolvedDateTimeFormatOptions {\n let resolvedOptions = this.formatter.resolvedOptions() as ResolvedDateTimeFormatOptions;\n if (hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) {\n this.resolvedHourCycle = getResolvedHourCycle(resolvedOptions.locale, this.options);\n }\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === 'h11' || this.resolvedHourCycle === 'h12';\n }\n\n return resolvedOptions;\n }\n}\n\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: 'h11'\n },\n false: {\n // All locales use h23 for 24 hour time. None use h24.\n }\n};\n\nfunction getCachedDateFormatter(locale: string, options: Intl.DateTimeFormatOptions = {}): Intl.DateTimeFormat {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === 'boolean' && hasBuggyHour12Behavior()) {\n options = {...options};\n let pref = hour12Preferences[String(options.hour12)][locale.split('-')[0]];\n let defaultHourCycle = options.hour12 ? 'h12' : 'h23';\n options.hourCycle = pref ?? defaultHourCycle;\n delete options.hour12;\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\nlet _hasBuggyHour12Behavior: boolean = null;\nfunction hasBuggyHour12Behavior() {\n if (_hasBuggyHour12Behavior == null) {\n _hasBuggyHour12Behavior = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === '24';\n }\n\n return _hasBuggyHour12Behavior;\n}\n\nlet _hasBuggyResolvedHourCycle: boolean = null;\nfunction hasBuggyResolvedHourCycle() {\n if (_hasBuggyResolvedHourCycle == null) {\n _hasBuggyResolvedHourCycle = (new Intl.DateTimeFormat('fr', {\n hour: 'numeric',\n hour12: false\n }).resolvedOptions() as ResolvedDateTimeFormatOptions).hourCycle === 'h12';\n }\n\n return _hasBuggyResolvedHourCycle;\n}\n\nfunction getResolvedHourCycle(locale: string, options: Intl.DateTimeFormatOptions) {\n if (!options.timeStyle && !options.hour) {\n return undefined;\n }\n\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, '');\n locale += (locale.includes('-u-') ? '' : '-u') + '-nu-latn';\n let formatter = getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find(p => p.type === 'hour').value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find(p => p.type === 'hour').value, 10);\n\n if (min === 0 && max === 23) {\n return 'h23';\n }\n\n if (min === 24 && max === 23) {\n return 'h24';\n }\n\n if (min === 0 && max === 11) {\n return 'h11';\n }\n\n if (min === 12 && max === 11) {\n return 'h12';\n }\n\n throw new Error('Unexpected hour cycle result');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map();\n\nlet supportsSignDisplay = false;\ntry {\n // @ts-ignore\n supportsSignDisplay = (new Intl.NumberFormat('de-DE', {signDisplay: 'exceptZero'})).resolvedOptions().signDisplay === 'exceptZero';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nlet supportsUnit = false;\ntry {\n // @ts-ignore\n supportsUnit = (new Intl.NumberFormat('de-DE', {style: 'unit', unit: 'degree'})).resolvedOptions().style === 'unit';\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\n// Polyfill for units since Safari doesn't support them yet. See https://bugs.webkit.org/show_bug.cgi?id=215438.\n// Currently only polyfilling the unit degree in narrow format for ColorSlider in our supported locales.\n// Values were determined by switching to each locale manually in Chrome.\nconst UNITS = {\n degree: {\n narrow: {\n default: '°',\n 'ja-JP': ' 度',\n 'zh-TW': '度',\n 'sl-SI': ' °'\n // Arabic?? But Safari already doesn't use Arabic digits so might be ok...\n // https://bugs.webkit.org/show_bug.cgi?id=218139\n }\n }\n};\n\nexport interface NumberFormatOptions extends Intl.NumberFormatOptions {\n /** Overrides default numbering system for the current locale. */\n numberingSystem?: string\n}\n\ninterface NumberRangeFormatPart extends Intl.NumberFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/**\n * A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance.\n */\nexport class NumberFormatter implements Intl.NumberFormat {\n private numberFormatter: Intl.NumberFormat;\n private options: NumberFormatOptions;\n\n constructor(locale: string, options: NumberFormatOptions = {}) {\n this.numberFormatter = getCachedNumberFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a number value as a string, according to the locale and options provided to the constructor. */\n format(value: number): string {\n let res = '';\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n res = numberFormatSignDisplayPolyfill(this.numberFormatter, this.options.signDisplay, value);\n } else {\n res = this.numberFormatter.format(value);\n }\n\n if (this.options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short', locale} = this.resolvedOptions();\n let values = UNITS[unit]?.[unitDisplay];\n res += values[locale] || values.default;\n }\n\n return res;\n }\n\n /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */\n formatToParts(value: number): Intl.NumberFormatPart[] {\n // TODO: implement signDisplay for formatToParts\n // @ts-ignore\n return this.numberFormatter.formatToParts(value);\n }\n\n /** Formats a number range as a string. */\n formatRange(start: number, end: number): string {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRange === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.format(start)} – ${this.format(end)}`;\n }\n\n /** Formats a number range as an array of parts. */\n formatRangeToParts(start: number, end: number): NumberRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.numberFormatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.numberFormatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.numberFormatter.formatToParts(start);\n let endParts = this.numberFormatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as NumberRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as NumberRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): Intl.ResolvedNumberFormatOptions {\n let options = this.numberFormatter.resolvedOptions();\n if (!supportsSignDisplay && this.options.signDisplay != null) {\n options = {...options, signDisplay: this.options.signDisplay};\n }\n\n if (!supportsUnit && this.options.style === 'unit') {\n options = {...options, style: 'unit', unit: this.options.unit, unitDisplay: this.options.unitDisplay};\n }\n\n return options;\n }\n}\n\nfunction getCachedNumberFormatter(locale: string, options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {numberingSystem} = options;\n if (numberingSystem && locale.indexOf('-u-nu-') === -1) {\n locale = `${locale}-u-nu-${numberingSystem}`;\n }\n\n if (options.style === 'unit' && !supportsUnit) {\n let {unit, unitDisplay = 'short'} = options;\n if (!unit) {\n throw new Error('unit option must be provided with style: \"unit\"');\n }\n if (!UNITS[unit]?.[unitDisplay]) {\n throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);\n }\n options = {...options, style: 'decimal'};\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey);\n }\n\n let numberFormatter = new Intl.NumberFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\n/** @private - exported for tests */\nexport function numberFormatSignDisplayPolyfill(numberFormat: Intl.NumberFormat, signDisplay: string, num: number) {\n if (signDisplay === 'auto') {\n return numberFormat.format(num);\n } else if (signDisplay === 'never') {\n return numberFormat.format(Math.abs(num));\n } else {\n let needsPositiveSign = false;\n if (signDisplay === 'always') {\n needsPositiveSign = num > 0 || Object.is(num, 0);\n } else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) {\n num = Math.abs(num);\n } else {\n needsPositiveSign = num > 0;\n }\n }\n\n if (needsPositiveSign) {\n let negative = numberFormat.format(-num);\n let noSign = numberFormat.format(num);\n // ignore RTL/LTR marker character\n let minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n if ([...minus].length !== 1) {\n console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n }\n let positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else {\n return numberFormat.format(num);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\ninterface Symbols {\n minusSign: string,\n plusSign: string,\n decimal: string,\n group: string,\n literals: RegExp,\n numeral: RegExp,\n index: (v: string) => string\n}\n\nconst CURRENCY_SIGN_REGEX = new RegExp('^.*\\\\(.*\\\\).*$');\nconst NUMBERING_SYSTEMS = ['latn', 'arab', 'hanidec'];\n\n/**\n * A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings,\n * as well as validation of partial user input. It automatically detects the numbering system\n * used in the input, and supports parsing decimals, percentages, currency values, and units\n * according to the locale.\n */\nexport class NumberParser {\n private locale: string;\n private options: Intl.NumberFormatOptions;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.locale = locale;\n this.options = options;\n }\n\n /**\n * Parses the given string to a number. Returns NaN if a valid number could not be parsed.\n */\n parse(value: string): number {\n return getNumberParserImpl(this.locale, this.options, value).parse(value);\n }\n\n /**\n * Returns whether the given string could potentially be a valid number. This should be used to\n * validate user input as the user types. If a `minValue` or `maxValue` is provided, the validity\n * of the minus/plus sign characters can be checked.\n */\n isValidPartialNumber(value: string, minValue?: number, maxValue?: number): boolean {\n return getNumberParserImpl(this.locale, this.options, value).isValidPartialNumber(value, minValue, maxValue);\n }\n\n /**\n * Returns a numbering system for which the given string is valid in the current locale.\n * If no numbering system could be detected, the default numbering system for the current\n * locale is returned.\n */\n getNumberingSystem(value: string): string {\n return getNumberParserImpl(this.locale, this.options, value).options.numberingSystem;\n }\n}\n\nconst numberParserCache = new Map();\nfunction getNumberParserImpl(locale: string, options: Intl.NumberFormatOptions, value: string) {\n // First try the default numbering system for the provided locale\n let defaultParser = getCachedNumberParser(locale, options);\n\n // If that doesn't match, and the locale doesn't include a hard coded numbering system,\n // try each of the other supported numbering systems until we find one that matches.\n if (!locale.includes('-nu-') && !defaultParser.isValidPartialNumber(value)) {\n for (let numberingSystem of NUMBERING_SYSTEMS) {\n if (numberingSystem !== defaultParser.options.numberingSystem) {\n let parser = getCachedNumberParser(locale + (locale.includes('-u-') ? '-nu-' : '-u-nu-') + numberingSystem, options);\n if (parser.isValidPartialNumber(value)) {\n return parser;\n }\n }\n }\n }\n\n return defaultParser;\n}\n\nfunction getCachedNumberParser(locale: string, options: Intl.NumberFormatOptions) {\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n let parser = numberParserCache.get(cacheKey);\n if (!parser) {\n parser = new NumberParserImpl(locale, options);\n numberParserCache.set(cacheKey, parser);\n }\n\n return parser;\n}\n\n// The actual number parser implementation. Instances of this class are cached\n// based on the locale, options, and detected numbering system.\nclass NumberParserImpl {\n formatter: Intl.NumberFormat;\n options: Intl.ResolvedNumberFormatOptions;\n symbols: Symbols;\n\n constructor(locale: string, options: Intl.NumberFormatOptions = {}) {\n this.formatter = new Intl.NumberFormat(locale, options);\n this.options = this.formatter.resolvedOptions();\n this.symbols = getSymbols(this.formatter, this.options, options);\n }\n\n parse(value: string) {\n // to parse the number, we need to remove anything that isn't actually part of the number, for example we want '-10.40' not '-10.40 USD'\n let fullySanitizedValue = this.sanitize(value);\n\n // Remove group characters, and replace decimal points and numerals with ASCII values.\n fullySanitizedValue = replaceAll(fullySanitizedValue, this.symbols.group, '')\n .replace(this.symbols.decimal, '.')\n .replace(this.symbols.minusSign, '-')\n .replace(this.symbols.numeral, this.symbols.index);\n\n let newValue = fullySanitizedValue ? +fullySanitizedValue : NaN;\n if (isNaN(newValue)) {\n return NaN;\n }\n\n // accounting will always be stripped to a positive number, so if it's accounting and has a () around everything, then we need to make it negative again\n if (this.options.currencySign === 'accounting' && CURRENCY_SIGN_REGEX.test(value)) {\n newValue = -1 * newValue;\n }\n\n // when reading the number, if it's a percent, then it should be interpreted as being divided by 100\n if (this.options.style === 'percent') {\n newValue /= 100;\n // after dividing to get the percent value, javascript may get .0210999999 instead of .0211, so fix the number of fraction digits\n newValue = +newValue.toFixed((this.options.maximumFractionDigits ?? 0) + 2);\n }\n\n return newValue;\n }\n\n sanitize(value: string) {\n // Remove literals and whitespace, which are allowed anywhere in the string\n value = value.replace(this.symbols.literals, '');\n\n // Replace the ASCII minus sign with the minus sign used in the current locale\n // so that both are allowed in case the user's keyboard doesn't have the locale's minus sign.\n value = value.replace('-', this.symbols.minusSign);\n\n // In arab numeral system, their decimal character is 1643, but most keyboards don't type that\n // instead they use the , (44) character or apparently the (1548) character.\n if (this.options.numberingSystem === 'arab') {\n value = value.replace(',', this.symbols.decimal);\n value = value.replace(String.fromCharCode(1548), this.symbols.decimal);\n value = replaceAll(value, '.', this.symbols.group);\n }\n\n // fr-FR group character is char code 8239, but that's not a key on the french keyboard,\n // so allow 'period' as a group char and replace it with a space\n if (this.options.locale === 'fr-FR') {\n value = replaceAll(value, '.', String.fromCharCode(8239));\n }\n\n return value;\n }\n\n isValidPartialNumber(value: string, minValue: number = -Infinity, maxValue: number = Infinity): boolean {\n value = this.sanitize(value);\n\n // Remove minus or plus sign, which must be at the start of the string.\n if (value.startsWith(this.symbols.minusSign) && minValue < 0) {\n value = value.slice(this.symbols.minusSign.length);\n } else if (this.symbols.plusSign && value.startsWith(this.symbols.plusSign) && maxValue > 0) {\n value = value.slice(this.symbols.plusSign.length);\n }\n\n // Numbers cannot start with a group separator\n if (value.startsWith(this.symbols.group)) {\n return false;\n }\n\n // Remove numerals, groups, and decimals\n value = replaceAll(value, this.symbols.group, '')\n .replace(this.symbols.numeral, '')\n .replace(this.symbols.decimal, '');\n\n // The number is valid if there are no remaining characters\n return value.length === 0;\n }\n}\n\nconst nonLiteralParts = new Set(['decimal', 'fraction', 'integer', 'minusSign', 'plusSign', 'group']);\n\nfunction getSymbols(formatter: Intl.NumberFormat, intlOptions: Intl.ResolvedNumberFormatOptions, originalOptions: Intl.NumberFormatOptions): Symbols {\n // Note: some locale's don't add a group symbol until there is a ten thousands place\n let allParts = formatter.formatToParts(-10000.111);\n let posAllParts = formatter.formatToParts(10000.111);\n let singularParts = formatter.formatToParts(1);\n\n let minusSign = allParts.find(p => p.type === 'minusSign')?.value ?? '-';\n let plusSign = posAllParts.find(p => p.type === 'plusSign')?.value;\n\n // Safari does not support the signDisplay option, but our number parser polyfills it.\n // If no plus sign was returned, but the original options contained signDisplay, default to the '+' character.\n // @ts-ignore\n if (!plusSign && (originalOptions?.signDisplay === 'exceptZero' || originalOptions?.signDisplay === 'always')) {\n plusSign = '+';\n }\n\n let decimal = allParts.find(p => p.type === 'decimal')?.value;\n let group = allParts.find(p => p.type === 'group')?.value;\n\n // this set is also for a regex, it's all literals that might be in the string we want to eventually parse that\n // don't contribute to the numerical value\n let pluralLiterals = allParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let singularLiterals = singularParts.filter(p => !nonLiteralParts.has(p.type)).map(p => escapeRegex(p.value));\n let sortedLiterals = [...new Set([...singularLiterals, ...pluralLiterals])].sort((a, b) => b.length - a.length);\n let literals = new RegExp(`${sortedLiterals.join('|')}|[\\\\p{White_Space}]`, 'gu');\n\n // These are for replacing non-latn characters with the latn equivalent\n let numerals = [...new Intl.NumberFormat(intlOptions.locale, {useGrouping: false}).format(9876543210)].reverse();\n let indexes = new Map(numerals.map((d, i) => [d, i]));\n let numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n let index = d => String(indexes.get(d));\n\n return {minusSign, plusSign, decimal, group, literals, numeral, index};\n}\n\nfunction replaceAll(str: string, find: string, replace: string) {\n // @ts-ignore\n if (str.replaceAll) {\n // @ts-ignore\n return str.replaceAll(find, replace);\n }\n\n return str.split(find).join(replace);\n}\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// https://en.wikipedia.org/wiki/Right-to-left\nconst RTL_SCRIPTS = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nconst RTL_LANGS = new Set(['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\n/**\n * Determines if a locale is read right to left using [Intl.Locale]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale}.\n */\nexport function isRTL(locale: string) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return RTL_SCRIPTS.has(script);\n }\n\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split('-')[0];\n return RTL_LANGS.has(lang);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Direction} from '@react-types/shared';\nimport {isRTL} from './utils';\nimport {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport interface Locale {\n /** The [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) language code for the locale. */\n locale: string,\n /** The writing direction for the locale. */\n direction: Direction\n}\n\n/**\n * Gets the locale setting of the browser.\n */\nexport function getDefaultLocale(): Locale {\n // @ts-ignore\n let locale = (typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage)) || 'en-US';\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([locale]);\n } catch (_err) {\n locale = 'en-US';\n }\n return {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n };\n}\n\nlet currentLocale = getDefaultLocale();\nlet listeners = new Set<(locale: Locale) => void>();\n\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (let listener of listeners) {\n listener(currentLocale);\n }\n}\n\n/**\n * Returns the current browser/system language, and updates when it changes.\n */\nexport function useDefaultLocale(): Locale {\n let isSSR = useIsSSR();\n let [defaultLocale, setDefaultLocale] = useState(currentLocale);\n\n useEffect(() => {\n if (listeners.size === 0) {\n window.addEventListener('languagechange', updateLocale);\n }\n\n listeners.add(setDefaultLocale);\n\n return () => {\n listeners.delete(setDefaultLocale);\n if (listeners.size === 0) {\n window.removeEventListener('languagechange', updateLocale);\n }\n };\n }, []);\n\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) {\n return {\n locale: 'en-US',\n direction: 'ltr'\n };\n }\n\n return defaultLocale;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isRTL} from './utils';\nimport {Locale, useDefaultLocale} from './useDefaultLocale';\nimport React, {ReactNode, useContext} from 'react';\n\ninterface ProviderProps {\n /** Contents that should have the locale applied. */\n children: ReactNode,\n /** The locale to apply to the children. */\n locale?: string\n}\n\nconst I18nContext = React.createContext(null);\n\n/**\n * Provides the locale for the application to all child components.\n */\nexport function I18nProvider(props: ProviderProps) {\n let {locale, children} = props;\n let defaultLocale = useDefaultLocale();\n\n let value: Locale = locale ? {\n locale,\n direction: isRTL(locale) ? 'rtl' : 'ltr'\n } : defaultLocale;\n\n return (\n \n {children}\n \n );\n}\n\n/**\n * Returns the current locale and layout direction.\n */\nexport function useLocale(): Locale {\n let defaultLocale = useDefaultLocale();\n let context = useContext(I18nContext);\n return context || defaultLocale;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {LocalizedStrings, MessageDictionary, MessageFormatter} from '@internationalized/message';\nimport {useCallback, useMemo} from 'react';\nimport {useLocale} from './context';\n\nexport type FormatMessage = (key: string, variables?: {[key: string]: any}) => string;\n\nconst cache = new WeakMap();\nfunction getCachedDictionary(strings: LocalizedStrings) {\n let dictionary = cache.get(strings);\n if (!dictionary) {\n dictionary = new MessageDictionary(strings);\n cache.set(strings, dictionary);\n }\n\n return dictionary;\n}\n\n/**\n * Handles formatting ICU Message strings to create localized strings for the current locale.\n * Automatically updates when the locale changes, and handles caching of messages for performance.\n * @param strings - A mapping of languages to strings by key.\n */\nexport function useMessageFormatter(strings: LocalizedStrings): FormatMessage {\n let {locale} = useLocale();\n let dictionary = useMemo(() => getCachedDictionary(strings), [strings]);\n let formatter = useMemo(() => new MessageFormatter(locale, dictionary), [locale, dictionary]);\n return useCallback((key, variables) => formatter.format(key, variables), [formatter]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DateFormatter} from '@internationalized/date';\nimport {useLocale} from './context';\nimport {useMemo, useRef} from 'react';\n\ninterface DateFormatterOptions extends Intl.DateTimeFormatOptions {\n calendar?: string\n}\n\n/**\n * Provides localized date formatting for the current locale. Automatically updates when the locale changes,\n * and handles caching of the date formatter for performance.\n * @param options - Formatting options.\n */\nexport function useDateFormatter(options?: DateFormatterOptions): DateFormatter {\n // Reuse last options object if it is shallowly equal, which allows the useMemo result to also be reused.\n let lastOptions = useRef(null);\n if (options && lastOptions.current && isEqual(options, lastOptions.current)) {\n options = lastOptions.current;\n }\n\n lastOptions.current = options;\n\n let {locale} = useLocale();\n return useMemo(() => new DateFormatter(locale, options), [locale, options]);\n}\n\nfunction isEqual(a: DateFormatterOptions, b: DateFormatterOptions) {\n if (a === b) {\n return true;\n }\n\n let aKeys = Object.keys(a);\n let bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n for (let key of aKeys) {\n if (b[key] !== a[key]) {\n return false;\n }\n }\n\n return true;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {NumberFormatOptions, NumberFormatter} from '@internationalized/number';\nimport {useLocale} from './context';\nimport {useMemo} from 'react';\n\n/**\n * Provides localized number formatting for the current locale. Automatically updates when the locale changes,\n * and handles caching of the number formatter for performance.\n * @param options - Formatting options.\n */\nexport function useNumberFormatter(options: NumberFormatOptions = {}): Intl.NumberFormat {\n let {locale} = useLocale();\n return useMemo(() => new NumberFormatter(locale, options), [locale, options]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useLocale} from './context';\n\nlet cache = new Map();\n\n/**\n * Provides localized string collation for the current locale. Automatically updates when the locale changes,\n * and handles caching of the collator for performance.\n * @param options - Collator options.\n */\nexport function useCollator(options?: Intl.CollatorOptions): Intl.Collator {\n let {locale} = useLocale();\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (cache.has(cacheKey)) {\n return cache.get(cacheKey);\n }\n\n let formatter = new Intl.Collator(locale, options);\n cache.set(cacheKey, formatter);\n return formatter;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCollator} from './useCollator';\n\ninterface Filter {\n /** Returns whether a string starts with a given substring. */\n startsWith(string: string, substring: string): boolean,\n /** Returns whether a string ends with a given substring. */\n endsWith(string: string, substring: string): boolean,\n /** Returns whether a string contains a given substring. */\n contains(string: string, substring: string): boolean\n}\n\n/**\n * Provides localized string search functionality that is useful for filtering or matching items\n * in a list. Options can be provided to adjust the sensitivity to case, diacritics, and other parameters.\n */\nexport function useFilter(options?: Intl.CollatorOptions): Filter {\n let collator = useCollator({\n usage: 'search',\n ...options\n });\n\n // TODO(later): these methods don't currently support the ignorePunctuation option.\n\n return {\n startsWith(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n\n // Normalize both strings so we can slice safely\n // TODO: take into account the ignorePunctuation option as well...\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n return collator.compare(string.slice(0, substring.length), substring) === 0;\n },\n endsWith(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n return collator.compare(string.slice(-substring.length), substring) === 0;\n },\n contains(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n\n let scan = 0;\n let sliceLen = substring.length;\n for (; scan + sliceLen <= string.length; scan++) {\n let slice = string.slice(scan, scan + sliceLen);\n if (collator.compare(substring, slice) === 0) {\n return true;\n }\n }\n\n return false;\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RadioGroupState} from '@react-stately/radio';\n\nexport const radioGroupNames = new WeakMap();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaRadioProps} from '@react-types/radio';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {InputHTMLAttributes, RefObject} from 'react';\nimport {radioGroupNames} from './utils';\nimport {RadioGroupState} from '@react-stately/radio';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\ninterface RadioAria {\n /** Props for the input element. */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for an individual\n * radio button in a radio group.\n * @param props - Props for the radio.\n * @param state - State for the radio group, as returned by `useRadioGroupState`.\n * @param ref - Ref to the HTML input element.\n */\nexport function useRadio(props: AriaRadioProps, state: RadioGroupState, ref: RefObject): RadioAria {\n let {\n value,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n } = props;\n\n const isDisabled = props.isDisabled || state.isDisabled;\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) {\n console.warn('If you do not provide children, you must specify an aria-label for accessibility');\n }\n\n let checked = state.selectedValue === value;\n\n let onChange = (e) => {\n e.stopPropagation();\n state.setSelectedValue(value);\n };\n\n let {pressProps} = usePress({\n isDisabled\n });\n\n let {focusableProps} = useFocusable(mergeProps(props, {\n onFocus: () => state.setLastFocusedValue(value)\n }), ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n let tabIndex = state.lastFocusedValue === value || state.lastFocusedValue == null ? 0 : -1;\n if (isDisabled) {\n tabIndex = undefined;\n }\n\n return {\n inputProps: mergeProps(domProps, {\n ...interactions,\n type: 'radio',\n name: radioGroupNames.get(state),\n tabIndex,\n disabled: isDisabled,\n checked,\n value,\n onChange\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaRadioGroupProps} from '@react-types/radio';\nimport {filterDOMProps, mergeProps, useId} from '@react-aria/utils';\nimport {getFocusableTreeWalker} from '@react-aria/focus';\nimport {HTMLAttributes} from 'react';\nimport {radioGroupNames} from './utils';\nimport {RadioGroupState} from '@react-stately/radio';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useLabel} from '@react-aria/label';\nimport {useLocale} from '@react-aria/i18n';\n\ninterface RadioGroupAria {\n /** Props for the radio group wrapper element. */\n radioGroupProps: HTMLAttributes,\n /** Props for the radio group's visible label (if any). */\n labelProps: HTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a radio group component.\n * Radio groups allow users to select a single item from a list of mutually exclusive options.\n * @param props - Props for the radio group.\n * @param state - State for the radio group, as returned by `useRadioGroupState`.\n */\nexport function useRadioGroup(props: AriaRadioGroupProps, state: RadioGroupState): RadioGroupAria {\n let {\n name,\n validationState,\n isReadOnly,\n isRequired,\n isDisabled,\n orientation = 'vertical'\n } = props;\n let {direction} = useLocale();\n\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Radio group is not an HTML input element so it\n // shouldn't be labeled by a href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n","import { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n const global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n const originalConsole = global.console as Console & Record;\n const wrappedLevels: Partial = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] as WrappedFunction).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] as LoggerConsoleMethods[typeof level];\n originalConsole[level] = originalWrappedFunc as Console[typeof level];\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level as typeof CONSOLE_LEVELS[number]];\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger: Logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { logger };\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata?: { [key: string]: unknown } = {};\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","import { Session as SessionInterface, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * @inheritdoc\n */\nexport class Session implements SessionInterface {\n public userAgent?: string;\n public errors: number = 0;\n public release?: string;\n public sid: string = uuid4();\n public did?: string;\n public timestamp: number;\n public started: number;\n public duration?: number = 0;\n public status: SessionStatus = 'ok';\n public environment?: string;\n public ipAddress?: string;\n public init: boolean = true;\n public ignoreDuration: boolean = false;\n\n public constructor(context?: Omit) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n\n /** JSDoc */\n // eslint-disable-next-line complexity\n public update(context: SessionContext = {}): void {\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n } else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n const duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n }\n\n /** JSDoc */\n public close(status?: Exclude): void {\n if (status) {\n this.update({ status });\n } else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n } else {\n this.update();\n }\n }\n\n /** JSDoc */\n public toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n } {\n return dropUndefinedKeys({\n sid: `${this.sid}`,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? `${this.did}` : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n }\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalObject,\n getGlobalSingleton,\n isNodeEnv,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @hidden\n * @deprecated Can be removed once `Hub.getActiveDomain` is removed.\n */\nexport interface DomainAsCarrier extends Carrier {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n members: { [key: string]: any }[];\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const global = getGlobalObject<{ navigator?: { userAgent?: string } }>();\n const { userAgent } = global.navigator || {};\n\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","export const SDK_VERSION = '6.19.7';\n","export const setPrototypeOf =\n Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj: TTarget, proto: TProto): TTarget & TProto {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj as TTarget & TProto;\n}\n\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj: TTarget, proto: TProto): TTarget & TProto {\n for (const prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj as TTarget & TProto;\n}\n","import { setPrototypeOf } from './polyfill';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public constructor(public message: string) {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n setPrototypeOf(this, new.target.prototype);\n }\n}\n","import { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { SentryError } from './error';\nimport { IS_DEBUG_BUILD } from './flags';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\nfunction dsnFromString(str: string): DsnComponents {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n\n return {\n user: components.publicKey || '',\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean | void {\n if (!IS_DEBUG_BUILD) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from: DsnLike): DsnComponents {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n\n validateDsn(components);\n\n return components;\n}\n","import { StackFrame } from '@sentry/types';\n\nconst STACKTRACE_LIMIT = 50;\n\nexport type StackParser = (stack: string, skipFirst?: number) => StackFrame[];\nexport type StackLineParserFn = (line: string) => StackFrame | undefined;\nexport type StackLineParser = [number, StackLineParserFn];\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n for (const parser of sortedParsers) {\n const frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","import { Primitive } from '@sentry/types';\n\nimport { isError, isEvent, isNaN, isSyntheticEvent } from './is';\nimport { memoBuilder, MemoFunc } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nexport function normalize(input: unknown, depth: number = +Infinity, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, there is no key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // If the value has a `toJSON` method, see if we can bail and let it do the work\n const valueWithToJSON = value as unknown & { toJSON?: () => Primitive | ObjOrArray };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n return valueWithToJSON.toJSON();\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = (isError(value) || isEvent(value) ? convertToPlainObject(value) : value) as ObjOrArray;\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n// TODO remove this in v7 (this means the method will no longer be exported, under any name)\nexport { visit as walk };\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) as Prototype).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n} & { initialized?: boolean };\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n IS_DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n addNonEnumerableProperty(integrations, 'initialized', true);\n return integrations;\n}\n","/* eslint-disable max-lines */\nimport { Scope, Session } from '@sentry/hub';\nimport {\n Client,\n DsnComponents,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n Options,\n Severity,\n Transport,\n} from '@sentry/types';\nimport {\n checkOrSetAlreadyCaught,\n dateTimestampInSeconds,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n normalize,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n truncate,\n uuid4,\n} from '@sentry/utils';\n\nimport { Backend, BackendClass } from './basebackend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IntegrationIndex, setupIntegrations } from './integration';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * The backend used to physically interact in the environment. Usually, this\n * will correspond to the client. When composing SDKs, however, the Backend\n * from the root SDK will be used.\n */\n protected readonly _backend: B;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n /** Array of used integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Number of calls being processed */\n protected _numProcessing: number = 0;\n\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n protected constructor(backendClass: BackendClass, options: O) {\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._getBackend()\n .eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n IS_DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._getBackend().getTransport();\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return this.getTransport()\n .close(timeout)\n .then(transportFlushed => clientFinished && transportFlushed);\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n session.update({\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /** Deliver captured session to Sentry */\n protected _sendSession(session: Session): void {\n this._getBackend().sendSession(session);\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Returns the current backend. */\n protected _getBackend(): B {\n return this._backend;\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = this.getOptions();\n const prepared: Event = {\n ...event,\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (evt) {\n // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n // it is only attached as extra data to the event if the event somehow skips being normalized\n evt.sdkProcessingMetadata = {\n ...evt.sdkProcessingMetadata,\n normalizeDepth: `${normalize(normalizeDepth)} (${typeof normalizeDepth})`,\n };\n }\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n protected _normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n normalized.sdkProcessingMetadata = { ...normalized.sdkProcessingMetadata, baseClientNormalized: true };\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n protected _applyClientOptions(event: Event): void {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n protected _applyIntegrationsMetadata(event: Event): void {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n protected _sendEvent(event: Event): void {\n this._getBackend().sendEvent(event);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n IS_DEBUG_BUILD && logger.error(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeSend, sampleRate } = this.getOptions();\n const transport = this.getTransport();\n\n type RecordLostEvent = NonNullable;\n type RecordLostEventParams = Parameters;\n\n function recordLostEvent(outcome: RecordLostEventParams[0], category: RecordLostEventParams[1]): void {\n if (transport.recordLostEvent) {\n transport.recordLostEvent(outcome, category);\n }\n }\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n const isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n recordLostEvent('sample_rate', 'event');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, scope, hint)\n .then(prepared => {\n if (prepared === null) {\n recordLostEvent('event_processor', event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n const isInternalException = hint && hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n const beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n recordLostEvent('before_send', event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n const session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv: PromiseLike | Event | null): PromiseLike | Event | null {\n const nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n","import { DsnComponents, DsnLike, SdkMetadata } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/**\n * Stores details about a Sentry SDK\n */\nexport interface APIDetails {\n /** The DSN as passed to Sentry.init() */\n initDsn: DsnLike;\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n metadata: SdkMetadata;\n /** The internally used Dsn object. */\n readonly dsn: DsnComponents;\n /** The envelope tunnel to use. */\n readonly tunnel?: string;\n}\n\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n *\n * @deprecated Please use APIDetails\n **/\nexport class API {\n /** The DSN as passed to Sentry.init() */\n public dsn: DsnLike;\n\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n public metadata: SdkMetadata;\n\n /** The internally used Dsn object. */\n private readonly _dsnObject: DsnComponents;\n\n /** The envelope tunnel to use. */\n private readonly _tunnel?: string;\n\n /** Create a new instance of API */\n public constructor(dsn: DsnLike, metadata: SdkMetadata = {}, tunnel?: string) {\n this.dsn = dsn;\n this._dsnObject = makeDsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n\n /** Returns the Dsn object. */\n public getDsn(): DsnComponents {\n return this._dsnObject;\n }\n\n /** Does this transport force envelopes? */\n public forceEnvelope(): boolean {\n return !!this._tunnel;\n }\n\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n public getBaseApiEndpoint(): string {\n return getBaseApiEndpoint(this._dsnObject);\n }\n\n /** Returns the store endpoint URL. */\n public getStoreEndpoint(): string {\n return getStoreEndpoint(this._dsnObject);\n }\n\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getStoreEndpointWithUrlEncodedAuth(): string {\n return getStoreEndpointWithUrlEncodedAuth(this._dsnObject);\n }\n\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getEnvelopeEndpointWithUrlEncodedAuth(): string {\n return getEnvelopeEndpointWithUrlEncodedAuth(this._dsnObject, this._tunnel);\n }\n}\n\n/** Initializes API Details */\nexport function initAPIDetails(dsn: DsnLike, metadata?: SdkMetadata, tunnel?: string): APIDetails {\n return {\n initDsn: dsn,\n metadata: metadata || {},\n dsn: makeDsn(dsn),\n tunnel,\n } as APIDetails;\n}\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents, target: 'store' | 'envelope'): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/${target}/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/** Returns the store endpoint URL. */\nfunction getStoreEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'store');\n}\n\n/**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getStoreEndpointWithUrlEncodedAuth(dsn: DsnComponents): string {\n return `${getStoreEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the envelope endpoint URL. */\nfunction _getEnvelopeEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'envelope');\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string): string {\n return tunnel ? tunnel : `${_getEnvelopeEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\nexport function getRequestHeaders(\n dsn: DsnComponents,\n clientName: string,\n clientVersion: string,\n): { [key: string]: string } {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n const header = [`Sentry sentry_version=${SENTRY_API_VERSION}`];\n header.push(`sentry_client=${clientName}/${clientVersion}`);\n header.push(`sentry_key=${dsn.publicKey}`);\n if (dsn.pass) {\n header.push(`sentry_secret=${dsn.pass}`);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions += `&name=${encodeURIComponent(dialogOptions.user.name)}`;\n }\n if (dialogOptions.user.email) {\n encodedOptions += `&email=${encodeURIComponent(dialogOptions.user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import { Envelope } from '@sentry/types';\n\nimport { isPrimitive } from './is';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as E;\n}\n\n/**\n * Get the type of the envelope. Grabs the type from the first envelope item.\n */\nexport function getEnvelopeType(envelope: E): string {\n const [, [[firstItemHeader]]] = envelope;\n return firstItemHeader.type;\n}\n\n/**\n * Serializes an envelope into a string.\n */\nexport function serializeEnvelope(envelope: Envelope): string {\n const [headers, items] = envelope;\n const serializedHeaders = JSON.stringify(headers);\n\n // Have to cast items to any here since Envelope is a union type\n // Fixed in Typescript 4.2\n // TODO: Remove any[] cast when we upgrade to TS 4.2\n // https://github.com/microsoft/TypeScript/issues/36390\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (items as any[]).reduce((acc, item: typeof items[number]) => {\n const [itemHeaders, payload] = item;\n // We do not serialize payloads that are primitives\n const serializedPayload = isPrimitive(payload) ? String(payload) : JSON.stringify(payload);\n return `${acc}\\n${JSON.stringify(itemHeaders)}\\n${serializedPayload}`;\n }, serializedHeaders);\n}\n","import {\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SentryRequest,\n SentryRequestType,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport { createEnvelope, dsnToString, normalize, serializeEnvelope } from '@sentry/utils';\n\nimport { APIDetails, getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth } from './api';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api: APIDetails): SdkInfo | undefined {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n const { name, version } = api.metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n api: APIDetails,\n): [SessionEnvelope, SentryRequestType] {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n\n // I know this is hacky but we don't want to add `sessions` to request type since it's never rate limited\n const type = 'aggregates' in session ? ('sessions' as SentryRequestType) : 'session';\n\n // TODO (v7) Have to cast type because envelope items do not accept a `SentryRequestType`\n const envelopeItem = [{ type } as { type: 'session' | 'sessions' }, session] as SessionItem;\n const envelope = createEnvelope(envelopeHeaders, [envelopeItem]);\n\n return [envelope, type];\n}\n\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session: Session | SessionAggregates, api: APIDetails): SentryRequest {\n const [envelope, type] = createSessionEnvelope(session, api);\n return {\n body: serializeEnvelope(envelope),\n type,\n url: getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel),\n };\n}\n\n/**\n * Create an Envelope from an event. Note that this is duplicated from below,\n * but on purpose as this will be refactored in v7.\n */\nexport function createEventEnvelope(event: Event, api: APIDetails): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event: Event, api: APIDetails): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n const useEnvelope = eventType === 'transaction' || !!api.tunnel;\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n let body;\n try {\n // 99.9% of events should get through just fine - no change in behavior for them\n body = JSON.stringify(event);\n } catch (err) {\n // Record data about the error without replacing original event data, then force renormalization\n event.tags.JSONStringifyError = true;\n event.extra.JSONStringifyError = err;\n try {\n body = JSON.stringify(normalize(event));\n } catch (newErr) {\n // At this point even renormalization hasn't worked, meaning something about the event data has gone very wrong.\n // Time to cut our losses and record only the new error. With luck, even in the problematic cases we're trying to\n // debug with this hack, we won't ever land here.\n const innerErr = newErr as Error;\n body = JSON.stringify({\n message: 'JSON.stringify error after renormalization',\n // setting `extra: { innerErr }` here for some reason results in an empty object, so unpack manually\n extra: { message: innerErr.message, stack: innerErr.stack },\n });\n }\n }\n\n const req: SentryRequest = {\n // this is the relevant line of code before the hack was added, to make it easy to undo said hack once we've solved\n // the mystery\n // body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n body,\n type: eventType,\n url: useEnvelope\n ? getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel)\n : getStoreEndpointWithUrlEncodedAuth(api.dsn),\n };\n\n // https://develop.sentry.dev/sdk/envelopes/\n\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n req.body,\n ];\n const envelope = createEnvelope(envelopeHeaders, [eventItem]);\n req.body = serializeEnvelope(envelope);\n }\n\n return req;\n}\n","import { Event, Response, Transport } from '@sentry/types';\nimport { resolvedSyncPromise } from '@sentry/utils';\n\n/** Noop transport */\nexport class NoopTransport implements Transport {\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike {\n return resolvedSyncPromise({\n reason: 'NoopTransport: Event has been skipped because no Dsn is configured.',\n status: 'skipped',\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(_?: number): PromiseLike {\n return resolvedSyncPromise(true);\n }\n}\n","/**\n * TODO(v7): Remove this enum and replace with SeverityLevel\n */\nexport enum Severity {\n /** JSDoc */\n Fatal = 'fatal',\n /** JSDoc */\n Error = 'error',\n /** JSDoc */\n Warning = 'warning',\n /** JSDoc */\n Log = 'log',\n /** JSDoc */\n Info = 'info',\n /** JSDoc */\n Debug = 'debug',\n /** JSDoc */\n Critical = 'critical',\n}\n\n// TODO: in v7, these can disappear, because they now also exist in `@sentry/utils`. (Having them there rather than here\n// is nice because then it enforces the idea that only types are exported from `@sentry/types`.)\nexport const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","import { Event, EventHint, Options, Session, Severity, Transport } from '@sentry/types';\nimport { logger, SentryError } from '@sentry/utils';\n\nimport { initAPIDetails } from './api';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { createEventEnvelope, createSessionEnvelope } from './request';\nimport { NewTransport } from './transports/base';\nimport { NoopTransport } from './transports/noop';\n\n/**\n * Internal platform-dependent Sentry SDK Backend.\n *\n * While {@link Client} contains business logic specific to an SDK, the\n * Backend offers platform specific implementations for low-level operations.\n * These are persisting and loading information, sending events, and hooking\n * into the environment.\n *\n * Backends receive a handle to the Client in their constructor. When a\n * Backend automatically generates events, it must pass them to\n * the Client for validation and processing first.\n *\n * Usually, the Client will be of corresponding type, e.g. NodeBackend\n * receives NodeClient. However, higher-level SDKs can choose to instantiate\n * multiple Backends and delegate tasks between them. In this case, an event\n * generated by one backend might very well be sent by another one.\n *\n * The client also provides access to options via {@link Client.getOptions}.\n * @hidden\n */\nexport interface Backend {\n /** Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventFromException(exception: any, hint?: EventHint): PromiseLike;\n\n /** Creates an {@link Event} from primitive inputs to `captureMessage`. */\n eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike;\n\n /** Submits the event to Sentry */\n sendEvent(event: Event): void;\n\n /** Submits the session to Sentry */\n sendSession(session: Session): void;\n\n /**\n * Returns the transport that is used by the backend.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n *\n * @returns The transport.\n */\n getTransport(): Transport;\n}\n\n/**\n * A class object that can instantiate Backend objects.\n * @hidden\n */\nexport type BackendClass = new (options: O) => B;\n\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nexport abstract class BaseBackend implements Backend {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** Cached transport used internally. */\n protected _transport: Transport;\n\n /** New v7 Transport that is initialized alongside the old one */\n protected _newTransport?: NewTransport;\n\n /** Creates a new backend instance. */\n public constructor(options: O) {\n this._options = options;\n if (!this._options.dsn) {\n IS_DEBUG_BUILD && logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public eventFromException(_exception: any, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromException` method');\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(_message: string, _level?: Severity, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const env = createEventEnvelope(event, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n void this._transport.sendEvent(event).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): void {\n if (!this._transport.sendSession) {\n IS_DEBUG_BUILD && logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const [env] = createSessionEnvelope(session, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n } else {\n void this._transport.sendSession(session).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._transport;\n }\n\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n protected _setupTransport(): Transport {\n return new NoopTransport();\n }\n}\n","import { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { logger } from './logger';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n const global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n const global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (global as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","import { StackFrame } from '@sentry/types';\nimport { StackLineParser, StackLineParserFn } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { Event, EventHint, Exception, Severity, StackFrame } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n createStackParser,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport {\n chromeStackParser,\n geckoStackParser,\n opera10StackParser,\n opera11StackParser,\n winjsStackParser,\n} from './stack-parsers';\n\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromError(ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(ex: Error & { framesToPop?: number; stacktrace?: string }): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return createStackParser(\n opera10StackParser,\n opera11StackParser,\n chromeStackParser,\n winjsStackParser,\n geckoStackParser,\n )(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n message: string,\n level: Severity = Severity.Info,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(input: string, syntheticException?: Error, attachStacktrace?: boolean): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","// Keeping the key broad until we add the new transports\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n headers: Record,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!parameters[1]) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of parameters[1].split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n }\n\n return updatedRateLimits;\n}\n","import { EventStatus } from '@sentry/types';\n/**\n * Converts an HTTP status code to sentry status {@link EventStatus}.\n *\n * @param code number HTTP status code\n * @returns EventStatus\n */\nexport function eventStatusFromHttpCode(code: number): EventStatus {\n if (code >= 200 && code < 300) {\n return 'success';\n }\n\n if (code === 429) {\n return 'rate_limit';\n }\n\n if (code >= 400 && code < 500) {\n return 'invalid';\n }\n\n if (code >= 500) {\n return 'failed';\n }\n\n return 'unknown';\n}\n","import { Envelope, EventStatus } from '@sentry/types';\nimport {\n disabledUntil,\n eventStatusFromHttpCode,\n getEnvelopeType,\n isRateLimited,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n rejectedSyncPromise,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nexport const ERROR_TRANSPORT_CATEGORY = 'error';\n\nexport const TRANSACTION_TRANSPORT_CATEGORY = 'transaction';\n\nexport const ATTACHMENT_TRANSPORT_CATEGORY = 'attachment';\n\nexport const SESSION_TRANSPORT_CATEGORY = 'session';\n\ntype TransportCategory =\n | typeof ERROR_TRANSPORT_CATEGORY\n | typeof TRANSACTION_TRANSPORT_CATEGORY\n | typeof ATTACHMENT_TRANSPORT_CATEGORY\n | typeof SESSION_TRANSPORT_CATEGORY;\n\nexport type TransportRequest = {\n body: string;\n category: TransportCategory;\n};\n\nexport type TransportMakeRequestResponse = {\n body?: string;\n headers?: {\n [key: string]: string | null;\n 'x-sentry-rate-limits': string | null;\n 'retry-after': string | null;\n };\n reason?: string;\n statusCode: number;\n};\n\nexport type TransportResponse = {\n status: EventStatus;\n reason?: string;\n};\n\ninterface InternalBaseTransportOptions {\n bufferSize?: number;\n}\n\nexport interface BaseTransportOptions extends InternalBaseTransportOptions {\n // url to send the event\n // transport does not care about dsn specific - client should take care of\n // parsing and figuring that out\n url: string;\n}\n\n// TODO: Move into Browser Transport\nexport interface BrowserTransportOptions extends BaseTransportOptions {\n // options to pass into fetch request\n fetchParams: Record;\n headers?: Record;\n sendClientReports?: boolean;\n}\n\nexport interface NewTransport {\n send(request: Envelope): PromiseLike;\n flush(timeout?: number): PromiseLike;\n}\n\nexport type TransportRequestExecutor = (request: TransportRequest) => PromiseLike;\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates a `NewTransport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n): NewTransport {\n let rateLimits: RateLimits = {};\n\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const envCategory = getEnvelopeType(envelope);\n const category = envCategory === 'event' ? 'error' : (envCategory as TransportCategory);\n const request: TransportRequest = {\n category,\n body: serializeEnvelope(envelope),\n };\n\n // Don't add to buffer if transport is already rate-limited\n if (isRateLimited(rateLimits, category)) {\n return rejectedSyncPromise({\n status: 'rate_limit',\n reason: getRateLimitReason(rateLimits, category),\n });\n }\n\n const requestTask = (): PromiseLike =>\n makeRequest(request).then(({ body, headers, reason, statusCode }): PromiseLike => {\n const status = eventStatusFromHttpCode(statusCode);\n if (headers) {\n rateLimits = updateRateLimits(rateLimits, headers);\n }\n if (status === 'success') {\n return resolvedSyncPromise({ status, reason });\n }\n return rejectedSyncPromise({\n status,\n reason:\n reason ||\n body ||\n (status === 'rate_limit' ? getRateLimitReason(rateLimits, category) : 'Unknown transport error'),\n });\n });\n\n return buffer.add(requestTask);\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getRateLimitReason(rateLimits: RateLimits, category: TransportCategory): string {\n return `Too many ${category} requests, backing off until: ${new Date(\n disabledUntil(rateLimits, category),\n ).toISOString()}`;\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { forget, getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\nconst global = getGlobalObject();\nlet cachedFetchImpl: FetchImpl;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n const document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url: string, body: string): void {\n const isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n\n if (supportsFetch()) {\n const fetch = getNativeFetchImplementation();\n return forget(\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }),\n );\n }\n}\n","import {\n APIDetails,\n eventToSentryRequest,\n getEnvelopeEndpointWithUrlEncodedAuth,\n getStoreEndpointWithUrlEncodedAuth,\n initAPIDetails,\n sessionToSentryRequest,\n} from '@sentry/core';\nimport {\n ClientReport,\n Event,\n Outcome,\n Response as SentryResponse,\n SentryRequest,\n SentryRequestType,\n Session,\n Transport,\n TransportOptions,\n} from '@sentry/types';\nimport {\n createClientReportEnvelope,\n disabledUntil,\n dsnToString,\n eventStatusFromHttpCode,\n getGlobalObject,\n isRateLimited,\n logger,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { sendReport } from './utils';\n\nfunction requestTypeToCategory(ty: SentryRequestType): string {\n const tyStr = ty as string;\n return tyStr === 'event' ? 'error' : tyStr;\n}\n\nconst global = getGlobalObject();\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @deprecated\n */\n public url: string;\n\n /** Helper to get Sentry API endpoints. */\n protected readonly _api: APIDetails;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer = makePromiseBuffer(30);\n\n /** Locks transport after receiving rate limits in a response */\n protected _rateLimits: RateLimits = {};\n\n protected _outcomes: { [key: string]: number } = {};\n\n public constructor(public options: TransportOptions) {\n this._api = initAPIDetails(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = getStoreEndpointWithUrlEncodedAuth(this._api.dsn);\n\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n if (global.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this._buffer.drain(timeout);\n }\n\n /**\n * @inheritDoc\n */\n public recordLostEvent(reason: Outcome, category: SentryRequestType): void {\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n const key = `${requestTypeToCategory(category)}:${reason}`;\n IS_DEBUG_BUILD && logger.log(`Adding outcome: ${key}`);\n this._outcomes[key] = (this._outcomes[key] ?? 0) + 1;\n }\n\n /**\n * Send outcomes as an envelope\n */\n protected _flushOutcomes(): void {\n if (!this.options.sendClientReports) {\n return;\n }\n\n const outcomes = this._outcomes;\n this._outcomes = {};\n\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n IS_DEBUG_BUILD && logger.log('No outcomes to flush');\n return;\n }\n\n IS_DEBUG_BUILD && logger.log(`Flushing outcomes:\\n${JSON.stringify(outcomes, null, 2)}`);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._api.dsn, this._api.tunnel);\n\n const discardedEvents = Object.keys(outcomes).map(key => {\n const [category, reason] = key.split(':');\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n // TODO: Improve types on discarded_events to get rid of cast\n }) as ClientReport['discarded_events'];\n const envelope = createClientReportEnvelope(discardedEvents, this._api.tunnel && dsnToString(this._api.dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n IS_DEBUG_BUILD && logger.error(e);\n }\n }\n\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n protected _handleResponse({\n requestType,\n response,\n headers,\n resolve,\n reject,\n }: {\n requestType: SentryRequestType;\n response: Response | XMLHttpRequest;\n headers: Record;\n resolve: (value?: SentryResponse | PromiseLike | null | undefined) => void;\n reject: (reason?: unknown) => void;\n }): void {\n const status = eventStatusFromHttpCode(response.status);\n\n this._rateLimits = updateRateLimits(this._rateLimits, headers);\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(requestType)) {\n IS_DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.warn(`Too many ${requestType} requests, backing off until: ${this._disabledUntil(requestType)}`);\n }\n\n if (status === 'success') {\n resolve({ status });\n return;\n }\n\n reject(response);\n }\n\n /**\n * Gets the time that given category is disabled until for rate limiting\n *\n * @deprecated Please use `disabledUntil` from @sentry/utils\n */\n protected _disabledUntil(requestType: SentryRequestType): Date {\n const category = requestTypeToCategory(requestType);\n return new Date(disabledUntil(this._rateLimits, category));\n }\n\n /**\n * Checks if a category is rate limited\n *\n * @deprecated Please use `isRateLimited` from @sentry/utils\n */\n protected _isRateLimited(requestType: SentryRequestType): boolean {\n const category = requestTypeToCategory(requestType);\n return isRateLimited(this._rateLimits, category);\n }\n\n protected abstract _sendRequest(\n sentryRequest: SentryRequest,\n originalPayload: Event | Session,\n ): PromiseLike;\n}\n","import { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise: PromiseLike): void {\n void promise.then(null, e => {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n","import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\n/** `fetch` based transport */\nexport class FetchTransport extends BaseTransport {\n /**\n * Fetch API reference which always points to native browser implementation.\n */\n private _fetch: typeof fetch;\n\n public constructor(options: TransportOptions, fetchImpl: FetchImpl = getNativeFetchImplementation()) {\n super(options);\n this._fetch = fetchImpl;\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n const options: RequestInit = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : '') as ReferrerPolicy,\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n void this._fetch(sentryRequest.url, options)\n .then(response => {\n const headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n this._handleResponse({\n requestType: sentryRequest.type,\n response,\n headers,\n resolve,\n reject,\n });\n })\n .catch(reject);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { Event, Response, SentryRequest, Session } from '@sentry/types';\nimport { SentryError, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n const request = new XMLHttpRequest();\n\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n const headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n this._handleResponse({ requestType: sentryRequest.type, response: request, headers, resolve, reject });\n }\n };\n\n request.open('POST', sentryRequest.url);\n for (const header in this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(this.options.headers, header)) {\n request.setRequestHeader(header, this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { BaseBackend, getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails } from '@sentry/core';\nimport { Event, EventHint, Options, Severity, Transport, TransportOptions } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, makeNewFetchTransport, makeNewXHRTransport, XHRTransport } from './transports';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see BrowserClient for more information.\n */\nexport interface BrowserOptions extends Options {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array;\n\n /** @deprecated use {@link Options.allowUrls} instead. */\n whitelistUrls?: Array;\n\n /** @deprecated use {@link Options.denyUrls} instead. */\n blacklistUrls?: Array;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class BrowserBackend extends BaseBackend {\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(exception, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike {\n return eventFromMessage(message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions: TransportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn,\n tunnel: this._options.tunnel,\n sendClientReports: this._options.sendClientReports,\n _metadata: this._options._metadata,\n };\n\n const api = initAPIDetails(transportOptions.dsn, transportOptions._metadata, transportOptions.tunnel);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel);\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n const requestOptions: RequestInit = { ...transportOptions.fetchParameters };\n this._newTransport = makeNewFetchTransport({ requestOptions, url });\n return new FetchTransport(transportOptions);\n }\n\n this._newTransport = makeNewXHRTransport({\n url,\n headers: transportOptions.headers,\n });\n return new XHRTransport(transportOptions);\n }\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\n\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\nexport interface FetchTransportOptions extends BaseTransportOptions {\n requestOptions?: RequestInit;\n}\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeNewFetchTransport(\n options: FetchTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n ...options.requestOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => {\n return response.text().then(body => ({\n body,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n reason: response.statusText,\n statusCode: response.status,\n }));\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\nexport interface XHRTransportOptions extends BaseTransportOptions {\n headers?: { [key: string]: string };\n}\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeNewXHRTransport(options: XHRTransportOptions): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, _reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n const response = {\n body: xhr.response,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n reason: xhr.statusText,\n statusCode: xhr.status,\n };\n resolve(response);\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import { getCurrentHub, Hub, Scope } from '@sentry/hub';\nimport {\n Breadcrumb,\n CaptureContext,\n CustomSamplingContext,\n Event,\n Extra,\n Extras,\n Primitive,\n Severity,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\n\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method: string, ...args: any[]): T {\n const hub = getCurrentHub();\n if (hub && hub[method as keyof Hub]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (hub[method as keyof Hub] as any)(...args);\n }\n throw new Error(`No hub defined or ${method} was not found on the hub, please open a bug report.`);\n}\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception: any, captureContext?: CaptureContext): string {\n const syntheticException = new Error('Sentry syntheticException');\n\n return callOnHub('captureException', exception, {\n captureContext,\n originalException: exception,\n syntheticException,\n });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message: string, captureContext?: CaptureContext | Severity): string {\n const syntheticException = new Error(message);\n\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n\n return callOnHub('captureMessage', message, level, {\n originalException: message,\n syntheticException,\n ...context,\n });\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event: Event): string {\n return callOnHub('captureEvent', event);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback: (scope: Scope) => void): void {\n callOnHub('configureScope', callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb): void {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): void {\n callOnHub('setContext', name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): void {\n callOnHub('setExtras', extras);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): void {\n callOnHub('setTags', tags);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): void {\n callOnHub('setExtra', key, extra);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): void {\n callOnHub('setTag', key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): void {\n callOnHub('setUser', user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback: (scope: Scope) => void): void {\n callOnHub('withScope', callback);\n}\n\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method: string, ...args: any[]): void {\n callOnHub('_invokeClient', method, ...args);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n return callOnHub('startTransaction', { ...context }, customSamplingContext);\n}\n","import { captureException, getReportDialogEndpoint, withScope } from '@sentry/core';\nimport { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getGlobalObject,\n getOriginalFunction,\n logger,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nconst global = getGlobalObject();\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sentryWrapped: WrappedFunction = function (this: any): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options: ReportDialogOptions = {}): void {\n if (!global.document) {\n return;\n }\n\n if (!options.eventId) {\n IS_DEBUG_BUILD && logger.error('Missing eventId option in showReportDialog call');\n return;\n }\n\n if (!options.dsn) {\n IS_DEBUG_BUILD && logger.error('Missing dsn option in showReportDialog call');\n return;\n }\n\n const script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(options.dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = global.document.head || global.document.body;\n\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\n\nconst global = getGlobalObject();\n\ntype InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\ntype InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n IS_DEBUG_BUILD && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: string): void {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = global.onpopstate;\n global.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (global as any)[target] && (global as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","export const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Severity } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n getGlobalObject,\n htmlTreeAsString,\n parseUrl,\n safeJoin,\n severityFromString,\n} from '@sentry/utils';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom: boolean | { serializeAttribute: string | string[] };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /** JSDoc */\n private readonly _options: BreadcrumbsOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n public addSentryBreadcrumb(event: Event): void {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this._options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this._options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this._options.dom));\n }\n if (this._options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this._options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this._options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: string]: any }) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, keyAttrs)\n : htmlTreeAsString(handlerData.event as unknown as Node, keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n const global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n","import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","import { Event, EventProcessor, Hub, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreInternal: boolean;\n\n /** @deprecated use {@link InboundFiltersOptions.allowUrls} instead. */\n whitelistUrls: Array;\n /** @deprecated use {@link InboundFiltersOptions.denyUrls} instead. */\n blacklistUrls: Array;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (processor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((event: Event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n });\n }\n}\n\n/** JSDoc */\nexport function _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.whitelistUrls || []),\n ...(internalOptions.allowUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.whitelistUrls || []),\n ...(clientOptions.allowUrls || []),\n ],\n denyUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.blacklistUrls || []),\n ...(internalOptions.denyUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.blacklistUrls || []),\n ...(clientOptions.denyUrls || []),\n ],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n IS_DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n if (event.stacktrace) {\n return _getLastValidUrl(event.stacktrace.frames);\n }\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';\n\nimport { wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n const global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const global = getGlobalObject() as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Hub, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, attachStacktrace, true);\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndAttachStacktrace(): [Hub, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n","import { Event, EventProcessor, Exception, Hub, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string = Dedupe.id;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((currentEvent: Event) => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n IS_DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n } else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, Integration } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nconst global = getGlobalObject();\n\n/** UserAgent */\nexport class UserAgent implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'UserAgent';\n\n /**\n * @inheritDoc\n */\n public name: string = UserAgent.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { Hub } from '@sentry/types';\nimport { addInstrumentationHandler, getGlobalObject, logger, resolvedSyncPromise } from '@sentry/utils';\n\nimport { BrowserOptions } from './backend';\nimport { BrowserClient } from './client';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { ReportDialogOptions, wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n const window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n initAndBind(BrowserClient, options);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n const client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\nfunction startSessionOnHub(hub: Hub): void {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n const window = getGlobalObject();\n const document = window.document;\n\n if (typeof document === 'undefined') {\n IS_DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n","const browsers = [\n ['aol', /AOLShield\\/([0-9._]+)/],\n ['firefox', /Firefox\\/([0-9.]+)(?:\\s|$)/],\n ['opera', /Opera\\/([0-9.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9.]+)(:?\\s|$)/],\n ['edge', /Edge\\/([0-9._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9._]+)/],\n ['edge-chromium', /Edg\\/([0-9.]+)/],\n ['chromium-webview', /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv:([0-9.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['safari', /Version\\/([0-9._]+).*Safari/],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9.]+)(:?\\s|$)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9.]+)/],\n ['android', /Android\\s([0-9.]+)/],\n ['ios', /Version\\/([0-9._]+).*Mobile.*Safari.*/],\n ['yandexbrowser', /YaBrowser\\/([0-9._]+)/],\n ['crios', /CriOS\\/([0-9.]+)(:?\\s|$)/],\n ['vivaldi', /Vivaldi\\/([0-9.]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9.]+)/],\n ['phantomjs', /PhantomJS\\/([0-9.]+)(:?\\s|$)/],\n ['fxios', /FxiOS\\/([0-9.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9.]+)/],\n ['facebook', /FBAV\\/([0-9.]+)/],\n ['instagram', /Instagram\\s([0-9.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9.]+).*Gecko\\)$/],\n];\n\nexport default browsers;\n","// TODO: Remove when unsupported browser redirecting is happening server side\nimport browsers from './definitions';\n\n\nclass CurrentBrowser {\n constructor(userAgent, browserBaselines, options) {\n this.browserBaselines = browserBaselines;\n this.init(browserBaselines);\n this.userAgent = userAgent || null;\n this.options = options || {};\n this.browserArgs = this.formatBrowserArgs(browserBaselines);\n this.isBrowserSupported = this.isBrowserSupported();\n this.browserName = '';\n this.browserVersion = '';\n }\n\n init() {\n if (!this.browserBaselines) {\n throw new Error('Must provide browser version baselines');\n }\n }\n\n getBrowserFromUserAgent() {\n return browsers.find(browser => browser[1].test(this.userAgent));\n }\n\n setNameAndVersion(foundBrowser) {\n const foundBrowserMatch = foundBrowser[1].exec(this.userAgent);\n const version = foundBrowserMatch && foundBrowserMatch[1].split(/[._]/).slice(0, 3);\n const minorVersion = version.slice(1).join('') || 0;\n\n this.browserName = String(foundBrowser[0]);\n this.browserVersion = Number(`${version[0]}.${minorVersion}`);\n }\n\n formatBrowserArgs() {\n return this.browserBaselines.map(browserString => ({\n name: String(browserString.split(' ')[0]).toLowerCase(),\n version: Number(browserString.split(' ')[1]),\n }));\n }\n\n isBrowserSupported() {\n if (!this.userAgent) {\n return this.options.allowNoUserAgent;\n }\n\n const foundBrowser = this.getBrowserFromUserAgent();\n\n if (!foundBrowser) {\n return false;\n }\n\n this.setNameAndVersion(foundBrowser);\n\n const matchedBrowserBaseline = this.browserArgs\n .find(browserArg => this.browserName === browserArg.name);\n\n return !!matchedBrowserBaseline && (this.browserVersion - matchedBrowserBaseline.version > 0);\n }\n}\n\nexport default CurrentBrowser;\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { getCurrentHub, BrowserClient, defaultIntegrations } from '@sentry/browser';\nimport { connect } from 'react-redux';\nimport { getErrors } from '../../redux/selectors/errors';\nimport getUserMessages from './getUserMessages';\nimport BrowserCompatibility from '../../helpers/BrowserCompatibility/BrowserCompatibility';\nimport getValueFromWindow from '../../helpers/getValueFromWindow';\nimport packageJson from '../../../../package.json';\n\n\nconst mapStateToProps = state => ({\n errors: getErrors(state),\n});\n\nclass Boundary extends Component {\n constructor(props) {\n super(props);\n this.SENTRY_DSN = 'https://05573f45a7364b998eaeb96ea9b8a750@sentry.io/1481568';\n this.instanceType = getValueFromWindow('site_globals', 'instanceType');\n this.siteId = getValueFromWindow('site_globals', 'siteId');\n this.userAgent = navigator.userAgent;\n this.browserBaseline = ['Safari 10', 'Chrome 56', 'Edge 15', 'Firefox 51'];\n\n this.setupSentry();\n }\n\n componentWillReceiveProps(nextProps) {\n const { errors } = this.props;\n\n if (nextProps.errors !== errors && nextProps.errors.length) {\n this.reportToUser(nextProps.errors);\n }\n }\n\n setupSentry() {\n if (/production/.test(this.instanceType)) {\n this.sentry = getCurrentHub();\n\n this.sentry.bindClient(\n new BrowserClient({\n debug: true,\n dsn: this.SENTRY_DSN,\n release: packageJson.version,\n integrations: defaultIntegrations,\n beforeSend(event) {\n if (event.extra && event.extra.componentId) {\n return event;\n }\n\n return null;\n },\n }),\n );\n }\n }\n\n reportToUser(errors) {\n const { blockUserOnError } = this.props;\n\n if (blockUserOnError) {\n window.emitMarketplaceEvent(\n 'showUserErrorMessage',\n getUserMessages(errors),\n );\n }\n }\n\n componentDidCatch(error, errorInfo) {\n this.reportToUser(error);\n this.reportToSentry(error, errorInfo);\n }\n\n isSupportedBrowser() {\n const browserChecker = new BrowserCompatibility(this.userAgent, this.browserBaseline);\n\n return browserChecker.isBrowserSupported;\n }\n\n reportToSentry(error, errorInfo = {}) {\n const { componentId, blockUserOnError } = this.props;\n\n if (this.sentry && this.isSupportedBrowser()) {\n this.sentry.withScope((scope) => {\n scope.setExtras({\n componentId,\n instanceType: this.instanceType,\n siteId: this.siteId,\n url: location.href,\n userAgent: this.userAgent,\n blockUserOnError,\n });\n Object.keys(errorInfo).forEach((key) => {\n scope.setExtra(key, errorInfo[key]);\n });\n this.sentry.captureException(error);\n });\n }\n }\n\n render() {\n const { children } = this.props;\n\n return children;\n }\n}\n\nBoundary.propTypes = {\n componentId: PropTypes.string.isRequired,\n children: PropTypes.element.isRequired,\n errors: PropTypes.arrayOf(PropTypes.shape({})),\n blockUserOnError: PropTypes.bool.isRequired,\n};\n\nBoundary.defaultProps = {\n errors: undefined,\n};\n\nexport default {\n withStore: connect(mapStateToProps)(Boundary),\n withoutStore: Boundary,\n};\n","const getUserMessages = function getUserMessages(errors) { // eslint-disable-line\n // TODO create helper function to derive messages from errors\n\n return {\n headline: 'Something’s broken right now - we’re working on a fix',\n message: 'In the meantime, try refreshing the page or check back later.',\n };\n};\n\nexport default getUserMessages;\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaToggleProps} from '@react-types/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {InputHTMLAttributes, RefObject} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface ToggleAria {\n /**\n * Props to be spread on the input element.\n */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(props: AriaToggleProps, state: ToggleState, ref: RefObject): ToggleAria {\n let {\n isDisabled = false,\n isRequired,\n isReadOnly,\n value,\n name,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n validationState = 'valid'\n } = props;\n\n let onChange = (e) => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(e.target.checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) {\n console.warn('If you do not provide children, you must specify an aria-label for accessibility');\n }\n\n // This handles focusing the input on pointer down, which Safari does not do by default.\n let {pressProps} = usePress({\n isDisabled\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n return {\n inputProps: mergeProps(domProps, {\n 'aria-invalid': validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n onChange,\n disabled: isDisabled,\n value,\n name,\n type: 'checkbox',\n ...interactions\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ToggleProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface ToggleState {\n /** Whether the toggle is selected. */\n readonly isSelected: boolean,\n\n /** Updates selection state. */\n setSelected(isSelected: boolean): void,\n\n /** Toggle the selection state. */\n toggle(): void\n}\n\n/**\n * Provides state management for toggle components like checkboxes and switches.\n */\nexport function useToggleState(props: ToggleProps = {}): ToggleState {\n let {isReadOnly} = props;\n\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = useControlledState(props.isSelected, props.defaultSelected || false, props.onChange);\n\n function updateSelected(value) {\n if (!isReadOnly) {\n setSelected(value);\n }\n }\n\n function toggleState() {\n if (!isReadOnly) {\n setSelected(!isSelected);\n }\n }\n\n return {\n isSelected,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxProps} from '@react-types/checkbox';\nimport {InputHTMLAttributes, RefObject, useEffect} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useToggle} from '@react-aria/toggle';\n\nexport interface CheckboxAria {\n /** Props for the input element. */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox component.\n * Checkboxes allow users to select multiple items from a list of individual items, or\n * to mark one individual item as selected.\n * @param props - Props for the checkbox.\n * @param state - State for the checkbox, as returned by `useToggleState`.\n * @param inputRef - A ref for the HTML input element.\n */\nexport function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject): CheckboxAria {\n let {inputProps} = useToggle(props, state, inputRef);\n let {isSelected} = state;\n\n let {isIndeterminate} = props;\n useEffect(() => {\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n });\n\n return {\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-checked': isIndeterminate ? 'mixed' : isSelected\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\n\nexport const checkboxGroupNames = new WeakMap();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxGroupProps} from '@react-types/checkbox';\nimport {checkboxGroupNames} from './utils';\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {HTMLAttributes} from 'react';\nimport {useLabel} from '@react-aria/label';\n\ninterface CheckboxGroupAria {\n /** Props for the checkbox group wrapper element. */\n groupProps: HTMLAttributes,\n /** Props for the checkbox group's visible label (if any). */\n labelProps: HTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox group component.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox group.\n * @param state - State for the checkbox group, as returned by `useCheckboxGroupState`.\n */\nexport function useCheckboxGroup(props: AriaCheckboxGroupProps, state: CheckboxGroupState): CheckboxGroupAria {\n let {isDisabled, name} = props;\n\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Checkbox group is not an HTML input element so it\n // shouldn't be labeled by a \n );\n};\n\nDropdown.propTypes = {\n theme: PropTypes.string,\n disabledMsg: PropTypes.string,\n fieldName: PropTypes.string,\n selectedValue: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n onChange: PropTypes.func.isRequired,\n inputDescribedBy: PropTypes.string,\n inputLabelledBy: PropTypes.string,\n};\n\nDropdown.defaultProps = {\n theme: 'default',\n fieldName: '',\n selectedValue: '',\n disabledMsg: '',\n inputDescribedBy: null,\n inputLabelledBy: null,\n};\n\nexport default Dropdown;\n","import React from 'react';\nimport Checkbox from '../Checkbox/Checkbox';\nimport IconWrenchScreedriver from '../../icons/icon-wrench-screwdriver.svg';\nimport classNames from 'classnames';\nimport { Loader } from 'react-bootstrap-typeahead';\nimport RadioGroup from '../AriaRadio/RadioGroup';\nimport Radio from '../AriaRadio/Radio';\nimport InfoModal from '../InfoModal/InfoModal';\nimport InstallationIcon from '../../../shared/icons/icon-wrench-screwdriver.svg';\nimport HaulawayIcon from '../../../shared/icons/icon-haul-away.svg';\nimport MarkdownTableRenderer from '../MarkdownRenderers/MarkdownTableRenderer';\nimport CustomReactMarkdown from '../MarkdownRenderers/CustomReactMarkdown';\n\nconst ExternalAddOns = ({ externalAddOns, updateAddOnSelection, inFlight }) => {\n\n const {\n informationMessage,\n addOns: {\n ids = []\n }\n } = externalAddOns\n\n if (inFlight) {\n return (\n
\n \n
\n )\n }\n\n if (ids.length === 0) {\n return null;\n }\n\n const getAddonModal = function (modalInfo, Icon) {\n\n const message = modalInfo.modalBody;\n const tableContent = modalInfo.tableContent;\n\n const MessageComponent = (\n <>\n \n {\n tableContent && (\n \n )\n }\n \n )\n \n return(\n }\n >\n {modalInfo.modalContentLabel}\n \n )\n }\n\n const getRadioFields = function () {\n const {\n addOns: {\n groupedByFieldTypes: {\n radio: radiofields = {}\n }\n },\n addOns\n } = externalAddOns;\n\n const radioGroups = Object.keys(radiofields);\n\n return (\n radioGroups.map((radioGroup) => {\n const selectedValue = radiofields[radioGroup].find((addOnId) => addOns[addOnId].selected);\n return (\n value && updateAddOnSelection(value, true)}\n name={`externalAddOn-${radioGroup}`}\n key={radioGroup}\n aria-label={radioGroup}\n activeValue={selectedValue}\n >\n {\n radiofields[radioGroup].map((addOnId) => {\n const {\n externalAddOnId,\n externalAddOnPrice,\n externalAddOnDisplayPrice,\n selected,\n disabled,\n externalAddOnModalInfo,\n interDependencyRules\n } = addOns[addOnId];\n\n const price = externalAddOnDisplayPrice || externalAddOnPrice;\n \n const rowClassName = classNames({\n \"externalAddOns__addons-row\": true,\n \"externalAddOns__addons-row--disabled\": disabled\n });\n return (\n
\n \n
\n {interDependencyRules?.overrides?.displayText}\n {`$${price}`}\n
\n \n
\n {externalAddOnModalInfo && getAddonModal(externalAddOnModalInfo, InstallationIcon)}\n
\n
\n )\n })}\n \n )\n })\n )\n }\n\n const getCheckboxFields = function () {\n const {\n addOns: {\n groupedByFieldTypes: {\n checkbox: checkboxFields = {}\n }\n },\n addOns\n } = externalAddOns;\n\n const checkBoxGroups = Object.keys(checkboxFields);\n\n return (\n checkBoxGroups.map((checkBoxGroup) => {\n return (\n checkboxFields[checkBoxGroup].map((addOnId, index) => {\n const {\n externalAddOnId,\n externalAddOnPrice,\n externalAddOnDisplayPrice,\n selected,\n disabled,\n externalAddOnModalInfo,\n interDependencyRules\n } = addOns[addOnId];\n\n const price = externalAddOnDisplayPrice || externalAddOnPrice;\n \n const rowClassName = classNames({\n \"externalAddOns__addons-row\": true,\n \"externalAddOns__addons-row--disabled\": disabled\n });\n\n const listItemClassName = classNames({\n \"externalAddOns__addons-list-item\": true,\n \"externalAddOns__addons-list-item-last\": index === checkboxFields[checkBoxGroup].length - 1\n });\n return (\n
\n updateAddOnSelection(externalAddOnId, selected)}>\n
\n {interDependencyRules?.overrides?.displayText}\n {`$${price}`}\n
\n {externalAddOnModalInfo && getAddonModal(externalAddOnModalInfo, HaulawayIcon)}\n \n
\n )\n })\n )\n })\n )\n }\n\n return (\n
\n
\n
\n \n
\n
Add-On Services
\n
\n\n
\n {\n informationMessage ? (\n
{informationMessage}
\n ) : (\n <>\n {\n getRadioFields()\n }\n {\n getCheckboxFields()\n }\n \n )\n }\n
\n
\n )\n}\n\nexport default ExternalAddOns;","import React from 'react';\n\n\nconst isJSX = function isJSX(test) {\n return test && typeof test === 'object' && React.isValidElement(test);\n};\n\nexport default isJSX;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport { FocusRing } from '@react-aria/focus';\nimport CloseX from '../../icons/icon-close-modal.svg';\nimport isEnterOrSpace from '../../helpers/isEnterOrSpace';\nimport isJSX from '../../helpers/isJSX';\nimport CustomReactMarkdown from '../MarkdownRenderers/CustomReactMarkdown';\nimport { styler } from '../../helpers/classNameHelper';\n\n\nconst InfoModal = (props) => {\n const {\n children,\n headerIcon,\n hideIcon,\n isOpen,\n onRequestClose,\n styleFlag,\n buttonElement,\n contentLabel,\n openTrack,\n contentLinkTrack,\n } = props;\n\n const style = styler(styleFlag);\n const [modalIsOpen, setModalIsOpen] = useState();\n\n const appElement = document.body.querySelector('.se-page');\n const ButtonElement = buttonElement;\n const modalProps = {\n ariaHideApp: !!appElement,\n appElement,\n };\n\n useEffect(() => {\n if (isOpen !== null && modalIsOpen !== isOpen) {\n setModalIsOpen(isOpen);\n }\n }, [isOpen]);\n\n const openModal = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n const { disabled } = props;\n\n if (disabled) {\n return;\n }\n\n if (openTrack) {\n openTrack();\n }\n\n setModalIsOpen(true);\n };\n\n const closeModal = (event) => {\n event.stopPropagation();\n event.preventDefault();\n\n setModalIsOpen(false);\n };\n\n const renderHeader = () => {\n const { header, subheader } = props;\n\n if (!header) {\n return null;\n }\n\n return isJSX(header) ?\n header :\n (\n

\n {subheader &&\n {subheader}}\n {header}\n

\n );\n };\n\n const renderMessage = () => {\n const { message } = props;\n\n if (!message) {\n return null;\n }\n\n if (isJSX(message)) {\n return message;\n }\n\n const linkActions = {};\n\n if (contentLinkTrack instanceof Function) {\n linkActions['*'] = contentLinkTrack;\n }\n\n return (\n \n );\n };\n\n const closeHandler = onRequestClose || closeModal;\n\n return (\n <>\n {children && (\n \n isEnterOrSpace(event) && openModal(event)}\n >\n {children}\n \n \n )}\n \n
\n \n isEnterOrSpace(event) && closeHandler(event)}\n >\n \n \n \n {!hideIcon && headerIcon && (\n \n {headerIcon}\n \n )}\n {renderHeader()}\n
\n
\n {renderMessage()}\n
\n \n \n );\n};\n\nInfoModal.propTypes = {\n children: (props, propName) => {\n const { [propName]: prop, isOpen, onRequestClose } = props;\n\n if (prop && (isOpen !== null || onRequestClose !== null)) {\n return new Error(`[${propName}] cannot be used in conjunction with external state handlers [isOpen] and [onRequestClose]`);\n }\n\n return null;\n },\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n subheader: PropTypes.string,\n headerIcon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n styleFlag: PropTypes.string.isRequired,\n hideIcon: PropTypes.bool,\n disabled: PropTypes.bool,\n isOpen: PropTypes.bool,\n onRequestClose: PropTypes.func,\n buttonElement: PropTypes.string,\n contentLabel: PropTypes.string.isRequired,\n openTrack: PropTypes.func,\n contentLinkTrack: PropTypes.func,\n};\n\nInfoModal.defaultProps = {\n children: null,\n header: null,\n subheader: null,\n headerIcon: null,\n message: '',\n hideIcon: false,\n disabled: false,\n isOpen: null,\n onRequestClose: null,\n buttonElement: 'div',\n openTrack: null,\n contentLinkTrack: null,\n};\n\nexport default InfoModal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEnterOrSpace from '../../helpers/isEnterOrSpace';\n\n\nconst Link = ({\n action,\n href,\n children,\n className,\n external,\n}) => {\n const hasLocationalHref = href && href.length > 0 && href !== '#';\n const hasCallableAction = action instanceof Function;\n const preventDefaultEvent = hasCallableAction || !hasLocationalHref;\n\n const handleEvent = (event) => {\n if (preventDefaultEvent) {\n event.preventDefault();\n }\n\n if (hasCallableAction) {\n action(event);\n }\n\n if (preventDefaultEvent && hasLocationalHref) {\n if (external) {\n window.open(href);\n } else {\n window.location = href;\n }\n }\n };\n\n const targetProps = external ?\n {\n rel: 'noopener noreferrer',\n target: '_blank',\n } :\n null;\n\n return (\n isEnterOrSpace(event) && handleEvent(event)}\n >\n {children}\n
\n );\n};\n\nLink.propTypes = {\n action: PropTypes.func,\n href: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n external: PropTypes.bool,\n className: PropTypes.string,\n};\nLink.defaultProps = {\n action: null,\n className: '',\n external: false,\n};\n\nexport default Link;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEnterOrSpace from '../../helpers/isEnterOrSpace';\nimport animateScroll from '../../helpers/animateScroll';\n\n\nconst AnchorLink = ({\n className,\n children,\n href,\n}) => {\n const handleAnchorClick = (event) => {\n event.preventDefault();\n const targetOffset = document.querySelector(href).offsetTop;\n\n animateScroll(targetOffset);\n };\n\n return (\n handleAnchorClick(event)}\n onKeyPress={event => isEnterOrSpace(event) && handleAnchorClick(event)}\n >\n {children}\n \n );\n};\n\nAnchorLink.propTypes = {\n className: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n href: PropTypes.string.isRequired,\n};\n\nexport default AnchorLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Link from '../Link/Link';\nimport AnchorLink from '../AnchorLink/AnchorLink';\nimport linkHelper from '../../helpers/linkHelper';\nimport ExternalLinkIcon from '../../icons/icon-external-link.svg';\nimport { modify } from '../../helpers/classNameHelper';\n\n\nconst MarkdownLinkRenderer = ({\n action,\n href,\n children,\n className,\n external,\n}) => {\n const {\n allowIcon,\n href: parsedHref,\n hooks,\n openNewTab,\n scrollTo,\n } = linkHelper(href, external);\n\n const LinkComponent = scrollTo ? AnchorLink : Link;\n const isVisuallyExternal = openNewTab && allowIcon;\n\n const linkClass = modify({\n [className]: className,\n 'custom-react-markdown__link': true,\n }, {\n 'with-icon': isVisuallyExternal,\n });\n\n return (\n action(hooks) : null}\n className={linkClass}\n href={parsedHref}\n external={openNewTab}\n >\n {children}\n {isVisuallyExternal && }\n \n );\n};\n\nMarkdownLinkRenderer.propTypes = {\n action: PropTypes.func,\n href: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n ]).isRequired,\n className: PropTypes.string,\n external: PropTypes.bool,\n};\n\nMarkdownLinkRenderer.defaultProps = {\n action: null,\n className: '',\n external: false,\n};\n\nexport default MarkdownLinkRenderer;\n","/* eslint-disable import/no-cycle */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport MarketplaceTooltip from '../MarketplaceTooltip/MarketplaceTooltip';\n\n\nconst MarketplaceShortcodes = function MarketplaceShortcodesFunction({\n identifier,\n attributes,\n tooltip,\n styleFlag,\n}) {\n switch (identifier) {\n case 'MarkdownTooltip':\n return (\n \n );\n default:\n return null;\n }\n};\n\nMarketplaceShortcodes.propTypes = {\n identifier: PropTypes.string.isRequired,\n attributes: PropTypes.shape({\n title: PropTypes.string,\n message: PropTypes.string,\n }).isRequired,\n tooltip: PropTypes.shape({\n message: PropTypes.string,\n }),\n styleFlag: PropTypes.string,\n};\n\nMarketplaceShortcodes.defaultProps = {\n tooltip: undefined,\n styleFlag: 'inline',\n};\n\nexport default MarketplaceShortcodes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n\nconst propTypes = {\n children: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nconst fragmentRenderer = {\n root: ({ children }) => <>{children},\n paragraph: ({ children }) => <>{children},\n};\n\nfragmentRenderer.root.propTypes = propTypes;\nfragmentRenderer.paragraph.propTypes = propTypes;\nexport default fragmentRenderer;\n","/* eslint-disable import/no-cycle */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactMarkdown from 'react-markdown';\nimport remarkSubSup from '@uplight/remark-sub-sup';\nimport remarkShortCode from '@uplight/remark-shortcode';\nimport MarkdownLinkRenderer from './MarkdownLinkRenderer';\nimport MarketplaceShortcodes from './MarketplaceShortcodes';\nimport fragmentWrapperRenderer from './fragmentWrapperRenderer';\n\n\nconst CustomReactMarkdown = ({\n className,\n linkActions,\n linkMeta,\n source,\n renderers,\n tooltip,\n noWrapper,\n styleFlag,\n}) => {\n let renderersCopy = renderers;\n\n if (noWrapper) {\n renderersCopy = {\n ...fragmentWrapperRenderer,\n ...renderers,\n };\n }\n\n const raiseLinkActions = linkActions ?\n (hooks) => {\n (['*', ...hooks])\n .filter(hook => linkActions[hook] instanceof Function)\n .forEach(hook => linkActions[hook]());\n } :\n null;\n\n let parsedSource = source;\n\n if (linkMeta && parsedSource) {\n const markdownLinkPattern = /\\[([^[]+)\\]\\(([^(]+)\\)/gi;\n\n const addLinkMetadata = (_match, label, href) => {\n const parsedHref = linkMeta.reduce(\n (href, meta) => (href.includes(`{${meta}}`) ? href : `${href}{${meta}}`),\n href,\n );\n\n return `[${label}](${parsedHref})`;\n };\n\n parsedSource = parsedSource.replace(markdownLinkPattern, addLinkMetadata);\n }\n\n return (\n ,\n shortcode: props => (\n \n ),\n sub: 'sub',\n sup: 'sup',\n ...renderersCopy,\n }}\n />\n );\n};\n\nCustomReactMarkdown.propTypes = {\n className: PropTypes.string,\n linkActions: PropTypes.objectOf(PropTypes.func),\n linkMeta: PropTypes.arrayOf(PropTypes.string),\n source: PropTypes.string.isRequired,\n renderers: PropTypes.shape({}),\n tooltip: PropTypes.shape({}),\n noWrapper: PropTypes.bool,\n styleFlag: PropTypes.string,\n};\n\nCustomReactMarkdown.defaultProps = {\n className: null,\n linkActions: null,\n linkMeta: null,\n renderers: {},\n tooltip: null,\n noWrapper: false,\n styleFlag: 'inline',\n};\n\nexport default CustomReactMarkdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport parseMarkdownTable from '../../helpers/parseMarkdownTable';\n\nfunction MarkdownTableRenderer({ className='', markdown }) {\n \n const { headers, rows } = parseMarkdownTable(markdown);\n \n const tableContainerClassName = `custom-markdown-table-container ${className}-table-container`;\n const tableClassName = `custom-markdown-table ${className}-table`;\n const trClassName = `custom-markdown-tr ${className}-tr`;\n const thClassName = `custom-markdown-th ${className}-th`;\n const tdClassName = `custom-markdown-td ${className}-td`;\n\n return (\n
\n \n {headers && headers.length > 0 && (\n \n \n {headers.map((header, index) => (\n \n ))}\n \n \n )}\n \n {rows.map((row, rowIndex) => (\n \n {row.map((cell, cellIndex) => (\n \n {cell}\n \n ))}\n \n ))}\n \n
{header}
\n
\n );\n}\n\nMarkdownTableRenderer.propTypes = {\n markdown: PropTypes.string.isRequired,\n className: PropTypes.string,\n};\n\nexport default MarkdownTableRenderer;\n","const parseMarkdownTable = (markdown) => {\n if (!markdown) {\n return { rows: [] };\n }\n const lines = markdown.trim().split('\\n');\n\n const hasHeaders = lines[1] && lines[1].trim().match(/^\\|[-:| ]+\\|/);\n\n if (hasHeaders) {\n const headers = lines[0].trim().slice(1, -1).split('|').map(cell => cell.trim());\n const rows = lines.slice(2).map(line => line.trim().slice(1, -1).split('|').map(cell => cell.trim()));\n return { headers, rows };\n } else {\n const rows = lines.map(line => line.trim().slice(1, -1).split('|').map(cell => cell.trim()));\n return { rows };\n }\n};\n\nexport default parseMarkdownTable;\n\n","/* eslint-disable import/no-cycle */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport InfoIcon from '../../icons/icon-info.svg';\nimport TooltipHOC from '../TooltipHOC/TooltipHOC';\nimport CustomReactMarkdown from '../MarkdownRenderers/CustomReactMarkdown';\nimport { styler } from '../../helpers/classNameHelper';\n\n\nclass MarketplaceTooltip extends Component {\n constructor(props) {\n super(props);\n if (props.hideIcon) {\n props.setConfig({ iconDimensions: 0, alignMsg: 'left', title: props.title });\n } else {\n props.setConfig({ iconDimensions: 16, alignMsg: 'right', title: props.title });\n }\n }\n\n render() {\n const {\n title,\n message,\n display,\n hideIcon,\n styleFlag,\n renderMsgBlock,\n commodityValue,\n } = this.props;\n\n if (!display) {\n return null;\n }\n\n const tooltipTitle = commodityValue ? `${commodityValue} ${title}` : title;\n const style = styler(styleFlag);\n\n return (\n \n \n {!hideIcon && (\n \n )}\n {renderMsgBlock((\n \n ))}\n \n );\n }\n}\n\nMarketplaceTooltip.propTypes = {\n title: PropTypes.string.isRequired,\n setConfig: PropTypes.func.isRequired,\n styleFlag: PropTypes.string.isRequired,\n renderMsgBlock: PropTypes.func.isRequired,\n display: PropTypes.bool,\n hideIcon: PropTypes.bool,\n message: PropTypes.string,\n commodityValue: PropTypes.string,\n};\n\nMarketplaceTooltip.defaultProps = {\n message: '',\n display: true,\n hideIcon: false,\n commodityValue: null,\n};\n\nexport default TooltipHOC(MarketplaceTooltip);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CustomReactMarkdown from '../MarkdownRenderers/CustomReactMarkdown';\nimport IconCheckmark from '../../icons/icon-checkmark-circle.svg';\nimport IconLeaf from '../../icons/icon-leaf.svg';\nimport IconGift from '../../icons/icon-gift.svg';\nimport IconInstall from '../../icons/icon-install.svg';\nimport IconCart from '../../icons/icon-cart.svg';\nimport WrenchScrewdriver from '../../icons/round-wrench-screwdriver.svg';\nimport { styler } from '../../helpers/classNameHelper';\nimport Link from '../Link/Link';\nimport OpenLinkIcon from '../../icons/open-link-icon.svg';\n\nconst iconMap = {\n checkmark: IconCheckmark,\n leaf: IconLeaf,\n gift: IconGift,\n install: IconInstall,\n screwdriver: WrenchScrewdriver,\n cart: IconCart\n};\n\nconst OfferCard = ({\n buttonText,\n buttonUrl,\n description,\n disclaimer,\n icon,\n name,\n styleFlag,\n isSetupGuide,\n title,\n track,\n}) => {\n const Icon = icon && iconMap[icon];\n\n const handleEvent = (event) => {\n if (!track) {\n return;\n }\n\n event.preventDefault();\n track(() => {\n window.open(buttonUrl);\n });\n };\n\n const style = styler(styleFlag);\n\n const descriptionString = description instanceof Array ? description.join('\\n\\n') : description;\n\n // Pass an empty string if track is present because track will handle the buttonUrl\n const href = track ? '' : buttonUrl;\n\n return (\n
\n {Icon && }\n
{name}
\n

{title}

\n \n {buttonUrl && buttonText && (\n \n {buttonText}\n \n )}\n {disclaimer && (\n isSetupGuide\n ?
\n \n \n {disclaimer.linkText}\n \n \n
\n : )}\n
\n );\n};\n\nOfferCard.propTypes = {\n buttonText: PropTypes.string,\n buttonUrl: PropTypes.string,\n description: PropTypes.string.isRequired,\n disclaimer: PropTypes.string,\n icon: PropTypes.string,\n name: PropTypes.string,\n styleFlag: PropTypes.string,\n isSetupGuide: PropTypes.bool,\n title: PropTypes.string.isRequired,\n track: PropTypes.func,\n};\n\nOfferCard.defaultProps = {\n buttonText: null,\n buttonUrl: null,\n disclaimer: null,\n icon: null,\n name: null,\n styleFlag: null,\n isSetupGuide: false,\n track: null,\n};\n\nexport default OfferCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport LocationIcon from '../../../../../icons/icon-location.svg';\nimport CloseX from '../../../../../icons/icon-close-modal.svg';\nimport isEnterOrSpace from '../../../../../helpers/isEnterOrSpace';\n\n\nconst ModalHeader = function ModalHeader({ upperTitle, title, action }) {\n return (\n
\n \n \n \n {upperTitle}\n \n action()}\n onKeyPress={event => isEnterOrSpace(event) && action()}\n >\n \n \n \n
\n {title}\n
\n
\n );\n};\n\nModalHeader.propTypes = {\n upperTitle: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n action: PropTypes.func.isRequired,\n};\n\nexport default ModalHeader;\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport uuid from 'uuid/v4';\nimport renderDropDownOptions from '../../../../helpers/renderDropDownOptions';\n\n\nclass DropDownMenu extends Component {\n constructor(props) {\n super(props);\n this.menuRef = React.createRef();\n this.iconRef = React.createRef();\n this.state = { showMenu: false, position: 'showRight' };\n this.handleBlur = this.handleBlur.bind(this);\n }\n\n componentDidUpdate() {\n const { showMenu } = this.state;\n\n if (showMenu) {\n this.checkWindowBoundaries();\n }\n }\n\n checkWindowBoundaries() {\n const { position } = this.state;\n const menuWidth = this.menuRef.current.offsetWidth;\n const additionalPixels = 10;\n const boundaries = this.iconRef.current.getBoundingClientRect();\n const newPosition = boundaries.left + menuWidth + additionalPixels > window.innerWidth ? 'showLeft' : 'showRight';\n\n if (position !== newPosition) {\n this.setState({ position: newPosition });\n }\n }\n\n handleSelection() {\n this.setState(prevState => ({ showMenu: !prevState.showMenu }));\n }\n\n handleBlur(event) {\n const { currentTarget } = event;\n\n setTimeout(() => {\n if (!currentTarget.contains(document.activeElement)) {\n this.setState({ showMenu: false });\n }\n }, 0);\n }\n\n render() {\n const {\n showMenu,\n position,\n } = this.state;\n\n const {\n label,\n list,\n children,\n containerClassName,\n activatedClassName,\n itemClassName,\n labelClassName,\n handleKeyPress,\n } = this.props;\n\n const messageClasses = classNames({\n 'dropdown__menu--show': showMenu,\n 'dropdown__menu--left': position === 'showLeft',\n 'dropdown__menu--right': position === 'showRight',\n });\n const triggerClassNames = { [containerClassName]: true };\n const uniqueId = `dropdown-menu--${uuid()}`;\n\n if (activatedClassName) {\n triggerClassNames[activatedClassName] = showMenu;\n }\n\n const triggerClasses = classNames(triggerClassNames);\n\n return (\n
\n
\n {label}\n
\n this.handleSelection())}\n className={triggerClasses}\n onClick={() => this.handleSelection()}\n onBlur={this.handleBlur}\n aria-labelledby={uniqueId}\n >\n { children }\n
\n {renderDropDownOptions(itemClassName, list)}\n
\n
\n \n );\n }\n}\n\nDropDownMenu.propTypes = {\n children: PropTypes.element.isRequired,\n label: PropTypes.string.isRequired,\n labelClassName: PropTypes.string,\n list: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n containerClassName: PropTypes.string,\n activatedClassName: PropTypes.string,\n itemClassName: PropTypes.string,\n handleKeyPress: PropTypes.func,\n};\n\nDropDownMenu.defaultProps = {\n containerClassName: 'dropdown-menu__toggle',\n itemClassName: 'dropdown-menu__list-item',\n labelClassName: 'number-field__input-label',\n activatedClassName: 'dropdown-menu__toggle--active',\n handleKeyPress: null,\n};\n\nexport default DropDownMenu;\n","import React from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { v4 as uuid } from 'uuid';\n\n\nconst renderDropDownOptions = function renderDropDownOptionsList(\n itemClassName,\n list,\n) {\n const handleArrowKeys = ({ target, key }) => {\n const currentElement = document.getElementById(target.id);\n const array = Array.from(currentElement.parentNode.children);\n const index = array.indexOf(currentElement);\n const next = array[index + 1];\n const previous = array[index - 1];\n\n if (previous && key === 'ArrowUp') {\n previous.focus();\n }\n if (next && key === 'ArrowDown') {\n next.focus();\n }\n };\n const listItems = list.map((listItemProps) => {\n const { onKeyDown, onClick, id } = listItemProps;\n const itemClassNames = [itemClassName];\n\n if (listItemProps.className) {\n itemClassNames.push(listItemProps.className);\n }\n\n return (\n \n
,\n }}\n />\n
\n );\n });\n\n return (\n listItems\n );\n};\n\nexport default renderDropDownOptions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n\nconst Button = function ButtonComponent({\n onClick,\n className,\n label,\n loader,\n onKeyPress,\n loaderClassName,\n}) {\n return (\n \n {label}\n {loader && }\n \n );\n};\n\nButton.defaultProps = {\n onClick: undefined,\n className: 'advisor-button',\n loaderClassName: null,\n loader: false,\n onKeyPress: () => (false),\n};\n\nButton.propTypes = {\n className: PropTypes.string,\n loaderClassName: PropTypes.string,\n onClick: PropTypes.func,\n label: PropTypes.string.isRequired,\n loader: PropTypes.bool,\n onKeyPress: PropTypes.func,\n};\n\nexport default Button;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from './button';\nimport isEnterOrSpace from '../../../../helpers/isEnterOrSpace';\n\n// TODO: Collapse button components - wrapper can be eliminated\nconst CustomButton = ({\n className,\n eventAction,\n label,\n loader,\n}) => (\n isEnterOrSpace(event) && eventAction()}\n onClick={eventAction}\n className={className}\n />\n);\n\nCustomButton.propTypes = {\n className: PropTypes.string.isRequired,\n eventAction: PropTypes.func.isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.array]).isRequired,\n loader: PropTypes.bool,\n};\n\nCustomButton.defaultProps = {\n loader: false,\n};\n\nexport default CustomButton;\n","import isEnterOrSpace from '../../../../../helpers/isEnterOrSpace';\n\n\nconst getOpcoOptions = function getOpcoOptionsForDropdown(\n opcos,\n updateOpco,\n) {\n if (!opcos || opcos.length === 0) {\n return [{\n id: 'location',\n key: 'empty',\n value: 'No options available',\n }];\n }\n return opcos.map((opco) => {\n let locationType = '';\n\n if (opco.questionOptions && opco.questionOptions.length) {\n [locationType] = opco.questionOptions;\n }\n return ({\n id: 'location',\n key: opco.region,\n value: opco.display,\n onKeyDown: event => isEnterOrSpace(event) && updateOpco({ location: opco, locationType }),\n onClick: () => updateOpco({ location: opco, locationType }),\n });\n });\n};\n\nexport default getOpcoOptions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport IconRadioSelected from '../../../../../icons/icon-radio-selected.svg';\nimport IconRadioUnselected from '../../../../../icons/icon-radio-unselected.svg';\n\n\nconst LocationType = function LocationType({\n locationType,\n locationTypeOptions,\n updateFormValues,\n content,\n}) {\n const { optionalQuestionLabel } = content;\n\n return (\n
\n \n {optionalQuestionLabel}\n \n
\n { locationTypeOptions.map((option) => {\n const selected = locationType === option;\n const IconComponent = selected ? IconRadioSelected : IconRadioUnselected;\n const locationTypeRadioClasses = classNames({\n 'opco-nav-form__location-type-radio': true,\n 'opco-nav-form__location-type-radio-selected': selected,\n });\n\n return (\n \n
\n \n
\n {option}\n updateFormValues({ locationType: option })}\n />\n \n );\n })}\n
\n
\n );\n};\n\nLocationType.propTypes = {\n locationType: PropTypes.string.isRequired,\n locationTypeOptions: PropTypes.arrayOf(PropTypes.string).isRequired,\n updateFormValues: PropTypes.func.isRequired,\n content: PropTypes.shape({\n optionalQuestionLabel: PropTypes.string,\n }).isRequired,\n};\n\nexport default LocationType;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport DropDownMenu from '../DropDownMenu/DropDownMenu';\nimport Button from '../Button';\nimport getOpcoOptions from './helpers/getOpcoOptions';\nimport renderDropDownChildren from './helpers/renderDropDownChildren';\nimport LocationType from './LocationType';\n\n\nconst DropdownLookupForm = function DropdownLookupForm({\n content,\n programOptions,\n formValues,\n updateFormValues,\n submitForm,\n}) {\n const { opcoDropdownLabel, ctaButtonLabel } = content;\n\n const selectedLocation = formValues.location;\n const locationWithType = programOptions\n .find(programOption => programOption.region === selectedLocation.region &&\n programOption.questionOptions);\n const locationTypeOptions = locationWithType ? locationWithType.questionOptions : null;\n\n return (\n <>\n {programOptions.length > 1 && (\n \n {renderDropDownChildren(selectedLocation.display)}\n \n )}\n {!isEmpty(locationTypeOptions) && (\n \n )}\n \n \n );\n};\n\nDropdownLookupForm.propTypes = {\n content: PropTypes.shape({\n opcoDropdownLabel: PropTypes.string,\n ctaButtonLabel: PropTypes.string,\n }).isRequired,\n programOptions: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n formValues: PropTypes.shape({\n location: PropTypes.shape({\n region: PropTypes.string,\n display: PropTypes.string,\n }),\n locationType: PropTypes.string,\n }).isRequired,\n updateFormValues: PropTypes.func.isRequired,\n submitForm: PropTypes.func.isRequired,\n};\n\nexport default DropdownLookupForm;\n","import React from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport ChevronIcon from '../../../../../icons/icon-chevron.svg';\n\n\nconst renderDropDownChildren = function renderDropDownChildrenOpcoNav(\n locationSelected,\n) {\n const locationSelectedDisplay = locationSelected || 'Choose One';\n\n return (\n
\n
}}\n />\n \n
\n );\n};\n\nexport default renderDropDownChildren;\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport LocationIcon from '../../../../../icons/icon-location.svg';\nimport Button from '../../Button';\n\n\nconst fieldTypeMap = {\n zip: {\n type: 'text',\n label: 'Zip code',\n validationPattern: '(^\\\\d{5}$)|(^\\\\d{5}-\\\\d{4}$)',\n errorMessage: 'This is not a valid zip code',\n },\n};\n\nclass SectionForm extends Component {\n constructor(props) {\n super(props);\n\n const {\n id,\n lookupMode,\n inputDescribedBy,\n } = this.props;\n\n this.field = fieldTypeMap[lookupMode];\n this.key = `opco_nav_location_${id}`;\n this.inputDescribedBy = inputDescribedBy;\n\n this.state = {\n editing: false,\n storedValue: '',\n error: false,\n errorMessage: '',\n };\n\n this.actionHandler = this.actionHandler.bind(this);\n this.focusHandler = this.focusHandler.bind(this);\n this.validate = this.validate.bind(this);\n this.blurHandler = this.blurHandler.bind(this);\n this.changeHandler = this.changeHandler.bind(this);\n }\n\n actionHandler() {\n const { active, editActive } = this.props;\n\n if (!active) {\n editActive();\n\n return;\n }\n\n const { error, storedValue } = this.state;\n\n if (error || !storedValue) {\n this.setState({ editing: true });\n this.validate(storedValue);\n\n return;\n }\n\n const { id, submit } = this.props;\n\n const errorMessage = submit(id, storedValue);\n\n if (errorMessage) {\n this.setState({ error: true, errorMessage });\n } else {\n this.setState({ editing: false, storedValue: '' });\n }\n }\n\n focusHandler() {\n const { updateEditingStatus } = this.props;\n\n updateEditingStatus(true);\n this.setState({ editing: true });\n }\n\n validate(value) {\n const isValid = (new RegExp(this.field.validationPattern)).test(value);\n\n if (!isValid) {\n this.setState({ errorMessage: this.field.errorMessage });\n }\n\n this.setState({ error: !isValid });\n }\n\n blurHandler(event) {\n const { target: { value } } = event;\n\n this.setState({ storedValue: value });\n\n if (value) {\n this.validate(value);\n\n return;\n }\n\n const { updateEditingStatus } = this.props;\n\n updateEditingStatus(false);\n\n this.setState({ editing: false, error: false });\n }\n\n changeHandler(event) {\n const { target: { value } } = event;\n\n this.setState({ storedValue: value });\n\n const { error } = this.state;\n\n if (error) {\n this.validate(value);\n }\n }\n\n render() {\n const {\n editing, storedValue, error, errorMessage,\n } = this.state;\n const { active, value } = this.props;\n const buttonLabel = active ? 'Apply' : 'Update';\n const labelText = active ? this.field.label : value;\n const inputClassNames = classNames('opco-nav-form__section-field-input', {\n 'opco-nav-form__section-field-input--disabled': !active,\n 'opco-nav-form__section-field-input--error': error,\n });\n const labelClassNames = classNames('opco-nav-form__section-field-label', {\n 'opco-nav-form__section-field-label--disabled': !active,\n 'opco-nav-form__section-field-label--editing': editing,\n 'opco-nav-form__section-field-label--error': error,\n });\n\n return (\n
\n
\n \n \n
\n \n {error && {errorMessage}}\n
\n );\n }\n}\n\nSectionForm.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n lookupMode: PropTypes.string.isRequired,\n updateEditingStatus: PropTypes.func.isRequired,\n editActive: PropTypes.func.isRequired,\n submit: PropTypes.func.isRequired,\n inputDescribedBy: PropTypes.string.isRequired,\n};\n\nSectionForm.defaultProps = {\n};\n\nexport default SectionForm;\n","import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport uuid from 'uuid/v4';\nimport HouseIcon from '../../../../icons/icon-house.svg';\nimport StorefrontIcon from '../../../../icons/icon-storefront.svg';\nimport Button from '../Button';\nimport SectionForm from './SectionForm';\n\n\nconst iconMap = {\n house: HouseIcon,\n storefront: StorefrontIcon,\n};\n\nclass MultiSectionLookupForm extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n canSubmit: true,\n editingActive: false,\n };\n this.updateEditingStatus = this.updateEditingStatus.bind(this);\n this.handleSelection = this.handleSelection.bind(this);\n this.editActive = this.editActive.bind(this);\n }\n\n updateEditingStatus(status) {\n const { editingActive } = this.state;\n\n if (!editingActive) {\n this.setState({ canSubmit: !status });\n }\n }\n\n editActive() {\n this.setState({ canSubmit: false, editingActive: true });\n }\n\n handleSelection(sectionId, value) {\n const {\n programOptions,\n content: { notFoundErrorMessage },\n updateFormValues,\n } = this.props;\n\n const matchingProgram = programOptions.reduce((found, program) => {\n if (\n found ||\n program.sectionId !== sectionId ||\n program.optionValues.indexOf(value) === -1\n ) {\n return found;\n }\n\n return program;\n }, null);\n\n if (!matchingProgram) {\n return notFoundErrorMessage;\n }\n\n updateFormValues({ location: matchingProgram });\n\n this.setState({\n canSubmit: true,\n editingActive: false,\n });\n\n return null;\n }\n\n render() {\n const {\n content,\n sectionOptions,\n formValues,\n submitForm,\n } = this.props;\n const { ctaButtonLabel } = content;\n const { canSubmit, editingActive } = this.state;\n const buttonClassNames = classNames('opco-nav-form__button', { 'opco-nav-form__button--disabled': !canSubmit });\n const uniqueId = `opco-nav-form__section--${uuid()}`;\n\n return (\n <>\n
\n
{content.label}
\n {sectionOptions.map((section, idx) => {\n const Icon = iconMap[section.icon];\n const active = editingActive || formValues.location.sectionId !== section.id;\n\n return (\n \n
\n \n {section.label}\n
\n \n {idx < sectionOptions.length - 1 && (\n
\n or\n
\n )}\n
\n );\n })}\n
\n canSubmit && submitForm()}\n label={ctaButtonLabel}\n />\n \n );\n }\n}\n\nMultiSectionLookupForm.propTypes = {\n content: PropTypes.shape({\n ctaButtonLabel: PropTypes.string,\n label: PropTypes.string,\n notFoundErrorMessage: PropTypes.string,\n }).isRequired,\n sectionOptions: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n programOptions: PropTypes.arrayOf(PropTypes.shape({\n sectionId: PropTypes.string,\n optionValues: PropTypes.arrayOf(PropTypes.string),\n })).isRequired,\n formValues: PropTypes.shape({\n location: PropTypes.shape({\n sectionId: PropTypes.string,\n display: PropTypes.string,\n }),\n }).isRequired,\n updateFormValues: PropTypes.func.isRequired,\n submitForm: PropTypes.func.isRequired,\n};\n\nexport default MultiSectionLookupForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DropdownLookupForm from '../../DropdownLookupForm';\nimport MultiSectionLookupForm from '../../MultiSectionLookupForm';\n\n\nconst ModalBody = function ModalBody({\n content,\n sectionOptions,\n programOptions,\n formValues,\n updateFormValues,\n submitForm,\n showDisclaimer,\n}) {\n const {\n disclaimer,\n } = content;\n const FormComponent = sectionOptions ? MultiSectionLookupForm : DropdownLookupForm;\n\n return (\n
\n \n {showDisclaimer && (\n
\n {disclaimer}\n
\n )}\n
\n );\n};\n\nModalBody.propTypes = {\n content: PropTypes.shape({\n disclaimer: PropTypes.string,\n }).isRequired,\n programOptions: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n sectionOptions: PropTypes.arrayOf(PropTypes.shape({})),\n formValues: PropTypes.shape({}).isRequired,\n updateFormValues: PropTypes.func.isRequired,\n submitForm: PropTypes.func.isRequired,\n showDisclaimer: PropTypes.bool.isRequired,\n};\n\nModalBody.defaultProps = {\n sectionOptions: null,\n};\n\nexport default ModalBody;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport OpenLinkIcon from '../../../../../icons/icon-external-link.svg';\n\n\nconst ModalFooter = function ModalFooter({\n title, description, ctaText, ctaLink,\n}) {\n return (\n
\n
\n {title}\n
\n
\n {description}\n  \n \n \n {ctaText}\n \n \n \n
\n
\n );\n};\n\nModalFooter.propTypes = {\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n ctaText: PropTypes.string.isRequired,\n ctaLink: PropTypes.string.isRequired,\n};\n\nexport default ModalFooter;\n","import React from 'react';\nimport Modal from 'react-modal';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ModalHeader from './Header';\nimport ModalBody from './Body';\nimport ModalFooter from './Footer';\n\n\nconst SelectionModal = function SelectionModal({\n content,\n formValues,\n programOptions,\n sectionOptions,\n updateFormValues,\n submitForm,\n modalIsOpen,\n closeModal,\n showDisclaimer,\n}) {\n const { upperTitle, title } = content;\n const appElement = document.body.querySelector('.se-page');\n const modalProps = { ariaHideApp: !!appElement, appElement };\n const opcoNavBodyClass = classNames({\n 'opco-nav-body__container': !content || !content.customFooter,\n 'opco-nav-body__container opco-nav-body__container--with-footer': content && content.customFooter,\n });\n\n return (\n \n \n
\n \n {content.customFooter && (\n \n )}\n
\n \n\n );\n};\n\nSelectionModal.defaultProps = {\n sectionOptions: undefined,\n programOptions: [{}],\n};\n\nSelectionModal.propTypes = {\n content: PropTypes.shape({\n upperTitle: PropTypes.string,\n title: PropTypes.string,\n customFooter: PropTypes.shape({}),\n }).isRequired,\n formValues: PropTypes.shape({\n location: PropTypes.shape({}),\n locationType: PropTypes.string,\n }).isRequired,\n sectionOptions: PropTypes.arrayOf(PropTypes.shape({})),\n programOptions: PropTypes.arrayOf(PropTypes.shape({})),\n updateFormValues: PropTypes.func.isRequired,\n submitForm: PropTypes.func.isRequired,\n modalIsOpen: PropTypes.bool.isRequired,\n closeModal: PropTypes.func.isRequired,\n showDisclaimer: PropTypes.bool.isRequired,\n};\n\nexport default SelectionModal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChevronIcon from '../../../../../icons/icon-chevron.svg';\nimport LocationIcon from '../../../../../icons/icon-location.svg';\n\n\nexport default function TriggerLink({ location, action, content }) {\n const locationName = location ? location.region : '';\n const { triggerCTA } = content;\n\n return (\n \n
\n
\n
\n
{triggerCTA}
\n
\n {locationName}\n  \n \n \n \n
\n
\n
\n \n {`Now ${triggerCTA} ${locationName}, click to change your location.`}\n \n
\n );\n}\n\nTriggerLink.propTypes = {\n location: PropTypes.shape({\n region: PropTypes.string,\n }).isRequired,\n action: PropTypes.func.isRequired,\n content: PropTypes.shape({\n triggerCTA: PropTypes.string,\n }).isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport LocationIcon from '../../../../../icons/icon-location.svg';\n\n\nexport default function TriggerDisclaimer({\n action,\n programName,\n location,\n}) {\n const region = location ? location.region : '';\n\n return (\n <>\n {`Your current selected ${programName} service location is`}\n \n  \n \n  \n \n {`${region}. If you need to `}\n \n update your location\n
\n  it will retain any available items and take you to the cart.\n \n );\n}\n\nTriggerDisclaimer.propTypes = {\n action: PropTypes.func.isRequired,\n programName: PropTypes.string.isRequired,\n location: PropTypes.oneOfType([\n PropTypes.shape({\n region: PropTypes.string,\n }),\n PropTypes.string,\n ]).isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport TriggerLink from './Link';\nimport TriggerDisclaimer from './Disclaimer';\n\n\nconst Trigger = function Trigger({\n templateId,\n programName,\n location,\n action,\n content,\n}) {\n switch (templateId) {\n case 'primary':\n return ;\n case 'disclaimer':\n return (\n \n );\n default:\n return null;\n }\n};\n\nTrigger.propTypes = {\n action: PropTypes.func.isRequired,\n templateId: PropTypes.string.isRequired,\n programName: PropTypes.string,\n location: PropTypes.oneOfType([\n PropTypes.shape({\n region: PropTypes.string,\n }),\n PropTypes.string,\n ]),\n content: PropTypes.shape({}).isRequired,\n};\n\nTrigger.defaultProps = {\n programName: '',\n location: '',\n};\n\nexport default Trigger;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport { getParameters } from '../../../helpers/urlHelpers';\nimport SelectionModal from '../components/SelectionModal';\nimport Trigger from '../components/Trigger';\n\n\nModal.setAppElement('body');\nclass OpcoNavigator extends Component {\n constructor(props) {\n super(props);\n\n const { autoOpenParam: { key: autoOpenKey, value: autoOpenValue } } = props;\n const queryParams = getParameters(location.href);\n\n\n this.state = {\n modalIsOpen: (queryParams[autoOpenKey] && (queryParams[autoOpenKey][0] === autoOpenValue)) || false,\n formValues: {\n location: {},\n locationType: '',\n ...props.currentSiteConfig,\n },\n };\n\n this.submitForm = this.submitForm.bind(this);\n this.updateFormValues = this.updateFormValues.bind(this);\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n\n updateFormValues(newValue) {\n const { formValues } = this.state;\n\n this.setState({\n formValues: {\n ...formValues,\n locationType: '',\n ...newValue,\n },\n });\n }\n\n submitForm() {\n const { redirectTo } = this.props;\n const {\n formValues: {\n location: { siteId, questionOptions },\n locationType,\n },\n } = this.state;\n\n if (typeof siteId === 'string') {\n window.location.assign(`${redirectTo}${siteId}`);\n\n return;\n }\n\n let idx = 0;\n\n if (locationType) {\n idx = questionOptions.indexOf(locationType);\n }\n\n window.location.assign(`${redirectTo}${siteId[idx]}`);\n }\n\n openModal() {\n this.setState({ modalIsOpen: true });\n document.body.classList.add('no-scroll');\n }\n\n closeModal() {\n document.body.style.position = '';\n document.body.classList.remove('no-scroll');\n this.setState({ modalIsOpen: false });\n }\n\n render() {\n const {\n templateId,\n showDisclaimer,\n programConfig: { programName, programOptions, sectionOptions },\n currentSiteConfig,\n content,\n } = this.props;\n\n if (!programName) {\n return '';\n }\n\n const { formValues, modalIsOpen } = this.state;\n const { location } = currentSiteConfig;\n\n return (\n
\n \n \n
\n );\n }\n}\n\nOpcoNavigator.propTypes = {\n templateId: PropTypes.string.isRequired,\n redirectTo: PropTypes.string.isRequired,\n showDisclaimer: PropTypes.bool,\n content: PropTypes.shape({}).isRequired,\n programConfig: PropTypes.shape({\n programName: PropTypes.string,\n programOptions: PropTypes.arrayOf(PropTypes.shape({})),\n sectionOptions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n currentSiteConfig: PropTypes.shape({\n location: PropTypes.shape({\n region: PropTypes.string,\n siteId: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.string,\n ]),\n questionOptions: PropTypes.arrayOf(PropTypes.string),\n }),\n }).isRequired,\n autoOpenParam: PropTypes.shape({\n key: PropTypes.string,\n value: PropTypes.string,\n }).isRequired,\n};\n\nOpcoNavigator.defaultProps = {\n showDisclaimer: false,\n};\n\nexport default OpcoNavigator;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport InfoModal from '../../InfoModal/InfoModal';\nimport AddOnIcon from '../../AddOnIcon/AddOnIcon';\nimport getBillCreditAmount from '../../ProductAddOn/helpers/getBillCreditAmount';\nimport creditMessageFormatter from '../../../helpers/creditMessageFormatter';\n\n\nconst ProgramAddOn = ({ addOn, price, rebatePrice, newPrice }) => {\n\n let prefixMessage = addOn.content.productCardPrefix;\n\n\n\n if (addOn.content.isBillCreditApplicable) {\n const billCreditAmount = getBillCreditAmount(addOn, { rebates: [] }, newPrice, rebatePrice)\n\n if (billCreditAmount) {\n prefixMessage = creditMessageFormatter(addOn, billCreditAmount.onElecticity, prefixMessage);\n }\n }\n\n\n return (\n
\n
\n \n
\n {price}\n
\n
\n
\n {`${prefixMessage} `}\n }\n >\n {addOn.content.productCardModalTrigger}\n \n {` ${addOn.content.productCardSuffix}`}\n
\n
\n )\n}\n\n\nProgramAddOn.propTypes = {\n addOn: PropTypes.shape({\n content: PropTypes.shape({\n productCardPrefix: PropTypes.string.isRequired,\n productCardModalTrigger: PropTypes.string.isRequired,\n productCardSuffix: PropTypes.string.isRequired,\n modalContentLabel: PropTypes.string.isRequired,\n modalBody: PropTypes.string.isRequired,\n modalSubtitle: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n isBillCreditApplicable: PropTypes.shape({\n message: PropTypes.string,\n value: PropTypes.number\n })\n }).isRequired,\n }).isRequired,\n price: PropTypes.string.isRequired,\n rebatePrice: PropTypes.shape({\n sales: PropTypes.shape({\n value: PropTypes.number\n })\n }),\n newPrice: PropTypes.shape({\n sales: PropTypes.shape({\n value: PropTypes.number\n })\n })\n // rebateValue:PropTypes.number\n};\n\nexport default ProgramAddOn;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport RebateHeaderIcon from '../../icons/icon-rebate-modal-header.svg';\nimport InfoModal from '../InfoModal/InfoModal';\nimport getPriceDisplay from '../../helpers/getPriceDisplay';\nimport getCommodityValue from '../../helpers/getCommodityValue';\nimport CommodityIcon from '../CommodityIcon/CommodityIcon';\nimport GiftIcon from '../../icons/icon-free-gift-with-purchase.svg';\nimport ProgramAddOn from './components/ProgramAddOn';\n\n\nconst PriceDisplay = function PriceDisplayComponent({\n addOns,\n price,\n rebates,\n rebatePrice,\n promotions,\n}) {\n const {\n onSale,\n hasRebates,\n salesPriceDisplay,\n retailPriceDisplay,\n rebatePriceDisplay,\n addOnPriceDisplay,\n } = getPriceDisplay(price, rebatePrice, addOns);\n\n const renderAddOns = addOns => (\n <>\n {addOns && addOns.map((addOn) => {\n const Component = {\n program: ProgramAddOn,\n }[addOn.type];\n\n if (Component) {\n return ;\n }\n\n return null;\n })}\n \n );\n const renderPromotions = (promotions) => {\n if (!promotions) {\n return null;\n }\n\n return promotions.map((promotion) => {\n const {\n uuid,\n modalTrigger,\n modalHeadingSmall,\n modalHeadingLarge,\n modalMarkdown,\n modalContentLabel,\n } = promotion;\n\n return (\n
\n }\n >\n {modalTrigger}\n \n
\n );\n });\n };\n\n if (hasRebates) {\n const commodityValue = getCommodityValue();\n const isCombinedCommodity = commodityValue === 'combined';\n\n const commodityIconClass = classNames('price-display__commodity-icon', {\n 'price-display__commodity-icon--double': isCombinedCommodity,\n 'price-display__commodity-icon--single': !isCombinedCommodity,\n });\n\n const rebateTooltipLabel = commodityValue ? `${commodityValue} ${rebates.label}` : rebates.label;\n\n return (\n <>\n
{retailPriceDisplay}
\n
\n
\n \n
\n {rebatePriceDisplay}\n
\n
\n
\n {'Your price after '}\n }\n >\n {rebateTooltipLabel}\n \n
\n {renderAddOns(addOns)}\n {renderPromotions(promotions)}\n
\n \n );\n }\n\n\n return (\n <>\n {onSale &&
{retailPriceDisplay}
}\n
\n {salesPriceDisplay}\n {onSale &&  on sale}\n {renderAddOns(addOns)}\n {renderPromotions(promotions)}\n
\n \n );\n};\n\nPriceDisplay.propTypes = {\n addOns: PropTypes.arrayOf(PropTypes.shape({\n values: PropTypes.shape({\n maxAddOnPrice: PropTypes.number,\n minAddOnPrice: PropTypes.number,\n }),\n content: PropTypes.shape({\n modalBody: PropTypes.string,\n title: PropTypes.string,\n productCardPrefix: PropTypes.string,\n productCardModalTrigger: PropTypes.string,\n productCardSuffix: PropTypes.string,\n icon: PropTypes.string,\n }),\n type: PropTypes.string,\n })),\n price: PropTypes.shape({}).isRequired,\n rebates: PropTypes.shape({\n label: PropTypes.string,\n tooltip: PropTypes.string,\n }).isRequired,\n promotions: PropTypes.arrayOf(PropTypes.shape({\n uuid: PropTypes.string,\n modalTrigger: PropTypes.string,\n modalHeadingSmall: PropTypes.string,\n modalHeadingLarge: PropTypes.string,\n modalMarkdown: PropTypes.string,\n modalContentLabel: PropTypes.string,\n })),\n rebatePrice: PropTypes.shape({}),\n};\n\nPriceDisplay.defaultProps = {\n addOns: null,\n promotions: null,\n rebatePrice: null,\n};\n\nexport default PriceDisplay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CustomReactMarkdown from '../../MarkdownRenderers/CustomReactMarkdown';\n\n\nconst ProductAddOnIneligible = function ProductAddOnIneligibleComponent({\n addOn,\n}) {\n const {\n status: {\n message,\n },\n } = addOn;\n\n return (\n \n );\n};\n\nProductAddOnIneligible.propTypes = {\n addOn: PropTypes.shape({\n status: PropTypes.shape({\n message: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default ProductAddOnIneligible;\n","const getDisplayPrice = ({\n rebateValue,\n productPrice,\n lineItemPrice,\n lineItemRebatesApplied,\n optionRebatesApplied,\n minAddOnPrice,\n}) => {\n let adjustedPrice = productPrice - rebateValue;\n\n if (lineItemRebatesApplied.length > 0) {\n const currentPrice = lineItemPrice && Number(lineItemPrice.replace('$', ''));\n\n adjustedPrice = currentPrice;\n\n if (optionRebatesApplied.length === 0) {\n adjustedPrice = currentPrice - rebateValue;\n }\n }\n\n if (adjustedPrice < minAddOnPrice) {\n adjustedPrice = minAddOnPrice;\n }\n\n return adjustedPrice.toFixed(2).replace('.00', '');\n};\n\nconst getAddOnHeader = ({\n addOn,\n addOn: {\n content: {\n priceTitle\n },\n },\n productPrice,\n lineItemPrice,\n lineItemRebatesApplied,\n optionRebatesApplied,\n}) => {\n const {\n bonus: { rebateValue },\n values: { minAddOnPrice },\n } = addOn;\n const displayPrice = getDisplayPrice({\n rebateValue,\n productPrice,\n lineItemPrice,\n lineItemRebatesApplied,\n optionRebatesApplied,\n minAddOnPrice,\n });\n\n if (displayPrice <= 0) {\n return priceTitle || 'Get it for FREE';\n }\n return `Get it for only $${displayPrice}`;\n};\n\nexport default getAddOnHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Link from '../../Link/Link';\nimport ExternalLinkIcon from '../../../icons/icon-external-link.svg';\nimport InfoModal from '../../InfoModal/InfoModal';\nimport getAddOnHeader from '../helpers/getAddOnHeader';\nimport createUniqueId from '../../../helpers/createUniqueId';\nimport AddOnIcon from '../../AddOnIcon/AddOnIcon';\nimport Checkbox from '../../Checkbox/Checkbox';\nimport { modify } from '../../../helpers/classNameHelper';\nimport creditMessageFormatter from '../../../helpers/creditMessageFormatter';\nimport getBillCreditAmount from '../helpers/getBillCreditAmount';\n\n\nconst ProgramAddOn = ({\n item,\n addOn,\n addOn: {\n content: {\n disclaimer,\n subtitleModalTrigger,\n modalBody,\n icon,\n moreInfoLinkTo,\n moreInfoText,\n title,\n subtitlePrefix,\n },\n id,\n },\n isSelected,\n lineItemPrice,\n lineItemRebatesApplied,\n onChangeHandler,\n optionRebatesApplied,\n productPrice,\n styleFlag,\n uniqueId,\n uuid,\n}) => {\n\n const tooltip = modalBody && { message: modalBody };\n const callToActionHeader = getAddOnHeader({\n addOn,\n lineItemPrice,\n lineItemRebatesApplied,\n optionRebatesApplied,\n productPrice,\n });\n\n const labelId = callToActionHeader ? createUniqueId(id, `_label_${uuid}`) : undefined;\n const labelClass = modify('product-addon__checkbox', {\n checked: isSelected,\n styleFlag,\n });\n\n let prefixMessage = subtitlePrefix;\n\n\n\n if (addOn.content.isBillCreditApplicable) {\n const { price, rebatePrice } = item\n const billCreditAmount = getBillCreditAmount\n ({ ...addOn, rebates: optionRebatesApplied },\n { rebates: lineItemRebatesApplied },\n price,\n rebatePrice)\n if (billCreditAmount) {\n prefixMessage = creditMessageFormatter(addOn, billCreditAmount.onElecticity, prefixMessage);\n }\n }\n\n return (\n \n <>\n
\n {callToActionHeader && (\n
\n \n {callToActionHeader}\n
\n )}\n
{prefixMessage ? prefixMessage : \"When you enroll in\"}
\n }\n >\n {subtitleModalTrigger}\n \n
\n
\n {disclaimer}\n  \n {moreInfoLinkTo && (\n \n {moreInfoText}\n \n \n )}\n
\n \n \n );\n};\n\nProgramAddOn.propTypes = {\n addOn: PropTypes.shape({\n content: PropTypes.shape({\n bonus: PropTypes.shape({\n rebateValue: PropTypes.number,\n }),\n subtitleModalTrigger: PropTypes.string,\n disclaimer: PropTypes.string,\n modalBody: PropTypes.string,\n icon: PropTypes.string,\n moreInfoLinkTo: PropTypes.string,\n moreInfoText: PropTypes.string,\n title: PropTypes.string,\n subtitlePrefix: PropTypes.string,\n isBillCreditApplicable: PropTypes.shape({\n message: PropTypes.string,\n rebateAppliedMessage: PropTypes.string\n })\n }),\n id: PropTypes.string.isRequired,\n rebates: PropTypes.array\n }).isRequired,\n isSelected: PropTypes.bool,\n lineItemPrice: PropTypes.string,\n lineItemRebatesApplied: PropTypes.arrayOf(PropTypes.shape({})),\n onChangeHandler: PropTypes.func.isRequired,\n optionRebatesApplied: PropTypes.arrayOf(PropTypes.shape({})),\n productPrice: PropTypes.number.isRequired,\n styleFlag: PropTypes.string,\n uniqueId: PropTypes.string.isRequired,\n uuid: PropTypes.string,\n item: PropTypes.shape({\n price: PropTypes.shape({\n sales: PropTypes.shape({\n value: PropTypes.number\n })\n }),\n rebatePrice: PropTypes.shape({\n sales: PropTypes.shape({\n value: PropTypes.number\n })\n })\n })\n};\n\nProgramAddOn.defaultProps = {\n isSelected: false,\n lineItemPrice: '',\n lineItemRebatesApplied: [],\n optionRebatesApplied: [],\n styleFlag: null,\n uuid: '',\n subtitlePrefix: undefined,\n isBillCreditApplicable: null,\n item: {\n price: { sales: { value: 0 } },\n rebatePrice: { sales: { value: 0 } }\n }\n};\n\nexport default ProgramAddOn;\n","const PDPEvents = {\n modal: {\n category: 'PDP',\n action: 'PartnerModalPdp',\n label: 'Partner Modal on PDP',\n },\n modalLink: {\n category: 'PDP',\n action: 'FaqPartnerModal',\n label: 'FAQ Link in Partner Modal on the PDP',\n },\n incentiveModal: {\n category: 'PDP',\n action: 'IncentiveModalPdp',\n label: 'Incentive Modal on PDP',\n },\n};\n\nexport default PDPEvents;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DollarIcon from '../../../icons/icon-dollar.svg';\nimport InfoModal from '../../InfoModal/InfoModal';\nimport getAddOnHeader from '../helpers/getAddOnHeader';\nimport createUniqueId from '../../../helpers/createUniqueId';\nimport AddOnIcon from '../../AddOnIcon/AddOnIcon';\nimport Checkbox from '../../Checkbox/Checkbox';\nimport OfferCard from '../../OfferCard/OfferCard';\nimport CustomReactMarkdown from '../../MarkdownRenderers/CustomReactMarkdown';\nimport AddOnEvents from '../analytics/addOnEvents';\nimport { modify } from '../../../helpers/classNameHelper';\n\n\nconst ServiceAddOn = ({\n addOn,\n addOn: {\n content: {\n disclaimer,\n icon,\n incentiveModalBody,\n incentiveModalSubtitle,\n incentiveModalTitle,\n incentivePrefix,\n incentiveTitle,\n incentiveTrigger,\n modalBody,\n modalSubtitle,\n modalTitle,\n style,\n subtitleModelTrigger,\n subtitlePrefix,\n title,\n },\n optionId,\n id,\n },\n isSelected,\n lineItemPrice,\n lineItemRebatesApplied,\n onChangeHandler,\n optionRebatesApplied,\n productPrice,\n styleFlag,\n uniqueId,\n uuid,\n isTile,\n analytics,\n}) => {\n const callToActionHeader = getAddOnHeader({\n addOn,\n lineItemPrice,\n lineItemRebatesApplied,\n optionRebatesApplied,\n productPrice,\n });\n\n const modalStyleFlag = ['service', style, styleFlag].filter(flag => flag).join(' ');\n\n const labelId = callToActionHeader ? createUniqueId(id, `_label_${uuid}`) : undefined;\n const labelClass = modify('product-addon__checkbox', {\n checked: isSelected,\n style,\n styleFlag,\n });\n\n const showAppliedRebate = optionRebatesApplied.length > 0;\n const showRebateIncentive = incentiveModalTitle && !showAppliedRebate;\n\n const track = (type) => {\n // this is currently hardcoded since we don't have proper requirements on the generic use case\n if (analytics && isTile && optionId === 'installQuote' && AddOnEvents[type]) {\n analytics.trackEvent(AddOnEvents[type]);\n }\n };\n\n const renderAppliedRebate = () => {\n if (optionRebatesApplied.find(rebate => rebate.count > 0)) {\n return (\n \n );\n }\n\n return (\n \n );\n };\n\n return (\n <>\n \n <>\n
\n
\n
\n \n {title}\n
\n
\n {subtitlePrefix}\n  \n }\n openTrack={() => track('modal')}\n contentLinkTrack={() => track('modalLink')}\n >\n {subtitleModelTrigger}\n \n
\n
\n
\n {disclaimer}\n
\n
\n \n \n {showRebateIncentive && (\n
\n \n
\n
{incentiveTitle}
\n
\n {incentivePrefix}\n  \n }\n openTrack={() => track('incentiveModal')}\n >\n {incentiveTrigger}\n \n
\n
\n
\n )}\n {showAppliedRebate && renderAppliedRebate()}\n \n );\n};\n\nServiceAddOn.propTypes = {\n addOn: PropTypes.shape({\n bonus: PropTypes.shape({\n rebateValue: PropTypes.number,\n }),\n content: PropTypes.shape({\n disclaimer: PropTypes.string,\n icon: PropTypes.string,\n incentiveModalBody: PropTypes.string,\n incentiveModalSubtitle: PropTypes.string,\n incentiveModalTitle: PropTypes.string,\n incentivePrefix: PropTypes.string,\n incentiveTitle: PropTypes.string,\n incentiveTrigger: PropTypes.string,\n modalBody: PropTypes.string,\n modalSubtitle: PropTypes.string,\n modalTitle: PropTypes.string,\n offerDescription: PropTypes.string,\n offerIneligible: PropTypes.string,\n offerName: PropTypes.string,\n offerTitle: PropTypes.string,\n productCardText: PropTypes.string,\n style: PropTypes.string,\n subtitleModelTrigger: PropTypes.string,\n subtitlePrefix: PropTypes.string,\n title: PropTypes.string,\n }),\n id: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n }).isRequired,\n isSelected: PropTypes.bool,\n lineItemPrice: PropTypes.string,\n lineItemRebatesApplied: PropTypes.arrayOf(PropTypes.shape({})),\n onChangeHandler: PropTypes.func.isRequired,\n optionRebatesApplied: PropTypes.arrayOf(PropTypes.shape({})),\n productPrice: PropTypes.number.isRequired,\n styleFlag: PropTypes.string,\n uuid: PropTypes.string,\n uniqueId: PropTypes.string.isRequired,\n};\n\nServiceAddOn.defaultProps = {\n isSelected: false,\n lineItemPrice: '',\n lineItemRebatesApplied: [],\n optionRebatesApplied: [],\n styleFlag: null,\n uuid: '',\n};\n\nexport default ServiceAddOn;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ProgramAddOn from './ProgramAddOn';\nimport ServiceAddOn from './ServiceAddOn';\n\n\nconst ProductAddOnAvailable = (props) => {\n const { addOn: { type } } = props;\n\n const Component = {\n program: ProgramAddOn,\n service: ServiceAddOn,\n }[type];\n\n return Component ? : null;\n};\n\nProductAddOnAvailable.propTypes = {\n addOn: PropTypes.shape({\n type: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default ProductAddOnAvailable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ProductAddOnIneligible from './components/ProductAddOnIneligible';\nimport ProductAddOnAvailable from './components/ProductAddOnAvailable';\nimport { modify } from '../../helpers/classNameHelper';\n\n\nconst ProductAddOn = (props) => {\n const {\n addOn: {\n status: {\n eligible,\n },\n },\n isTile,\n styleFlag,\n } = props;\n\n const className = modify('product-addon', {\n 'promo-tile': isTile && eligible,\n styleFlag,\n });\n\n const Component = eligible ? ProductAddOnAvailable : ProductAddOnIneligible;\n\n return (\n
\n \n
\n );\n};\n\nProductAddOn.propTypes = {\n addOn: PropTypes.shape({\n status: PropTypes.shape({\n eligible: PropTypes.bool.isRequired,\n }).isRequired,\n }).isRequired,\n isTile: PropTypes.bool,\n styleFlag: PropTypes.string,\n};\n\nProductAddOn.defaultProps = {\n isTile: false,\n styleFlag: null,\n};\n\n\nexport default ProductAddOn;\n","const getFinalValue = ({\n rebatedPrice,\n originalPrice,\n rebateAddOns,\n programAddOns,\n totalRebateAvailable\n}) => {\n\n // rebatedPrice,originalPrice,rebateAddOns,addOns,totalRebateAvailable\n\n let adjustedPrice = rebatedPrice - totalRebateAvailable;\n\n if (rebateAddOns.length > 0) {\n\n // adjustedPrice=rebatedPrice\n const isineligibilityRebate = rebateAddOns.findIndex(\n discount => discount && discount.value !== '$0.00'\n ) === -1;\n\n if (isineligibilityRebate) { //if applied rebateAddOns is not eligible\n adjustedPrice = originalPrice\n } else {\n const totalRebateApplied = rebateAddOns.reduce((acc, curr) => {\n return acc + (Number(curr.value.replace(\"$\", \"\")) * -1);\n }, 0);\n adjustedPrice = originalPrice - totalRebateApplied\n }\n\n\n if (programAddOns.length > 0) {\n\n let afterProgramAddOn = adjustedPrice - totalRebateAvailable;\n\n const isineligibilityOption = programAddOns.findIndex(\n discount => discount && discount.value !== '$0.00'\n ) === -1;\n\n if (isineligibilityOption) { //if applied program is not eligible \n adjustedPrice = afterProgramAddOn + totalRebateAvailable;\n } else {\n adjustedPrice = afterProgramAddOn\n }\n }\n }\n return adjustedPrice\n};\n\nconst getBillCreditAmount = (\n addOns,\n rebatesApplied,\n price,\n rebatePrice,\n\n) => {\n\n try {\n let totalRebateAvailable = 0;\n const { rebates: rebateAddOns = [] } = rebatesApplied\n const { rebates: programAddOns = [] } = addOns\n\n const { sales: { value: originalPrice } } = price;\n const { sales: { value: rebatedPrice } } = rebatePrice;\n\n if (addOns.bonus) {\n totalRebateAvailable = addOns.bonus.rebateValue\n }\n\n\n const displayPrice = getFinalValue({ rebatedPrice, originalPrice, rebateAddOns, programAddOns, totalRebateAvailable });\n\n if (displayPrice <= -1) {\n const totalBillCredit = Number(displayPrice) && displayPrice * -1\n const onBill = totalRebateAvailable - totalBillCredit\n const onElecticity = totalBillCredit;\n return {\n onBill,\n onElecticity\n }\n } else {\n return null;\n }\n } catch (err) {\n console.log(\"error in getBillCreditAmount.js file\", err);\n return null;\n }\n};\n\nexport default getBillCreditAmount;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport SaleIcon from '../SaleIcon/SaleIcon';\nimport NewIcon from '../../icons/icon-new-badge.svg';\nimport FreeGiftIcon from '../../icons/icon-free-gift.svg';\n\n\nconst ProductBadge = function ProductBadgeComponent({ attributes, promotions, className }) {\n const hasFreeGift = promotions && promotions.length > 0 &&\n promotions.filter(promotion => promotion.type === 'gift').length > 0;\n\n if (attributes.onSale) {\n return ;\n }\n if (hasFreeGift) {\n return ;\n }\n if (attributes.newProduct) {\n return ;\n }\n\n return null;\n};\n\nProductBadge.propTypes = {\n attributes: PropTypes.shape({\n newProduct: PropTypes.bool,\n onSale: PropTypes.bool,\n }),\n className: PropTypes.string,\n promotions: PropTypes.arrayOf(PropTypes.shape({})),\n};\nProductBadge.defaultProps = {\n attributes: {},\n className: 'product_badge',\n promotions: [],\n};\n\nexport default ProductBadge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ConfigureProductsIcon from '../../../icons/icon-configure-products.svg';\n\n\nconst ServiceCallout = ({ addOn }) => (\n
\n \n
{addOn.content.title}
\n
\n);\n\nServiceCallout.propTypes = {\n addOn: PropTypes.shape({\n content: PropTypes.shape({\n title: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default ServiceCallout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ServiceCallout from './components/ServiceCallout';\n\n\nconst ComponentsMap = {\n service: ServiceCallout,\n};\n\nconst AddOnCallout = (props) => {\n const { addOn: { type } } = props;\n\n const Component = ComponentsMap[type];\n\n return Component ? : null;\n};\n\nAddOnCallout.propTypes = {\n addOn: PropTypes.shape({\n type: PropTypes.oneOf(Object.keys(ComponentsMap)).isRequired,\n }).isRequired,\n};\n\nexport default AddOnCallout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport PriceDisplay from '../PriceDisplay/PriceDisplay';\nimport StarRating from '../StarRating/StarRating';\nimport ProductBadge from '../ProductBadge/ProductBadge';\nimport isEnterOrSpace from '../../helpers/isEnterOrSpace';\nimport normalizeAttributeGroups from '../../helpers/normalizeAttributeGroups';\nimport AddOnCallout from '../AddOnCallout/AddOnCallout';\n\n\nconst ProductCard = ({\n analytics,\n product,\n product: {\n images,\n productName,\n promotions,\n ratingSummary,\n },\n list,\n}) => {\n const attributes = normalizeAttributeGroups(product);\n\n return (\n
\n analytics.productClick(product, list)}\n onKeyPress={event => isEnterOrSpace(event) && analytics.productClick(product, list)}\n role=\"link\"\n tabIndex={0}\n >\n
\n \n \"\"\n
\n
\n
{productName}
\n
\n \n
\n {attributes.addOns && attributes.addOns.map(addOn => (\n \n ))}\n
\n \n );\n};\n\nProductCard.propTypes = {\n product: PropTypes.shape({\n addOns: PropTypes.arrayOf(PropTypes.shape({\n values: PropTypes.shape({\n maxAddOnPrice: PropTypes.number,\n minAddOnPrice: PropTypes.number,\n }),\n content: PropTypes.shape({\n modalBody: PropTypes.string,\n title: PropTypes.string,\n subtitleModalTrigger: PropTypes.string,\n }),\n type: PropTypes.string,\n })),\n images: PropTypes.shape({\n productTile: PropTypes.arrayOf(PropTypes.shape({\n alt: PropTypes.string,\n url: PropTypes.string,\n })),\n }).isRequired,\n productName: PropTypes.string.isRequired,\n price: PropTypes.shape({}).isRequired,\n rebates: PropTypes.shape({\n min: PropTypes.shape({\n value: PropTypes.number.isRequired,\n formatted: PropTypes.string,\n }),\n max: PropTypes.shape({\n value: PropTypes.number.isRequired,\n formatted: PropTypes.string,\n }),\n label: PropTypes.string,\n tooltip: PropTypes.string,\n }),\n rebatePrice: PropTypes.shape({}),\n productUrl: PropTypes.string.isRequired,\n promotions: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n analytics: PropTypes.shape({\n productClick: PropTypes.func,\n }).isRequired,\n list: PropTypes.string.isRequired,\n};\n\nexport default ProductCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport PriceDisplay from '../PriceDisplay/PriceDisplay';\nimport StarRating from '../StarRating/StarRating';\nimport ProductBadge from '../ProductBadge/ProductBadge';\nimport Link from '../Link/Link';\nimport normalizeAttributeGroups from '../../helpers/normalizeAttributeGroups';\n\n\nconst ProductTile = function ProductTileComponent({ product, track }) {\n const attributes = normalizeAttributeGroups(product);\n\n return (\n track.analytics.productClick(track.measure, track.list, { stopRedirect: true })}\n >\n
\n
\n \n \n
\n
\n
{product.productName}
\n
\n \n
\n
\n \n );\n};\n\nProductTile.propTypes = {\n product: PropTypes.shape({}).isRequired,\n track: PropTypes.shape({}).isRequired,\n};\n\nexport default ProductTile;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MoneyBagIcon from '../../icons/icon-money-bag.svg';\nimport CustomReactMarkdown from '../MarkdownRenderers/CustomReactMarkdown';\n\n\nconst PromotionBanner = function PromotionBannerComponent({\n markdown,\n bannerClasses,\n}) {\n return (\n
\n \n
\n \n
\n
\n );\n};\n\nPromotionBanner.propTypes = {\n markdown: PropTypes.string.isRequired,\n bannerClasses: PropTypes.string,\n};\n\nPromotionBanner.defaultProps = {\n bannerClasses: '',\n};\n\nexport default PromotionBanner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport PlusIcon from '../../icons/icon-plus.svg';\nimport MinusIcon from '../../icons/icon-minus.svg';\n\n\nconst QuantitySelector = function QuantitySelectorComponent({\n min,\n max,\n disabled,\n current,\n options,\n onChange,\n}) {\n return (\n
\n onChange(current - 1, options)}\n >\n \n Remove one\n \n \n {current}\n \n = max}\n onClick={() => onChange(current + 1, options)}\n >\n \n Add one\n \n
\n );\n};\n\nQuantitySelector.propTypes = {\n current: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n onChange: PropTypes.func,\n options: PropTypes.shape({}),\n disabled: PropTypes.bool,\n};\n\nQuantitySelector.defaultProps = {\n current: 1,\n min: -Infinity,\n max: Infinity,\n onChange: () => {},\n options: {},\n disabled: false,\n};\n\nexport default QuantitySelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport IconRadioUnselected from '../../icons/icon-radio-unselected.svg';\nimport IconRadioSelected from '../../icons/icon-radio-selected.svg';\nimport IconRadioDisabled from '../../icons/icon-radio-disabled.svg';\nimport isEnterOrSpace from '../../helpers/isEnterOrSpace';\nimport { FocusRing } from '@react-aria/focus';\n\n\nconst themeMap = {\n default: 'radio',\n filter: 'radio--filter',\n};\n\nconst Radio = function RadioComponent(props) {\n const {\n fieldName,\n field,\n onChange,\n theme,\n disabled,\n } = props;\n const radioClass = classNames(themeMap[theme], {\n [`${themeMap[theme]}--selected`]: field.selected,\n [`${themeMap[theme]}--disabled`]: disabled,\n });\n const IconComponent = field.selected ? IconRadioSelected : IconRadioUnselected;\n\n return (\n \n isEnterOrSpace(event) && onChange(event, field.value)}\n onFocus={event => onChange(event, field.value)}\n >\n onChange(event, field.value)}\n onFocus={event => onChange(event, field.value)}\n required={field.required}\n />\n { disabled && }\n \n {field.label}\n \n \n\n );\n};\n\nRadio.propTypes = {\n field: PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n selected: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n required: PropTypes.bool,\n }).isRequired,\n fieldName: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n theme: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nRadio.defaultProps = {\n onChange: () => {},\n theme: 'default',\n disabled: false,\n};\n\nexport default Radio;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n\nconst SaleIcon = function SaleIconComponent({ display, className }) {\n if (!display) {\n return null;\n }\n return (\n
Sale
\n );\n};\n\nSaleIcon.propTypes = {\n display: PropTypes.bool,\n className: PropTypes.string,\n};\nSaleIcon.defaultProps = {\n display: false,\n className: '',\n};\n\nexport default SaleIcon;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport IconStar from '../../icons/icon-star.svg';\n\n\nclass StarRating extends Component {\n render() {\n const {\n range, value, count, link, linkCTA,\n } = this.props;\n\n if (!value || !count) {\n return '';\n }\n\n const maxPercent = 100;\n const percentRating = Math.ceil(value / range * maxPercent);\n const ratingStyle = { width: `${percentRating}%` };\n\n return (\n
\n \n {`${value} out of 5 stars`}\n \n
\n
\n {\n [...Array(range).keys()].map(star => (\n \n ))\n }\n
\n
\n {\n [...Array(range).keys()].map(star => (\n \n ))\n }\n
\n
\n { linkCTA && (\n {linkCTA}\n )}\n
\n );\n }\n}\n\n\nStarRating.propTypes = {\n range: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n count: PropTypes.number.isRequired,\n link: PropTypes.string,\n linkCTA: PropTypes.string,\n};\n\nStarRating.defaultProps = {\n link: null,\n linkCTA: null,\n};\n\nexport default StarRating;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n\n// TODO: Separate navigation flyout logic from Tooltip logic\nconst TooltipHOC = function TooltipHOComponent(WrappedComponent) {\n class TooltipHOC extends Component {\n constructor(props) {\n super(props);\n this.msgRef = React.createRef();\n this.tooltipPositionRef = React.createRef();\n this.config = {\n msgPadding: 20,\n iconDimensions: 0,\n alignMsg: 'left',\n expandOnFocus: true,\n };\n\n this.setConfig = this.setConfig.bind(this);\n this.toggleTooltip = this.toggleTooltip.bind(this);\n this.renderMsgBlock = this.renderMsgBlock.bind(this);\n this.handleOutsideClick = this.handleOutsideClick.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n\n this.state = { showTooltip: false, position: {}, shiftLeft: { left: 0 } };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { showTooltip } = this.state;\n\n if (prevState.showTooltip !== showTooltip) {\n this.positionMsgInWindow();\n }\n }\n\n componentWillUnmount() {\n this.handleEventListeners(false);\n }\n\n setConfig(config) {\n this.config = {\n ...this.config,\n ...config,\n };\n }\n\n getTooltipPosition() {\n const shiftCoefficient = 1.5;\n const { alignMsg, iconDimensions } = this.config;\n const rect = this.tooltipPositionRef.current.getBoundingClientRect();\n const { offsetTop } = this.tooltipPositionRef.current;\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n\n return {\n rightEdgePosition: rect.left + scrollLeft,\n left: rect[alignMsg] + scrollLeft - (iconDimensions * shiftCoefficient),\n top: offsetTop + rect.height,\n };\n }\n\n toggleTooltip(show, { type }) {\n const { expandOnFocus } = this.config;\n\n if (type === 'focus' && !expandOnFocus) {\n return;\n }\n\n const { showTooltip } = this.state;\n\n if (show !== showTooltip) {\n if (show) {\n const position = this.getTooltipPosition();\n\n if (position.rightEdgePosition <= document.documentElement.clientWidth) {\n this.handleEventListeners(true);\n this.setState({ showTooltip: true, position });\n }\n } else {\n this.handleEventListeners(false);\n this.setState({ showTooltip: false });\n }\n }\n }\n\n handleEventListeners(tooltipOpen) {\n if (tooltipOpen) {\n window.addEventListener('keyup', this.handleKeyPress);\n window.addEventListener('click', this.handleOutsideClick);\n window.addEventListener('touchstart', this.handleOutsideClick);\n } else {\n window.removeEventListener('keyup', this.handleKeyPress);\n window.removeEventListener('click', this.handleOutsideClick);\n window.removeEventListener('touchstart', this.handleOutsideClick);\n }\n }\n\n handleOutsideClick() {\n this.toggleTooltip(false);\n }\n\n handleKeyPress({ key, target, type }) {\n const { expandOnFocus } = this.config;\n\n if (type === 'focus' && expandOnFocus) {\n return;\n }\n\n const escapeKeyPressed = key === 'Escape';\n let showTooltip = false;\n\n if (this.tooltipPositionRef.current) {\n showTooltip = escapeKeyPressed ? false : this.tooltipPositionRef.current.contains(target);\n }\n this.toggleTooltip(showTooltip, { type });\n }\n\n positionMsgInWindow() {\n const xPosition = this.msgRef.current.getBoundingClientRect().right;\n const windowWidth = document.documentElement.clientWidth;\n const rightEdgePosition = this.config.msgPadding + xPosition;\n const shift = rightEdgePosition > windowWidth ? windowWidth - rightEdgePosition : 0;\n\n this.setState({ shiftLeft: { left: `${shift}px` } });\n }\n\n renderMsgBlock(msgBlock) {\n const { id, styleFlag } = this.props;\n const { showTooltip, shiftLeft, position } = this.state;\n const showTooltipClass = classNames('marketplace-tooltip__msg', { 'marketplace-tooltip__msg--visible': showTooltip });\n\n return (\n \n \n \n \n {msgBlock}\n \n \n \n );\n }\n\n render() {\n const { showTooltip } = this.state;\n const { id, navItem, title } = this.props;\n\n return (\n this.toggleTooltip(false, event)}\n onFocus={event => this.toggleTooltip(true, event)}\n onMouseOver={event => this.toggleTooltip(true, event)}\n onMouseLeave={event => this.toggleTooltip(false, event)}\n onTouchEnd={event => this.toggleTooltip(true, event)}\n onClick={event => event.stopPropagation()}\n >\n \n \n );\n }\n }\n\n TooltipHOC.propTypes = {\n id: PropTypes.string,\n title: PropTypes.string,\n styleFlag: PropTypes.string,\n navItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n subGroups: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n };\n TooltipHOC.defaultProps = {\n id: null,\n title: 'Navigation',\n styleFlag: 'tax',\n navItem: null,\n };\n\n return TooltipHOC;\n};\n\nexport default TooltipHOC;\n","class MediaQueryListener {\n constructor(eventListener) {\n this.debounce = 66;\n this.timeout = false;\n this.eventListener = eventListener;\n this.breakPointMap = {\n mobile: { display: 'mobile', value: 0 },\n tablet: { display: 'tablet', value: 1 },\n desktop: { display: 'desktop', value: 2 },\n 'xl-display': { display: 'xl-display', value: 3 },\n };\n\n this.atMinWidth = this.atMinWidth.bind(this);\n this.atMaxWidth = this.atMaxWidth.bind(this);\n this.getBreakPoint = this.getBreakPoint.bind(this);\n this.emitResizeEvent = this.emitResizeEvent.bind(this);\n\n this.init();\n }\n\n init() {\n this.setResizeEvent();\n\n setTimeout(() => {\n this.breakPoint = this.getBreakPoint();\n\n if (this.breakPoint) {\n this.setResizeEventListener();\n }\n }, this.debounce);\n }\n\n getBreakPoint() {\n const breakPoint = window.getComputedStyle(document.body, ':before').content.replace(/\"/g, '');\n\n return this.breakPointMap[breakPoint];\n }\n\n atMaxWidth(view) {\n if (this.breakPoint) {\n const { value } = this.breakPoint;\n const threshold = this.breakPointMap[view];\n\n if (threshold && threshold.display) {\n return value <= threshold.value;\n }\n }\n\n return false;\n }\n\n atMinWidth(view) {\n if (this.breakPoint) {\n const { value } = this.breakPoint;\n const threshold = this.breakPointMap[view];\n\n if (threshold && threshold.display) {\n return value >= threshold.value;\n }\n }\n\n return false;\n }\n\n setResizeEventListener() {\n this.eventListener(this.breakPoint);\n window.addEventListener('windowResize', ({ detail }) => this.eventListener(detail));\n }\n\n setResizeEvent() {\n if (!window.resizeEvent) {\n window.resizeEvent = (() => {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(this.emitResizeEvent, this.debounce);\n });\n\n window.addEventListener('resize', window.resizeEvent);\n }\n }\n\n emitResizeEvent() {\n const currentBreakPoint = this.getBreakPoint();\n\n if (currentBreakPoint.value !== this.breakPoint.value) {\n this.breakPoint = currentBreakPoint;\n\n window.dispatchEvent(new CustomEvent('windowResize', { detail: this.breakPoint }));\n }\n }\n}\n\nexport default MediaQueryListener;\n","const scrollConditions = {\n up: {\n scrollStepPx: 20,\n stopCondition: (currentOffset, targetOffset) => currentOffset <= targetOffset,\n },\n down: {\n scrollStepPx: -20,\n stopCondition: (currentOffset, targetOffset) => targetOffset - currentOffset <= 0,\n },\n};\n\nconst animateScroll = function animateScrollHelper(targetOffset) {\n let currentOffset = window.pageYOffset;\n let int = null;\n const scrollSpeed = 5;\n let scrollDirection;\n\n if (currentOffset > targetOffset) {\n scrollDirection = 'up';\n }\n\n if (currentOffset < targetOffset) {\n scrollDirection = 'down';\n }\n\n if (currentOffset === targetOffset) {\n return;\n }\n\n const { scrollStepPx, stopCondition } = scrollConditions[scrollDirection];\n\n int = setInterval(() => {\n currentOffset -= scrollStepPx;\n\n window.scrollTo(0, currentOffset);\n if (stopCondition(currentOffset, targetOffset)) {\n clearInterval(int);\n }\n }, scrollSpeed);\n};\n\nexport default animateScroll;\n","/**\n * Flattens the provided (nestable) arguments, parsing strings, numbers,\n * arrays, and truthy-valued objects into an array of strings\n * Adapted from JedWatson/classnames\n * @param {...*} strings - String or strings\n * @returns {Array.} - A flattened array of strings\n */\n// eslint-disable-next-line complexity\nconst flatten = (...args) => {\n const values = [];\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n\n if (arg) {\n const argType = typeof arg;\n\n if (argType === 'string') {\n values.push(...arg.split(' '));\n } else if (argType === 'number') {\n values.push(arg.toString());\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n const inner = flatten(...arg);\n\n values.push(...inner);\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n Object.keys(arg).forEach((key) => {\n if ({}.hasOwnProperty.call(arg, key) && arg[key]) {\n values.push(key);\n }\n });\n } else {\n values.push(arg.toString());\n }\n }\n }\n }\n\n return values;\n};\n\n/**\n * Apply BEM modifiers to the provided classes,\n * omitting pre-modified classes and returning a\n * valid className string\n * @param {*} classes - Classes\n * @param {...*} modifiers - Modifiers\n * @returns {Array.} - A string of class names\n */\nexport const modify = (classes, ...modifiers) => {\n const classesFlat = flatten(classes);\n const modifiersFlat = flatten(modifiers);\n const hasModifiers = modifiersFlat.length;\n\n const classNames = classesFlat.reduce((result, unmodifiedClass) => {\n let modifiedClass = unmodifiedClass;\n\n if (hasModifiers && !unmodifiedClass.match(/--/)) {\n const modified = modifiersFlat\n .map(modifier => `${unmodifiedClass}--${modifier}`)\n .join(' ');\n\n modifiedClass = `${unmodifiedClass} ${modified}`;\n }\n\n result.push(modifiedClass);\n return result;\n }, []);\n\n return classNames.join(' ');\n};\n\n/**\n * Generate a function with modifiers pre-defined\n * @param {...*} modifiers - Modifiers\n * @returns {Func} - A modify() wrapper with modifiers pre-defined\n */\nexport const styler = (...modifiers) => className => modify(className, ...modifiers);\n","const createUniqueId = function createUniqueIdHelper(...ids) {\n return ids.reduce((id, argument) => (id + argument), '')\n .replace(/(\\s)/g, '')\n .toLowerCase();\n};\n\n\nexport default createUniqueId;\n","import decimalNumberFormatter from \"./decimalNumberFormatter\";\n\nexport default function creditMessageFormatter(addOnData, remainingAmount, messageDescription) {\n let newMessage = messageDescription;\n try {\n let amount = Math.trunc(remainingAmount);\n if (amount > 0) {\n const newPrice = `$${decimalNumberFormatter(amount)}`;\n const regex = /\\$\\d+/;\n newMessage = addOnData.content.isBillCreditApplicable.message.replace(regex, newPrice)\n return newMessage\n } else {\n return newMessage;\n }\n } catch (err) {\n console.log(\"Logging error- \", err, \"bill credit functionality issue\");\n }\n}","const decimalFormatter = function decimalFormatterHelper(stringWithDecimal) {\n const emptyDecimals = new RegExp(/\\.00/);\n const removeDecimal = emptyDecimals.test(stringWithDecimal);\n\n return removeDecimal ? stringWithDecimal.replace(emptyDecimals, '') : stringWithDecimal;\n};\n\nexport default decimalFormatter;\n","export default function decimalNumberFormatter(val) {\n if (!Number(val)) return 0;\n\n return val.toFixed(0);\n\n}","import genericApiErrorHandler from './genericApiErrorHandler';\n\n\nconst fetchData = function fetchDataFromApi(\n url,\n options,\n { successHandler, errorHandler, dispatch },\n) {\n const errorHandlerFunction = errorHandler || genericApiErrorHandler;\n const errorStatus = 400;\n let responseStatus;\n\n return fetch(url, options)\n .then((response) => {\n responseStatus = response.status;\n return response.json();\n })\n .then((body) => {\n if (responseStatus >= errorStatus) {\n throw Error(body.errorMessage || 'System error');\n }\n\n return dispatch(successHandler(body, dispatch));\n })\n .catch((error) => {\n errorHandlerFunction(error, dispatch);\n });\n};\n\nexport default fetchData;\n","/*\n TODO:\n 1. Add other requests (DELETE, UPDATE) if needed\n 1. Add other options for requests (HEADERS including tokens, etc...) if needed\n\n*/\n\nconst fetchOptions = function getFetchOptions(type, payload) {\n const formData = new FormData();\n\n switch (type) {\n case 'getWithCredentials':\n return {\n method: 'GET',\n credentials: 'same-origin',\n };\n case 'post':\n return {\n method: 'POST',\n body: JSON.stringify(payload),\n credentials: 'same-origin',\n };\n case 'postForm':\n Object.keys(payload).forEach(key => formData.append(key, payload[key]));\n return {\n method: 'POST',\n body: formData,\n credentials: 'same-origin',\n };\n default:\n return {\n method: 'GET',\n credentials: 'same-origin',\n };\n }\n};\n\nexport default fetchOptions;\n","import { receiveError } from '../redux/actions/errors';\n\n\nconst genericApiErrorHandler = function genericApiErrorHandlerFunction(error, dispatch) {\n dispatch(receiveError(error));\n};\n\nexport default genericApiErrorHandler;\n","import AttributeCookies from '../components/AttributeSelector/helpers/AttributeCookies';\nimport getValueFromWindow from './getValueFromWindow';\n\n\nconst getCommodityValue = () => {\n const filterKey = 'commodity';\n\n let attributeValue;\n const currentOptionKey = (new AttributeCookies()).getChildValue(filterKey);\n\n const filteringAttributes = getValueFromWindow('attribute_selector', 'filteringAttributes');\n if (!filteringAttributes) {\n return null;\n }\n\n const commodityFilter = filteringAttributes.find((attr) => attr.filter === filterKey);\n if (!commodityFilter) {\n return null;\n }\n\n const currentOption = currentOptionKey && commodityFilter.options\n .find(option => option.value === currentOptionKey);\n\n attributeValue = currentOption && currentOption.value;\n\n if (!attributeValue) {\n const defaultOption = commodityFilter.options.find((option) => option.default);\n if (defaultOption) {\n attributeValue = defaultOption.value;\n }\n }\n \n return attributeValue;\n};\n\nexport default getCommodityValue;\n","const getGlobalFromWindow = function getGlobalFromWindowHelper(key) {\n const { seMarketplace } = window;\n\n if (\n !seMarketplace ||\n !Object.hasOwnProperty.call(seMarketplace, 'site_globals') ||\n !Object.hasOwnProperty.call(seMarketplace.site_globals, key)\n ) {\n return '';\n }\n\n return window.seMarketplace.site_globals[key];\n};\n\n\nexport default getGlobalFromWindow;\n","import decimalFormatter from './decimalFormatter';\n\n\nconst getPriceValues = function getPriceValues(price) {\n const isRange = price.type === 'range';\n const minPrice = isRange ? price.min : price;\n const { sales, list } = minPrice;\n const retailPrice = list ? decimalFormatter(list.formatted) : decimalFormatter(sales.formatted);\n\n return {\n salesPriceDisplay: `${isRange ? 'From ' : ''}${decimalFormatter(sales.formatted)}`,\n retailPriceDisplay: isRange ? `From ${retailPrice}` : `${retailPrice} full price`,\n retailPriceValue: retailPrice,\n priceValue: list ? list.value : sales.value,\n salesPriceValue: sales.value,\n };\n};\n\nconst getPriceStatus = function getPriceValues(price) {\n const isRange = price.type === 'range';\n const minPrice = isRange ? price.min : price;\n const { sales, list } = minPrice;\n const isFree = sales && sales.formatted === 'Free';\n const onSale = !isFree && list !== null;\n\n return { isFree, onSale };\n};\n\nconst getRebateValues = function getRebateValues(rebatePrice) {\n if (rebatePrice) {\n const price = rebatePrice.type === 'range' ? rebatePrice.min.sales : rebatePrice.sales;\n\n const rebate = rebatePrice.type === 'range' ?\n `${decimalFormatter(rebatePrice.min.sales.formatted)} - ${decimalFormatter(rebatePrice.max.sales.formatted)}` :\n decimalFormatter(rebatePrice.sales.formatted);\n\n return {\n hasRebates: true,\n rebatePriceDisplay: `${rebate}`,\n rebatePriceValue: price.value,\n };\n }\n\n return { hasRebates: false, rebatePriceDisplay: '' };\n};\n\nconst getAddOnValues = function getAddOnValues(addOns) {\n if (!addOns) {\n return null;\n }\n\n const addOnPriceDisplay = addOns.reduce((out, addOn) => {\n const { values } = addOn;\n\n if (values.minAddOnPrice === values.maxAddOnPrice) {\n out[addOn.id] = `${decimalFormatter(values.minAddOnPriceFormatted)}`;\n } else {\n out[addOn.id] = `${decimalFormatter(values.minAddOnPriceFormatted)} - ${decimalFormatter(values.maxAddOnPriceFormatted)}`;\n }\n\n return out;\n }, {});\n\n return {\n addOnPriceDisplay,\n };\n};\n\nexport default function getPriceDisplay(price, rebatePrice, addOns) {\n return {\n ...getPriceValues(price),\n ...getPriceStatus(price),\n ...getRebateValues(rebatePrice),\n ...getAddOnValues(addOns),\n };\n}\n","const getValueFromWindow = function getValueFromWindowHelper(prop, key) {\n const { seMarketplace } = window;\n\n if (\n !seMarketplace ||\n !Object.hasOwnProperty.call(seMarketplace, prop) ||\n !Object.hasOwnProperty.call(seMarketplace[prop], key)\n ) {\n return '';\n }\n\n\n return window.seMarketplace[prop][key];\n};\n\n\nexport default getValueFromWindow;\n","const isEnterOrSpace = function isEnterOrSpace({ key }) {\n return key === 'Enter' || key === ' ';\n};\n\nexport default isEnterOrSpace;\n","const linkHelper = (href, external) => {\n let parsedHref = href;\n\n if (external && !href.includes('{openNewTab}')) {\n parsedHref += '{openNewTab}';\n }\n\n const metadata = {\n allowIcon: false,\n openNewTab: false,\n relative: false,\n scrollTo: false,\n };\n\n const customHooks = [];\n\n const metaSyntax = /(?:https?:\\/\\/)?{([^}]+)}/gi;\n\n parsedHref = parsedHref.replace(\n metaSyntax,\n (_match, meta) => {\n if (meta in metadata) {\n metadata[meta] = true;\n } else {\n customHooks.push(meta);\n }\n\n return '';\n },\n );\n\n const isLocationalHref = parsedHref.length > 0 && parsedHref !== '#';\n\n return {\n allowIcon: metadata.allowIcon,\n href: parsedHref,\n hooks: customHooks,\n openNewTab: isLocationalHref && metadata.openNewTab && !metadata.scrollTo,\n scrollTo: metadata.scrollTo,\n relative: metadata.relative,\n };\n};\n\nexport default linkHelper;\n","const normalizeAttributeGroups = function normalizeAttributeGroups({ addOns, attributeGroups }) {\n if (attributeGroups && attributeGroups.storefrontAttributes) {\n const { storefrontAttributes } = attributeGroups;\n const attributes = {};\n\n attributes.addOns = addOns;\n\n Object.keys(storefrontAttributes).forEach((attribute) => {\n const { value } = storefrontAttributes[attribute];\n\n if (value) {\n attributes[attribute] = value[0] === 'Yes' || value[0] === true;\n }\n });\n\n return attributes;\n }\n\n return {};\n};\n\n\nexport default normalizeAttributeGroups;\n","import getGlobalFromWindow from '../../helpers/getGlobalFromWindow';\nimport fetchOptions from '../../helpers/fetchOptions';\n\n\nexport const RECEIVE_ERROR = 'marketplace/errors/RECEIVE_ERROR';\nexport const CLEAR_ERRORS = 'marketplace/errors/CLEAR_ERRORS';\n\nexport const receiveError = function receiveErrorAction(error) {\n const errorMessage = error.message;\n\n return {\n type: RECEIVE_ERROR,\n error: { message: errorMessage },\n };\n};\n\nexport const clearErrors = function clearErrorsAction() {\n return {\n type: CLEAR_ERRORS,\n };\n};\n\nexport const alertError = function alertErrorAction(csrf, message) {\n if (!csrf) {\n return;\n }\n\n const alertURL = getGlobalFromWindow('alertURL');\n const url = `${alertURL}?csrf_token=${csrf}`;\n const options = fetchOptions('post', { message });\n\n fetch(url, options).then(() => {});\n};\n","import { RECEIVE_ERROR, CLEAR_ERRORS } from '../actions/errors';\n\n\nexport default function errorsReducer(state = [], action) {\n switch (action.type) {\n case RECEIVE_ERROR:\n return state.concat([action.error]);\n case CLEAR_ERRORS:\n return [];\n default:\n return state;\n }\n}\n","import * as types from '../actions/types';\n\n/**\n * Function to get the earliest delivery date from the list of delivery dates\n * @param {Object[]} deliveryDates - list of delivery dates\n * @returns {Date} - earliest delivery date\n */\nfunction getEarliestDeliveryDate(deliveryDates) {\n const dates = deliveryDates.map(date => new Date(date.date));\n if (dates.length === 0) {\n return null;\n }\n\n return new Date(Math.min.apply(null, dates));\n}\n\n/**\n * Function to update the dependant fields based on the selection status\n * @param {Object} addOn - add on object \n * @param {String[]} relatedTo - list of related addon ids\n * @param {Object} fieldTypeWiseSelection - object containing the selection status of add ons based on field type\n * @param {Object} fieldWiseSelection - object containing the selection status of add ons\n * @returns {void}\n */\nfunction updateDependantFields(addOn, relatedTo = [], fieldTypeWiseSelection, fieldWiseSelection = {}) {\n if (relatedTo.length === 0) return;\n\n const disabledForSelection = relatedTo.some(relatedId => !fieldTypeWiseSelection[relatedId]);\n if(disabledForSelection){\n addOn.disabled = disabledForSelection;\n addOn.selected = false;\n fieldWiseSelection[addOn.externalAddOnId] = false;\n }\n}\n\n/**\n * \n * @param {Object[]} addOns - list of add ons\n * @returns {Object} - updated add ons in the form of object\n * @example\n * Example input:\n * [\n * {\n * externalAddOnType: 'installation',\n * externalAddOnId: '5246604',\n * externalAddOnName: 'Refrigerator Install to Existing or No Water (Ready To Use)',\n * externalAddOnDescription: 'Have an Installer quickly and professionally connect your Refrigerator to an existing water supply line. We will install a manufacturer supplied water filter or new water filter, if purchased. We will also level the new appliance and demonstrate the basic operation.',\n * externalAddOnPrice: 24.99,\n * selected: false,\n * interDependencyRules: {\n * id: '5246604',\n * value: 'installation',\n * relation: 'parent',\n * relatedTo: [],\n * requiresParts: false,\n * fieldType: 'radio'\n * },\n * \"externalAddOnModalInfo\": {\n * \"icon\": \"screw-driver\",\n * \"modalBody\": \"message to show in modal body\",\n * \"modalContentLabel\": \"label to trigger the modal\",\n * \"modalSubTitle\": \"sub-title\",\n * \"modalTitle\": \"title\",\n * \"showBreakUp\": false\n * }\n * }\n * ]\n * \n * Example output:\n * {\n * '5246604': {\n * externalAddOnType: 'installation',\n * externalAddOnId: '5246604',\n * externalAddOnName: 'Refrigerator Install to Existing or No Water (Ready To Use)',\n * externalAddOnDescription: 'Have an Installer quickly and professionally connect your Refrigerator to an existing water supply line. We will install a manufacturer supplied water filter or new water filter, if purchased. We will also level the new appliance and demonstrate the basic operation.',\n * externalAddOnPrice: 24.99,\n * selected: false,\n * interDependencyRules: {\n * id: '5246604',\n * value: 'installation',\n * relation: 'parent',\n * relatedTo: [],\n * requiresParts: false,\n * fieldType: 'radio'\n * },\n * \"externalAddOnModalInfo\": {\n * \"icon\": \"screw-driver\",\n * \"modalBody\": \"message to show in modal body\",\n * \"modalContentLabel\": \"label to trigger the modal\",\n * \"modalSubTitle\": \"sub-title\",\n * \"modalTitle\": \"title\",\n * \"showBreakUp\": false\n * }\n * }\n * },\n * selection: {\n * '5246604': false,\n * },\n * ids: [\n * '5246604',\n * ],\n * groupedByFieldTypes: {\n * radio: {\n * installation: [\n * '5246604',\n * ]\n * },\n * }\n * }\n */\nfunction getAddOnsById(addOns) {\n const updatedAddOns = addOns.reduce((acc, addOn) => {\n const {\n externalAddOnId,\n externalAddOnType,\n } = addOn;\n\n acc[externalAddOnId] = addOn;\n acc.selection[externalAddOnId] = addOn.selected;\n acc.selectionByFieldType[externalAddOnType] = acc.selectionByFieldType[externalAddOnType] || addOn.selected;\n acc.ids.push(externalAddOnId);\n\n if(externalAddOnType in acc.groupedByFieldTypes['checkbox']){\n if(acc.groupedByFieldTypes['checkbox'][externalAddOnType]){\n acc.groupedByFieldTypes['radio'][externalAddOnType] = acc.groupedByFieldTypes['checkbox'][externalAddOnType];\n delete acc.groupedByFieldTypes['checkbox'][externalAddOnType];\n }\n acc.groupedByFieldTypes['radio'][externalAddOnType].push(externalAddOnId);\n } else {\n acc.groupedByFieldTypes['checkbox'][externalAddOnType] = [externalAddOnId];\n }\n return acc;\n }, { selection: {}, ids: [], groupedByFieldTypes: {'checkbox': {}, 'radio': {}}, selectionByFieldType: {} });\n\n updatedAddOns.ids.forEach(id => {\n const addOn = updatedAddOns[id];\n const {\n interDependencyRules: {\n relatedTo = [],\n relation\n } = {}\n } = addOn;\n if (relation === 'dependsOn') {\n updateDependantFields(addOn, relatedTo, updatedAddOns.selectionByFieldType, updatedAddOns.selection);\n }\n });\n\n return updatedAddOns;\n}\n\n/**\n * Function to reset the addons selection and disable them if error is present\n * @param {Object[]} addOns - list of add ons\n * @param {Boolean} error - flag to indicate error\n * @returns {Object[]} - mutated add ons\n */\nfunction resetAddOnsSelection(addOns, error) {\n const { ids = [] } = addOns;\n ids.forEach(addOnId => {\n addOns[addOnId] = {\n ...addOns[addOnId],\n selected: false,\n disabled: error,\n }\n addOns.selection[addOnId] = false;\n addOns.selectionByFieldType = {};\n updateDependantFields(addOns[addOnId], addOns[addOnId].interDependencyRules.relatedTo, addOns.selectionByFieldType, addOns.selection);\n });\n\n return addOns;\n}\n\nfunction setAddOnsSelection(addOns, addOnID, selected) {\n const { ids = [], groupedByFieldTypes = {} } = addOns;\n const updatedAddOnsId = addOnID;\n const addOn = addOns[updatedAddOnsId];\n const {\n externalAddOnType\n } = addOn;\n\n //reset radio buttons\n const radioGroups = groupedByFieldTypes['radio'];\n if (\n radioGroups && \n radioGroups[externalAddOnType] && \n radioGroups[externalAddOnType].indexOf(updatedAddOnsId) !== -1\n ) {\n radioGroups[externalAddOnType].forEach(id => {\n let addOn = addOns[id];\n addOn = {\n ...addOns[id],\n selected: false,\n }\n addOns.selection[id] = false;\n addOns[id] = addOn;\n })\n }\n\n ids.forEach(addOnId => {\n let addOn = addOns[addOnId];\n addOn = {\n ...addOns[addOnId],\n selected: addOnId === updatedAddOnsId ? selected : addOns[addOnId].selected,\n }\n\n addOns.selection[addOnId] = addOnId === updatedAddOnsId ? selected : addOns.selection[addOnId];\n addOns.selectionByFieldType[addOn.externalAddOnType] = addOnId === updatedAddOnsId ? selected : addOns.selectionByFieldType[addOn.externalAddOnType];\n if(addOnId !== updatedAddOnsId){\n updateDependantFields(addOn, addOn.interDependencyRules.relatedTo, addOns.selectionByFieldType, addOns.selection);\n }\n\n addOns[addOnId] = addOn;\n });\n\n return addOns;\n}\n\n/**\n * Wrapper reducer to handle external add ons for multiple products\n * @param {Object} state - state of the external add ons \n * @param {Object} action - intended action to be performed \n * @returns {Object} - mutated state\n */\nexport default function externalAddOnsReducerForProducts(state = {}, action) {\n const { productId } = action;\n\n switch (action.type) {\n case types.RECEIVE_EXTERNAL_ADDONS:\n case types.UPDATE_ZIPCDOE:\n case types.SET_ERROR:\n case types.SET_ADD_ON_SELECTION:\n case types.SET_ADD_ON_IN_FLIGHT: {\n return {\n ...state,\n [productId]: externalAddOnsReducer(state[productId], action)\n }\n }\n case types.RECEIVE_EXTERNAL_ADDONS_BULK:{\n const { externalAddOns } = action;\n const productIds = Object.keys(externalAddOns);\n\n return productIds.reduce((acc,id) => {\n acc[id] = externalAddOnsReducer(state[id], {\n type: types.RECEIVE_EXTERNAL_ADDONS,\n externalAddOns: externalAddOns[id],\n });\n return acc;\n }, {});\n }\n case types.RESET_EXTERNAL_ADDONS: {\n const { productId } = action;\n const productIds = Object.keys(state);\n\n return productIds.reduce((acc, id) => {\n if(id === productId){\n acc[id] = { ...state[id] }\n }\n\n return acc;\n }, {});\n }\n default: {\n return state;\n }\n }\n}\n\n\n/**\n * External Add ons base reducer to update the state for external add ons for single product\n * @param {Object} state - state of the external add ons \n * @param {Object} action - intended action to be performed \n * @returns {Object} - mutated state\n */\nexport function externalAddOnsReducer(\n state = { \n zipCode: null,\n error: false,\n errorMessage: '',\n externalAddOns: {\n addOns: {\n ids: [],\n selection: {},\n groupedByFieldTypes: {}\n }\n },\n productDeliveryDates: {},\n earliestDeliveryDate: null,\n inFlight: false\n },\n action\n) {\n switch (action.type) {\n case types.RECEIVE_EXTERNAL_ADDONS:\n const {\n productDeliveryDates = {},\n externalAddOns = {},\n } = action.externalAddOns;\n\n const earliestDeliveryDate = getEarliestDeliveryDate(productDeliveryDates.deliveryStates);\n const error = productDeliveryDates.error || externalAddOns.error;\n const errorMessage = productDeliveryDates.errorMessage || externalAddOns.errorMessage;\n const addOnsById = getAddOnsById(externalAddOns.addOns);\n\n return {\n ...state,\n productDeliveryDates,\n externalAddOns: {\n ...externalAddOns,\n addOns: addOnsById\n },\n earliestDeliveryDate,\n error,\n errorMessage,\n inFlight: false,\n zipCode: externalAddOns.zipCode,\n }\n case types.UPDATE_ZIPCDOE: {\n const { zipCode, error, errorMessage } = action;\n return {\n ...state,\n zipCode,\n error,\n errorMessage,\n earliestDeliveryDate: error ? null : state.earliestDeliveryDate,\n externalAddOns: {\n ...state.externalAddOns,\n addOns: resetAddOnsSelection(state.externalAddOns.addOns, error),\n informationMessage: '',\n }\n }\n }\n case types.SET_ERROR: {\n const { error, errorMessage } = action;\n return {\n ...state,\n error,\n errorMessage,\n }\n }\n case types.SET_ADD_ON_SELECTION: {\n const { addOnID, selected } = action;\n const { externalAddOns } = state;\n\n return {\n ...state,\n externalAddOns: {\n ...externalAddOns,\n addOns: setAddOnsSelection(externalAddOns.addOns, addOnID, selected),\n }\n }\n }\n case types.SET_ADD_ON_IN_FLIGHT: {\n const { inFlight } = action;\n return {\n ...state,\n inFlight\n }\n }\n default:\n return state;\n }\n}\n","/* eslint-disable import/prefer-default-export */\nimport { createSelector } from 'reselect';\n\n\nexport const getErrors = createSelector(\n [state => state.errors],\n errors => errors,\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ProductTile from '../../../shared/components/ProductTile/ProductTile';\nimport Analytics from '../../../analytics/Analytics';\n\n\nconst ProductTiles = function ProductTilesComponent({ products, productLimit, emptyCart }) {\n const tileClass = classNames({\n 'cart-recommendations__tile': !emptyCart,\n 'empty-cart-recommendations__tile': emptyCart,\n });\n\n return products.map((product, index) => {\n if (index < productLimit) {\n const track = {\n list: 'Cartpage Recommended Products',\n analytics: new Analytics(),\n measure: product,\n };\n\n return (\n
\n \n
\n );\n }\n return null;\n });\n};\n\nProductTiles.propTypes = {\n emptyCart: PropTypes.bool,\n productLimit: PropTypes.number.isRequired,\n products: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nProductTiles.defaultProps = {\n emptyCart: false,\n};\n\nexport default ProductTiles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ProductTiles from './ProductTiles';\n\n\nconst CartRecommendations = function CartRecommendationsComponent({\n products, productLimit, title,\n}) {\n if (!(products && products.length > 0)) {\n return null;\n }\n\n return (\n
\n
\n
\n
{title}
\n
\n
\n \n
\n
\n
\n );\n};\n\nCartRecommendations.propTypes = {\n title: PropTypes.string.isRequired,\n productLimit: PropTypes.number.isRequired,\n products: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default CartRecommendations;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ProductTiles from './ProductTiles';\n\n\nconst EmptyCartRecommendations = function EmptyCartRecommendationsComponent({\n products, productLimit, title, ctaButton\n}) {\n if (!(products && products.length > 0)) {\n return (\n \n );\n }\n\n return (\n
\n
\n
\n
{title}
\n
\n
\n \n
\n \n
\n
\n );\n};\n\nEmptyCartRecommendations.propTypes = {\n title: PropTypes.string.isRequired,\n productLimit: PropTypes.number.isRequired,\n ctaButton: PropTypes.shape({}).isRequired,\n products: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n continueShoppingRedirectUrl: PropTypes.string\n};\n\n\nexport default EmptyCartRecommendations;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport withEinstein from '../../withEinstein/containers/withEinstein';\nimport CartRecommendations from '../components/CartRecommendations';\nimport EmptyCartRecommendations from '../components/EmptyCartRecommendations';\n\n\nclass CartRecommendedProducts extends Component {\n static getDomId() {\n return 'slot_cart_recommended_products';\n }\n\n static getFallbackDetails() {\n return {\n delay: 0,\n url: `${window.seMarketplace.site_globals.profferUrl}?type=cartRecommendations`,\n };\n }\n\n constructor(props) {\n super(props);\n this.homeURL = window.seMarketplace.site_globals.homeURL;\n }\n\n render() {\n const {\n details,\n emptyCart,\n productLimit,\n recommendedProducts,\n } = this.props;\n const ctaButton = (recommendedProducts.length > 0 && details.cta) || { displayText: 'Continue shopping', url: this.homeURL };\n\n if (emptyCart) {\n return (\n \n );\n }\n\n return (\n \n );\n }\n}\n\nCartRecommendedProducts.propTypes = {\n details: PropTypes.shape({}),\n recommendedProducts: PropTypes.arrayOf(PropTypes.shape({\n productID: PropTypes.string,\n })),\n fallbackProducts: PropTypes.shape({\n productIds: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n productLimit: PropTypes.number.isRequired,\n emptyCart: PropTypes.bool,\n};\n\nCartRecommendedProducts.defaultProps = {\n emptyCart: false,\n details: { title: 'Don\\'t miss out on these deals' },\n fallbackProducts: undefined,\n recommendedProducts: [],\n};\n\nexport default withEinstein(CartRecommendedProducts);\n","import * as types from './types';\nimport fetchData from '../../../shared/helpers/fetchData';\nimport fetchOptions from '../../../shared/helpers/fetchOptions';\n\n\nexport const receiveQuery = fallbackData => ({\n type: types.RECEIVE_QUERY_RESULTS,\n fallbackData,\n});\n\nexport const queryData = function queryDataAll(url) {\n return function queryData(dispatch) {\n const options = fetchOptions('getWithCredentials');\n const handlers = {\n successHandler: receiveQuery,\n dispatch,\n };\n\n return fetchData(url, options, handlers);\n };\n};\n","export const RECEIVE_QUERY_RESULTS = 'RECEIVE_QUERY_RESULTS';\nexport const IN_FLIGHT = 'IN_FLIGHT';\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport thunk from 'redux-thunk';\nimport { createStore, applyMiddleware, combineReducers } from 'redux';\nimport reducer from '../reducers/index';\nimport { queryData } from '../actions/index';\nimport errorsReducer from '../../../shared/redux/reducers/errors';\n\n\nconst withEinstein = function withEinstein(WrappedComponent) {\n const mapStateToProps = state => state;\n\n class EinsteinRecommendationComponent extends Component {\n static getDomId() {\n return WrappedComponent.getDomId();\n }\n\n static getStore() {\n const middleware = [thunk];\n const initialState = {\n fallbackData: { content: undefined },\n errors: [],\n };\n\n return createStore(\n combineReducers({\n fallbackData: reducer,\n errors: errorsReducer,\n }),\n initialState,\n applyMiddleware(...middleware),\n );\n }\n\n constructor(props) {\n super(props);\n const { delay, url } = WrappedComponent.getFallbackDetails();\n\n this.addEvents = this.addEvents.bind(this);\n this.removeEvents = this.removeEvents.bind(this);\n this.loadAsyncData = this.loadAsyncData.bind(this);\n this.getFallbackProductList = this.getFallbackProductList.bind(this);\n\n this.timeout = {};\n this.timeoutDelay = delay;\n this.productListsUrl = url;\n this.componentId = WrappedComponent.getDomId();\n this.state = { [this.componentId]: window.seMarketplace[this.componentId] };\n\n this.addEvents();\n }\n\n componentWillUnmount() {\n this.removeEvents();\n }\n\n getFallbackProductList() {\n const { dispatch } = this.props;\n\n this.removeEvents();\n dispatch(queryData(this.productListsUrl));\n }\n\n addEvents() {\n const { [this.componentId]: componentData } = this.state;\n const { fallbackData: { content } } = this.props;\n\n if (componentData === undefined && content === undefined) {\n if (this.productListsUrl) {\n this.timeout = setTimeout(this.getFallbackProductList, this.timeoutDelay);\n }\n window.addEventListener('seMarketplace.componentLoaded', this.loadAsyncData);\n }\n }\n\n removeEvents() {\n clearTimeout(this.timeout);\n window.removeEventListener('seMarketplace.componentLoaded', this.loadAsyncData);\n }\n\n loadAsyncData({ detail: { componentId } }) {\n if (componentId === this.componentId) {\n this.removeEvents();\n this.setState({ [this.componentId]: window.seMarketplace[this.componentId] });\n }\n }\n\n render() {\n const { fallbackData: { content } } = this.props;\n const { [this.componentId]: componentData } = this.state;\n const combinedData = {\n ...this.props,\n ...componentData,\n ...content,\n };\n\n return ;\n }\n }\n\n EinsteinRecommendationComponent.propTypes = {\n dispatch: PropTypes.func.isRequired,\n fallbackData: PropTypes.shape({}).isRequired,\n };\n\n return connect(mapStateToProps)(EinsteinRecommendationComponent);\n};\n\nexport default withEinstein;\n","import * as types from '../actions/types';\n\n\nexport default function cartReducer(state = {}, action) {\n switch (action.type) {\n case types.RECEIVE_QUERY_RESULTS:\n return {\n ...state,\n content: action.fallbackData,\n };\n default:\n return state;\n }\n}\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = (window as unknown) as Window & {\n visualViewport: visualViewport\n }\n\n const {\n scrollMode,\n block,\n inline,\n boundary,\n skipOverflowHiddenElements,\n } = options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = cursor.parentElement\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const {\n height,\n width,\n top,\n right,\n bottom,\n left,\n } = frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll,\n frame.scrollHeight - height + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll,\n frame.scrollWidth - width + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar React = require('react');\n\nvar ReactDOM = require('react-dom');\n\nvar PropTypes = require('prop-types');\n\nvar _require = require('focus-trap'),\n createFocusTrap = _require.createFocusTrap;\n\nvar _require2 = require('tabbable'),\n isFocusable = _require2.isFocusable; // TODO: These issues are related to older React features which we'll likely need\n// to fix in order to move the code forward to the next major version of React.\n// @see https://github.com/davidtheclark/focus-trap-react/issues/77\n\n/* eslint-disable react/no-find-dom-node */\n\n\nvar FocusTrap = /*#__PURE__*/function (_React$Component) {\n _inherits(FocusTrap, _React$Component);\n\n var _super = _createSuper(FocusTrap);\n\n function FocusTrap(props) {\n var _this;\n\n _classCallCheck(this, FocusTrap);\n\n _this = _super.call(this, props);\n _this.handleDeactivate = _this.handleDeactivate.bind(_assertThisInitialized(_this));\n _this.handlePostDeactivate = _this.handlePostDeactivate.bind(_assertThisInitialized(_this));\n _this.handleClickOutsideDeactivates = _this.handleClickOutsideDeactivates.bind(_assertThisInitialized(_this)); // focus-trap options used internally when creating the trap\n\n _this.internalOptions = {\n // We need to hijack the returnFocusOnDeactivate option,\n // because React can move focus into the element before we arrived at\n // this lifecycle hook (e.g. with autoFocus inputs). So the component\n // captures the previouslyFocusedElement in componentWillMount,\n // then (optionally) returns focus to it in componentWillUnmount.\n returnFocusOnDeactivate: false,\n // the rest of these are also related to deactivation of the trap, and we\n // need to use them and control them as well\n checkCanReturnFocus: null,\n onDeactivate: _this.handleDeactivate,\n onPostDeactivate: _this.handlePostDeactivate,\n // we need to special-case this setting as well so that we can know if we should\n // NOT return focus if the trap gets auto-deactivated as the result of an\n // outside click (otherwise, we'll always think we should return focus because\n // of how we manage that flag internally here)\n clickOutsideDeactivates: _this.handleClickOutsideDeactivates\n }; // original options provided by the consumer\n\n _this.originalOptions = {\n // because of the above `tailoredFocusTrapOptions`, we maintain our own flag for\n // this option, and default it to `true` because that's focus-trap's default\n returnFocusOnDeactivate: true,\n // because of the above `tailoredFocusTrapOptions`, we keep these separate since\n // they're part of the deactivation process which we configure (internally) to\n // be shared between focus-trap and focus-trap-react\n onDeactivate: null,\n onPostDeactivate: null,\n checkCanReturnFocus: null,\n // the user's setting, defaulted to false since focus-trap defaults this to false\n clickOutsideDeactivates: false\n };\n var focusTrapOptions = props.focusTrapOptions;\n\n for (var optionName in focusTrapOptions) {\n if (!Object.prototype.hasOwnProperty.call(focusTrapOptions, optionName)) {\n continue;\n }\n\n if (optionName === 'returnFocusOnDeactivate' || optionName === 'onDeactivate' || optionName === 'onPostDeactivate' || optionName === 'checkCanReturnFocus' || optionName === 'clickOutsideDeactivates') {\n _this.originalOptions[optionName] = focusTrapOptions[optionName];\n continue; // exclude from tailoredFocusTrapOptions\n }\n\n _this.internalOptions[optionName] = focusTrapOptions[optionName];\n } // if set, `{ target: Node, allowDeactivation: boolean }` where `target` is the outside\n // node that was clicked, and `allowDeactivation` is the result of the consumer's\n // option (stored in `this.originalOptions.clickOutsideDeactivates`, which may be a\n // function) whether to allow or deny auto-deactivation on click on this outside node\n\n\n _this.outsideClick = null; // elements from which to create the focus trap on mount; if a child is used\n // instead of the `containerElements` prop, we'll get the child's related\n // element when the trap renders and then is declared 'mounted'\n\n _this.focusTrapElements = props.containerElements || []; // now we remember what the currently focused element is, not relying on focus-trap\n\n _this.updatePreviousElement();\n\n return _this;\n }\n /**\n * Gets the configured document.\n * @returns {Document|undefined} Configured document, falling back to the main\n * document, if it exists. During SSR, `undefined` is returned since the\n * document doesn't exist.\n */\n\n\n _createClass(FocusTrap, [{\n key: \"getDocument\",\n value: function getDocument() {\n // SSR: careful to check if `document` exists before accessing it as a variable\n return this.props.focusTrapOptions.document || (typeof document !== 'undefined' ? document : undefined);\n } // TODO: Need more test coverage for this function\n\n }, {\n key: \"getNodeForOption\",\n value: function getNodeForOption(optionName) {\n var optionValue = this.internalOptions[optionName];\n\n if (!optionValue) {\n return null;\n }\n\n var node = optionValue;\n\n if (typeof optionValue === 'string') {\n var _this$getDocument;\n\n node = (_this$getDocument = this.getDocument()) === null || _this$getDocument === void 0 ? void 0 : _this$getDocument.querySelector(optionValue);\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` refers to no known node\"));\n }\n }\n\n if (typeof optionValue === 'function') {\n node = optionValue();\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` did not return a node\"));\n }\n }\n\n return node;\n }\n }, {\n key: \"getReturnFocusNode\",\n value: function getReturnFocusNode() {\n var node = this.getNodeForOption('setReturnFocus');\n return node ? node : this.previouslyFocusedElement;\n }\n /** Update the previously focused element with the currently focused element. */\n\n }, {\n key: \"updatePreviousElement\",\n value: function updatePreviousElement() {\n var currentDocument = this.getDocument();\n\n if (currentDocument) {\n this.previouslyFocusedElement = currentDocument.activeElement;\n }\n }\n }, {\n key: \"deactivateTrap\",\n value: function deactivateTrap() {\n // NOTE: it's possible the focus trap has already been deactivated without our knowing it,\n // especially if the user set the `clickOutsideDeactivates: true` option on the trap,\n // and the mouse was clicked on some element outside the trap; at that point, focus-trap\n // will initiate its auto-deactivation process, which will call our own\n // handleDeactivate(), which will call into this method\n if (!this.focusTrap || !this.focusTrap.active) {\n return;\n }\n\n this.focusTrap.deactivate({\n // NOTE: we never let the trap return the focus since we do that ourselves\n returnFocus: false,\n // we'll call this in our own post deactivate handler so make sure the trap doesn't\n // do it prematurely\n checkCanReturnFocus: null,\n // let it call the user's original deactivate handler, if any, instead of\n // our own which calls back into this function\n onDeactivate: this.originalOptions.onDeactivate // NOTE: for post deactivate, don't specify anything so that it calls the\n // onPostDeactivate handler specified on `this.internalOptions`\n // which will always be our own `handlePostDeactivate()` handler, which\n // will finish things off by calling the user's provided onPostDeactivate\n // handler, if any, at the right time\n // onPostDeactivate: NOTHING\n\n });\n }\n }, {\n key: \"handleClickOutsideDeactivates\",\n value: function handleClickOutsideDeactivates(event) {\n // use consumer's option (or call their handler) as the permission or denial\n var allowDeactivation = typeof this.originalOptions.clickOutsideDeactivates === 'function' ? this.originalOptions.clickOutsideDeactivates.call(null, event) // call out of context\n : this.originalOptions.clickOutsideDeactivates; // boolean\n\n if (allowDeactivation) {\n // capture the outside target that was clicked so we can use it in the deactivation\n // process since the consumer allowed it to cause auto-deactivation\n this.outsideClick = {\n target: event.target,\n allowDeactivation: allowDeactivation\n };\n }\n\n return allowDeactivation;\n }\n }, {\n key: \"handleDeactivate\",\n value: function handleDeactivate() {\n if (this.originalOptions.onDeactivate) {\n this.originalOptions.onDeactivate.call(null); // call user's handler out of context\n }\n\n this.deactivateTrap();\n }\n }, {\n key: \"handlePostDeactivate\",\n value: function handlePostDeactivate() {\n var _this2 = this;\n\n var finishDeactivation = function finishDeactivation() {\n var returnFocusNode = _this2.getReturnFocusNode();\n\n var canReturnFocus = !!( // did the consumer allow it?\n _this2.originalOptions.returnFocusOnDeactivate && // can we actually focus the node?\n returnFocusNode !== null && returnFocusNode !== void 0 && returnFocusNode.focus && ( // was there an outside click that allowed deactivation?\n !_this2.outsideClick || // did the consumer allow deactivation when the outside node was clicked?\n _this2.outsideClick.allowDeactivation && // is the outside node NOT focusable (implying that it did NOT receive focus\n // as a result of the click-through) -- in which case do NOT restore focus\n // to `returnFocusNode` because focus should remain on the outside node\n !isFocusable(_this2.outsideClick.target, _this2.internalOptions.tabbableOptions)) // if no, the restore focus to `returnFocusNode` at this point\n );\n var _this2$internalOption = _this2.internalOptions.preventScroll,\n preventScroll = _this2$internalOption === void 0 ? false : _this2$internalOption;\n\n if (canReturnFocus) {\n // return focus to the element that had focus when the trap was activated\n returnFocusNode.focus({\n preventScroll: preventScroll\n });\n }\n\n if (_this2.originalOptions.onPostDeactivate) {\n _this2.originalOptions.onPostDeactivate.call(null); // don't call it in context of \"this\"\n\n }\n\n _this2.outsideClick = null; // reset: no longer needed\n };\n\n if (this.originalOptions.checkCanReturnFocus) {\n this.originalOptions.checkCanReturnFocus.call(null, this.getReturnFocusNode()) // call out of context\n .then(finishDeactivation, finishDeactivation);\n } else {\n finishDeactivation();\n }\n }\n }, {\n key: \"setupFocusTrap\",\n value: function setupFocusTrap() {\n if (!this.focusTrap) {\n var focusTrapElementDOMNodes = this.focusTrapElements.map( // NOTE: `findDOMNode()` does not support CSS selectors; it'll just return\n // a new text node with the text wrapped in it instead of treating the\n // string as a selector and resolving it to a node in the DOM\n ReactDOM.findDOMNode);\n var nodesExist = focusTrapElementDOMNodes.some(Boolean);\n\n if (nodesExist) {\n // eslint-disable-next-line react/prop-types -- _createFocusTrap is an internal prop\n this.focusTrap = this.props._createFocusTrap(focusTrapElementDOMNodes, this.internalOptions);\n\n if (this.props.active) {\n this.focusTrap.activate();\n }\n\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.active) {\n this.setupFocusTrap();\n } // else, wait for later activation in case the `focusTrapOptions` will be updated\n // again before the trap is activated (e.g. if waiting to know what the document\n // object will be, so the Trap must be rendered, but the consumer is waiting to\n // activate until they have obtained the document from a ref)\n // @see https://github.com/focus-trap/focus-trap-react/issues/539\n\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.focusTrap) {\n if (prevProps.containerElements !== this.props.containerElements) {\n this.focusTrap.updateContainerElements(this.props.containerElements);\n }\n\n var hasActivated = !prevProps.active && this.props.active;\n var hasDeactivated = prevProps.active && !this.props.active;\n var hasPaused = !prevProps.paused && this.props.paused;\n var hasUnpaused = prevProps.paused && !this.props.paused;\n\n if (hasActivated) {\n this.updatePreviousElement();\n this.focusTrap.activate();\n }\n\n if (hasDeactivated) {\n this.deactivateTrap();\n return; // un/pause does nothing on an inactive trap\n }\n\n if (hasPaused) {\n this.focusTrap.pause();\n }\n\n if (hasUnpaused) {\n this.focusTrap.unpause();\n }\n } else {\n // NOTE: if we're in `componentDidUpdate` and we don't have a trap yet,\n // it either means it shouldn't be active, or it should be but none of\n // of given `containerElements` were present in the DOM the last time\n // we tried to create the trap\n if (prevProps.containerElements !== this.props.containerElements) {\n this.focusTrapElements = this.props.containerElements;\n } // don't create the trap unless it should be active in case the consumer\n // is still updating `focusTrapOptions`\n // @see https://github.com/focus-trap/focus-trap-react/issues/539\n\n\n if (this.props.active) {\n this.updatePreviousElement();\n this.setupFocusTrap();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.deactivateTrap();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var child = this.props.children ? React.Children.only(this.props.children) : undefined;\n\n if (child) {\n if (child.type && child.type === React.Fragment) {\n throw new Error('A focus-trap cannot use a Fragment as its child container. Try replacing it with a
element.');\n }\n\n var composedRefCallback = function composedRefCallback(element) {\n var containerElements = _this3.props.containerElements;\n\n if (child) {\n if (typeof child.ref === 'function') {\n child.ref(element);\n } else if (child.ref) {\n child.ref.current = element;\n }\n }\n\n _this3.focusTrapElements = containerElements ? containerElements : [element];\n };\n\n var childWithRef = React.cloneElement(child, {\n ref: composedRefCallback\n });\n return childWithRef;\n }\n\n return null;\n }\n }]);\n\n return FocusTrap;\n}(React.Component); // support server-side rendering where `Element` will not be defined\n\n\nvar ElementType = typeof Element === 'undefined' ? Function : Element;\nFocusTrap.propTypes = {\n active: PropTypes.bool,\n paused: PropTypes.bool,\n focusTrapOptions: PropTypes.shape({\n document: PropTypes.object,\n onActivate: PropTypes.func,\n onPostActivate: PropTypes.func,\n checkCanFocusTrap: PropTypes.func,\n onDeactivate: PropTypes.func,\n onPostDeactivate: PropTypes.func,\n checkCanReturnFocus: PropTypes.func,\n initialFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.func, PropTypes.bool]),\n fallbackFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.func]),\n escapeDeactivates: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n clickOutsideDeactivates: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n returnFocusOnDeactivate: PropTypes.bool,\n setReturnFocus: PropTypes.oneOfType([PropTypes.instanceOf(ElementType), PropTypes.string, PropTypes.func]),\n allowOutsideClick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n preventScroll: PropTypes.bool,\n tabbableOptions: PropTypes.shape({\n displayCheck: PropTypes.oneOf(['full', 'non-zero-area', 'none']),\n getShadowRoot: PropTypes.oneOfType([PropTypes.bool, PropTypes.func])\n })\n }),\n containerElements: PropTypes.arrayOf(PropTypes.instanceOf(ElementType)),\n children: PropTypes.oneOfType([PropTypes.element, // React element\n PropTypes.instanceOf(ElementType) // DOM element\n ]) // NOTE: _createFocusTrap is internal, for testing purposes only, so we don't\n // specify it here. It's expected to be set to the function returned from\n // require('focus-trap'), or one with a compatible interface.\n\n};\nFocusTrap.defaultProps = {\n active: true,\n paused: false,\n focusTrapOptions: {},\n _createFocusTrap: createFocusTrap\n};\nmodule.exports = FocusTrap;","import { tabbable, focusable, isFocusable, isTabbable } from 'tabbable';\n\nconst activeFocusTraps = (function () {\n const trapQueue = [];\n return {\n activateTrap(trap) {\n if (trapQueue.length > 0) {\n const activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n const trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap(trap) {\n const trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n },\n };\n})();\n\nconst isSelectableInput = function (node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n};\n\nconst isEscapeEvent = function (e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nconst isTabEvent = function (e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nconst delay = function (fn) {\n return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\nconst findIndex = function (arr, fn) {\n let idx = -1;\n\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n\n return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nconst valueOrHandler = function (value, ...params) {\n return typeof value === 'function' ? value(...params) : value;\n};\n\nconst getActualTarget = function (event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function'\n ? event.composedPath()[0]\n : event.target;\n};\n\nconst createFocusTrap = function (elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n const doc = userOptions?.document || document;\n\n const config = {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n ...userOptions,\n };\n\n const state = {\n // containers given to createFocusTrap()\n // @type {Array}\n containers: [],\n\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array, // empty if none\n // focusableNodes: Array, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [], // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n };\n\n let trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n const getOption = (configOverrideOptions, optionName, configOptionName) => {\n return configOverrideOptions &&\n configOverrideOptions[optionName] !== undefined\n ? configOverrideOptions[optionName]\n : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n const findContainerIndex = function (element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(\n ({ container, tabbableNodes }) =>\n container.contains(element) ||\n // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find((node) => node === element)\n );\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n const getNodeForOption = function (optionName, ...params) {\n let optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n optionValue = optionValue(...params);\n }\n\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\n `\\`${optionName}\\` was specified but was not a node, or did not return a node`\n );\n }\n\n let node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\n `\\`${optionName}\\` as selector refers to no known node`\n );\n }\n }\n\n return node;\n };\n\n const getInitialFocusNode = function () {\n let node = getNodeForOption('initialFocus');\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n const firstTabbableGroup = state.tabbableGroups[0];\n const firstTabbableNode =\n firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error(\n 'Your focus-trap needs to have at least one focusable element'\n );\n }\n\n return node;\n };\n\n const updateTabbableNodes = function () {\n state.containerGroups = state.containers.map((container) => {\n const tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n const focusableNodes = focusable(container, config.tabbableOptions);\n\n return {\n container,\n tabbableNodes,\n focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode:\n tabbableNodes.length > 0\n ? tabbableNodes[tabbableNodes.length - 1]\n : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode(node, forward = true) {\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n const nodeIdx = focusableNodes.findIndex((n) => n === node);\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes\n .slice(nodeIdx + 1)\n .find((n) => isTabbable(n, config.tabbableOptions));\n }\n\n return focusableNodes\n .slice(0, nodeIdx)\n .reverse()\n .find((n) => isTabbable(n, config.tabbableOptions));\n },\n };\n });\n\n state.tabbableGroups = state.containerGroups.filter(\n (group) => group.tabbableNodes.length > 0\n );\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (\n state.tabbableGroups.length <= 0 &&\n !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error(\n 'Your focus-trap must have at least one container with at least one tabbable node in it at all times'\n );\n }\n };\n\n const tryFocus = function (node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({ preventScroll: !!config.preventScroll });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n const getReturnFocusNode = function (previousActiveElement) {\n const node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n const checkPointerDown = function (e) {\n const target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus:\n config.returnFocusOnDeactivate &&\n !isFocusable(target, config.tabbableOptions),\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n const checkFocusIn = function (e) {\n const target = getActualTarget(e);\n const targetContained = findContainerIndex(target) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n };\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n const checkTab = function (e) {\n const target = getActualTarget(e);\n updateTabbableNodes();\n\n let destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n const containerIndex = findContainerIndex(target);\n const containerGroup =\n containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\n // ...the last node in the last group\n destinationNode =\n state.tabbableGroups[state.tabbableGroups.length - 1]\n .lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n let startOfGroupIndex = findIndex(\n state.tabbableGroups,\n ({ firstTabbableNode }) => target === firstTabbableNode\n );\n\n if (\n startOfGroupIndex < 0 &&\n (containerGroup.container === target ||\n (isFocusable(target, config.tabbableOptions) &&\n !isTabbable(target, config.tabbableOptions) &&\n !containerGroup.nextTabbableNode(target, false)))\n ) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n const destinationGroupIndex =\n startOfGroupIndex === 0\n ? state.tabbableGroups.length - 1\n : startOfGroupIndex - 1;\n\n const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n let lastOfGroupIndex = findIndex(\n state.tabbableGroups,\n ({ lastTabbableNode }) => target === lastTabbableNode\n );\n\n if (\n lastOfGroupIndex < 0 &&\n (containerGroup.container === target ||\n (isFocusable(target, config.tabbableOptions) &&\n !isTabbable(target, config.tabbableOptions) &&\n !containerGroup.nextTabbableNode(target)))\n ) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n const destinationGroupIndex =\n lastOfGroupIndex === state.tabbableGroups.length - 1\n ? 0\n : lastOfGroupIndex + 1;\n\n const destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n\n const checkKey = function (e) {\n if (\n isEscapeEvent(e) &&\n valueOrHandler(config.escapeDeactivates, e) !== false\n ) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n const checkClick = function (e) {\n const target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n const addListeners = function () {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus\n ? delay(function () {\n tryFocus(getInitialFocusNode());\n })\n : tryFocus(getInitialFocusNode());\n\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false,\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false,\n });\n\n return trap;\n };\n\n const removeListeners = function () {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n const onActivate = getOption(activateOptions, 'onActivate');\n const onPostActivate = getOption(activateOptions, 'onPostActivate');\n const checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n const finishActivation = () => {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(\n finishActivation,\n finishActivation\n );\n return this;\n }\n\n finishActivation();\n return this;\n },\n\n deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n const options = {\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus,\n ...deactivateOptions,\n };\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n const onDeactivate = getOption(options, 'onDeactivate');\n const onPostDeactivate = getOption(options, 'onPostDeactivate');\n const checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n const returnFocus = getOption(\n options,\n 'returnFocus',\n 'returnFocusOnDeactivate'\n );\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n const finishDeactivation = () => {\n delay(() => {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(\n getReturnFocusNode(state.nodeFocusedBeforeActivation)\n ).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n\n pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n\n return this;\n },\n\n unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n\n return this;\n },\n\n updateContainerElements(containerElements) {\n const elementsAsArray = [].concat(containerElements).filter(Boolean);\n\n state.containers = elementsAsArray.map((element) =>\n typeof element === 'string' ? doc.querySelector(element) : element\n );\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n },\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n\n return trap;\n};\n\nexport { createFocusTrap };\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"AX\": [\n \"H\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: _this.resolvedLocale.toString(),\n }); };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n locale: this.resolvedLocale,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"className\", \"isInvalid\", \"isValid\", \"size\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport cx from 'classnames';\nimport React from 'react';\nimport { getDisplayName, isSizeLarge, isSizeSmall } from '../utils';\n\nfunction withClassNames(Component) {\n // Use a class instead of function component to support refs.\n\n /* eslint-disable-next-line react/prefer-stateless-function */\n var WrappedComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(WrappedComponent, _React$Component);\n\n var _super = _createSuper(WrappedComponent);\n\n function WrappedComponent() {\n _classCallCheck(this, WrappedComponent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(WrappedComponent, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n isInvalid = _this$props.isInvalid,\n isValid = _this$props.isValid,\n size = _this$props.size,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n className: cx('form-control', 'rbt-input', {\n 'form-control-lg': isSizeLarge(size),\n 'form-control-sm': isSizeSmall(size),\n 'is-invalid': isInvalid,\n 'is-valid': isValid\n }, className)\n }));\n }\n }]);\n\n return WrappedComponent;\n }(React.Component);\n\n _defineProperty(WrappedComponent, \"displayName\", \"withClassNames(\".concat(getDisplayName(Component), \")\"));\n\n return WrappedComponent;\n}\n\nexport default withClassNames;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"className\", \"label\", \"onClick\", \"onKeyDown\", \"size\"];\nimport cx from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { isSizeLarge, noop } from '../utils';\nimport { sizeType } from '../propTypes';\nimport { BACKSPACE } from '../constants';\nvar propTypes = {\n label: PropTypes.string,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n size: sizeType\n};\nvar defaultProps = {\n label: 'Clear',\n onClick: noop,\n onKeyDown: noop\n};\n\n/**\n * ClearButton\n *\n * http://getbootstrap.com/css/#helper-classes-close\n */\nvar ClearButton = function ClearButton(_ref) {\n var className = _ref.className,\n label = _ref.label,\n _onClick = _ref.onClick,\n _onKeyDown = _ref.onKeyDown,\n size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n \"aria-label\": label,\n className: cx('close', 'rbt-close', {\n 'rbt-close-lg': isSizeLarge(size)\n }, className),\n onClick: function onClick(e) {\n e.stopPropagation();\n\n _onClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n // Prevent browser from navigating back.\n if (e.keyCode === BACKSPACE) {\n e.preventDefault();\n }\n\n _onKeyDown(e);\n },\n type: \"button\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, \"\\xD7\"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only visually-hidden\"\n }, label));\n};\n\nClearButton.propTypes = propTypes;\nClearButton.defaultProps = defaultProps;\nexport default ClearButton;","import _extends from \"@babel/runtime/helpers/extends\";\nimport cx from 'classnames';\nimport React from 'react';\nvar Input = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(\"input\", _extends({}, props, {\n className: cx('rbt-input-main', props.className),\n ref: ref\n }));\n});\nexport default Input;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"active\", \"children\", \"className\", \"onRemove\", \"tabIndex\"];\nimport cx from 'classnames';\nimport React, { forwardRef } from 'react';\nimport ClearButton from './ClearButton';\nimport { withToken } from '../behaviors/token';\nimport { isFunction } from '../utils';\nvar InteractiveToken = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var active = _ref.active,\n children = _ref.children,\n className = _ref.className,\n onRemove = _ref.onRemove,\n tabIndex = _ref.tabIndex,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: cx('rbt-token', 'rbt-token-removeable', {\n 'rbt-token-active': !!active\n }, className),\n ref: ref,\n tabIndex: tabIndex || 0\n }), children, /*#__PURE__*/React.createElement(ClearButton, {\n className: \"rbt-token-remove-button\",\n label: \"Remove\",\n onClick: onRemove,\n tabIndex: -1\n }));\n});\n\nvar StaticToken = function StaticToken(_ref2) {\n var children = _ref2.children,\n className = _ref2.className,\n disabled = _ref2.disabled,\n href = _ref2.href;\n var classnames = cx('rbt-token', {\n 'rbt-token-disabled': disabled\n }, className);\n\n if (href && !disabled) {\n return /*#__PURE__*/React.createElement(\"a\", {\n className: classnames,\n href: href\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classnames\n }, children);\n};\n/**\n * Token\n *\n * Individual token component, generally displayed within the TokenizerInput\n * component, but can also be rendered on its own.\n */\n\n\nvar Token = /*#__PURE__*/forwardRef(function (props, ref) {\n var disabled = props.disabled,\n onRemove = props.onRemove,\n readOnly = props.readOnly;\n return !disabled && !readOnly && isFunction(onRemove) ? /*#__PURE__*/React.createElement(InteractiveToken, _extends({}, props, {\n ref: ref\n })) : /*#__PURE__*/React.createElement(StaticToken, props);\n});\nexport default withToken(Token);","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\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 _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"styles\"],\n _excluded2 = [\"ref\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable react/no-unused-prop-types */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Popper } from 'react-popper';\nimport { values } from '../utils';\nimport { ALIGN } from '../constants';\n// `Element` is not defined during server-side rendering, so shim it here.\n\n/* istanbul ignore next */\nvar SafeElement = typeof Element === 'undefined' ? function () {} : Element;\nvar propTypes = {\n /**\n * Specify menu alignment. The default value is `justify`, which makes the\n * menu as wide as the input and truncates long values. Specifying `left`\n * or `right` will align the menu to that side and the width will be\n * determined by the length of menu item values.\n */\n align: PropTypes.oneOf(values(ALIGN)),\n children: PropTypes.func.isRequired,\n\n /**\n * Specify whether the menu should appear above the input.\n */\n dropup: PropTypes.bool,\n\n /**\n * Whether or not to automatically adjust the position of the menu when it\n * reaches the viewport boundaries.\n */\n flip: PropTypes.bool,\n isMenuShown: PropTypes.bool,\n positionFixed: PropTypes.bool,\n referenceElement: PropTypes.instanceOf(SafeElement)\n};\nvar defaultProps = {\n align: ALIGN.JUSTIFY,\n dropup: false,\n flip: false,\n isMenuShown: false,\n positionFixed: false\n};\n\nfunction getModifiers(_ref) {\n var align = _ref.align,\n flip = _ref.flip;\n return {\n computeStyles: {\n enabled: true,\n fn: function fn(_ref2) {\n var styles = _ref2.styles,\n data = _objectWithoutProperties(_ref2, _excluded);\n\n return _objectSpread(_objectSpread({}, data), {}, {\n styles: _objectSpread(_objectSpread({}, styles), {}, {\n // Use the following condition instead of `align === 'justify'`\n // since it allows the component to fall back to justifying the\n // menu width if `align` is undefined.\n width: align !== ALIGN.RIGHT && align !== ALIGN.LEFT ? // Set the popper width to match the target width.\n data.offsets.reference.width : styles.width\n })\n });\n }\n },\n flip: {\n enabled: flip\n },\n preventOverflow: {\n escapeWithReference: true\n }\n };\n} // Flow expects a string literal value for `placement`.\n\n\nvar PLACEMENT = {\n bottom: {\n end: 'bottom-end',\n start: 'bottom-start'\n },\n top: {\n end: 'top-end',\n start: 'top-start'\n }\n};\nexport function getPlacement(_ref3) {\n var align = _ref3.align,\n dropup = _ref3.dropup;\n var x = align === ALIGN.RIGHT ? 'end' : 'start';\n var y = dropup ? 'top' : 'bottom';\n return PLACEMENT[y][x];\n}\n\nvar Overlay = function Overlay(props) {\n var children = props.children,\n isMenuShown = props.isMenuShown,\n positionFixed = props.positionFixed,\n referenceElement = props.referenceElement;\n\n if (!isMenuShown) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Popper, {\n modifiers: getModifiers(props),\n placement: getPlacement(props),\n positionFixed: positionFixed,\n referenceElement: referenceElement\n }, function (_ref4) {\n var ref = _ref4.ref,\n popperProps = _objectWithoutProperties(_ref4, _excluded2);\n\n return children(_objectSpread(_objectSpread({}, popperProps), {}, {\n innerRef: ref,\n inputHeight: referenceElement ? referenceElement.offsetHeight : 0\n }));\n });\n};\n\nOverlay.propTypes = propTypes;\nOverlay.defaultProps = defaultProps;\nexport default Overlay;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nvar _excluded = [\"children\", \"onRootClose\"],\n _excluded2 = [\"getInputProps\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, useState } from 'react';\nimport useRootClose from \"react-overlays/useRootClose\";\nimport Typeahead from '../core/Typeahead';\nimport ClearButton from './ClearButton';\nimport Loader from './Loader';\nimport Overlay from './Overlay';\nimport Token from './Token';\nimport TypeaheadInputMulti from './TypeaheadInputMulti';\nimport TypeaheadInputSingle from './TypeaheadInputSingle';\nimport TypeaheadMenu from './TypeaheadMenu';\nimport { getOptionLabel, isFunction, isSizeLarge, pick, preventInputBlur } from '../utils';\nimport { checkPropType, inputPropsType, sizeType } from '../propTypes';\nvar propTypes = {\n /**\n * Displays a button to clear the input when there are selections.\n */\n clearButton: PropTypes.bool,\n\n /**\n * Props to be applied directly to the input. `onBlur`, `onChange`,\n * `onFocus`, and `onKeyDown` are ignored.\n */\n inputProps: checkPropType(PropTypes.object, inputPropsType),\n\n /**\n * Bootstrap 4 only. Adds the `is-invalid` classname to the `form-control`.\n */\n isInvalid: PropTypes.bool,\n\n /**\n * Indicate whether an asynchronous data fetch is happening.\n */\n isLoading: PropTypes.bool,\n\n /**\n * Bootstrap 4 only. Adds the `is-valid` classname to the `form-control`.\n */\n isValid: PropTypes.bool,\n\n /**\n * Callback for custom input rendering.\n */\n renderInput: PropTypes.func,\n\n /**\n * Callback for custom menu rendering.\n */\n renderMenu: PropTypes.func,\n\n /**\n * Callback for custom menu rendering.\n */\n renderToken: PropTypes.func,\n\n /**\n * Specifies the size of the input.\n */\n size: sizeType\n};\nvar defaultProps = {\n clearButton: false,\n inputProps: {},\n isInvalid: false,\n isLoading: false,\n isValid: false,\n renderMenu: function renderMenu(results, menuProps, props) {\n return /*#__PURE__*/React.createElement(TypeaheadMenu, _extends({}, menuProps, {\n labelKey: props.labelKey,\n options: results,\n text: props.text\n }));\n },\n renderToken: function renderToken(option, props, idx) {\n return /*#__PURE__*/React.createElement(Token, {\n disabled: props.disabled,\n key: idx,\n onRemove: props.onRemove,\n option: option,\n tabIndex: props.tabIndex\n }, getOptionLabel(option, props.labelKey));\n }\n};\n\nfunction getOverlayProps(props) {\n return pick(props, ['align', 'dropup', 'flip', 'positionFixed']);\n}\n\nvar RootClose = function RootClose(_ref) {\n var children = _ref.children,\n onRootClose = _ref.onRootClose,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n rootElement = _useState2[0],\n attachRef = _useState2[1];\n\n useRootClose(rootElement, onRootClose, props);\n return children(attachRef);\n};\n\nvar TypeaheadComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(TypeaheadComponent, _React$Component);\n\n var _super = _createSuper(TypeaheadComponent);\n\n function TypeaheadComponent() {\n var _this;\n\n _classCallCheck(this, TypeaheadComponent);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"_referenceElement\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"referenceElementRef\", function (referenceElement) {\n _this._referenceElement = referenceElement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderInput\", function (inputProps, props) {\n var _this$props = _this.props,\n isInvalid = _this$props.isInvalid,\n isValid = _this$props.isValid,\n multiple = _this$props.multiple,\n renderInput = _this$props.renderInput,\n renderToken = _this$props.renderToken,\n size = _this$props.size;\n\n if (isFunction(renderInput)) {\n return renderInput(inputProps, props);\n }\n\n var commonProps = _objectSpread(_objectSpread({}, inputProps), {}, {\n isInvalid: isInvalid,\n isValid: isValid,\n size: size\n });\n\n if (!multiple) {\n return /*#__PURE__*/React.createElement(TypeaheadInputSingle, commonProps);\n }\n\n var labelKey = props.labelKey,\n onRemove = props.onRemove,\n selected = props.selected;\n return /*#__PURE__*/React.createElement(TypeaheadInputMulti, _extends({}, commonProps, {\n selected: selected\n }), selected.map(function (option, idx) {\n return renderToken(option, _objectSpread(_objectSpread({}, commonProps), {}, {\n labelKey: labelKey,\n onRemove: onRemove\n }), idx);\n }));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderMenu\", function (results, menuProps, props) {\n var _this$props2 = _this.props,\n emptyLabel = _this$props2.emptyLabel,\n id = _this$props2.id,\n maxHeight = _this$props2.maxHeight,\n newSelectionPrefix = _this$props2.newSelectionPrefix,\n paginationText = _this$props2.paginationText,\n renderMenu = _this$props2.renderMenu,\n renderMenuItemChildren = _this$props2.renderMenuItemChildren;\n return renderMenu(results, _objectSpread(_objectSpread({}, menuProps), {}, {\n emptyLabel: emptyLabel,\n id: id,\n maxHeight: maxHeight,\n newSelectionPrefix: newSelectionPrefix,\n paginationText: paginationText,\n renderMenuItemChildren: renderMenuItemChildren\n }), props);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_renderAux\", function (_ref2) {\n var onClear = _ref2.onClear,\n selected = _ref2.selected;\n var _this$props3 = _this.props,\n clearButton = _this$props3.clearButton,\n disabled = _this$props3.disabled,\n isLoading = _this$props3.isLoading,\n size = _this$props3.size;\n var content;\n\n if (isLoading) {\n content = /*#__PURE__*/React.createElement(Loader, null);\n } else if (clearButton && !disabled && selected.length) {\n content = /*#__PURE__*/React.createElement(ClearButton, {\n onClick: onClear,\n onFocus: function onFocus(e) {\n // Prevent the main input from auto-focusing again.\n e.stopPropagation();\n },\n onMouseDown: preventInputBlur,\n size: size\n });\n }\n\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: cx('rbt-aux', {\n 'rbt-aux-lg': isSizeLarge(size)\n })\n }, content) : null;\n });\n\n return _this;\n }\n\n _createClass(TypeaheadComponent, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n instanceRef = _this$props4.instanceRef,\n open = _this$props4.open,\n options = _this$props4.options,\n style = _this$props4.style;\n return /*#__PURE__*/React.createElement(Typeahead, _extends({}, this.props, {\n options: options,\n ref: instanceRef\n }), function (_ref3) {\n var getInputProps = _ref3.getInputProps,\n props = _objectWithoutProperties(_ref3, _excluded2);\n\n var hideMenu = props.hideMenu,\n isMenuShown = props.isMenuShown,\n results = props.results;\n\n var auxContent = _this2._renderAux(props);\n\n return /*#__PURE__*/React.createElement(RootClose, {\n disabled: open || !isMenuShown,\n onRootClose: hideMenu\n }, function (ref) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cx('rbt', {\n 'has-aux': !!auxContent\n }, className),\n ref: ref,\n style: _objectSpread(_objectSpread({}, style), {}, {\n outline: 'none',\n position: 'relative'\n }),\n tabIndex: -1\n }, _this2._renderInput(_objectSpread(_objectSpread({}, getInputProps(_this2.props.inputProps)), {}, {\n referenceElementRef: _this2.referenceElementRef\n }), props), /*#__PURE__*/React.createElement(Overlay, _extends({}, getOverlayProps(_this2.props), {\n isMenuShown: isMenuShown,\n referenceElement: _this2._referenceElement\n }), function (menuProps) {\n return _this2._renderMenu(results, menuProps, props);\n }), auxContent, isFunction(children) ? children(props) : children);\n });\n });\n }\n }]);\n\n return TypeaheadComponent;\n}(React.Component);\n\n_defineProperty(TypeaheadComponent, \"propTypes\", propTypes);\n\n_defineProperty(TypeaheadComponent, \"defaultProps\", defaultProps);\n\nexport default /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(TypeaheadComponent, _extends({}, props, {\n instanceRef: ref\n }));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"children\", \"className\", \"inputClassName\", \"inputRef\", \"placeholder\", \"referenceElementRef\", \"selected\", \"shouldSelectHint\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport cx from 'classnames';\nimport React from 'react';\nimport Hint from './Hint';\nimport Input from './Input';\nimport { isSelectable } from '../utils';\nimport withClassNames from '../behaviors/classNames';\nimport { BACKSPACE } from '../constants';\n\nvar TypeaheadInputMulti = /*#__PURE__*/function (_React$Component) {\n _inherits(TypeaheadInputMulti, _React$Component);\n\n var _super = _createSuper(TypeaheadInputMulti);\n\n function TypeaheadInputMulti() {\n var _this;\n\n _classCallCheck(this, TypeaheadInputMulti);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"wrapperRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"_input\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"getInputRef\", function (input) {\n _this._input = input;\n\n _this.props.inputRef(input);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleContainerClickOrFocus\", function (e) {\n // Don't focus the input if it's disabled.\n if (_this.props.disabled) {\n e.currentTarget.blur();\n return;\n } // Move cursor to the end if the user clicks outside the actual input.\n\n\n var inputNode = _this._input;\n\n if (!inputNode || // $FlowFixMe\n e.currentTarget.contains(e.target) && e.currentTarget !== e.target) {\n return;\n }\n\n if (isSelectable(inputNode)) {\n inputNode.selectionStart = inputNode.value.length;\n }\n\n inputNode.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleKeyDown\", function (e) {\n var _this$props = _this.props,\n onKeyDown = _this$props.onKeyDown,\n selected = _this$props.selected,\n value = _this$props.value;\n\n switch (e.keyCode) {\n case BACKSPACE:\n if (e.currentTarget === _this._input && selected.length && !value) {\n // Prevent browser from going back.\n e.preventDefault(); // If the input is selected and there is no text, focus the last\n // token when the user hits backspace.\n\n if (_this.wrapperRef.current) {\n var children = _this.wrapperRef.current.children;\n var lastToken = children[children.length - 2];\n lastToken && lastToken.focus();\n }\n }\n\n break;\n\n default:\n break;\n }\n\n onKeyDown(e);\n });\n\n return _this;\n }\n\n _createClass(TypeaheadInputMulti, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n inputClassName = _this$props2.inputClassName,\n inputRef = _this$props2.inputRef,\n placeholder = _this$props2.placeholder,\n referenceElementRef = _this$props2.referenceElementRef,\n selected = _this$props2.selected,\n shouldSelectHint = _this$props2.shouldSelectHint,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cx('rbt-input-multi', className),\n disabled: props.disabled,\n onClick: this._handleContainerClickOrFocus,\n onFocus: this._handleContainerClickOrFocus,\n ref: referenceElementRef,\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"rbt-input-wrapper\",\n ref: this.wrapperRef\n }, children, /*#__PURE__*/React.createElement(Hint, {\n shouldSelect: shouldSelectHint\n }, /*#__PURE__*/React.createElement(Input, _extends({}, props, {\n className: inputClassName,\n onKeyDown: this._handleKeyDown,\n placeholder: selected.length ? '' : placeholder,\n ref: this.getInputRef,\n style: {\n backgroundColor: 'transparent',\n border: 0,\n boxShadow: 'none',\n cursor: 'inherit',\n outline: 'none',\n padding: 0,\n width: '100%',\n zIndex: 1\n }\n })))));\n }\n }]);\n\n return TypeaheadInputMulti;\n}(React.Component);\n\nexport default withClassNames(TypeaheadInputMulti);","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"inputRef\", \"referenceElementRef\", \"shouldSelectHint\"];\nimport React from 'react';\nimport Hint from './Hint';\nimport Input from './Input';\nimport withClassNames from '../behaviors/classNames';\nexport default withClassNames(function (_ref) {\n var inputRef = _ref.inputRef,\n referenceElementRef = _ref.referenceElementRef,\n shouldSelectHint = _ref.shouldSelectHint,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(Hint, {\n shouldSelect: shouldSelectHint\n }, /*#__PURE__*/React.createElement(Input, _extends({}, props, {\n ref: function ref(node) {\n inputRef(node);\n referenceElementRef(node);\n }\n })));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"labelKey\", \"newSelectionPrefix\", \"options\", \"paginationText\", \"renderMenuItemChildren\", \"text\"];\nimport React, { Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport Highlighter from './Highlighter';\nimport Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport { getOptionLabel, getOptionProperty } from '../utils';\nvar propTypes = {\n /**\n * Provides the ability to specify a prefix before the user-entered text to\n * indicate that the selection will be new. No-op unless `allowNew={true}`.\n */\n newSelectionPrefix: PropTypes.node,\n\n /**\n * Prompt displayed when large data sets are paginated.\n */\n paginationText: PropTypes.node,\n\n /**\n * Provides a hook for customized rendering of menu item contents.\n */\n renderMenuItemChildren: PropTypes.func\n};\nvar defaultProps = {\n newSelectionPrefix: 'New selection: ',\n paginationText: 'Display additional results...',\n renderMenuItemChildren: function renderMenuItemChildren(option, props, idx) {\n return /*#__PURE__*/React.createElement(Highlighter, {\n search: props.text\n }, getOptionLabel(option, props.labelKey));\n }\n};\n\nvar TypeaheadMenu = function TypeaheadMenu(props) {\n var labelKey = props.labelKey,\n newSelectionPrefix = props.newSelectionPrefix,\n options = props.options,\n paginationText = props.paginationText,\n renderMenuItemChildren = props.renderMenuItemChildren,\n text = props.text,\n menuProps = _objectWithoutProperties(props, _excluded);\n\n var renderMenuItem = function renderMenuItem(option, position) {\n var label = getOptionLabel(option, labelKey);\n var menuItemProps = {\n disabled: getOptionProperty(option, 'disabled'),\n label: label,\n option: option,\n position: position\n };\n\n if (option.customOption) {\n return /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {\n className: \"rbt-menu-custom-option\",\n key: position,\n label: label\n }), newSelectionPrefix, /*#__PURE__*/React.createElement(Highlighter, {\n search: text\n }, label));\n }\n\n if (option.paginationOption) {\n return /*#__PURE__*/React.createElement(Fragment, {\n key: \"pagination-item\"\n }, /*#__PURE__*/React.createElement(Menu.Divider, null), /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {\n className: \"rbt-menu-pagination-option\",\n label: paginationText\n }), paginationText));\n }\n\n return /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {\n key: position\n }), renderMenuItemChildren(option, props, position));\n };\n\n return (\n /*#__PURE__*/\n // Explictly pass `text` so Flow doesn't complain...\n React.createElement(Menu, _extends({}, menuProps, {\n text: text\n }), options.map(renderMenuItem))\n );\n};\n\nTypeaheadMenu.propTypes = propTypes;\nTypeaheadMenu.defaultProps = defaultProps;\nexport default TypeaheadMenu;","/**\n * Common (non-printable) keycodes for `keydown` and `keyup` events. Note that\n * `keypress` handles things differently and may not return the same values.\n */\nexport var BACKSPACE = 8;\nexport var TAB = 9;\nexport var RETURN = 13;\nexport var ESC = 27;\nexport var SPACE = 32;\nexport var LEFT = 37;\nexport var UP = 38;\nexport var RIGHT = 39;\nexport var DOWN = 40;\nexport var DEFAULT_LABELKEY = 'label';\nexport var ALIGN = {\n JUSTIFY: 'justify',\n LEFT: 'left',\n RIGHT: 'right'\n};\nexport var SIZE = {\n LARGE: 'large',\n LG: 'lg',\n SM: 'sm',\n SMALL: 'small'\n};","import { createContext, useContext } from 'react';\nimport { noop } from '../utils';\nexport var TypeaheadContext = /*#__PURE__*/createContext({\n activeIndex: -1,\n hintText: '',\n id: '',\n initialItem: null,\n inputNode: null,\n isOnlyResult: false,\n onActiveItemChange: noop,\n onAdd: noop,\n onInitialItemChange: noop,\n onMenuItemClick: noop,\n selectHintOnEnter: undefined,\n setItem: noop\n});\nexport var useTypeaheadContext = function useTypeaheadContext() {\n return useContext(TypeaheadContext);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { useEffect } from 'react';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport { TypeaheadContext } from './Context';\nimport { getHintText, getInputProps, getInputText, getIsOnlyResult, pick } from '../utils';\nimport { RETURN } from '../constants';\nvar inputPropKeys = ['activeIndex', 'disabled', 'id', 'inputRef', 'isFocused', 'isMenuShown', 'multiple', 'onBlur', 'onChange', 'onFocus', 'onKeyDown', 'placeholder'];\nvar propKeys = ['activeIndex', 'hideMenu', 'isMenuShown', 'labelKey', 'onClear', 'onHide', 'onRemove', 'results', 'selected', 'text', 'toggleMenu'];\nvar contextKeys = ['activeIndex', 'id', 'initialItem', 'inputNode', 'onActiveItemChange', 'onAdd', 'onInitialItemChange', 'onMenuItemClick', 'selectHintOnEnter', 'setItem'];\n\nvar TypeaheadManager = function TypeaheadManager(props) {\n var allowNew = props.allowNew,\n children = props.children,\n initialItem = props.initialItem,\n isMenuShown = props.isMenuShown,\n onAdd = props.onAdd,\n onInitialItemChange = props.onInitialItemChange,\n onKeyDown = props.onKeyDown,\n onMenuToggle = props.onMenuToggle,\n results = props.results;\n var prevProps = usePrevious(props);\n useEffect(function () {\n // Clear the initial item when there are no results.\n if (!(allowNew || results.length)) {\n onInitialItemChange(null);\n }\n });\n useEffect(function () {\n if (prevProps && prevProps.isMenuShown !== isMenuShown) {\n onMenuToggle(isMenuShown);\n }\n });\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.keyCode) {\n case RETURN:\n if (initialItem && getIsOnlyResult(props)) {\n onAdd(initialItem);\n }\n\n break;\n\n default:\n break;\n }\n\n onKeyDown(e);\n };\n\n var childProps = _objectSpread(_objectSpread({}, pick(props, propKeys)), {}, {\n getInputProps: getInputProps(_objectSpread(_objectSpread({}, pick(props, inputPropKeys)), {}, {\n onKeyDown: handleKeyDown,\n value: getInputText(props)\n }))\n });\n\n var contextValue = _objectSpread(_objectSpread({}, pick(props, contextKeys)), {}, {\n hintText: getHintText(props),\n isOnlyResult: getIsOnlyResult(props)\n });\n\n return /*#__PURE__*/React.createElement(TypeaheadContext.Provider, {\n value: contextValue\n }, children(childProps));\n};\n\nexport default TypeaheadManager;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"onChange\"];\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport isEqual from 'fast-deep-equal';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TypeaheadManager from './TypeaheadManager';\nimport { caseSensitiveType, checkPropType, defaultInputValueType, defaultSelectedType, deprecated, highlightOnlyResultType, ignoreDiacriticsType, isRequiredForA11y, labelKeyType, optionType, selectedType } from '../propTypes';\nimport { addCustomOption, defaultFilterBy, getOptionLabel, getStringLabelKey, getUpdatedActiveIndex, getTruncatedOptions, head, isShown, isString, noop, uniqueId, validateSelectedPropChange } from '../utils';\nimport { DEFAULT_LABELKEY, DOWN, ESC, RETURN, TAB, UP } from '../constants';\nvar propTypes = {\n /**\n * Allows the creation of new selections on the fly. Note that any new items\n * will be added to the list of selections, but not the list of original\n * options unless handled as such by `Typeahead`'s parent.\n *\n * If a function is specified, it will be used to determine whether a custom\n * option should be included. The return value should be true or false.\n */\n allowNew: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n\n /**\n * Autofocus the input when the component initially mounts.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Whether or not filtering should be case-sensitive.\n */\n caseSensitive: checkPropType(PropTypes.bool, caseSensitiveType),\n\n /**\n * The initial value displayed in the text input.\n */\n defaultInputValue: checkPropType(PropTypes.string, defaultInputValueType),\n\n /**\n * Whether or not the menu is displayed upon initial render.\n */\n defaultOpen: PropTypes.bool,\n\n /**\n * Specify any pre-selected options. Use only if you want the component to\n * be uncontrolled.\n */\n defaultSelected: checkPropType(PropTypes.arrayOf(optionType), defaultSelectedType),\n\n /**\n * Either an array of fields in `option` to search, or a custom filtering\n * callback.\n */\n filterBy: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]),\n\n /**\n * Highlights the menu item if there is only one result and allows selecting\n * that item by hitting enter. Does not work with `allowNew`.\n */\n highlightOnlyResult: checkPropType(PropTypes.bool, highlightOnlyResultType),\n\n /**\n * An html id attribute, required for assistive technologies such as screen\n * readers.\n */\n id: checkPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), isRequiredForA11y),\n\n /**\n * Whether the filter should ignore accents and other diacritical marks.\n */\n ignoreDiacritics: checkPropType(PropTypes.bool, ignoreDiacriticsType),\n\n /**\n * Specify the option key to use for display or a function returning the\n * display string. By default, the selector will use the `label` key.\n */\n labelKey: checkPropType(PropTypes.oneOfType([PropTypes.string, PropTypes.func]), labelKeyType),\n\n /**\n * Maximum number of results to display by default. Mostly done for\n * performance reasons so as not to render too many DOM nodes in the case of\n * large data sets.\n */\n maxResults: PropTypes.number,\n\n /**\n * Number of input characters that must be entered before showing results.\n */\n minLength: PropTypes.number,\n\n /**\n * Whether or not multiple selections are allowed.\n */\n multiple: PropTypes.bool,\n\n /**\n * Invoked when the input is blurred. Receives an event.\n */\n onBlur: PropTypes.func,\n\n /**\n * Invoked whenever items are added or removed. Receives an array of the\n * selected options.\n */\n onChange: PropTypes.func,\n\n /**\n * Invoked when the input is focused. Receives an event.\n */\n onFocus: PropTypes.func,\n\n /**\n * Invoked when the input value changes. Receives the string value of the\n * input.\n */\n onInputChange: PropTypes.func,\n\n /**\n * Invoked when a key is pressed. Receives an event.\n */\n onKeyDown: PropTypes.func,\n\n /**\n * Invoked when menu visibility changes.\n */\n onMenuToggle: PropTypes.func,\n\n /**\n * Invoked when the pagination menu item is clicked. Receives an event.\n */\n onPaginate: PropTypes.func,\n\n /**\n * Whether or not the menu should be displayed. `undefined` allows the\n * component to control visibility, while `true` and `false` show and hide\n * the menu, respectively.\n */\n open: PropTypes.bool,\n\n /**\n * Full set of options, including pre-selected options. Must either be an\n * array of objects (recommended) or strings.\n */\n options: PropTypes.arrayOf(optionType).isRequired,\n\n /**\n * Give user the ability to display additional results if the number of\n * results exceeds `maxResults`.\n */\n paginate: PropTypes.bool,\n\n /**\n * The selected option(s) displayed in the input. Use this prop if you want\n * to control the component via its parent.\n */\n selected: checkPropType(PropTypes.arrayOf(optionType), selectedType),\n\n /**\n * Allows selecting the hinted result by pressing enter.\n */\n selectHintOnEnter: deprecated(PropTypes.bool, 'Use the `shouldSelect` prop on the `Hint` component to define which ' + 'keystrokes can select the hint.')\n};\nvar defaultProps = {\n allowNew: false,\n autoFocus: false,\n caseSensitive: false,\n defaultInputValue: '',\n defaultOpen: false,\n defaultSelected: [],\n filterBy: [],\n highlightOnlyResult: false,\n ignoreDiacritics: true,\n labelKey: DEFAULT_LABELKEY,\n maxResults: 100,\n minLength: 0,\n multiple: false,\n onBlur: noop,\n onFocus: noop,\n onInputChange: noop,\n onKeyDown: noop,\n onMenuToggle: noop,\n onPaginate: noop,\n paginate: true\n};\nexport function getInitialState(props) {\n var defaultInputValue = props.defaultInputValue,\n defaultOpen = props.defaultOpen,\n defaultSelected = props.defaultSelected,\n maxResults = props.maxResults,\n multiple = props.multiple;\n var selected = props.selected ? props.selected.slice() : defaultSelected.slice();\n var text = defaultInputValue;\n\n if (!multiple && selected.length) {\n // Set the text if an initial selection is passed in.\n text = getOptionLabel(head(selected), props.labelKey);\n\n if (selected.length > 1) {\n // Limit to 1 selection in single-select mode.\n selected = selected.slice(0, 1);\n }\n }\n\n return {\n activeIndex: -1,\n activeItem: null,\n initialItem: null,\n isFocused: false,\n selected: selected,\n showMenu: defaultOpen,\n shownResults: maxResults,\n text: text\n };\n}\nexport function clearTypeahead(state, props) {\n return _objectSpread(_objectSpread({}, getInitialState(props)), {}, {\n isFocused: state.isFocused,\n selected: [],\n text: ''\n });\n}\nexport function hideMenu(state, props) {\n var _getInitialState = getInitialState(props),\n activeIndex = _getInitialState.activeIndex,\n activeItem = _getInitialState.activeItem,\n initialItem = _getInitialState.initialItem,\n shownResults = _getInitialState.shownResults;\n\n return {\n activeIndex: activeIndex,\n activeItem: activeItem,\n initialItem: initialItem,\n showMenu: false,\n shownResults: shownResults\n };\n}\nexport function toggleMenu(state, props) {\n return state.showMenu ? hideMenu(state, props) : {\n showMenu: true\n };\n}\n/**\n * Manually trigger the input's change event.\n * https://stackoverflow.com/questions/23892547/what-is-the-best-way-to-trigger-onchange-event-in-react-js/46012210#46012210\n */\n\nfunction triggerInputChange(input, value) {\n var inputValue = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value');\n inputValue && inputValue.set && inputValue.set.call(input, value);\n var e = new Event('input', {\n bubbles: true\n });\n input.dispatchEvent(e);\n}\n\nvar Typeahead = /*#__PURE__*/function (_React$Component) {\n _inherits(Typeahead, _React$Component);\n\n var _super = _createSuper(Typeahead);\n\n function Typeahead() {\n var _this;\n\n _classCallCheck(this, Typeahead);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", getInitialState(_this.props));\n\n _defineProperty(_assertThisInitialized(_this), \"inputNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"isMenuShown\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"items\", []);\n\n _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n _this.inputNode && _this.inputNode.blur();\n\n _this.hideMenu();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clear\", function () {\n _this.setState(clearTypeahead);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n _this.inputNode && _this.inputNode.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInput\", function () {\n return _this.inputNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"inputRef\", function (inputNode) {\n _this.inputNode = inputNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItem\", function (item, position) {\n _this.items[position] = item;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"hideMenu\", function () {\n _this.setState(hideMenu);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"toggleMenu\", function () {\n _this.setState(toggleMenu);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleActiveIndexChange\", function (activeIndex) {\n _this.setState(function (state) {\n return {\n activeIndex: activeIndex,\n activeItem: activeIndex === -1 ? null : state.activeItem\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleActiveItemChange\", function (activeItem) {\n // Don't update the active item if it hasn't changed.\n if (!isEqual(activeItem, _this.state.activeItem)) {\n _this.setState({\n activeItem: activeItem\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleBlur\", function (e) {\n e.persist();\n\n _this.setState({\n isFocused: false\n }, function () {\n return _this.props.onBlur(e);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleChange\", function (selected) {\n _this.props.onChange && _this.props.onChange(selected);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleClear\", function () {\n _this.inputNode && triggerInputChange(_this.inputNode, '');\n\n _this.setState(clearTypeahead, function () {\n // Change handler is automatically triggered for single selections but\n // not multi-selections.\n if (_this.props.multiple) {\n _this._handleChange([]);\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleFocus\", function (e) {\n e.persist();\n\n _this.setState({\n isFocused: true,\n showMenu: true\n }, function () {\n return _this.props.onFocus(e);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleInitialItemChange\", function (initialItem) {\n // Don't update the initial item if it hasn't changed.\n if (!isEqual(initialItem, _this.state.initialItem)) {\n _this.setState({\n initialItem: initialItem\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleInputChange\", function (e) {\n e.persist();\n var text = e.currentTarget.value;\n var _this$props = _this.props,\n multiple = _this$props.multiple,\n onInputChange = _this$props.onInputChange; // Clear selections when the input value changes in single-select mode.\n\n var shouldClearSelections = _this.state.selected.length && !multiple;\n\n _this.setState(function (state, props) {\n var _getInitialState2 = getInitialState(props),\n activeIndex = _getInitialState2.activeIndex,\n activeItem = _getInitialState2.activeItem,\n shownResults = _getInitialState2.shownResults;\n\n return {\n activeIndex: activeIndex,\n activeItem: activeItem,\n selected: shouldClearSelections ? [] : state.selected,\n showMenu: true,\n shownResults: shownResults,\n text: text\n };\n }, function () {\n onInputChange(text, e);\n shouldClearSelections && _this._handleChange([]);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleKeyDown\", function (e) {\n var activeItem = _this.state.activeItem; // Skip most actions when the menu is hidden.\n\n if (!_this.isMenuShown) {\n if (e.keyCode === UP || e.keyCode === DOWN) {\n _this.setState({\n showMenu: true\n });\n }\n\n _this.props.onKeyDown(e);\n\n return;\n }\n\n switch (e.keyCode) {\n case UP:\n case DOWN:\n // Prevent input cursor from going to the beginning when pressing up.\n e.preventDefault();\n\n _this._handleActiveIndexChange(getUpdatedActiveIndex(_this.state.activeIndex, e.keyCode, _this.items));\n\n break;\n\n case RETURN:\n // Prevent form submission while menu is open.\n e.preventDefault();\n activeItem && _this._handleMenuItemSelect(activeItem, e);\n break;\n\n case ESC:\n case TAB:\n // ESC simply hides the menu. TAB will blur the input and move focus to\n // the next item; hide the menu so it doesn't gain focus.\n _this.hideMenu();\n\n break;\n\n default:\n break;\n }\n\n _this.props.onKeyDown(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleMenuItemSelect\", function (option, e) {\n if (option.paginationOption) {\n _this._handlePaginate(e);\n } else {\n _this._handleSelectionAdd(option);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handlePaginate\", function (e) {\n e.persist();\n\n _this.setState(function (state, props) {\n return {\n shownResults: state.shownResults + props.maxResults\n };\n }, function () {\n return _this.props.onPaginate(e, _this.state.shownResults);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleSelectionAdd\", function (option) {\n var _this$props2 = _this.props,\n multiple = _this$props2.multiple,\n labelKey = _this$props2.labelKey;\n var selected;\n var selection = option;\n var text; // Add a unique id to the custom selection. Avoid doing this in `render` so\n // the id doesn't increment every time.\n\n if (!isString(selection) && selection.customOption) {\n selection = _objectSpread(_objectSpread({}, selection), {}, {\n id: uniqueId('new-id-')\n });\n }\n\n if (multiple) {\n // If multiple selections are allowed, add the new selection to the\n // existing selections.\n selected = _this.state.selected.concat(selection);\n text = '';\n } else {\n // If only a single selection is allowed, replace the existing selection\n // with the new one.\n selected = [selection];\n text = getOptionLabel(selection, labelKey);\n }\n\n _this.setState(function (state, props) {\n return _objectSpread(_objectSpread({}, hideMenu(state, props)), {}, {\n initialItem: selection,\n selected: selected,\n text: text\n });\n }, function () {\n return _this._handleChange(selected);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_handleSelectionRemove\", function (selection) {\n var selected = _this.state.selected.filter(function (option) {\n return !isEqual(option, selection);\n }); // Make sure the input stays focused after the item is removed.\n\n\n _this.focus();\n\n _this.setState(function (state, props) {\n return _objectSpread(_objectSpread({}, hideMenu(state, props)), {}, {\n selected: selected\n });\n }, function () {\n return _this._handleChange(selected);\n });\n });\n\n return _this;\n }\n\n _createClass(Typeahead, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.props.autoFocus && this.focus();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props3 = this.props,\n labelKey = _this$props3.labelKey,\n multiple = _this$props3.multiple,\n selected = _this$props3.selected;\n validateSelectedPropChange(selected, prevProps.selected); // Sync selections in state with those in props.\n\n if (selected && !isEqual(selected, prevState.selected)) {\n this.setState({\n selected: selected\n });\n\n if (!multiple) {\n this.setState({\n text: selected.length ? getOptionLabel(head(selected), labelKey) : ''\n });\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n // Omit `onChange` so Flow doesn't complain.\n var _this$props4 = this.props,\n onChange = _this$props4.onChange,\n otherProps = _objectWithoutProperties(_this$props4, _excluded);\n\n var mergedPropsAndState = _objectSpread(_objectSpread({}, otherProps), this.state);\n\n var filterBy = mergedPropsAndState.filterBy,\n labelKey = mergedPropsAndState.labelKey,\n options = mergedPropsAndState.options,\n paginate = mergedPropsAndState.paginate,\n shownResults = mergedPropsAndState.shownResults,\n text = mergedPropsAndState.text;\n this.isMenuShown = isShown(mergedPropsAndState);\n this.items = []; // Reset items on re-render.\n\n var results = [];\n\n if (this.isMenuShown) {\n var cb = typeof filterBy === 'function' ? filterBy : defaultFilterBy;\n results = options.filter(function (option) {\n return cb(option, mergedPropsAndState);\n }); // This must come before results are truncated.\n\n var shouldPaginate = paginate && results.length > shownResults; // Truncate results if necessary.\n\n results = getTruncatedOptions(results, shownResults); // Add the custom option if necessary.\n\n if (addCustomOption(results, mergedPropsAndState)) {\n results.push(_defineProperty({\n customOption: true\n }, getStringLabelKey(labelKey), text));\n } // Add the pagination item if necessary.\n\n\n if (shouldPaginate) {\n var _results$push2;\n\n results.push((_results$push2 = {}, _defineProperty(_results$push2, getStringLabelKey(labelKey), ''), _defineProperty(_results$push2, \"paginationOption\", true), _results$push2));\n }\n }\n\n return /*#__PURE__*/React.createElement(TypeaheadManager, _extends({}, mergedPropsAndState, {\n hideMenu: this.hideMenu,\n inputNode: this.inputNode,\n inputRef: this.inputRef,\n isMenuShown: this.isMenuShown,\n onActiveItemChange: this._handleActiveItemChange,\n onAdd: this._handleSelectionAdd,\n onBlur: this._handleBlur,\n onChange: this._handleInputChange,\n onClear: this._handleClear,\n onFocus: this._handleFocus,\n onHide: this.hideMenu,\n onInitialItemChange: this._handleInitialItemChange,\n onKeyDown: this._handleKeyDown,\n onMenuItemClick: this._handleMenuItemSelect,\n onRemove: this._handleSelectionRemove,\n results: results,\n setItem: this.setItem,\n toggleMenu: this.toggleMenu\n }));\n }\n }]);\n\n return Typeahead;\n}(React.Component);\n\n_defineProperty(Typeahead, \"propTypes\", propTypes);\n\n_defineProperty(Typeahead, \"defaultProps\", defaultProps);\n\nexport default Typeahead;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport PropTypes from 'prop-types';\nimport { isFunction, values, warn } from './utils';\nimport { SIZE } from './constants';\nvar INPUT_PROPS_BLACKLIST = [{\n alt: 'onBlur',\n prop: 'onBlur'\n}, {\n alt: 'onInputChange',\n prop: 'onChange'\n}, {\n alt: 'onFocus',\n prop: 'onFocus'\n}, {\n alt: 'onKeyDown',\n prop: 'onKeyDown'\n}];\nexport var sizeType = PropTypes.oneOf(values(SIZE));\n/**\n * Allows additional warnings or messaging related to prop validation.\n */\n\nexport function checkPropType(validator, callback) {\n return function (props, propName, componentName) {\n PropTypes.checkPropTypes(_defineProperty({}, propName, validator), props, 'prop', componentName);\n isFunction(callback) && callback(props, propName, componentName);\n };\n}\nexport function caseSensitiveType(props, propName, componentName) {\n var caseSensitive = props.caseSensitive,\n filterBy = props.filterBy;\n warn(!caseSensitive || typeof filterBy !== 'function', 'Your `filterBy` function will override the `caseSensitive` prop.');\n}\nexport function deprecated(validator, reason) {\n return function (props, propName, componentName) {\n if (props[propName] != null) {\n warn(false, \"The `\".concat(propName, \"` prop is deprecated. \").concat(reason));\n }\n\n return PropTypes.checkPropTypes(_defineProperty({}, propName, validator), props, 'prop', componentName);\n };\n}\nexport function defaultInputValueType(props, propName, componentName) {\n var defaultInputValue = props.defaultInputValue,\n defaultSelected = props.defaultSelected,\n multiple = props.multiple,\n selected = props.selected;\n var name = defaultSelected.length ? 'defaultSelected' : 'selected';\n warn(!(!multiple && defaultInputValue && (defaultSelected.length || selected && selected.length)), \"`defaultInputValue` will be overridden by the value from `\".concat(name, \"`.\"));\n}\nexport function defaultSelectedType(props, propName, componentName) {\n var defaultSelected = props.defaultSelected,\n multiple = props.multiple;\n warn(multiple || defaultSelected.length <= 1, 'You are passing multiple options to the `defaultSelected` prop of a ' + 'Typeahead in single-select mode. The selections will be truncated to a ' + 'single selection.');\n}\nexport function highlightOnlyResultType(props, propName, componentName) {\n var allowNew = props.allowNew,\n highlightOnlyResult = props.highlightOnlyResult;\n warn(!(highlightOnlyResult && allowNew), '`highlightOnlyResult` will not work with `allowNew`.');\n}\nexport function ignoreDiacriticsType(props, propName, componentName) {\n var filterBy = props.filterBy,\n ignoreDiacritics = props.ignoreDiacritics;\n warn(ignoreDiacritics || typeof filterBy !== 'function', 'Your `filterBy` function will override the `ignoreDiacritics` prop.');\n}\nexport function inputPropsType(props, propName, componentName) {\n var inputProps = props.inputProps;\n\n if (!(inputProps && Object.prototype.toString.call(inputProps) === '[object Object]')) {\n return;\n } // Blacklisted properties.\n\n\n INPUT_PROPS_BLACKLIST.forEach(function (_ref) {\n var alt = _ref.alt,\n prop = _ref.prop;\n var msg = alt ? \" Use the top-level `\".concat(alt, \"` prop instead.\") : null;\n warn(!inputProps[prop], \"The `\".concat(prop, \"` property of `inputProps` will be ignored.\").concat(msg));\n });\n}\nexport function isRequiredForA11y(props, propName, componentName) {\n warn(props[propName] != null, \"The prop `\".concat(propName, \"` is required to make `\").concat(componentName, \"` \") + 'accessible for users of assistive technologies such as screen readers.');\n}\nexport function labelKeyType(props, propName, componentName) {\n var allowNew = props.allowNew,\n labelKey = props.labelKey;\n warn(!(isFunction(labelKey) && allowNew), '`labelKey` must be a string when `allowNew={true}`.');\n}\nexport var optionType = PropTypes.oneOfType([PropTypes.object, PropTypes.string]);\nexport function selectedType(props, propName, componentName) {\n var multiple = props.multiple,\n onChange = props.onChange,\n selected = props.selected;\n warn(multiple || !selected || selected.length <= 1, 'You are passing multiple options to the `selected` prop of a Typeahead ' + 'in single-select mode. This may lead to unexpected behaviors or errors.');\n warn(!selected || selected && isFunction(onChange), 'You provided a `selected` prop without an `onChange` handler. If you ' + 'want the typeahead to be uncontrolled, use `defaultSelected`. ' + 'Otherwise, set `onChange`.');\n}","export default function getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}","import getOptionProperty from './getOptionProperty';\nimport { head } from './nodash';\n\nfunction getIsOnlyResult(props) {\n var allowNew = props.allowNew,\n highlightOnlyResult = props.highlightOnlyResult,\n results = props.results;\n\n if (!highlightOnlyResult || allowNew) {\n return false;\n }\n\n return results.length === 1 && !getOptionProperty(head(results), 'disabled');\n}\n\nexport default getIsOnlyResult;","export default function getMenuItemId(id, position) {\n return \"\".concat(id || '', \"-item-\").concat(position);\n}","import { isString } from './nodash';\nexport default function getOptionProperty(option, key) {\n if (isString(option)) {\n return undefined;\n }\n\n return option[key];\n}","/**\n * Truncates the result set based on `maxResults` and returns the new set.\n */\nfunction getTruncatedOptions(options, maxResults) {\n if (!maxResults || maxResults >= options.length) {\n return options;\n }\n\n return options.slice(0, maxResults);\n}\n\nexport default getTruncatedOptions;","import { DEFAULT_LABELKEY } from '../constants';\nexport default function getStringLabelKey(labelKey) {\n return typeof labelKey === 'string' ? labelKey : DEFAULT_LABELKEY;\n}","import invariant from 'invariant';\nimport getStringLabelKey from './getStringLabelKey';\nimport { isFunction, isString } from './nodash';\n\n/**\n * Retrieves the display string from an option. Options can be the string\n * themselves, or an object with a defined display string. Anything else throws\n * an error.\n */\nfunction getOptionLabel(option, labelKey) {\n // Handle internally created options first.\n if (!isString(option) && (option.paginationOption || option.customOption)) {\n return option[getStringLabelKey(labelKey)];\n }\n\n var optionLabel;\n\n if (isFunction(labelKey)) {\n optionLabel = labelKey(option);\n } else if (isString(option)) {\n optionLabel = option;\n } else {\n // `option` is an object and `labelKey` is a string.\n optionLabel = option[labelKey];\n }\n\n !isString(optionLabel) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'One or more options does not have a valid label string. Check the ' + '`labelKey` prop to ensure that it matches the correct option key and ' + 'provides a string for filtering and display.') : invariant(false) : void 0;\n return optionLabel;\n}\n\nexport default getOptionLabel;","import getOptionLabel from './getOptionLabel';\n\nfunction addCustomOption(results, props) {\n var allowNew = props.allowNew,\n labelKey = props.labelKey,\n text = props.text;\n\n if (!allowNew || !text.trim()) {\n return false;\n } // If the consumer has provided a callback, use that to determine whether or\n // not to add the custom option.\n\n\n if (typeof allowNew === 'function') {\n return allowNew(results, props);\n } // By default, don't add the custom option if there is an exact text match\n // with an existing option.\n\n\n return !results.some(function (o) {\n return getOptionLabel(o, labelKey) === text;\n });\n}\n\nexport default addCustomOption;","/**\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 * Taken from: http://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript/18391901#18391901\n */\n\n/* eslint-disable max-len */\nvar map = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\\xD0\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'OE',\n letters: \"\\x8C\\u0152\"\n}, {\n base: 'oe',\n letters: \"\\x9C\\u0153\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\n/* eslint-enable max-len */\n\nvar diacriticsMap = {};\n\nfor (var ii = 0; ii < map.length; ii++) {\n var letters = map[ii].letters;\n\n for (var jj = 0; jj < letters.length; jj++) {\n diacriticsMap[letters[jj]] = map[ii].base;\n }\n} // \"what?\" version ... http://jsperf.com/diacritics/12\n\n\nexport default function stripDiacritics(str) {\n return str.replace(/[\\u0300-\\u036F]/g, '') // Remove combining diacritics\n\n /* eslint-disable-next-line no-control-regex */\n .replace(/[^\\u0000-\\u007E]/g, function (a) {\n return diacriticsMap[a] || a;\n });\n}","import warning from 'warning';\nvar warned = {};\n/**\n * Copied from: https://github.com/ReactTraining/react-router/blob/master/modules/routerWarning.js\n */\n\nexport default function warn(falseToWarn, message) {\n // Only issue deprecation warnings once.\n if (!falseToWarn && message.indexOf('deprecated') !== -1) {\n if (warned[message]) {\n return;\n }\n\n warned[message] = true;\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n warning.apply(void 0, [falseToWarn, \"[react-bootstrap-typeahead] \".concat(message)].concat(args));\n}\nexport function resetWarned() {\n warned = {};\n}","import isEqual from 'fast-deep-equal';\nimport getOptionProperty from './getOptionProperty';\nimport { isFunction, isString } from './nodash';\nimport stripDiacritics from './stripDiacritics';\nimport warn from './warn';\n\nfunction isMatch(input, string, props) {\n var searchStr = input;\n var str = string;\n\n if (!props.caseSensitive) {\n searchStr = searchStr.toLowerCase();\n str = str.toLowerCase();\n }\n\n if (props.ignoreDiacritics) {\n searchStr = stripDiacritics(searchStr);\n str = stripDiacritics(str);\n }\n\n return str.indexOf(searchStr) !== -1;\n}\n/**\n * Default algorithm for filtering results.\n */\n\n\nexport default function defaultFilterBy(option, props) {\n var filterBy = props.filterBy,\n labelKey = props.labelKey,\n multiple = props.multiple,\n selected = props.selected,\n text = props.text; // Don't show selected options in the menu for the multi-select case.\n\n if (multiple && selected.some(function (o) {\n return isEqual(o, option);\n })) {\n return false;\n }\n\n if (isFunction(labelKey) && isMatch(text, labelKey(option), props)) {\n return true;\n }\n\n var fields = filterBy.slice();\n\n if (isString(labelKey)) {\n // Add the `labelKey` field to the list of fields if it isn't already there.\n if (fields.indexOf(labelKey) === -1) {\n fields.unshift(labelKey);\n }\n }\n\n if (isString(option)) {\n warn(fields.length <= 1, 'You cannot filter by properties when `option` is a string.');\n return isMatch(text, option, props);\n }\n\n return fields.some(function (field) {\n var value = getOptionProperty(option, field);\n\n if (!isString(value)) {\n warn(false, 'Fields passed to `filterBy` should have string values. Value will ' + 'be converted to a string; results may be unexpected.');\n value = String(value);\n }\n\n return isMatch(text, value, props);\n });\n}","import invariant from 'invariant';\nimport stripDiacritics from './stripDiacritics';\nvar CASE_INSENSITIVE = 'i';\nvar COMBINING_MARKS = /[\\u0300-\\u036F]/;\n// Export for testing.\nexport function escapeStringRegexp(str) {\n !(typeof str === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`escapeStringRegexp` expected a string.') : invariant(false) : void 0; // Escape characters with special meaning either inside or outside character\n // sets. Use a simple backslash escape when it’s always valid, and a \\unnnn\n // escape when the simpler form would be disallowed by Unicode patterns’\n // stricter grammar.\n\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\nexport default function getMatchBounds(subject, str) {\n var search = new RegExp(escapeStringRegexp(stripDiacritics(str)), CASE_INSENSITIVE);\n var matches = search.exec(stripDiacritics(subject));\n\n if (!matches) {\n return null;\n }\n\n var start = matches.index;\n var matchLength = matches[0].length; // Account for combining marks, which changes the indices.\n\n if (COMBINING_MARKS.test(subject)) {\n // Starting at the beginning of the subject string, check for the number of\n // combining marks and increment the start index whenever one is found.\n for (var ii = 0; ii <= start; ii++) {\n if (COMBINING_MARKS.test(subject[ii])) {\n start += 1;\n }\n } // Similarly, increment the length of the match string if it contains a\n // combining mark.\n\n\n for (var _ii = start; _ii <= start + matchLength; _ii++) {\n if (COMBINING_MARKS.test(subject[_ii])) {\n matchLength += 1;\n }\n }\n }\n\n return {\n end: start + matchLength,\n start: start\n };\n}","import getMatchBounds from './getMatchBounds';\nimport getOptionLabel from './getOptionLabel';\n\nfunction getHintText(props) {\n var activeIndex = props.activeIndex,\n initialItem = props.initialItem,\n isFocused = props.isFocused,\n isMenuShown = props.isMenuShown,\n labelKey = props.labelKey,\n multiple = props.multiple,\n selected = props.selected,\n text = props.text; // Don't display a hint under the following conditions:\n\n if ( // No text entered.\n !text || // The input is not focused.\n !isFocused || // The menu is hidden.\n !isMenuShown || // No item in the menu.\n !initialItem || // The initial item is a custom option.\n initialItem.customOption || // One of the menu items is active.\n activeIndex > -1 || // There's already a selection in single-select mode.\n !!selected.length && !multiple) {\n return '';\n }\n\n var initialItemStr = getOptionLabel(initialItem, labelKey);\n var bounds = getMatchBounds(initialItemStr.toLowerCase(), text.toLowerCase());\n\n if (!(bounds && bounds.start === 0)) {\n return '';\n } // Text matching is case- and accent-insensitive, so to display the hint\n // correctly, splice the input string with the hint string.\n\n\n return text + initialItemStr.slice(bounds.end, initialItemStr.length);\n}\n\nexport default getHintText;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"activeIndex\", \"id\", \"isFocused\", \"isMenuShown\", \"multiple\", \"onFocus\", \"placeholder\"],\n _excluded2 = [\"className\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport cx from 'classnames';\nimport getMenuItemId from './getMenuItemId';\n\nvar getInputProps = function getInputProps(_ref) {\n var activeIndex = _ref.activeIndex,\n id = _ref.id,\n isFocused = _ref.isFocused,\n isMenuShown = _ref.isMenuShown,\n multiple = _ref.multiple,\n onFocus = _ref.onFocus,\n placeholder = _ref.placeholder,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return function () {\n var _cx;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n className = _ref2.className,\n inputProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var props = _objectSpread(_objectSpread(_objectSpread({\n /* eslint-disable sort-keys */\n // These props can be overridden by values in `inputProps`.\n autoComplete: 'off',\n placeholder: placeholder,\n type: 'text'\n }, inputProps), rest), {}, {\n 'aria-activedescendant': activeIndex >= 0 ? getMenuItemId(id, activeIndex) : undefined,\n 'aria-autocomplete': 'both',\n 'aria-expanded': isMenuShown,\n 'aria-haspopup': 'listbox',\n 'aria-owns': isMenuShown ? id : undefined,\n className: cx((_cx = {}, _defineProperty(_cx, className || '', !multiple), _defineProperty(_cx, \"focus\", isFocused), _cx)),\n onClick: function onClick(e) {\n // Re-open the menu if it's closed, eg: via ESC.\n onFocus && onFocus(e);\n inputProps.onClick && inputProps.onClick(e);\n },\n onFocus: onFocus,\n // Comboboxes are single-select by definition:\n // https://www.w3.org/TR/wai-aria-practices-1.1/#combobox\n role: 'combobox'\n /* eslint-enable sort-keys */\n\n });\n\n if (!multiple) {\n return props;\n }\n\n return _objectSpread(_objectSpread({}, props), {}, {\n 'aria-autocomplete': 'list',\n 'aria-expanded': undefined,\n inputClassName: className,\n role: undefined\n });\n };\n};\n\nexport default getInputProps;","import getOptionLabel from './getOptionLabel';\nimport { head } from './nodash';\n\nfunction getInputText(props) {\n var activeItem = props.activeItem,\n labelKey = props.labelKey,\n multiple = props.multiple,\n selected = props.selected,\n text = props.text;\n\n if (activeItem) {\n // Display the input value if the pagination item is active.\n return getOptionLabel(activeItem, labelKey);\n }\n\n var selectedItem = !multiple && !!selected.length && head(selected);\n\n if (selectedItem) {\n return getOptionLabel(selectedItem, labelKey);\n }\n\n return text;\n}\n\nexport default getInputText;","import { DOWN, UP } from '../constants';\n\nfunction skipDisabledOptions(currentIndex, keyCode, items) {\n var newIndex = currentIndex;\n\n while (items[newIndex] && items[newIndex].disabled) {\n newIndex += keyCode === UP ? -1 : 1;\n }\n\n return newIndex;\n}\n\nexport default function getUpdatedActiveIndex(currentIndex, keyCode, items) {\n var newIndex = currentIndex; // Increment or decrement index based on user keystroke.\n\n newIndex += keyCode === UP ? -1 : 1; // Skip over any disabled options.\n\n newIndex = skipDisabledOptions(newIndex, keyCode, items); // If we've reached the end, go back to the beginning or vice-versa.\n\n if (newIndex === items.length) {\n newIndex = -1;\n } else if (newIndex === -2) {\n newIndex = items.length - 1; // Skip over any disabled options.\n\n newIndex = skipDisabledOptions(newIndex, keyCode, items);\n }\n\n return newIndex;\n}","import warn from './warn';\nexport default function validateSelectedPropChange(prevSelected, selected) {\n var uncontrolledToControlled = !prevSelected && selected;\n var controlledToUncontrolled = prevSelected && !selected;\n var from, to, precedent;\n\n if (uncontrolledToControlled) {\n from = 'uncontrolled';\n to = 'controlled';\n precedent = 'an';\n } else {\n from = 'controlled';\n to = 'uncontrolled';\n precedent = 'a';\n }\n\n var message = \"You are changing \".concat(precedent, \" \").concat(from, \" typeahead to be \").concat(to, \". \") + \"Input elements should not switch from \".concat(from, \" to \").concat(to, \" (or vice versa). \") + 'Decide between using a controlled or uncontrolled element for the ' + 'lifetime of the component.';\n warn(!(uncontrolledToControlled || controlledToUncontrolled), message);\n}","/**\n * Check if an input type is selectable, based on WHATWG spec.\n *\n * See:\n * - https://stackoverflow.com/questions/21177489/selectionstart-selectionend-on-input-type-number-no-longer-allowed-in-chrome/24175357\n * - https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n */\nexport default function isSelectable(inputNode) {\n return inputNode.selectionStart != null;\n}","export default function isShown(props) {\n var open = props.open,\n minLength = props.minLength,\n showMenu = props.showMenu,\n text = props.text; // If menu visibility is controlled via props, that value takes precedence.\n\n if (open || open === false) {\n return open;\n }\n\n if (text.length < minLength) {\n return false;\n }\n\n return showMenu;\n}","var idCounter = 0;\nexport function head(arr) {\n return Array.isArray(arr) && arr.length ? arr[0] : undefined;\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function noop() {}\nexport function pick(obj, keys) {\n var result = {};\n keys.forEach(function (k) {\n if (Object.prototype.hasOwnProperty.call(obj, k)) {\n result[k] = obj[k];\n }\n });\n return result;\n}\nexport function uniqueId(prefix) {\n idCounter += 1;\n return (prefix == null ? '' : String(prefix)) + idCounter;\n} // Export for testing purposes.\n\nexport function valuesPolyfill(obj) {\n return Object.keys(obj).reduce(function (accum, key) {\n if (Object.prototype.propertyIsEnumerable.call(obj, key)) {\n accum.push(obj[key]);\n }\n\n return accum;\n }, []);\n}\nexport function values(obj) {\n return isFunction(Object.values) ? Object.values(obj) : valuesPolyfill(obj);\n}","/**\n * Prevent the main input from blurring when a menu item or the clear button is\n * clicked. (#226 & #310)\n */\nexport default function preventInputBlur(e) {\n e.preventDefault();\n}","export function isSizeLarge(size) {\n return size === 'large' || size === 'lg';\n}\nexport function isSizeSmall(size) {\n return size === 'small' || size === 'sm';\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\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 _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: 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 _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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 _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","import ownerDocument from 'dom-helpers/ownerDocument';\nimport safeFindDOMNode from './safeFindDOMNode';\nexport default (function (componentOrElement) {\n return ownerDocument(safeFindDOMNode(componentOrElement));\n});","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n\n return componentOrElement != null ? componentOrElement : null;\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\nimport ownerDocument from './ownerDocument';\nvar escapeKeyCode = 27;\n\nvar noop = function noop() {};\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar getRefTarget = function getRefTarget(ref) {\n return ref && ('current' in ref ? ref.current : ref);\n};\n\n/**\n * The `useRootClose` hook registers your callback on the document\n * when rendered. Powers the `` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n *\n * @param {Ref| HTMLElement} ref The element boundary\n * @param {function} onRootClose\n * @param {object=} options\n * @param {boolean=} options.disabled\n * @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useRootClose(ref, onRootClose, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n disabled = _ref.disabled,\n _ref$clickTrigger = _ref.clickTrigger,\n clickTrigger = _ref$clickTrigger === void 0 ? 'click' : _ref$clickTrigger;\n\n var preventMouseRootCloseRef = useRef(false);\n var onClose = onRootClose || noop;\n var handleMouseCapture = useCallback(function (e) {\n var currentTarget = getRefTarget(ref);\n warning(!!currentTarget, 'RootClose captured a close event but does not have a ref to compare it to. ' + 'useRootClose(), should be passed a ref that resolves to a DOM node');\n preventMouseRootCloseRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target);\n }, [ref]);\n var handleMouse = useEventCallback(function (e) {\n if (!preventMouseRootCloseRef.current) {\n onClose(e);\n }\n });\n var handleKeyUp = useEventCallback(function (e) {\n if (e.keyCode === escapeKeyCode) {\n onClose(e);\n }\n });\n useEffect(function () {\n if (disabled || ref == null) return undefined; // Store the current event to avoid triggering handlers immediately\n // https://github.com/facebook/react/issues/20074\n\n var currentEvent = window.event;\n var doc = ownerDocument(getRefTarget(ref)); // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n\n var removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n var removeMouseListener = listen(doc, clickTrigger, function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n\n handleMouse(e);\n });\n var removeKeyupListener = listen(doc, 'keyup', function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n\n handleKeyUp(e);\n });\n var mobileSafariHackListeners = [];\n\n if ('ontouchstart' in doc.documentElement) {\n mobileSafariHackListeners = [].slice.call(doc.body.children).map(function (el) {\n return listen(el, 'mousemove', noop);\n });\n }\n\n return function () {\n removeMouseCaptureListener();\n removeMouseListener();\n removeKeyupListener();\n mobileSafariHackListeners.forEach(function (remove) {\n return remove();\n });\n };\n }, [ref, disabled, clickTrigger, handleMouseCapture, handleMouse, handleKeyUp]);\n}\n\nexport default useRootClose;","import _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from '@hypnosphi/create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\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 _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(isTargetAttached ? compute(target, options) : []);\n }\n\n if (!isTargetAttached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","const candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]:not(slot)',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n ? function () {}\n : Element.prototype.matches ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n !NoElement && Element.prototype.getRootNode\n ? (element) => element.getRootNode()\n : (element) => element.ownerDocument;\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n let candidates = Array.prototype.slice.apply(\n el.querySelectorAll(candidateSelector)\n );\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nconst getCandidatesIteratively = function (\n elements,\n includeContainer,\n options\n) {\n const candidates = [];\n const elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n const element = elementsToCheck.shift();\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n const assigned = element.assignedElements();\n const content = assigned.length ? assigned : element.children;\n const nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // check candidate element\n const validCandidate = matches.call(element, candidateSelector);\n if (\n validCandidate &&\n options.filter(element) &&\n (includeContainer || !elements.includes(element))\n ) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n const shadowRoot =\n element.shadowRoot ||\n // check for an undisclosed shadow\n (typeof options.getShadowRoot === 'function' &&\n options.getShadowRoot(element));\n\n if (shadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n const nestedCandidates = getCandidatesIteratively(\n shadowRoot === true ? element.children : shadowRoot.children,\n true,\n options\n );\n\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift(...element.children);\n }\n }\n }\n return candidates;\n};\n\nconst getTabindex = function (node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome,
,