{"version":3,"file":"newsletter.min.js","sources":["newsletter.ts"],"sourcesContent":["/* Code used for the newsletter subscribe in footer, but also on the /subscribe and /unsubscribe pages */\r\nnamespace eXpress.web.Newsletter {\r\n\tconst subscriptionForms = html.querySelectorAll<HTMLElement>(document, \".technical-newsletter-subscribe\");\r\n\tconst subscribeAsync = (email: string, appId: string, posId: string, lang: string, source?: string) =>\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: \"/api/v1/AccountService.svc/json/Subscribe\",\r\n\t\t\tdata: JSON.stringify({\r\n\t\t\t\tapplicationId: appId,\r\n\t\t\t\tpointOfSaleId: posId,\r\n\t\t\t\tlanguage : lang,\r\n\t\t\t\temail,\r\n\t\t\t\tsource,\r\n\t\t\t\tnewsletter: true\r\n\t\t\t}),\r\n\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\tdataType: \"json\"\r\n\t\t}).then(res => {\r\n\t\t\t// \r\n\t\t}) as JQueryPromise<void>;\r\n\r\n\tlet ioSubscribe: IntersectionObserver;\r\n\r\n\tif (('InterSectionObserver' in window || 'IntersectionObserverEntry' in window && 'intersectionRatio' in (window as any).IntersectionObserverEntry.prototype)) {\r\n\t\tioSubscribe = new IntersectionObserver((entries, observer) => {\r\n\t\t\t\tentries.forEach(entry => {\r\n\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\teXpress.components.main.createNewsletterSubscribe(entry.target as HTMLElement,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tsubscribeAsync\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobserver.unobserve(entry.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t{ rootMargin: \"0px 0px 0px 0px\" }\r\n\t\t);\r\n\t\tsubscriptionForms.forEach(el => ioSubscribe.observe(el));\r\n\t} else {\r\n\t\tsubscriptionForms.forEach(formEL => {\r\n\t\t\teXpress.components.main.createNewsletterSubscribe(\r\n\t\t\t\tformEL,\r\n\t\t\t\t{\r\n\t\t\t\t\tsubscribeAsync\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tconst toggleSubscribeAsync = (personId: string, email: string, appId: string, posId: string, lang: string, source?: string, newsletter?: boolean, personalMessage?: boolean, mailFrequency?: number, postalMail?: boolean) => {\r\n\t\tconst toggleSubscription = {\r\n\t\t\tpersonId,\r\n\t\t\tapplicationId: appId,\r\n\t\t\tpointOfSaleId: posId,\r\n\t\t\tlanguage: lang,\r\n\t\t\temail,\r\n\t\t\tsource,\r\n\t\t\tnewsletter,\r\n\t\t\tpersonalMessage,\r\n\t\t\tmailFrequency,\r\n\t\t\tpostalMail\r\n\t\t};\r\n\r\n\t\treturn $.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: `${window.context.ecomApiUrl}/subscriptions/togglesubscribe`,\r\n\t\t\tdata: JSON.stringify(toggleSubscription),\r\n\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\tdataType: \"json\"\r\n\t\t}).then(() => {\r\n\t\t\t// nothing\r\n\t\t});\r\n\t};\r\n\r\n\tlet ioUnSubscribe: IntersectionObserver;\r\n\tconst unSubscriptionForms = html.querySelectorAll<HTMLElement>(document, \".technical-newsletter-unsubscribe\");\r\n\tif (('InterSectionObserver' in window || 'IntersectionObserverEntry' in window && 'intersectionRatio' in (window as any).IntersectionObserverEntry.prototype)) {\r\n\t\tioUnSubscribe = new IntersectionObserver((entries, observer) => {\r\n\t\t\t\tentries.forEach(entry => {\r\n\t\t\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\t\t\teXpress.components.main.createNewsletterUnsubscribe(entry.target as HTMLElement,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttoggleSubscribeAsync\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobserver.unobserve(entry.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t{ rootMargin: \"0px 0px 0px 0px\" }\r\n\t\t);\r\n\t\tunSubscriptionForms.forEach(el => ioUnSubscribe.observe(el));\r\n\t} else {\r\n\t\tunSubscriptionForms.forEach(formEL => {\r\n\t\t\teXpress.components.main.createNewsletterUnsubscribe(\r\n\t\t\t\tformEL,\r\n\t\t\t\t{\r\n\t\t\t\t\ttoggleSubscribeAsync\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n"],"names":["eXpress","web","ioSubscribe","subscriptionForms","html","querySelectorAll","document","subscribeAsync","email","appId","posId","lang","source","$","ajax","type","url","data","JSON","stringify","applicationId","pointOfSaleId","language","newsletter","contentType","dataType","then","res","window","IntersectionObserverEntry","prototype","IntersectionObserver","entries","observer","forEach","entry","isIntersecting","components","main","createNewsletterSubscribe","target","unobserve","rootMargin","el","observe","formEL","ioUnSubscribe","toggleSubscribeAsync","personId","personalMessage","mailFrequency","postalMail","toggleSubscription","concat","context","ecomApiUrl","unSubscriptionForms","createNewsletterUnsubscribe","Newsletter"],"mappings":"AACA,IAAUA,SAAV,SAAUA,SAAQ,IAAAC,KAAI,WACrB,IAmBIC,YAnBEC,kBAAoBH,QAAAI,KAAKC,iBAA8BC,SAAU,mCACjEC,eAAiB,SAACC,MAAeC,MAAeC,MAAeC,KAAcC,QAClF,OAAAC,EAAEC,KAAK,CACNC,KAAM,OACNC,IAAK,4CACLC,KAAMC,KAAKC,UAAU,CACpBC,cAAeX,MACfY,cAAeX,MACfY,SAAWX,KACXH,MAAKA,MACLI,OAAMA,OACNW,YAAY,IAEbC,YAAa,kCACbC,SAAU,SACRC,MAAK,SAAAC,KAER,GAfA,EAmBI,yBAA0BC,QAAU,8BAA+BA,QAAU,sBAAwBA,OAAeC,0BAA0BC,WAClJ5B,YAAc,IAAI6B,sBAAqB,SAACC,QAASC,UAC/CD,QAAQE,SAAQ,SAAAC,OACXA,MAAMC,iBACTpC,QAAQqC,WAAWC,KAAKC,0BAA0BJ,MAAMK,OACvD,CACCjC,eAAcA,iBAEhB0B,SAASQ,UAAUN,MAAMK,QAE3B,GACD,GACA,CAAEE,WAAY,oBAEfvC,kBAAkB+B,SAAQ,SAAAS,IAAM,OAAAzC,YAAY0C,QAAQD,GAApB,KAEhCxC,kBAAkB+B,SAAQ,SAAAW,QACzB7C,QAAQqC,WAAWC,KAAKC,0BACvBM,OACA,CACCtC,eAAcA,gBAEjB,IAGD,IAyBIuC,cAzBEC,qBAAuB,SAACC,SAAkBxC,MAAeC,MAAeC,MAAeC,KAAcC,OAAiBW,WAAsB0B,gBAA2BC,cAAwBC,YACpM,IAAMC,mBAAqB,CAC1BJ,SAAQA,SACR5B,cAAeX,MACfY,cAAeX,MACfY,SAAUX,KACVH,MAAKA,MACLI,OAAMA,OACNW,WAAUA,WACV0B,gBAAeA,gBACfC,cAAaA,cACbC,WAAUA,YAGX,OAAOtC,EAAEC,KAAK,CACbC,KAAM,OACNC,IAAK,GAAGqC,OAAAzB,OAAO0B,QAAQC,WAA0C,kCACjEtC,KAAMC,KAAKC,UAAUiC,oBACrB5B,YAAa,kCACbC,SAAU,SACRC,MAAK,WAER,GACD,EAGM8B,oBAAsBxD,QAAAI,KAAKC,iBAA8BC,SAAU,qCACpE,yBAA0BsB,QAAU,8BAA+BA,QAAU,sBAAwBA,OAAeC,0BAA0BC,WAClJgB,cAAgB,IAAIf,sBAAqB,SAACC,QAASC,UACjDD,QAAQE,SAAQ,SAAAC,OACXA,MAAMC,iBACTpC,QAAQqC,WAAWC,KAAKmB,4BAA4BtB,MAAMK,OACzD,CACCO,qBAAoBA,uBAEtBd,SAASQ,UAAUN,MAAMK,QAE3B,GACD,GACA,CAAEE,WAAY,oBAEfc,oBAAoBtB,SAAQ,SAAAS,IAAM,OAAAG,cAAcF,QAAQD,GAAtB,KAElCa,oBAAoBtB,SAAQ,SAAAW,QAC3B7C,QAAQqC,WAAWC,KAAKmB,4BACvBZ,OACA,CACCE,qBAAoBA,sBAEvB,GAED,EAlGqB,EAAJ9C,IAAAD,QAAGC,MAAHD,YAkGjB,CAAA,IAlG+B0D,aAAVzD,eAkGrB,CAAA,GAAA,CAlGD,CAAUD,UAAAA,QAkGT,CAAA"}