import 'angular'; import { ValidationConfig } from '../config/validationConfig'; declare const $: any; /** * for module init purposes. */ export class InitValidationModuleProvider { /** * inits validation module. */ public static init(config?: ValidationConfig): ValidationConfig { // init configuration this.configuration = new ValidationConfig(); this.configuration.fieldErrorHandler = (isError: boolean, element: any, fieldName: string) => { $(element.parents('form').find('[name="' + fieldName + '"]').parents('.field')[0]).toggleClass('error', isError); }; this.configuration.templateHtml = this.defaultTemplateHtml; this.configuration.summaryTemplateHtml = this.defaultSummaryTemplateHtml; this.configuration.validationTimoutMs = this.defaultTimeoutMs; if (config) { this.setIfDefined(this.configuration, 'fieldErrorHandler', config.fieldErrorHandler); this.setIfDefined(this.configuration, 'templateHtml', config.templateHtml); this.setIfDefined(this.configuration, 'validationTimoutMs', config.validationTimoutMs); this.setIfDefined(this.configuration, 'summaryTemplateHtml', config.summaryTemplateHtml); } return this.configuration; } private static configuration: ValidationConfig = InitValidationModuleProvider.init(); /** * sets value to object if value is defined. */ private static setIfDefined(obj: Object, fieldName: string, value: any): void { if (value !== undefined) { obj[fieldName] = value; } } /** * default timeout validation. */ private static get defaultTimeoutMs(): number { return 700; } /** * default messages template Html. */ private static get defaultTemplateHtml(): string { return `
`; } /** * default summary template Html. */ private static get defaultSummaryTemplateHtml(): string { return ``; } /** * gets the config. */ public static get config(): ValidationConfig { return this.configuration; } }