{"version":3,"file":"main-class-componentes-input.mjs","sources":["../../../../projects/main-class/componentes/input/src/abstract-control-value-accessor.ts","../../../../projects/main-class/componentes/input/src/abstract-mat-form-field-control.ts","../../../../projects/main-class/componentes/input/src/select-option/select-option-provider.ts","../../../../projects/main-class/componentes/input/src/select-option/select-option.component.ts","../../../../projects/main-class/componentes/input/src/select-option/select-option.component.html","../../../../projects/main-class/componentes/input/src/abstract-mat-form-field-select-control.ts","../../../../projects/main-class/componentes/input/src/input-mask/mask-functions.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-mask-validator.directive.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-mask.component.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-mask.component.html","../../../../projects/main-class/componentes/input/src/input-currency/input-currency.component.ts","../../../../projects/main-class/componentes/input/src/input-currency/input-currency.component.html","../../../../projects/main-class/componentes/input/src/input-datetime/input-datetime.component.ts","../../../../projects/main-class/componentes/input/src/input-datetime/input-datetime.component.html","../../../../projects/main-class/componentes/input/src/input-fileupload/input-fileupload-validator.directive.ts","../../../../projects/main-class/componentes/input/src/input-fileupload/input-fileupload.component.ts","../../../../projects/main-class/componentes/input/src/input-fileupload/input-fileupload.component.html","../../../../projects/main-class/componentes/input/src/input-mask/input-cnpj.component.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-cep.component.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-cpf-cnpj.component.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-cpf.component.ts","../../../../projects/main-class/componentes/input/src/input-mask/input-phone.component.ts","../../../../projects/main-class/componentes/input/src/option-checkbox/option-node.ts","../../../../projects/main-class/componentes/input/src/option-checkbox/node-pool.ts","../../../../projects/main-class/componentes/input/src/option-checkbox/option-checkbox.service.ts","../../../../projects/main-class/componentes/input/src/option-checkbox/all-option-checkbox.component.ts","../../../../projects/main-class/componentes/input/src/option-checkbox/all-option-checkbox.component.html","../../../../projects/main-class/componentes/input/src/option-checkbox/option-checkbox.component.ts","../../../../projects/main-class/componentes/input/src/option-checkbox/option-checkbox.component.html","../../../../projects/main-class/componentes/input/src/option-checkbox/option-checkbox-group.component.ts","../../../../projects/main-class/componentes/input/src/select-chips/select-chips.component.ts","../../../../projects/main-class/componentes/input/src/select-chips/select-chips.component.html","../../../../projects/main-class/componentes/input/src/select-autocomplete/select-autocomplete.component.ts","../../../../projects/main-class/componentes/input/src/select-autocomplete/select-autocomplete.component.html","../../../../projects/main-class/componentes/input/src/select-option/delegate-option-provider.directive.ts","../../../../projects/main-class/componentes/input/src/select-many-checkbox/select-many-checkbox.component.ts","../../../../projects/main-class/componentes/input/src/select-many-checkbox/select-many-checkbox.component.html","../../../../projects/main-class/componentes/input/src/select-radio/select-radio.component.ts","../../../../projects/main-class/componentes/input/src/select-radio/select-radio.component.html","../../../../projects/main-class/componentes/input/src/input-telefone-internacional/input-telefone-internacional-validator.directive.ts","../../../../projects/main-class/componentes/input/src/input-telefone-internacional/input-telefone-internacional.component.ts","../../../../projects/main-class/componentes/input/src/input-telefone-internacional/input-telefone-internacional.component.html","../../../../projects/main-class/componentes/input/main-class-componentes-input.ts"],"sourcesContent":["import {ControlValueAccessor, FormControl} from '@angular/forms';\nimport {Directive, OnDestroy, OnInit} from '@angular/core';\nimport {Subscription} from 'rxjs';\n\n@Directive()\nexport abstract class AbstractControlValueAccessor<T> implements ControlValueAccessor, OnInit, OnDestroy {\n\n  private valueSubscription?: Subscription;\n\n  control = new FormControl();\n\n  onChange = (value: T | undefined) => {\n  };\n\n  onTouched = () => {\n  };\n\n  protected onControlValueChange(value: T | undefined) {\n    this.onTouched();\n    this.onChange(value);\n  }\n\n  ngOnInit() {\n    this.valueSubscription = this.control.valueChanges\n      .subscribe(value => {\n        this.onControlValueChange(value);\n      });\n  }\n\n  ngOnDestroy() {\n    this.valueSubscription?.unsubscribe();\n  }\n\n  writeValue(obj: any): void {\n    this.control.setValue(obj);\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    if (isDisabled) {\n      this.control.disable();\n    } else {\n      this.control.enable();\n    }\n  }\n\n}\n","import {FormGroupDirective, NgControl, UntypedFormControl, Validators} from '@angular/forms';\nimport {Subject, takeUntil} from 'rxjs';\nimport {Component, HostBinding, inject, Input} from '@angular/core';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {AbstractControlValueAccessor} from './abstract-control-value-accessor';\n\n@Component({\n  template: ''\n})\nexport abstract class AbstractMatFormFieldControl<T> extends AbstractControlValueAccessor<T> implements MatFormFieldControl<T | undefined> {\n\n  readonly errorStateMatcher = inject(ErrorStateMatcher);\n\n  readonly ngControl = inject(NgControl, {optional: true, self: true});\n\n  readonly parentFormGroup = inject(FormGroupDirective, {optional: true});\n\n  static nextId = 0;\n\n  private $placeholder: string = '';\n  private destroyed$ = new Subject<void>();\n\n  focused = false;\n\n  constructor() {\n    super();\n\n    if (this.ngControl != null) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  stateChanges = new Subject<void>();\n\n  @HostBinding() id = `custom-input-${AbstractMatFormFieldControl.nextId++}`;\n\n  @HostBinding('attr.aria-describedby') describedBy = '';\n\n  get value(): T | undefined {\n    return this.control.value;\n  }\n\n  set value(value: T | undefined) {\n    this.control.patchValue(value);\n    this.stateChanges.next();\n  }\n\n  protected override onControlValueChange(value: T | undefined) {\n    super.onControlValueChange(value);\n    this.stateChanges.next();\n  }\n\n  get empty() {\n    return !this.value;\n  }\n\n  get autofilled() {\n    return false;\n  }\n\n  get userAriaDescribedBy() {\n    return undefined;\n  }\n\n  get disableAutomaticLabeling() {\n    return undefined;\n  }\n\n  onContainerClick(event: MouseEvent) {\n  }\n\n  @HostBinding('class.floating')\n  get shouldLabelFloat() {\n    return !this.empty || this.focused;\n  }\n\n  @Input()\n  get placeholder(): string {\n    return this.$placeholder;\n  }\n\n  set placeholder(plh: string) {\n    this.$placeholder = plh;\n    this.stateChanges.next();\n  }\n\n  @Input()\n  get required(): any {\n    return this.ngControl?.control?.hasValidator(Validators.required) ||\n      this.control.hasValidator(Validators.required);\n  }\n\n  set required(value: any) {\n    if (coerceBooleanProperty(value)) {\n      this.control.addValidators(Validators.required);\n    } else {\n      this.control.removeValidators(Validators.required);\n    }\n\n    this.stateChanges.next();\n  }\n\n  @Input()\n  get disabled(): boolean {\n    return this.ngControl?.control?.disabled || this.control.disabled;\n  }\n\n  set disabled(value: boolean) {\n    if (coerceBooleanProperty(value)) {\n      this.control.disable();\n    } else {\n      this.control.enable();\n    }\n    this.stateChanges.next();\n  }\n\n  get errorState() {\n    return this.errorStateMatcher.isErrorState(this.ngControl?.control as UntypedFormControl, this.parentFormGroup);\n  }\n\n  get controlType() {\n    return 'custom-input';\n  }\n\n  setDescribedByIds(ids: string[]) {\n    this.describedBy = ids.join(' ');\n  }\n\n  override ngOnInit() {\n    super.ngOnInit();\n\n    // Disparar stateChanges quando o status do controle mudar\n    this.ngControl?.statusChanges\n      ?.pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.stateChanges.next());\n\n    // Disparar stateChanges quando o form for submetido\n    this.parentFormGroup?.ngSubmit\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.stateChanges.next());\n\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this.destroyed$.next();\n    this.destroyed$.complete();\n    this.stateChanges.complete();\n  }\n\n  override writeValue(obj: any) {\n    super.writeValue(obj);\n    this.stateChanges.next();\n  }\n}\n","import {Observable} from 'rxjs';\nimport {SelectOption} from './select-option';\nimport {InjectionToken} from '@angular/core';\n\nexport const SELECT_OPTION_PROVIDER = new InjectionToken<SelectOptionProvider>('mainclass.SELECT_OPTION_PROVIDER');\n\nexport interface SelectOptionProvider<T = any> {\n    type(): 'number' | 'object' | 'string' | 'date';\n\n    provide(search: string | null): Observable<SelectOption<T>[]>;\n\n    label(value: T): string;\n\n    trackBy?(value: T | undefined): any;\n}\n","import {Component, Input} from '@angular/core';\nimport {SelectOption} from './select-option';\n\n@Component({\n    selector: 'mcl-select-option',\n    imports: [],\n    templateUrl: './select-option.component.html',\n    styleUrl: './select-option.component.scss'\n})\nexport class SelectOptionComponent implements SelectOption {\n    @Input() value?: any;\n\n    private $label?: string;\n\n    @Input() set label(label: any) {\n        this.$label = label !== null && label !== undefined ? String(label) : undefined;\n    }\n\n    get label(): any {\n        return this.$label;\n    }\n}\n","","import {AfterContentInit, Component, ContentChildren, inject, Input, QueryList} from '@angular/core';\nimport {BehaviorSubject, concat, debounceTime, Observable, of, Subscription} from 'rxjs';\nimport {FormControl} from '@angular/forms';\nimport {map, switchMap} from 'rxjs/operators';\nimport {MatAutocompleteSelectedEvent} from '@angular/material/autocomplete';\nimport {AbstractMatFormFieldControl} from './abstract-mat-form-field-control';\nimport {SelectOption} from './select-option/select-option';\nimport {SELECT_OPTION_PROVIDER, SelectOptionProvider} from './select-option/select-option-provider';\nimport {SelectOptionComponent} from './select-option/select-option.component';\n\n@Component({\n  template: ''\n})\nexport abstract class AbstractMatFormFieldSelectControl<T> extends AbstractMatFormFieldControl<T> implements AfterContentInit {\n\n  protected readonly optionProvider = inject(SELECT_OPTION_PROVIDER, {self: true, optional: true});\n\n  protected optionsSubscription?: Subscription;\n\n  private $args = new BehaviorSubject<any>(undefined);\n\n  private wvt: any;\n\n  filteredOptions?: Observable<SelectOption[]>;\n\n  inputControl = new FormControl('');\n\n  @Input() trackBy = (val: any) => val;\n\n  @ContentChildren(SelectOptionComponent) private options = new QueryList<SelectOptionComponent>();\n\n  private defaultOptionProvider: SelectOptionProvider = {\n    type: () => 'object',\n    label: (value: any) => {\n      return this.options.find(op => this.doTrackBy(op.value) === this.doTrackBy(value))?.label || '';\n    },\n    provide: (search: string | null) => {\n      return concat<any>(of({}), this.options.changes).pipe(map(\n        () => {\n          return this.options.filter(\n            op => {\n              if (!search || typeof search !== 'string') {\n                return true;\n              }\n\n              if (op.label !== undefined && op.label !== null) {\n                return String(op.label)!.toLowerCase()?.indexOf(search!.toLowerCase()) >= 0;\n              }\n\n              return false;\n            }\n          );\n\n        }\n      ));\n    }\n  };\n\n  override get empty() {\n    return !this.inputControl.value;\n  }\n\n  get shouldFilter(): boolean {\n    return true;\n  };\n\n  doTrackBy(val: any) {\n    if (this.optionProvider && this.optionProvider.trackBy) {\n      return this.optionProvider.trackBy(val);\n    }\n\n    return this.trackBy(val);\n  }\n\n  @Input() set args(args: any) {\n    this.$args.next(args);\n  }\n\n  ngAfterContentInit() {\n    this.filteredOptions = concat(of(''), this.inputControl.valueChanges).pipe(debounceTime(300), switchMap(value => {\n      if (!value && this.shouldFilter) {\n        this.value = undefined;\n      }\n      return (this.optionProvider || this.defaultOptionProvider).provide(this.shouldFilter ? value : '');\n    }));\n\n    this.optionsSubscription = this.options.changes.subscribe(() => {\n      if (this.value !== undefined && this.value !== null) {\n        this.inputControl.setValue((this.optionProvider || this.defaultOptionProvider).label(this.value));\n      }\n    });\n\n    this.options.notifyOnChanges();\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this.optionsSubscription?.unsubscribe();\n  }\n\n  seleciona(event: MatAutocompleteSelectedEvent) {\n    this.doSeleciona(event.option.value);\n  }\n\n  doSeleciona(value: any | undefined) {\n    this.onTouched();\n\n    if (value) {\n      this.value = value;\n      this.inputControl.setValue((this.optionProvider || this.defaultOptionProvider).label(value));\n    } else {\n      this.value = undefined;\n      this.inputControl.setValue('');\n    }\n\n    this.stateChanges.next();\n  }\n\n  override writeValue(value: any) {\n    super.writeValue(value);\n\n    if (value) {\n      this.inputControl.setValue((this.optionProvider || this.defaultOptionProvider).label(value));\n    } else {\n      this.inputControl.setValue('');\n    }\n  }\n\n  resolveLabel(item: any): string {\n    return (this.optionProvider || this.defaultOptionProvider).label(item);\n  }\n\n}\n","\nexport function applyMask(value: string | undefined, mask?: string): string {\n  if (!mask) return value || '';\n\n  if (value && mask) {\n    value = removeMask(value, mask) || '';\n\n    let result = '';\n\n    for (let im = 0, iv = 0; im < mask.length && iv < value.length; im++) {\n      if (mask[im] === '#') {\n        result += value[iv];\n        iv++;\n      } else {\n        result += mask[im];\n      }\n    }\n\n    return result;\n  }\n\n  return '';\n}\n\nexport function removeMask<T extends string | undefined>(value: T, mask?: string): T {\n  if (!mask) return value;\n\n  const lengthWithoutMask = mask?.replace(/[^#]/g, '')?.length || 0;\n\n  if (typeof (value as any) === 'number') {\n    value = String(value).padStart(lengthWithoutMask, '0') as T;\n  }\n\n  if (value) {\n    const unformatted = value.replaceAll(/\\D+/g, '');\n\n    if (unformatted.length > lengthWithoutMask) {\n      return unformatted.slice(0, lengthWithoutMask) as T;\n    }\n\n    return unformatted as T;\n  }\n\n  return undefined as T;\n}\n","import {AbstractControl, ValidationErrors, Validator} from '@angular/forms';\nimport {Directive, Inject, InjectionToken, Input, Optional} from '@angular/core';\n\nexport type MaskResolver = (value: string) => string;\n\nexport const MASK_RESOLVER = new InjectionToken('mainclass.MASK_RESOLVER');\n\n@Directive({\n  selector: 'mcl-input[mask]'\n})\nexport class InputMaskValidatorDirective implements Validator {\n\n  private readonly maskResolver?: MaskResolver;\n\n  private $mask?: string;\n\n  private onValidatorChange = () => {\n  };\n\n  constructor(\n    @Inject(MASK_RESOLVER) @Optional() maskResolver?: MaskResolver\n  ) {\n    this.maskResolver = maskResolver;\n  }\n\n  @Input() set mask(mask: string | undefined) {\n    this.$mask = mask;\n    this.onValidatorChange();\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    if (!!control.value && (this.$mask || this.maskResolver)) {\n      const mask = this.$mask || this.maskResolver!(control.value);\n\n      const lengthWithoutMask = mask.replace(/[^#]/g, '').length;\n\n      if (control.value.length !== lengthWithoutMask) {\n        return {'incompleteMask': true};\n      }\n    }\n\n    return null;\n  }\n\n  registerOnValidatorChange(fn: () => void): void {\n    this.onValidatorChange = fn;\n  }\n\n}\n","import {AfterViewInit, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatInput} from '@angular/material/input';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {AbstractMatFormFieldControl} from '../abstract-mat-form-field-control';\nimport {applyMask, removeMask} from './mask-functions';\nimport {InputMaskValidatorDirective} from './input-mask-validator.directive';\n\n@Component({\n  selector: 'mcl-input[mask]',\n  imports: [\n    MatInput,\n    ReactiveFormsModule\n  ],\n  templateUrl: './input-mask.component.html',\n  styleUrl: './input-mask.component.scss',\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputMaskComponent\n    },\n    {\n      provide: NG_VALIDATORS,\n      useClass: InputMaskValidatorDirective,\n      multi: true\n    }\n  ]\n})\nexport class InputMaskComponent extends AbstractMatFormFieldControl<string> implements AfterViewInit {\n\n  /**\n   * Example ###.###\n   * @private\n   */\n  protected $mask?: string;\n\n  @Input() keepMask?: boolean;\n\n  @Output('focusin') onFocusin = new EventEmitter();\n  @Output('focusout') onFocusout = new EventEmitter();\n\n  protected override onControlValueChange(value: string | undefined) {\n    const unformatted = this.removeMask(value);\n\n    const formatted = this.applyMask(unformatted);\n\n    this.onChange(this.keepMask ? formatted : unformatted);\n\n    if (this.control.value !== formatted) {\n      this.control.patchValue(formatted);\n    }\n\n    this.stateChanges.next();\n  }\n\n  @Input() set mask(mask: string) {\n    if (this.$mask !== mask) {\n      this.$mask = mask;\n\n      this.reinforceMask();\n    }\n  }\n\n  ngAfterViewInit() {\n    this.reinforceMask();\n  }\n\n  reinforceMask() {\n    if (this.mask) {\n      this.control.patchValue(this.applyMask(this.value));\n    }\n  }\n\n  protected applyMask(value: string | undefined): string | undefined {\n    return applyMask(value, this.$mask);\n  }\n\n  protected removeMask(value: string | undefined): string | undefined {\n    return removeMask(value, this.$mask);\n  }\n\n  override writeValue(value: any) {\n    super.writeValue(value);\n\n    this.control.patchValue(this.applyMask(value));\n  }\n\n  focusin() {\n    this.onTouched();\n    this.onFocusin.emit();\n    this.focused = true;\n    this.stateChanges.next();\n  }\n\n  focusout() {\n    this.onFocusout.emit();\n    this.focused = false;\n    this.stateChanges.next();\n  }\n}\n","<input matInput [formControl]=\"control\" #input\n       [placeholder]=\"placeholder\"\n       (focusin)=\"focusin()\" (focusout)=\"focusout()\"/>\n","import {Component} from '@angular/core';\nimport {MatInput} from '@angular/material/input';\nimport {monetarioMask} from '@main-class/componentes/misc';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {InputMaskComponent} from '../input-mask/input-mask.component';\nimport {ReactiveFormsModule} from '@angular/forms';\n\n@Component({\n  selector: 'mcl-input[currency]',\n  imports: [\n    MatInput,\n    ReactiveFormsModule\n  ],\n  templateUrl: './input-currency.component.html',\n  styleUrl: './input-currency.component.scss',\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputCurrencyComponent\n    }\n  ]\n})\nexport class InputCurrencyComponent extends InputMaskComponent {\n\n  protected override applyMask(value: string | undefined): string | undefined {\n    if (value) {\n      return monetarioMask(value);\n    }\n\n    return undefined;\n  }\n\n  protected override removeMask(value: string | undefined): string | undefined {\n    if (value) {\n      return monetarioMask(value, '', '', '.');\n    }\n\n    return undefined;\n  }\n\n  override writeValue(value: any) {\n    super.writeValue(typeof value === 'number' ? value.toFixed(2) : value);\n  }\n}\n","<input matInput [formControl]=\"control\"\n       [placeholder]=\"placeholder\"\n       (focusin)=\"focusin()\" (focusout)=\"focusout()\"/>\n","import {Component, inject, Input, ViewChild} from '@angular/core';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {AbstractControl, FormControl, NG_VALIDATORS, ReactiveFormsModule, ValidationErrors} from '@angular/forms';\nimport {DatetimeAdapter, MAT_DATETIME_FORMATS, MatDatetimepickerComponent, MatDatetimepickerModule} from '@mat-datetimepicker/core';\nimport {MatMomentDatetimeModule} from '@mat-datetimepicker/moment';\nimport moment, {Moment} from 'moment';\nimport {provideMomentDateAdapter} from '@angular/material-moment-adapter';\nimport 'moment/locale/pt-br.js';\nimport {Subscription} from 'rxjs';\nimport {InputMaskComponent} from '../input-mask/input-mask.component';\nimport {AbstractMatFormFieldControl} from '../abstract-mat-form-field-control';\n\n\nexport function validateDateTime(control: AbstractControl): ValidationErrors | null {\n  if (!!control.value) {\n    if (isNaN(control.value)) {\n      return {date: true};\n    }\n  }\n\n  return null;\n}\n\n@Component({\n  selector: 'mcl-input-datetime',\n  templateUrl: './input-datetime.component.html',\n  styleUrls: ['./input-datetime.component.scss'],\n  imports: [\n    MatDatetimepickerModule,\n    MatMomentDatetimeModule,\n    InputMaskComponent,\n    ReactiveFormsModule\n  ],\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useValue: validateDateTime,\n      multi: true,\n    },\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputDatetimeComponent\n    },\n    {provide: MAT_DATE_LOCALE, useValue: 'pt-br'},\n    provideMomentDateAdapter(),\n    {\n      provide: MAT_DATE_FORMATS,\n      useValue: {\n        parse: {\n          dateInput: 'DD/MM/YYYY'\n        },\n        display: {\n          dateInput: 'DD/MM/YYYY',\n          monthYearLabel: 'MM/YYYY',\n          dateAllyLabel: 'DD/MM/YYYY',\n          monthYearAllyLabel: 'MM/YYYY'\n        }\n      }\n    },\n    {\n      provide: MAT_DATETIME_FORMATS,\n      useValue: {\n        parse: {\n          dateInput: 'DD/MM/YYYY',\n          monthInput: 'MM/YYYY',\n          timeInput: 'HH:mm',\n          datetimeInput: 'DD/MM/YYYY HH:mm'\n        },\n        display: {\n          dateInput: 'DD/MM/YYYY',\n          monthInput: 'MM/YYYY',\n          timeInput: 'HH:mm',\n          datetimeInput: 'DD/MM/YYYY HH:mm',\n          monthYearLabel: 'MMM YYYY',\n          dateA11yLabel: 'LL',\n          monthYearA11yLabel: 'MMMM YYYY',\n          popupHeaderDateLabel: 'ddd, DD MMM'\n        }\n      }\n    },\n  ]\n})\nexport class InputDatetimeComponent extends AbstractMatFormFieldControl<Date | undefined> {\n  private readonly locale = inject(MAT_DATE_LOCALE);\n  private readonly formats = inject(MAT_DATETIME_FORMATS);\n  private readonly adapter = inject(DatetimeAdapter);\n\n  private maskedValueSubscription?: Subscription;\n  private datepickerValueSubscription?: Subscription;\n\n  @Input() type: 'datetime' | 'date' | 'time' = 'date';\n\n  @Input() readonly: any;\n\n  @Input() name?: string;\n\n  @ViewChild('pickerData') picker?: MatDatetimepickerComponent<Moment>;\n\n  @ViewChild('inputMask') inputMask?: InputMaskComponent;\n\n  inputControl = new FormControl();\n\n  datepickerControl = new FormControl();\n\n  constructor() {\n    super();\n\n    this.adapter.setLocale(this.locale);\n\n    this.maskedValueSubscription = this.inputControl.valueChanges\n      .subscribe(value => this.onMaskedValueChange(value));\n\n    this.datepickerValueSubscription = this.datepickerControl.valueChanges\n      .subscribe(value => this.onDatepickerChange(value));\n  }\n\n  override get empty(): boolean {\n    return !this.inputControl.value;\n  }\n\n  get mask() {\n    switch (this.type) {\n      case 'date':\n        return '##/##/####';\n      case 'time':\n        return '##:##';\n    }\n\n    return '##/##/#### ##:##';\n  }\n\n  get format() {\n    switch (this.type) {\n      case 'date':\n        return this.formats.display.dateInput;\n      case 'time':\n        return this.formats.display.timeInput;\n    }\n\n    return this.formats.display.datetimeInput;\n  }\n\n  onMaskedValueChange(maskedValue: string) {\n    const formatted = this.control.value ? this.adapter.format(moment(this.control.value), this.format) : '';\n    if (maskedValue !== formatted) {\n      this.onTouched();\n\n      if (maskedValue) {\n        const regExp = new RegExp(`^${this.mask.replace(/#/g, '\\\\d')}$`);\n        if (maskedValue.match(regExp)) {\n          this.control.patchValue(this.adapter.parse(maskedValue, this.format)?.toDate());\n        } else {\n          this.control.patchValue(undefined);\n        }\n      } else {\n        this.control.patchValue(undefined);\n      }\n\n      this.stateChanges.next();\n    }\n  }\n\n  protected onDatepickerChange(value: moment.Moment | undefined) {\n    this.onTouched();\n    let formattedValue: string;\n    if (value) {\n      formattedValue = this.adapter.format(value, this.format);\n    } else {\n      formattedValue = '';\n    }\n\n    if (value?.toDate()?.getTime() !== this.control.value?.getTime()) {\n      this.control.patchValue(value?.toDate());\n    }\n\n    if (formattedValue !== this.inputControl.value) {\n      this.inputControl.patchValue(formattedValue);\n    }\n  }\n\n  override writeValue(value: Date | undefined) {\n    super.writeValue(value);\n    if (value) {\n      const valueAsMoment = moment(value);\n      this.datepickerControl.patchValue(valueAsMoment);\n      this.inputControl.patchValue(this.adapter.format(valueAsMoment, this.format));\n    } else {\n      this.inputControl.patchValue('');\n    }\n    this.stateChanges.next();\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this.maskedValueSubscription?.unsubscribe();\n    this.datepickerValueSubscription?.unsubscribe();\n  }\n\n}\n","<div class=\"dateinput\">\n  <mcl-input [disabled]=\"disabled\" [formControl]=\"inputControl\" [mask]=\"mask\" #inputMask\n             (focusin)=\"focused = true\" (focusout)=\"focused = false\" [keepMask]=\"true\"\n  />\n  <mat-datetimepicker [disabled]=\"disabled || readonly\"\n                      [type]=\"type\" #pickerData></mat-datetimepicker>\n  <mat-datetimepicker-toggle [for]=\"pickerData\"></mat-datetimepicker-toggle>\n</div>\n<input class=\"hidden\" [formControl]=\"datepickerControl\" [matDatetimepicker]=\"pickerData\"/>\n","import {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\r\nimport {Directive, Input} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'mcl-input-fileupload,[mclFileupload]',\r\n  providers: [{provide: NG_VALIDATORS, useExisting: InputFileUploadValidatorDirective, multi: true}]\r\n})\r\nexport class InputFileUploadValidatorDirective implements Validator {\r\n\r\n  @Input() multiple: boolean = false;\r\n\r\n  validate(control: AbstractControl): ValidationErrors | null {\r\n    if (control.value) {\r\n      if (this.multiple && Array.isArray(control.value)) {\r\n\r\n        const error = control.value.find(a => a.loading && a.error);\r\n        if (error) {\r\n          return error.error;\r\n        }\r\n\r\n        if (control.value.find(a => a.loading)) {\r\n          return {fileUploading: true};\r\n        }\r\n\r\n      } else if (control.value.loading && control.value.error) {\r\n        return control.value.error;\r\n      } else if (control.value.loading) {\r\n        return {fileUploading: true};\r\n      }\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Inject,\r\n  Input,\r\n  OnDestroy,\r\n  Optional,\r\n  Output,\r\n  Self,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormGroupDirective, NG_VALIDATORS, NgControl, NgForm, UntypedFormControl} from '@angular/forms';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {MatFormFieldControl, MatPrefix, MatSuffix} from '@angular/material/form-field';\r\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {ErrorStateMatcher} from '@angular/material/core';\r\nimport {\r\n  ARQUIVO_MANAGER_SERVICE,\r\n  ArquivoManagerService,\r\n  DownloadArquivoDirective,\r\n  PreviewArquivoComponent\r\n} from '@main-class/componentes/arquivo';\r\nimport {MatChip, MatChipGrid} from '@angular/material/chips';\r\nimport {NgClass} from '@angular/common';\r\nimport {MatProgressSpinner} from '@angular/material/progress-spinner';\r\nimport {MatIcon} from '@angular/material/icon';\r\nimport {MatInput} from '@angular/material/input';\r\nimport {MatIconButton} from '@angular/material/button';\r\nimport {MatTooltip} from '@angular/material/tooltip';\r\nimport {InputFileUploadValidatorDirective} from './input-fileupload-validator.directive';\r\n\r\n\r\n@Component({\r\n  selector: 'mcl-input-fileupload',\r\n  templateUrl: './input-fileupload.component.html',\r\n  styleUrls: ['./input-fileupload.component.scss'],\r\n  imports: [\r\n    MatChipGrid,\r\n    MatChip,\r\n    NgClass,\r\n    MatProgressSpinner,\r\n    MatIcon,\r\n    PreviewArquivoComponent,\r\n    MatIconButton,\r\n    MatPrefix,\r\n    DownloadArquivoDirective,\r\n    MatInput,\r\n    MatTooltip,\r\n    MatSuffix\r\n  ],\r\n  providers: [\r\n    {\r\n      provide: MatFormFieldControl,\r\n      useExisting: InputFileUploadComponent\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useClass: InputFileUploadValidatorDirective,\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class InputFileUploadComponent implements ControlValueAccessor, MatFormFieldControl<string | Array<string>>, OnDestroy {\r\n\r\n  static nextId = 0;\r\n\r\n  private $placeholder: string = '';\r\n  private $disabled = false;\r\n  private $required: any = false;\r\n\r\n  value: any;\r\n\r\n  @Input() multiple: any;\r\n  @Input() limite: any;\r\n  @Input() accept?: string | Array<string>;\r\n  @Input() template: 'chips' | 'preview' | 'manual' = 'preview';\r\n  @Input() agrupadores?: string[];\r\n\r\n  @ViewChild('input') input!: ElementRef;\r\n\r\n  @Output() selectCancel = new EventEmitter<any>();\r\n\r\n  @Output('change') stateChanges = new Subject<void>();\r\n\r\n  @Output() change = new EventEmitter<any>();\r\n\r\n  @HostBinding() id = `input-fileupload-${InputFileUploadComponent.nextId++}`;\r\n\r\n  @HostBinding('attr.aria-describedby') describedBy = '';\r\n\r\n  constructor(\r\n    private errorStateMatcher: ErrorStateMatcher,\r\n    @Optional() @Self() public ngControl: NgControl,\r\n    @Optional() private parentForm: NgForm,\r\n    private changeDetectorRef: ChangeDetectorRef,\r\n    @Optional() private parentFormGroup: FormGroupDirective,\r\n    @Inject(ARQUIVO_MANAGER_SERVICE) private arquivoService: ArquivoManagerService) {\r\n\r\n    if (this.ngControl != null) {\r\n      this.ngControl.valueAccessor = this;\r\n    }\r\n\r\n  }\r\n\r\n  private onChange = (val: any) => {\r\n  };\r\n\r\n  private onTouched = () => {\r\n  };\r\n\r\n  get focused() {\r\n    return this.value && (this.multiple ? this.value.find((a: any) => a.loading) : this.value.loading);\r\n  }\r\n\r\n  get empty() {\r\n    return !this.value;\r\n  }\r\n\r\n  onContainerClick(event: MouseEvent) {\r\n    // Não necessário\r\n  }\r\n\r\n  @HostBinding('class.floating')\r\n  get shouldLabelFloat() {\r\n    return true;\r\n  }\r\n\r\n  @Input()\r\n  get placeholder() {\r\n    return this.$placeholder;\r\n  }\r\n\r\n  set placeholder(plh) {\r\n    this.$placeholder = plh;\r\n    this.stateChanges.next();\r\n  }\r\n\r\n  @Input()\r\n  get required(): any {\r\n    return this.$required;\r\n  }\r\n\r\n  set required(value: any) {\r\n    this.$required = coerceBooleanProperty(value);\r\n    this.stateChanges.next();\r\n  }\r\n\r\n  @Input()\r\n  get disabled(): boolean {\r\n    return this.$disabled;\r\n  }\r\n\r\n  set disabled(value: boolean) {\r\n    this.$disabled = coerceBooleanProperty(value);\r\n    this.stateChanges.next();\r\n  }\r\n\r\n  get errorState() {\r\n    return this.errorStateMatcher.isErrorState(this.ngControl.control as UntypedFormControl, this.parentFormGroup || this.parentForm);\r\n  }\r\n\r\n  get controlType() {\r\n    return 'input-fileupload';\r\n  }\r\n\r\n  setDescribedByIds(ids: string[]) {\r\n    this.describedBy = ids.join(' ');\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.stateChanges.complete();\r\n  }\r\n\r\n  upload(arquivo: UploadingAttachment) {\r\n    return new Observable(observer => {\r\n      if (!this.validaFormato(arquivo.nome)) {\r\n        arquivo.error = {fileFormat: true};\r\n        observer.error('Formato inválido');\r\n        this.onChange(this.value);\r\n        this.change.emit(this.value);\r\n        this.stateChanges.next();\r\n        return;\r\n      }\r\n\r\n      if (this.limite) {\r\n        const total = this.parseLimite();\r\n        if ((arquivo.length || 0) > total) {\r\n          arquivo.error = {\r\n            fileSize: {\r\n              limite: this.limite,\r\n            }\r\n          };\r\n          observer.error('Tamanho inválido');\r\n          this.onChange(this.value);\r\n          this.change.emit(this.value);\r\n          this.stateChanges.next();\r\n          return;\r\n        }\r\n      }\r\n\r\n      this.arquivoService.upload(arquivo.file, ...(this.agrupadores || []))\r\n        .subscribe({\r\n          next: event => {\r\n\r\n            if (event.type === 'conclusao') {\r\n              arquivo.progresso = undefined;\r\n\r\n              if (this.multiple) {\r\n                this.value = [\r\n                  ...(this.value || []).map((a: any) => a === arquivo ? event.attachment : a)\r\n                ];\r\n                this.onChange(this.value);\r\n                this.change.emit(this.value);\r\n                this.stateChanges.next();\r\n              } else {\r\n                this.value = event.attachment;\r\n                this.onChange(event.attachment);\r\n                this.change.emit(event.attachment);\r\n                this.stateChanges.next();\r\n              }\r\n\r\n              observer.next(null);\r\n              observer.complete();\r\n            } else if (event.type === 'progresso') {\r\n              arquivo.progresso = event.progresso;\r\n              this.stateChanges.next();\r\n            }\r\n\r\n          },\r\n          error: err => {\r\n            arquivo.error = {fileError: true};\r\n            this.onChange(this.value);\r\n            this.change.emit(this.value);\r\n            this.stateChanges.next();\r\n            observer.error(err);\r\n          }\r\n        });\r\n\r\n    });\r\n  }\r\n\r\n  private parseLimite() {\r\n    let total = Number(this.limite.replace(/\\D+/g, ''));\r\n\r\n    if (this.limite.toUpperCase().indexOf('GB') >= 0) {\r\n      total = total * 1024 * 1024 * 1024;\r\n    }\r\n\r\n    if (this.limite.toUpperCase().indexOf('MB') >= 0) {\r\n      total = total * 1024 * 1024;\r\n    }\r\n\r\n    if (this.limite.toUpperCase().indexOf('KB') >= 0) {\r\n      total = total * 1024;\r\n    }\r\n\r\n    return total;\r\n  }\r\n\r\n  private validaFormato(filename: string): boolean {\r\n    if (this.accept) {\r\n      let formats = [];\r\n      if (typeof this.accept === 'string') {\r\n        formats = [this.accept];\r\n      } else {\r\n        formats = this.accept;\r\n      }\r\n\r\n      for (const format of formats) {\r\n        if (filename.toLowerCase().indexOf(format.toLowerCase()) === filename.length - format.length) {\r\n          return true;\r\n        }\r\n      }\r\n\r\n      return false;\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  uploadNext() {\r\n    if (this.multiple) {\r\n      if (this.value) {\r\n        for (const item of this.value) {\r\n          if (item.loading && !item.error) {\r\n            this.upload(item).subscribe(\r\n              () => this.uploadNext(),\r\n              err => this.uploadNext()\r\n            );\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    } else if (this.value && this.value.loading && !this.value.error) {\r\n      this.upload(this.value).subscribe(\r\n        () => this.uploadNext(),\r\n        err => this.uploadNext()\r\n      );\r\n    }\r\n  }\r\n\r\n  onFileChange(event: any) {\r\n    this.onTouched();\r\n\r\n    if (event.target.files && event.target.files.length) {\r\n      if (this.multiple) {\r\n        const arqs = [];\r\n        for (const file of event.target.files) {\r\n          arqs.push({\r\n            file,\r\n            loading: true,\r\n            nome: file.name,\r\n            length: file.size,\r\n          });\r\n        }\r\n\r\n        this.value = [\r\n          ...(this.value || []),\r\n          ...arqs\r\n        ];\r\n        this.onChange(this.value);\r\n        this.change.emit(this.value);\r\n        this.stateChanges.next();\r\n      } else {\r\n        this.value = {\r\n          file: event.target.files[0],\r\n          length: event.target.files[0].size,\r\n          loading: true,\r\n          nome: event.target.files[0].name\r\n        };\r\n        this.onChange(this.value);\r\n        this.change.emit(this.value);\r\n        this.stateChanges.next();\r\n      }\r\n\r\n      this.uploadNext();\r\n    } else {\r\n      this.selectCancel.emit();\r\n    }\r\n\r\n    event.target.value = '';\r\n  }\r\n\r\n  openFileChooser() {\r\n    if (!this.disabled) {\r\n      this.input.nativeElement.click();\r\n    }\r\n  }\r\n\r\n  async remover(arquivo: UploadingAttachment) {\r\n    if (this.value) {\r\n      if (this.multiple) {\r\n        if (Array.isArray(this.value)) {\r\n          this.value.splice(this.value.indexOf(arquivo), 1);\r\n\r\n          if (this.value.length) {\r\n            this.value = [...this.value];\r\n            this.onChange(this.value);\r\n            this.change.emit(this.value);\r\n            this.stateChanges.next();\r\n          } else {\r\n            this.value = undefined;\r\n            this.onChange(undefined);\r\n            this.change.emit(undefined);\r\n            this.stateChanges.next();\r\n          }\r\n        }\r\n\r\n      } else {\r\n        this.value = undefined;\r\n        this.onChange(undefined);\r\n        this.change.emit(undefined);\r\n        this.stateChanges.next();\r\n      }\r\n    }\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    if (obj) {\r\n      if (this.multiple) {\r\n        this.value = obj.map((a: any) => typeof a === 'string' ? {url: a} : a);\r\n        this.stateChanges.next();\r\n      } else if (typeof obj === 'string') {\r\n        this.value = {url: obj};\r\n        this.stateChanges.next();\r\n      } else {\r\n        this.value = obj;\r\n        this.stateChanges.next();\r\n      }\r\n    } else {\r\n      this.value = obj;\r\n      this.stateChanges.next();\r\n    }\r\n  }\r\n\r\n  fileName(arquivo: any) {\r\n    return this.arquivoService.fileName ?\r\n      this.arquivoService.fileName(arquivo) :\r\n      arquivo.nome || arquivo.name || arquivo.fileName;\r\n  }\r\n}\r\n\r\nexport interface UploadingAttachment {\r\n  nome: string;\r\n  length?: number;\r\n  loading: boolean;\r\n  progresso?: number;\r\n  error?: any;\r\n  file: File;\r\n}\r\n","@if (multiple && template == 'chips') {\r\n  <div class=\"chips\">\r\n    @if (value?.length) {\r\n      <mat-chip-grid>\r\n        @for (arquivo of value; track arquivo) {\r\n          <mat-chip [ngClass]=\"{'error':arquivo.loading && arquivo.error,'success':!arquivo.loading}\">\r\n            @if (arquivo.loading && !arquivo.error) {\r\n              <mat-spinner [value]=\"arquivo.progresso\" [diameter]=\"24\"></mat-spinner>\r\n            }\r\n            @if (arquivo.loading && arquivo.error) {\r\n              <mat-icon class=\"error\">remove_circle_outline</mat-icon>\r\n            }\r\n            @if (!arquivo.loading) {\r\n              <mat-icon class=\"success\">check_circle_outline</mat-icon>\r\n            }\r\n            {{ fileName( arquivo ) }}\r\n            @if (!disabled) {\r\n              <a (click)=\"remover(arquivo)\" href=\"javascript:void(0)\">\r\n                <mat-icon>close</mat-icon>\r\n              </a>\r\n            }\r\n          </mat-chip>\r\n        }\r\n      </mat-chip-grid>\r\n    }\r\n\r\n    @if (value?.length && !disabled) {\r\n      <hr/>\r\n    }\r\n\r\n    @if (!disabled) {\r\n      <input type=\"file\" (change)=\"onFileChange($event)\" #input [multiple]=\"multiple\"/>\r\n    }\r\n  </div>\r\n}\r\n\r\n@if (multiple && template == 'preview') {\r\n  <div class=\"previews\">\r\n    @if (value?.length) {\r\n      <div class=\"grid\">\r\n        @for (arquivo of value; track arquivo) {\r\n          <div class=\"preview\" [ngClass]=\"{'error':arquivo.loading && arquivo.error,'success':!arquivo.loading}\">\r\n            <mcl-preview-arquivo [group]=\"value\" [arquivo]=\"arquivo\"></mcl-preview-arquivo>\r\n\r\n            @if (!disabled) {\r\n              <div class=\"footer\">\r\n                @if (arquivo.loading && !arquivo.error) {\r\n                  <mat-spinner [value]=\"arquivo.progresso\" [diameter]=\"24\"\r\n                  ></mat-spinner>\r\n                }\r\n                @if (arquivo.loading && arquivo.error) {\r\n                  <mat-icon class=\"error\">remove_circle_outline</mat-icon>\r\n                }\r\n                @if (!arquivo.loading) {\r\n                  <mat-icon class=\"success\">check_circle_outline</mat-icon>\r\n                }\r\n                <span>{{ fileName( arquivo ) }}</span>\r\n                @if (!disabled) {\r\n                  <a (click)=\"remover(arquivo)\" href=\"javascript:void(0)\">\r\n                    <mat-icon>close</mat-icon>\r\n                  </a>\r\n                }\r\n              </div>\r\n            }\r\n          </div>\r\n        }\r\n\r\n      </div>\r\n    }\r\n\r\n    @if (value?.length && !disabled) {\r\n      <hr/>\r\n    }\r\n\r\n    @if (!disabled) {\r\n      <input type=\"file\" (change)=\"onFileChange($event)\" #input [multiple]=\"multiple\"/>\r\n    }\r\n  </div>\r\n}\r\n\r\n@if (template == 'manual') {\r\n  <div>\r\n    <input type=\"file\" [disabled]=\"disabled\" (change)=\"onFileChange($event)\" #input\r\n           [multiple]=\"multiple\" style=\"display: none\"/>\r\n  </div>\r\n}\r\n\r\n@if (!multiple && template != 'manual') {\r\n  <input #input type=\"file\" style=\"display: none\"\r\n         (change)=\"onFileChange($event)\"/>\r\n\r\n  <div class=\"input\">\r\n    @if (!value) {\r\n      <button mat-icon-button type=\"button\"\r\n              (click)=\"openFileChooser()\"\r\n              matPrefix>\r\n        <mat-icon>attach_file</mat-icon>\r\n      </button>\r\n    }\r\n    @if (value && !value.loading && !value.error) {\r\n      <button mat-icon-button type=\"button\"\r\n              [mclDownloadArquivo]=\"value\"\r\n              matPrefix>\r\n        <mat-icon>download</mat-icon>\r\n      </button>\r\n    }\r\n    @if (value?.error) {\r\n      <button mat-icon-button type=\"button\" matPrefix disabled>\r\n        <mat-icon>warning</mat-icon>\r\n      </button>\r\n    }\r\n    @if (value?.loading && !value?.error) {\r\n      <button mat-icon-button type=\"button\" matPrefix disabled>\r\n        <mat-spinner [value]=\"value.progresso\"\r\n                     [diameter]=\"24\"></mat-spinner>\r\n      </button>\r\n    }\r\n    @if (!value) {\r\n      <input matInput readonly (click)=\"openFileChooser()\" [required]=\"required\"\r\n             value=\"Selecione um arquivo...\"/>\r\n    }\r\n    @if (value && value.loading && !value.error) {\r\n      <input matInput readonly [required]=\"required\"\r\n             value=\"Submetendo arquivo...\"/>\r\n    }\r\n    @if (value && value.error) {\r\n      <input matInput readonly [required]=\"required\"\r\n             [value]=\"fileName(value)\"/>\r\n    }\r\n    @if (value && !value.loading) {\r\n      <input matInput readonly [mclDownloadArquivo]=\"value\" [required]=\"required\"\r\n             [value]=\"fileName(value)\"/>\r\n    }\r\n    @if (value && (!value.loading || value?.error) && !disabled) {\r\n      <button mat-icon-button type=\"button\" matSuffix\r\n              matTooltip=\"Remover\" (click)=\"remover(value)\">\r\n        <mat-icon>close</mat-icon>\r\n      </button>\r\n    }\r\n  </div>\r\n}\r\n","import {Component} from '@angular/core';\nimport {InputMaskComponent} from './input-mask.component';\nimport {NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatInput} from '@angular/material/input';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {InputMaskValidatorDirective} from './input-mask-validator.directive';\n\n@Component({\n  selector: 'mcl-input[cnpj]',\n  imports: [\n    MatInput,\n    ReactiveFormsModule\n  ],\n  templateUrl: './input-mask.component.html',\n  styleUrl: 'input-mask.component.scss',\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputCnpjComponent\n    },\n    {\n      provide: NG_VALIDATORS,\n      useFactory: () => new InputMaskValidatorDirective(() => '##.###.###/####-##'),\n      multi: true\n    }\n  ]\n})\nexport class InputCnpjComponent extends InputMaskComponent {\n\n  constructor() {\n    super();\n\n    this.$mask = '##.###.###/####-##';\n  }\n\n}\n","import {Component} from '@angular/core';\nimport {InputMaskComponent} from './input-mask.component';\nimport {NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatInput} from '@angular/material/input';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {InputMaskValidatorDirective} from './input-mask-validator.directive';\n\n@Component({\n  selector: 'mcl-input[cep]',\n  imports: [\n    MatInput,\n    ReactiveFormsModule\n  ],\n  templateUrl: './input-mask.component.html',\n  styleUrl: 'input-mask.component.scss',\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputCepComponent\n    },\n    {\n      provide: NG_VALIDATORS,\n      useFactory: () => new InputMaskValidatorDirective(() => '##.###-###'),\n      multi: true\n    }\n  ]\n})\nexport class InputCepComponent extends InputMaskComponent {\n\n  constructor() {\n    super();\n    this.$mask = '##.###-###';\n  }\n\n}\n","import {Component} from '@angular/core';\nimport {InputMaskComponent} from './input-mask.component';\nimport {NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatInput} from '@angular/material/input';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {InputMaskValidatorDirective} from './input-mask-validator.directive';\nimport {removeMask} from './mask-functions';\n\nfunction resolveMask(value: string): string {\n    if (value.length > 11) {\n        return '##.###.###/####-##';\n    } else {\n        return '###.###.###-##';\n    }\n}\n\n@Component({\n    selector: 'mcl-input[cpfCnpj]',\n    imports: [\n        MatInput,\n        ReactiveFormsModule\n    ],\n    templateUrl: './input-mask.component.html',\n    styleUrl: 'input-mask.component.scss',\n    providers: [\n        {\n            provide: MatFormFieldControl,\n            useExisting: InputCpfCnpjComponent\n        },\n        {\n            provide: NG_VALIDATORS,\n            useFactory: () => new InputMaskValidatorDirective(resolveMask),\n            multi: true\n        }\n    ]\n})\nexport class InputCpfCnpjComponent extends InputMaskComponent {\n\n    protected override applyMask(value: string | undefined): string | undefined {\n        if (value) {\n            const unmasked = removeMask(value, '##.###.###/####-##');\n            this.$mask = resolveMask(unmasked);\n        }\n\n        return super.applyMask(value);\n    }\n}\n","import {Component} from '@angular/core';\nimport {InputMaskComponent} from './input-mask.component';\nimport {NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatInput} from '@angular/material/input';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {InputMaskValidatorDirective} from './input-mask-validator.directive';\n\n@Component({\n  selector: 'mcl-input[cpf]',\n  imports: [\n    MatInput,\n    ReactiveFormsModule\n  ],\n  templateUrl: './input-mask.component.html',\n  styleUrl: 'input-mask.component.scss',\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputCpfComponent\n    },\n    {\n      provide: NG_VALIDATORS,\n      useFactory: () => new InputMaskValidatorDirective(() => '###.###.###-##'),\n      multi: true\n    }\n  ]\n})\nexport class InputCpfComponent extends InputMaskComponent {\n\n  constructor() {\n    super();\n\n    this.$mask = '###.###.###-##';\n  }\n\n}\n","import {Component} from '@angular/core';\nimport {InputMaskComponent} from './input-mask.component';\nimport {NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatInput} from '@angular/material/input';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {InputMaskValidatorDirective} from './input-mask-validator.directive';\nimport {removeMask} from './mask-functions';\n\nfunction resolveMask(value: string) {\n  if (value.length > 2 && value[2] === '9') {\n    return '(##) #####-####'\n  } else {\n    return '(##) ####-####';\n  }\n}\n\n@Component({\n  selector: 'mcl-input[phone]',\n  imports: [\n    MatInput,\n    ReactiveFormsModule\n  ],\n  templateUrl: './input-mask.component.html',\n  styleUrl: 'input-mask.component.scss',\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputPhoneComponent\n    },\n    {\n      provide: NG_VALIDATORS,\n      useFactory: () => new InputMaskValidatorDirective(resolveMask),\n      multi: true\n    }\n  ]\n})\nexport class InputPhoneComponent extends InputMaskComponent {\n\n  protected override applyMask(value: string | undefined): string | undefined {\n    if (value) {\n      const unmasked = removeMask(value, '(##) #####-####') || '';\n      this.$mask = resolveMask(unmasked);\n    }\n\n    return super.applyMask(value);\n  }\n}\n","import {BehaviorSubject, Observable} from 'rxjs';\nimport {NodePool} from './node-pool';\n\nexport class OptionNode {\n  private readonly subject: BehaviorSubject<boolean>;\n\n  constructor(\n    private pool: NodePool,\n    public value: any,\n    selected: boolean = false,\n  ) {\n    this.subject = new BehaviorSubject<boolean>(selected);\n  }\n\n  get model(): Observable<Array<any> | undefined> {\n    return this.pool.model();\n  }\n\n  get observable(): Observable<boolean> {\n    return this.subject;\n  }\n\n  setSelected(selected: boolean) {\n    this.subject.next(selected);\n  }\n\n  dispose() {\n    this.subject.complete();\n  }\n\n  touched() {\n    this.pool.touched();\n  }\n}\n","import {OptionNode} from './option-node';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {OptionCheckboxGroupComponent} from './option-checkbox-group.component';\n\nexport class NodePool {\n  private _nodes: BehaviorSubject<Array<OptionNode>> = new BehaviorSubject<Array<OptionNode>>([]);\n  private _touch: Subject<any> = new Subject<any>();\n  private _groups: Array<OptionCheckboxGroupComponent> = [];\n\n  constructor(public name: string) {\n  }\n\n  model(): Observable<Array<any> | undefined> {\n    return this._nodes\n      .pipe(switchMap(ns =>\n        combineLatest(ns\n          .map(n =>\n            n.observable\n              .pipe(map(selected => ({\n                  selected,\n                  value: n.value\n                })\n              ))\n          )\n        ))\n      )\n      .pipe(map(ops => {\n        const model = ops.filter(o => o.selected).map(o => o.value);\n        return model.length ? model : undefined;\n      }));\n  }\n\n  touch(): Observable<any> {\n    return this._touch;\n  }\n\n  all(): Observable<boolean> {\n    return this._nodes\n      .pipe(switchMap(ns =>\n        combineLatest(ns\n          .map(n => n.observable)\n        ))\n      )\n      .pipe(map(ops => {\n        if (ops.length) {\n          const first = ops[0];\n\n          for (const o of ops) {\n            if (o !== first) {\n              return false;\n            }\n          }\n\n          return !!first;\n        }\n\n        return false;\n      }));\n  }\n\n  get empty(): boolean {\n    return !this._nodes.value.length && !this._groups.length;\n  }\n\n  dispose() {\n    this._nodes.complete();\n    this._touch.complete();\n  }\n\n  touched() {\n    this._touch.next(undefined);\n  }\n\n  register(value: any): OptionNode {\n    const selected = !!this.lastValues && this.lastValues.indexOf(value) >= 0;\n    const node = new OptionNode(this, value, selected);\n    this._nodes.next([\n      ...this._nodes.value,\n      node\n    ]);\n    return node;\n  }\n\n  unregister(node: OptionNode) {\n    this._nodes.next(\n      this._nodes.value.filter(n => n !== node)\n    );\n    node.dispose();\n  }\n\n  registerGroup(group: OptionCheckboxGroupComponent) {\n    this._groups.push(group);\n  }\n\n  unregisterGroup(group: OptionCheckboxGroupComponent) {\n    this._groups.splice(\n      this._groups.indexOf(group), 1\n    );\n  }\n\n  private lastValues: Array<any> = [];\n\n  writeValue(values: Array<any>) {\n    if (values !== this.lastValues) {\n      this.lastValues = values || [];\n      if (values) {\n        this._nodes.value.forEach(n => {\n          n.setSelected(values.indexOf(n.value) >= 0);\n        });\n      } else {\n        this._nodes.value.forEach(n => {\n          n.setSelected(false);\n        });\n      }\n    }\n  }\n\n  setAll(selected: boolean) {\n    this._nodes.value.forEach(m => m.setSelected(selected));\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {NodePool} from './node-pool';\nimport {OptionNode} from './option-node';\nimport {OptionCheckboxGroupComponent} from './option-checkbox-group.component';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class OptionCheckboxService {\n\n  private nodes: { [key: string]: NodePool } = {};\n\n  public getPool(name: string): NodePool {\n    if (!this.nodes[name]) {\n      this.nodes[name] = new NodePool(name);\n    }\n\n    return this.nodes[name];\n  }\n\n  registerGroup(name: string, group: OptionCheckboxGroupComponent): NodePool {\n    const pool = this.getPool(name);\n    pool.registerGroup(group);\n    return pool;\n  }\n\n  unregisterGroup(name: string, group: OptionCheckboxGroupComponent) {\n    if (this.nodes[name]) {\n      this.nodes[name].unregisterGroup(group);\n\n      if (this.nodes[name].empty) {\n        this.nodes[name].dispose();\n        delete this.nodes[name];\n      }\n    }\n  }\n\n  unregister(name: string, node: OptionNode) {\n    if (this.nodes[name]) {\n      this.nodes[name].unregister(node);\n\n      if (this.nodes[name].empty) {\n        this.nodes[name].dispose();\n        delete this.nodes[name];\n      }\n    }\n  }\n\n  register(name: string, value: any): OptionNode {\n    return this.getPool(name).register(value);\n  }\n\n  setAll(name: string, selected: boolean) {\n    if (this.nodes[name]) {\n      this.nodes[name].setAll(selected);\n    }\n  }\n\n  writeValue(name: string, model: Array<any>) {\n    this.getPool(name)?.writeValue(model);\n  }\n\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {OptionCheckboxService} from './option-checkbox.service';\nimport {Observable} from 'rxjs';\nimport {NodePool} from './node-pool';\nimport {MatCheckbox} from '@angular/material/checkbox';\nimport {FormsModule} from '@angular/forms';\nimport {AsyncPipe} from '@angular/common';\n\n@Component({\n  selector: 'mcl-option-checkbox[select-all-option]',\n  templateUrl: './all-option-checkbox.component.html',\n  imports: [\n    MatCheckbox,\n    FormsModule,\n    AsyncPipe\n  ]\n})\nexport class AllOptionCheckboxComponent {\n\n  private _name: any;\n  @Input() disabled: boolean = false;\n  @Output() change = new EventEmitter();\n\n  selected?: Observable<boolean | undefined>;\n\n  private pool?: NodePool;\n\n  constructor(private fotonOptionCheckboxService: OptionCheckboxService) {  }\n\n  @Input() get name(): string {\n    return this._name;\n  }\n\n  set name(name: string) {\n    this._name = name;\n    this.pool = this.fotonOptionCheckboxService.getPool(name);\n    this.selected = this.pool.all();\n  }\n\n  setSelected(selected: boolean) {\n    this.pool?.touched();\n    this.fotonOptionCheckboxService.setAll(this.name, selected);\n    this.change.emit();\n  }\n\n}\n","<mat-checkbox [disabled]=\"disabled\"\n              [ngModel]=\"selected | async\"\n              (ngModelChange)=\"setSelected($event)\"\n              [indeterminate]=\"(selected | async) === undefined\" >\n  <ng-content></ng-content>\n</mat-checkbox>\n","import {Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {OptionCheckboxService} from './option-checkbox.service';\nimport {OptionNode} from './option-node';\nimport {Observable} from 'rxjs';\nimport {MatCheckbox} from '@angular/material/checkbox';\nimport {FormsModule} from '@angular/forms';\nimport {AsyncPipe} from '@angular/common';\n\n@Component({\n  selector: 'mcl-option-checkbox:not([select-all-option])',\n  templateUrl: './option-checkbox.component.html',\n  imports: [\n    MatCheckbox,\n    FormsModule,\n    AsyncPipe\n  ]\n})\nexport class OptionCheckboxComponent implements OnDestroy {\n\n  private _name: any;\n  private _value: any;\n\n  private node?: OptionNode;\n\n  selected?: Observable<boolean>;\n\n  @Input() disabled: boolean = false;\n  @Output() change = new EventEmitter();\n\n  constructor(private fotonOptionCheckboxService: OptionCheckboxService) {\n  }\n\n  setSelected(selected: boolean) {\n    if (this.node) {\n      this.node.touched();\n      this.node.setSelected(selected);\n      this.change.emit();\n    }\n  }\n\n  get value(): any {\n    return this.node ? this.node.value : undefined;\n  }\n\n  @Input() set value(v: any) {\n    if (v != this.value) {\n\n      if (this.node) {\n        this.node.value = v;\n      } else {\n        this._value = v;\n      }\n    }\n  }\n\n  get name(): any {\n    return this._name;\n  }\n\n  @Input() set name(n: any) {\n    if (n !== this.name && !this.node) {\n      this.node = this.fotonOptionCheckboxService.register(n, this._value);\n      this.selected = this.node.observable;\n\n      this._name = n;\n    }\n  }\n\n  onBlur() {\n  }\n\n  ngOnDestroy() {\n    this.fotonOptionCheckboxService.unregister(this.name, this.node!);\n  }\n\n\n}\n","<mat-checkbox [disabled]=\"disabled\"\n              [ngModel]=\"selected | async\"\n              (ngModelChange)=\"setSelected($event)\"\n              [indeterminate]=\"(selected | async) === undefined\" >\n  <ng-content></ng-content>\n</mat-checkbox>\n","import {Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {OptionCheckboxService} from './option-checkbox.service';\nimport {NodePool} from './node-pool';\n\n@Component({\n  selector: 'mcl-option-checkbox-group',\n  template: '',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: OptionCheckboxGroupComponent,\n      multi: true\n    }\n  ]\n})\nexport class OptionCheckboxGroupComponent implements ControlValueAccessor, OnDestroy {\n\n  private callbackTimeout: any;\n\n  private _name: any;\n\n  private pool?: NodePool;\n\n  @Input() disabled: boolean = false;\n  @Output() change = new EventEmitter();\n  @Output() touched = new EventEmitter();\n\n  constructor(private optionCheckboxService: OptionCheckboxService) {\n  }\n\n  private onTouchedCallback: () => void = () => {\n  };\n\n  private onChangeCallback: (_: any) => void = () => {\n  };\n\n  get name(): any {\n    return this._name;\n  }\n\n  @Input() set name(n: any) {\n    if (n !== this.name && !this.pool) {\n      this.pool = this.optionCheckboxService.registerGroup(n, this);\n      this.pool.touch().subscribe(() => {\n        this.onTouchedCallback();\n        this.touched.emit();\n      });\n      this.pool.model().subscribe(model => {\n        clearTimeout(this.callbackTimeout);\n        this.callbackTimeout = setTimeout(() => {\n          this.onChangeCallback(model);\n          this.change.emit(model);\n        });\n      });\n\n      this._name = n;\n    }\n  }\n\n  onBlur() {\n  }\n\n  ngOnDestroy() {\n    this.optionCheckboxService.unregisterGroup(this.name, this);\n  }\n\n  writeValue(value: any) {\n    this.optionCheckboxService.writeValue(this.name, value);\n  }\n\n  registerOnChange(fn: any) {\n    this.onChangeCallback = fn;\n  }\n\n  registerOnTouched(fn: any) {\n    this.onTouchedCallback = fn;\n  }\n\n}\n","import {Component} from '@angular/core';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger, MatOption} from '@angular/material/autocomplete';\nimport {AbstractMatFormFieldSelectControl} from '../abstract-mat-form-field-select-control';\nimport {MatChip, MatChipGrid, MatChipInput, MatChipInputEvent} from '@angular/material/chips';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {AsyncPipe} from '@angular/common';\nimport {MatIcon} from '@angular/material/icon';\n\n@Component({\n  selector: 'mcl-select-chips',\n  templateUrl: './select-chips.component.html',\n  styleUrls: ['./select-chips.component.scss'],\n  imports: [\n    MatChip,\n    MatIcon,\n    ReactiveFormsModule,\n    MatAutocompleteTrigger,\n    MatChipInput,\n    MatChipGrid,\n    AsyncPipe,\n    MatAutocomplete,\n    MatOption,\n  ],\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: SelectChipsComponent\n    }\n  ]\n})\nexport class SelectChipsComponent extends AbstractMatFormFieldSelectControl<any> {\n\n  override get shouldFilter() {\n    return false;\n  }\n\n  add(event: MatChipInputEvent): void {\n    this.onTouched();\n\n    const value = event.value;\n\n    if (!!value) {\n      this.value = [\n        ...(this.value || []),\n        value\n      ];\n\n      this.onChange(this.value);\n    }\n  }\n\n  remove(item: string): void {\n    this.onTouched();\n\n    if (this.value) {\n      const index = this.value.indexOf(item);\n\n      if (index >= 0) {\n        this.value.splice(index, 1);\n      }\n\n      if (!this.value.length) {\n        this.value = undefined;\n      }\n\n      this.onChange(this.value);\n    }\n  }\n\n  selected(event: MatAutocompleteSelectedEvent): void {\n    this.onTouched();\n\n    if (!this.value || !this.value.find((v: any) => v === event.option.value)) {\n      this.value = [\n        ...(this.value || []),\n        event.option.value\n      ];\n      this.onChange(this.value);\n    }\n\n    this.inputControl.setValue('');\n  }\n\n}\n\n","<mat-chip-grid #chipList>\n  @for (item of value; track doTrackBy(item)) {\n    <mat-chip\n      [removable]=\"!disabled\"\n      (removed)=\"remove(item)\">\n      {{ resolveLabel(item) }}\n      @if (!disabled) {\n        <mat-icon matChipRemove>cancel</mat-icon>\n      }\n    </mat-chip>\n  }\n  <input\n    [placeholder]=\"placeholder\" required\n    (focusin)=\"focused = true\"\n    (focusout)=\"focused = false\"\n    [formControl]=\"inputControl\"\n    [matAutocomplete]=\"filterAutocomplete\"\n    [matChipInputFor]=\"chipList\"\n    (matChipInputTokenEnd)=\"add($event)\">\n</mat-chip-grid>\n<mat-autocomplete #filterAutocomplete=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n  @for (opcao of filteredOptions | async; track doTrackBy(opcao.value)) {\n    <mat-option [value]=\"opcao.value\">\n      <div [innerHTML]=\"opcao.label\"></div>\n    </mat-option>\n  }\n</mat-autocomplete>\n","import {AfterContentInit, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {MatAutocomplete, MatAutocompleteTrigger, MatOption} from '@angular/material/autocomplete';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {MatInput} from '@angular/material/input';\nimport {AsyncPipe} from '@angular/common';\nimport {AbstractMatFormFieldSelectControl} from '../abstract-mat-form-field-select-control';\n\n@Component({\n  selector: 'mcl-select-autocomplete',\n  templateUrl: './select-autocomplete.component.html',\n  styleUrls: ['./select-autocomplete.component.scss'],\n  imports: [\n    MatInput,\n    MatAutocompleteTrigger,\n    ReactiveFormsModule,\n    MatAutocomplete,\n    MatOption,\n    AsyncPipe\n  ],\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: SelectAutocompleteComponent\n    }\n  ]\n})\nexport class SelectAutocompleteComponent extends AbstractMatFormFieldSelectControl<any> implements AfterContentInit {\n\n  @Input() readonly: any;\n\n  @Output() select = new EventEmitter<any>();\n\n  @Output() blur = new EventEmitter();\n\n\n  onFocus() {\n    this.focused = true;\n    this.stateChanges.next();\n  }\n\n  onBlur() {\n    this.focused = false;\n    this.stateChanges.next();\n    this.blur.emit();\n  }\n\n  didTouch() {\n    this.onTouched();\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this.optionsSubscription?.unsubscribe();\n  }\n\n  override setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    if (isDisabled) {\n      this.control.disable();\n    } else {\n      this.control.enable();\n    }\n  }\n}\n","<input matInput name=\"autocomplete\" autocomplete=\"off\" #input\n       [formControl]=\"inputControl\" [matAutocomplete]=\"autocompleteGeneric\"\n       (keyup)=\"didTouch()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"\n       [disabled]=\"disabled\" [readonly]=\"readonly\"/>\n<mat-autocomplete #autocompleteGeneric=\"matAutocomplete\"\n                  (optionSelected)=\"seleciona($event)\">\n  @for (opcao of filteredOptions | async; track doTrackBy(opcao.value)) {\n    <mat-option [value]=\"opcao.value\">\n      <div [innerHTML]=\"opcao.label\"></div>\n    </mat-option>\n  }\n</mat-autocomplete>\n","import {Directive, Input} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {SELECT_OPTION_PROVIDER, SelectOptionProvider} from './select-option-provider';\nimport {SelectOption} from './select-option';\n\n@Directive({\n    selector: 'mcl-select-autocomplete[delegate]',\n    providers: [{\n        provide: SELECT_OPTION_PROVIDER,\n        useExisting: DelegateOptionProviderDirective,\n    }]\n})\nexport class DelegateOptionProviderDirective implements SelectOptionProvider {\n\n    @Input() delegate?: SelectOptionProvider;\n\n    type(): \"number\" | \"object\" | \"string\" | \"date\" {\n        return this.delegate?.type() || 'string';\n    }\n\n    provide(search: string | null): Observable<SelectOption<any>[]> {\n        return this.delegate!.provide(search);\n    }\n\n    label(value: any): string {\n        return this.delegate!.label(value);\n    }\n\n    trackBy(value: any) {\n        if (!!this.delegate?.trackBy) {\n            return this.delegate!.trackBy!(value);\n        }\n\n        return value;\n    }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {AbstractMatFormFieldSelectControl} from '../abstract-mat-form-field-select-control';\nimport {AsyncPipe, NgClass, NgStyle} from '@angular/common';\nimport {MatCheckbox} from '@angular/material/checkbox';\n\n@Component({\n  selector: 'mcl-select-many-checkbox',\n  templateUrl: './select-many-checkbox.component.html',\n  styleUrls: ['./select-many-checkbox.component.scss'],\n  imports: [\n    NgClass,\n    NgStyle,\n    MatCheckbox,\n    AsyncPipe\n  ],\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: SelectManyCheckboxComponent\n    }\n  ]\n})\nexport class SelectManyCheckboxComponent extends AbstractMatFormFieldSelectControl<any> {\n\n  @Input() layout: 'vertical' | 'grid' | 'horizontal' = 'grid';\n  @Input() layoutColumns = 3;\n\n  override get shouldFilter() {\n    return false;\n  }\n\n  override get shouldLabelFloat(): any {\n    return true;\n  }\n\n  selected(value: any) {\n    return !!this.value?.find((v: any) => this.doTrackBy(v) === this.doTrackBy(value));\n  }\n\n  change(value: any, checked: boolean) {\n    if (checked) {\n      if (!this.selected(value)) {\n        this.value = [\n          ...(this.value || []),\n          value\n        ];\n      }\n    } else if (this.selected(value)) {\n      this.value = [\n        ...(this.value || []).filter((v: any) => v !== value),\n      ];\n    }\n  }\n}\n\n","<div class=\"mat-checkbox-container\"\n     [ngClass]=\"{'vertical':layout === 'vertical','horizontal':layout ==='horizontal','grid': layout === 'grid' }\"\n     [ngStyle]=\"{'max-height': layout === 'grid' ? (((((filteredOptions | async)?.length || 0) / layoutColumns) + 1) * 40) + 'px' : undefined}\">\n  @for (opcao of filteredOptions | async; track doTrackBy(opcao.value)) {\n    <mat-checkbox\n      [required]=\"required\"\n      [disabled]=\"disabled\"\n      [checked]=\"selected(opcao.value)\"\n      (change)=\"change(opcao.value, $event.checked)\">\n      <div [innerHTML]=\"opcao.label\"></div>\n    </mat-checkbox>\n  }\n</div>\n","import {Component, Input} from '@angular/core';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {AbstractMatFormFieldSelectControl} from '../abstract-mat-form-field-select-control';\nimport {MatRadioButton, MatRadioGroup} from '@angular/material/radio';\nimport {AsyncPipe, NgClass} from '@angular/common';\nimport {ReactiveFormsModule} from '@angular/forms';\n\n@Component({\n  selector: 'mcl-select-radio',\n  templateUrl: './select-radio.component.html',\n  styleUrls: ['./select-radio.component.scss'],\n  imports: [\n    MatRadioGroup,\n    NgClass,\n    MatRadioButton,\n    AsyncPipe,\n    ReactiveFormsModule\n  ],\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: SelectRadioComponent\n    }\n  ]\n})\nexport class SelectRadioComponent extends AbstractMatFormFieldSelectControl<any> {\n  @Input() layout: 'vertical' | 'horizontal' = 'vertical';\n\n  override get shouldFilter() {\n    return false;\n  }\n\n  override get shouldLabelFloat(): any {\n    return true;\n  }\n\n}\n\n","<mat-radio-group\n  [ngClass]=\"{'vertical':layout === 'vertical','horizontal':layout ==='horizontal'}\"\n  [required]=\"required\"\n  [disabled]=\"disabled\"\n  [formControl]=\"control\">\n\n  @for (opcao of filteredOptions | async; track doTrackBy(opcao.value)) {\n    <mat-radio-button [value]=\"opcao.value\">\n      <div [innerHTML]=\"opcao.label\"></div>\n    </mat-radio-button>\n  }\n\n</mat-radio-group>\n","import {Directive} from '@angular/core';\nimport {AbstractControl, NG_VALIDATORS, UntypedFormControl, ValidationErrors, Validator} from '@angular/forms';\nimport {phoneNumberValidator} from 'lac-mat-tel-input';\n\n@Directive({\n  selector: 'mcl-input-telefone-intl,[mclInputTelefoneIntl]',\n  providers: [{\n    provide: NG_VALIDATORS,\n    useExisting: InputTelefoneInternacionalValidatorDirective,\n    multi: true,\n  }]\n})\nexport class InputTelefoneInternacionalValidatorDirective implements Validator {\n\n  constructor() {\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    return phoneNumberValidator(control as UntypedFormControl);\n  }\n\n}\n","import {Component, EventEmitter, Input, Output, ViewChild} from '@angular/core';\nimport {FormsModule, NG_VALIDATORS, ReactiveFormsModule} from '@angular/forms';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {AbstractMatFormFieldControl} from '../abstract-mat-form-field-control';\nimport {LacMatTelInputComponent, LacMatTelInputModule} from 'lac-mat-tel-input';\nimport {NgClass} from '@angular/common';\nimport {InputTelefoneInternacionalValidatorDirective} from './input-telefone-internacional-validator.directive';\n\n@Component({\n  selector: 'mcl-input-telefone-intl',\n  templateUrl: './input-telefone-internacional.component.html',\n  styleUrls: ['./input-telefone-internacional.component.scss'],\n  imports: [\n    LacMatTelInputModule,\n    NgClass,\n    FormsModule,\n    ReactiveFormsModule\n  ],\n  providers: [\n    {\n      provide: MatFormFieldControl,\n      useExisting: InputTelefoneInternacionalComponent\n    },\n    {\n      provide: NG_VALIDATORS,\n      useClass: InputTelefoneInternacionalValidatorDirective,\n      multi: true\n    },\n  ]\n})\nexport class InputTelefoneInternacionalComponent\n  extends AbstractMatFormFieldControl<string | undefined> {\n  @Input() preferredContries: Array<string> = ['br'];\n\n  @Input() readonly: any;\n\n  @Output() blur = new EventEmitter<any>();\n\n  @Input() alwaysShowCountry = false;\n\n  @ViewChild('input') telInput?: LacMatTelInputComponent;\n\n  protected override onControlValueChange(value: string | undefined) {\n    this.onChange(value?.replace(/[^\\d+]/g, ''));\n    this.stateChanges.next();\n  }\n\n  override get shouldLabelFloat(): any {\n    return this.focused || !this.empty || this.alwaysShowCountry;\n  }\n\n  override get empty(): boolean {\n    return !this.value;\n  }\n\n  onFocus() {\n    this.focused = true;\n    this.stateChanges.next();\n  }\n\n  onBlur() {\n    this.focused = false;\n    this.stateChanges.next();\n    this.blur.emit();\n  }\n\n  override writeValue(value: string) {\n    this.value = value;\n  }\n}\n","<div class=\"input\">\n  <lac-mat-country-selector\n    [ngClass]=\"{'hidden': !focused && !value && !alwaysShowCountry}\"\n    [preferredCountries]=\"preferredContries\"\n    [selectorFor]=\"input\"\n    searchPlaceholder=\"Filtrar paises...\"></lac-mat-country-selector>\n  <lac-mat-tel-input #input\n                     [formControl]=\"control\"\n                     (focusin)=\"onFocus()\" (focusout)=\"onBlur()\"></lac-mat-tel-input>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","resolveMask","i1.OptionCheckboxService"],"mappings":"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"}