1import{aI as n,h as S,G as l,a as c,e as p,T as d,i as E,t as N,R as g,u as h,b as f,ad as M,S as F,y as T,H as b,C,r as w}from"./storefrontApp.CsApItsi.min.js";import{b as O,d as R,$ as y,e as I}from"./chunk-vendor-lit.NvY0u02.js";import{B as U}from"./chunk-base_http_api_url.H743YfZ.js";import{S as m}from"./chunk-storefront_settings_constants.DIF02Gz.js";import{S as v}from"./chunk-storefront_base_lit_element.lX23Jvc.js";import"./chunk-vendor-di.Bh23gdA.js";import"./chunk-vendor-rxjs.Dp7kflo.js";import"./chunk-vendor-lodash.CWHFt7Z.js";import"./chunk-vendor-phoenix.cdKS79L.js";const P=n.component;class u{static{this.STATUS_CODE_CONTENT={[S.badRequest]:"Failed to subscribe to the newsletter. Please enter a valid email address."}}static getMessageBasedOnStatusCode(e,s){const r=this.STATUS_CODE_CONTENT[e];return(r&&s.translate(r))??s.translate("Sending failed due to server error. Try again.")}}class A extends U{constructor(e,s){super(e,s)}getNewsletterUrl(){return`${this.webapiUrl}/subscribers`}}var H=Object.defineProperty,$=(a,e,s,r)=>{for(var t=void 0,i=a.length-1,o;i>=0;i--)(o=a[i])&&(t=o(e,s,t)||t);return t&&H(e,s,t),t};class _ extends v{constructor(){super(),this.moduleInstanceId="",this._formConnectorRef=O(),this._flashMessengerContainerName=l,this._onSubmit=s=>{const r=s.detail.submitActionProps.responseObject,{flashMessages:t}=r.data;t&&(this._flashMessengerApi.removeAllFlashMessages(this._flashMessengerContainerName),this._flashMessengerApi.parseAndAddFlashMessages(t,this._flashMessengerContainerName))},this._onSubmitError=s=>{const r=s.detail.submitActionProps.err.request.status,t=u.getMessageBasedOnStatusCode(r,this._translationApi);this._flashMessengerApi.removeAllFlashMessages(this._flashMessengerContainerName),this._flashMessengerApi.addFlashMessage({content:t,type:c.error,isCloseable:!0,timeout:0},this._flashMessengerContainerName)},this._onFormInvalid=()=>{this._flashMessengerApi.addFlashMessage({content:this._translationApi.translate("Fill in the required fields"),type:c.error,isCloseable:!0,timeout:0},this._flashMessengerContainerName)};const e=this.getApiSync(m.api);this._newsletterFormUrl=new A(e),this._flashMessengerApi=this.getApiSync(p.api),this._translationApi=this.getApiSync(d.api)}static{this.moduleName=n.component}connectedCallback(){super.connectedCallback(),this._flashMessengerContainerName=`${P}-${this.moduleInstanceId}`}render(){return y` 2 <form-connector 3 ${R(this._formConnectorRef)} 4 @submit=${this._onSubmit} 5 @submitError=${this._onSubmitError} 6 @formInvalid=${this._onFormInvalid} 7 id="newsletter-form-connector-${this.moduleInstanceId}" 8 submit-strategy="frontApi" 9 > 10 <form 11 id="newsletter-form-${this.moduleInstanceId}" 12 action="${this._newsletterFormUrl.getNewsletterUrl()}" 13 method="post" 14 > 15 ${this.getSlot("form")} 16 </form> 17 </form-connector> 18 `}}$([I({type:Number,attribute:"module-instance-id"})],_.prototype,"moduleInstanceId");class L extends E{constructor({newsletterFormService:e}){super(),this.moduleName=n.api,this.#e=e}#e;subscribe(e){return this.#e.subscribe(e)}}class B extends N{constructor({httpApi:e,settingsApi:s,localeOptions:r}){super(e),this.moduleName=n.httpApi,this.#e=new A(s,r)}#e;subscribe(e){const s=this.#e.getNewsletterUrl();return this.fetch({url:s,data:{email:e},method:g.post},{decorators:[h.status,h.flashMessages]})}}class G extends f{#e;#s;#t;constructor({httpApi:e,settingsApi:s,localeOptions:r,flashMessengerApi:t,translationsApi:i}){super(),this.#e=new B({httpApi:e,settingsApi:s,localeOptions:r}),this.#s=t,this.#t=i}async subscribe(e){try{const{data:s}=await this.#e.subscribe(e).response,{flashMessages:r,status:t}=s;return this._displayFlashMessages(r),t}catch(s){return this._displayErrorFlashMessages(s),M.failed}}_displayFlashMessages(e){e&&this.#s.parseAndAddFlashMessages(e,l)}_displayErrorFlashMessages(e){const s=e.request,r=u.getMessageBasedOnStatusCode(s.status,this.#t);this.#s.addFlashMessage({content:r,type:c.error,isCloseable:!1},l)}}class J extends F{static{this.featureName=n.feature}static{this.dependencies=[T.feature]}init(){const e=this.getApiSync(b),s=this.getApiSync(m.api),r=this.getApiSync(p.api),t=this.getApiSync(d.api),i=new G({httpApi:e,settingsApi:s,flashMessengerApi:r,translationsApi:t}),o=new L({newsletterFormService:i});return{cores:[{type:C,instance:[_]},{type:w.api,instance:[o]}]}}}export{J as NewsletterFormInitializer};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.