{"version":3,"sources":["../ts/modules/form/dutch-sml-seed.ts"],"names":["Object","assign","kv","insertMessages","SeedFormViewModel","constructor","this","salutation","knockout_1","observable","firstName","extend","required","lastName","title","email","emailConfirm","emailMatch","phone","contactName","itmfname","itmlname","itmemail","itmemailConfirm","receiveUpdates","optIn","certifyEducator","terms","quantity","busy","context","ajax_1","AjaxContext","directoremail","directoremailConfirm","validation","fixTranslation","submit","errors","viewmodel","viewmodels","validatedObservable","isValid","showAllMessages","splice","length","Array","from","Set","await","result","Promise","resolve","ajax","localization_1","currentLanguage","type","contentType","data","FormData","document","getElementById","processData","traditional","success","alert","message","Error","redirect","location","href","ex","$","each","i","form","$form","school","CRMSchoolLookUp_1","CRMSchoolViewModel","attr","JSON","parse","freeProduct","viewModel","push","applyBindings","on"],"mappings":"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","file":"dutch-sml-seed.js","sourcesContent":["import 'knockout.extensions';\r\nimport * as kv from 'knockout.validation';\r\n\r\nimport * as $ from 'jquery';\r\nimport { applyBindings, validation, observable,observableArray, validatedObservable, computed, pureComputed } from 'knockout';\r\nimport { AjaxContext } from 'ajax';\r\nimport { CRMSchoolViewModel } from 'CRMSchoolLookUp';\r\nimport { translate, currentLanguage } from 'localization';\r\n\r\nObject.assign( kv[ 'configuration' ], { insertMessages: true } );\r\n\r\nimport { ISubmitResponse } from './ISubmitResponse';\r\n\r\nclass SeedFormViewModel {\r\n\tconstructor() {\r\n\t\tvalidation.fixTranslation( this );\r\n\t}\t\r\n \r\n\tpublic salutation = observable( '' );\r\n\tpublic firstName = observable( '' ).extend( { required: true } );\r\n\tpublic lastName = observable( '' ).extend( { required: true } );\r\n\tpublic title = observable( '' );\t\r\n\tpublic email = observable( '' ).extend( { required: true, email: true } );\t\r\n\tpublic emailConfirm = observable( '' ).extend( { required: true, emailMatch: this.email } );\r\n\tpublic phone = observable( '' ).extend( { required: true } );\r\n\tpublic contactName = observable( '' ).extend( { required: true } );\r\n\tpublic itmfname = observable( '' ).extend( { required: true } );\r\n\tpublic itmlname = observable( '' ).extend( { required: true } );\r\n\tpublic itmemail = observable( '' ).extend( { required: true, email:true } );\t\r\n\tpublic itmemailConfirm = observable( '' ).extend( { required: true, emailMatch: this.itmemail } );\r\n\tpublic receiveUpdates = observable( false );\r\n\tpublic optIn = observable( false );\r\n\tpublic certifyEducator = observable( '' ).extend( { required: true } );\r\n public terms = observable( '' ).extend( { terms: true } );\r\n\tpublic quantity = observable( '' ).extend( { required: true } );\r\n\tpublic busy = observable( false );\r\n\tpublic context = new AjaxContext;\r\n\tpublic directoremail = observable( '' ).extend( { required: true, email:true } );\t\r\n\tpublic directoremailConfirm = observable( '' ).extend( { required: true, emailMatch: this.directoremail } );\r\n\t\r\n\r\n\tpublic async submit() {\r\n\t\ttry {\r\n\t\t\tthis.busy( true );\r\n\t\t\tawait validate();\r\n\t\t\tconst { context } = this;\r\n\t\t\tconst result = await Promise.resolve( context.ajax<ISubmitResponse>( `/${currentLanguage}/services/form/dutch-seed-sml`, {\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\tcontentType: false,\r\n\t\t\t\tdata: new FormData( document.getElementById( 'aspnetForm' ) as HTMLFormElement ),\r\n\t\t\t\tprocessData: false,\r\n\t\t\t\ttraditional: false\r\n\t\t\t} ) );\r\n\t\t\tif( !result.success ) {\r\n\t\t\t\talert(result.message);\r\n\t\t\t\tthrow new Error( 'Submission failed' );\r\n\t\t\t}\r\n\t\t\tif( result.redirect ) {\r\n\t\t\t\tlocation.href = result.redirect;\r\n\t\t\t}\r\n\t\t} catch( ex ) {\r\n\t\t\tthis.busy( false );\r\n\t\t\tthrow ex;\r\n\t\t} finally {\r\n\t\t\t//this.busy( false );\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst viewmodels = [];\r\nasync function validate() {\r\n\tconst errors = [];\r\n\tfor( const viewmodel of viewmodels ) {\r\n\t\tconst validation = validatedObservable( viewmodel ) as KnockoutValidationGroup;\r\n\t\tif( !validation.isValid() ) {\r\n\t\t\tvalidation.errors.showAllMessages();\r\n\t\t\terrors.splice( errors.length, 0, ...validation.errors() );\r\n\t\t}\r\n\t}\r\n\tif( errors.length ) {\r\n\t\tthrow Array.from( new Set<string>( errors ) );\r\n\t}\r\n}\r\n\r\n$( () => {\r\n\t$( '.etfrenchvppform' ).each( ( i, form ) => {\r\n\t\tconst $form = $( form ),\r\n\t\t\tschool = new CRMSchoolViewModel($form.attr( 'data-country' ), JSON.parse( $form.attr( 'data-schooltypes' )) || [], JSON.parse( $form.attr( 'data-regions' )) || [] ),\r\n\t\t\tfreeProduct = new SeedFormViewModel,\r\n\t\t\tviewModel = {\r\n\t\t\t\tschool,\r\n\t\t\t\tfreeProduct\r\n\t\t\t};\r\n\t\tviewmodels.push(school);\r\n\t\tviewmodels.push(freeProduct);\r\n\t\tapplyBindings( validatedObservable( viewModel ) );\r\n\t\t$( '#aspnetForm' ).on( 'submit', () => false );\r\n\t} );\r\n} );\r\n\r\n"]}