{"version":3,"file":"catrx-ui-form.mjs","sources":["../../../../projects/catrx/ui/form/src/common/cat-form-behavior.ts","../../../../projects/catrx/ui/form/src/builder/form-field.base.ts","../../../../projects/catrx/ui/form/src/builder/form-field-input.base.ts","../../../../projects/catrx/ui/form/src/builder/autocomplete/form-autocomplete.factory.ts","../../../../projects/catrx/ui/form/src/builder/checkbox/form-checkbox.factory.ts","../../../../projects/catrx/ui/form/src/validators/validation.helper.ts","../../../../projects/catrx/ui/form/src/validators/cat-cnpj.validator.ts","../../../../projects/catrx/ui/form/src/builder/cnpj/form-cnpj.factory.ts","../../../../projects/catrx/ui/form/src/validators/cat-cpf.validator.ts","../../../../projects/catrx/ui/form/src/builder/cpf/form-cpf.factory.ts","../../../../projects/catrx/ui/form/src/validators/cat-file.validator.ts","../../../../projects/catrx/ui/form/src/builder/csv/form-csv.factory.ts","../../../../projects/catrx/ui/form/src/common/cat-form-custom-field.ts","../../../../projects/catrx/ui/form/src/builder/customField/form-custom-field.factory.ts","../../../../projects/catrx/ui/form/src/validators/cat-date-min.validator.ts","../../../../projects/catrx/ui/form/src/validators/cat-date-max.validator.ts","../../../../projects/catrx/ui/form/src/builder/datetime/form-datetime.factory.ts","../../../../projects/catrx/ui/form/src/builder/email/form-email.factory.ts","../../../../projects/catrx/ui/form/src/builder/file/form-file.factory.ts","../../../../projects/catrx/ui/form/src/builder/number/form-number.factory.ts","../../../../projects/catrx/ui/form/src/builder/radio/form-radio.factory.ts","../../../../projects/catrx/ui/form/src/builder/range/form-range.factory.ts","../../../../projects/catrx/ui/form/src/builder/search/form-search.factory.ts","../../../../projects/catrx/ui/form/src/builder/select/form-select.factory.ts","../../../../projects/catrx/ui/form/src/builder/text/form-text.factory.ts","../../../../projects/catrx/ui/form/src/builder/textarea/form-textarea.factory.ts","../../../../projects/catrx/ui/form/src/validators/cat-url.validator.ts","../../../../projects/catrx/ui/form/src/builder/url/form-url.factory.ts","../../../../projects/catrx/ui/form/src/builder/form-field.service.ts","../../../../projects/catrx/ui/form/src/builder/form.factory.ts","../../../../projects/catrx/ui/form/src/common/cat-form-custom-field.base.ts","../../../../projects/catrx/ui/form/src/common/cat-select-option.ts","../../../../projects/catrx/ui/form/src/cat-form-validator-response.factory.ts","../../../../projects/catrx/ui/form/src/cat-form.service.ts","../../../../projects/catrx/ui/form/src/common/cat-object.helper.ts","../../../../projects/catrx/ui/form/src/form.service.ts","../../../../projects/catrx/ui/form/src/components/field/components/field.base.ts","../../../../projects/catrx/ui/form/src/components/field/components/common/hint/hint.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/common/hint/hint.component.html","../../../../projects/catrx/ui/form/src/components/field/components/common/common-errors/common-errors.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/common/common-errors/common-errors.component.html","../../../../projects/catrx/ui/form/src/components/field/components/common/field-content/field-content.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/common/field-content/field-content.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-text/input-text.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-text/input-text.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-search/input-search.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-search/input-search.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-password/input-password.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-password/input-password.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-email/input-email.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-email/input-email.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-url/input-url.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-url/input-url.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-number/input-number.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-number/input-number.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-range/input-range.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-range/input-range.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-datetime/input-datetime.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-datetime/input-datetime.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-cpf/input-cpf.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-cpf/input-cpf.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-cnpj/input-cnpj.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-cnpj/input-cnpj.component.html","../../../../projects/catrx/ui/form/src/components/field/components/textarea/textarea.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/textarea/textarea.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-switcher/input-switcher.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-switcher/input-switcher.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-checkbox/input-checkbox.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-checkbox/input-checkbox.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-radio/input-radio.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-radio/input-radio.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-file/drag-drop.directive.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-file/input-file.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-file/input-file.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-select/input-select.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-select/input-select.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-autocomplete/input-autocomplete.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-autocomplete/input-autocomplete.component.html","../../../../projects/catrx/ui/form/src/components/field/components/input-custom-field/input-custom-field.component.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-custom-field/input-custom-field.component.html","../../../../projects/catrx/ui/form/src/components/field/field.component.ts","../../../../projects/catrx/ui/form/src/components/field/field.component.html","../../../../projects/catrx/ui/form/src/components/list-item/list-item.component.ts","../../../../projects/catrx/ui/form/src/components/list-item/list-item.component.html","../../../../projects/catrx/ui/form/src/components/fieldset/fieldset.component.ts","../../../../projects/catrx/ui/form/src/components/fieldset/fieldset.component.html","../../../../projects/catrx/ui/form/src/form.component.ts","../../../../projects/catrx/ui/form/src/form.component.html","../../../../projects/catrx/ui/form/src/components/field/components/common/hint/hint.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/common/common-errors/common-errors.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/common/field-content/field-content.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-select/input-select.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-text/input-text.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/textarea/textarea.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-number/input-number.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-datetime/input-datetime.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-cpf/input-cpf.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-cnpj/input-cnpj.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-email/input-email.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-url/input-url.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-checkbox/input-checkbox.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-radio/input-radio.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-file/input-file.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-autocomplete/input-autocomplete.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-password/input-password.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-search/input-search.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-custom-field/input-custom-field.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-switcher/input-switcher.module.ts","../../../../projects/catrx/ui/form/src/components/field/components/input-range/input-range.module.ts","../../../../projects/catrx/ui/form/src/components/field/field.module.ts","../../../../projects/catrx/ui/form/src/components/list-item/cat-list-item.module.ts","../../../../projects/catrx/ui/form/src/components/fieldset/cat-fieldset.module.ts","../../../../projects/catrx/ui/form/src/cat-form.module.ts","../../../../projects/catrx/ui/form/catrx-ui-form.ts"],"sourcesContent":["import { Subject } from 'rxjs/internal/Subject';\nimport {\n  CatFormBehaviorAsyncValidator,\n  CatFormBehaviorOptions,\n  CatFormBehaviorSetOptions,\n  CatFormBehaviorSetValue,\n  CatFormBehaviorValidator\n} from '../builder/form.interface';\nexport class CatFormBehavior {\n  private options: CatFormBehaviorOptions = {};\n\n  constructor(public subject: Subject<CatFormBehaviorOptions>) { }\n\n  public enableFields(fields: string[]) {\n    this.options.enableFields = fields;\n    return this;\n  }\n\n  public disableFields(fields: string[]) {\n    this.options.disableFields = fields;\n    return this;\n  }\n\n  public showFields(fields: string[]) {\n    this.options.showFields = fields;\n    return this;\n  }\n\n  public hideFields(fields: string[]) {\n    this.options.hideFields = fields;\n    return this;\n  }\n\n  public replaceValidators(validators: CatFormBehaviorValidator[]) {\n    this.options.replaceValidators = validators;\n    return this;\n  }\n\n  public replaceAsyncValidators(\n    asyncValidators: CatFormBehaviorAsyncValidator[]\n  ) {\n    this.options.replaceAsyncValidators = asyncValidators;\n    return this;\n  }\n\n  public setValues(values: CatFormBehaviorSetValue[]) {\n    this.options.setValues = values;\n    return this;\n  }\n\n  public setOptions(options: CatFormBehaviorSetOptions[]) {\n    this.options.setOptions = options;\n    return this;\n  }\n\n  public send() {\n    this.subject.next(this.options);\n  }\n\n  public clear() {\n    this.options = {};\n  }\n}\n","import {\n  CatFormFieldOptions,\n  CatFormFieldTemplateGridType,\n} from './form.interface';\nimport { CatFormBehavior } from '../common/cat-form-behavior';\n\nexport abstract class FormFieldBase<ConfigType extends CatFormFieldOptions> {\n  protected config: ConfigType = {} as ConfigType;\n\n  constructor(label: string) {\n    this.config.label = label;\n    this.config.grid = 12;\n  }\n\n  public grid(grid: CatFormFieldTemplateGridType) {\n    this.config.grid = grid;\n    return this;\n  }\n\n  public disabled(disabled = true) {\n    this.config.disabled = disabled;\n    return this;\n  }\n\n  public hidden(hidden = true) {\n    this.config.hidden = hidden;\n    return this;\n  }\n\n  public onChange(onChange: (value: any, behavior: CatFormBehavior, baseTree?: string) => void) {\n    this.config.onChange = onChange;\n    return this;\n  }\n\n  public generate() {\n    return this.config;\n  }\n\n  public setValue(value: any) {\n    this.config.value = value;\n    return this;\n  }\n}\n","import { CatFormFieldOptions } from './form.interface';\nimport { AsyncValidatorFn, ValidatorFn, Validators } from '@angular/forms';\nimport { FormFieldBase } from './form-field.base';\nimport { klArray } from '@koalarx/utils/operators/array';\n\nexport abstract class FormFieldInputBase<ConfigType extends CatFormFieldOptions> extends FormFieldBase<ConfigType> {\n  public setPlaceholder(text: string) {\n    this.config.placeholder = text;\n    return this;\n  }\n\n  public setRequired(required = true) {\n    this.config.required = required;\n    if (required) this.setValidators([Validators.required]);\n    return this;\n  }\n\n  public setHint(hint: string) {\n    this.config.hint = hint;\n    return this;\n  }\n\n  public focus(focus = true) {\n    this.config.focus = focus;\n    return this;\n  }\n\n  public setValidators(validators: ValidatorFn[]) {\n    if (!this.config.validators) this.config.validators = [];\n    this.config.validators = klArray(this.config.validators)\n      .merge(validators)\n      .getValue();\n    return this;\n  }\n\n  public setAsyncValidators(asyncValidators: AsyncValidatorFn[]) {\n    if (!this.config.asyncValidators) this.config.asyncValidators = [];\n    this.config.asyncValidators = klArray(this.config.asyncValidators)\n      .merge(asyncValidators)\n      .getValue();\n    return this;\n  }\n}\n","import { Observable } from 'rxjs/internal/Observable';\nimport { FormFieldInputBase } from '../form-field-input.base';\nimport {\n  CatFormListOptions,\n  CatFormAutocompleteOptions,\n  CatFormAutocompleteAddOption,\n} from '../form.interface';\n\nexport class FormAutocompleteFactory extends FormFieldInputBase<CatFormAutocompleteOptions> {\n  public setOptions(\n    options:\n      | Observable<CatFormListOptions[]>\n      | ((filter: any) => Observable<CatFormListOptions[]>)\n      | Array<CatFormListOptions>\n  ) {\n    this.config.options = options;\n    return this;\n  }\n\n  public setMultiple(multiple = true) {\n    this.config.multiple = multiple;\n    return this;\n  }\n\n  public setAddOption(options?: CatFormAutocompleteAddOption) {\n    this.config.add = true;\n    this.config.addOption = options;\n    return this;\n  }\n}\n","import { FormFieldBase } from '../form-field.base';\nimport { CatFormCheckboxOptions } from '../form.interface';\n\nexport class FormCheckboxFactory extends FormFieldBase<CatFormCheckboxOptions> {\n  constructor(label: string) {\n    super(label);\n    this.setValue(false);\n  }\n}\n","export class ValidationHelper {\n  public static validateCpf(value: string) {\n    function calcChecker1(digits: any) {\n      let sum = 0;\n\n      for (let j = 0; j < 9; ++j) {\n        sum += digits.toString().charAt(j) * (10 - j);\n      }\n\n      const lastSumChecker1 = sum % 11;\n\n      return lastSumChecker1 < 2 ? 0 : 11 - lastSumChecker1;\n    }\n\n    function calcChecker2(cpfWithChecker1: any) {\n      let sum = 0;\n\n      for (let k = 0; k < 10; ++k) {\n        sum += cpfWithChecker1.toString().charAt(k) * (11 - k);\n      }\n\n      const lastSumChecker2 = sum % 11;\n\n      return lastSumChecker2 < 2 ? 0 : 11 - lastSumChecker2;\n    }\n\n    const cleanCPF = value.match(/\\d/g).join('');\n    const firstNineDigits = cleanCPF.substring(0, 9);\n    const checker = cleanCPF.substring(9, 11);\n\n    if (cleanCPF.length !== 11) {\n      return false;\n    }\n\n    // Checking if all digits are equal\n    for (let i = 0; i < 10; i++) {\n      if ('' + firstNineDigits + checker === Array(12).join(`${i}`)) {\n        return false;\n      }\n    }\n\n    const checker1 = calcChecker1(firstNineDigits);\n    const checker2 = calcChecker2(firstNineDigits + '' + checker1);\n\n    return checker.toString() === checker1.toString() + checker2.toString();\n  }\n\n  public static validateCnpj(value: string) {\n    value = value.replace(/[^\\d]+/g, '');\n\n    if (value === '') {\n      return false;\n    }\n\n    if (value.length !== 14) {\n      return false;\n    }\n\n    // Elimina CNPJs invalidos conhecidos\n    if (\n      value === '00000000000000' ||\n      value === '11111111111111' ||\n      value === '22222222222222' ||\n      value === '33333333333333' ||\n      value === '44444444444444' ||\n      value === '55555555555555' ||\n      value === '66666666666666' ||\n      value === '77777777777777' ||\n      value === '88888888888888' ||\n      value === '99999999999999'\n    ) {\n      return false;\n    }\n\n    // Valida DVs\n    let tamanho = value.length - 2;\n    let numeros = value.substring(0, tamanho);\n    const digitos = value.substring(tamanho);\n    let soma = 0;\n    let pos = tamanho - 7;\n    for (let i = tamanho; i >= 1; i--) {\n      soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;\n      if (pos < 2) {\n        pos = 9;\n      }\n    }\n    let resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n    if (resultado !== parseInt(digitos.charAt(0), 10)) {\n      return false;\n    }\n\n    tamanho = tamanho + 1;\n    numeros = value.substring(0, tamanho);\n    soma = 0;\n    pos = tamanho - 7;\n    for (let i = tamanho; i >= 1; i--) {\n      soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;\n      if (pos < 2) {\n        pos = 9;\n      }\n    }\n    resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\n\n    return !(resultado !== parseInt(digitos.charAt(1), 10));\n  }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { ValidationHelper } from './validation.helper';\n\nexport function CatCnpjValidator(control: AbstractControl) {\n  if (control.value) {\n    if (\n      control.value.length > 14 &&\n      !ValidationHelper.validateCnpj(control.value)\n    ) {\n      return { cnpjInvalid: true };\n    }\n  }\n  return null;\n}\n","import { CatFormTextOptions } from '../form.interface';\nimport { CatCnpjValidator } from '../../validators/cat-cnpj.validator';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormCnpjFactory extends FormFieldInputBase<CatFormTextOptions> {\n  constructor(label: string) {\n    super(label);\n    this.setValidators([CatCnpjValidator]);\n  }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { ValidationHelper } from './validation.helper';\n\nexport function CatCpfValidator(control: AbstractControl) {\n  if (control.value) {\n    if (\n      control.value.length <= 14 &&\n      !ValidationHelper.validateCpf(control.value)\n    ) {\n      return { cpfInvalid: true };\n    }\n  }\n  return null;\n}\n","import { CatFormTextOptions } from '../form.interface';\nimport { CatCpfValidator } from '../../validators/cat-cpf.validator';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormCpfFactory extends FormFieldInputBase<CatFormTextOptions> {\n  constructor(label: string) {\n    super(label);\n    this.setValidators([CatCpfValidator]);\n  }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { CatFileInterface } from '@catrx/ui/utils';\n\nexport function CatFileValidator(validExtensions: string[]) {\n  return (control: AbstractControl) => {\n    const value: CatFileInterface[] | CatFileInterface | null =\n      control.value as CatFileInterface[] | null;\n    const files = value ? (Array.isArray(value) ? value : [value]) : null;\n\n    if (files) {\n      const invalid =\n        files.filter((file) => {\n          const fileExtension = file.filename.substring(\n            file.filename.lastIndexOf('.')\n          );\n          return (\n            validExtensions\n              .map((ext) => ext.toLowerCase())\n              .indexOf(fileExtension.toLowerCase()) < 0\n          );\n        }).length > 0;\n\n      if (invalid) {\n        return { fileInvalid: true };\n      }\n    }\n\n    return null;\n  };\n}\n","import { ValidatorFn, Validators } from '@angular/forms';\nimport { klArray } from '@koalarx/utils/operators/array';\nimport { CatFileValidator } from '../../validators/cat-file.validator';\nimport { FormFieldBase } from '../form-field.base';\nimport { CatCsvModel, CatFormCsvOptions } from '../form.interface';\n\nexport class FormCsvFactory extends FormFieldBase<CatFormCsvOptions> {\n  constructor(label: string) {\n    super(label);\n    this.config.accept = ['.csv'];\n    this.setValidators([CatFileValidator(this.config.accept)]);\n  }\n\n  public setRequired(required = true) {\n    this.config.required = required;\n    if (required) this.setValidators([Validators.required]);\n    return this;\n  }\n\n  public setModel(csvModel: CatCsvModel) {\n    this.config.csvModel = csvModel;\n    return this;\n  }\n\n  public setIcon(icon: string) {\n    this.config.icon = icon;\n    return this;\n  }\n\n  public setBtnText(text: string) {\n    this.config.btnText = text;\n    return this;\n  }\n\n  private setValidators(validators: ValidatorFn[]) {\n    if (!this.config.validators) this.config.validators = [];\n    this.config.validators = klArray(this.config.validators)\n      .merge(validators)\n      .getValue();\n    return this;\n  }\n}\n","import { Type } from '@angular/core';\nimport { CatDynamicComponent } from '@catrx/ui/dynamic-component';\nimport { CatFormCustomFieldOptions } from '../builder/form.interface';\n\nexport class CatFormCustomField<PropsType = any> extends CatDynamicComponent {\n  constructor(\n    component: Type<any>,\n    options: CatFormCustomFieldOptions<PropsType>\n  ) {\n    super(component, options);\n  }\n}\n","import { Type } from '@angular/core';\nimport { ValidatorFn, Validators, FormControl } from '@angular/forms';\nimport { klArray } from '@koalarx/utils/operators/array';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { CatFormCustomField } from '../../common/cat-form-custom-field';\nimport { FormFieldBase } from '../form-field.base';\nimport { CatFormCustomFieldOptions } from '../form.interface';\n\nexport class FormCustomFieldFactory<PropsType> extends FormFieldBase<\n  CatFormCustomFieldOptions<PropsType>\n> {\n  constructor(label: string, props: PropsType, component: Type<any>) {\n    super(label);\n    this.config.fieldProps = props;\n    this.config.fieldComponent = new CatFormCustomField(component, this.config);\n    this.config.control$ = new BehaviorSubject<FormControl>(null);\n  }\n\n  public setRequired(required = true) {\n    this.config.required = required;\n    if (required) this.setValidators([Validators.required]);\n    return this;\n  }\n\n  private setValidators(validators: ValidatorFn[]) {\n    if (!this.config.validators) this.config.validators = [];\n    this.config.validators = klArray(this.config.validators)\n      .merge(validators)\n      .getValue();\n    return this;\n  }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport function CatDateMinValidator(min: string) {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (control.value && typeof min === 'string') {\n      let value = control.value as string;\n      if (value.indexOf('-') <= 0) {\n        value = `2000-01-01 ${value}`;\n      }\n      if (min.indexOf('-') <= 0) {\n        min = `2000-01-01 ${min}`;\n      }\n\n      if (new Date(value) < new Date(min)) {\n        return { dateMin: { min } };\n      }\n    }\n    return null;\n  };\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nexport function CatDateMaxValidator(max: string) {\n  return (control: AbstractControl): ValidationErrors | null => {\n    if (control.value && typeof max === 'string') {\n      let value = control.value as string;\n      if (value.indexOf('-') <= 0) {\n        value = `2000-01-01 ${value}`;\n      }\n      if (max.indexOf('-') <= 0) {\n        max = `2000-01-01 ${max}`;\n      }\n\n      if (new Date(value) > new Date(max)) {\n        return { dateMax: { max } };\n      }\n    }\n    return null;\n  };\n}\n","import { CatFormDatetimeOptions } from '../form.interface';\nimport { CatDateMinValidator } from '../../validators/cat-date-min.validator';\nimport { CatDateMaxValidator } from '../../validators/cat-date-max.validator';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormDatetimeFactory extends FormFieldInputBase<CatFormDatetimeOptions> {\n  public setMin(min: string) {\n    this.config.min = min;\n    this.setValidators([CatDateMinValidator(min)]);\n    return this;\n  }\n\n  public setMax(max: string) {\n    this.config.max = max;\n    this.setValidators([CatDateMaxValidator(max)]);\n    return this;\n  }\n}\n","import { CatFormTextOptions } from '../form.interface';\nimport { Validators } from '@angular/forms';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormEmailFactory extends FormFieldInputBase<CatFormTextOptions> {\n  constructor(label: string) {\n    super(label);\n    this.setValidators([Validators.email]);\n  }\n}\n","import { ValidatorFn, Validators } from '@angular/forms';\nimport { klArray } from '@koalarx/utils/operators/array';\nimport { CatFileValidator } from '../../validators/cat-file.validator';\nimport { FormFieldBase } from '../form-field.base';\nimport { CatFormFileOptions } from '../form.interface';\nimport { Type } from '@angular/core';\n\nexport class FormFileFactory extends FormFieldBase<CatFormFileOptions> {\n  public setRequired(required = true) {\n    this.config.required = required;\n    if (required) this.setValidators([Validators.required]);\n    return this;\n  }\n\n  public setMultiple(multiple = true) {\n    this.config.multiple = multiple;\n    return this;\n  }\n\n  public setIcon(icon: string) {\n    this.config.icon = icon;\n    return this;\n  }\n\n  public setBtnText(text: string) {\n    this.config.btnText = text;\n    return this;\n  }\n\n  public setExtensionsAccept(extensions: string[]) {\n    this.config.accept = extensions;\n    this.setValidators([CatFileValidator(this.config.accept)]);\n    return this;\n  }\n\n  public hideSelectedFilesList(hide = true) {\n    this.config.hideSelectedFilesList = hide;\n    return this;\n  }\n\n  public setCustomSelectedFilesList(component: Type<any>) {\n    this.config.customSelectedFilesList = component;\n    return this;\n  }\n\n  private setValidators(validators: ValidatorFn[]) {\n    if (!this.config.validators) this.config.validators = [];\n    this.config.validators = klArray(this.config.validators)\n      .merge(validators)\n      .getValue();\n    return this;\n  }\n}\n","import { CatFormNumberOptions } from '../form.interface';\nimport { Validators } from '@angular/forms';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormNumberFactory extends FormFieldInputBase<CatFormNumberOptions> {\n  public setMin(min: number) {\n    this.config.min = min;\n    this.setValidators([Validators.min(min)]);\n    return this;\n  }\n\n  public setMax(max: number) {\n    this.config.max = max;\n    this.setValidators([Validators.max(max)]);\n    return this;\n  }\n}\n","import { FormFieldBase } from '../form-field.base';\nimport { CatFormListOptions, CatFormRadioOptions } from '../form.interface';\n\nexport class FormRadioFactory extends FormFieldBase<CatFormRadioOptions> {\n  public setOptions(options: CatFormListOptions[]) {\n    this.config.options = options;\n    return this;\n  }\n}\n","import { CatFormNumberOptions, CatFormRangeOptions } from '../form.interface';\nimport { Validators } from '@angular/forms';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormRangeFactory extends FormFieldInputBase<CatFormRangeOptions> {\n  public setRange(range: number) {\n    this.config.range = range;\n    return this;\n  }\n\n  public setMin(min: number) {\n    this.config.min = min;\n    this.setValidators([Validators.min(min)]);\n    return this;\n  }\n\n  public setMax(max: number) {\n    this.config.max = max;\n    this.setValidators([Validators.max(max)]);\n    return this;\n  }\n}\n","import { CatFormTextOptions } from '../form.interface';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormSearchFactory extends FormFieldInputBase<CatFormTextOptions> {}\n","import { Observable } from 'rxjs/internal/Observable';\nimport { FormFieldInputBase } from '../form-field-input.base';\nimport { CatFormListOptions, CatFormSelectOptions } from '../form.interface';\n\nexport class FormSelectFactory extends FormFieldInputBase<CatFormSelectOptions> {\n  public setOptions(\n    options: CatFormListOptions[] | Observable<CatFormListOptions[]>\n  ) {\n    this.config.options = Array.isArray(options)\n      ? new Observable((observe) => {\n          observe.next(options as []);\n          observe.complete();\n        })\n      : options;\n    return this;\n  }\n\n  public setMultiple(multiple = true) {\n    this.config.multiple = multiple;\n    return this;\n  }\n}\n","import { CatFormTextMaskConfig, CatFormTextOptions } from '../form.interface';\nimport { Validators } from '@angular/forms';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormTextFactory extends FormFieldInputBase<CatFormTextOptions> {\n  public setMask(mask: CatFormTextMaskConfig) {\n    this.config.mask = mask;\n    return this;\n  }\n\n  public setMinLength(minLength: number) {\n    this.config.minLength = minLength;\n    this.setValidators([Validators.minLength(minLength)]);\n    return this;\n  }\n\n  public setMaxLength(maxLength: number) {\n    this.config.maxLength = maxLength;\n    this.setValidators([Validators.maxLength(maxLength)]);\n    return this;\n  }\n}\n","import { Validators } from '@angular/forms';\nimport { FormFieldInputBase } from '../form-field-input.base';\nimport { CatFormTextareaOptions } from '../form.interface';\n\nexport class FormTextareaFactory extends FormFieldInputBase<CatFormTextareaOptions> {\n  public setRows(minRows: number, maxRows?: number) {\n    this.config.minRows = minRows;\n    this.config.maxRows = maxRows;\n    return this;\n  }\n\n  public setMinLength(minLength: number) {\n    this.config.minLength = minLength;\n    this.setValidators([Validators.minLength(minLength)]);\n    return this;\n  }\n\n  public setMaxLength(maxLength: number) {\n    this.config.maxLength = maxLength;\n    this.setValidators([Validators.maxLength(maxLength)]);\n    return this;\n  }\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function CatUrlValidator(control: AbstractControl) {\n  if (control.value) {\n    try {\n      Boolean(new URL(control.value));\n    } catch (e) {\n      return { url: true };\n    }\n  }\n  return null;\n}\n","import { CatFormTextOptions } from '../form.interface';\nimport { CatUrlValidator } from '../../validators/cat-url.validator';\nimport { FormFieldInputBase } from '../form-field-input.base';\n\nexport class FormUrlFactory extends FormFieldInputBase<CatFormTextOptions> {\n  constructor(label: string) {\n    super(label);\n    this.setValidators([CatUrlValidator]);\n  }\n}\n","import { Type } from '@angular/core';\nimport { FormAutocompleteFactory } from './autocomplete/form-autocomplete.factory';\nimport { FormCheckboxFactory } from './checkbox/form-checkbox.factory';\nimport { FormCnpjFactory } from './cnpj/form-cnpj.factory';\nimport { FormCpfFactory } from './cpf/form-cpf.factory';\nimport { FormCsvFactory } from './csv/form-csv.factory';\nimport { FormCustomFieldFactory } from './customField/form-custom-field.factory';\nimport { FormDatetimeFactory } from './datetime/form-datetime.factory';\nimport { FormEmailFactory } from './email/form-email.factory';\nimport { FormFileFactory } from './file/form-file.factory';\nimport { FormNumberFactory } from './number/form-number.factory';\nimport { FormRadioFactory } from './radio/form-radio.factory';\nimport { FormRangeFactory } from './range/form-range.factory';\nimport { FormSearchFactory } from './search/form-search.factory';\nimport { FormSelectFactory } from './select/form-select.factory';\nimport { FormTextFactory } from './text/form-text.factory';\nimport { FormTextareaFactory } from './textarea/form-textarea.factory';\nimport { FormUrlFactory } from './url/form-url.factory';\n\nexport class FormFieldService {\n  public text(label: string) {\n    return new FormTextFactory(label);\n  }\n\n  public search(label: string) {\n    return new FormSearchFactory(label);\n  }\n\n  public password(label: string) {\n    return new FormTextFactory(label);\n  }\n\n  public email(label: string) {\n    return new FormEmailFactory(label);\n  }\n\n  public url(label: string) {\n    return new FormUrlFactory(label);\n  }\n\n  public range(label: string) {\n    return new FormRangeFactory(label);\n  }\n\n  public number(label: string) {\n    return new FormNumberFactory(label);\n  }\n\n  public date(label: string) {\n    return new FormDatetimeFactory(label);\n  }\n\n  public textarea(label: string) {\n    return new FormTextareaFactory(label);\n  }\n\n  public cpf(label: string) {\n    return new FormCpfFactory(label);\n  }\n\n  public cnpj(label: string) {\n    return new FormCnpjFactory(label);\n  }\n\n  public checkbox(label: string) {\n    return new FormCheckboxFactory(label);\n  }\n\n  public radio(label: string) {\n    return new FormRadioFactory(label);\n  }\n\n  public file(label: string) {\n    return new FormFileFactory(label);\n  }\n\n  public csv(label: string) {\n    return new FormCsvFactory(label);\n  }\n\n  public select(label: string) {\n    return new FormSelectFactory(label);\n  }\n\n  public autocomplete(label: string) {\n    return new FormAutocompleteFactory(label);\n  }\n\n  public customField<PropsType = any>(\n    label: string,\n    props: PropsType,\n    component: Type<any>\n  ) {\n    return new FormCustomFieldFactory<PropsType>(label, props, component);\n  }\n}\n","import { Type } from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { CatFormBehavior } from '../common/cat-form-behavior';\nimport { FormAutocompleteFactory } from './autocomplete/form-autocomplete.factory';\nimport { FormCheckboxFactory } from './checkbox/form-checkbox.factory';\nimport { FormCnpjFactory } from './cnpj/form-cnpj.factory';\nimport { FormCpfFactory } from './cpf/form-cpf.factory';\nimport { FormCsvFactory } from './csv/form-csv.factory';\nimport { FormCustomFieldFactory } from './customField/form-custom-field.factory';\nimport { FormDatetimeFactory } from './datetime/form-datetime.factory';\nimport { FormFileFactory } from './file/form-file.factory';\nimport { FormFieldService } from './form-field.service';\nimport {\n  CatFormConfig,\n  CatFormCustomFieldOptions,\n  CatFormFieldOptions,\n  CatFormFieldTemplateGridType,\n  CatFormFieldType,\n  CatFormItemListOptions,\n  CatFormTextareaOptions,\n} from './form.interface';\nimport { FormNumberFactory } from './number/form-number.factory';\nimport { FormPasswordFactory } from './password/form-password.factory';\nimport { FormRadioFactory } from './radio/form-radio.factory';\nimport { FormRangeFactory } from './range/form-range.factory';\nimport { FormSearchFactory } from './search/form-search.factory';\nimport { FormSelectFactory } from './select/form-select.factory';\nimport { FormTextFactory } from './text/form-text.factory';\nimport { FormTextareaFactory } from './textarea/form-textarea.factory';\n\nexport class FormFactory<DataType> {\n  private readonly config: CatFormConfig<DataType>;\n\n  constructor(private data?: DataType, private behavior?: CatFormBehavior) {\n    this.config = {\n      behavior: this.behavior ?? new CatFormBehavior(new Subject()),\n      autofill: data,\n    } as CatFormConfig<DataType>;\n  }\n\n  public fieldset(\n    legend: string,\n    name: string,\n    config: (builder: FormFactory<DataType>) => CatFormConfig<DataType>\n  ) {\n    if (!this.config.formElements) this.config.formElements = [];\n    this.config.formElements.push({\n      fieldset: {\n        legend,\n        name,\n        config: config(\n          new FormFactory<DataType>(this.data?.[name], this.config.behavior)\n        ),\n      },\n    });\n    return this;\n  }\n\n  public listsItem(\n    legend: string,\n    name: string,\n    config: (builder: FormFactory<DataType>) => CatFormConfig<DataType>,\n    options?: CatFormItemListOptions\n  ) {\n    if (!this.config.formElements) this.config.formElements = [];\n    this.config.formElements.push({\n      listItem: {\n        legend,\n        name,\n        config: config(\n          new FormFactory<DataType>(this.data, this.config.behavior)\n        ),\n        options,\n      },\n    });\n    return this;\n  }\n\n  public isCheckboxGroup(isCheckboxGroup = true) {\n    this.config.isCheckboxGroup = isCheckboxGroup;\n    return this;\n  }\n\n  public grid(grid: CatFormFieldTemplateGridType) {\n    this.config.grid = grid;\n    return this;\n  }\n\n  public hidden(hidden = true) {\n    this.config.hidden = hidden;\n    return this;\n  }\n\n  public text(\n    label: string,\n    name: string,\n    field: (builder: FormTextFactory) => CatFormFieldOptions\n  ) {\n    this.field('text', label, name, field);\n    return this;\n  }\n\n  public search(\n    label: string,\n    name: string,\n    field: (builder: FormSearchFactory) => CatFormFieldOptions\n  ) {\n    this.field('search', label, name, field);\n    return this;\n  }\n\n  public password(\n    label: string,\n    name: string,\n    field: (builder: FormPasswordFactory) => CatFormFieldOptions\n  ) {\n    this.field('password', label, name, field);\n    return this;\n  }\n\n  public email(\n    label: string,\n    name: string,\n    field: (builder: FormTextFactory) => CatFormFieldOptions\n  ) {\n    this.field('email', label, name, field);\n    return this;\n  }\n\n  public url(\n    label: string,\n    name: string,\n    field: (builder: FormTextFactory) => CatFormFieldOptions\n  ) {\n    this.field('url', label, name, field);\n    return this;\n  }\n\n  public range(\n    label: string,\n    name: string,\n    field: (builder: FormRangeFactory) => CatFormFieldOptions\n  ) {\n    this.field('range', label, name, field);\n    return this;\n  }\n\n  public number(\n    label: string,\n    name: string,\n    field: (builder: FormNumberFactory) => CatFormFieldOptions\n  ) {\n    this.field('number', label, name, field);\n    return this;\n  }\n\n  public date(\n    label: string,\n    name: string,\n    field: (builder: FormDatetimeFactory) => CatFormFieldOptions\n  ) {\n    this.field('date', label, name, field);\n    return this;\n  }\n\n  public time(\n    label: string,\n    name: string,\n    field: (builder: FormDatetimeFactory) => CatFormFieldOptions\n  ) {\n    this.field('time', label, name, field);\n    return this;\n  }\n\n  public datetime(\n    label: string,\n    name: string,\n    field: (builder: FormDatetimeFactory) => CatFormFieldOptions\n  ) {\n    this.field('datetime-local', label, name, field);\n    return this;\n  }\n\n  public textarea(\n    label: string,\n    name: string,\n    field: (builder: FormTextareaFactory) => CatFormTextareaOptions\n  ) {\n    this.field('textarea', label, name, field);\n    return this;\n  }\n\n  public cpf(\n    label: string,\n    name: string,\n    field: (builder: FormCpfFactory) => CatFormFieldOptions\n  ) {\n    this.field('cpf', label, name, field);\n    return this;\n  }\n\n  public cnpj(\n    label: string,\n    name: string,\n    field: (builder: FormCnpjFactory) => CatFormFieldOptions\n  ) {\n    this.field('cnpj', label, name, field);\n    return this;\n  }\n\n  public switcher(\n    label: string,\n    name: string,\n    field: (builder: FormCheckboxFactory) => CatFormFieldOptions\n  ) {\n    this.field('switcher', label, name, field);\n    return this;\n  }\n\n  public checkbox(\n    label: string,\n    name: string,\n    field: (builder: FormCheckboxFactory) => CatFormFieldOptions\n  ) {\n    this.field('checkbox', label, name, field);\n    return this;\n  }\n\n  public radio(\n    name: string,\n    field: (builder: FormRadioFactory) => CatFormFieldOptions,\n    label?: string\n  ) {\n    this.field('radio', label ?? '', name, field);\n    return this;\n  }\n\n  public file(\n    name: string,\n    field: (builder: FormFileFactory) => CatFormFieldOptions\n  ) {\n    this.field('file', '', name, field);\n    return this;\n  }\n\n  public csv(\n    name: string,\n    field: (builder: FormCsvFactory) => CatFormFieldOptions\n  ) {\n    this.field('csv', '', name, field);\n    return this;\n  }\n\n  public select(\n    label: string,\n    name: string,\n    field: (builder: FormSelectFactory) => CatFormFieldOptions\n  ) {\n    this.field('select', label, name, field);\n    return this;\n  }\n\n  public autocomplete(\n    label: string,\n    name: string,\n    field: (builder: FormAutocompleteFactory) => CatFormFieldOptions\n  ) {\n    this.field('autocomplete', label, name, field);\n    return this;\n  }\n\n  public customField<PropsType = any>(\n    label: string,\n    name: string,\n    component: Type<any>,\n    field: (\n      builder: FormCustomFieldFactory<PropsType>\n    ) => CatFormCustomFieldOptions<PropsType>,\n    props?: PropsType\n  ) {\n    if (!this.config.formElements) this.config.formElements = [];\n    this.config.formElements.push({\n      field: {\n        ...field(new FormFieldService().customField(label, props, component)),\n        type: 'customField',\n        name,\n        behavior: this.config.behavior,\n      },\n    });\n    return this;\n  }\n\n  public onChange(callback: (data: DataType) => void) {\n    this.config.onChange = callback;\n    return this;\n  }\n\n  public onSubmit(callback: (data: DataType) => Observable<any>) {\n    this.config.onSubmit = callback;\n    return this;\n  }\n\n  public generate() {\n    return this.config;\n  }\n\n  private field(\n    type: CatFormFieldType,\n    label: string,\n    name: string,\n    field: (builder: any) => CatFormFieldOptions\n  ) {\n    if (!this.config.formElements) this.config.formElements = [];\n    this.config.formElements.push({\n      field: {\n        ...field(this.getFieldBuilder(label, type)),\n        type,\n        name,\n        behavior: this.config.behavior,\n      },\n    });\n  }\n\n  private getFieldBuilder(label: string, type: CatFormFieldType) {\n    const fieldService = new FormFieldService();\n\n    switch (type) {\n      case 'text':\n        return fieldService.text(label);\n      case 'search':\n        return fieldService.search(label);\n      case 'password':\n        return fieldService.password(label);\n      case 'email':\n        return fieldService.email(label);\n      case 'url':\n        return fieldService.url(label);\n      case 'range':\n        return fieldService.range(label);\n      case 'number':\n        return fieldService.number(label);\n      case 'date':\n      case 'datetime-local':\n      case 'time':\n        return fieldService.date(label);\n      case 'textarea':\n        return fieldService.textarea(label);\n      case 'cpf':\n        return fieldService.cpf(label);\n      case 'cnpj':\n        return fieldService.cnpj(label);\n      case 'switcher':\n      case 'checkbox':\n        return fieldService.checkbox(label);\n      case 'radio':\n        return fieldService.radio(label);\n      case 'file':\n        return fieldService.file(label);\n      case 'csv':\n        return fieldService.csv(label);\n      case 'select':\n        return fieldService.select(label);\n      case 'autocomplete':\n        return fieldService.autocomplete(label);\n      default:\n        throw new Error('Tipo de campo não suportado.');\n    }\n  }\n}\n","import { CatFormCustomFieldOptions } from '../builder/form.interface';\n\nexport abstract class CatFormCustomFieldBase<PropsType = any> {\n  private data: CatFormCustomFieldOptions<PropsType>;\n\n  getConfig() {\n    return this.data;\n  }\n}\n","import { Type } from '@angular/core';\nimport { CatDynamicComponent } from '@catrx/ui/dynamic-component';\n\nexport class CatSelectOption<T = any> extends CatDynamicComponent {\n  constructor(component: Type<T>, option: any) {\n    super(component, option);\n  }\n}\n","export class CatFormValidatorResponseFactory {\n  public static generate(errorMessage: string) {\n    return {\n      customError: {\n        message: errorMessage,\n      },\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { FormFactory } from './builder/form.factory';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class CatFormService {\n  build<DataType>(data?: DataType) {\n    return new FormFactory<DataType>(data);\n  }\n}\n","export function getValueByTree(object: any, strTree: string) {\n  const tree = strTree.split('.');\n  let value: any;\n  tree.forEach((key) => {\n    if (!value) {\n      if (key.includes('[') && key.includes(']')) {\n        const keySplited = key.split('[');\n        keySplited.forEach((keyPart) => {\n          if (value) {\n            value = value[keyPart.replace(/]/g, '')];\n          } else {\n            value = object[keyPart.replace(/]/g, '')];\n          }\n        });\n      } else {\n        value = object[key];\n      }\n    } else {\n      if (key.includes('[') && key.includes(']')) {\n        const keySplited = key.split('[');\n        keySplited.forEach((keyPart) => {\n          value = value[keyPart.replace(/]/g, '')];\n        });\n      } else {\n        value = value[key];\n      }\n    }\n  });\n\n  return value;\n}\n","import { Injectable } from \"@angular/core\";\nimport { clone } from \"@koalarx/utils/operators/object\";\nimport { klString } from \"@koalarx/utils/operators/string\";\nimport { getValueByTree } from './common/cat-object.helper';\nimport { CatFormBehaviorSetValue, CatFormConfig, CatFormElementConfig } from \"./builder/form.interface\";\n\n@Injectable()\nexport class FormService {\n  private autofillValues: CatFormBehaviorSetValue[] = [];\n\n  getAutofillDataTree(\n    config: CatFormConfig<any>,\n    name?: string\n  ) {\n    this.generateAutofillDataTree(config, config.autofill, name);\n    const autofillValues = this.autofillValues;\n    this.autofillValues = [];\n    return autofillValues;\n  }\n\n  private generateAutofillDataTree(\n    config: CatFormConfig<any>,\n    data: { [key: string | number]: any },\n    name?: string\n  ) {\n    if (name) {\n      const valueDataByTree = getValueByTree(config.autofill, name) as {\n        [key: string | number]: any;\n      };\n\n      if (Array.isArray(valueDataByTree)) {\n        const isObjectArray = !!valueDataByTree.find(\n          (item) => typeof item === 'object'\n        );\n        const isListItem = this.isListItemByName(\n          name,\n          config.formElements\n        );\n\n        if (isObjectArray && isListItem) {\n          valueDataByTree.forEach((item, indexItem) => {\n            clone(Object.keys(item)).forEach((propItem) => {\n              const prefix = name.substring(0, name.length - 3);\n              let suffix = name.substring(name.length - 3);\n              if (suffix === `[${indexItem > 0 ? indexItem - 1 : indexItem}]`) {\n                suffix = suffix.replace(`[${indexItem - 1}]`, `[${indexItem}]`);\n              } else {\n                suffix += `[${indexItem}]`;\n              }\n\n              name = this.generateAutofillDataTree(\n                config,\n                item[propItem],\n                `${prefix}${suffix}.${propItem}`\n              );\n            });\n          });\n        } else {\n          this.autofillValues.push({\n            name,\n            value: valueDataByTree,\n          });\n        }\n      } else if (\n        valueDataByTree &&\n        typeof valueDataByTree === 'object' &&\n        !this.isFileByName(name, config.formElements)\n      ) {\n        clone(Object.keys(valueDataByTree)).forEach((index) => {\n          name = this.generateAutofillDataTree(\n            config,\n            valueDataByTree[index],\n            `${name}.${index}`\n          );\n        });\n      } else {\n        this.autofillValues.push({\n          name,\n          value: valueDataByTree,\n        });\n        name = klString(name)\n          .split('.')\n          .pipe((KlName) => {\n            const arrName = KlName.getValue();\n            arrName.splice(arrName.length - 1, 1);\n            return arrName;\n          })\n          .toString('.')\n          .getValue();\n      }\n    } else {\n      clone(Object.keys(data)).map((index) => {\n        if (data[index] && Array.isArray(data[index])) {\n          const isObjectArray = !!data[index].find(\n            (item) => typeof item === 'object'\n          );\n          const isListItem = this.isListItemByName(\n            index,\n            config.formElements\n          );\n          if (isObjectArray && isListItem) {\n            data[index].forEach((item, indexItem) => {\n              clone(Object.keys(item)).forEach((propItem) => {\n                name = this.generateAutofillDataTree(\n                  config,\n                  item,\n                  `${index}[${indexItem}].${propItem}`\n                );\n              });\n            });\n          } else {\n            this.autofillValues.push({\n              name: index,\n              value: data[index],\n            });\n          }\n        } else if (data[index] && typeof data[index] === 'object') {\n          clone(Object.keys(data[index])).forEach((objIndex) => {\n            name = this.generateAutofillDataTree(\n              config,\n              data[index],\n              `${index}.${objIndex}`\n            );\n          });\n        } else {\n          this.autofillValues.push({\n            name: index,\n            value: data[index],\n          });\n        }\n      });\n    }\n\n    return name;\n  }\n\n  private isListItemByName(\n    name: string,\n    formElement: CatFormElementConfig[]\n  ): boolean {\n    return !!formElement.find((formElement) => {\n      if (formElement.listItem) {\n        const splitedName = name.split('.');\n        if (\n          splitedName[splitedName.length - 1] === formElement.listItem.name ||\n          this.isListItemByName(name, formElement.listItem.config.formElements)\n        ) {\n          return true;\n        }\n      }\n      return false;\n    });\n  }\n\n  private isFileByName(\n    name: string,\n    formElement: CatFormElementConfig[]\n  ): boolean {\n    return !!formElement.find((formElement) => {\n      if (formElement.field) {\n        const splitedName = name.split('.');\n        if (\n          splitedName[splitedName.length - 1] === formElement.field.name &&\n          formElement.field.type === 'file'\n        ) {\n          return true;\n        }\n      }\n\n      if (formElement.fieldset) {\n        if (this.isFileByName(name, formElement.fieldset.config.formElements)) {\n          return true;\n        }\n      }\n\n      if (formElement.listItem) {\n        if (this.isFileByName(name, formElement.listItem.config.formElements)) {\n          return true;\n        }\n      }\n\n      return false;\n    });\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  Input,\n  OnInit,\n  ViewChild,\n  OnDestroy,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CatFormFieldConfig } from '../../../builder/form.interface';\nimport { klDelay } from '@koalarx/utils/operators/delay';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\n\n@Directive()\nexport abstract class FieldBase<FormFieldType, ElInputType extends HTMLElement>\n  implements OnInit, OnDestroy\n{\n  @Input() control?: FormControl;\n  @Input() fieldConfig?: CatFormFieldConfig & FormFieldType;\n\n  @ViewChild('inputElement')\n  elInput?: ElementRef<ElInputType>;\n\n  public updateComponent$ = new BehaviorSubject<boolean>(true);\n\n  protected destroySubscriptions$ = new Subject<boolean>();\n\n  ngOnDestroy() {\n    this.destroySubscriptions$.next(true);\n  }\n\n  ngOnInit() {\n    this.focus().then();\n    this.customInit();\n\n    if (this.fieldConfig && this.fieldConfig.behavior) {\n      this.fieldConfig.behavior.subject\n        .pipe(takeUntil(this.destroySubscriptions$))\n        .subscribe(() => {\n          this.updateComponent$.next(true);\n        });\n    }\n  }\n\n  protected customInit() {\n    return;\n  }\n\n  private async focus() {\n    if (this.fieldConfig?.focus) {\n      while (!this.elInput) await klDelay(300);\n      this.elInput?.nativeElement?.focus();\n    }\n  }\n}\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { CatFormFieldConfig } from '../../../../../builder/form.interface';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n  selector: 'cat-form-field-hint[control][config][elInput]',\n  templateUrl: 'hint.component.html',\n})\nexport class HintComponent {\n  @Input() control?: FormControl;\n  @Input() config?: CatFormFieldConfig;\n  @Input() elInput?: ElementRef<\n    HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\n  >;\n}\n","<div class=\"hint\">\n  <ng-container *ngIf=\"control?.valid; else errorsContent\">\n    <span *ngIf=\"config?.hint\" class=\"text-hint\">\n      <i class=\"fa-solid fa-circle-info\"></i>\n      <span [innerHTML]=\"config?.hint\"></span>\n    </span>\n  </ng-container>\n  <ng-template #errorsContent>\n    <ng-content select=\"[errors]\"></ng-content>\n  </ng-template>\n\n  <div class=\"spacer\"></div>\n\n  <span\n    *ngIf=\"!!config?.minLength && !!config?.maxLength && !control?.disabled\"\n    class=\"span-length\"\n  >\n    <strong class=\"min\">{{ config?.minLength ?? 0 }}</strong\n    >/{{ elInput?.nativeElement?.value?.length ?? 0 }}/<strong class=\"max\">{{\n      config?.maxLength ?? 0\n    }}</strong>\n  </span>\n\n  <span\n    *ngIf=\"!!config?.minLength && !config?.maxLength && !control?.disabled\"\n    class=\"span-length\"\n  >\n    <strong class=\"min\">{{ config?.minLength ?? 0 }}</strong\n    >/{{ elInput?.nativeElement?.value?.length ?? 0 }}\n  </span>\n\n  <span\n    *ngIf=\"!!config?.maxLength && !config?.minLength && !control?.disabled\"\n    class=\"span-length max\"\n  >\n    {{ elInput?.nativeElement?.value?.length ?? 0 }}/<strong class=\"max\">{{\n      config?.maxLength ?? 0\n    }}</strong>\n  </span>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CatFormFieldConfig } from '../../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-form-field-common-errors[control][config]',\n  templateUrl: 'common-errors.component.html',\n})\nexport class CommonErrorsComponent {\n  @Input() control?: FormControl;\n  @Input() config?: CatFormFieldConfig;\n}\n","<ng-container *ngIf=\"control?.invalid && !control?.untouched\">\n  <div *ngIf=\"control?.hasError('minlength')\" class=\"invalid-feedback\">\n    <i class=\"fa-solid fa-triangle-exclamation\"></i>\n    O campo deve conter pelo menos {{ config?.minLength }} caracteres.\n  </div>\n  <div *ngIf=\"control?.hasError('required')\" class=\"invalid-feedback\">\n    <i class=\"fa-solid fa-triangle-exclamation\"></i>\n    Valor não informado.\n  </div>\n  <div *ngIf=\"control?.errors?.['customError']\" class=\"invalid-feedback\">\n    <i class=\"fa-solid fa-triangle-exclamation\"></i>\n    {{control?.errors?.['customError']?.message}}\n  </div>\n  <ng-content select=\"[specificErrors]\"></ng-content>\n</ng-container>\n","import {\n  Component,\n  ElementRef,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { interval } from 'rxjs/internal/observable/interval';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { CatFormFieldConfig } from '../../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-form-field-content[control][config][elInput]',\n  templateUrl: 'field-content.component.html',\n})\nexport class FieldContentComponent implements OnInit, OnDestroy {\n  @Input() control?: FormControl;\n  @Input() config?: CatFormFieldConfig;\n  @Input() elInput?: ElementRef<\n    HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\n  >;\n  @ViewChild('labelElement') elLabel?: ElementRef<HTMLLabelElement>;\n\n  isRequired = false;\n\n  private destroySubscriptions$ = new Subject();\n\n  ngOnDestroy() {\n    this.destroySubscriptions$.next(true);\n  }\n\n  ngOnInit() {\n    interval(300)\n      .pipe(takeUntil(this.destroySubscriptions$))\n      .subscribe(() => {\n        this.isRequired =\n          this.control?.hasValidator(Validators.required) ?? false;\n        if (this.elLabel?.nativeElement) {\n          if (\n            this.isRequired &&\n            this.elLabel.nativeElement.innerText.indexOf('*') < 0\n          ) {\n            this.elLabel.nativeElement.innerText = `${this.elLabel?.nativeElement.innerText} *`;\n          } else if (\n            !this.isRequired &&\n            this.elLabel.nativeElement.innerText.indexOf('*') >= 0\n          ) {\n            this.elLabel.nativeElement.innerText =\n              this.elLabel?.nativeElement.innerText.replace('*', '');\n          }\n        }\n\n        if (this.config) this.config.required = this.isRequired;\n      });\n  }\n}\n","<div\n  class=\"cat-field-container has-validation\"\n  [ngClass]=\"{ invalid: control?.invalid && !control?.untouched }\"\n>\n  <label #labelElement [for]=\"config?.name\" class=\"form-label\"\n    >{{ config?.label }} {{ isRequired ? \"*\" : \"\" }}</label\n  >\n  <ng-content select=\"[field]\"></ng-content>\n  <cat-form-field-hint\n    [control]=\"control\"\n    [config]=\"config\"\n    [elInput]=\"elInput\"\n  >\n    <ng-container errors>\n      <cat-form-field-common-errors [control]=\"control\" [config]=\"config\">\n        <ng-container specificErrors>\n          <ng-content select=\"[specificErrors]\"></ng-content>\n        </ng-container>\n      </cat-form-field-common-errors>\n    </ng-container>\n  </cat-form-field-hint>\n</div>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormTextOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-text[control][fieldConfig]',\n  templateUrl: 'input-text.component.html',\n})\nexport class InputTextComponent extends FieldBase<\n  CatFormTextOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\">\n\n  <ng-container field>\n\n    <input #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\" autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      type=\"text\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n      [mask]=\"fieldConfig.mask?.mask\"\n      [prefix]=\"fieldConfig.mask?.prefix ?? ''\"\n      [suffix]=\"fieldConfig.mask?.sufix ?? ''\"\n      [dropSpecialCharacters]=\"fieldConfig.mask?.dropSpecialCharacters ?? false\"\n      [showMaskTyped]=\"fieldConfig.mask?.showMaskTyped ?? false\"\n      [allowNegativeNumbers]=\"fieldConfig.mask?.allowNegativeNumbers ?? false\"\n      [placeHolderCharacter]=\"fieldConfig.mask?.placeHolderCharacter ?? ''\"\n      [thousandSeparator]=\"fieldConfig.mask?.thousandSeparator ?? '.'\"\n      [decimalMarker]=\"fieldConfig.mask?.decimalMarker ?? ','\"\n      [leadZero]=\"fieldConfig.mask?.leadZero ?? false\"\n      [hiddenInput]=\"fieldConfig.mask?.hiddenInput ?? false\"\n      [separatorLimit]=\"fieldConfig.mask?.separatorLimit ?? ''\" />\n  </ng-container>\n</cat-form-field-content>","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormTextOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-search[control][fieldConfig]',\n  templateUrl: './input-search.component.html',\n})\nexport class InputSearchComponent extends FieldBase<\n  CatFormTextOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      class=\"form-control form-control-sm\"\n      type=\"search\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormPasswordOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-password[control][fieldConfig]',\n  templateUrl: './input-password.component.html',\n})\nexport class InputPasswordComponent extends FieldBase<\n  CatFormPasswordOptions,\n  HTMLInputElement\n> {\n  showPassword = false;\n}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <div class=\"input-password-content\">\n      <input\n        #inputElement\n        *ngIf=\"control && fieldConfig\"\n        [id]=\"fieldConfig.name\"\n        [formControl]=\"control\"\n        [attr.aria-label]=\"fieldConfig.label\"\n        [required]=\"fieldConfig.required ?? false\"\n        [minlength]=\"fieldConfig.minLength ?? null\"\n        [maxlength]=\"fieldConfig.maxLength ?? null\"\n        [ngClass]=\"{\n          'is-invalid':\n            control.invalid && !control.untouched && !control.disabled\n        }\"\n        autocomplete=\"off\"\n        class=\"form-control form-control-sm\"\n        [type]=\"showPassword ? 'text' : 'password'\"\n        [placeholder]=\"fieldConfig.placeholder ?? ''\"\n      />\n\n      <button\n        *ngIf=\"(control.valid || control.untouched) && !control.disabled\"\n        type=\"button\"\n        (click)=\"showPassword = !showPassword\"\n      >\n        <i *ngIf=\"!showPassword\" class=\"fa-solid fa-eye-slash\"></i>\n        <i *ngIf=\"showPassword\" class=\"fa-solid fa-eye\"></i>\n      </button>\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormTextOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-email[control][fieldConfig]',\n  templateUrl: 'input-email.component.html',\n})\nexport class InputEmailComponent extends FieldBase<\n  CatFormTextOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      type=\"email\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n\n  <ng-container specificErrors>\n    <div *ngIf=\"control?.errors?.['email']\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      E-mail inválido.\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormTextOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-url[control][fieldConfig]',\n  templateUrl: 'input-url.component.html',\n})\nexport class InputUrlComponent extends FieldBase<\n  CatFormTextOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      type=\"url\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n\n  <ng-container specificErrors>\n    <div *ngIf=\"control?.errors?.['url']\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      URL inválida.\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormNumberOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-number[control][fieldConfig]',\n  templateUrl: 'input-number.component.html',\n})\nexport class InputNumberComponent extends FieldBase<\n  CatFormNumberOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [min]=\"fieldConfig.min ?? null\"\n      [max]=\"fieldConfig.max ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      type=\"number\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n\n  <ng-container specificErrors>\n    <div *ngIf=\"control?.hasError('min')\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      O valor deve ser no mínimo {{ fieldConfig?.min }}.\n    </div>\n    <div *ngIf=\"control?.hasError('max')\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      O valor deve ser no máximo {{ fieldConfig?.max }}.\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { CatFormRangeOptions } from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\n\n@Component({\n  selector: 'cat-field-range[control][fieldConfig]',\n  templateUrl: 'input-range.component.html',\n})\nexport class InputRangeComponent extends FieldBase<CatFormRangeOptions, HTMLInputElement> {\n  protected override customInit(): void {\n    if (!this.control.value) {\n      this.control.setValue(this.fieldConfig.min ?? 0);\n    }\n  }\n\n  getRangePosition() {\n    const current = this.control.value;\n    const min = this.fieldConfig.min ?? 0;\n    const max = this.fieldConfig.max ?? 100;\n\n    return (current - min) * 100 / (max - min);\n  }\n\n  setValueOnRange(event: Event) {\n    const target = event.target as HTMLInputElement;\n    this.control.setValue(target.value);\n  }\n\n  getRangeOptions() {\n    const options: Array<{ value: number; label: string; }> = [];\n    const startWith = this.fieldConfig.min ?? 0;\n    const endWith = this.fieldConfig.max ?? 100;\n    const range = this.fieldConfig.range ?? 1;\n\n    for (let i = startWith; i <= endWith; i += range) {\n      options.push({\n        label: i.toString(),\n        value: i\n      })\n    }\n\n    return options;\n  }\n}\n","<div class=\"form-range-container\">\n  <cat-form-field-content\n    *ngIf=\"updateComponent$ | async\"\n    [control]=\"control\"\n    [config]=\"fieldConfig\"\n    [elInput]=\"elInput\">\n    <ng-container field>\n      <div class=\"form-range-field-container\">\n        <input\n          #inputElement\n          *ngIf=\"control && fieldConfig\"\n          [id]=\"fieldConfig.name\"\n          [formControl]=\"control\"\n          [attr.aria-label]=\"fieldConfig.label\"\n          [required]=\"fieldConfig.required ?? false\"\n          [min]=\"fieldConfig.min ?? 0\"\n          [max]=\"fieldConfig.max ?? 100\"\n          [attr.list]=\"'datalist-' + fieldConfig.name\"\n          [attr.range]=\"fieldConfig.range ?? 1\"\n          [style.backgroundSize]=\"getRangePosition() + '%'\"\n          type=\"range\"\n        />\n        <input\n          type=\"number\"\n          [id]=\"fieldConfig.name\"\n          [min]=\"fieldConfig.min ?? 0\"\n          [max]=\"fieldConfig.max ?? 100\"\n          [style.width]=\"(((control.value?.toString().length ?? 1 - 1) * 16) + 40) + 'px'\"\n          [formControl]=\"control\"\n          (input)=\"setValueOnRange($event)\"\n        />\n      </div>\n    </ng-container>\n  </cat-form-field-content>\n</div>\n","import { Component } from '@angular/core';\nimport { CatFormDatetimeOptions } from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\n\n@Component({\n  selector: 'cat-field-datetime[control][fieldConfig]',\n  templateUrl: './input-datetime.component.html',\n})\nexport class InputDatetimeComponent extends FieldBase<\n  CatFormDatetimeOptions,\n  HTMLInputElement\n> {\n  public getFormatTypeDate() {\n    switch (this.fieldConfig?.type) {\n      case 'date':\n        return 'shortDate';\n      case 'datetime-local':\n        return 'short';\n      case 'time':\n        return 'shortTime';\n      default:\n        return '';\n    }\n  }\n}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [min]=\"fieldConfig.min ?? null\"\n      [max]=\"fieldConfig.max ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      [type]=\"fieldConfig.type\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n\n  <ng-container specificErrors>\n    <div *ngIf=\"control?.errors?.['dateMin']\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      O valor deve ser no mínimo\n      {{control?.errors?.['dateMin']?.min | date:getFormatTypeDate()}}.\n    </div>\n    <div *ngIf=\"control?.errors?.['dateMax']\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      O valor deve ser no máximo\n      {{control?.errors?.['dateMax']?.max | date:getFormatTypeDate()}}.\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { CatFormTextOptions } from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\n\n@Component({\n  selector: 'cat-field-cpf[control][fieldConfig]',\n  templateUrl: './input-cpf.component.html',\n})\nexport class InputCpfComponent extends FieldBase<\n  CatFormTextOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      [validation]=\"control.errors?.['cpfInvalid']\"\n      [dropSpecialCharacters]=\"false\"\n      mask=\"000.000.000-00\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      type=\"text\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n\n  <ng-container specificErrors>\n    <div *ngIf=\"control?.errors?.['cpfInvalid']\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      CPF inválido.\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { CatFormTextOptions } from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\n\n@Component({\n  selector: 'cat-field-cnpj[control][fieldConfig]',\n  templateUrl: './input-cnpj.component.html',\n})\nexport class InputCnpjComponent extends FieldBase<\n  CatFormTextOptions,\n  HTMLInputElement\n> {}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <input\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      [validation]=\"control.errors?.['cnpjInvalid']\"\n      [dropSpecialCharacters]=\"false\"\n      mask=\"00.000.000/0000-00\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      type=\"text\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    />\n  </ng-container>\n\n  <ng-container specificErrors>\n    <div *ngIf=\"control?.errors?.['cnpjInvalid']\" class=\"invalid-feedback\">\n      <i class=\"fa-solid fa-triangle-exclamation\"></i>\n      CNPJ inválido.\n    </div>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormTextareaOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-textarea[control][fieldConfig]',\n  templateUrl: 'textarea.component.html',\n})\nexport class TextareaComponent extends FieldBase<\n  CatFormTextareaOptions,\n  HTMLTextAreaElement\n> {\n  public defaultMinRows = 3;\n\n  public manageQtyRowsOnPressEnter() {\n    const textarea = this.elInput?.nativeElement;\n\n    if (textarea) {\n      const rows = this.getQtyRows();\n      const minRows = this.fieldConfig?.minRows ?? this.defaultMinRows;\n      const maxRows = this.fieldConfig?.maxRows ?? 0;\n\n      if (rows <= minRows) {\n        textarea.rows = minRows;\n      } else if (rows > minRows && rows <= maxRows && rows !== textarea.rows) {\n        textarea.rows = rows;\n      }\n    }\n  }\n\n  private getQtyRows() {\n    const textarea = this.elInput?.nativeElement;\n    if (textarea) {\n      const fontsize = 12;\n      const charsperrow = textarea.clientWidth / fontsize;\n      const hardreturns = textarea.value.split(/\\r|\\r\\n|\\n/);\n\n      let rows = hardreturns.length;\n\n      for (let i = 0, len = rows; i < len; i++) {\n        const line = hardreturns[i];\n        let softreturns = Math.round(line.length / charsperrow);\n        //if softreturns is greater than 0, minus by 1 (hard return already counted)\n        softreturns = Math.round(softreturns > 0 ? softreturns - 1 : 0);\n        rows += softreturns;\n      }\n\n      return rows;\n    }\n\n    return this.defaultMinRows;\n  }\n}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\"\n>\n  <ng-container field>\n    <textarea\n      #inputElement\n      *ngIf=\"control && fieldConfig\"\n      [id]=\"fieldConfig.name\"\n      [formControl]=\"control\"\n      [attr.aria-label]=\"fieldConfig.label\"\n      (keyup)=\"manageQtyRowsOnPressEnter()\"\n      [rows]=\"fieldConfig.minRows ?? defaultMinRows\"\n      [required]=\"fieldConfig.required ?? false\"\n      [minlength]=\"fieldConfig.minLength ?? null\"\n      [maxlength]=\"fieldConfig.maxLength ?? null\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\"\n      autocomplete=\"off\"\n      class=\"form-control form-control-sm\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n    >\n    </textarea>\n  </ng-container>\n</cat-form-field-content>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormCheckboxOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-switcher[control][fieldConfig]',\n  templateUrl: 'input-switcher.component.html',\n})\nexport class InputSwitcherComponent extends FieldBase<\n  CatFormCheckboxOptions,\n  HTMLInputElement\n> {}\n","<div *ngIf=\"updateComponent$ | async\" class=\"form-check form-switch\">\n  <input\n    *ngIf=\"control && fieldConfig\"\n    [id]=\"fieldConfig.name\"\n    [formControl]=\"control\"\n    [attr.aria-label]=\"fieldConfig.label\"\n    class=\"form-check-input\"\n    type=\"checkbox\"\n    role=\"switch\"\n  />\n  <label class=\"form-check-label\" [attr.for]=\"fieldConfig?.name\">\n    {{ fieldConfig?.label }}\n  </label>\n</div>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormCheckboxOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-checkbox[control][fieldConfig]',\n  templateUrl: 'input-checkbox.component.html',\n})\nexport class InputCheckboxComponent extends FieldBase<\n  CatFormCheckboxOptions,\n  HTMLInputElement\n> {}\n","<div *ngIf=\"updateComponent$ | async\" class=\"form-check\">\n  <input\n    *ngIf=\"control && fieldConfig\"\n    [id]=\"fieldConfig.name\"\n    [formControl]=\"control\"\n    [attr.aria-label]=\"fieldConfig.label\"\n    class=\"form-check-input\"\n    type=\"checkbox\"\n  />\n  <label class=\"form-check-label\" [attr.for]=\"fieldConfig?.name\">\n    {{ fieldConfig?.label }}\n  </label>\n</div>\n","import { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\nimport { CatFormRadioOptions } from '../../../../builder/form.interface';\n\n@Component({\n  selector: 'cat-field-radio[control][fieldConfig]',\n  templateUrl: 'input-radio.component.html',\n})\nexport class InputRadioComponent extends FieldBase<\n  CatFormRadioOptions,\n  HTMLInputElement\n> {}\n","<div *ngIf=\"updateComponent$ | async\">\n  <ng-container *ngIf=\"control && fieldConfig\">\n    <div\n      *ngFor=\"let option of fieldConfig.options; let i = index\"\n      class=\"form-check form-check-inline\"\n    >\n      <input\n        [id]=\"fieldConfig.name + i\"\n        [attr.aria-label]=\"fieldConfig.label\"\n        [name]=\"fieldConfig.name\"\n        [value]=\"option.value\"\n        [formControl]=\"control\"\n        class=\"form-check-input\"\n        type=\"radio\"\n      />\n      <label class=\"form-check-label\" [attr.for]=\"fieldConfig.name + i\">\n        {{ option?.name }}\n      </label>\n    </div>\n  </ng-container>\n</div>\n","import {\n  Directive,\n  EventEmitter,\n  Output,\n  HostListener,\n  HostBinding,\n} from '@angular/core';\n\n@Directive({\n  selector: '[catDragDrop]',\n})\nexport class DragDropFileUploadDirective {\n  @Output() fileDropped = new EventEmitter<any>();\n  @HostBinding('style.background-color') private background = 'transparent';\n  // Dragover Event\n  @HostListener('dragover', ['$event']) dragOver(event: any) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.background = document.querySelector('main').classList.contains('dark')\n      ? 'rgba(0,0,0,.3)'\n      : 'rgba(0,0,0,.1)';\n  }\n  // Dragleave Event\n  @HostListener('dragleave', ['$event']) public dragLeave(event: any) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.background = 'transparent';\n  }\n  // Drop Event\n  @HostListener('drop', ['$event']) public drop(event: any) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.background = 'transparent';\n    const files = event.dataTransfer.files;\n    if (files.length > 0) {\n      this.fileDropped.emit(files);\n    }\n  }\n}\n","import { Component } from '@angular/core';\nimport { CatFileInterface } from '@catrx/ui/utils';\nimport { CatCsvService } from '@catrx/ui/utils/csv';\nimport { klArray } from '@koalarx/utils/operators/array';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport {\n  CatFormCsvOptions,\n  CatFormCustomSelectedFileList,\n  CatFormFileOptions,\n} from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\nimport { CatDynamicComponent } from '@catrx/ui/dynamic-component';\n\n@Component({\n  selector: 'cat-field-file[control][fieldConfig]',\n  templateUrl: './input-file.component.html',\n})\nexport class InputFileComponent extends FieldBase<\n  CatFormFileOptions | CatFormCsvOptions,\n  HTMLInputElement\n> {\n  public files: CatFileInterface[] = [];\n  public errorMultipleNotAllowed?: boolean;\n\n  constructor(private csvService: CatCsvService) {\n    super();\n  }\n\n  protected override customInit(): void {\n    this.control.valueChanges\n      .pipe(takeUntil(this.destroySubscriptions$))\n      .subscribe((value: CatFileInterface | Array<CatFileInterface>) => {\n        if (Array.isArray(value)) {\n          this.files = klArray(this.files)\n            .merge(\n              value.filter(\n                (item) =>\n                  !this.files.find((file) => item.filename === file.filename)\n              )\n            )\n            .getValue();\n        } else if (value) {\n          if (!this.files.find((file) => value.filename === file.filename)) {\n            this.files.push(value);\n          }\n        }\n      });\n  }\n\n  public async emitFiles(files: FileList | null) {\n    if (files) {\n      this.errorMultipleNotAllowed =\n        !this.fieldConfig?.multiple &&\n        (this.files.length > 0 || files.length > 1);\n\n      if (\n        !this.errorMultipleNotAllowed ||\n        (this.fieldConfig?.multiple && files?.length > 0)\n      ) {\n        for (let f = 0; f <= files.length; f++) {\n          const file = files.item(f);\n          if (file) {\n            const fileResult = await this.convertFile(file);\n            if (fileResult) {\n              const indexFile = this.files.findIndex(\n                (file) =>\n                  file.filename === fileResult.filename &&\n                  file.type === fileResult.type\n              );\n              if (indexFile >= 0) {\n                this.files[indexFile] = fileResult;\n              } else {\n                this.files.push(fileResult);\n              }\n            }\n          }\n        }\n        this.control?.setValue(\n          this.fieldConfig?.multiple ? this.files : this.files?.[0]\n        );\n      }\n\n      if (this.control) {\n        this.control.markAsTouched();\n        this.updateComponent$.next(true);\n      }\n\n      this.elInput.nativeElement.value = null;\n    }\n  }\n\n  public getSupportedExtensions() {\n    return klArray(this.fieldConfig?.accept ?? [])\n      .toString()\n      .getValue();\n  }\n\n  public hasValidExtension(filename: string) {\n    if (this.fieldConfig?.accept) {\n      const fileExtension = filename.substring(filename.lastIndexOf('.'));\n      return (\n        this.fieldConfig.accept\n          .map((ext) => ext.toLowerCase())\n          .indexOf(fileExtension.toLowerCase()) >= 0\n      );\n    }\n\n    return true;\n  }\n\n  public removeFile(index: number) {\n    this.files.splice(index, 1);\n    this.control?.setValue(this.files);\n  }\n\n  public hasCsvModel() {\n    return !!(this.fieldConfig as CatFormCsvOptions).csvModel;\n  }\n\n  public downloadCsvModel() {\n    const csvModel = (this.fieldConfig as CatFormCsvOptions).csvModel;\n    if (csvModel)\n      this.csvService.convertJsonToCsv([csvModel.model], csvModel.filename);\n  }\n\n  public getFilesToCustomList() {\n    return new CatDynamicComponent(this.fieldConfig.customSelectedFilesList, {\n      data: this.files,\n      remove: (index: number) => this.removeFile(index),\n    } as CatFormCustomSelectedFileList);\n  }\n\n  private async convertFile(file: File): Promise<CatFileInterface | null> {\n    const blobFile = await new Promise<string | ArrayBuffer | null>(\n      (resolve) => {\n        const fileReader = new FileReader();\n        fileReader.readAsDataURL(file);\n        fileReader.onload = () => {\n          resolve(fileReader.result);\n        };\n      }\n    );\n    if (blobFile) {\n      const fileSplit = blobFile.toString().split(';base64,');\n      const fileResult: CatFileInterface = {\n        filename: file.name,\n        type: fileSplit[0].replace('data:', ''),\n        base64: fileSplit[1],\n      };\n\n      if (this.fieldConfig?.type === 'csv') {\n        fileResult.csvContent = this.csvService.convertCsvToJson(fileResult);\n      }\n\n      return fileResult;\n    }\n\n    return null;\n  }\n}\n","<div\n  *ngIf=\"updateComponent$ | async\"\n  class=\"has-validation\"\n  [ngClass]=\"{ invalid: control?.invalid && control?.touched }\"\n>\n  <div\n    class=\"file-drag-drop-area\"\n    catDragDrop\n    *ngIf=\"control && fieldConfig\"\n    [ngClass]=\"{ invalid: control.invalid && control.touched }\"\n    (fileDropped)=\"emitFiles($event)\"\n  >\n    <input type=\"hidden\" [formControl]=\"control\" />\n    <input\n      #inputElement\n      type=\"file\"\n      class=\"d-none\"\n      [multiple]=\"fieldConfig.multiple\"\n      [accept]=\"getSupportedExtensions()\"\n      (change)=\"emitFiles(inputElement.files)\"\n    />\n\n    <div class=\"placeholder-content\">\n      <i class=\"fa-solid fa-file-circle-plus\"></i>\n      <h2>Arraste e Solte aqui ou clique no botão abaixo</h2>\n      <span *ngIf=\"fieldConfig.accept\" class=\"extensions-accepted\">\n        <strong>Suporta apenas os formatos</strong>\n        ({{ getSupportedExtensions() }})\n      </span>\n    </div>\n\n    <div class=\"btn-group\" role=\"group\" [attr.aria-label]=\"fieldConfig.label\">\n      <button\n        *ngIf=\"hasCsvModel()\"\n        type=\"button\"\n        class=\"btn btn-secondary\"\n        (click)=\"downloadCsvModel()\"\n      >\n        <i class=\"fa-solid fa-file-csv mr-8\"></i>\n        Baixar modelo\n      </button>\n      <button\n        type=\"button\"\n        class=\"btn btn-primary\"\n        (click)=\"inputElement.click()\"\n      >\n        <i\n          *ngIf=\"fieldConfig.icon\"\n          class=\"mr-8\"\n          [ngClass]=\"fieldConfig.icon\"\n        ></i>\n        {{ fieldConfig.btnText ?? \"Escolha um arquivo...\" }}\n      </button>\n    </div>\n\n    <div *ngIf=\"!fieldConfig.hideSelectedFilesList\" class=\"files-content\">\n      <ng-container\n        *ngIf=\"!fieldConfig.customSelectedFilesList; else customFileContent\"\n      >\n        <div\n          class=\"file-content\"\n          *ngFor=\"let file of files; let i = index\"\n          [ngClass]=\"{ invalid: !hasValidExtension(file.filename) }\"\n        >\n          <strong>{{ file.filename }}</strong>\n          <button (click)=\"removeFile(i)\" class=\"btn-remove\" type=\"button\">\n            <i class=\"fa-solid fa-xmark\"></i>\n          </button>\n        </div>\n      </ng-container>\n\n      <ng-template #customFileContent>\n        <cat-dynamic-component\n          [component]=\"getFilesToCustomList()\"\n        ></cat-dynamic-component>\n      </ng-template>\n    </div>\n  </div>\n\n  <cat-form-field-common-errors [control]=\"control\" [config]=\"fieldConfig\">\n    <ng-container specificErrors>\n      <div *ngIf=\"control?.errors?.['fileInvalid']\" class=\"invalid-feedback\">\n        <i class=\"fa-solid fa-triangle-exclamation\"></i>\n        Arquivo de extensão inválida.\n      </div>\n      <div *ngIf=\"errorMultipleNotAllowed\" class=\"invalid-feedback\">\n        <i class=\"fa-solid fa-triangle-exclamation\"></i>\n        Só é permitido o envio de apenas 1 arquivo.\n      </div>\n    </ng-container>\n  </cat-form-field-common-errors>\n</div>\n","import { Component, Input } from '@angular/core';\nimport {\n  CatFormListOptions,\n  CatFormSelectOptions,\n} from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\nimport { CatSelectOption } from './../../../../common/cat-select-option';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\n@Component({\n  selector: 'cat-field-select[control][fieldConfig]',\n  templateUrl: 'input-select.component.html',\n})\nexport class InputSelectComponent extends FieldBase<\n  CatFormSelectOptions,\n  HTMLSelectElement\n> {\n  @Input() options$ = new BehaviorSubject<CatFormListOptions[]>(null);\n\n  protected override customInit(): void {\n    if (this.fieldConfig.options) {\n      this.fieldConfig\n        .options\n        .subscribe(options => this.options$.next(options))\n    }\n  }\n\n  optionIsComponent(option: CatFormListOptions) {\n    return option.name instanceof CatSelectOption;\n  }\n\n  getCompomentOption(option: CatFormListOptions) {\n    return option.name as CatSelectOption;\n  }\n}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\">\n  <ng-container\n    *ngIf=\"control && fieldConfig\"\n    field>\n    <ng-select\n      *ngIf=\"options$ | async as options; else showLoader\"\n      #inputElement\n      [formControl]=\"control\"\n      [labelForId]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\" [searchable]=\"false\"\n      [multiple]=\"fieldConfig.multiple\"\n      [appendTo]=\"'main'\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n      appearance=\"outline\">\n      <ng-container\n        *ngFor=\"let option of options\">\n        <ng-option\n          *ngIf=\"optionIsComponent(option); else textOption\"\n          [value]=\"option.value\">\n          <cat-dynamic-component\n            [component]=\"getCompomentOption(option)\" />\n        </ng-option>\n\n        <ng-template #textOption>\n          <ng-option\n            [value]=\"option.value\"\n            [innerHTML]=\"option.name\" />\n        </ng-template>\n      </ng-container>\n    </ng-select>\n  </ng-container>\n</cat-form-field-content>\n\n<ng-template #showLoader>\n  <input\n    class=\"form-control form-control-sm\"\n    disabled type=\"text\"\n    placeholder=\"CARREGANDO...\" />\n</ng-template>","import { Component, Input } from '@angular/core';\nimport { CatDynamicComponent } from '@catrx/ui/dynamic-component';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { debounceTime } from 'rxjs/internal/operators/debounceTime';\nimport { first } from 'rxjs/internal/operators/first';\nimport {\n  CatFormAutocompleteOptions,\n  CatFormListOptions,\n} from '../../../../builder/form.interface';\nimport { FieldBase } from '../field.base';\nimport { CatSelectOption } from './../../../../common/cat-select-option';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\n\n@Component({\n  selector: 'cat-field-autocomplete[control][fieldConfig]',\n  templateUrl: 'input-autocomplete.component.html',\n})\nexport class InputAutocompleteComponent extends FieldBase<\n  CatFormAutocompleteOptions,\n  HTMLSelectElement\n> {\n  loaderText = 'Carregando...';\n  loading$ = new BehaviorSubject<boolean>(true);\n  @Input() options$ = new BehaviorSubject<CatFormListOptions[]>(null);\n\n  private search$ = new Subject<string>();\n\n  public searchOnType(text: string) {\n    if (!(this.fieldConfig.options instanceof Observable)) {\n      this.options$.next([]);\n      this.loading$.next(true);\n      this.search$.next(text);\n    }\n  }\n\n  public getAddOptionDynamicComponent(searchTerm: string) {\n    return new CatDynamicComponent(\n      this.fieldConfig.addOption.customTemplate,\n      searchTerm\n    );\n  }\n\n  public setNewOption(fieldConfig: CatFormAutocompleteOptions) {\n    return (value: any) => {\n      if (fieldConfig.addOption?.persistService) {\n        this.loaderText = 'Enviando...';\n        this.loading$.next(true);\n        return new Promise((resolve, reject) => {\n          fieldConfig.addOption\n            .persistService(value)\n            .pipe(first())\n            .subscribe({\n              next: (response) => {\n                this.loading$.next(false);\n                this.loaderText = 'Carregando...';\n                resolve(response);\n              },\n              error: (err) => {\n                this.loading$.next(false);\n                this.loaderText = 'Carregando...';\n                reject(err);\n              },\n            });\n        });\n      } else {\n        this.control?.setValue(value);\n        return value;\n      }\n    };\n  }\n\n  public optionIsComponent(option: CatFormListOptions) {\n    return option.name instanceof CatSelectOption;\n  }\n\n  public getCompomentOption(option: CatFormListOptions) {\n    return option.name as CatSelectOption;\n  }\n\n  protected override customInit() {\n    const options = this.fieldConfig.options ?? this.options$;\n\n    if (\n      options instanceof Observable ||\n      options instanceof BehaviorSubject\n    ) {\n      this.updateList(options);\n    } else if (typeof options === 'function') {\n      this.updateList(options());\n    } else {\n      this.updateList(new Observable(observe => {\n        observe.next(options ?? []);\n        observe.complete();\n      }));\n    }\n\n    this.search$.pipe(debounceTime(300)).subscribe((text) => {\n      if (typeof options === 'function') {\n        this.updateList(options(text));\n      }\n    });\n  }\n\n  private updateList(requester: Observable<CatFormListOptions[]>) {\n    requester.pipe(takeUntil(this.destroySubscriptions$)).subscribe({\n      next: (response) => {\n        this.options$.next(response);\n        this.loading$.next(!response);\n        this.updateComponent$.next(true);\n      },\n      error: () => {\n        this.options$.next([]);\n        this.loading$.next(false);\n        this.updateComponent$.next(true);\n      },\n    });\n  }\n}\n","<cat-form-field-content\n  *ngIf=\"updateComponent$ | async\"\n  [control]=\"control\"\n  [config]=\"fieldConfig\"\n  [elInput]=\"elInput\">\n  <ng-container\n    *ngIf=\"control && fieldConfig\"\n    field>\n    <ng-select #inputElement\n      [formControl]=\"control\"\n      [labelForId]=\"fieldConfig.label\"\n      [required]=\"fieldConfig.required ?? false\"\n      [ngClass]=\"{\n        'is-invalid': control.invalid && !control.untouched && !control.disabled\n      }\" [loading]=\"loading$ | async\"\n      [items]=\"options$ | async\"\n      [multiple]=\"fieldConfig.multiple\"\n      [addTag]=\"fieldConfig.add ? setNewOption(fieldConfig) : false\"\n      [loadingText]=\"loaderText\"\n      [appendTo]=\"'main'\"\n      [placeholder]=\"fieldConfig.placeholder ?? ''\"\n      (search)=\"searchOnType($event.term)\"\n      bindLabel=\"name\" bindValue=\"value\"\n      notFoundText=\"Nenhum registro encontrado\"\n      addTagText=\"Adicionar:\"\n      appearance=\"outline\">\n      <ng-container\n        *ngIf=\"fieldConfig.addOption?.customTemplate\">\n        <ng-template ng-tag-tmp\n          let-search=\"searchTerm\">\n          <cat-dynamic-component\n            [component]=\"getAddOptionDynamicComponent(search)\"></cat-dynamic-component>\n        </ng-template>\n      </ng-container>\n\n      <ng-template ng-label-tmp\n        let-item=\"item\"\n        let-clear=\"clear\">\n        <div\n          style=\"display: flex; align-items: center\">\n          <span\n            class=\"ng-value-icon right\"\n            (click)=\"clear(item)\"\n            aria-hidden=\"true\">×</span>\n          <span class=\"ng-value-label\">\n            <cat-dynamic-component\n              *ngIf=\"optionIsComponent(item); else textOption\"\n              [component]=\"getCompomentOption(item)\" />\n\n            <ng-template #textOption>\n              <span\n                [innerHTML]=\"item.name\"></span>\n            </ng-template>\n          </span>\n        </div>\n      </ng-template>\n\n      <ng-template ng-option-tmp\n        let-item=\"item\">\n        <cat-dynamic-component\n          *ngIf=\"optionIsComponent(item); else textOption\"\n          [component]=\"getCompomentOption(item)\" />\n\n        <ng-template #textOption>\n          <span\n            [innerHTML]=\"item.name\"></span>\n        </ng-template>\n      </ng-template>\n    </ng-select>\n  </ng-container>\n</cat-form-field-content>","import { CatFormCustomFieldOptions } from './../../../../builder/form.interface';\nimport { Component } from '@angular/core';\nimport { FieldBase } from '../field.base';\n\n@Component({\n  selector: 'cat-field-custom[control][fieldConfig]',\n  templateUrl: './input-custom-field.component.html',\n})\nexport class InputCustomFieldComponent extends FieldBase<\n  CatFormCustomFieldOptions,\n  HTMLInputElement\n> {\n  protected override customInit(): void {\n    this.fieldConfig.control$.next(this.control);\n  }\n}\n","<div\n  class=\"cat-field-container has-validation\"\n  [ngClass]=\"{ invalid: control?.invalid && !control?.untouched }\"\n>\n  <cat-dynamic-component\n    [component]=\"fieldConfig.fieldComponent\"\n  ></cat-dynamic-component>\n  <cat-form-field-common-errors [control]=\"control\" [config]=\"fieldConfig\">\n    <ng-container specificErrors>\n      <ng-content select=\"[specificErrors]\"></ng-content>\n    </ng-container>\n  </cat-form-field-common-errors>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from '@angular/core';\nimport { FormBuilder, FormControl } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { debounceTime } from 'rxjs/internal/operators/debounceTime';\nimport { first } from 'rxjs/internal/operators/first';\nimport { skipWhile } from 'rxjs/internal/operators/skipWhile';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport {\n  CatFormBehaviorAsyncValidator,\n  CatFormBehaviorSetOptions,\n  CatFormBehaviorSetValue,\n  CatFormBehaviorValidator,\n  CatFormFieldConfig,\n  CatFormListOptions,\n} from '../../builder/form.interface';\n\n@Component({\n  selector: 'cat-form-field[fieldConfig]',\n  templateUrl: 'field.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldComponent implements OnInit, OnDestroy, OnChanges {\n  @Input() fieldConfig?: CatFormFieldConfig;\n  @Input() variableTree?: string;\n  @Input() highlightInvalidFields = false;\n  @Output() emitFormControl = new EventEmitter<FormControl>();\n  @Output() isHiddenField = new EventEmitter<boolean>();\n\n  public control?: FormControl;\n  public hidden$ = new BehaviorSubject<boolean>(false);\n  public options$ = new BehaviorSubject<CatFormListOptions[]>(null);\n\n  private destroySubscriptions$ = new Subject();\n\n  constructor(private fb: FormBuilder) { }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['highlightInvalidFields']) {\n      this.control?.markAsTouched();\n      this.control?.updateValueAndValidity();\n    }\n  }\n\n  ngOnDestroy() {\n    this.destroySubscriptions$.next(true);\n  }\n\n  ngOnInit() {\n    if (this.fieldConfig) {\n      this.addControl();\n      this.hidden$.next(this.fieldConfig.hidden ?? false);\n\n      if (this.fieldConfig.onChange) {\n        this.control?.valueChanges\n          .pipe(\n            skipWhile(() => this.control?.invalid ?? false),\n            takeUntil(this.destroySubscriptions$),\n            debounceTime(300)\n          )\n          .subscribe((value) => {\n            if (this.fieldConfig?.onChange) {\n              this.fieldConfig?.behavior?.clear();\n              this.fieldConfig?.onChange(value, this.fieldConfig?.behavior, this.variableTree);\n            }\n          });\n      }\n\n      if (this.fieldConfig.hidden || this.fieldConfig.disabled) {\n        this.removeValidators();\n      }\n\n      if (this.fieldConfig.behavior) {\n        this.fieldConfig.behavior.subject\n          .pipe(\n            skipWhile((value) => Object.keys(value).length === 0),\n            takeUntil(this.destroySubscriptions$)\n          )\n          .subscribe((options) => {\n            if (options.enableFields) this.isEnabled(options.enableFields);\n            if (options.disableFields) this.isDisable(options.disableFields);\n\n            if (options.showFields) this.isVisible(options.showFields);\n            if (options.hideFields) this.isHidden(options.hideFields);\n\n            if (options.setValues) this.setValue(options.setValues);\n\n            if (options.setOptions) this.setOptions(options.setOptions);\n\n            if (options.replaceValidators)\n              this.changeValidators(options.replaceValidators);\n            if (options.replaceAsyncValidators)\n              this.changeAsyncValidators(options.replaceAsyncValidators);\n          });\n      }\n    }\n\n    this.hidden$\n      .pipe(takeUntil(this.destroySubscriptions$))\n      .subscribe((hidden) => this.isHiddenField.emit(hidden));\n  }\n\n  private addControl() {\n    if (this.fieldConfig) {\n      this.control = this.fb.control(\n        {\n          value: this.fieldConfig.value ?? null,\n          disabled: this.fieldConfig.disabled ?? false,\n        },\n        this.fieldConfig.validators,\n        this.fieldConfig.asyncValidators\n      );\n      this.emitFormControl.emit(this.control);\n    }\n  }\n\n  private setValue(values: CatFormBehaviorSetValue[]) {\n    const field = values.find(\n      (field) => field.name === this.getFullFieldName()\n    );\n    if (field && field.value !== this.control.value) {\n      this.control?.setValue(field.value);\n    }\n  }\n\n  private setOptions(options: CatFormBehaviorSetOptions[]) {\n    const field = options.find(\n      (field) => field.name === this.getFullFieldName()\n    );\n    if (field) {\n      this.options$.next(null)\n      field.options\n        .pipe(first())\n        .subscribe(options => this.options$.next(options))\n    }\n  }\n\n  private isEnabled(fields: string[]) {\n    if (fields.indexOf(this.getFullFieldName()) >= 0) {\n      this.control?.enable();\n      this.setDefaultValidators();\n    }\n  }\n\n  private isDisable(fields: string[]) {\n    if (fields.indexOf(this.getFullFieldName()) >= 0) {\n      this.control?.disable();\n      this.removeValidators();\n    }\n  }\n\n  private isVisible(fields: string[]) {\n    if (fields.indexOf(this.getFullFieldName()) >= 0) {\n      this.hidden$.next(false);\n      this.setDefaultValidators();\n    }\n  }\n\n  private isHidden(fields: string[]) {\n    if (fields.indexOf(this.getFullFieldName()) >= 0) {\n      this.hidden$.next(true);\n      this.removeValidators();\n    }\n  }\n\n  private changeValidators(options: CatFormBehaviorValidator[]) {\n    const optionField = options.find(\n      (option) => option.name === this.getFullFieldName()\n    );\n    if (optionField) {\n      this.control?.clearValidators();\n      if (optionField.validators.length > 0)\n        this.control?.addValidators(optionField.validators);\n      this.control?.updateValueAndValidity();\n    }\n  }\n\n  private changeAsyncValidators(options: CatFormBehaviorAsyncValidator[]) {\n    const optionField = options.find(\n      (option) => option.name === this.getFullFieldName()\n    );\n    if (optionField) {\n      this.control?.clearAsyncValidators();\n      if (optionField.asyncValidators.length > 0)\n        this.control?.addAsyncValidators(optionField.asyncValidators);\n      this.control?.updateValueAndValidity();\n    }\n  }\n\n  private getFullFieldName() {\n    const name = this.fieldConfig?.name;\n    if (this.variableTree) {\n      return `${this.variableTree}.${name}`;\n    }\n    return name ?? '';\n  }\n\n  private setDefaultValidators() {\n    if (this.fieldConfig) {\n      this.changeValidators([\n        {\n          name: this.getFullFieldName(),\n          validators: this.fieldConfig.validators ?? [],\n        },\n      ]);\n      this.changeAsyncValidators([\n        {\n          name: this.getFullFieldName(),\n          asyncValidators: this.fieldConfig.asyncValidators ?? [],\n        },\n      ]);\n    }\n  }\n\n  private removeValidators() {\n    if (this.fieldConfig) {\n      this.changeValidators([\n        { name: this.getFullFieldName(), validators: [] },\n      ]);\n      this.changeAsyncValidators([\n        { name: this.getFullFieldName(), asyncValidators: [] },\n      ]);\n    }\n  }\n}\n","<ng-container *ngIf=\"fieldConfig\">\n  <ng-container\n    *ngIf=\"(hidden$ | async) === false\">\n    <cat-field-text\n      *ngIf=\"fieldConfig.type === 'text'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-search\n      *ngIf=\"fieldConfig.type === 'search'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-password\n      *ngIf=\"fieldConfig.type === 'password'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-email\n      *ngIf=\"fieldConfig.type === 'email'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-url\n      *ngIf=\"fieldConfig.type === 'url'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-range\n      *ngIf=\"fieldConfig.type === 'range'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-number\n      *ngIf=\"fieldConfig.type === 'number'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-datetime *ngIf=\"\n        fieldConfig.type === 'date' ||\n        fieldConfig.type === 'datetime-local' ||\n        fieldConfig.type === 'time'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-textarea\n      *ngIf=\"fieldConfig.type === 'textarea'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-cpf\n      *ngIf=\"fieldConfig.type === 'cpf'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-cnpj\n      *ngIf=\"fieldConfig.type === 'cnpj'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-switcher\n      *ngIf=\"fieldConfig.type === 'switcher'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-checkbox\n      *ngIf=\"fieldConfig.type === 'checkbox'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-radio\n      *ngIf=\"fieldConfig.type === 'radio'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-file\n      *ngIf=\"fieldConfig.type === 'file' || fieldConfig.type === 'csv'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n\n    <cat-field-select\n      *ngIf=\"fieldConfig.type === 'select'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\"\n      [options$]=\"options$\" />\n\n    <cat-field-autocomplete\n      *ngIf=\"fieldConfig.type === 'autocomplete'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\"\n      [options$]=\"options$\" />\n\n    <cat-field-custom\n      *ngIf=\"fieldConfig.type === 'customField'\"\n      [control]=\"control\"\n      [fieldConfig]=\"fieldConfig\" />\n  </ng-container>\n</ng-container>","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { CatFormListItemConfig } from '../../builder/form.interface';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { toCamelCase } from '@koalarx/utils/operators/string';\nimport { OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { getValueByTree } from '../../common/cat-object.helper';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { skipWhile } from 'rxjs/internal/operators/skipWhile';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport { FormService } from '../../form.service';\n\n@Component({\n  selector: 'cat-form-list-item[listItemConfig]',\n  templateUrl: './list-item.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListItemComponent implements OnInit, OnDestroy {\n  @Input() listItemConfig: CatFormListItemConfig;\n  @Input() variableTree?: string;\n  @Input() highlightInvalidFields = false;\n  @Output() emitFormGroup = new EventEmitter<FormArray>();\n  @Output() removeFormGroup = new EventEmitter<string>();\n  @Output() isHiddenList = new EventEmitter<boolean>();\n\n  public formListItem?: FormGroup;\n  public hidden$ = new BehaviorSubject<boolean>(false);\n\n  private destroySubscriptions$ = new Subject<boolean>();\n\n  constructor(\n    private fb: FormBuilder,\n    private formService: FormService\n  ) { }\n\n  ngOnDestroy(): void {\n    this.destroySubscriptions$.next(true);\n  }\n\n  ngOnInit() {\n    if (this.listItemConfig.config.behavior) {\n      this.listItemConfig.config.behavior.subject\n        .pipe(\n          skipWhile((value) => Object.keys(value).length === 0),\n          takeUntil(this.destroySubscriptions$)\n        )\n        .subscribe((options) => {\n          if (options.showFields) this.isVisible(options.showFields);\n          if (options.hideFields) this.isHidden(options.hideFields);\n        });\n    }\n\n    this.hidden$.next(this.listItemConfig.options?.hidden ?? false);\n    this.hidden$\n      .pipe(takeUntil(this.destroySubscriptions$))\n      .subscribe((hidden) => {\n        this.isHiddenList.emit(hidden);\n        if (!hidden) {\n          this.isVisible([this.getTree()], false);\n        } else {\n          this.isHidden([this.getTree()], false);\n        }\n      });\n\n    this.autoAddItemByPayload();\n    this.autofill();\n  }\n\n  public addItem() {\n    if (\n      (this.listItemConfig.options?.maxItems &&\n        this.getItemList().controls.length + 1 <=\n        this.listItemConfig.options?.maxItems) ||\n      !this.listItemConfig.options?.maxItems\n    )\n      this.getItemList().push(this.fb.group({}));\n  }\n\n  public removeItem(index: number) {\n    if (\n      (this.listItemConfig.options?.minItems &&\n        this.getItemList().controls.length - 1 >=\n        this.listItemConfig.options?.minItems) ||\n      !this.listItemConfig.options?.minItems\n    )\n      this.getItemList().removeAt(index);\n  }\n\n  public addFormGroup(\n    index: number,\n    name: string,\n    formGroup: FormGroup | FormArray\n  ) {\n    const form = (this.getItemList()?.controls?.[index] as FormGroup)\n    if (form) {\n      const controlName = toCamelCase(name);\n\n      if (form.controls[controlName]) {\n        form.removeControl(controlName)\n      }\n\n      form.addControl(controlName, formGroup);\n    }\n  }\n\n  public addFormControl(index: number, name: string, formControl: FormControl) {\n    const form = (this.getItemList()?.controls?.[index] as FormGroup)\n\n    if (form) {\n      const controlName = toCamelCase(name);\n\n      if (form.controls[controlName]) {\n        form.removeControl(controlName)\n      }\n\n      form.addControl(controlName, formControl);\n    }\n  }\n\n  public removeChildFormGroup(groupName: string) {\n    this.formListItem?.removeControl(groupName);\n  }\n\n  public getFullListItemName(index: number) {\n    const name = this.listItemConfig?.name;\n\n    const prefix = name.substring(0, name.length - 3);\n    let suffix = name.substring(name.length - 3);\n    if (suffix === `[${index - 1}]`) {\n      suffix = suffix.replace(`[${index - 1}]`, `[${index}]`);\n    } else {\n      suffix += `[${index}]`;\n    }\n\n    if (this.variableTree) {\n      return `${this.variableTree}.${prefix}${suffix}`;\n    }\n    return `${prefix}${suffix}`;\n  }\n\n  public hideField(el: HTMLDivElement, hide: boolean) {\n    if (hide) {\n      el.classList.remove('d-block');\n      el.classList.add('d-none');\n    } else {\n      el.classList.remove('d-none');\n      el.classList.add('d-block');\n    }\n  }\n\n  public getItemList() {\n    return this.formListItem?.get(this.listItemConfig.name) as FormArray;\n  }\n\n  private getTree() {\n    return `${this.variableTree ? this.variableTree + '.' : ''}${this.listItemConfig.name\n      }`;\n  }\n\n  private isVisible(fields: string[], propagate = true) {\n    if (fields.indexOf(this.getTree()) >= 0) {\n      if (propagate) this.hidden$.next(false);\n      this.startList();\n    }\n  }\n\n  private isHidden(fields: string[], propagate = true) {\n    if (fields.indexOf(this.getTree()) >= 0) {\n      if (propagate) this.hidden$.next(true);\n      this.clearList();\n    }\n  }\n\n  private startList() {\n    const isFirstLoad = !!this.formListItem;\n\n    this.formListItem = this.fb.group({\n      [this.listItemConfig.name]: this.fb.array([]),\n    });\n\n    this.emitFormGroup.emit(this.getItemList());\n\n    if (isFirstLoad) {\n      this.autoAddItemByPayload();\n    } else {\n      if (\n        this.listItemConfig.options?.minItems > 0 &&\n        this.getItemList().length < this.listItemConfig.options?.minItems\n      ) {\n        for (let i = 1; i <= this.listItemConfig.options?.minItems; i++) {\n          this.addItem();\n        }\n      }\n    }\n  }\n\n  private clearList() {\n    this.formListItem = null;\n    this.removeFormGroup.emit(this.getTree());\n  }\n\n  private autoAddItemByPayload() {\n    if (!this.hidden$.getValue()) {\n      const value = getValueByTree(\n        this.listItemConfig.config.autofill,\n        this.getTree()\n      );\n\n      if (Array.isArray(value)) {\n        value.forEach((item, index) => {\n          if (!this.getItemList()?.controls?.[index]) {\n            this.addItem();\n          }\n        });\n      }\n    }\n  }\n\n  private autofill() {\n    this.listItemConfig.config.behavior.setValues(\n      this.formService.getAutofillDataTree(this.listItemConfig.config)\n    ).send();\n  }\n}\n","<ng-container *ngIf=\"(hidden$ | async) === false\">\n  <fieldset\n    *ngIf=\"listItemConfig && formListItem\"\n    [formGroup]=\"formListItem\"\n    class=\"col-12\">\n    <div class=\"title\">\n      <h2>\n        {{ listItemConfig.legend }}\n        <span *ngIf=\"listItemConfig.options\" class=\"cat-list-item-size\">\n          (Min: {{ listItemConfig.options.minItems ?? 0 }} | Max:\n          {{ listItemConfig.options.maxItems ?? \"&#8734;\" }})\n        </span>\n      </h2>\n\n      <button\n        [disabled]=\"\n          getItemList().controls.length === listItemConfig.options?.maxItems\n        \"\n        (click)=\"addItem()\"\n        type=\"button\"\n        class=\"btn btn-primary cat-btn-add-item-list\"\n      >\n        <i class=\"fa-solid fa-circle-plus\"></i>\n        Adicionar\n      </button>\n    </div>\n\n    <ng-container\n      *ngFor=\"let item of getItemList().controls; let itemIndex = index\"\n    >\n      <fieldset class=\"col-12\">\n        <div class=\"fields-content\">\n          <ng-container\n            *ngFor=\"let formElement of listItemConfig.config?.formElements\"\n            class=\"col-12\"\n          >\n            <ng-container\n              *ngIf=\"formElement.listItem as childListItemConfig\"\n              class=\"col-12\"\n            >\n              <div class=\"col-12\" #containerListItem>\n                <cat-form-list-item\n                  [listItemConfig]=\"childListItemConfig\"\n                  [variableTree]=\"getFullListItemName(itemIndex)\"\n                  [highlightInvalidFields]=\"highlightInvalidFields\"\n                  (isHiddenList)=\"hideField(containerListItem, $event)\"\n                  (emitFormGroup)=\"\n                    addFormGroup(itemIndex, childListItemConfig.name, $event)\n                  \"\n                  (removeFormGroup)=\"removeChildFormGroup($event)\"\n                >\n                </cat-form-list-item>\n              </div>\n            </ng-container>\n\n            <ng-container *ngIf=\"formElement.field as fieldConfig\">\n              <div #containerField [ngClass]=\"'col-' + fieldConfig.grid\">\n                <cat-form-field\n                  [fieldConfig]=\"fieldConfig\"\n                  [variableTree]=\"getFullListItemName(itemIndex)\"\n                  [highlightInvalidFields]=\"highlightInvalidFields\"\n                  (isHiddenField)=\"hideField(containerField, $event)\"\n                  (emitFormControl)=\"\n                    addFormControl(itemIndex, fieldConfig.name, $event)\n                  \"\n                >\n                </cat-form-field>\n              </div>\n            </ng-container>\n          </ng-container>\n        </div>\n\n        <button\n          *ngIf=\"getItemList().controls.length > listItemConfig.options?.minItems\"\n          (click)=\"removeItem(itemIndex)\"\n          type=\"button\"\n          class=\"cat-btn-remove-item-list\"\n        >\n          <i class=\"fa-solid fa-trash-can\"></i>\n        </button>\n      </fieldset>\n    </ng-container>\n  </fieldset>\n</ng-container>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n} from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { toCamelCase } from '@koalarx/utils/operators/string';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { skipWhile } from 'rxjs/internal/operators/skipWhile';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport { CatFormFieldsetConfig } from '../../builder/form.interface';\n\n@Component({\n  selector: 'cat-form-fieldset',\n  templateUrl: 'fieldset.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldsetComponent implements OnInit, OnDestroy {\n  @Input() fieldsetConfig?: CatFormFieldsetConfig;\n  @Input() variableTree?: string;\n  @Input() highlightInvalidFields = false;\n  @Output() emitFormGroup = new EventEmitter<FormGroup>();\n  @Output() removeFormGroup = new EventEmitter<string>();\n  @Output() isHiddenFieldset = new EventEmitter<boolean>();\n\n  public formFieldset?: FormGroup;\n  public hidden$ = new BehaviorSubject<boolean>(false);\n\n  private destroySubscriptions$ = new Subject<boolean>();\n\n  constructor(private fb: FormBuilder) { }\n\n  ngOnDestroy(): void {\n    this.destroySubscriptions$.next(true);\n  }\n\n  ngOnInit() {\n    this.startFieldset();\n    this.hidden$.next(this.fieldsetConfig.config.hidden ?? false);\n\n    if (this.fieldsetConfig.config.behavior) {\n      this.fieldsetConfig.config.behavior.subject\n        .pipe(\n          skipWhile((value) => Object.keys(value).length === 0),\n          takeUntil(this.destroySubscriptions$)\n        )\n        .subscribe((options) => {\n          if (options.showFields) this.isVisible(options.showFields);\n          if (options.hideFields) this.isHidden(options.hideFields);\n        });\n    }\n\n    this.hidden$\n      .pipe(takeUntil(this.destroySubscriptions$))\n      .subscribe((hidden) => this.isHiddenFieldset.emit(hidden));\n  }\n\n  public addFormGroup(name: string, formGroup: FormGroup | FormArray) {\n    if (this.formFieldset) {\n      const controlName = toCamelCase(name);\n\n      if (this.formFieldset.controls[controlName]) {\n        this.formFieldset.removeControl(controlName)\n      }\n\n      this.formFieldset.addControl(controlName, formGroup);\n    }\n  }\n\n  public addFormControl(name: string, formControl: FormControl) {\n    if (this.formFieldset) {\n      const controlName = toCamelCase(name);\n\n      if (this.formFieldset.controls[controlName]) {\n        this.formFieldset.removeControl(controlName)\n      }\n\n      this.formFieldset.addControl(controlName, formControl);\n    }\n  }\n\n  public removeChildFormGroup(groupName: string) {\n    this.formFieldset?.removeControl(groupName);\n  }\n\n  public getFullFieldsetName() {\n    const name = this.fieldsetConfig?.name;\n    if (this.variableTree) {\n      return `${this.variableTree}.${name}`;\n    }\n    return name ?? '';\n  }\n\n  public hideField(el: HTMLDivElement, hide: boolean) {\n    if (hide) {\n      el.classList.remove('d-block');\n      el.classList.add('d-none');\n    } else {\n      el.classList.remove('d-none');\n      el.classList.add('d-block');\n    }\n  }\n\n  private isVisible(fields: string[]) {\n    if (fields.indexOf(this.getFullFieldsetName()) >= 0) {\n      this.hidden$.next(false);\n      this.startFieldset();\n    }\n  }\n\n  private isHidden(fields: string[]) {\n    if (fields.indexOf(this.getFullFieldsetName()) >= 0) {\n      this.hidden$.next(true);\n      this.clearFieldset();\n    }\n  }\n\n  private startFieldset() {\n    this.formFieldset = this.fb.group({});\n    this.emitFormGroup.emit(this.formFieldset);\n  }\n\n  private clearFieldset() {\n    this.formFieldset = null;\n    this.removeFormGroup.emit(this.getFullFieldsetName());\n  }\n}\n","<ng-container *ngIf=\"(hidden$ | async) === false\">\n  <fieldset\n    *ngIf=\"fieldsetConfig && formFieldset\"\n    [formGroup]=\"formFieldset\"\n    [attr.class]=\"'col-' + fieldsetConfig.config?.grid\">\n    <legend>{{ fieldsetConfig.legend }}</legend>\n\n    <ng-container *ngFor=\"let formElement of fieldsetConfig.config?.formElements\">\n      <ng-container *ngIf=\"formElement.fieldset as fieldset\">\n        <div\n          [attr.class]=\"'col-' + fieldset.config?.grid\"\n          [ngClass]=\"{ isCheckboxGroup: fieldset.config?.isCheckboxGroup }\"\n          #containerFieldset\n        >\n          <cat-form-fieldset\n            [fieldsetConfig]=\"fieldset\"\n            [highlightInvalidFields]=\"highlightInvalidFields\"\n            [variableTree]=\"getFullFieldsetName()\"\n            (isHiddenFieldset)=\"hideField(containerFieldset, $event)\"\n            (emitFormGroup)=\"addFormGroup(fieldset.name, $event)\"\n            (removeFormGroup)=\"removeChildFormGroup($event)\"\n          >\n          </cat-form-fieldset>\n        </div>\n      </ng-container>\n\n      <ng-container *ngIf=\"formElement.listItem as listItem\">\n        <div\n          [attr.class]=\"'col-' + listItem.config?.grid\"\n          [ngClass]=\"{ isCheckboxGroup: listItem.config?.isCheckboxGroup }\"\n          #containerListItem\n        >\n          <cat-form-list-item\n            [listItemConfig]=\"listItem\"\n            [highlightInvalidFields]=\"highlightInvalidFields\"\n            [variableTree]=\"getFullFieldsetName()\"\n            (isHiddenList)=\"hideField(containerListItem, $event)\"\n            (emitFormGroup)=\"addFormGroup(listItem.name, $event)\"\n            (removeFormGroup)=\"removeChildFormGroup($event)\"\n          >\n          </cat-form-list-item>\n        </div>\n      </ng-container>\n\n      <ng-container *ngIf=\"formElement.field as fieldConfig\">\n        <div #containerField [ngClass]=\"'col-' + fieldConfig.grid\">\n          <cat-form-field\n            [fieldConfig]=\"fieldConfig\"\n            [variableTree]=\"getFullFieldsetName()\"\n            [highlightInvalidFields]=\"highlightInvalidFields\"\n            (isHiddenField)=\"hideField(containerField, $event)\"\n            (emitFormControl)=\"addFormControl(fieldConfig.name, $event)\"\n          >\n          </cat-form-field>\n        </div>\n      </ng-container>\n    </ng-container>\n  </fieldset>\n</ng-container>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport {\n  FormArray,\n  FormBuilder,\n  FormControl,\n  FormGroup,\n  UntypedFormGroup,\n} from '@angular/forms';\nimport { toCamelCase } from '@koalarx/utils/operators/string';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { debounceTime } from 'rxjs/internal/operators/debounceTime';\nimport { first } from 'rxjs/internal/operators/first';\nimport { takeUntil } from 'rxjs/internal/operators/takeUntil';\nimport {\n  CatFormConfig\n} from './builder/form.interface';\nimport { FormService } from './form.service';\n\n@Component({\n  selector: 'cat-form[config]',\n  templateUrl: 'form.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormComponent implements OnInit {\n  @Input() config?: CatFormConfig<any>;\n\n  @Output() isValid = new EventEmitter<boolean>();\n  @Output() submitted = new EventEmitter<boolean>();\n\n  public dynamicForm?: UntypedFormGroup;\n  public highlightInvalidFields$ = new BehaviorSubject<boolean>(false);\n\n  @ViewChild('formElement') private elForm?: ElementRef<HTMLFormElement>;\n  private destroySubscriptions$ = new Subject();\n\n  constructor(\n    private fb: FormBuilder,\n    private formService: FormService\n  ) { }\n\n  ngOnInit(): void {\n    this.dynamicForm = this.fb.group({});\n\n    if (this.dynamicForm) {\n      this.dynamicForm.valueChanges\n        .pipe(takeUntil(this.destroySubscriptions$), debounceTime(300))\n        .subscribe(() => {\n          if (this.config?.onChange) {\n            this.config?.onChange(this.getFormData());\n          }\n          this.isValid.emit(this.dynamicForm?.valid);\n        });\n    }\n\n    if (this.config.autofill) {\n      setTimeout(() => {\n        this.config.behavior.setValues(\n          this.formService.getAutofillDataTree(this.config)\n        ).send();\n      }, 1);\n    }\n  }\n\n  public submit(\n    cbBeforeSend?: () => void,\n    cbSuccess?: (response: any) => void,\n    cbError?: (err: any) => void\n  ) {\n    if (this.config && this.dynamicForm?.valid && this.config.onSubmit) {\n      if (cbBeforeSend) cbBeforeSend();\n      this.config\n        .onSubmit(this.getFormData())\n        .pipe(first())\n        .subscribe({\n          next: (response) => {\n            if (cbSuccess) cbSuccess(response);\n          },\n          error: (err) => {\n            if (cbError) cbError(err);\n          },\n        });\n    } else {\n      this.elForm?.nativeElement?.classList.add('was-validated');\n      this.highlightInvalidFields$.next(true);\n    }\n  }\n\n  public submitOnKeyEnter(event: KeyboardEvent) {\n    if (event.key === 'Enter') {\n      const autocompleteInputIsOpened = !(\n        event.target as HTMLInputElement\n      ).attributes.getNamedItem('aria-activedescendant');\n      const isInput = (event.target as HTMLInputElement).attributes\n        .getNamedItem('class')\n        ?.value?.includes('form-control');\n      const isTexteArea =\n        (event.target as HTMLInputElement).attributes.getNamedItem('class')\n          ?.ownerElement?.localName === 'textarea';\n\n      if (!autocompleteInputIsOpened || (isInput && !isTexteArea)) {\n        this.submitted.emit(true);\n      }\n    }\n  }\n\n  public addFormGroup(legend: string, formGroup: FormGroup | FormArray) {\n    if (this.dynamicForm) {\n      const controlName = toCamelCase(legend);\n\n      if (this.dynamicForm.controls[controlName]) {\n        this.dynamicForm.removeControl(controlName)\n      }\n\n      this.dynamicForm.addControl(controlName, formGroup);\n    }\n  }\n\n  public addFormControl(name: string, formControl: FormControl) {\n    if (this.dynamicForm) {\n      const controlName = toCamelCase(name);\n\n      if (this.dynamicForm.controls[controlName]) {\n        this.dynamicForm.removeControl(controlName)\n      }\n\n      this.dynamicForm.addControl(controlName, formControl);\n    }\n  }\n\n  public removeFormGroup(groupName: string) {\n    this.dynamicForm?.removeControl(groupName);\n  }\n\n  public hideField(el: HTMLDivElement, hide: boolean) {\n    if (hide) {\n      el.classList.remove('d-block');\n      el.classList.add('d-none');\n    } else {\n      el.classList.remove('d-none');\n      el.classList.add('d-block');\n    }\n  }\n\n  private getFormData() {\n    return this.dynamicForm?.getRawValue();\n  }\n}\n","<ng-container *ngIf=\"dynamicForm\">\n  <form\n    #formElement\n    [formGroup]=\"dynamicForm\"\n    (keyup)=\"submitOnKeyEnter($event)\"\n    class=\"needs-validation\"\n  >\n    <div class=\"fields-content\">\n      <ng-container *ngFor=\"let formElement of config?.formElements\">\n        <ng-container *ngIf=\"formElement.fieldset as fieldsetConfig\">\n          <div class=\"col-12\" #containerFieldset>\n            <cat-form-fieldset\n              class=\"w-100\"\n              [fieldsetConfig]=\"fieldsetConfig\"\n              [highlightInvalidFields]=\"\n                (highlightInvalidFields$ | async) ?? false\n              \"\n              (isHiddenFieldset)=\"hideField(containerFieldset, $event)\"\n              (emitFormGroup)=\"addFormGroup(fieldsetConfig.name, $event)\"\n              (removeFormGroup)=\"removeFormGroup($event)\"\n            >\n            </cat-form-fieldset>\n          </div>\n        </ng-container>\n\n        <ng-container *ngIf=\"formElement.listItem as listItemConfig\">\n          <div class=\"col-12\" #containerListItem>\n            <cat-form-list-item\n              class=\"w-100\"\n              [listItemConfig]=\"listItemConfig\"\n              [highlightInvalidFields]=\"\n                (highlightInvalidFields$ | async) ?? false\n              \"\n              (isHiddenList)=\"hideField(containerListItem, $event)\"\n              (emitFormGroup)=\"addFormGroup(listItemConfig.name, $event)\"\n              (removeFormGroup)=\"removeFormGroup($event)\"\n            >\n            </cat-form-list-item>\n          </div>\n        </ng-container>\n\n        <ng-container *ngIf=\"formElement.field as fieldConfig\">\n          <div #containerField [ngClass]=\"'col-' + fieldConfig.grid\">\n            <cat-form-field\n              [fieldConfig]=\"fieldConfig\"\n              [highlightInvalidFields]=\"\n                (highlightInvalidFields$ | async) ?? false\n              \"\n              (isHiddenField)=\"hideField(containerField, $event)\"\n              (emitFormControl)=\"addFormControl(fieldConfig.name, $event)\"\n            >\n            </cat-form-field>\n          </div>\n        </ng-container>\n      </ng-container>\n    </div>\n  </form>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { HintComponent } from './hint.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  declarations: [HintComponent],\n  exports: [HintComponent],\n  imports: [CommonModule],\n})\nexport class HintModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonErrorsComponent } from './common-errors.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  declarations: [CommonErrorsComponent],\n  exports: [CommonErrorsComponent],\n  imports: [CommonModule],\n})\nexport class CommonErrorsModule {}\n","import { NgModule } from '@angular/core';\nimport { FieldContentComponent } from './field-content.component';\nimport { CommonModule } from '@angular/common';\nimport { HintModule } from '../hint/hint.module';\nimport { CommonErrorsModule } from '../common-errors/common-errors.module';\n\n@NgModule({\n  declarations: [FieldContentComponent],\n  exports: [FieldContentComponent],\n  imports: [CommonModule, HintModule, CommonErrorsModule],\n})\nexport class FieldContentModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputSelectComponent } from './input-select.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { CatDynamicComponentModule } from '@catrx/ui/dynamic-component';\n\n@NgModule({\n  declarations: [InputSelectComponent],\n  exports: [InputSelectComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FieldContentModule,\n    NgSelectModule,\n    CatDynamicComponentModule,\n  ],\n})\nexport class InputSelectModule {}\n","import { NgModule } from '@angular/core';\nimport { InputTextComponent } from './input-text.component';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\nimport { NgxMaskDirective } from 'ngx-mask';\n\n@NgModule({\n  declarations: [InputTextComponent],\n  exports: [InputTextComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FieldContentModule,\n    NgxMaskDirective,\n  ],\n})\nexport class InputTextModule {}\n","import { NgModule } from '@angular/core';\nimport { TextareaComponent } from './textarea.component';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [TextareaComponent],\n  exports: [TextareaComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class TextareaModule {}\n","import { NgModule } from '@angular/core';\nimport { InputNumberComponent } from './input-number.component';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [InputNumberComponent],\n  exports: [InputNumberComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class InputNumberModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputDatetimeComponent } from './input-datetime.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n  declarations: [InputDatetimeComponent],\n  exports: [InputDatetimeComponent],\n})\nexport class InputDatetimeModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputCpfComponent } from './input-cpf.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\nimport { NgxMaskDirective } from 'ngx-mask';\n\n@NgModule({\n  declarations: [InputCpfComponent],\n  exports: [InputCpfComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FieldContentModule,\n    NgxMaskDirective,\n  ],\n})\nexport class InputCpfModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputCnpjComponent } from './input-cnpj.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NgxMaskDirective } from 'ngx-mask';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [InputCnpjComponent],\n  exports: [InputCnpjComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FieldContentModule,\n    NgxMaskDirective,\n  ],\n})\nexport class InputCnpjModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputEmailComponent } from './input-email.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [InputEmailComponent],\n  exports: [InputEmailComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class InputEmailModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputUrlComponent } from './input-url.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [InputUrlComponent],\n  exports: [InputUrlComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class InputUrlModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputCheckboxComponent } from './input-checkbox.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [InputCheckboxComponent],\n  exports: [InputCheckboxComponent],\n  imports: [CommonModule, ReactiveFormsModule],\n})\nexport class InputCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputRadioComponent } from './input-radio.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [InputRadioComponent],\n  exports: [InputRadioComponent],\n  imports: [CommonModule, ReactiveFormsModule],\n})\nexport class InputRadioModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputFileComponent } from './input-file.component';\nimport { DragDropFileUploadDirective } from './drag-drop.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonErrorsModule } from '../common/common-errors/common-errors.module';\nimport { CatDynamicComponentModule } from '@catrx/ui/dynamic-component';\n\n@NgModule({\n  declarations: [InputFileComponent, DragDropFileUploadDirective],\n  exports: [InputFileComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    CommonErrorsModule,\n    CatDynamicComponentModule,\n  ],\n})\nexport class InputFileModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputAutocompleteComponent } from './input-autocomplete.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { CatDynamicComponentModule } from '@catrx/ui/dynamic-component';\n\n@NgModule({\n  declarations: [InputAutocompleteComponent],\n  exports: [InputAutocompleteComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FieldContentModule,\n    NgSelectModule,\n    CatDynamicComponentModule,\n  ],\n})\nexport class InputAutocompleteModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputPasswordComponent } from './input-password.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [InputPasswordComponent],\n  exports: [InputPasswordComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class InputPasswordModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputSearchComponent } from './input-search.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\n\n@NgModule({\n  declarations: [InputSearchComponent],\n  exports: [InputSearchComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class InputSearchModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\nimport { InputCustomFieldComponent } from './input-custom-field.component';\nimport { CatDynamicComponentModule } from '@catrx/ui/dynamic-component';\nimport { CommonErrorsModule } from '../common/common-errors/common-errors.module';\n\n@NgModule({\n  declarations: [InputCustomFieldComponent],\n  exports: [InputCustomFieldComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FieldContentModule,\n    CatDynamicComponentModule,\n    CommonErrorsModule,\n  ],\n})\nexport class InputCustomFieldModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputSwitcherComponent } from './input-switcher.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [InputSwitcherComponent],\n  exports: [InputSwitcherComponent],\n  imports: [CommonModule, ReactiveFormsModule],\n})\nexport class InputSwitcherModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldContentModule } from '../common/field-content/field-content.module';\nimport { InputRangeComponent } from './input-range.component';\n\n@NgModule({\n  declarations: [InputRangeComponent],\n  exports: [InputRangeComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldContentModule],\n})\nexport class InputRangeModule {}\n","import { InputSelectModule } from './components/input-select/input-select.module';\nimport { NgModule } from '@angular/core';\nimport { FieldComponent } from './field.component';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from './components/input-text/input-text.module';\nimport { TextareaModule } from './components/textarea/textarea.module';\nimport { InputNumberModule } from './components/input-number/input-number.module';\nimport { InputDatetimeModule } from './components/input-datetime/input-datetime.module';\nimport { InputCpfModule } from './components/input-cpf/input-cpf.module';\nimport {\n  IConfig,\n  NgxMaskDirective,\n  NgxMaskPipe,\n  provideNgxMask,\n} from 'ngx-mask';\nimport { InputCnpjModule } from './components/input-cnpj/input-cnpj.module';\nimport { InputEmailModule } from './components/input-email/input-email.module';\nimport { InputUrlModule } from './components/input-url/input-url.module';\nimport { InputCheckboxModule } from './components/input-checkbox/input-checkbox.module';\nimport { InputRadioModule } from './components/input-radio/input-radio.module';\nimport { InputFileModule } from './components/input-file/input-file.module';\nimport { InputAutocompleteModule } from './components/input-autocomplete/input-autocomplete.module';\nimport { InputPasswordModule } from './components/input-password/input-password.module';\nimport { InputSearchModule } from './components/input-search/input-search.module';\nimport { InputCustomFieldModule } from './components/input-custom-field/input-custom-field.module';\nimport { InputSwitcherModule } from './components/input-switcher/input-switcher.module';\nimport { InputRangeModule } from './components/input-range/input-range.module';\n\nconst maskOptions: Partial<IConfig> | (() => Partial<IConfig>) = {\n  validation: false,\n};\n\n@NgModule({\n  declarations: [FieldComponent],\n  exports: [FieldComponent],\n  imports: [\n    CommonModule,\n    InputTextModule,\n    InputSearchModule,\n    InputPasswordModule,\n    InputEmailModule,\n    InputUrlModule,\n    InputNumberModule,\n    InputRangeModule,\n    InputDatetimeModule,\n    InputCpfModule,\n    InputCnpjModule,\n    TextareaModule,\n    InputSwitcherModule,\n    InputCheckboxModule,\n    InputRadioModule,\n    InputFileModule,\n    InputSelectModule,\n    InputAutocompleteModule,\n    InputCustomFieldModule,\n    NgxMaskDirective,\n    NgxMaskPipe,\n  ],\n  providers: [provideNgxMask(maskOptions)],\n})\nexport class FieldModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FieldModule } from '../field/field.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ListItemComponent } from './list-item.component';\nimport { FormService } from '../../form.service';\n\n@NgModule({\n  declarations: [ListItemComponent],\n  exports: [ListItemComponent],\n  imports: [CommonModule, ReactiveFormsModule, FieldModule],\n  providers: [FormService]\n})\nexport class CatListItemModule { }\n","import { NgModule } from '@angular/core';\nimport { FieldsetComponent } from './fieldset.component';\nimport { CommonModule } from '@angular/common';\nimport { FieldModule } from '../field/field.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CatListItemModule } from '../list-item/cat-list-item.module';\n\n@NgModule({\n  declarations: [FieldsetComponent],\n  exports: [FieldsetComponent],\n  imports: [CommonModule, ReactiveFormsModule, CatListItemModule, FieldModule],\n})\nexport class CatFieldsetModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldModule } from './components/field/field.module';\nimport { CatFieldsetModule } from './components/fieldset/cat-fieldset.module';\nimport { CatListItemModule } from './components/list-item/cat-list-item.module';\nimport { FormComponent } from './form.component';\n\n@NgModule({\n  declarations: [FormComponent],\n  exports: [FormComponent, ReactiveFormsModule],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    CatFieldsetModule,\n    CatListItemModule,\n    FieldModule,\n  ]\n})\nexport class CatFormModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.HintComponent","i3.CommonErrorsComponent","i3.FieldContentComponent","i1","i2","i3","i4.CommonErrorsComponent","i6.DragDropFileUploadDirective","i4","i3.InputTextComponent","i4.InputSearchComponent","i5.InputPasswordComponent","i6.InputEmailComponent","i7.InputUrlComponent","i8.InputNumberComponent","i9.InputRangeComponent","i10.InputDatetimeComponent","i11.InputCpfComponent","i12.InputCnpjComponent","i13.TextareaComponent","i14.InputSwitcherComponent","i15.InputCheckboxComponent","i16.InputRadioComponent","i17.InputFileComponent","i18.InputSelectComponent","i19.InputAutocompleteComponent","i20.InputCustomFieldComponent","i2.FormService","i4.FieldComponent","i3.ListItemComponent","i4.FieldsetComponent","i5.ListItemComponent","i6.FieldComponent"],"mappings":"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"}