{"version":3,"file":"control-material.mjs","sources":["../../../projects/control-material/src/lib/validators/autocomplete.validator.ts","../../../projects/control-material/src/lib/validators/validators-util.ts","../../../projects/control-material/src/lib/validators/cnpj.validator.ts","../../../projects/control-material/src/lib/validators/hour-minute.validator.ts","../../../projects/control-material/src/lib/validators/ip-address.validator.ts","../../../projects/control-material/src/lib/validators/limit-fields.validator.ts","../../../projects/control-material/src/lib/validators/list.validator.ts","../../../projects/control-material/src/lib/validators/phone-number.validator.ts","../../../projects/control-material/src/lib/auto-focus.directive.ts","../../../projects/control-material/src/lib/control-material.component.ts","../../../projects/control-material/src/lib/control-material.component.html","../../../projects/control-material/src/lib/control-material-autocomplete/control-material-autocomplete.component.ts","../../../projects/control-material/src/lib/control-material-autocomplete/control-material-autocomplete.component.html","../../../projects/control-material/src/lib/control-material-color-picker/control-material-color-picker.component.ts","../../../projects/control-material/src/lib/control-material-color-picker/control-material-color-picker.component.html","../../../projects/control-material/src/lib/control-material-filter/control-material-filter.component.ts","../../../projects/control-material/src/lib/control-material-filter/control-material-filter.component.html","../../../projects/control-material/src/lib/control-material-fontawesome-icon/font-awesome-search/font-awesome-search.service.ts","../../../projects/control-material/src/lib/control-material-fontawesome-icon/font-awesome-search/font-awesome-search.component.ts","../../../projects/control-material/src/lib/control-material-fontawesome-icon/font-awesome-search/font-awesome-search.component.html","../../../projects/control-material/src/lib/control-material-fontawesome-icon/control-material-fontawesome-icon.component.ts","../../../projects/control-material/src/lib/control-material-fontawesome-icon/control-material-fontawesome-icon.component.html","../../../projects/control-material/src/lib/control-material-masked/control-material-masked.component.ts","../../../projects/control-material/src/lib/control-material-masked/control-material-masked.component.html","../../../projects/control-material/src/lib/control-material-minute-second/control-material-minute-second.component.ts","../../../projects/control-material/src/lib/control-material-minute-second/control-material-minute-second.component.html","../../../projects/control-material/src/lib/control-material-number/control-material-number.component.ts","../../../projects/control-material/src/lib/control-material-number/control-material-number.component.html","../../../projects/control-material/src/lib/control-material-password/control-material-password.component.ts","../../../projects/control-material/src/lib/control-material-password/control-material-password.component.html","../../../projects/control-material/src/lib/ngx-flag-picker/ngx-flag-picker.component.ts","../../../projects/control-material/src/lib/ngx-flag-picker/ngx-flag-picker.component.html","../../../projects/control-material/src/lib/control-material-phone/control-material-phone.component.ts","../../../projects/control-material/src/lib/control-material-phone/control-material-phone.component.html","../../../projects/control-material/src/lib/control-material-radio/control-material-radio.component.ts","../../../projects/control-material/src/lib/control-material-radio/control-material-radio.component.html","../../../projects/control-material/src/lib/control-material-search/control-material-search.component.ts","../../../projects/control-material/src/lib/control-material-search/control-material-search.component.html","../../../projects/control-material/src/lib/control-material-select/control-material-select.component.ts","../../../projects/control-material/src/lib/control-material-select/control-material-select.component.html","../../../projects/control-material/src/lib/control-material-textarea/control-material-textarea.component.ts","../../../projects/control-material/src/lib/control-material-textarea/control-material-textarea.component.html","../../../projects/control-material/src/lib/control-material-time/control-material-time.component.ts","../../../projects/control-material/src/lib/control-material-time/control-material-time.component.html","../../../projects/control-material/src/lib/control-material-file/material-file-input/model/file-input.model.ts","../../../projects/control-material/src/lib/control-material-file/material-file-input/file-input/file-input-mixin.ts","../../../projects/control-material/src/lib/control-material-file/material-file-input/file-input/file-input.component.ts","../../../projects/control-material/src/lib/control-material-file/material-file-input/file-input/file-input.component.html","../../../projects/control-material/src/lib/control-material-file/control-material-file.component.ts","../../../projects/control-material/src/lib/control-material-file/control-material-file.component.html","../../../projects/control-material/src/lib/control-material-date-time/control-material-date-time.component.ts","../../../projects/control-material/src/lib/control-material-date-time/control-material-date-time.component.html","../../../projects/control-material/src/public-api.ts","../../../projects/control-material/src/control-material.ts"],"sourcesContent":["import { AbstractControl } from '@angular/forms';\n\nexport function AutocompleteValidator(control: AbstractControl<any, any>): { [key: string]: boolean } | null {\n\n  const valor = control.value;\n\n  if (valor === null || valor === undefined || valor === '') {\n    return null;\n  } else if (!valor.hasOwnProperty('id')) {\n    return { valueControlInvalid: true };\n  }\n\n  return null;\n\n}\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport abstract class ValidatorsUtil {\r\n\r\n    static isCPFValido(value): boolean {\r\n        let strCPF = value;\r\n    \r\n        if (strCPF === undefined || strCPF === '' || strCPF === null) {\r\n          return true;\r\n        }\r\n    \r\n        // Retira todos os pontos (.) e o hifem (-).\r\n        strCPF = strCPF.replace(/\\./g, '').replace('-', '');\r\n    \r\n        // Verifica se digitou repetido todos os numeros\r\n        if (strCPF === '00000000000') {\r\n          return false;\r\n        }\r\n    \r\n        // Logica para verificar se o CPF e validado\r\n        let soma = 0;\r\n        let resto;\r\n    \r\n        for (let i = 1; i <= 9; i++) {\r\n          soma = soma + parseInt(strCPF.substring(i - 1, i)) * (11 - i);\r\n        }\r\n        resto = (soma * 10) % 11;\r\n    \r\n        if ((resto === 10) || (resto === 11)) {\r\n          resto = 0;\r\n        }\r\n        if (resto !== parseInt(strCPF.substring(9, 10))) {\r\n          return false;\r\n        }\r\n    \r\n        soma = 0;\r\n        for (let i = 1; i <= 10; i++) {\r\n          soma = soma + parseInt(strCPF.substring(i - 1, i)) * (12 - i);\r\n        }\r\n        resto = (soma * 10) % 11;\r\n    \r\n        if ((resto === 10) || (resto === 11)) {\r\n          resto = 0;\r\n        }\r\n    \r\n        if (resto !== parseInt(strCPF.substring(10, 11))) {\r\n          return false;\r\n        }\r\n    \r\n        return true;\r\n      }\r\n    \r\n      static isCNPJValido(cnpj: string): boolean {\r\n    \r\n        if (!cnpj) {\r\n          return false;\r\n        }\r\n    \r\n        // Aceita receber o valor como string, número ou array com todos os dígitos\r\n        const validTypes = typeof cnpj === 'string' || Number.isInteger(cnpj) || Array.isArray(cnpj);\r\n    \r\n        // Elimina valor em formato inválido\r\n        if (!validTypes) {\r\n          return false;\r\n        }\r\n    \r\n        // Guarda um array com todos os dígitos do valor\r\n        const match = cnpj.toString().match(/\\d/g);\r\n        const numbers = Array.isArray(match) ? match.map(Number) : [];\r\n    \r\n        // Valida a quantidade de dígitos\r\n        if (numbers.length !== 14) {\r\n          return false;\r\n        }\r\n    \r\n        // Elimina inválidos com todos os dígitos iguais\r\n        const items = Array.from(new Set(numbers));\r\n        if (items.length === 1) {\r\n          return false;\r\n        }\r\n    \r\n        // Cálculo validador\r\n        const calc = (x) => {\r\n          const slice = numbers.slice(0, x);\r\n          let factor = x - 7;\r\n          let sum = 0;\r\n    \r\n          for (let i = x; i >= 1; i--) {\r\n            const n = slice[x - i];\r\n            sum += n * factor--;\r\n            if (factor < 2) {\r\n              factor = 9;\r\n            }\r\n          }\r\n    \r\n          const result = 11 - (sum % 11);\r\n    \r\n          return result > 9 ? 0 : result;\r\n        };\r\n    \r\n        // Separa os 2 últimos dígitos de verificadores\r\n        const digits = numbers.slice(12);\r\n    \r\n        // Valida 1o. dígito verificador\r\n        const digit0 = calc(12);\r\n        if (digit0 !== digits[0]) {\r\n          return false;\r\n        }\r\n    \r\n        // Valida 2o. dígito verificador\r\n        const digit1 = calc(13);\r\n        return digit1 === digits[1];\r\n    \r\n      }\r\n}","import { AbstractControl } from '@angular/forms';\r\nimport { ValidatorsUtil } from './validators-util';\r\n\r\nexport function CnpjValidator(control: AbstractControl<any, any>): { [key: string]: boolean } | null {\r\n\r\n  if (control.value !== null && control.value !== '' && !ValidatorsUtil.isCNPJValido(control.value)) {\r\n    return { cnpjInvalido: true };\r\n  }\r\n\r\n  return null;\r\n\r\n}\r\n","import { AbstractControl } from '@angular/forms';\n\nexport function HourMinuteValidator(control: AbstractControl) {\n\n    // parte 1: de 00 a 23\n    // parte 2: de 00 a 59\n\n    const valor = control.value;\n\n    if (valor && valor.trim().length === 5) {\n        const hora: number = +valor.split(':')[0];\n        const minuto: number = +valor.split(':')[1];\n\n        if (hora < 0 || hora > 23) {\n            return { campoInvalido: true };\n        }\n\n        if (minuto < 0 || minuto > 59) {\n            return { campoInvalido: true };\n        }\n    } else {\n        return { campoInvalido: true };\n    }\n\n    return null;\n  }\n","import { AbstractControl } from '@angular/forms';\n\nexport function IpAddressValidator(control: AbstractControl<any, any>): { [key: string]: boolean } | null {\n\n  const valor = control.value;\n\n  if (valor === null || valor === '') {\n    return null;\n  } else if (/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(valor))\n  {\n    return null;\n  }\n\n  return { ipInvalido: true };\n\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function LimitFieldsValidator(control: AbstractControl<any, any>): { [key: string]: boolean } | null {\n\n  return { valueControlInvalid: true };\n\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function ListValidator(control: AbstractControl) {\n\n  const valor = control.value;\n\n  if (valor === null || valor === '' || valor === undefined || valor.length === 0) {\n    return { required: true };\n  }\n\n  return null;\n\n}\n","import { AbstractControl, ValidatorFn, ValidationErrors } from '@angular/forms';\nimport { isValidPhoneNumber } from 'libphonenumber-js'\n\nexport function PhoneNumberValidator (value: any): ValidatorFn {\n\n  return (control: AbstractControl<any, any>): { [key: string]: boolean } | null => {\n\n    const valor = control.value;\n\n    if (value !== null && value !== undefined && value !== '') {\n      if (valor !== undefined && valor !== null && valor !== '') {\n        let code = value.toUpperCase();\n        if (isValidPhoneNumber(valor, code)) {\n          return null;\n        }\n        return { phoneInvalido: true };\n      } else {\n        return { phoneInvalido: true };\n      }\n    }\n\n    return null;\n\n  }\n}\n","import { AfterContentInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\n    selector: '[appAutoFocus]',\n    standalone: true\n})\r\nexport class AutofocusDirective implements AfterContentInit {\r\n\r\n  @Input() public appAutoFocus: boolean;\r\n\r\n  public constructor(private el: ElementRef) {\r\n  }\r\n\r\n  public ngAfterContentInit() {\r\n    if (!this.appAutoFocus) {\r\n      return;\r\n    }\r\n    setTimeout(() => {\r\n          this.el.nativeElement.focus();\r\n      }, 500);\r\n\r\n  }\r\n}\r\n","import { AfterContentInit, AfterViewChecked, ChangeDetectorRef, Component, ContentChild, EventEmitter, forwardRef, HostBinding, inject, Input, Output } from '@angular/core';\r\nimport { FormControlName, FormsModule, NG_VALUE_ACCESSOR, NgModel, UntypedFormControl, ReactiveFormsModule, Validators, ControlValueAccessor } from '@angular/forms';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { MatFormField, MatLabel, MatPrefix, MatSuffix, MatError } from '@angular/material/form-field';\r\nimport { NgClass } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AutofocusDirective } from './auto-focus.directive';\r\n\r\n@Component({\r\n  selector: 'lib-control-material',\r\n  templateUrl: './control-material.component.html',\r\n  styleUrls: ['./control-material.component.scss'],\r\n  standalone: true,\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialComponent),\r\n        multi: true\r\n    },\r\n  ],\r\n  imports: [AutofocusDirective, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule]\r\n})\r\nexport class ControlMaterialComponent implements AfterViewChecked, AfterContentInit, ControlValueAccessor {\r\n\r\n  static nextId = 0;\r\n\r\n  @Input() invisible = false;\r\n  @Input() label: string | undefined;\r\n  @Input() placeholder: string = '';\r\n  @Input() formControl: UntypedFormControl | undefined;\r\n  @Input() smaller = false;\r\n  @Input() iconBefore = null;\r\n  @Input() iconAfter = null;\r\n  @Input() readonly = false;\r\n  @Input() tooltip = null;\r\n  @Input() inicialFocus = false;\r\n\r\n  @Input() obrigatorio = false;\r\n\r\n  @Input() disabled = false;\r\n  @Input('disabled')\r\n  set setDisabled(value: boolean) {\r\n    if (this.control !== undefined) {\r\n      if (this.control.disabled && !value) {\r\n        this.control.enable({onlySelf: true});\r\n      } else if (!this.control.disabled && value) {\r\n        this.control.disable({onlySelf: true});\r\n      }\r\n    }\r\n  }\r\n\r\n  required = false;\r\n  input: any;\r\n  control: any;\r\n  onChange: any = () => {};\r\n  onTouched: any = () => {};\r\n\r\n  @ContentChild(FormControlName) formControlName: FormControlName | undefined;\r\n  @ContentChild(NgModel) model: NgModel | undefined;\r\n\r\n  index = ControlMaterialComponent.nextId;\r\n  @HostBinding() id = `lib-control-material-${ControlMaterialComponent.nextId++}`;\r\n\r\n  changeDetectorRef = inject(ChangeDetectorRef);\r\n  translate = inject(TranslateService);\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n  ngAfterViewChecked(): void {\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.formControlName === undefined && this.model === undefined && this.formControl === undefined) {\r\n      throw new Error(\r\n        this.translate.instant('CONTROL_NGMODEL_FORMCONTROLNAME_ERROR')\r\n      );\r\n    }\r\n\r\n    this.input = this.formControlName || this.model;\r\n\r\n    if (this.formControlName !== undefined) {\r\n      this.control = this.formControlName.control;\r\n    }\r\n\r\n    if (this.model !== undefined) {\r\n      this.control = this.model.control;\r\n    }\r\n\r\n    if (this.formControl !== undefined) {\r\n      this.control = this.formControl;\r\n    }\r\n\r\n    if (this.control.validator !== null) {\r\n      const _validator: any = this.control.validator('');\r\n      this.required = _validator && _validator.required;\r\n    }\r\n\r\n    this.label = this.label !== undefined && this.label !== null ? (this.label + ' ') : undefined;\r\n\r\n    let validadores = [];\r\n    let updateValidator = false;\r\n\r\n    if (this.obrigatorio) {\r\n      this.required = true;\r\n      updateValidator = true;\r\n      validadores.push(Validators.required)\r\n    }\r\n\r\n    if (updateValidator) {\r\n      this.control.setValidators(validadores);\r\n      this.control.updateValueAndValidity();\r\n    }\r\n\r\n    if (this.control !== undefined && this.disabled) {\r\n      this.control.disable({onlySelf: true});\r\n    }\r\n\r\n  }\r\n\r\n  blur() {\r\n    this.onBlur.emit(this.control.value);\r\n  }\r\n\r\n  hasError(): boolean {\r\n    return (\r\n      this.control.invalid &&\r\n      (this.control.dirty ||\r\n        this.control.touched ||\r\n        (this.formControlName !== undefined && this.input.formDirective.submitted)\r\n      )\r\n    );\r\n  }\r\n\r\n  public get errorMessage(): string | null {\r\n    if (this.hasError()) {\r\n      return this.getErrorMessage();\r\n    }\r\n    return null;\r\n  }\r\n\r\n  private getErrorMessage(): string | null {\r\n    if (this.control.errors.required) {\r\n      return this.translate.instant('CONTROL_CAMPO_OBRIGATORIO');\r\n    } else if (this.control.errors.minlength) {\r\n      return this.translate.instant('CONTROL_MINIMO_CARACTERES', {numero: this.control.errors.minlength.requiredLength});\r\n    } else if (this.control.errors.maxlength) {\r\n      return this.translate.instant('CONTROL_MAXIMO_CARACTERES', {numero: this.control.errors.maxlength.requiredLength});\r\n    } else if (this.control.errors.min) {\r\n      return this.translate.instant('CONTROL_VALOR_MINIMO', {numero: this.control.errors.min.min});\r\n    } else if (this.control.errors.max) {\r\n      return this.translate.instant('CONTROL_VALOR_MAXIMO', {numero: this.control.errors.max.max});\r\n    } else if (this.control.errors.email) {\r\n      return this.translate.instant('CONTROL_EMAIL_INVALIDO');\r\n    } else if (this.control.errors.valueControlInvalid) {\r\n      return this.translate.instant('CONTROL_VALOR_INVALIDO');\r\n    } else if (this.control.errors.cpfInvalido) {\r\n      return this.translate.instant('CONTROL_CPF_INVALIDO');\r\n    } else if (this.control.errors.cnpjInvalido) {\r\n      return this.translate.instant('CONTROL_CNPJ_INVALIDO');\r\n    } else if (this.control.errors.ipInvalido) {\r\n      return this.translate.instant('CONTROL_IP_INVALIDO');\r\n    } else if (this.control.errors.phoneInvalido) {\r\n      return this.translate.instant('CONTROL_PHONE_INVALIDO');\r\n    } else if (this.control.errors.invalidName) {\r\n      return this.translate.instant('CONTROL_NOME_JA_EXISTE');\r\n    } else if (this.control.errors.invalidColor) {\r\n      return this.translate.instant('COR_INVALIDA');\r\n    }\r\n    return null;\r\n  }\r\n\r\n  // GlobalUtil\r\n  getDateUTC(data: Date) {\r\n    const dateWithNoTimezone = new Date(\r\n      data.getUTCFullYear(),\r\n      data.getUTCMonth(),\r\n      data.getUTCDate(),\r\n      data.getUTCHours(),\r\n      data.getUTCMinutes(),\r\n      data.getUTCSeconds()\r\n    );\r\n    return dateWithNoTimezone;\r\n  }\r\n\r\n  writeValue(value) {\r\n    if (value !== undefined && value !== null) {\r\n      if (this.control !== undefined &&\r\n          this.control.value !== value) {\r\n        this.control.setValue(value);\r\n      }\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn) {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n}\r\n","<mat-form-field [class.invisible]=\"invisible\" appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}@if (tooltip !== null) {\r\n      <span><i class=\"fa-regular fa-circle-info\"></i></span>\r\n    }</mat-label>\r\n  }\r\n  <input [readonly]=\"readonly\" matInput [formControl]=\"control\" [placeholder]=\"placeholder\" [appAutoFocus]=\"inicialFocus\" (blur)=\"blur()\" />\r\n  @if (iconBefore !== null) {\r\n    <span class=\"mr-1\" matPrefix>\r\n      <mat-icon [class]=\"iconBefore\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (iconAfter !== null) {\r\n    <span matSuffix>\r\n      <mat-icon [class]=\"iconAfter\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { NG_VALUE_ACCESSOR, Validators, FormsModule, ReactiveFormsModule, AbstractControl } from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { ControlMaterialComponent } from './../control-material.component';\nimport { Component, AfterContentInit, Input, forwardRef, Output, EventEmitter } from '@angular/core';\nimport { startWith, map } from 'rxjs/operators';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgClass, AsyncPipe, DatePipe } from '@angular/common';\nimport { MatOption } from '@angular/material/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';\nimport { MatInput } from '@angular/material/input';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatFormField, MatLabel, MatSuffix, MatPrefix, MatError } from '@angular/material/form-field';\n\n@Component({\n    selector: 'lib-control-material-autocomplete',\n    templateUrl: './control-material-autocomplete.component.html',\n    styleUrls: ['../control-material.component.scss', './control-material-autocomplete.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ControlMaterialAutocompleteComponent), // replace name as appropriate\n            multi: true\n        }\n    ],\n    standalone: true,\n    imports: [MatFormField, MatLabel, MatProgressSpinner, MatSuffix, MatInput, FormsModule, MatAutocompleteTrigger, ReactiveFormsModule, MatPrefix, MatIcon, MatTooltip, MatIconButton, MatError, MatAutocomplete, MatOption, NgClass, AsyncPipe, DatePipe, TranslateModule]\n})\nexport class ControlMaterialAutocompleteComponent extends ControlMaterialComponent implements AfterContentInit {\n\n  filteredOptions: Observable<any[]>;\n  _selectList = [];\n  loading = false;\n  loadingData = false;\n\n  @Input() showId = false;\n  @Input() showLabel = false;\n\n  @Input() bindId = 'id';\n  @Input() bindLabel = 'nome';\n  @Input() bindArray = [];\n  @Input() bindImageField = null;\n  @Input() bindIconField = null;\n\n  @Input() observableList: Observable<any>;\n  @Input() disableClear = false;\n  @Input() largeData = true;\n\n  @Input('loading') setLoading(value) {\n    this.loading = value;\n    this.loadingData = value;\n  }\n\n  @Input() smallText = false;\n\n  @Input('selectList')\n  set selectList(value) {\n    const changed = this._selectList !== undefined && this._selectList !== null && this._selectList.length > 0 && this._selectList !== value;\n    this._selectList = value;\n    this.filteredOptions = of(value);\n    if (value !== undefined && value !== null && value.length > 0) {\n      if (this.control !== undefined) {\n        if (this._selectList !== undefined && this._selectList !== null && this._selectList.length > 0) {\n          this.loadingData =  true;\n          if (this.control.value !== undefined && this.control.value !== null && this.control.value !== '') {\n            if (this.control.value instanceof Object) {\n              const value = this._selectList.find(x => x[this.bindId] === this.control.value[this.bindId]);\n              if (value !== undefined && value !== null) {\n                this.control.setValue(value);\n              }\n            } else {\n              this.control.setValue(this.control.value);\n            }\n\n            this.selectItem.emit(this.control.value);\n          } else {\n            this.control.setValue(null);\n          }\n\n          this.filteredOptions = this.control.valueChanges\n          .pipe(\n            startWith(''),\n            //map(value => typeof value === 'string' || value === null ? value : this.getLabel(value)),\n            map(value => typeof value === 'string' ? this._filter(value) : this._selectList),\n          );\n        }\n        this.loadingData = false;\n      }\n    }\n  }\n\n  @Output() selectItem: EventEmitter<any> = new EventEmitter();\n  @Output() clearItem: EventEmitter<any> = new EventEmitter();\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    this.updateObservableList();\n\n    this.filteredOptions = this.control.valueChanges\n      .pipe(\n        startWith(''),\n        //map(value => typeof value === 'string' || value === null ? value : this.getLabel(value)),\n        map(value => typeof value === 'string' ? this._filter(value) : this._selectList),\n      );\n\n      if (this.required) {\n        this.control.setValidators([Validators.required, searchControlValidator]);\n      }\n  }\n\n  updateObservableList() {\n    if (this.observableList !== undefined) {\n      this.loading = true;\n      this.loadingData =  true;\n        this.observableList\n        .subscribe(response => {\n          this._selectList = response;\n          if (response !== undefined && response !== null && response.length > 0) {\n            if (this.control.value !== undefined && this.control.value !== null && this.control.value !== '') {\n              if (this.control.value instanceof Object) {\n                const value = this._selectList.find(x => x[this.bindId] === this.control.value[this.bindId]);\n                if (value !== undefined && value !== null) {\n                  this.control.setValue(value);\n                } else {\n                  this.control.setValue(this.control.value);\n                }\n              } else {\n                this.control.setValue(this.control.value);\n              }\n\n              this.selectItem.emit(this.control.value);\n            } else {\n              this.control.setValue(null);\n            }\n          }\n          this.loadingData = false;\n          this.loading = false;\n        });\n    }\n  }\n\n  displayBindLabel(value: any) {\n    if (value) {\n      return this.getLabel(value);\n    }\n  }\n\n  getLabel(value) {\n    if (value instanceof Object) {\n      const objects = this.bindLabel.split('.');\n      let retorno = null;\n      objects.forEach(element => {\n        retorno = retorno === null ? value[element] : retorno[element];\n      });\n\n      if (this.showId) {\n        retorno = value[this.bindId] + ' - ' + retorno;\n      }\n\n      return retorno;\n    } else {\n      return value[this.bindLabel];\n    }\n  }\n\n  limparItem($event) {\n    if (this.control.value !== undefined && this.control.value !== null && this.control.value !== '') {\n      $event.stopPropagation();\n      this.control.setValue(null);\n      this.clearItem.emit();\n    }\n  }\n\n  optionSelected($event) {\n    this.selectItem.emit($event.option.value);\n  }\n\n  private _filter(name: string): any[] {\n    const filterValue = name.toLowerCase();\n    if (this._selectList !== undefined && this._selectList !== null && this._selectList.length > 0) {\n      return this._selectList.filter(option => this.getLabel(option).toLowerCase().indexOf(filterValue) > -1);\n    }\n    return [];\n  }\n\n}\n\nexport function searchControlValidator(control: AbstractControl) {\n  if (control.value !== undefined && control.value !== null && !(control.value instanceof Object)) {\n    return { valueControlInvalid: true };\n  }\n  return null;\n}\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\" >\n  @if (label !== undefined && label !== null) {\n    <mat-label>{{label}}</mat-label>\n  }\n  @if (loadingData) {\n    <mat-spinner matSuffix [diameter]=\"18\" style=\"float: right; margin-left: 8px\"></mat-spinner>\n  }\n  <input matInput [readonly]=\"readonly\" [formControl]=\"control\" [placeholder]=\"placeholder\" [matAutocomplete]=\"auto\" />\n\n  <div class=\"mat-select-arrow-wrapper\" style=\"position: absolute; right: 0; bottom: 50%\"><div class=\"mat-select-arrow\"></div></div>\n\n  @if (bindImageField !== null && control.value !== null && control.value !== '') {\n    <span matPrefix>\n      @if (bindImageField !== null) {\n        <img class=\"mr-1\" with=\"24\" height=\"24\" [src]=\"control.value[bindImageField]\">\n      }\n    </span>\n  }\n\n  @if (bindIconField !== null && control.value !== null && control.value !== '') {\n    <span matPrefix>\n      @if (bindIconField !== null) {\n        <i style=\"font-size: 18px\" class=\"{{control.value[bindIconField]}} mr-1\"></i>\n      }\n    </span>\n  }\n\n  @if (tooltip !== null) {\n    <span matSuffix>\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\n    </span>\n  }\n\n  @if (!disableClear && control.value && !control.disabled && !readonly) {\n    <button mat-icon-button type=\"button\" matSuffix aria-label=\"Clear\" (click)=\"limparItem($event);\">\n      <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\n    </button>\n  }\n\n  @if (hasError()) {\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\n  }\n\n  <mat-autocomplete #auto [displayWith]=\"displayBindLabel.bind(this)\" (optionSelected)=\"optionSelected($event)\">\n\n    @if (loading) {\n      <mat-option disabled class=\"loading\">\n        <mat-spinner diameter=\"35\"></mat-spinner>\n      </mat-option>\n    }\n\n    @if (!loading && (filteredOptions | async)?.length===0) {\n      <mat-option disabled>\n        {{'N_REGISTRO_ENCONTRADO' | translate}}\n      </mat-option>\n    }\n    <ng-container>\n      @for (item of filteredOptions | async; track item) {\n        <mat-option [value]=\"item\"[ngClass]=\"{'large-data': largeData, 'small-text': smallText }\">\n          @if (bindImageField !== null) {\n            <img class=\"mr-1\" with=\"24\" height=\"24\" [src]=\"item[bindImageField]\">\n          }\n          @if (bindIconField !== null) {\n            <i class=\"{{item[bindIconField]}} mr-1\" style=\"font-size: 18px;\"></i>\n          }\n          <span>\n            @if (bindArray === undefined || bindArray === null || bindArray.length === 0 || showLabel === true) {\n              <span>{{ getLabel(item) }}</span>\n            }\n            @if (bindArray.length > 0) {\n              <span>\n                @if (showLabel === true) {\n                  <span> - </span>\n                }\n                @for (value of bindArray; track value; let index = $index) {\n                  <span>\n                    @if (value.type==='string') {\n                      <span>{{item[value.value]}}</span>\n                    }\n                    @if (value.type==='data' && (value.format === undefined || value.format === null)) {\n                      <span>{{item[value.value]}}</span>\n                    }\n                    @if (value.type==='data' && value.format !== null) {\n                      <span>{{item[value.value] | date:value.format}}</span>\n                    }\n                    @if (index+1 < bindArray.length) {\n                      <span> - </span>\n                    }\n                  </span>\n                }\n              </span>\n            }\n          </span>\n        </mat-option>\n      }\n    </ng-container>\n  </mat-autocomplete>\n</mat-form-field>\n\n","import { ControlMaterialComponent } from './../control-material.component';\nimport { Component, AfterContentInit, Input, forwardRef } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgxColorsModule } from 'ngx-colors';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormField, MatLabel, MatSuffix, MatError } from '@angular/material/form-field';\n\n@Component({\n    selector: 'lib-control-material-color-picker',\n    templateUrl: './control-material-color-picker.component.html',\n    styleUrls: ['../control-material.component.scss', './control-material-color-picker.component.scss'],\n    standalone: true,\n    providers: [\n      {\n          provide: NG_VALUE_ACCESSOR,\n          useExisting: forwardRef(() => ControlMaterialColorPickerComponent),\n          multi: true\n      },\n    ],\n    imports: [MatFormField, MatLabel, MatInput, FormsModule, ReactiveFormsModule, NgxColorsModule, MatSuffix, MatIcon, MatError, TranslateModule]\n})\nexport class ControlMaterialColorPickerComponent extends ControlMaterialComponent implements AfterContentInit {\n\n  @Input() format = 'hex';\n  @Input() hideTextInput = false;\n  @Input() colorsAnimation = 'popup' as 'popup' | 'slide-in';\n  @Input() colorPickerControls = 'default' as 'default' | 'only-alpha' | 'no-alpha';\n\n   override ngAfterContentInit() {\n     super.ngAfterContentInit();\n   }\n\n   updateControlValue(valor) {\n    this.control.value = valor;\n    this.control.setValue(valor);\n   }\n\n   changeColor(event) {\n    if (!this.readonly) {\n      this.control.setValue(event)\n    }\n   }\n\n}\n","<mat-form-field [class.invisible]=\"invisible\" appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\n  @if (label !== undefined && label !== null) {\n    <mat-label>{{label}}@if (tooltip !== null) {\n      <span><i class=\"fa-regular fa-circle-info\"></i></span>\n    }</mat-label>\n  }\n  <input matInput [formControl]=\"control\" [placeholder]=\"placeholder\" [readonly]=\"true\" />\n  <ngx-colors\n    class=\"color-picker\"\n    matSuffix\n    ngx-colors-trigger\n    [colorsAnimation]=\"colorsAnimation\"\n    [format]=\"format\"\n    [hideTextInput]=\"hideTextInput\"\n    [colorPickerControls]=\"colorPickerControls\"\n    acceptLabel=\"{{ 'SALVAR' | translate }}\"\n    cancelLabel=\"{{ 'CANCELAR' | translate }}\"\n    [formControl]=\"control\"\n    attachTo=\"wrapper\"\n    (change)=\"updateControlValue($event)\"\n  ></ngx-colors>\n  @if (iconAfter !== null) {\n    <span matSuffix>\n      <mat-icon [class]=\"iconAfter\"></mat-icon>\n    </span>\n  }\n  @if (hasError()) {\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\n  }\n</mat-form-field>\n","import { ControlMaterialComponent } from './../control-material.component';\nimport { Component, forwardRef } from '@angular/core';\nimport { trigger, state, transition, style, animate } from '@angular/animations';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\n\n@Component({\n    selector: 'lib-control-material-filter',\n    templateUrl: './control-material-filter.component.html',\n    styleUrls: ['../control-material.component.scss', './control-material-filter.component.scss'],\n    animations: [\n        trigger('filterAppeared', [\n            state('false', style({ opacity: 0, width: '0px', transform: 'translateX(100%)' })),\n            /*state('true', style({opacity: 1, width: '100%', transform: 'translateX(0)'})),*/\n            transition('false => true', [\n                style({ opacity: 1, width: '100%' }),\n                animate('300ms 0s ease-in', style({ transform: 'translateX(0)' }))\n            ]),\n            transition('true => false', [\n                animate('300ms 0s ease-out', style({ transform: 'translateX(100%)' }))\n            ])\n        ])\n    ],\n    standalone: true,\n    providers: [\n      {\n          provide: NG_VALUE_ACCESSOR,\n          useExisting: forwardRef(() => ControlMaterialFilterComponent), // replace name as appropriate\n          multi: true\n      }\n    ],\n    imports: [MatFormField, MatLabel, MatInput, FormsModule, ReactiveFormsModule, MatIconButton, MatSuffix, MatIcon]\n})\nexport class ControlMaterialFilterComponent extends ControlMaterialComponent {\n\n  showFilterInput = false;\n\n  get value() {\n    return this.control.value;\n  }\n\n  set value(val) {\n    this.control.setValue(val);\n\n    this.onChange(val);\n    this.onTouched();\n  }\n\n\n}\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\n  @if (label !== undefined && label !== null) {\n    <mat-label>{{label}}</mat-label>\n  }\n  <input matInput [formControl]=\"control\" [placeholder]=\"placeholder\"/>\n  @if (formControlName.value && !formControlName.disabled) {\n    <button mat-icon-button matSuffix aria-label=\"Clear\" (click)=\"value=''\">\n      <mat-icon class=\"fa-solid fa-filter-circle-xmark\"></mat-icon>\n    </button>\n  }\n</mat-form-field>\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, firstValueFrom, lastValueFrom, map } from 'rxjs';\n\n@Injectable()\nexport class FontAwesomeSearchService {\n\n  http = inject(HttpClient);\n  FA_API = 'https://api.fontawesome.com';\n  FA_AUTHORIZATION = 'Bearer 3076D3D3-2984-4399-A93E-0869E99F37B1';\n\n  getToken(): Observable<any> {\n    const url = `${this.FA_API}/token`;\n    const headers = new HttpHeaders().set('Authorization', `${this.FA_AUTHORIZATION}`);\n    return this.http.post(url, null, { headers: headers }).pipe(\n      map((response) => {\n        return response;\n      }),\n    );\n  }\n\n  async getIcons(search, qtd) {\n    const token = await firstValueFrom(this.getToken());\n\n    const headers = new HttpHeaders().set('Authorization', `${token.token_type} ${token.access_token}`);\n    return await lastValueFrom(this.http.post(this.FA_API, this.getQuery(search, qtd), { headers: headers }));\n  }\n\n  getQuery(search, qtd) {\n    return { \"query\": \"query { search (version: \\\"6.0.0\\\", query: \\\"\"+search+\"\\\", first: \"+qtd+\") {id unicode label familyStylesByLicense { free { family style } pro {family style} } } }\" }\n  }\n}\n","import { FontAwesomeSearchService } from './font-awesome-search.service';\nimport { MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';\nimport { AfterContentInit, Component, OnInit } from '@angular/core';\nimport { Observable, debounceTime, distinctUntilChanged, startWith } from 'rxjs';\nimport { FormBuilder, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatButtonToggleGroup, MatButtonToggle } from '@angular/material/button-toggle';\nimport { ControlMaterialComponent } from '../../control-material.component';\n\n@Component({\n    selector: 'lib-font-awesome-search',\n    templateUrl: './font-awesome-search.component.html',\n    styleUrls: ['./font-awesome-search.component.scss'],\n    providers: [FontAwesomeSearchService],\n    standalone: true,\n    imports: [MatDialogTitle, MatButtonToggleGroup, MatButtonToggle, MatDialogContent, FormsModule, ReactiveFormsModule, ControlMaterialComponent, MatProgressSpinner, MatButton, MatTooltip, MatDialogActions, MatButton, TranslateModule]\n})\n\nexport class FontAwesomeSearchComponent implements OnInit, AfterContentInit {\n\n  selectedIcon = null;\n  filteredOptions: Observable<any[]>;\n\n  nomesIcones;\n  itensPorPagina = 18;\n  listaIcones = [];\n  loading = true;\n\n  viewTypes = [\n    {id: 1, name: 'LARGE', icon: 'fa-solid fa-grid-2', qtdItens: 6, columnSize: 2, classe: 'large-icon-button', size: '3', fontSize: '.8em'},\n    {id: 2, name: 'MIDI', icon: 'fa-solid fa-grid', qtdItens: 9, columnSize: 1, classe: 'midi-icon-button', size: '2', fontSize: '.65em'},\n    {id: 3, name: 'SMALL', icon: 'fa-solid fa-list-ul', qtdItens: 6, columnSize: 2, classe: 'small-icon-button', size: '1', fontSize: '.7em'}\n  ];\n  viewTypeSelected = this.viewTypes[0];\n\n  searchForm: FormGroup;\n\n  constructor(public dialogRef: MatDialogRef<FontAwesomeSearchComponent>,\n              private formBuilder: FormBuilder,\n              private service: FontAwesomeSearchService) {\n    //this.service.getIcons('donut').then(res => console.log(res));\n  }\n\n  ngOnInit(): void {\n    this.initForm();\n  }\n\n  initForm() {\n    this.searchForm = this.formBuilder.group({\n      search: this.formBuilder.control(null, Validators.required)\n    });\n  }\n\n  protected salvar() {\n    this.dialogRef.close(this.selectedIcon);\n  }\n\n  closeDialog() {\n    this.dialogRef.close(null);\n  }\n\n  ngAfterContentInit() {\n\n    this.searchForm.get('search').valueChanges\n      .pipe(\n        startWith(''),\n        debounceTime(1000),\n        distinctUntilChanged(),\n      ).subscribe(res => {\n        this.buscarIconesApi(res);\n      });\n  }\n\n\n\n  async buscarIconesApi(nome, showMore = false) {\n    this.loading = showMore ? false : true;\n    nome = nome === null || nome === '' ? 'tem' : nome;\n    const data = await this.service.getIcons(nome, this.itensPorPagina);\n    this.listaIcones = showMore === false ? [] : this.listaIcones;\n    //console.log(data['data']['search'])\n    if (data !== null && data['data']['search'].length > 0) {\n      const icones = data['data']['search'];\n      for(let i=0; i<icones.length; i++) {\n        const family = icones[i].familyStylesByLicense.pro;\n        //for (let j=0; j<family.length; j++) {\n          if (family.findIndex(x => x.family === 'classic' && x.style === 'solid') > -1) {\n            const item = {\n              id: i,\n              //classe: 'fa-' + family[j].style + (family[j].family === 'classic' ? '' : ' fa-'+family[j].family) + ' fa-'+icones[i].id,\n              classe: 'fas fa-'+icones[i].id,\n              nome: icones[i].id\n            }\n            if (showMore) {\n              if (this.listaIcones.findIndex(x => x.classe === item.classe) === -1) {\n                this.listaIcones.push(item);\n              }\n            } else {\n              this.listaIcones.push(item);\n            }\n          }\n        //}\n      }\n    }\n    this.loading = false;\n  }\n\n  selecionarIcone(icone) {\n    //console.log(icone)\n    if (this.selectedIcon !== null) {\n      if (this.selectedIcon.classe === icone.classe) {\n        this.selectedIcon = null;\n      } else {\n        this.selectedIcon = icone;\n      }\n    } else {\n      this.selectedIcon = icone;\n    }\n  }\n\n  showMore() {\n    this.itensPorPagina += 6;\n    this.buscarIconesApi(this.searchForm.get('search').value, true);\n  }\n\n\n}\n","<h2 mat-dialog-title>\n  {{'PESQUISAR_ICONE' | translate}}\n  <div style=\"float: right;\">\n    <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [value]=\"viewTypes[0]\" #group=\"matButtonToggleGroup\" name=\"viewType\" aria-label=\"View Type\">\n      @for (item of viewTypes; track item) {\n        <mat-button-toggle [value]=\"item\">\n          <i class=\"{{item.icon}}\"></i>\n        </mat-button-toggle>\n      }\n    </mat-button-toggle-group>\n  </div>\n</h2>\n<mat-dialog-content>\n  <form [formGroup]=\"searchForm\">\n    <lib-control-material label=\"{{'PESQUISAR_ICONE' | translate}}\" [smaller]=\"true\" style=\"width: 100%;\">\n      <input formControlName=\"search\" />\n    </lib-control-material>\n  </form>\n  @if (loading === true) {\n    <mat-spinner diameter=\"32\"></mat-spinner>\n  }\n  @if (loading === false) {\n    <div style=\"overflow: hidden;\" class=\"row mx-0 px-0 text-left\">\n      @for (icone of listaIcones; track icone) {\n        <div class=\"mt-1 mx-0 px-1 col\" style=\"flex-grow: 0;\">\n          <button [class.inline-button]=\"group?.value?.id === 3\" matTooltip=\"{{icone.nome}}\" matTooltipPosition=\"above\" [class.selected]=\"icone.classe === selectedIcon?.classe\" mat-stroked-button class=\"{{group?.value?.classe}}\" (click)=\"selecionarIcone(icone)\">\n            <div [class.d-inline-flex]=\"group?.value?.id === 3\" style=\"width: 100%; align-items: center;\">\n              <i class=\"custom-icon {{icone.classe}} mr-1\"></i>\n              <div class=\"icon-text\" style=\"font-size: {{group?.value?.fontSize}}\">{{icone.nome}}</div>\n            </div>\n          </button>\n        </div>\n      }\n      @if (loading === false && listaIcones.length === itensPorPagina) {\n        <div class=\"col-12\">\n          <button type=\"button\" class=\"btn-block mt-2 ml-0 mr-1\" mat-raised-button color=\"accent\" (click)=\"showMore()\">\n            {{'SHOW_MORE' | translate}}\n          </button>\n        </div>\n      }\n    </div>\n  }\n</mat-dialog-content>\n<mat-dialog-actions class=\"mt-2 justify-content-between\">\n  <button mat-stroked-button color=\"accent\" type=\"button\" (click)=\"closeDialog()\">\n    <i class=\"fa-solid fa-xmark mr-1\"></i> {{'CANCELAR' | translate}}\n  </button>&nbsp;\n  <button type=\"button\" [disabled]=\"selectedIcon === null\" mat-raised-button color=\"primary\" type=\"button\" (click)=\"salvar()\">\n    <i class=\"fa-solid fa-check mr-1\"></i> {{'OK' | translate}}\n  </button>\n</mat-dialog-actions>\n","import { startWith } from 'rxjs/operators';\nimport { Observable, map } from 'rxjs';\nimport { ControlMaterialComponent } from './../control-material.component';\nimport { NG_VALUE_ACCESSOR, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Component, forwardRef, AfterContentInit, Input, Output, EventEmitter } from '@angular/core';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/pro-solid-svg-icons';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { FontAwesomeSearchComponent } from './font-awesome-search/font-awesome-search.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgClass, AsyncPipe, DatePipe } from '@angular/common';\nimport { MatOption } from '@angular/material/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';\nimport { MatInput } from '@angular/material/input';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatFormField, MatLabel, MatSuffix, MatPrefix, MatError } from '@angular/material/form-field';\n\n@Component({\n    selector: 'lib-control-material-fontawesome-icon',\n    templateUrl: './control-material-fontawesome-icon.component.html',\n    styleUrls: ['../control-material.component.scss', './control-material-fontawesome-icon.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ControlMaterialFontawesomeIconComponent), // replace name as appropriate\n            multi: true\n        }\n    ],\n    standalone: true,\n    imports: [MatFormField, MatLabel, MatProgressSpinner, MatSuffix, MatInput, FormsModule, MatAutocompleteTrigger, ReactiveFormsModule, MatPrefix, MatIcon, MatTooltip, MatIconButton, MatError, MatAutocomplete, MatOption, NgClass, AsyncPipe, DatePipe, TranslateModule]\n})\nexport class ControlMaterialFontawesomeIconComponent extends ControlMaterialComponent implements AfterContentInit {\n\n  filteredOptions: Observable<any[]>;\n  loading = false;\n  loadingData = false;\n\n  bindIconField = 'classe';\n  nomesIcones;\n\n  library;\n  icones;\n\n  @Input() showId = false;\n  @Input() bindId = 'id';\n  @Input() bindLabel = 'nome';\n  @Input() bindArray = [];\n  @Input() showLabel = false;\n  @Input() smallText = false;\n  @Input() largeData = true;\n\n  @Output() selectItem: EventEmitter<any> = new EventEmitter();\n  @Output() clearItem: EventEmitter<any> = new EventEmitter();\n\n  constructor(private dialog: MatDialog) {\n    super();\n    this.library = library;\n    this.library.add(fas);\n    this.icones = Object.keys(library['definitions'].fas);\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    this.filteredOptions = this.control.valueChanges\n      .pipe(\n        startWith(''),\n        map(value => this.buscarIcones(value)),\n      );\n\n      if (this.required) {\n        this.control.setValidators([Validators.required]);\n      }\n  }\n\n  buscarIcones(nome) {\n    //console.log('nome', nome)\n    let listaIcones = [];\n\n    if (nome !== null) {\n      this.nomesIcones = this.icones.map(x => {return {name: 'fa-'+x}});\n      let incluiu = 0;\n      if (nome instanceof Object) {\n        listaIcones = [nome];\n      } else {\n        if (typeof nome === 'string') {\n          const filterValue = nome.toLowerCase();\n          for (let i=0; i<this.nomesIcones.length; i++) {\n            if (this.nomesIcones[i].name.indexOf(filterValue) > -1) {\n              const item = {\n                id: i,\n                classe: 'fas '+this.nomesIcones[i].name,\n                nome: this.nomesIcones[i].name}\n                //unicode: this.nomesIcones[i].unicode}\n              listaIcones.push(item);\n              incluiu++;\n            }\n            if (incluiu >= 15) {\n              return listaIcones;\n            }\n          }\n        } else {\n          return this.buscarIcones('');\n        }\n      }\n    } else {\n      return this.buscarIcones('');\n    }\n    return listaIcones;\n  }\n\n  openDialog() {\n    const dialogConfig = new MatDialogConfig();\n\n    dialogConfig.disableClose = true;\n    dialogConfig.width = 'inherit';\n    dialogConfig.maxWidth = 900;\n    dialogConfig.autoFocus = true;\n    dialogConfig.position = {\n      top: '120px'\n    };\n    dialogConfig.data = {};\n    const dialogRef = this.dialog.open(FontAwesomeSearchComponent, dialogConfig);\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result !== null) {\n        this.control.setValue(result);\n      }\n    });\n\n  }\n\n  displayBindLabel(value: any) {\n    if (value) {\n      return this.getLabel(value);\n    }\n  }\n\n  getLabel(value) {\n    if (value instanceof Object) {\n      const objects = this.bindLabel.split('.');\n      let retorno = null;\n      objects.forEach(element => {\n        retorno = retorno === null ? value[element] : retorno[element];\n      });\n\n      if (this.showId) {\n        retorno = value[this.bindId] + ' - ' + retorno;\n      }\n\n      return retorno;\n    } else {\n      return value[this.bindLabel];\n    }\n  }\n\n  limparItem($event) {\n    if (this.control.value !== undefined && this.control.value !== null && this.control.value !== '') {\n      $event.stopPropagation();\n      this.control.setValue(null);\n      this.clearItem.emit();\n    }\n  }\n\n  optionSelected($event) {\n    this.selectItem.emit($event.option.value);\n  }\n\n}\n","<div class=\"d-inline-flex\">\n  <mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\" >\n    @if (label !== undefined && label !== null) {\n      <mat-label>{{label}}</mat-label>\n    }\n    @if (loadingData) {\n      <mat-spinner matSuffix [diameter]=\"18\" style=\"float: right; margin-left: 8px\"></mat-spinner>\n    }\n    <input matInput [readonly]=\"readonly\" [formControl]=\"control\" [placeholder]=\"placeholder\" [matAutocomplete]=\"auto\" />\n\n    <div class=\"mat-select-arrow-wrapper\" style=\"position: absolute; right: 0; bottom: 50%\">\n      <div class=\"mat-select-arrow\"></div>\n    </div>\n\n    @if (control.value !== null && control.value !== '') {\n      <span matPrefix>\n        <i style=\"font-size: 18px\" class=\"{{control.value.classe}} mr-1\"></i>\n      </span>\n    }\n\n    @if (tooltip !== null) {\n      <span matSuffix>\n        <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\n      </span>\n    }\n\n    @if (control.value && !control.disabled && !readonly) {\n      <button mat-icon-button type=\"button\" matSuffix aria-label=\"Clear\" (click)=\"limparItem($event);\">\n        <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\n      </button>\n    }\n\n    @if (hasError()) {\n      <mat-error class=\"danger\">{{errorMessage}}</mat-error>\n    }\n\n    <mat-autocomplete #auto [displayWith]=\"displayBindLabel.bind(this)\" (optionSelected)=\"optionSelected($event)\">\n\n      @if (loading) {\n        <mat-option disabled class=\"loading\">\n          <mat-spinner diameter=\"35\"></mat-spinner>\n        </mat-option>\n      }\n\n      @if (!loading && (filteredOptions | async)?.length===0) {\n        <mat-option disabled>\n          {{'N_REGISTRO_ENCONTRADO' | translate}}\n        </mat-option>\n      }\n      <ng-container>\n        @for (item of filteredOptions | async; track item) {\n          <mat-option [value]=\"item\"[ngClass]=\"{'large-data': largeData, 'small-text': smallText }\">\n            <i class=\"{{item.classe}} mr-1\" style=\"font-size: 18px;\"></i>\n            <span>\n              @if (bindArray === undefined || bindArray === null || bindArray.length === 0 || showLabel === true) {\n                <span>{{ getLabel(item) }}</span>\n              }\n              @if (bindArray.length > 0) {\n                <span>\n                  @if (showLabel === true) {\n                    <span> - </span>\n                  }\n                  @for (value of bindArray; track value; let index = $index) {\n                    <span>\n                      @if (value.type==='string') {\n                        <span>{{item[value.value]}}</span>\n                      }\n                      @if (value.type==='data' && (value.format === undefined || value.format === null)) {\n                        <span>{{item[value.value]}}</span>\n                      }\n                      @if (value.type==='data' && value.format !== null) {\n                        <span>{{item[value.value] | date:value.format}}</span>\n                      }\n                      @if (index+1 < bindArray.length) {\n                        <span> - </span>\n                      }\n                    </span>\n                  }\n                </span>\n              }\n            </span>\n          </mat-option>\n        }\n      </ng-container>\n    </mat-autocomplete>\n  </mat-form-field>\n\n  <button class=\"mt-1\" mat-icon-button type=\"button\" aria-label=\"Search\" (click)=\"openDialog()\">\n    <mat-icon class=\"fa-regular fa-icons\"></mat-icon>\n  </button>\n</div>\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport { MatIconButton } from '@angular/material/button';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-masked',\r\n  standalone: true,\r\n  templateUrl: './control-material-masked.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-masked.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialMaskedComponent), // replace name as appropriate\r\n        multi: true\r\n    }\r\n  ],\r\n  imports: [MatIconButton, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule, IMaskDirective],\r\n})\r\nexport class ControlMaterialMaskedComponent extends ControlMaterialComponent {\r\n\r\n  @Input() mask = '';\r\n  @Input() showClearMask = false;\r\n  @Input() unmask = true;\r\n\r\n  @Output() clearItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-masked-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n  limparItem($event: any) {\r\n    if (this.control.value !== undefined && this.control.value !== null && this.control.value !== '') {\r\n      $event.stopPropagation();\r\n      this.control.setValue('');\r\n      this.clearItem.emit();\r\n    }\r\n  }\r\n\r\n}\r\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  <input matInput type=\"text\" [formControl]=\"control\" [placeholder]=\"placeholder\" [imask]=\"mask\" [unmask]=\"unmask\" (blur)=\"blur()\" [readonly]=\"readonly\"/>\r\n  @if (showClearMask) {\r\n    <button type=\"button\" mat-icon-button matSuffix aria-label=\"Clear\" (click)=\"limparItem($event)\">\r\n      <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\r\n    </button>\r\n  }\r\n  @if (iconBefore !== null) {\r\n    <span class=\"mr-1\" matPrefix>\r\n      <mat-icon [class]=\"iconBefore\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (iconAfter !== null) {\r\n    <span matSuffix>\r\n      <mat-icon [class]=\"iconAfter\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"primary\" ></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { AfterContentInit, Component, EventEmitter, forwardRef, Input, Output } from \"@angular/core\";\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatError, MatFormField, MatLabel, MatSuffix } from \"@angular/material/form-field\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { MatInput } from \"@angular/material/input\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\nimport { IMaskDirective } from \"angular-imask\";\nimport { ControlMaterialComponent } from './../control-material.component';\n\n\n@Component({\n    selector: 'lib-control-material-minute-second',\n    templateUrl: './control-material-minute-second.component.html',\n    styleUrls: ['../control-material.component.scss', './control-material-minute-second.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ControlMaterialMinuteSecondComponent), // replace name as appropriate\n            multi: true\n        }\n    ],\n    standalone: true,\n    imports: [MatFormField, MatLabel, MatInput, FormsModule, IMaskDirective, ReactiveFormsModule, MatError, MatIcon, MatTooltip, MatSuffix]\n})\nexport class ControlMaterialMinuteSecondComponent extends ControlMaterialComponent implements AfterContentInit {\n\n  @Input() showTime = true;\n  inputHour = '';\n  hourMinuteMask = {\n    mask: '00:00:00',\n    lazy: false,\n    placeholderChar: ' '\n  };\n\n  constructor() {\n    super();\n    this.id = `lib-control-material-minute-second-${ControlMaterialMinuteSecondComponent.nextId++}`;\n  }\n\n  @Output() selectDate: EventEmitter<any> = new EventEmitter();\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    if (this.control !== undefined && this.control !== null) {\n\n      if (this.control.value !== undefined && this.control.value !== null && !isNaN(this.control.value)) {\n        this.preencherMinuto(this.control.value);\n      }\n\n      this.control.valueChanges.subscribe(val => {\n        if (val === null || val === undefined) {\n          this.inputHour = Object.assign('', '');\n        }\n      });\n\n    }\n\n  }\n\n\n   onFocus(event) {\n    setTimeout(() => {\n      event.target.setSelectionRange(0, event.target.value?.length);\n    });\n   }\n\n   onFocusOutMinute(event) {\n    const aMinuto = event.target?.value?.split(':');\n    let hora = Number(aMinuto[0].trim());\n    let minuto = Number(aMinuto[1].trim());\n    let segundo = Number(aMinuto[2].trim());\n\n    this.validarDataHora((hora * 3600) + (minuto * 60) + segundo);\n\n   }\n\n   preencherMinuto(value) {\n    let hora = 0;\n    let minuto = 0;\n\n    if (value >= 3600) {\n      hora = Math.floor((value/3600));\n    }\n\n    if (value >= 60) {\n      minuto = Math.round((value % 3600) / 60);\n      minuto = minuto === 60 ? 59 : minuto;\n    }\n    const segundo = (value % 3600) % 60;\n\n    let sHora = hora < 10 ? ('0' + hora) : hora.toString();\n    let sMinuto = minuto < 10 ? ('0' + minuto) : minuto.toString();\n    let sSegundo = segundo < 10 ? ('0' + segundo) : segundo.toString();\n\n    this.inputHour = '';\n    setTimeout(() => {\n      this.inputHour = sHora + ':' + sMinuto + ':' + sSegundo;\n    });\n   }\n\n\n   validarDataHora(data) {\n    if (data > 359999) {\n      data = 359999;\n    }\n    this.preencherMinuto(data);\n    this.control.setValue(null, {emitEvent: false});\n    this.control.setValue(data.toString(), {emitEvent: false});\n    this.selectDate.emit(data);\n    return true;\n   }\n\n}\n","<mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"d-block\" [class.smaller]=\"smaller\">\n\n  @if (label !== undefined && label !== null) {\n    <mat-label>{{label}}</mat-label>\n  }\n\n  <div class=\"d-inline-flex frame\">\n\n    <span>\n      <input matInput [readonly]=\"readonly\" [imask]=\"hourMinuteMask\" [unmask]=\"true\" placeholder=\" :  :  \"\n        [disabled]=\"disabled\" [value]=\"inputHour\" class=\"form-control\" [formControl]=\"control\"\n        (focus)=\"onFocus($event)\" (focusout)=\"onFocusOutMinute($event)\">\n    </span>\n\n  </div>\n\n  @if (tooltip !== null) {\n    <span matSuffix>\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\n    </span>\n  }\n\n  @if (hasError()) {\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\n  }\n\n</mat-form-field>\n","import { Component, forwardRef, Input } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-number',\r\n  standalone: true,\r\n  templateUrl: './control-material-number.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-number.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialNumberComponent),\r\n        multi: true\r\n    },\r\n  ],\r\n  imports: [MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule],\r\n})\r\nexport class ControlMaterialNumberComponent extends ControlMaterialComponent {\r\n\r\n  @Input() integer: boolean = false;\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-number-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n  changeNumber(event: any){\r\n    if (this.integer) {\r\n      this.control.setValue(parseInt(event.target.value));\r\n    }\r\n    this.onBlur.emit(this.control.value);\r\n  }\r\n\r\n}\r\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  <input [readonly]=\"readonly\" matInput type=\"number\" [formControl]=\"control\" [placeholder]=\"placeholder\" (change)=\"changeNumber($event)\" />\r\n  @if (iconBefore !== null) {\r\n    <span class=\"mr-1\" matPrefix>\r\n      <mat-icon [class]=\"iconBefore\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (iconAfter !== null) {\r\n    <span matSuffix>\r\n      <mat-icon [class]=\"iconAfter\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { Component, forwardRef, Input } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconButton } from '@angular/material/button';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-password',\r\n  standalone: true,\r\n  templateUrl: './control-material-password.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-password.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialPasswordComponent), // replace name as appropriate\r\n        multi: true\r\n    }\r\n  ],\r\n  imports: [MatIconButton, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule],\r\n})\r\nexport class ControlMaterialPasswordComponent extends ControlMaterialComponent {\r\n\r\n  hide = true;\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-password-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n\r\n}\r\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  <input [readonly]=\"readonly\" matInput [formControl]=\"control\" [placeholder]=\"placeholder\" [type]=\"hide ? 'password' : 'text'\"/>\r\n  @if (iconBefore !== null) {\r\n    <span class=\"mr-1\" matPrefix>\r\n      <mat-icon [class]=\"iconBefore\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (iconAfter !== null) {\r\n    <span matSuffix>\r\n      <mat-icon [class]=\"iconAfter\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hide) {\r\n    <button type=\"button\" tabindex=\"-1\" focusable=\"false\" mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n      <mat-icon class=\"fa-solid fa-eye\"></mat-icon>    \r\n    </button>\r\n  } @else {\r\n    <button type=\"button\" tabindex=\"-1\" focusable=\"false\" mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">    \r\n      <mat-icon class=\"fa-solid fa-eye-slash\"></mat-icon>    \r\n    </button>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { Component, Input, Output, EventEmitter, Renderer2, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { MatSelect, MatSelectTrigger } from '@angular/material/select';\nimport { MatOption } from '@angular/material/core';\n\n@Component({\n    selector: 'ngx-flag-picker',\n    templateUrl: './ngx-flag-picker.component.html',\n    styleUrls: ['./ngx-flag-picker.component.scss'],\n    standalone: true,\n    imports: [MatSelect, MatSelectTrigger, MatOption]\n})\nexport class NgxFlagPickerComponent {\n  @Input() selectedCountryCode: string;\n  @Input() countryCodes: string[];\n\n  @Input() customLabels: Record<string, string>;\n\n  @Input() showFlags = true;\n  @Input() showLabels = true;\n  @Input() showArrow = true;\n\n  @Output() changedCountryCode = new EventEmitter<string>();\n\n  private _isShowListCountryFlags = false;\n  set isShowListCountryFlags(value: boolean) {\n    this._isShowListCountryFlags = value;\n    this.changeDetectorRef.markForCheck();\n  }\n  get isShowListCountryFlags(): boolean {\n    return this._isShowListCountryFlags;\n  }\n\n  outsideClickSelectFlags = () => {};\n\n  constructor(private changeDetectorRef: ChangeDetectorRef) { }\n\n  getCountryLabel(countryCode: string): string {\n    return (this.customLabels && this.customLabels[countryCode]) ?\n      this.customLabels[countryCode] :\n      countryCode ? countryCode.toUpperCase() : '';\n  }\n\n  public changeSelectedCountryCode(value): void {\n    this.selectedCountryCode = value.value;\n    this.closeListCountryFlags();\n    this.changedCountryCode.emit(this.selectedCountryCode);\n  }\n\n  public toggleListCountryFlags(): void {\n    if (this.isShowListCountryFlags) {\n      this.closeListCountryFlags();\n    } else {\n      this.openListCountryFlags();\n    }\n  }\n\n  private openListCountryFlags(): void {\n    this.isShowListCountryFlags = true;\n  }\n\n  private closeListCountryFlags(): void {\n    this.isShowListCountryFlags = false;\n    this.unsubscribeOutsideClickSelectFlags();\n  }\n\n  private unsubscribeOutsideClickSelectFlags(): void {\n    if (this.outsideClickSelectFlags) {\n      this.outsideClickSelectFlags();\n      this.outsideClickSelectFlags = undefined;\n    }\n  }\n\n  static getAllCountries() {\n    let allCountries = [\n      [\n        \"Afghanistan (‫افغانستان‬‎)\",\n        \"af\",\n        \"93\"\n      ],\n      [\n        \"Albania (Shqipëri)\",\n        \"al\",\n        \"355\"\n      ],\n      [\n        \"Algeria (‫الجزائر‬‎)\",\n        \"dz\",\n        \"213\"\n      ],\n      [\n        \"American Samoa\",\n        \"as\",\n        \"1\",\n        5,\n        [\"684\"]\n      ],\n      [\n        \"Andorra\",\n        \"ad\",\n        \"376\"\n      ],\n      [\n        \"Angola\",\n        \"ao\",\n        \"244\"\n      ],\n      [\n        \"Anguilla\",\n        \"ai\",\n        \"1\",\n        6,\n        [\"264\"]\n      ],\n      [\n        \"Antigua and Barbuda\",\n        \"ag\",\n        \"1\",\n        7,\n        [\"268\"]\n      ],\n      [\n        \"Argentina\",\n        \"ar\",\n        \"54\"\n      ],\n      [\n        \"Armenia (Հայաստան)\",\n        \"am\",\n        \"374\"\n      ],\n      [\n        \"Aruba\",\n        \"aw\",\n        \"297\"\n      ],\n      [\n        \"Ascension Island\",\n        \"ac\",\n        \"247\"\n      ],\n      [\n        \"Australia\",\n        \"au\",\n        \"61\",\n        0\n      ],\n      [\n        \"Austria (Österreich)\",\n        \"at\",\n        \"43\"\n      ],\n      [\n        \"Azerbaijan (Azərbaycan)\",\n        \"az\",\n        \"994\"\n      ],\n      [\n        \"Bahamas\",\n        \"bs\",\n        \"1\",\n        8,\n        [\"242\"]\n      ],\n      [\n        \"Bahrain (‫البحرين‬‎)\",\n        \"bh\",\n        \"973\"\n      ],\n      [\n        \"Bangladesh (বাংলাদেশ)\",\n        \"bd\",\n        \"880\"\n      ],\n      [\n        \"Barbados\",\n        \"bb\",\n        \"1\",\n        9,\n        [\"246\"]\n      ],\n      [\n        \"Belarus (Беларусь)\",\n        \"by\",\n        \"375\"\n      ],\n      [\n        \"Belgium (België)\",\n        \"be\",\n        \"32\"\n      ],\n      [\n        \"Belize\",\n        \"bz\",\n        \"501\"\n      ],\n      [\n        \"Benin (Bénin)\",\n        \"bj\",\n        \"229\"\n      ],\n      [\n        \"Bermuda\",\n        \"bm\",\n        \"1\",\n        10,\n        [\"441\"]\n      ],\n      [\n        \"Bhutan (འབྲུག)\",\n        \"bt\",\n        \"975\"\n      ],\n      [\n        \"Bolivia\",\n        \"bo\",\n        \"591\"\n      ],\n      [\n        \"Bosnia and Herzegovina (Босна и Херцеговина)\",\n        \"ba\",\n        \"387\"\n      ],\n      [\n        \"Botswana\",\n        \"bw\",\n        \"267\"\n      ],\n      [\n        \"Brazil (Brasil)\",\n        \"br\",\n        \"55\"\n      ],\n      [\n        \"British Indian Ocean Territory\",\n        \"io\",\n        \"246\"\n      ],\n      [\n        \"British Virgin Islands\",\n        \"vg\",\n        \"1\",\n        11,\n        [\"284\"]\n      ],\n      [\n        \"Brunei\",\n        \"bn\",\n        \"673\"\n      ],\n      [\n        \"Bulgaria (България)\",\n        \"bg\",\n        \"359\"\n      ],\n      [\n        \"Burkina Faso\",\n        \"bf\",\n        \"226\"\n      ],\n      [\n        \"Burundi (Uburundi)\",\n        \"bi\",\n        \"257\"\n      ],\n      [\n        \"Cambodia (កម្ពុជា)\",\n        \"kh\",\n        \"855\"\n      ],\n      [\n        \"Cameroon (Cameroun)\",\n        \"cm\",\n        \"237\"\n      ],\n      [\n        \"Canada\",\n        \"ca\",\n        \"1\",\n        1,\n        [\"204\", \"226\", \"236\", \"249\", \"250\", \"289\", \"306\", \"343\", \"365\", \"387\", \"403\", \"416\", \"418\", \"431\", \"437\", \"438\", \"450\", \"506\", \"514\", \"519\", \"548\", \"579\", \"581\", \"587\", \"604\", \"613\", \"639\", \"647\", \"672\", \"705\", \"709\", \"742\", \"778\", \"780\", \"782\", \"807\", \"819\", \"825\", \"867\", \"873\", \"902\", \"905\"]\n      ],\n      [\n        \"Cape Verde (Kabu Verdi)\",\n        \"cv\",\n        \"238\"\n      ],\n      [\n        \"Caribbean Netherlands\",\n        \"bq\",\n        \"599\",\n        1,\n        [\"3\", \"4\", \"7\"]\n      ],\n      [\n        \"Cayman Islands\",\n        \"ky\",\n        \"1\",\n        12,\n        [\"345\"]\n      ],\n      [\n        \"Central African Republic (République centrafricaine)\",\n        \"cf\",\n        \"236\"\n      ],\n      [\n        \"Chad (Tchad)\",\n        \"td\",\n        \"235\"\n      ],\n      [\n        \"Chile\",\n        \"cl\",\n        \"56\"\n      ],\n      [\n        \"China (中国)\",\n        \"cn\",\n        \"86\"\n      ],\n      [\n        \"Christmas Island\",\n        \"cx\",\n        \"61\",\n        2,\n        [\"89164\"]\n      ],\n      [\n        \"Cocos (Keeling) Islands\",\n        \"cc\",\n        \"61\",\n        1,\n        [\"89162\"]\n      ],\n      [\n        \"Colombia\",\n        \"co\",\n        \"57\"\n      ],\n      [\n        \"Comoros (‫جزر القمر‬‎)\",\n        \"km\",\n        \"269\"\n      ],\n      [\n        \"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)\",\n        \"cd\",\n        \"243\"\n      ],\n      [\n        \"Congo (Republic) (Congo-Brazzaville)\",\n        \"cg\",\n        \"242\"\n      ],\n      [\n        \"Cook Islands\",\n        \"ck\",\n        \"682\"\n      ],\n      [\n        \"Costa Rica\",\n        \"cr\",\n        \"506\"\n      ],\n      [\n        \"Côte d’Ivoire\",\n        \"ci\",\n        \"225\"\n      ],\n      [\n        \"Croatia (Hrvatska)\",\n        \"hr\",\n        \"385\"\n      ],\n      [\n        \"Cuba\",\n        \"cu\",\n        \"53\"\n      ],\n      [\n        \"Curaçao\",\n        \"cw\",\n        \"599\",\n        0\n      ],\n      [\n        \"Cyprus (Κύπρος)\",\n        \"cy\",\n        \"357\"\n      ],\n      [\n        \"Czech Republic (Česká republika)\",\n        \"cz\",\n        \"420\"\n      ],\n      [\n        \"Denmark (Danmark)\",\n        \"dk\",\n        \"45\"\n      ],\n      [\n        \"Djibouti\",\n        \"dj\",\n        \"253\"\n      ],\n      [\n        \"Dominica\",\n        \"dm\",\n        \"1\",\n        13,\n        [\"767\"]\n      ],\n      [\n        \"Dominican Republic (República Dominicana)\",\n        \"do\",\n        \"1\",\n        2,\n        [\"809\", \"829\", \"849\"]\n      ],\n      [\n        \"Ecuador\",\n        \"ec\",\n        \"593\"\n      ],\n      [\n        \"Egypt (‫مصر‬‎)\",\n        \"eg\",\n        \"20\"\n      ],\n      [\n        \"El Salvador\",\n        \"sv\",\n        \"503\"\n      ],\n      [\n        \"Equatorial Guinea (Guinea Ecuatorial)\",\n        \"gq\",\n        \"240\"\n      ],\n      [\n        \"Eritrea\",\n        \"er\",\n        \"291\"\n      ],\n      [\n        \"Estonia (Eesti)\",\n        \"ee\",\n        \"372\"\n      ],\n      [\n        \"Eswatini\",\n        \"sz\",\n        \"268\"\n      ],\n      [\n        \"Ethiopia\",\n        \"et\",\n        \"251\"\n      ],\n      [\n        \"Falkland Islands (Islas Malvinas)\",\n        \"fk\",\n        \"500\"\n      ],\n      [\n        \"Faroe Islands (Føroyar)\",\n        \"fo\",\n        \"298\"\n      ],\n      [\n        \"Fiji\",\n        \"fj\",\n        \"679\"\n      ],\n      [\n        \"Finland (Suomi)\",\n        \"fi\",\n        \"358\",\n        0\n      ],\n      [\n        \"France\",\n        \"fr\",\n        \"33\"\n      ],\n      [\n        \"French Guiana (Guyane française)\",\n        \"gf\",\n        \"594\"\n      ],\n      [\n        \"French Polynesia (Polynésie française)\",\n        \"pf\",\n        \"689\"\n      ],\n      [\n        \"Gabon\",\n        \"ga\",\n        \"241\"\n      ],\n      [\n        \"Gambia\",\n        \"gm\",\n        \"220\"\n      ],\n      [\n        \"Georgia (საქართველო)\",\n        \"ge\",\n        \"995\"\n      ],\n      [\n        \"Germany (Deutschland)\",\n        \"de\",\n        \"49\"\n      ],\n      [\n        \"Ghana (Gaana)\",\n        \"gh\",\n        \"233\"\n      ],\n      [\n        \"Gibraltar\",\n        \"gi\",\n        \"350\"\n      ],\n      [\n        \"Greece (Ελλάδα)\",\n        \"gr\",\n        \"30\"\n      ],\n      [\n        \"Greenland (Kalaallit Nunaat)\",\n        \"gl\",\n        \"299\"\n      ],\n      [\n        \"Grenada\",\n        \"gd\",\n        \"1\",\n        14,\n        [\"473\"]\n      ],\n      [\n        \"Guadeloupe\",\n        \"gp\",\n        \"590\",\n        0\n      ],\n      [\n        \"Guam\",\n        \"gu\",\n        \"1\",\n        15,\n        [\"671\"]\n      ],\n      [\n        \"Guatemala\",\n        \"gt\",\n        \"502\"\n      ],\n      [\n        \"Guernsey\",\n        \"gg\",\n        \"44\",\n        1,\n        [\"1481\", \"7781\", \"7839\", \"7911\"]\n      ],\n      [\n        \"Guinea (Guinée)\",\n        \"gn\",\n        \"224\"\n      ],\n      [\n        \"Guinea-Bissau (Guiné Bissau)\",\n        \"gw\",\n        \"245\"\n      ],\n      [\n        \"Guyana\",\n        \"gy\",\n        \"592\"\n      ],\n      [\n        \"Haiti\",\n        \"ht\",\n        \"509\"\n      ],\n      [\n        \"Honduras\",\n        \"hn\",\n        \"504\"\n      ],\n      [\n        \"Hong Kong (香港)\",\n        \"hk\",\n        \"852\"\n      ],\n      [\n        \"Hungary (Magyarország)\",\n        \"hu\",\n        \"36\"\n      ],\n      [\n        \"Iceland (Ísland)\",\n        \"is\",\n        \"354\"\n      ],\n      [\n        \"India (भारत)\",\n        \"in\",\n        \"91\"\n      ],\n      [\n        \"Indonesia\",\n        \"id\",\n        \"62\"\n      ],\n      [\n        \"Iran (‫ایران‬‎)\",\n        \"ir\",\n        \"98\"\n      ],\n      [\n        \"Iraq (‫العراق‬‎)\",\n        \"iq\",\n        \"964\"\n      ],\n      [\n        \"Ireland\",\n        \"ie\",\n        \"353\"\n      ],\n      [\n        \"Isle of Man\",\n        \"im\",\n        \"44\",\n        2,\n        [\"1624\", \"74576\", \"7524\", \"7924\", \"7624\"]\n      ],\n      [\n        \"Israel (‫ישראל‬‎)\",\n        \"il\",\n        \"972\"\n      ],\n      [\n        \"Italy (Italia)\",\n        \"it\",\n        \"39\",\n        0\n      ],\n      [\n        \"Jamaica\",\n        \"jm\",\n        \"1\",\n        4,\n        [\"876\", \"658\"]\n      ],\n      [\n        \"Japan (日本)\",\n        \"jp\",\n        \"81\"\n      ],\n      [\n        \"Jersey\",\n        \"je\",\n        \"44\",\n        3,\n        [\"1534\", \"7509\", \"7700\", \"7797\", \"7829\", \"7937\"]\n      ],\n      [\n        \"Jordan (‫الأردن‬‎)\",\n        \"jo\",\n        \"962\"\n      ],\n      [\n        \"Kazakhstan (Казахстан)\",\n        \"kz\",\n        \"7\",\n        1,\n        [\"33\", \"7\"]\n      ],\n      [\n        \"Kenya\",\n        \"ke\",\n        \"254\"\n      ],\n      [\n        \"Kiribati\",\n        \"ki\",\n        \"686\"\n      ],\n      [\n        \"Kosovo\",\n        \"xk\",\n        \"383\"\n      ],\n      [\n        \"Kuwait (‫الكويت‬‎)\",\n        \"kw\",\n        \"965\"\n      ],\n      [\n        \"Kyrgyzstan (Кыргызстан)\",\n        \"kg\",\n        \"996\"\n      ],\n      [\n        \"Laos (ລາວ)\",\n        \"la\",\n        \"856\"\n      ],\n      [\n        \"Latvia (Latvija)\",\n        \"lv\",\n        \"371\"\n      ],\n      [\n        \"Lebanon (‫لبنان‬‎)\",\n        \"lb\",\n        \"961\"\n      ],\n      [\n        \"Lesotho\",\n        \"ls\",\n        \"266\"\n      ],\n      [\n        \"Liberia\",\n        \"lr\",\n        \"231\"\n      ],\n      [\n        \"Libya (‫ليبيا‬‎)\",\n        \"ly\",\n        \"218\"\n      ],\n      [\n        \"Liechtenstein\",\n        \"li\",\n        \"423\"\n      ],\n      [\n        \"Lithuania (Lietuva)\",\n        \"lt\",\n        \"370\"\n      ],\n      [\n        \"Luxembourg\",\n        \"lu\",\n        \"352\"\n      ],\n      [\n        \"Macau (澳門)\",\n        \"mo\",\n        \"853\"\n      ],\n      [\n        \"North Macedonia (Македонија)\",\n        \"mk\",\n        \"389\"\n      ],\n      [\n        \"Madagascar (Madagasikara)\",\n        \"mg\",\n        \"261\"\n      ],\n      [\n        \"Malawi\",\n        \"mw\",\n        \"265\"\n      ],\n      [\n        \"Malaysia\",\n        \"my\",\n        \"60\"\n      ],\n      [\n        \"Maldives\",\n        \"mv\",\n        \"960\"\n      ],\n      [\n        \"Mali\",\n        \"ml\",\n        \"223\"\n      ],\n      [\n        \"Malta\",\n        \"mt\",\n        \"356\"\n      ],\n      [\n        \"Marshall Islands\",\n        \"mh\",\n        \"692\"\n      ],\n      [\n        \"Martinique\",\n        \"mq\",\n        \"596\"\n      ],\n      [\n        \"Mauritania (‫موريتانيا‬‎)\",\n        \"mr\",\n        \"222\"\n      ],\n      [\n        \"Mauritius (Moris)\",\n        \"mu\",\n        \"230\"\n      ],\n      [\n        \"Mayotte\",\n        \"yt\",\n        \"262\",\n        1,\n        [\"269\", \"639\"]\n      ],\n      [\n        \"Mexico (México)\",\n        \"mx\",\n        \"52\"\n      ],\n      [\n        \"Micronesia\",\n        \"fm\",\n        \"691\"\n      ],\n      [\n        \"Moldova (Republica Moldova)\",\n        \"md\",\n        \"373\"\n      ],\n      [\n        \"Monaco\",\n        \"mc\",\n        \"377\"\n      ],\n      [\n        \"Mongolia (Монгол)\",\n        \"mn\",\n        \"976\"\n      ],\n      [\n        \"Montenegro (Crna Gora)\",\n        \"me\",\n        \"382\"\n      ],\n      [\n        \"Montserrat\",\n        \"ms\",\n        \"1\",\n        16,\n        [\"664\"]\n      ],\n      [\n        \"Morocco (‫المغرب‬‎)\",\n        \"ma\",\n        \"212\",\n        0\n      ],\n      [\n        \"Mozambique (Moçambique)\",\n        \"mz\",\n        \"258\"\n      ],\n      [\n        \"Myanmar (Burma) (မြန်မာ)\",\n        \"mm\",\n        \"95\"\n      ],\n      [\n        \"Namibia (Namibië)\",\n        \"na\",\n        \"264\"\n      ],\n      [\n        \"Nauru\",\n        \"nr\",\n        \"674\"\n      ],\n      [\n        \"Nepal (नेपाल)\",\n        \"np\",\n        \"977\"\n      ],\n      [\n        \"Netherlands (Nederland)\",\n        \"nl\",\n        \"31\"\n      ],\n      [\n        \"New Caledonia (Nouvelle-Calédonie)\",\n        \"nc\",\n        \"687\"\n      ],\n      [\n        \"New Zealand\",\n        \"nz\",\n        \"64\"\n      ],\n      [\n        \"Nicaragua\",\n        \"ni\",\n        \"505\"\n      ],\n      [\n        \"Niger (Nijar)\",\n        \"ne\",\n        \"227\"\n      ],\n      [\n        \"Nigeria\",\n        \"ng\",\n        \"234\"\n      ],\n      [\n        \"Niue\",\n        \"nu\",\n        \"683\"\n      ],\n      [\n        \"Norfolk Island\",\n        \"nf\",\n        \"672\"\n      ],\n      [\n        \"North Korea (조선 민주주의 인민 공화국)\",\n        \"kp\",\n        \"850\"\n      ],\n      [\n        \"Northern Mariana Islands\",\n        \"mp\",\n        \"1\",\n        17,\n        [\"670\"]\n      ],\n      [\n        \"Norway (Norge)\",\n        \"no\",\n        \"47\",\n        0\n      ],\n      [\n        \"Oman (‫عُمان‬‎)\",\n        \"om\",\n        \"968\"\n      ],\n      [\n        \"Pakistan (‫پاکستان‬‎)\",\n        \"pk\",\n        \"92\"\n      ],\n      [\n        \"Palau\",\n        \"pw\",\n        \"680\"\n      ],\n      [\n        \"Palestine (‫فلسطين‬‎)\",\n        \"ps\",\n        \"970\"\n      ],\n      [\n        \"Panama (Panamá)\",\n        \"pa\",\n        \"507\"\n      ],\n      [\n        \"Papua New Guinea\",\n        \"pg\",\n        \"675\"\n      ],\n      [\n        \"Paraguay\",\n        \"py\",\n        \"595\"\n      ],\n      [\n        \"Peru (Perú)\",\n        \"pe\",\n        \"51\"\n      ],\n      [\n        \"Philippines\",\n        \"ph\",\n        \"63\"\n      ],\n      [\n        \"Poland (Polska)\",\n        \"pl\",\n        \"48\"\n      ],\n      [\n        \"Portugal\",\n        \"pt\",\n        \"351\"\n      ],\n      [\n        \"Puerto Rico\",\n        \"pr\",\n        \"1\",\n        3,\n        [\"787\", \"939\"]\n      ],\n      [\n        \"Qatar (‫قطر‬‎)\",\n        \"qa\",\n        \"974\"\n      ],\n      [\n        \"Réunion (La Réunion)\",\n        \"re\",\n        \"262\",\n        0\n      ],\n      [\n        \"Romania (România)\",\n        \"ro\",\n        \"40\"\n      ],\n      [\n        \"Russia (Россия)\",\n        \"ru\",\n        \"7\",\n        0\n      ],\n      [\n        \"Rwanda\",\n        \"rw\",\n        \"250\"\n      ],\n      [\n        \"Saint Barthélemy\",\n        \"bl\",\n        \"590\",\n        1\n      ],\n      [\n        \"Saint Helena\",\n        \"sh\",\n        \"290\"\n      ],\n      [\n        \"Saint Kitts and Nevis\",\n        \"kn\",\n        \"1\",\n        18,\n        [\"869\"]\n      ],\n      [\n        \"Saint Lucia\",\n        \"lc\",\n        \"1\",\n        19,\n        [\"758\"]\n      ],\n      [\n        \"Saint Martin (Saint-Martin (partie française))\",\n        \"mf\",\n        \"590\",\n        2\n      ],\n      [\n        \"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)\",\n        \"pm\",\n        \"508\"\n      ],\n      [\n        \"Saint Vincent and the Grenadines\",\n        \"vc\",\n        \"1\",\n        20,\n        [\"784\"]\n      ],\n      [\n        \"Samoa\",\n        \"ws\",\n        \"685\"\n      ],\n      [\n        \"San Marino\",\n        \"sm\",\n        \"378\"\n      ],\n      [\n        \"São Tomé and Príncipe (São Tomé e Príncipe)\",\n        \"st\",\n        \"239\"\n      ],\n      [\n        \"Saudi Arabia (‫المملكة العربية السعودية‬‎)\",\n        \"sa\",\n        \"966\"\n      ],\n      [\n        \"Senegal (Sénégal)\",\n        \"sn\",\n        \"221\"\n      ],\n      [\n        \"Serbia (Србија)\",\n        \"rs\",\n        \"381\"\n      ],\n      [\n        \"Seychelles\",\n        \"sc\",\n        \"248\"\n      ],\n      [\n        \"Sierra Leone\",\n        \"sl\",\n        \"232\"\n      ],\n      [\n        \"Singapore\",\n        \"sg\",\n        \"65\"\n      ],\n      [\n        \"Sint Maarten\",\n        \"sx\",\n        \"1\",\n        21,\n        [\"721\"]\n      ],\n      [\n        \"Slovakia (Slovensko)\",\n        \"sk\",\n        \"421\"\n      ],\n      [\n        \"Slovenia (Slovenija)\",\n        \"si\",\n        \"386\"\n      ],\n      [\n        \"Solomon Islands\",\n        \"sb\",\n        \"677\"\n      ],\n      [\n        \"Somalia (Soomaaliya)\",\n        \"so\",\n        \"252\"\n      ],\n      [\n        \"South Africa\",\n        \"za\",\n        \"27\"\n      ],\n      [\n        \"South Korea (대한민국)\",\n        \"kr\",\n        \"82\"\n      ],\n      [\n        \"South Sudan (‫جنوب السودان‬‎)\",\n        \"ss\",\n        \"211\"\n      ],\n      [\n        \"Spain (España)\",\n        \"es\",\n        \"34\"\n      ],\n      [\n        \"Sri Lanka (ශ්‍රී ලංකාව)\",\n        \"lk\",\n        \"94\"\n      ],\n      [\n        \"Sudan (‫السودان‬‎)\",\n        \"sd\",\n        \"249\"\n      ],\n      [\n        \"Suriname\",\n        \"sr\",\n        \"597\"\n      ],\n      [\n        \"Svalbard and Jan Mayen\",\n        \"sj\",\n        \"47\",\n        1,\n        [\"79\"]\n      ],\n      [\n        \"Sweden (Sverige)\",\n        \"se\",\n        \"46\"\n      ],\n      [\n        \"Switzerland (Schweiz)\",\n        \"ch\",\n        \"41\"\n      ],\n      [\n        \"Syria (‫سوريا‬‎)\",\n        \"sy\",\n        \"963\"\n      ],\n      [\n        \"Taiwan (台灣)\",\n        \"tw\",\n        \"886\"\n      ],\n      [\n        \"Tajikistan\",\n        \"tj\",\n        \"992\"\n      ],\n      [\n        \"Tanzania\",\n        \"tz\",\n        \"255\"\n      ],\n      [\n        \"Thailand (ไทย)\",\n        \"th\",\n        \"66\"\n      ],\n      [\n        \"Timor-Leste\",\n        \"tl\",\n        \"670\"\n      ],\n      [\n        \"Togo\",\n        \"tg\",\n        \"228\"\n      ],\n      [\n        \"Tokelau\",\n        \"tk\",\n        \"690\"\n      ],\n      [\n        \"Tonga\",\n        \"to\",\n        \"676\"\n      ],\n      [\n        \"Trinidad and Tobago\",\n        \"tt\",\n        \"1\",\n        22,\n        [\"868\"]\n      ],\n      [\n        \"Tunisia (‫تونس‬‎)\",\n        \"tn\",\n        \"216\"\n      ],\n      [\n        \"Turkey (Türkiye)\",\n        \"tr\",\n        \"90\"\n      ],\n      [\n        \"Turkmenistan\",\n        \"tm\",\n        \"993\"\n      ],\n      [\n        \"Turks and Caicos Islands\",\n        \"tc\",\n        \"1\",\n        23,\n        [\"649\"]\n      ],\n      [\n        \"Tuvalu\",\n        \"tv\",\n        \"688\"\n      ],\n      [\n        \"U.S. Virgin Islands\",\n        \"vi\",\n        \"1\",\n        24,\n        [\"340\"]\n      ],\n      [\n        \"Uganda\",\n        \"ug\",\n        \"256\"\n      ],\n      [\n        \"Ukraine (Україна)\",\n        \"ua\",\n        \"380\"\n      ],\n      [\n        \"United Arab Emirates (‫الإمارات العربية المتحدة‬‎)\",\n        \"ae\",\n        \"971\"\n      ],\n      [\n        \"United Kingdom\",\n        \"gb\",\n        \"44\",\n        0\n      ],\n      [\n        \"United States\",\n        \"us\",\n        \"1\",\n        0\n      ],\n      [\n        \"Uruguay\",\n        \"uy\",\n        \"598\"\n      ],\n      [\n        \"Uzbekistan (Oʻzbekiston)\",\n        \"uz\",\n        \"998\"\n      ],\n      [\n        \"Vanuatu\",\n        \"vu\",\n        \"678\"\n      ],\n      [\n        \"Vatican City (Città del Vaticano)\",\n        \"va\",\n        \"39\",\n        1,\n        [\"06698\"]\n      ],\n      [\n        \"Venezuela\",\n        \"ve\",\n        \"58\"\n      ],\n      [\n        \"Vietnam (Việt Nam)\",\n        \"vn\",\n        \"84\"\n      ],\n      [\n        \"Wallis and Futuna (Wallis-et-Futuna)\",\n        \"wf\",\n        \"681\"\n      ],\n      [\n        \"Western Sahara (‫الصحراء الغربية‬‎)\",\n        \"eh\",\n        \"212\",\n        1,\n        [\"5288\", \"5289\"]\n      ],\n      [\n        \"Yemen (‫اليمن‬‎)\",\n        \"ye\",\n        \"967\"\n      ],\n      [\n        \"Zambia\",\n        \"zm\",\n        \"260\"\n      ],\n      [\n        \"Zimbabwe\",\n        \"zw\",\n        \"263\"\n      ],\n      [\n        \"Åland Islands\",\n        \"ax\",\n        \"358\",\n        1,\n        [\"18\"]\n      ]\n    ];\n\n    let litaCountry:any = [];\n    for (let i = 0; i < allCountries.length; i++) {\n      litaCountry.push(allCountries[i][1]);\n    }\n    return litaCountry;\n  }\n\n}\n","<mat-select [hideSingleSelectionIndicator]=\"true\" [(value)]=\"selectedCountryCode\" disableOptionCentering (selectionChange)=\"changeSelectedCountryCode($event)\" panelClass=\"flag-list-panel\">\n  <mat-select-trigger>\n    @if (showFlags) {\n      <span class=\"flag-icon flag-icon-{{ selectedCountryCode }}\"> </span>\n    }\n    @if (showLabels) {\n      <span class=\"country-code ml-1\">{{ getCountryLabel(selectedCountryCode) }}</span>\n    }\n  </mat-select-trigger>\n  @for (code of countryCodes; track code) {\n    <mat-option [value]=\"code\" style=\"width: 100px;\">\n      @if (showFlags) {\n        <span class=\"flag-icon flag-icon-{{ code }}\"></span>\n      }\n      @if (showLabels) {\n        <span class=\"country-code ml-1\">{{ getCountryLabel(code) }}</span>\n      }\n    </mat-option>\n  }\n</mat-select>\n","import { AfterContentInit, Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { DatePipe, NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport phoneExample from 'libphonenumber-js/mobile/examples'\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { getExampleNumber, getCountryCallingCode, getCountries } from 'libphonenumber-js'\r\nimport { NgxFlagPickerComponent } from '../ngx-flag-picker/ngx-flag-picker.component';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-phone',\r\n  standalone: true,\r\n  templateUrl: './control-material-phone.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-phone.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialPhoneComponent), // replace name as appropriate\r\n        multi: true\r\n    }\r\n  ],\r\n  imports: [NgxFlagPickerComponent, IMaskDirective, MatIconButton, DatePipe, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule],\r\n})\r\nexport class ControlMaterialPhoneComponent extends ControlMaterialComponent implements AfterContentInit {\r\n\r\n  @Input() disableClear = false;\r\n  @Input() unmask = true;\r\n  @Input() selectedCountryCode;\r\n  @Input() countryCodes = NgxFlagPickerComponent.getAllCountries();\r\n\r\n  countryCallingCode;\r\n\r\n  telephoneMask = {\r\n    mask: '+000',\r\n    lazy: false,\r\n    placeholderChar: ' ',\r\n    overwrite: true\r\n  };\r\n\r\n  countries = getCountries();\r\n\r\n  @Output() clearItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-phone-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n  override ngAfterContentInit(): void {\r\n    super.ngAfterContentInit();\r\n\r\n    this.control.valueChanges.pipe(debounceTime(300)).subscribe(query => {\r\n      if ((this.selectedCountryCode === null || this.selectedCountryCode === undefined) && query !== null && query !== undefined && query !== '') {\r\n        const aQuery = query.split(' ');\r\n        if (aQuery?.length > 1) {\r\n          this.selectedCountryCode = aQuery[0];\r\n          this.changeSelectedCountryCode(this.selectedCountryCode);\r\n          setTimeout(() => {\r\n            this.control.setValue(aQuery[1], {emitEvent: false});\r\n          })\r\n        } else {\r\n          for (let i = 0; i<this.countries.length; i++){\r\n            const country = getCountryCallingCode(this.countries[i]);\r\n            if (query === country) {\r\n              this.selectedCountryCode = this.countries[i].toLowerCase();\r\n              this.changeSelectedCountryCode(this.selectedCountryCode);\r\n              setTimeout(() => {\r\n                if (aQuery?.length > 0) {\r\n                  this.control.setValue(aQuery[1], {emitEvent: false});\r\n                }\r\n              })\r\n              break;\r\n            }\r\n          }\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  override blur() {\r\n    this.onBlur.emit(this.selectedCountryCode);\r\n  }\r\n\r\n  changeSelectedCountryCode(value) {\r\n    this.control.setValue('');\r\n    this.selectedCountryCode = value;\r\n    this.blur();\r\n    this.setCountryCode(value);\r\n    const input = document.getElementById('masktextfield' + this.index) as HTMLInputElement;\r\n    const phoneNumber = getExampleNumber(value.toUpperCase(), phoneExample);\r\n    this.countryCallingCode = phoneNumber?.countryCallingCode;\r\n    setTimeout(() => {\r\n      const position = ('+' + phoneNumber?.countryCallingCode + ' ').length + 1;\r\n      if (input !== null) {\r\n        input.setSelectionRange(position, position);\r\n      }\r\n    })\r\n  }\r\n\r\n  setCountryCode(value) {\r\n    const phoneNumber = getExampleNumber(value.toUpperCase(), phoneExample);\r\n\r\n    let numberNational = phoneNumber?.formatNational().toString();\r\n    let splitNumber = numberNational?.split('');\r\n\r\n    let novoFormato = '';\r\n    for (let char in splitNumber) {\r\n      if (splitNumber[char] === ' ' || isNaN(Number(splitNumber[char]))){\r\n        novoFormato = novoFormato + splitNumber[char]\r\n      } else {\r\n        novoFormato = novoFormato + '0';\r\n      }\r\n    }\r\n    if (phoneNumber?.countryCallingCode !== null && phoneNumber?.countryCallingCode !== undefined) {\r\n      novoFormato = '+' + phoneNumber?.countryCallingCode + ' ' + novoFormato;\r\n    } else {\r\n      novoFormato = '+';\r\n    }\r\n\r\n    this.countryCallingCode = phoneNumber?.countryCallingCode;\r\n    this.configPhoneMask(novoFormato);\r\n  }\r\n\r\n  configPhoneMask(masscara) {\r\n    this.telephoneMask = {\r\n      mask: masscara,\r\n      lazy: false,\r\n      placeholderChar: ' ',\r\n      overwrite: true\r\n    };\r\n  }\r\n\r\n  clearPhone($event) {\r\n    $event.stopPropagation();\r\n    this.control.setValue(' ', {emitEvent: false});\r\n    this.selectedCountryCode = null;\r\n    this.configPhoneMask('+000');\r\n    const input = document.getElementById('masktextfield' + this.index) as HTMLInputElement;\r\n    input.focus();\r\n    setTimeout(() => {\r\n      input.setSelectionRange(1, 1);\r\n    })\r\n    this.clearItem.emit();\r\n  }\r\n\r\n}\r\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  <div class=\"d-flex\">\r\n    @if (!readonly) {\r\n      <span style=\"width: fit-content\" class=\"ml-0\">\r\n        <ngx-flag-picker [selectedCountryCode]=\"selectedCountryCode\"\r\n          [countryCodes]=\"countryCodes\"\r\n          (changedCountryCode)=\"changeSelectedCountryCode($event)\">\r\n        </ngx-flag-picker>\r\n      </span>\r\n    }\r\n    <span class=\"ml-1\">\r\n      <input id=\"masktextfield{{index}}\" matInput type=\"text\" [formControl]=\"control\" [placeholder]=\"placeholder\" [imask]=\"telephoneMask\" [unmask]=\"unmask\" (blur)=\"blur()\" [readonly]=\"readonly\"/>\r\n    </span>\r\n  </div>\r\n  @if (!disableClear && control.value && !control.disabled && !readonly) {\r\n    <button  type=\"button\" mat-icon-button matSuffix aria-label=\"Clear\" (click)=\"clearPhone($event)\">\r\n      <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\r\n    </button>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatRadioGroup, MatRadioButton } from '@angular/material/radio';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-radio',\r\n  standalone: true,\r\n  templateUrl: './control-material-radio.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-radio.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialRadioComponent), // replace name as appropriate\r\n        multi: true\r\n    }\r\n  ],\r\n  imports: [TranslateModule, MatRadioGroup, MatRadioButton, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule],\r\n})\r\nexport class ControlMaterialRadioComponent extends ControlMaterialComponent {\r\n\r\n  @Input() inlineRadioLabel = false;\r\n  @Input() bindId = 'id';\r\n  @Input() bindLabel = 'nome';\r\n\r\n  @Input('translate')\r\n  set setTranslate(value: boolean) {\r\n    this.translateValue = value;\r\n  }\r\n\r\n  @Input('selectList')\r\n  set setSelectList(value: any) {\r\n    this._selectList = value;\r\n    if (value !== undefined && value !== null && value.length > 0) {\r\n      if (this.control !== undefined) {\r\n        if (this.control.value !== null) {\r\n          if (this.control.value instanceof Object ) {\r\n            const index = value.findIndex(x => x[this.bindId] === this.control.value[this.bindId]);\r\n            if (index > -1) {\r\n              this.control.setValue(value[index]);\r\n            }\r\n\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  @Output() selectItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  _selectList = [];\r\n  translateValue = false;\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-radio-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n  radioSelectChange($event) {\r\n    this.selectItem.emit($event);\r\n  }\r\n\r\n}\r\n","<div [ngClass]=\"{'d-inline-flex': inlineRadioLabel}\" class=\"frame\">\r\n  <label style=\"align-self: center; font-weight: 100;\">{{label}}:\r\n    @if (tooltip !== null) {\r\n      <span>\r\n        <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n      </span>\r\n    }\r\n    @if (hasError()) {\r\n      <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n    }\r\n  </label>\r\n  <mat-radio-group [disabled]=\"disabled\"\r\n    class=\"ml-0\"\r\n    [formControl]=\"control\"\r\n    (change)=\"radioSelectChange($event)\">\r\n    @for (item of _selectList; track item) {\r\n      <mat-radio-button class=\"radio-button\" color=\"primary\" [value]=\"item\">\r\n        @if (translateValue === false) {\r\n          <span class=\"label-radio\">{{item[bindLabel]}}</span>\r\n        }\r\n        @if (translateValue === true) {\r\n          <span class=\"label-radio\">{{item[bindLabel] | translate }}</span>\r\n        }\r\n      </mat-radio-button>\r\n    }\r\n  </mat-radio-group>\r\n</div>\r\n","import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { AfterContentInit, Component, forwardRef, Input } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgClass, AsyncPipe, DatePipe } from '@angular/common';\nimport { MatOption } from '@angular/material/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';\nimport { MatInput } from '@angular/material/input';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatFormField, MatLabel, MatSuffix, MatPrefix, MatError } from '@angular/material/form-field';\nimport { ControlMaterialAutocompleteComponent, searchControlValidator } from '../control-material-autocomplete/control-material-autocomplete.component';\nimport { catchError, debounceTime, distinctUntilChanged, filter, Observable, of, switchMap, tap } from 'rxjs';\n\n@Component({\n    selector: 'lib-control-material-search',\n    templateUrl: './control-material-search.component.html',\n    styleUrls: ['../control-material.component.scss', '../control-material-autocomplete/control-material-autocomplete.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ControlMaterialSearchComponent), // replace name as appropriate\n            multi: true\n        }\n    ],\n    standalone: true,\n    imports: [MatFormField, MatLabel, MatProgressSpinner, MatSuffix, MatInput, FormsModule, MatAutocompleteTrigger, ReactiveFormsModule, MatPrefix, MatIcon, MatTooltip, MatIconButton, MatError, MatAutocomplete, MatOption, NgClass, AsyncPipe, DatePipe, TranslateModule]\n})\nexport class ControlMaterialSearchComponent extends ControlMaterialAutocompleteComponent implements AfterContentInit {\n\n  @Input() service: any;\n  @Input() metodo = 'pesquisar';\n  @Input() filtrarNulo = false;\n\n  @Input('parametroPesquisa')\n  set setParametroPesquisa(value) {\n    this.parametroPesquisa = value;\n  }\n  parametroPesquisa = null;\n  filteredSearch: Observable<any>;\n  searchFailed = false;\n\n  get value() {\n    return this.control.value;\n  }\n\n  set value(val) {\n    this.control.setValue(val);\n\n    this.onChange(val);\n    this.onTouched();\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    if (this.control !== undefined){\n      if (this.required) {\n        this.control.setValidators([Validators.required, searchControlValidator]);\n      }\n\n      if (this.parametroPesquisa !== undefined) {\n        this.filteredSearch = this.control.valueChanges\n        .pipe(\n          debounceTime(300),\n          distinctUntilChanged(),\n          tap(() =>\n          {\n            this.loading = true;\n            this.loadingData =  true;\n          }),\n          switchMap((value) =>\n            this.service[this.metodo](value === '' || value === null || value[this.bindLabel] === undefined ? value : value[this.bindLabel], this.parametroPesquisa, this.bindId).pipe(\n              tap(() => {\n                this.searchFailed = false;\n                this.loading = false;\n                this.loadingData =  false;\n              }),\n              catchError(() => {\n                this.searchFailed = true;\n                this.loading = false;\n                this.loadingData =  false;\n                return of([]);\n              }))\n          ),\n        );\n      } else {\n        this.filteredSearch = this.control.valueChanges\n        .pipe(\n          debounceTime(300),\n          distinctUntilChanged(),\n          filter(value => value !== '' && value !== null && !this.filtrarNulo),\n          tap(() =>\n          {\n            this.loading = true;\n            this.loadingData =  true;\n          }),\n          switchMap(value =>\n            this.service[this.metodo](value[this.bindLabel] === undefined ? value : value[this.bindLabel], this.bindId).pipe(\n              tap(() => {\n                this.searchFailed = false;\n                this.loading = false;\n                this.loadingData =  false;\n              }),\n              catchError(() => {\n                this.searchFailed = true;\n                this.loading = false;\n                this.loadingData =  false;\n                return of([]);\n              }))\n          ),\n        );\n      }\n    }\n  }\n}\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\" >\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  @if (loadingData) {\r\n    <mat-spinner matSuffix [diameter]=\"18\" style=\"float: right; margin-left: 8px\"></mat-spinner>\r\n  }\r\n  <input [readonly]=\"readonly\" matInput [formControl]=\"control\" [placeholder]=\"placeholder\" [matAutocomplete]=\"auto\" />\r\n  <div class=\"mat-select-arrow-wrapper\" style=\"position: absolute; right: 0; bottom: 50%\"><div class=\"mat-select-arrow\"></div></div>\r\n  @if (control.value && !control.disabled && !readonly) {\r\n    <button mat-icon-button matSuffix aria-label=\"Clear\" (click)=\"value=''; $event.stopPropagation()\">\r\n      <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\r\n    </button>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n    </span>\r\n  }\r\n\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n  <mat-autocomplete #auto [displayWith]=\"displayBindLabel.bind(this)\" (optionSelected)=\"optionSelected($event)\">\r\n    @for (item of (filteredSearch | async); track item) {\r\n      <mat-option [value]=\"item\" [ngClass]=\"{'large-data': largeData }\">\r\n        <span>\r\n          @if (bindArray === undefined || bindArray === null || bindArray.length === 0 || showLabel === true) {\r\n            <span>{{ getLabel(item) }}</span>\r\n          }\r\n          @if (bindArray.length > 0) {\r\n            <span>\r\n              @if (showLabel === true) {\r\n                <span> - </span>\r\n              }\r\n              @for (value of bindArray; track value; let index = $index) {\r\n                <span>\r\n                  @if (value.type==='string') {\r\n                    <span>{{item[value.value]}}</span>\r\n                  }\r\n                  @if (value.type==='data' && (value.format === undefined || value.format === null)) {\r\n                    <span>{{item[value.value]}}</span>\r\n                  }\r\n                  @if (value.type==='data' && value.format !== null) {\r\n                    <span>{{item[value.value] | date:value.format}}</span>\r\n                  }\r\n                  @if (index+1 < bindArray.length) {\r\n                    <span> - </span>\r\n                  }\r\n                </span>\r\n              }\r\n            </span>\r\n          }\r\n        </span>\r\n      </mat-option>\r\n    }\r\n  </mat-autocomplete>\r\n</mat-form-field>\r\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatHint, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatOption, MatSelect } from '@angular/material/select';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatIconButton } from '@angular/material/button';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-select',\r\n  standalone: true,\r\n  templateUrl: './control-material-select.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-select.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialSelectComponent),\r\n        multi: true\r\n    },\r\n  ],\r\n  imports: [MatIconButton, MatHint, MatOption, MatSelect, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule, TranslateModule],\r\n})\r\nexport class ControlMaterialSelectComponent extends ControlMaterialComponent {\r\n\r\n  @Input() multiple = false;\r\n  @Input() bindId = 'id';\r\n  @Input() bindLabel = 'nome';\r\n  @Input() bindArray = [];\r\n  @Input() disableClear = false;\r\n  @Input() imageBefore = null;\r\n  @Input() largeData = true;\r\n  @Input() hint = null;\r\n\r\n  @Input('translate')\r\n  set setTranslate(value: boolean) {\r\n    this.translateValue = value;\r\n  }\r\n\r\n  @Input('selectList')\r\n  set selectList(value: any) {\r\n    this._selectList = value;\r\n    if (value !== undefined && value !== null && value.length > 0) {\r\n      if (this.control !== undefined) {\r\n        if (this.control.value !== null) {\r\n          if (this.control.value instanceof Object ) {\r\n            const index = value.findIndex(x => x[this.bindId] === this.control.value[this.bindId]);\r\n            if (index > -1) {\r\n              this.control.setValue(value[index]);\r\n            }\r\n\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n  @Output() clearItem: EventEmitter<any> = new EventEmitter();\r\n  @Output() selectItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  _selectList = [];\r\n  translateValue = false;\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-select-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n  compareFn(v1: any, v2: any): boolean {\r\n    if (this.bindId !== undefined) {\r\n      return v1 && v2 ? v1[this.bindId] === v2[this.bindId] : v1 === v2;\r\n    } else {\r\n      if (v1['codigo'] !== undefined) {\r\n        // temporario por problema de binding\r\n        return v1 && v2 ? v1['codigo'] === v2['codigo'] : v1 === v2;\r\n      } else  if (v1['id'] !== undefined) {\r\n        return v1 && v2 ? v1['id'] === v2['id'] : v1 === v2;\r\n      } else {\r\n        return v1 && v2 ? v1 === v2 : false;\r\n      }\r\n    }\r\n  }\r\n\r\n  selectionChange($event: any) {\r\n    this.selectItem.emit($event);\r\n  }\r\n\r\n  limparItem($event: any) {\r\n    if (this.control.value !== undefined && this.control.value !== null && this.control.value !== '') {\r\n      $event.stopPropagation();\r\n      this.control.setValue(null);\r\n      this.clearItem.emit();\r\n    }\r\n  }\r\n\r\n}\r\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  <mat-select [hideSingleSelectionIndicator]=\"true\" [formControl]=\"control\" [compareWith]=\"compareFn\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\r\n    @for (item of _selectList; track item) {\r\n      <mat-option [value]=\"item\" [ngClass]=\"{'large-data': largeData }\" [disabled]=\"readonly\">\r\n        @if (item !== undefined && imageBefore !== undefined && imageBefore !== null) {\r\n          <span class=\"mr-1\">\r\n            <img [src]=\"item[imageBefore]\" />\r\n          </span>\r\n        }\r\n        @if (item !== undefined && bindLabel !== null && bindArray.length === 0 && translateValue === true) {\r\n          <span>{{item[bindLabel] | translate}}</span>\r\n        }\r\n        @if (item !== undefined && bindLabel !== null && bindArray.length === 0 && translateValue === false) {\r\n          <span>{{item[bindLabel]}}</span>\r\n        }\r\n        @if (item !== undefined && bindLabel === null  && bindArray.length === 0 && translateValue === true) {\r\n          <span>{{item | translate}}</span>\r\n        }\r\n        @if (item !== undefined && bindLabel === null  && bindArray.length === 0 && translateValue === false) {\r\n          <span>{{item}}</span>\r\n        }\r\n        @if (item !== undefined && bindArray.length > 0) {\r\n          <span>\r\n            @for (value of bindArray; track value) {\r\n              <span>\r\n                @if (value['type'] === 'string') {\r\n                  <span>{{value['value']}}</span>\r\n                }\r\n                @if (value['type'] === 'data') {\r\n                  <span>{{item[value['value']]}}</span>\r\n                }\r\n              </span>\r\n            }\r\n          </span>\r\n        }\r\n      </mat-option>\r\n    }\r\n  </mat-select>\r\n  @if (!disableClear && control.value && !control.disabled && !readonly) {\r\n    <button mat-icon-button matSuffix aria-label=\"Clear\" (click)=\"limparItem($event)\">\r\n      <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\r\n    </button>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hint !== null) {\r\n    <mat-hint>{{hint}}</mat-hint>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { Component, forwardRef, Input } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-textarea',\r\n  standalone: true,\r\n  templateUrl: './control-material-textarea.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-textarea.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialTextareaComponent),\r\n        multi: true\r\n    },\r\n  ],\r\n  imports: [MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule],\r\n})\r\nexport class ControlMaterialTextareaComponent extends ControlMaterialComponent {\r\n\r\n  @Input() rows = 5;\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-textarea-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n\r\n}\r\n","<mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}@if (tooltip !== null) {\r\n      <span><i class=\"fa-regular fa-circle-info\"></i></span>\r\n    }</mat-label>\r\n  }\r\n  <textarea [readonly]=\"readonly\" matInput [formControl]=\"control\" [placeholder]=\"placeholder\" [rows]=\"rows\" (blur)=\"blur()\"></textarea>\r\n  @if (iconBefore !== null) {\r\n    <span class=\"mr-1\" matPrefix>\r\n      <mat-icon [class]=\"iconBefore\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (iconAfter !== null) {\r\n    <span matSuffix>\r\n      <mat-icon [class]=\"iconAfter\"></mat-icon>\r\n    </span>\r\n  }\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon class=\"fa-regular fa-circle-info\" matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" ></mat-icon>\r\n    </span>\r\n  }\r\n  @if (hasError()) {\r\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\r\n  }\r\n</mat-form-field>\r\n","import { AfterContentInit, Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlMaterialComponent } from '../control-material.component';\r\nimport { MatError, MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { DatePipe, NgClass } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconButton } from '@angular/material/button';\r\n\r\n@Component({\r\n  selector: 'lib-control-material-time',\r\n  standalone: true,\r\n  templateUrl: './control-material-time.component.html',\r\n  styleUrls: ['../control-material.component.scss', './control-material-time.component.scss'],\r\n  providers: [\r\n    {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => ControlMaterialTimeComponent),\r\n        multi: true\r\n    },\r\n  ],\r\n  imports: [MatIconButton, DatePipe, MatFormField, MatLabel, MatPrefix, MatSuffix, MatError, MatInput, NgClass, MatIcon, MatTooltip, FormsModule, ReactiveFormsModule],\r\n})\r\nexport class ControlMaterialTimeComponent extends ControlMaterialComponent implements AfterContentInit {\r\n\r\n  @Input() minDate = null;\r\n  @Input() maxDate = null;\r\n\r\n  @Output() selectDate: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {\r\n    super();\r\n    this.id = `lib-control-material-time-${ControlMaterialComponent.nextId++}`;\r\n  }\r\n\r\n  override ngAfterContentInit(): void {\r\n    super.ngAfterContentInit();\r\n\r\n    this.control.valueChanges.subscribe(val => {\r\n      //console.log(val);\r\n      if (val !== undefined && val !== null) {\r\n        this.changeDate(val);\r\n      }\r\n    });\r\n\r\n  }\r\n\r\n  dateInputChanged($event): any {\r\n    let value;\r\n\r\n    if ($event !== undefined) {\r\n      if ($event instanceof Date) {\r\n        value = $event;\r\n      }else if (typeof $event === 'string' && $event !== '' ) {\r\n        const date = new Date($event);\r\n        value = date;\r\n      } else if ($event.value !== undefined && typeof $event.value === 'string' && $event.value !== '') {\r\n        const date = new Date($event.value);\r\n        value = date;\r\n      } else if ($event.target.valueAsDate !== undefined && $event.target.valueAsDate !== null && $event.valueAsDate !== '') {\r\n        value = this.getDateUTC($event.target.valueAsDate);\r\n      } else if ($event.target.value !== undefined && $event.target.value !== null && $event.target.value !== '' ) {\r\n        const date = new Date($event.target.value);\r\n        value = date;\r\n      }\r\n    }\r\n\r\n    return value;\r\n  }\r\n\r\n  changeNgModelDate($event) {\r\n    const value = this.dateInputChanged($event);\r\n\r\n    if (this.isValidDate(value)) {\r\n      if (this.model !== undefined) {\r\n        this.control.value = value;\r\n        this.control.setValue(value);\r\n      } else {\r\n        this.control.setValue(value);\r\n      }\r\n      this.selectDate.emit(value);\r\n    }\r\n  }\r\n\r\n  changeDate($event) {\r\n    const value = this.dateInputChanged($event);\r\n    this.selectDate.emit(value);\r\n\r\n    if (this.isValidDate(value)) {\r\n      if (this.model !== undefined) {\r\n        this.control.value = value;\r\n      } else {\r\n        this.control.setValue(value, {emitEvent: false});\r\n      }\r\n    }\r\n  }\r\n\r\n  isValidDate(date) {\r\n    return date instanceof Date && date !== undefined && date !== null;\r\n  }\r\n\r\n  showPicker() {\r\n    const inputDateElement = document.getElementById(this.id+'time') as any;\r\n    inputDateElement.showPicker();\r\n  }\r\n\r\n  override writeValue(value) {\r\n    if (value !== undefined && value !== null) {\r\n      if (this.control !== undefined &&\r\n          this.control.value !== value) {\r\n          this.control.setValue((new Date(value)).toISOString());\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n","<mat-form-field style=\"max-width: inherit;\" appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\r\n  @if (label !== undefined && label !== null) {\r\n    <mat-label>{{label}}</mat-label>\r\n  }\r\n  <input hidden [formControl]=\"control\" />\r\n  <input [id]=\"id+'time'\" style=\"font-size: 13px;\" type=\"time\" [value]=\"control.value | date:'HH:mm'\" [readonly]=\"readonly\" matInput [min]=\"minDate\" [max]=\"maxDate\" [placeholder]=\"placeholder\" (ngModelChange)=\"model !== undefined ? changeNgModelDate($event) : null\" (change)=\"changeDate($event)\" >\r\n  <button tabindex=\"-1\" class=\"icon-button-20px\" type=\"button\" matSuffix mat-icon-button aria-label=\"TimePicker\" (click)=\"showPicker()\">\r\n    <mat-icon >schedule</mat-icon>\r\n  </button>\r\n  @if (tooltip !== null) {\r\n    <span matSuffix>\r\n      <mat-icon matTooltip=\"{{tooltip}}\" matTooltipPosition=\"above\" color=\"accent\" >info</mat-icon>\r\n    </span>\r\n  }\r\n</mat-form-field>\r\n","/**\n * The files to be uploaded\n */\nexport class FileInput {\n  private _fileNames: string;\n\n  constructor(private _files: File[] | null, private delimiter: string = ', ') {\n    this._fileNames = (this._files || []).map((f: File) => f.name).join(delimiter);\n  }\n\n  get files() {\n    return this._files || [];\n  }\n\n  get fileNames(): string {\n    return this._fileNames;\n  }\n}\n","import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Subject } from \"rxjs\";\n\n// Boilerplate for applying mixins to FileInput\n/** @docs-private */\nexport class FileInputBase {\n  errorState: boolean = false; // Estado de erro atual\n  stateChanges = new Subject<void>(); // Emissor de mudanças de estado\n\n  constructor(\n    public _defaultErrorStateMatcher: ErrorStateMatcher,\n    public _parentForm: NgForm,\n    public _parentFormGroup: FormGroupDirective,\n    public ngControl: NgControl\n  ) {}\n\n  // Implementação direta do updateErrorState\n  updateErrorState(): void {\n    const oldState = this.errorState; // Estado anterior\n    const control : any = (this.ngControl ? this.ngControl.control : null);\n    const parent : any = this._parentFormGroup || this._parentForm;\n\n    // Atualiza o estado de erro\n    this.errorState = this._defaultErrorStateMatcher.isErrorState(control, parent);\n\n    // Emite mudanças no estado\n    if (oldState !== this.errorState) {\n      this.stateChanges.next();\n    }\n  }\n}\n","import { Component, OnInit, Input, ElementRef, OnDestroy, HostBinding, Renderer2, HostListener, Optional, Self, DoCheck } from '@angular/core';\nimport { ControlValueAccessor, NgControl, NgForm, FormGroupDirective } from '@angular/forms';\n\n\nimport { FileInput } from '../model/file-input.model';\nimport { FileInputBase } from './file-input-mixin';\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { ErrorStateMatcher } from \"@angular/material/core\";\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { FocusMonitor } from \"@angular/cdk/a11y\";\n\n@Component({\n  selector: 'lib-mat-file-input',\n  templateUrl: './file-input.component.html',\n  styleUrls: ['./file-input.component.css'],\n  standalone: true,\n  providers: [{ provide: MatFormFieldControl, useExisting: FileInputComponent }]\n})\nexport class FileInputComponent extends FileInputBase implements MatFormFieldControl<FileInput>, ControlValueAccessor, OnInit, OnDestroy, DoCheck {\n  static nextId = 0;\n\n  focused = false;\n  controlType = 'file-input';\n\n  @Input() autofilled = false;\n\n  private _placeholder: string;\n  private _required = false;\n  private _multiple: boolean;\n\n  @Input() valuePlaceholder: string;\n  @Input() accept: string | null = null;\n  @Input() errorStateMatcher: ErrorStateMatcher;\n\n  @HostBinding() id = `lib-mat-file-input-${FileInputComponent.nextId++}`;\n  @HostBinding('attr.aria-describedby') describedBy = '';\n\n  setDescribedByIds(ids: string[]) {\n    this.describedBy = ids.join(' ');\n  }\n\n  @Input()\n  get value(): FileInput | null {\n    return this.empty ? null : new FileInput(this._elementRef.nativeElement.value || []);\n  }\n  set value(fileInput: FileInput | null) {\n    if (fileInput) {\n      this.writeValue(fileInput);\n      this.stateChanges.next();\n    }\n  }\n\n  @Input()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n  set multiple(value: boolean | string) {\n    this._multiple = coerceBooleanProperty(value);\n    this.stateChanges.next();\n  }\n\n  @Input()\n  get placeholder() {\n    return this._placeholder;\n  }\n  set placeholder(plh) {\n    this._placeholder = plh;\n    this.stateChanges.next();\n  }\n\n  /**\n   * Whether the current input has files\n   */\n  get empty() {\n    return !this._elementRef.nativeElement.value || this._elementRef.nativeElement.value.length === 0;\n  }\n\n  @HostBinding('class.mat-form-field-should-float')\n  get shouldLabelFloat() {\n    return this.focused || !this.empty || this.valuePlaceholder !== undefined;\n  }\n\n  @Input()\n  get required(): boolean {\n    return this._required;\n  }\n  set required(req: boolean | string) {\n    this._required = coerceBooleanProperty(req);\n    this.stateChanges.next();\n  }\n\n  @HostBinding('class.file-input-disabled')\n  get isDisabled() {\n    return this.disabled;\n  }\n  @Input()\n  get disabled(): boolean {\n    return this._elementRef.nativeElement.disabled;\n  }\n  set disabled(dis: boolean | string) {\n    this.setDisabledState(coerceBooleanProperty(dis));\n    this.stateChanges.next();\n  }\n\n  onContainerClick(event: MouseEvent) {\n    if ((event.target as Element).tagName.toLowerCase() !== 'input' && !this.disabled) {\n      this._elementRef.nativeElement.querySelector('input').focus();\n      this.focused = true;\n      this.open();\n    }\n  }\n\n  /**\n   * @see https://angular.io/api/forms/ControlValueAccessor\n   */\n  constructor(\n    private fm: FocusMonitor,\n    private _elementRef: ElementRef,\n    private _renderer: Renderer2,\n    public override _defaultErrorStateMatcher: ErrorStateMatcher,\n    @Optional()\n    @Self()\n    public override ngControl: NgControl,\n    @Optional() public override _parentForm: NgForm,\n    @Optional() public override _parentFormGroup: FormGroupDirective,\n  ) {\n    super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl)\n\n    if (this.ngControl != null) {\n      this.ngControl.valueAccessor = this;\n    }\n    fm.monitor(_elementRef.nativeElement, true).subscribe(origin => {\n      this.focused = !!origin;\n      this.stateChanges.next();\n    });\n  }\n  userAriaDescribedBy?: string;\n  disableAutomaticLabeling?: boolean;\n\n  private _onChange = (_: any) => {};\n  private _onTouched = () => {};\n\n  get fileNames() {\n    return this.value ? this.value.fileNames : this.valuePlaceholder;\n  }\n\n  writeValue(obj: FileInput | null): void {\n    this._renderer.setProperty(this._elementRef.nativeElement, 'value', obj instanceof FileInput ? obj.files : null);\n  }\n\n  registerOnChange(fn: (_: any) => void): void {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Remove all files from the file input component\n   * @param [event] optional event that may have triggered the clear action\n   */\n  clear(event?: Event) {\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n    }\n    this.value = new FileInput([]);\n    this._elementRef.nativeElement.querySelector('input').value = null;\n    this._onChange(this.value);\n  }\n\n  @HostListener('change', ['$event'])\n  change(event: Event) {\n    const fileList: FileList | null = (<HTMLInputElement>event.target).files;\n    const fileArray: File[] = [];\n    if (fileList) {\n      for (let i = 0; i < fileList.length; i++) {\n        fileArray.push(fileList[i]);\n      }\n    }\n    this.value = new FileInput(fileArray);\n    this._onChange(this.value);\n  }\n\n  @HostListener('focusout')\n  blur() {\n    this.focused = false;\n    this._onTouched();\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n  }\n\n  ngOnInit() {\n    this.multiple = coerceBooleanProperty(this.multiple);\n  }\n\n  open() {\n    if (!this.disabled) {\n      this._elementRef.nativeElement.querySelector('input').click();\n    }\n  }\n\n  ngOnDestroy() {\n    this.stateChanges.complete();\n    this.fm.stopMonitoring(this._elementRef.nativeElement);\n  }\n\n  ngDoCheck(): void {\n    if (this.ngControl) {\n      // We need to re-evaluate this on every change detection cycle, because there are some\n      // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n      // that whatever logic is in here has to be super lean or we risk destroying the performance.\n      this.updateErrorState();\n    }\n  }\n\n}\n","<input #input type=\"file\" [attr.multiple]=\"multiple? '' : null\" [attr.accept]=\"accept\">\n<span class=\"filename\" [title]=\"fileNames\">{{ fileNames }}</span>\n","import { Component, Input, Output, EventEmitter, ViewChild, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { MatInput } from '@angular/material/input';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormField, MatLabel, MatSuffix, MatError, MatHint } from '@angular/material/form-field';\nimport { ToastrService } from 'ngx-toastr';\nimport { FileInputComponent } from './material-file-input/file-input/file-input.component';\nimport { FileInput } from './material-file-input/model/file-input.model';\nimport { ControlMaterialComponent } from '../control-material.component';\n\n@Component({\n    selector: 'lib-control-material-file',\n    templateUrl: './control-material-file.component.html',\n    styleUrls: ['./control-material-file.component.scss'],\n    standalone: true,\n    imports: [MatFormField, MatLabel, FileInputComponent, FormsModule, ReactiveFormsModule, MatIconButton, MatSuffix, MatIcon, MatError, MatHint, MatInput]\n})\nexport class ControlMaterialFileComponent extends ControlMaterialComponent implements OnChanges {\n\n  selectedFiles: any;\n  image: any;\n\n  @Input() extensao: [string?] = [];\n  @Input() filename = this.translate.instant('SELECIONAR_ARQUIVO');\n  @Input() maxSize = 100000000;\n  @Input() file: any;\n  @Input() imageHeight = '44px';\n  @Input() imageWidth = 'auto';\n  @Input() imageClass = '';\n  @Input() nome = 'logo';\n  @Input() hint = null;\n\n  @Output() selectedFile: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputFile') inputFile: FileInputComponent;\n\n  protected toastrService = inject(ToastrService);\n\n  constructor() {\n    super();\n    this.placeholder = this.filename;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['file']) {\n      this.updateImage();\n    }\n  }\n\n  updateImage() {\n    if (this.file !== undefined && this.file !== null && this.file.toString().length > 0) {\n\n      // atualiza imagem renderizada\n      fetch(this.file)\n        .then(res => res.blob())\n        .then(blob => {\n          let blobFile = this.blobToFile(blob, this.nome);\n          this.resizeImage(blobFile, 1040, 1040).then( resI => {\n            blobFile = this.blobToFile(resI, this.nome);\n          },\n          error => {\n            console.log('error:', error);\n          });\n          this.renderImage(blobFile, this.file);\n          // atualiza campo com o nome da imagem\n          const arquivos: File[] = [];\n          arquivos.push(blobFile);\n\n          const arquivo: FileInput = new FileInput(arquivos);\n\n          if (this.formControlName !== undefined) {\n            this.formControlName.control.setValue(arquivo);\n          } else if (this.control !== undefined) {\n            this.control.value = arquivo;\n          }\n\n          if (this.selectedFiles !== undefined && this.selectedFiles !== null && this.selectedFiles.length > 0) {\n            this.selectedFiles[0] = blobFile;\n          } else {\n            this.selectedFiles = [];\n            this.selectedFiles.push(blobFile);\n          }\n        });\n    } else {\n      if (this.formControlName !== undefined) {\n        this.formControlName.control.setValue(null);\n      } else if (this.control !== undefined) {\n        this.control.value = null;\n      }\n      this.image = null;\n    }\n  }\n\n  selectFile($event) {\n    const arquivos = $event.target.files;\n    if (arquivos && arquivos.length) {\n      if (arquivos[0].size > this.maxSize) {\n\n        this.toastrService.warning(this.translate.instant('TAMANHO_IMAGEM_EXCEDIDA', {valor: this.maxSize}));\n\n        if (this.formControlName !== undefined) {\n          this.formControlName.control.setValue(null);\n          this.formControlName.control.updateValueAndValidity();\n        } else if (this.control !== undefined) {\n          this.control.value = null;\n          this.control.updateValueAndValidity();\n        }\n        this.image = undefined;\n        $event.preventDefault();\n        return;\n      }\n      if (this.extensao.length > 0) {\n        if (this.extensao.indexOf(arquivos[0].type.split('/')[1]) === -1) {\n          this.toastrService.warning(this.translate.instant('EXTENSAO_ARQUIVO_NAO_PERMITIDA', {extensao: this.extensao}));\n\n          if (this.formControlName !== undefined) {\n            this.formControlName.control.setValue(null);\n            this.formControlName.control.updateValueAndValidity();\n          } else if (this.control !== undefined) {\n            this.control.value = null;\n            this.control.updateValueAndValidity();\n          }\n          this.image = undefined;\n          $event.preventDefault();\n          return;\n        }\n      }\n      if (arquivos[0].type.indexOf('image') > -1) {\n        this.resizeImage(arquivos[0], 1040, 1040).then( resI => {\n\n          if (this.selectedFiles !== undefined && this.selectedFiles !== null && this.selectedFiles.length > 0) {\n            this.selectedFiles[0] = <File>resI;\n          } else {\n            this.selectedFiles = [];\n            this.selectedFiles.push(<File>resI);\n          }\n\n          const reader = new FileReader();\n          reader.onload = () => {\n            this.renderImage(this.selectedFiles[0], reader.result);\n          };\n          reader.readAsDataURL(this.selectedFiles[0]);\n        },\n        error => {\n          console.log('error:', error);\n        });\n      } else {\n        this.selectedFiles = arquivos;\n      }\n\n\n      // this.selectedFiles = arquivos;\n      /* this.placeholder = arquivos[0].name;\n      this.formControlName.control.setValue(arquivos);\n      this.formControlName.control.updateValueAndValidity();\n      this.inputFile['value'] = this.formControlName.value;*/\n\n      // const reader = new FileReader();\n      // reader.onload = () => {\n      //   this.renderImage(this.selectedFiles[0], reader.result);\n      // };\n      // reader.readAsDataURL(this.selectedFiles[0]);\n    } else {\n      this.image = undefined;\n    }\n\n    this.selectedFile.emit($event);\n  }\n\n  private renderImage(arquivo: File, imagem: any) {\n    if (arquivo.type.split('/')[0] === 'image') {\n      this.image = imagem;\n    } else {\n      this.image = undefined;\n    }\n  }\n\n  private blobToFile = (theBlob: Blob, fileName: string): File => {\n    const b: any = theBlob;\n    b.lastModifiedDate = new Date();\n    b.name = fileName !== null ? fileName.indexOf('.') === -1 ? fileName + '.' + theBlob.type.split('/')[1] : fileName : null;\n    return <File>theBlob;\n  }\n\n  private resizeImage(file:File, maxWidth:number, maxHeight:number):Promise<Blob> {\n    return new Promise((resolve, reject) => {\n        let image = new Image();\n        image.src = URL.createObjectURL(file);\n        image.onload = () => {\n            let width = image.width;\n            let height = image.height;\n\n            if (width <= maxWidth && height <= maxHeight) {\n                resolve(file);\n            }\n\n            let newWidth;\n            let newHeight;\n\n            if (width > height) {\n                newHeight = height * (maxWidth / width);\n                newWidth = maxWidth;\n            } else {\n                newWidth = width * (maxHeight / height);\n                newHeight = maxHeight;\n            }\n\n            let canvas = document.createElement('canvas');\n            canvas.width = newWidth;\n            canvas.height = newHeight;\n\n            let context = canvas.getContext('2d');\n\n            context.drawImage(image, 0, 0, newWidth, newHeight);\n\n            canvas.toBlob(resolve, file.type);\n        };\n        image.onerror = reject;\n    });\n  }\n}\n","@if (!readonly) {\n  <mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\n    @if (label !== undefined && label !== null) {\n      <mat-label>{{label}}@if (required) {\n        <span>*</span>\n      }</mat-label>\n    }\n    <lib-mat-file-input #inputFile [formControl]=\"control\" (change)=\"selectFile($event)\" [placeholder]=\"placeholder\"></lib-mat-file-input>\n    @if (!inputFile.empty) {\n      <button mat-icon-button matSuffix (click)=\"inputFile.clear($event); image=null\">\n        <mat-icon class=\"fa-solid fa-xmark\"></mat-icon>\n      </button>\n    }\n    @if (inputFile.empty) {\n      <mat-icon matSuffix class=\"fa-solid fa-folder-open\"></mat-icon>\n    }\n    @if (hasError()) {\n      <mat-error class=\"danger\">{{errorMessage}}</mat-error>\n    }\n    @if (hint !== null) {\n      <mat-hint>{{hint}}</mat-hint>\n    }\n  </mat-form-field>\n}\n\n@if (readonly) {\n  <mat-form-field appearance=\"outline\" class=\"d-block\" [class.smaller]=\"smaller\">\n    @if (label !== undefined && label !== null) {\n      <mat-label>{{label}}@if (required) {\n        <span>*</span>\n      }</mat-label>\n    }\n    <input [readonly]=\"readonly\" matInput [value]=\"control?.value?._fileNames\" />\n  </mat-form-field>\n}\n\n@if (image !== undefined && image !== null) {\n  <span>\n    <img [src]=\"image\" class=\"{{imageClass}} img-thumbnail\" [style.height]=\"imageHeight\" [style.width]=\"imageWidth\" />\n  </span>\n}\n","import moment from 'moment';\nimport { AfterContentInit, Component, EventEmitter, HostBinding, Input, Output, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMatDateAdapter, NgxMatDatetimePickerModule } from '@4sellers/angular-material-components-datetime-picker';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatDatepickerToggle, MatDatepickerToggleIcon } from '@angular/material/datepicker';\nimport { IMaskDirective } from 'angular-imask';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormField, MatLabel, MatSuffix, MatError } from '@angular/material/form-field';\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\nimport {provideMomentDateAdapter} from '@angular/material-moment-adapter';\nimport 'moment/locale/pt';\nimport 'moment/locale/es';\nimport { ControlMaterialComponent } from './../control-material.component';\nimport { Mask } from '@angulartoolsdr/shared-utils';\n\n@Component({\n    selector: 'lib-control-material-date-time',\n    templateUrl: './control-material-date-time.component.html',\n    styleUrls: ['./control-material-date-time.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ControlMaterialDateTimeComponent), // replace name as appropriate\n            multi: true\n        },\n        {provide: MAT_DATE_LOCALE, useValue: 'pt-BR'},\n\n        // Moment can be provided globally to your app by adding `provideMomentDateAdapter`\n        // to your app config. We provide it at the component level here, due to limitations\n        // of our example generation script.\n        provideMomentDateAdapter(),\n    ],\n    standalone: true,\n    imports: [MatFormField, MatLabel, MatInput, NgxMatDatetimePickerModule, FormsModule, ReactiveFormsModule, IMaskDirective, MatDatepickerToggle, MatSuffix, MatIcon, MatDatepickerToggleIcon, MatButton, MatError, TranslateModule]\n})\nexport class ControlMaterialDateTimeComponent extends ControlMaterialComponent implements AfterContentInit {\n\n  @Input() showTime = true;\n  @Input() enableMeridian = false;\n  @Input() disableMinute = false;\n  @Input() showSpinners = true;\n  @Input() showSeconds = false;\n  @Input() stepHour = 1;\n  @Input() stepMinute = 1;\n  @Input() stepSecond = 1;\n  @Input() touchUi = false;\n  @Input() minDate = null;\n  @Input() maxDate = null;\n\n  hourMinuteMask: Mask = Mask.getMaskHourMinute();\n\n  LANG_EN = 'en-US';\n\n  inputDate = '';\n  inputHour = '';\n  dateMask = Mask.getMaskDate();\n\n  @HostBinding() override id = `lib-control-material-date-time-${ControlMaterialComponent.nextId++}`;\n  private readonly _adapter = inject<NgxMatDateAdapter<unknown>>(NgxMatDateAdapter);\n\n  @Output() selectDate: EventEmitter<any> = new EventEmitter();\n\n  constructor() {\n    super();\n    this._adapter.setLocale(this.translate.currentLang);\n  }\n\n  override ngAfterContentInit() {\n    super.ngAfterContentInit();\n\n    if (this.control !== undefined && this.control !== null) {\n\n      if (this.control.value !== undefined && this.control.value !== null) {\n        this.preencherData(moment(this.control.value).toDate());\n        this.preencherHora(moment(this.control.value).toDate());\n      }\n\n      this.control.valueChanges.subscribe(val => {\n        if (val === null || val === undefined) {\n          this.inputDate = this.inputHour = Object.assign('', '');\n        } else {\n          this.preencherData(moment(val).toDate());\n          this.preencherHora(moment(val).toDate());\n        }\n      });\n\n    }\n\n    if (this.showTime) {\n      // this._adapter['customFormatDate'] = 'L LT';\n    } else {\n      // this._adapter['customFormatDate'] = 'L';\n    }\n\n  }\n\n  override writeValue(value) {\n    if (value !== undefined && value !== null) {\n      if (this.showTime){\n        this.control.setValue((new Date(value)).toISOString());\n      }\n    }\n  }\n\n  dateInputChanged($event): any {\n    //console.log($event);\n    let value = null;\n\n    if ($event !== undefined) {\n      if ($event instanceof Date) {\n        value = $event;\n      }else if (typeof $event === 'string' && $event !== '' ) {\n        const date = new Date($event);\n        value = date; // GlobalUtil.convertUTCDateToLocalDate(date);\n      } else if ($event.value !== undefined && typeof $event.value === 'string' && $event.value !== '') {\n        const date = new Date($event.value);\n        value = date; // GlobalUtil.convertUTCDateToLocalDate(date);\n      } else if ($event.target.valueAsDate !== undefined && $event.target.valueAsDate !== null && $event.valueAsDate !== '') {\n        if (!this.showTime) {\n          value = this.getDateUTC($event.target.valueAsDate);\n        } else {\n          value = $event.target.valueAsDate;\n        }\n      } else if ($event.target.value !== undefined && $event.target.value !== null && $event.target.value !== '' ) {\n        const date = new Date($event.target.value);\n        value = date; // GlobalUtil.convertUTCDateToLocalDate(date);\n      }\n    }\n\n    //console.log(value);\n    return value;\n  }\n\n   onFocus(event) {\n    setTimeout(() => {\n      event.target.setSelectionRange(0, event.target.value?.length);\n    });\n   }\n\n   onFocusOutDate(event) {\n    const novaData = new Date();\n\n    const aData = event.target?.value?.split('/');\n\n    if (aData[0].trim() !== '') {\n      const ano = aData[2].trim() === '' ? novaData.getFullYear() : Number(aData[2].trim());\n      if (this.translate.currentLang === this.LANG_EN) {\n        const mes = aData[0].trim() === '' ? (novaData.getMonth() + 1 ) : Number(aData[0].trim());\n        const dia = Number(aData[1].trim());\n        this.montarData(dia === 0 ? novaData.getDate() : dia, mes, ano);\n      } else {\n        const mes = aData[1].trim() === '' ? (novaData.getMonth() + 1 ) : Number(aData[1].trim());\n        this.montarData(Number(aData[0].trim()), mes, ano);\n      }\n    } else {\n      this.control.setValue(null, {emitEvent: false});\n      this.selectDate.emit(null);\n    }\n\n   }\n\n   montarData(dia, mes, ano){\n\n    if (dia === 0) {\n      this.inputDate = this.inputHour = Object.assign('', '');\n      this.control.setValue(null, {emitEvent: false});\n      this.selectDate.emit(null);\n      return;\n    }\n\n    const data = new Date();\n    mes = mes === 0 ? data.getMonth() : mes - 1;\n    ano = ano === 0 ? data.getFullYear() : ano;\n\n    let date = new Date(ano, mes, dia);\n\n    if (this.control.value !== null && this.control.value !== undefined) {\n      const oldDate = new Date(this.control.value);\n      date.setHours(oldDate.getHours());\n      date.setMinutes(oldDate.getMinutes());\n    }\n\n    this.validarDataHora(date);\n\n   }\n\n   onFocusOutHour(event) {\n    const aHora = event.target?.value?.split(':');\n    let hora = Number(aHora[0].trim());\n    let min = Number(aHora[1].trim());\n\n    if (this.control.value !== null && this.control.value !== undefined) {\n      let date = new Date(this.control.value);\n      date.setHours(hora);\n      date.setMinutes(min);\n\n      if (!this.validarDataHora(date)) {\n        date.setHours(0);\n        date.setMinutes(0);\n        this.validarDataHora(date);\n      }\n    } else {\n      this.inputHour = Object.assign('', '');\n    }\n\n   }\n\n   preencherData(date) {\n    const sDia = date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate().toString();\n    const sMes = date.getMonth() < 9 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1);\n\n    this.inputDate = '';\n    setTimeout(() => {\n      if (this.translate.currentLang === this.LANG_EN) {\n        this.inputDate = sMes + '/' + sDia + '/' + date.getFullYear();\n      } else {\n        this.inputDate = sDia + '/' + sMes + '/' + date.getFullYear();\n      }\n    });\n   }\n\n   preencherHora(date) {\n    const sHora = date.getHours() < 10 ? ('0' + date.getHours()) : date.getHours().toString();\n    const sMin = date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes().toString();\n\n    this.inputHour = '';\n    setTimeout(() => {\n      this.inputHour = sHora + ':' + sMin;\n    });\n   }\n\n   changeDate(event) {\n    if (this.control.value === null || this.control.value === undefined) {\n      this.control.value = new Date();\n    }\n    this.preencherData(new Date(this.control.value));\n    this.preencherHora(new Date(this.control.value));\n    this.control.setValue(new Date(this.control.value), {emitEvent: false});\n    this.selectDate.emit(this.control.value);\n   }\n\n   validarDataHora(data) {\n    if ((this.minDate !== null && data < this.minDate) || (this.maxDate !== null && data > this.maxDate)) {\n      this.inputDate = this.inputHour = Object.assign('', '');\n      this.control.setValue(null, {emitEvent: false});\n      this.selectDate.emit(null);\n      return false;\n    }\n\n    this.preencherData(data);\n    this.preencherHora(data);\n    this.control.setValue(null, {emitEvent: false});\n    this.control.setValue(data, {emitEvent: false});\n    this.selectDate.emit(data);\n    return true;\n\n   }\n\n}\n","<mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"d-block\" [class.smaller]=\"smaller\">\n\n  @if (label !== undefined && label !== null) {\n    <mat-label>{{label}}</mat-label>\n  }\n\n  <input matInput [hidden]=\"true\" [min]=\"minDate\" [max]=\"maxDate\" [ngxMatDatetimePicker]=\"picker\"\n    [formControl]=\"control\" [placeholder]=\"placeholder\" [readonly]=\"true\" (dateChange)=\"changeDate($event)\" />\n\n  <div class=\"d-inline-flex frame\">\n\n    <span class=\"mr-1\">\n      <input [readonly]=\"readonly\" [imask]=\"dateMask\" [unmask]=\"true\" placeholder=\"  /  /    \"\n        [disabled]=\"disabled\" [value]=\"inputDate\" class=\"form-control\" [style.height]=\"smaller ? '28px' : '32px'\"\n        (focus)=\"onFocus($event)\" (focusout)=\"onFocusOutDate($event)\" style=\"border: none; padding: 0px; max-width: 100px;\">\n    </span>\n\n    @if (showTime) {\n      <span>\n        <input [readonly]=\"readonly\" [imask]=\"hourMinuteMask\" [unmask]=\"true\" placeholder=\"  :  \" [style.height]=\"smaller ? '28px' : '32px'\"\n          [disabled]=\"disabled\" [value]=\"inputHour\" class=\"form-control\" style=\"border: none; padding: 0px;\"\n          (focus)=\"onFocus($event)\" (focusout)=\"onFocusOutHour($event)\">\n      </span>\n    }\n\n  </div>\n\n  <mat-datepicker-toggle matIconSuffix [for]=\"$any(picker)\" [disabled]=\"readonly\" tabindex=\"-1\" aria-hidden=\"true\">\n    <mat-icon matDatepickerToggleIcon>\n      calendar_month\n    </mat-icon>\n  </mat-datepicker-toggle>\n\n  <ngx-mat-datetime-picker #picker [showSpinners]=\"showSpinners\" [showSeconds]=\"showSeconds\"\n    [stepHour]=\"stepHour\" [stepMinute]=\"stepMinute\" [stepSecond]=\"stepSecond\"\n    [touchUi]=\"touchUi\"  [enableMeridian]=\"enableMeridian\"\n    [disableMinute]=\"disableMinute\" [hideTime]=\"!showTime\">\n    <ngx-mat-datepicker-actions>\n      <button mat-button ngxMatDatepickerCancel>\n        <i class=\"mdi mdi-close mr-1\"></i>{{'CANCELAR' | translate}}\n      </button>\n      <button mat-raised-button color=\"primary\" ngxMatDatepickerApply>\n        <i class=\"mdi mdi-check mr-1\"></i>{{'CONFIRMAR' | translate}}\n      </button>\n    </ngx-mat-datepicker-actions>\n  </ngx-mat-datetime-picker>\n\n  @if (hasError()) {\n    <mat-error class=\"danger\">{{errorMessage}}</mat-error>\n  }\n\n</mat-form-field>\n","/*\r\n * Public API Surface of control-material\r\n */\r\n\r\nexport * from './lib/validators/autocomplete.validator';\r\nexport * from './lib/validators/cnpj.validator';\r\nexport * from './lib/validators/hour-minute.validator';\r\nexport * from './lib/validators/ip-address.validator';\r\nexport * from './lib/validators/limit-fields.validator';\r\nexport * from './lib/validators/list.validator';\r\nexport * from './lib/validators/phone-number.validator';\r\nexport * from './lib/validators/validators-util';\r\nexport * from './lib/control-material-autocomplete/control-material-autocomplete.component';\r\nexport * from './lib/control-material-color-picker/control-material-color-picker.component';\r\nexport * from './lib/control-material-filter/control-material-filter.component';\r\nexport * from './lib/control-material-fontawesome-icon/control-material-fontawesome-icon.component';\r\nexport * from './lib/control-material-masked/control-material-masked.component';\r\nexport * from './lib/control-material-minute-second/control-material-minute-second.component';\r\nexport * from './lib/control-material-number/control-material-number.component';\r\nexport * from './lib/control-material-password/control-material-password.component';\r\nexport * from './lib/control-material-phone/control-material-phone.component';\r\nexport * from './lib/control-material-radio/control-material-radio.component';\r\nexport * from './lib/control-material-search/control-material-search.component';\r\nexport * from './lib/control-material-select/control-material-select.component';\r\nexport * from './lib/control-material-textarea/control-material-textarea.component';\r\nexport * from './lib/control-material-time/control-material-time.component';\r\nexport * from './lib/control-material-file/control-material-file.component';\r\nexport * from './lib/control-material-date-time/control-material-date-time.component';\r\nexport * from './lib/control-material.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","map","startWith","i1","i3.FontAwesomeSearchService","i4","debounceTime","MatOption","i3"],"mappings":"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"}