define("subscribeForm",["core","react","lodash","utils","santaProps","formCommon","reactDOM"],function(a,b,c,d,e,f,g){"use strict";var h="USA";var i=a.compMixins,j=d.validationUtils,k=d.countryCodes,l={};var m=[{skinPart:"firstName",inputSkinPart:"firstName"},{skinPart:"lastName",inputSkinPart:"lastName"},{skinPart:"email",inputSkinPart:"email"},{skinPart:"phone",inputSkinPart:"phoneNumber",children:["countryCodes","phoneNumber"],validator:z}];c.forEach(k.countries,function(a,b){if(a.phoneCode){l[b]=a}});function n(a){return{className:this.classSet({hidden:!this.props.compProp["hidden"+d.stringUtils.capitalize(a.skinPart)+"Field"]})}}function o(a){return{optional:true,children:[this.props.compData[a.skinPart+"FieldLabel"]]}}function p(a){var b=a.target.id.replace(this.props.id,"").replace("Field","").replace("Number","");this.setState(c.assign(this.state[b],{value:a.target.value}))}function q(a){return{parentConst:b.DOM.input,onFocus:c.bind(w,this),onChange:c.bind(p,this),onInput:a.validator,placeholder:this.props.compData[a.skinPart+"FieldLabel"],name:a.skinPart,value:this.state[a.skinPart].value,className:this.classSet({error:this.state[a.skinPart]&&this.state[a.skinPart].error})}}function r(){return c.map(m,function(a){return a.skinPart+"Row"})}function s(){return c.map(m,function(a){return a.skinPart+"FieldLabel"})}function t(){return c.map(m,function(a){return a.inputSkinPart+"Field"})}function u(){var a=this.getFromExports("successMessageOutside"),c=this.state.notifications,d={error:c.error,success:!c.error&&c.message};return a?{message:{parentConst:b.DOM.div,children:c.message,className:this.classSet(d)}}:{notifications:{children:c.message,className:this.classSet(d)}}}function v(){return{formTitle:{parentConst:b.DOM.h1,children:this.props.compData.subscribeFormTitle}}}function w(a){var b=a.target.getAttribute("name");if(this.state[b].error){var c={notifications:{message:"",error:false}};c[b]={error:false,value:this.state[b].value};this.setState(c)}}function x(a){return{countryCodesField:{value:a,children:c.map(l,function(a){return b.DOM.option({value:a.phoneCode},a.countryName+" "+a.phoneCode)}),onChange:c.bind(y,this)},selected:{value:a,readOnly:true}}}function y(a){this.setState({countryCode:a.target.value})}function z(a){var b=a.target;b.value=b.value.replace(/[^0-9\-]/g,"");b.value=b.value.substring(0,Math.min(25,b.value.length))}var A={displayName:"SubscribeForm",mixins:[f.formMixin,i.skinInfo],propTypes:{id:e.Types.Component.id.isRequired,compData:e.Types.Component.compData.isRequired,compProp:e.Types.Component.compProp.isRequired,geo:e.Types.RendererModel.geo},statics:{useSantaTypes:true},getFormInitialState:function(){var a=this.props.geo||h;var b=l[a]||l[h];var d={notifications:{message:"",error:false},countryCode:b.phoneCode,mailSent:false};c.forEach(m,function(a){d[a.skinPart]={error:false}});return d},onMailJustSent:function(a){a.target.removeEventListener("click",this.onMailJustSent);this.setState({mailSent:false,message:{message:"",error:false}})},isFieldEmpty:function(a){return!a.value||!a.value.replace(/^\s+|\s+$/g,"")||c.includes(a.className,"isPlaceholder")},getVisibleFieldsSpecs:function(){return c(this.props.compProp).pick(function(a,b){return a&&c.startsWith(b,"hidden")}).transform(function(a,b,d){var e=d.replace("hidden","");var f=c.camelCase(e);a[f]={isRequire:this.props.compProp["required"+e],fields:this.getInputsFromSkinPart(f)}},{},this).value()},getInputsFromSkinPart:function(a){var b=c.find(m,function(b){return b.skinPart+"Field"===a});if(b.children){return c.map(b.children,function(a){return g.findDOMNode(this.refs[a+"Field"])},this)}return[g.findDOMNode(this.refs[b.skinPart+"Field"])]},getCleanFormState:function(){var a={};c.forEach(m,function(b){a[b.skinPart]={error:false,value:this.state[b.skinPart].value}},this);a.notifications={error:false,message:""};return a},getErrorFormState:function(a,b){var d={notifications:{message:b,error:true}};c.forEach(a,function(a){d[a]={error:true,value:this.state[a].value}},this);return d},createSkinPropertiesContainer:function(){return{wrapper:{parentConst:b.DOM.div,onClick:this.state.mailSent?this.onMailJustSent:c.noop}}},getFormInputs:function(){return m},getActivityName:function(){return"SubscribeFormActivity"},getFormFields:function(){return c.reduce(m,function(a,b){var d="hidden"+b.skinPart.replace(/[a-z]/,function(a){return a.toUpperCase()})+"Field";if(this.props.compProp[d]){var e=g.findDOMNode(this.refs[b.skinPart+"FieldLabel"]).innerHTML;if(!b.children){a[e]=g.findDOMNode(this.refs[b.skinPart+"Field"]).value}else{a[e]=c.reduce(b.children,function(a,b){return a+g.findDOMNode(this.refs[b+"Field"]).value},"",this)}}return a},{},this)},getFieldsForActivityReporting:function(){var a={email:this.state.email.value};if(this.state.firstName.value){a.first=this.state.firstName.value}if(this.state.lastName.value){a.last=this.state.lastName.value}if(this.state.phone.value){a.phone=this.state.countryCode+""+this.state.phone.value}return a},getFieldLabels:function(){return{}},isFormValid:function(){var a=true,b=[],d={};if(!j.isValidEmail((this.state.email.value||"").replace(/^\s+|\s+$/g,""))){d=this.getErrorFormState(["email"],this.props.compData.errorMessage);a=false}else{c.forEach(this.getVisibleFieldsSpecs(),function(a,c){if(a.isRequire){for(var d=0,e=a.fields.length;d