{{#vendorExtensions.x-inputModel}} 
{{#supportsRuleValidator}}
public static LABELS = {
{{#vars}}
{{#vendorExtensions.x-display-name}}
    "{{name}}": "{{vendorExtensions.x-display-name}}",
{{/vendorExtensions.x-display-name}}
{{/vars}}
}
{{/supportsRuleValidator}}
{{#supportsRuleValidator}}
public static VALIDATORS = {
{{#vars}}
'{{name}}': [

{{#vendorExtensions.x-range}}
{{#allowableValues}}
{{#max}}
// min-max-range
    {{#vendorExtensions.x-required}} { type: "number", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
    { type: "number",  min: {{min}}, max: {{max}}, trigger: 'blur', message: "{{vendorExtensions.x-range}}"},
{{/max}}
{{^max}}
{{#min}}
// only-min-range
    {{#vendorExtensions.x-required}} { type: "number", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
    { type: "number", min: {{min}}, trigger: 'blur', message: "{{vendorExtensions.x-range}}"},
{{/min}} 
{{/max}}
{{/allowableValues}}
{{/vendorExtensions.x-range}}
{{#vendorExtensions.x-string-length}}
// min-max-length
    {{#vendorExtensions.x-required}} { type: "string", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
    { type: "string", min: {{minLength}}, max: {{maxLength}}, trigger: 'blur', message: "{{vendorExtensions.x-string-length}}"},
{{/vendorExtensions.x-string-length}}
{{#vendorExtensions.x-max-length}}
// only-max-length 
    {{#vendorExtensions.x-required}} { type: "string", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
    { type: "string", max: {{vendorExtensions.x-string-length-max}}, trigger: 'blur', message: "{{vendorExtensions.x-max-length}}"},
{{/vendorExtensions.x-max-length}}
{{#vendorExtensions.x-min-length}}
// only-min-length
    {{#vendorExtensions.x-required}} { type: "string", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
    { type: "string", min: {{vendorExtensions.x-string-length-min}}, trigger: 'blur', message: "{{vendorExtensions.x-min-length}}"},
{{/vendorExtensions.x-min-length}}
{{#vendorExtensions.x-regex}}
{{#pattern}}
// regex-pattern
    { type: "string", pattern: {{{pattern}}}, trigger: 'blur', message: "{{vendorExtensions.x-regex}}"},
{{/pattern}}
{{/vendorExtensions.x-regex}}
{{#vendorExtensions.x-is-input-model}}
{{^vendorExtensions.x-is-self-referencing}}
// is-input-model
    {{#vendorExtensions.x-required}} { type: "object", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
  { type: "object", fields: {{vendorExtensions.x-is-input-model}}.VALIDATORS },
{{/vendorExtensions.x-is-self-referencing}}
{{/vendorExtensions.x-is-input-model}}
{{#vendorExtensions.x-is-input-model-collection}}
{{^vendorExtensions.x-is-self-referencing}}
// is-input-model
    {{#vendorExtensions.x-required}} { type: "array", required: true, trigger: 'blur', message: "{{vendorExtensions.x-required}}" }, {{/vendorExtensions.x-required}}
  { type: "array", defaultField: { type: "object", fields: {{vendorExtensions.x-is-input-model-collection}}.VALIDATORS} },
{{/vendorExtensions.x-is-self-referencing}}
{{/vendorExtensions.x-is-input-model-collection}}
{{#supportsCustomValidator}}
{{#vendorExtensions.x-element-count}}
    customValidators.elementCount?.(
"{{vendorExtensions.x-element-count}}",
{{vendorExtensions.x-element-count-min}},
{{vendorExtensions.x-element-count-max}},
    )
{{/vendorExtensions.x-element-count}}
{{#vendorExtensions.x-sensitive-word}}
    customValidators.sensitiveWord?.(
"{{vendorExtensions.x-sensitive-word}}"
    ),
{{/vendorExtensions.x-sensitive-word}}
{{#vendorExtensions.x-html-text-length}}
    customValidators.htmlTextLength?.(
"{{vendorExtensions.x-html-text-length}}",
{{vendorExtensions.x-html-text-length-min}},
{{vendorExtensions.x-html-text-length-max}}
    ),
{{/vendorExtensions.x-html-text-length}}
{{#vendorExtensions.x-birth-year}}
    customValidators.birthYear?.(
"{{vendorExtensions.x-birth-year}}",
{{vendorExtensions.x-birth-year-max-age}},
    ),
{{/vendorExtensions.x-birth-year}}
{{#vendorExtensions.x-enforce-true}}
    customValidators.enforceTrue?.(
"{{vendorExtensions.x-enforce-true}}"
    ),
{{/vendorExtensions.x-enforce-true}}
{{/supportsCustomValidator}}
].filter(r=>r) as ValidationRule[],
{{/vars}}
}
{{/supportsRuleValidator}}
{{/vendorExtensions.x-inputModel}} 