rndefine("#RNMainEmailField",["#RNMainCore/EventManager","#RNMainFormBuilderCore/FieldBase.Options","#RNMainFormBuilderCore/FieldWithPrice.Model","lit","#RNMainCore/Sanitizer","lit/decorators","#RNMainFormBuilderCore/FieldBase","#RNMainFormBuilderCore/FieldWithPrice","lit-html/directives/live.js","#RNMainCore/StoreBase","#RNMainFormBuilderCore/FieldWithPrice.Options","#RNMainFormBuilderCore/FormBuilder.Options"],(function(e,i,t,r,l,a,s,n,o,d,u,h){"use strict";class m extends t.FieldWithPriceModel{InternalSerialize(e){super.InternalSerialize(e),e.Value=this.GetValue()}GetStoresInformation(){return!0}GetIsUsed(){return!!super.GetIsUsed()&&""!=this.Text.trim()}get IsReadonly(){return!!this.Options.ReadOnly||super.IsReadonly}GetText(){return this.Text}GetValue(){return this.GetIsVisible()?this.Text:""}InitializeStartingValues(){this.Text=this.GetPreviousDataProperty("Value",this.Options.DefaultText)}GetDynamicFieldNames(){return["FBEmailField"]}SetText(e){this.Text=l.Sanitizer.SanitizeString(e),""!=this.Text.trim()&&this.RemoveError("required"),this.FireValueChanged()}async Validate(){return!!await super.Validate()&&(""==this.Text.trim()||this.ValidateEmail())}ValidateEmail(){return""==this.Text||this.EmailIsValid()?(this.RemoveError("invalid_email"),!0):(this.AddError("invalid_email",RNTranslate("Invalid Email")),!1)}EmailIsValid(){let e=this.Text;return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())}render(){return r.html`<rn-email-field .model="${this}"></rn-email-field>`}}var p;let c=a.customElement("rn-email-field")(p=class extends n.FieldWithPrice{static get properties(){return s.FieldBase.properties}SubRender(){return r.html` <div class={'rnTextFieldInput '+ additionalClassNames+(this.Model.IsFocused?' RNFocus':'')}> <input ?readonly=${this.model.IsReadonly} @focus=${()=>{this.model.IsFocused=!0,this.model.Refresh()}} @blur=${()=>{this.model.IsFocused=!1,this.model.ValidateEmail(),this.model.Refresh()}} class='rnInputPrice' placeholder=${this.model.Options.Placeholder} style="width:100%" type='email' .value=${o.live(this.model.Text)} @input=${e=>this.OnChange(e)}/> </div> `}OnChange(e){this.model.SetText(e.target.value)}})||p;var F,E,T;let x=(F=d.StoreDataType(Object),E=class extends u.FieldWithPriceOptions{constructor(...e){super(...e),babelHelpers.initializerDefineProperty(this,"Icon",T,this)}LoadDefaultValues(){super.LoadDefaultValues(),this.ReadOnly=!1,this.Type=i.FieldTypeEnum.Email,this.Label="Email",this.Icon=(new h.IconOptions).Merge(),this.Placeholder="",this.DefaultText=""}},T=babelHelpers.applyDecoratedDescriptor(E.prototype,"Icon",[F],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E);exports.EmailFieldModel=m,exports.EmailField=c,exports.EmailFieldOptions=x,e.EventManager.Subscribe("GetFieldOptions",(e=>{if(e==i.FieldTypeEnum.Email)return new x})),e.EventManager.Subscribe("GetFieldModel",(e=>{if(e.Options.Type==i.FieldTypeEnum.Email)return new m(e.Options,e.Parent)}))}));