{"version":3,"sources":["webpack:///./Source/Scripts/helper.ts","webpack:///./Source/Scripts/app.register.ts","webpack:///./Source/Scripts/register.ts"],"names":["getUrlParameter","sParam","sUrlVariables","window","location","search","substring","split","i","length","sParameterName","isNullOrEmpty","jQueryElement","res","undefined","isStringNullOrEmpty","obj","toString","isObjectNullOrEmpty","setupCheckboxClickEvent","$","on","event","currentTarget","next","trigger","applyCustomValidationToForm","formSelector","data","validator","unobtrusive","parse","setupMustBeTrueValidation","addMethod","value","element","params","checked","adapters","add","options","rules","messages","message","setupValidationOnFocusOut","formValidator","validateFormFields","this","Helper","Register","init","validate","setupClickEvents","validateTermsAcceptedOnClick","handleSubmit","_that","checkForm","customerId","val","preventDefault","setVerifyCustomerIdInProgress","ajax","type","url","cache","contentType","done","response","isValid","item1","errorMessage","item2","showCustomerIdValidationError","fail","xhr","ajaxOptions","thrownError","then","off","submit","checkboxTarget","closest","find","inProgress","verifyCustomerIdInProgress","show","disableSubmitBtn","hide","enableSubmitBtn","removeAttr","attr","errors","CustomerNo","showErrors"],"mappings":"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","file":"register.min.js","sourcesContent":["export class Helper {\r\n /**\r\n * gets the corresponding url parameter value\r\n * @param sParam the url parameter name\r\n */\r\n static getUrlParameter(sParam) {\r\n let sPageUrl: string = window.location.search.substring(1);\r\n var sUrlVariables: string[] = sPageUrl.split('&');\r\n for (var i = 0; i < sUrlVariables.length; i++) {\r\n var sParameterName = sUrlVariables[i].split('=');\r\n if (sParameterName[0] == sParam) {\r\n return sParameterName[1];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * checks whether the jquery element is null or empty\r\n * @param jQueryElement the jquery element\r\n */\r\n static isNullOrEmpty(jQueryElement: JQuery): boolean {\r\n var res = true;\r\n\r\n if (jQueryElement !== null && jQueryElement[0] !== undefined && jQueryElement.length > 0) {\r\n res = false;\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * checks whether the string is null or empty\r\n * @param string the string\r\n */\r\n static isStringNullOrEmpty(obj: string): boolean {\r\n let res: boolean = true;\r\n\r\n if (obj !== null && obj !== undefined && obj.toString().length > 0) {\r\n res = false;\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * checks whether the object is null or empty\r\n * @param object the object\r\n */\r\n static isObjectNullOrEmpty(obj: any): boolean {\r\n var res = true;\r\n\r\n if (obj !== null && obj !== undefined) {\r\n res = false;\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * setup click events for checkbox\r\n */\r\n static setupCheckboxClickEvent(): void {\r\n $('.checkbox-container .checkmark').on('click', (event: JQueryEventObject) => {\r\n $(event.currentTarget).next(\"label\").trigger(\"click\");\r\n })\r\n }\r\n\r\n /**\r\n * remove the already added validator object and reparse document\r\n * https://stackoverflow.com/questions/17805749/jquery-unobtrusive-custom-adapter-and-method-in-jsfiddle\r\n * @param formSelector the jQuery selector for the form in question\r\n */\r\n static applyCustomValidationToForm(formSelector: string): void {\r\n // reset validator\r\n $(formSelector).data('validator', null);\r\n\r\n // parse form data\r\n $.validator.unobtrusive.parse($(formSelector));\r\n }\r\n\r\n /**\r\n * setup custom validation 'mustbetrue'\r\n */\r\n static setupMustBeTrueValidation(): void {\r\n $.validator.addMethod('mustbetrue', (value: any, element: any, params: any) => {\r\n return element.checked;\r\n });\r\n\r\n $.validator.unobtrusive.adapters.add('mustbetrue', [], (options: any) => {\r\n options.rules['mustbetrue'] = {};\r\n options.messages['mustbetrue'] = options.message;\r\n });\r\n }\r\n\r\n /**\r\n * validate input fields on focusout event\r\n * @param formValidator the form validator object\r\n */\r\n static setupValidationOnFocusOut(formValidator: JQueryValidation.Validator): void {\r\n $('.input-and-validation-group').on('focusout', 'input', (event: JQueryEventObject) => this.validateFormFields(event, formValidator));\r\n }\r\n\r\n /**\r\n * validate form fields\r\n * @param event jQuery the event\r\n * @param formValidator the form validator object\r\n */\r\n static validateFormFields(event: JQueryEventObject, formValidator: JQueryValidation.Validator) {\r\n let currentTarget: JQuery = $(event.currentTarget);\r\n\r\n if (!this.isNullOrEmpty(currentTarget)) {\r\n if (formValidator !== undefined) {\r\n (formValidator).element(currentTarget);\r\n }\r\n }\r\n }\r\n}","import * as $ from 'jquery';\r\nimport jqueryValidation from 'jquery-validation'\r\nimport 'jquery-validation/dist/localization/messages_da'\r\nimport 'jquery-validation-unobtrusive'\r\nimport { Register } from \"./register\";\r\n\r\n/* Global inits */\r\n$(function () {\r\n Register.init();\r\n});","import * as $ from 'jquery';\r\nimport { Helper } from \"./helper\";\r\n\r\nexport class Register {\r\n\r\n static formSelector: string = 'form';\r\n static formValidator: JQueryValidation.Validator;\r\n static verifyCustomerIdInProgress: boolean = false;\r\n\r\n /**\r\n * init\r\n */\r\n static init(): void {\r\n // setup custom validation\r\n Helper.setupMustBeTrueValidation();\r\n Helper.applyCustomValidationToForm(this.formSelector); // must be called _after_ all custom validation has been set up\r\n\r\n // set validator object\r\n this.formValidator = $(this.formSelector).validate(); // must be set _after_ Helper.applyCustomValidationToForm()\r\n\r\n // click events\r\n this.setupClickEvents();\r\n\r\n // setup form field validation on focusout event\r\n Helper.setupValidationOnFocusOut(this.formValidator);\r\n }\r\n\r\n /**\r\n * setup click events\r\n */\r\n static setupClickEvents(): void {\r\n Helper.setupCheckboxClickEvent();\r\n\r\n // validate ProfileTermsAccepted on click\r\n $('#ProfileTermsAccepted, .termsaccepted .checkmark').on('click', (event: JQueryEventObject) => this.validateTermsAcceptedOnClick(event));\r\n\r\n // setup form submit event\r\n $(this.formSelector).on('submit', (event: JQueryEventObject) => this.handleSubmit(event));\r\n }\r\n\r\n /**\r\n * handle form submit event\r\n * @param event the event\r\n */\r\n static handleSubmit(event: JQueryEventObject): void {\r\n let _that: any = this;\r\n\r\n // 'mustbetrue' custom validation\r\n if (!this.formValidator !== undefined) {\r\n (this.formValidator).element($(\"#ProfileTermsAccepted\"));\r\n }\r\n\r\n // check if form is valid\r\n if (this.formValidator.checkForm()) {\r\n // validate customer id\r\n let customerId: string = $(\"#CustomerNo\").val();\r\n\r\n if (!Helper.isStringNullOrEmpty(customerId)) {\r\n event.preventDefault();\r\n let doSubmit: boolean = false;\r\n this.setVerifyCustomerIdInProgress(true);\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: \"/api/User/validateCustomerId?customerId=\" + customerId,\r\n cache: false,\r\n contentType: \"application/json\"\r\n }).done((response: any): void => {\r\n let isValid: boolean = response.item1;\r\n let errorMessage: string = response.item2;\r\n\r\n if (!isValid) {\r\n if (Helper.isStringNullOrEmpty(errorMessage)) {\r\n // an error occured while validating customerId => continue post\r\n doSubmit = true;\r\n }\r\n else {\r\n _that.showCustomerIdValidationError(errorMessage);\r\n _that.setVerifyCustomerIdInProgress(false);\r\n }\r\n }\r\n else {\r\n doSubmit = true;\r\n }\r\n }).fail((xhr: JQueryXHR, ajaxOptions: string, thrownError: string): void => {\r\n // an error occured - submit and validate server side\r\n doSubmit = true;\r\n }).then(() => {\r\n if (doSubmit) {\r\n $(\"form\").off('submit').submit();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * validate ProfileTermsAccepted on click\r\n * @param event the event object\r\n */\r\n static validateTermsAcceptedOnClick(event: JQueryEventObject): void {\r\n let currentTarget: JQuery = $(event.currentTarget);\r\n\r\n if (!Helper.isNullOrEmpty(currentTarget)) {\r\n let checkboxTarget: JQuery = currentTarget.closest(\".checkbox-container\").find(\"#ProfileTermsAccepted\");\r\n\r\n if (!Helper.isNullOrEmpty(checkboxTarget) && this.formValidator !== undefined) {\r\n (this.formValidator).element(checkboxTarget);\r\n }\r\n }\r\n }\r\n\r\n private static setVerifyCustomerIdInProgress(inProgress: boolean) {\r\n this.verifyCustomerIdInProgress = inProgress;\r\n\r\n if (inProgress) {\r\n $(\".loader\").show();\r\n this.disableSubmitBtn();\r\n }\r\n else {\r\n $(\".loader\").hide();\r\n this.enableSubmitBtn();\r\n }\r\n }\r\n\r\n private static enableSubmitBtn(): void {\r\n $(\"button[type=submit]\").removeAttr(\"disabled\");\r\n }\r\n\r\n private static disableSubmitBtn(): void {\r\n $(\"button[type=submit]\").attr(\"disabled\", \"disabled\");\r\n }\r\n\r\n private static showCustomerIdValidationError(errorMessage: string) {\r\n let errors: any = { CustomerNo: errorMessage };\r\n this.formValidator.showErrors(errors); \r\n }\r\n}"],"sourceRoot":""}