monkey-front-components 0.0.201 → 0.0.207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/components/base/base-component.mjs +4 -4
  3. package/esm2020/lib/components/base/base-dynamic-array.mjs +4 -4
  4. package/esm2020/lib/components/base/base-dynamic.mjs +4 -4
  5. package/esm2020/lib/components/base/base-validators.mjs +1 -1
  6. package/esm2020/lib/components/base/index.mjs +1 -1
  7. package/esm2020/lib/components/dynamic/button/button.component.mjs +5 -5
  8. package/esm2020/lib/components/dynamic/button/index.mjs +1 -1
  9. package/esm2020/lib/components/dynamic/dynamic-directive.mjs +4 -4
  10. package/esm2020/lib/components/dynamic/dynamic.module.mjs +5 -5
  11. package/esm2020/lib/components/dynamic/file-upload/file-upload.component.mjs +5 -5
  12. package/esm2020/lib/components/dynamic/file-upload/index.mjs +1 -1
  13. package/esm2020/lib/components/dynamic/form/dynamic-form-array.component.mjs +5 -5
  14. package/esm2020/lib/components/dynamic/form/dynamic-form.component.mjs +5 -5
  15. package/esm2020/lib/components/dynamic/form/index.mjs +1 -1
  16. package/esm2020/lib/components/dynamic/index.mjs +1 -1
  17. package/esm2020/lib/components/dynamic/input/index.mjs +1 -1
  18. package/esm2020/lib/components/dynamic/input/input.component.mjs +4 -4
  19. package/esm2020/lib/components/dynamic/input-phone/index.mjs +1 -1
  20. package/esm2020/lib/components/dynamic/input-phone/input-phone.component.mjs +4 -4
  21. package/esm2020/lib/components/dynamic/radio/index.mjs +1 -1
  22. package/esm2020/lib/components/dynamic/radio/radio.component.mjs +5 -5
  23. package/esm2020/lib/components/dynamic/select/index.mjs +1 -1
  24. package/esm2020/lib/components/dynamic/select/select.component.mjs +5 -5
  25. package/esm2020/lib/components/dynamic/select-search/index.mjs +1 -1
  26. package/esm2020/lib/components/dynamic/select-search/select-search.component.mjs +5 -5
  27. package/esm2020/lib/components/index.mjs +1 -1
  28. package/esm2020/lib/components/shared/index.mjs +1 -1
  29. package/esm2020/lib/components/shared/password-strength/index.mjs +1 -1
  30. package/esm2020/lib/components/shared/password-strength/password-strength.component.mjs +5 -5
  31. package/esm2020/lib/components/shared/password-strength/password-strength.mjs +1 -1
  32. package/esm2020/lib/components/shared/password-strength/password-strength.module.mjs +5 -5
  33. package/esm2020/lib/components/shared/progress-bar/index.mjs +1 -1
  34. package/esm2020/lib/components/shared/progress-bar/progress-bar.component.mjs +5 -5
  35. package/esm2020/lib/components/shared/progress-bar/progress-bar.module.mjs +5 -5
  36. package/esm2020/lib/components/shared/progress-bar/progress-bar.service.mjs +4 -4
  37. package/esm2020/lib/interfaces/field-config.mjs +1 -1
  38. package/esm2020/lib/interfaces/index.mjs +1 -1
  39. package/esm2020/public-api.mjs +1 -1
  40. package/fesm2015/monkey-front-components.mjs +69 -69
  41. package/fesm2015/monkey-front-components.mjs.map +1 -1
  42. package/fesm2020/monkey-front-components.mjs +69 -69
  43. package/fesm2020/monkey-front-components.mjs.map +1 -1
  44. package/monkey-front-components-0.0.207.tgz +0 -0
  45. package/package.json +4 -4
  46. package/monkey-front-components-0.0.201.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"monkey-front-components.mjs","sources":["../../../projects/monkey-front-components/src/lib/components/base/base-component.ts","../../../projects/monkey-front-components/src/lib/components/base/base-validators.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic-array.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic-directive.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.html","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.html","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-components/src/public-api.ts","../../../projects/monkey-front-components/src/monkey-front-components.ts"],"sourcesContent":["/* eslint-disable max-len */\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { OnDestroy, Directive } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport {\n MonkeyEcxCommonsService,\n MonkeyEcxErrorResponse,\n MonkeyEcxPaginationOptions,\n MonkeyEcxScrollOptions,\n MonkeyEcxSupportOptions,\n MonkeyEcxTranslateOptions,\n ValidateUtils\n} from 'monkey-front-core';\n\n@Directive({\n selector: '[baseComponent]'\n})\nexport abstract class BaseComponent implements OnDestroy {\n __monkeyecxFormErrors: any | any[];\n\n __unsubscribeAll: Subject<any>;\n\n __paginationOptions: MonkeyEcxPaginationOptions | null = null;\n\n __i18n: any;\n\n __isMobile = this.isMobile();\n\n __locales = ['pt-BR', 'es-CL'];\n\n private paginationFunc: any;\n\n protected constructor() {\n this.__unsubscribeAll = new Subject();\n }\n\n private isMobile() {\n const isMobileWidth = (window.screen.width <= 640) ||\n (window.matchMedia &&\n window.matchMedia('only screen and (max-width: 640px)').matches\n );\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile/i.test(\n navigator.userAgent\n )) || isMobileWidth;\n }\n\n private handlePagination(create = true) {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { mainElement, service } = __paginationOptions;\n\n const element = document.getElementById(mainElement);\n\n if (element) {\n element.scroll = null;\n element.onscroll = null;\n\n if (create) {\n element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\n element.addEventListener('scroll', () => {\n const { scrollTop, scrollHeight, offsetHeight } = element;\n const contentHeight = scrollHeight - offsetHeight;\n\n if (contentHeight <= scrollTop) {\n service.doPagination();\n }\n });\n }\n }\n }\n }\n\n private handleSupport(supportControls: MonkeyEcxSupportOptions) {\n const { service, show } = supportControls;\n const method = show ? 'show' : 'hide';\n service[method.toLowerCase()]();\n }\n\n private handleTranslate(translateOptions: MonkeyEcxTranslateOptions) {\n const { service } = translateOptions;\n service.__oni18nDataChanged$\n .pipe(takeUntil(this.__unsubscribeAll))\n .subscribe(() => {\n const data = service.__i18n;\n if (data) {\n this.__i18n = data;\n }\n });\n }\n\n private handleViewScroll(options: MonkeyEcxScrollOptions) {\n const { elementId, service } = options;\n\n if (elementId === service?.__savedState?.scrollElementId) {\n this.goScroll(elementId);\n\n service.__savedState.scrollElementId = null;\n }\n }\n\n private getErrorFirstMessageTranslated(formControl: AbstractControl | null = null) {\n if (formControl?.hasError('required')) return 'FIELD-REQUIRED';\n if (formControl?.hasError('invalid')) return 'FIELD-INVALID';\n if (formControl?.hasError('email')) return 'INVALID-EMAIL';\n if (formControl?.hasError('minlength')) return 'MIN-LENGTH';\n if (formControl?.hasError('maxlength')) return 'MAX-LENGTH';\n if (formControl?.hasError('max')) return 'MAX';\n if (formControl?.hasError('min')) return 'MIN';\n if (formControl?.hasError('passwordsNotMatching')) return 'MATCH-PASSWORD';\n if (formControl?.hasError('invalidDate')) return 'INVALID-DATE';\n if (formControl?.hasError('invalidTrue')) return 'INVALID-TRUE';\n if (formControl?.hasError('invalidCpfCnpj')) return 'INVALID-DOCUMENT';\n if (formControl?.hasError('invalidZipCode')) return 'INVALID-ZIPCODE';\n if (formControl?.hasError('invalidCombo')) return 'INVALID-COMBO';\n if (formControl?.hasError('invalidUrl')) return 'INVALID-URL';\n if (formControl?.hasError('invalidUnlockRegister')) { return 'INVALID-UNLOCK-REGISTER'; }\n if (formControl?.hasError('dateStartMustBeLessThanAnd')) {\n return 'DATE-START-MUST-BE-LESS-THAN-AND';\n }\n if (formControl?.hasError('dateEndMustBeGreaterThanStart')) {\n return 'DATE-END-MUST-BE-GREATER-THAN-SART';\n }\n if (formControl?.hasError('phone')) return 'INVALID-PHONE';\n\n return 'FIELD-INVALID';\n }\n\n private getErrorLastMessageNotTranslated(formControl: AbstractControl | null = null) {\n if (formControl?.hasError('minlength')) {\n return `${formControl?.getError('minlength').requiredLength} caracteres.`;\n }\n if (formControl?.hasError('maxlength')) {\n return `${formControl?.getError('maxlength').requiredLength} caracteres.`;\n }\n if (formControl?.hasError('max')) { return `${formControl?.getError('max').max}`; }\n if (formControl?.hasError('min')) { return `${formControl?.getError('min').min}`; }\n\n return '';\n }\n\n public validateFormWithTranslate(f: FormGroup, index?: number): boolean {\n const formErrors: any = f.value;\n\n if (f.status === 'VALID') return true;\n\n if (!formErrors) return true;\n Object.entries(formErrors).forEach(([key, value]) => {\n const control = f.get(key);\n formErrors[key] = '';\n if (control && !control.valid) {\n const msg = {\n first: `ERRORS.${this.getErrorFirstMessageTranslated(f.get(key))}`,\n last: this.getErrorLastMessageNotTranslated(f.get(key))\n };\n formErrors[key] = msg;\n }\n });\n\n if (MonkeyUtils.persistNullEmptyUndefined(index)) { this.__monkeyecxFormErrors[index || 0] = formErrors; } else {\n this.__monkeyecxFormErrors = formErrors;\n }\n\n return false;\n }\n\n public copyToClipboard(val: string) {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = val;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n\n public validateForm(f: FormGroup, index?: number, alias?: string): boolean {\n const formErrors: any = f.value;\n if (f.status === 'VALID') return true;\n\n if (!formErrors) return true;\n Object.entries(formErrors).forEach(([key, value]) => {\n const control = f.get(key);\n formErrors[key] = '';\n if (control && !control.valid) {\n const msg = {\n firstMessage: `ERRORS.${this.getErrorFirstMessageTranslated(\n f.get(key)\n )}`,\n lastMessage: this.getErrorLastMessageNotTranslated(f.get(key))\n };\n formErrors[key] = msg;\n }\n });\n\n if (MonkeyUtils.persistNullEmptyUndefined(index)) {\n this.__monkeyecxFormErrors[index || 0] = formErrors;\n } else {\n let obj: any;\n\n if (alias) {\n obj = {\n [alias]: {\n ...formErrors\n }\n };\n } else {\n obj = formErrors;\n }\n\n this.__monkeyecxFormErrors = {\n ...this.__monkeyecxFormErrors,\n ...obj\n };\n }\n f.markAllAsTouched();\n return false;\n }\n\n public clearAllServiceData(clearData: boolean) {\n const context = this;\n Object.values(context).forEach((ctx: any) => {\n if (ctx instanceof MonkeyEcxCommonsService) {\n ctx.clear(clearData);\n }\n });\n }\n\n public ngOnInit(args: {\n paginationOptions?: MonkeyEcxPaginationOptions;\n supportControls?: MonkeyEcxSupportOptions;\n scrollOptions?: MonkeyEcxScrollOptions;\n translateOptions?: MonkeyEcxTranslateOptions;\n }) {\n if (args?.paginationOptions) {\n this.__paginationOptions = args?.paginationOptions;\n this.handlePagination();\n }\n if (args?.supportControls) {\n this.handleSupport(args?.supportControls);\n }\n if (args?.translateOptions) {\n this.handleTranslate(args?.translateOptions);\n }\n if (args?.scrollOptions) {\n this.handleViewScroll(args.scrollOptions);\n }\n }\n\n public ngOnDestroy(clearData: boolean = true) {\n this.__unsubscribeAll.next();\n this.__unsubscribeAll.complete();\n this.clearAllServiceData(clearData);\n this.handlePagination(false);\n }\n\n public handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup) {\n this.__monkeyecxFormErrors = null;\n if (error.type === 'Parameter_Error') {\n Object.entries(f.value).forEach(([key, value]) => {\n error.notifications.forEach((_: any) => {\n const field = _.split(':')[0];\n const description = _.split(':')[1];\n if (field === key) {\n const msg = {\n firstMessage: '',\n lastMessage: description\n };\n this.__monkeyecxFormErrors = {\n ...this.__monkeyecxFormErrors,\n [key]: msg\n };\n f.controls[key].setErrors({\n incorrect: true\n });\n }\n });\n });\n }\n\n f.markAllAsTouched();\n }\n\n public goBack() {\n window.history.back();\n }\n\n public goScroll(id: string) {\n const element = document.getElementById(id);\n if (element) element.scrollIntoView();\n }\n\n public getEmbeddedData(data: any, field: string): any[] | any {\n const { _embedded } = data;\n return _embedded ? _embedded[field] : null;\n }\n\n public openWindow(url: string) {\n window.open(`${url}`, '_blank');\n }\n\n public fillI18n(data: any) {\n this.__i18n = data;\n }\n\n public getCountryPrefix(country: string) {\n return {\n br: 55,\n cl: 56\n }[country];\n }\n\n public getCountryCurrencyChartFormat(country: string) {\n return {\n br: 'R$ #,###,##0.00',\n cl: 'CLP #,###,##0'\n }[country];\n }\n\n public getCountryValidators(country: string) {\n return {\n br: {\n governmentId: ValidateUtils.DocumentValidator\n },\n cl: {\n governmentId: ValidateUtils.DocumentRutValidator\n }\n }[country];\n }\n}\n","import { Validators as Validators_ } from '@angular/forms';\r\nimport { Validators } from 'monkey-front-core';\r\n\r\nexport const validators: any = {\r\n required: Validators_.required,\r\n email: Validators.email,\r\n governmentId: Validators.documentBR,\r\n governmentIdRut: Validators.documentCL,\r\n documentBR: Validators.documentBR,\r\n documentCL: Validators.documentCL,\r\n date: Validators.date,\r\n zipCode: Validators.zipCode,\r\n minLength: (param: number) => {\r\n return Validators_.minLength(param);\r\n },\r\n maxLength: (param: number) => {\r\n return Validators_.maxLength(param);\r\n }\r\n};\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamic]'\r\n})\r\nexport abstract class BaseDynamic extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private createControl() {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n public fillValues() {\r\n const { data } = this;\r\n if (!data || !this._form) return;\r\n Object.entries(data).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form?.controls[key]) {\r\n this._form?.controls[key]?.setValue(value);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.createControl();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.createControl();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\r\nimport { BaseComponent } from './base-component';\r\nimport { validators } from './base-validators';\r\n\r\n@Directive({\r\n selector: '[baseDynamicArray]'\r\n})\r\nexport abstract class BaseDynamicArray extends BaseComponent implements OnInit, OnChanges {\r\n @Input() onHandleSubmit = new EventEmitter<any>();\r\n\r\n @Input() onHandleUpdateForm = new EventEmitter<any>();\r\n\r\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() self: any;\r\n\r\n @Input() fields: MECXFieldConfig[] = [];\r\n\r\n @Input() data: any;\r\n\r\n @Input() qtd: number = 1;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n _plusValidations: any[] = [];\r\n\r\n private changesUnsubscribe = new Subject();\r\n\r\n constructor(private fb: FormBuilder) {\r\n super();\r\n }\r\n\r\n private handleInternalPlusValidation(\r\n mainField: any,\r\n data: any\r\n ) {\r\n const { operator, field, value } = mainField;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n\r\n return validators[operator](data?.[field] || data, value);\r\n }\r\n\r\n private makeInternalPlusValidation(\r\n data: any,\r\n sourceField: string,\r\n settings: any,\r\n rowIndex: number\r\n ) {\r\n const changeFields = (show: boolean) => {\r\n const saved = [...this.fields];\r\n\r\n saved.map((val) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.name === sourceField) {\r\n this._plusValidations[rowIndex] = {\r\n [sourceField]: {\r\n ...valSaved,\r\n alwaysShow: show\r\n }\r\n };\r\n this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);\r\n } else {\r\n this._plusValidations[rowIndex] = {\r\n ...valSaved\r\n };\r\n }\r\n return null;\r\n });\r\n };\r\n\r\n const validated = this.handleInternalPlusValidation(settings, data);\r\n changeFields(validated);\r\n }\r\n\r\n private createOneControl(fieldName: string, ctrl: any, create = true) {\r\n const { fields } = this;\r\n if (!fields) return;\r\n\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled } = field;\r\n if (name !== fieldName) return;\r\n let { value } = field;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n if (create) {\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n ctrl.addControl(name, control);\r\n } else {\r\n ctrl.removeControl(name);\r\n }\r\n });\r\n }\r\n\r\n private createControl(data?: any) {\r\n const { fields } = this;\r\n if (!fields) return null;\r\n // eslint-disable-next-line object-curly-newline\r\n const group = this.fb.group({});\r\n fields.forEach((field: MECXFieldConfig) => {\r\n const { fieldType, validations, name, disabled, alwaysShow } = field;\r\n let { value } = field;\r\n if (field.alwaysShowPlusValidation) {\r\n if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data)) return;\r\n } else if (!alwaysShow) return;\r\n if (fieldType === 'button') return;\r\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\r\n value = '';\r\n }\r\n const control = this.fb.control(value, this.bindValidations(validations || []));\r\n if (disabled || this.disabled) control.disable();\r\n group.addControl(name as string, control);\r\n });\r\n\r\n return group;\r\n }\r\n\r\n private bindValidations(validations: MECXFieldConfigValidator[]) {\r\n if (validations.length > 0) {\r\n const validList: any[] = [];\r\n validations.forEach((valid: MECXFieldConfigValidator) => {\r\n const validated = valid.param\r\n ? validators[valid.name](valid.param)\r\n : validators[valid.name];\r\n validList.push(validated);\r\n });\r\n return Validators.compose(validList);\r\n }\r\n return null;\r\n }\r\n\r\n private buildForm(): FormGroup {\r\n const form = this.fb.group({\r\n fields: this.fb.array([])\r\n });\r\n\r\n form?.controls.fields?.valueChanges.subscribe((_) => {\r\n this.watchForChanges();\r\n });\r\n\r\n return form;\r\n }\r\n\r\n private watchForChanges() {\r\n const { fields, changesUnsubscribe } = this;\r\n changesUnsubscribe.next();\r\n\r\n this.formValues?.controls?.map((control: any, index: number) => {\r\n fields.forEach((fieldConfig: MECXFieldConfig) => {\r\n const { name, alwaysShowPlusValidation } = fieldConfig;\r\n if (!alwaysShowPlusValidation) return;\r\n const { field } = alwaysShowPlusValidation;\r\n if (field) {\r\n control.controls[field]?.valueChanges.pipe(\r\n takeUntil(changesUnsubscribe)).subscribe((_: any) => {\r\n this.makeInternalPlusValidation(\r\n _,\r\n name as string,\r\n alwaysShowPlusValidation,\r\n index\r\n );\r\n });\r\n }\r\n });\r\n return null;\r\n });\r\n }\r\n\r\n public formBase = () => {\r\n // return this.fb.group(this.createControl());\r\n return this.createControl();\r\n };\r\n\r\n public get formValues() {\r\n return this._form ? (this._form.get('fields') as FormArray) : null;\r\n }\r\n\r\n public fillValues() {\r\n const { data, qtd } = this;\r\n if ((!this._form) && qtd) return;\r\n if (qtd > 0) {\r\n Array<any>(qtd)\r\n .fill(null)\r\n .map((_, index) => {\r\n let form = this.createControl();\r\n if (data && data[index]) {\r\n form = this.createControl(data[index]);\r\n const handledData = data[index];\r\n Object.entries(handledData).forEach(([key, value]) => {\r\n if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {\r\n form?.controls[key].setValue(value);\r\n }\r\n });\r\n }\r\n this.formValues?.push(form as any);\r\n\r\n return null;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this._form = this.buildForm();\r\n this.fillValues();\r\n\r\n this.onHandleUpdateForm.subscribe(() => {\r\n this.fillValues();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this._form) {\r\n this._form = this.buildForm();\r\n }\r\n this.fillValues();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFileUploadComponent {\r\n @Input() _field: MECXFieldConfig;\r\n\r\n @Input() _form: FormGroup;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n _function: Function = (file: any, callback?: Function) => {\r\n if (this._form?.disabled) return;\r\n if (!this._field?.functions?.onHandleUpload) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n const { func, type } = this._field?.functions?.onHandleUpload;\r\n if (!func || !this.self[func]) {\r\n console.error('onHandleUpload not declared');\r\n return;\r\n }\r\n this.self[func](file, type, callback);\r\n };\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<monkey-file-upload\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\r\n [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\r\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\r\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\r\n [allowedExtensions]=\"_field?.allowedExtensions || []\" *ngIf=\"_field\">\r\n</monkey-file-upload>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicButtonComponent implements OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClick() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field) return;\r\n const { name, value } = _field;\r\n const func = _field?.functions?.onClick;\r\n if (func) {\r\n self[func]({\r\n name,\r\n value,\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\r\n (click)=\"onClick()\">\r\n {{ _field?.label | translate }}\r\n</monkey-button>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input',\r\n templateUrl: './input.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\r\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\r\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\r\n [maxDateToday]=\"_field?.maxDateToday\">\r\n</monkey-input>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MonkeyInputComponent } from 'monkey-style-guide';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-input-phone',\r\n templateUrl: './input-phone.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicInputPhoneComponent implements OnInit, OnChanges {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @ViewChild('inputElement', {\r\n static: true\r\n }) inputElement: MonkeyInputComponent | null = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n ngOnInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-input-phone [name]=\"_field?.name\" [label]=\"_field?.label | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\"\r\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\r\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\r\n</monkey-input-phone>","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-radio',\r\n templateUrl: './radio.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicRadioComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n}\r\n","<monkey-radiobutton\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\">\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-radiobutton>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select',\r\n templateUrl: './select.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form?.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select>","import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n EventEmitter,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-select-search',\r\n templateUrl: './select-search.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicSelectSearchComponent {\r\n @Input() _field: MECXFieldConfig | null = null;\r\n\r\n @Input() _form: FormGroup | null = null;\r\n\r\n // eslint-disable-next-line object-curly-newline\r\n @Input() _formErrors: any | any[] = {};\r\n\r\n @Input() self: any;\r\n\r\n @HostBinding('class')\r\n get className() {\r\n return this._field?.style?.class;\r\n }\r\n\r\n _onHandleOptions = new EventEmitter<any>();\r\n\r\n onHandleGenericLoad() {\r\n const { _form, _field, self } = this;\r\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\r\n const { name } = _field;\r\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\r\n const { func, url } = _field?.functions?.onHandleGenericLoad;\r\n if (!func || !self[func]) {\r\n console.error('onHandleGenericLoad not declared');\r\n return;\r\n }\r\n _form?.disable();\r\n self[func]({\r\n name,\r\n url,\r\n form: _form,\r\n callback: (data: any[]) => {\r\n if (this._field) {\r\n this._field.value = data;\r\n }\r\n this._form?.enable();\r\n this._onHandleOptions.next(null);\r\n }\r\n });\r\n }\r\n\r\n onChange(event: string) {\r\n const { _form, _field, self } = this;\r\n if (!_field || !_form) return;\r\n const { name } = _field;\r\n const func = _field?.functions?.onChange;\r\n const isValid = _form?.get(_field?.name as string)?.valid;\r\n if (func) {\r\n self[func]({\r\n name,\r\n isValid,\r\n event,\r\n ctrl: _form.get(this._field?.name as string),\r\n form: _form,\r\n value: _field.value\r\n });\r\n }\r\n }\r\n}\r\n","<monkey-select-search\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\r\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\r\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\r\n [fieldToCompare]=\"_field?.fieldToCompare\"\r\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\r\n [placeholder]=\"_field?.placeholder | translate\">\r\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\r\n enableClick=\"false\">\r\n </monkey-option>\r\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\r\n [value]=\"value.value\">\r\n </monkey-option>\r\n</monkey-select-search>","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MECXFieldConfig } from '../../interfaces';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\nconst componentMapper: any = {\r\n input: MECXDynamicInputComponent,\r\n 'input-phone': MECXDynamicInputPhoneComponent,\r\n radiobutton: MECXDynamicRadioComponent,\r\n select: MECXDynamicSelectComponent,\r\n 'select-search': MECXDynamicSelectSearchComponent,\r\n 'file-upload': MECXDynamicFileUploadComponent,\r\n button: MECXDynamicButtonComponent\r\n};\r\n\r\n@Directive({\r\n selector: '[MECXDynamic]'\r\n})\r\nexport class MECXDynamicDirective implements OnInit, OnChanges {\r\n @Input() field: MECXFieldConfig | null = null;\r\n\r\n @Input() form: FormGroup | null = null;\r\n\r\n @Input() formErrors: any;\r\n\r\n @Input() self: any;\r\n\r\n @Input() plusValidations: any;\r\n\r\n componentRef: any;\r\n\r\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef,\r\n private cdr: ChangeDetectorRef) {\r\n // not to do\r\n }\r\n\r\n private handleInternalPlusValidation() {\r\n if (!this.field?.alwaysShowPlusValidation) return false;\r\n const { operator, value, field } = this.field?.alwaysShowPlusValidation;\r\n const validators: any = {\r\n e: (val1: any, val2: string) => { return val1 === val2; },\r\n lt: (val1: any, val2: string) => { return val1 < val2; },\r\n gt: (val1: any, val2: string) => { return val1 > val2; }\r\n };\r\n const data = this.form?.controls[field as string]?.value;\r\n\r\n return validators[operator as string](data, value);\r\n }\r\n\r\n private buildComponent() {\r\n if (this.componentRef?.instance) return;\r\n const factory = this.resolver.resolveComponentFactory(\r\n componentMapper[this.field?.fieldType as string]\r\n );\r\n this.componentRef = this.container.createComponent(factory);\r\n this.componentRef.instance._field = this.field;\r\n this.componentRef.instance._form = this.form;\r\n // eslint-disable-next-line object-curly-newline\r\n this.componentRef.instance._formErrors = this.formErrors || {};\r\n this.componentRef.instance.self = this.self;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.field?.alwaysShow && !this.handleInternalPlusValidation()) return;\r\n this.buildComponent();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.plusValidations && this.plusValidations[this.field?.name as string]) {\r\n if (!this.field?.alwaysShow && this.plusValidations[this.field?.name as string].alwaysShow) {\r\n setTimeout(() => {\r\n this.buildComponent();\r\n this.cdr.detectChanges();\r\n }, 1);\r\n }\r\n if (this.componentRef?.instance &&\r\n !this.plusValidations[this.field?.name as string].alwaysShow) {\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n this.form?.controls[this.field?.name as string]?.setValue(null);\r\n this.form?.controls[this.field?.name as string]?.clearValidators();\r\n }\r\n }\r\n if (!this.componentRef?.instance) return;\r\n this.componentRef.instance._formErrors = this.formErrors || {\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamic } from '../../base/base-dynamic';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styles: [],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormComponent extends BaseDynamic implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = {};\r\n\r\n const isValid = this.validateForm(_form as any);\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate: {\r\n isValid\r\n },\r\n callback,\r\n form: _form\r\n });\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div class=\"row\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"_form\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n</form>","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDynamicArray } from '../../base';\r\n\r\n@Component({\r\n selector: 'mecx-dynamic-form-array',\r\n templateUrl: './dynamic-form-array.component.html',\r\n styleUrls: ['./dynamic-form-array.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXDynamicFormArrayComponent extends BaseDynamicArray implements OnInit, OnDestroy {\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\r\n super(fb);\r\n this.__monkeyecxFormErrors = [];\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\r\n this.onSubmit(func);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n onSubmit(callback: Function) {\r\n const { _form } = this;\r\n // eslint-disable-next-line object-curly-newline\r\n this.__monkeyecxFormErrors = [];\r\n\r\n let validate = {\r\n isValid: false\r\n };\r\n let hasErrors: boolean = false;\r\n if (this.formValues) {\r\n this.__monkeyecxFormErrors = [this.formValues.length];\r\n this.formValues.controls.forEach((item: any, index: number) => {\r\n if (item instanceof FormGroup) {\r\n if (!this.validateForm(item, index)) {\r\n hasErrors = true;\r\n }\r\n }\r\n });\r\n }\r\n validate = {\r\n isValid: !hasErrors\r\n };\r\n\r\n this.cdr.detectChanges();\r\n\r\n this.onHandleSubmitFormReady.next({\r\n validate,\r\n callback,\r\n form: _form\r\n });\r\n }\r\n\r\n onHandleAdd() {\r\n this.formValues?.push(this.formBase() as any);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onHandleRemove(index: number) {\r\n this.formValues?.removeAt(index);\r\n this._plusValidations.splice(index, 1);\r\n }\r\n}\r\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\r\n <div formArrayName=\"fields\">\r\n <div *ngFor=\"let item of formValues.controls; let indForm=index\" [formGroupName]=\"indForm\">\r\n <monkey-button type=\"secondary\" color=\"error\" icon=\"close-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.REMOVE' | translate\" (click)=\"onHandleRemove(indForm)\"\r\n *ngIf=\"formValues.controls.length > 1 && !disabled\">\r\n </monkey-button>\r\n <div class=\"row mt-3\">\r\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"item\" [self]=\"self\"\r\n [formErrors]=\"__monkeyecxFormErrors[indForm]\"\r\n [plusValidations]=\"_plusValidations[indForm]\" [style.display]=\"'none'\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<monkey-button type=\"secondary\" color=\"theme\" icon=\"more-20\" iconPosition=\"right\"\r\n [label]=\"'BUTTONS.ADD' | translate\" (click)=\"onHandleAdd()\" *ngIf=\"!disabled\">\r\n</monkey-button>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n MonkeyInputModule,\r\n MonkeyInputPhoneModule,\r\n MonkeyOptionModule,\r\n MonkeyRadioButtonModule,\r\n MonkeySelectModule\r\n} from 'monkey-style-guide';\r\nimport { MECXDynamicButtonComponent } from './button';\r\nimport { MECXDynamicDirective } from './dynamic-directive';\r\nimport { MECXDynamicFileUploadComponent } from './file-upload';\r\nimport { MECXDynamicFormComponent, MECXDynamicFormArrayComponent } from './form';\r\nimport { MECXDynamicInputComponent } from './input';\r\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\r\nimport { MECXDynamicRadioComponent } from './radio';\r\nimport { MECXDynamicSelectComponent } from './select';\r\nimport { MECXDynamicSelectSearchComponent } from './select-search';\r\n\r\n@NgModule({\r\n declarations: [\r\n MECXDynamicButtonComponent,\r\n MECXDynamicFileUploadComponent,\r\n MECXDynamicFormComponent,\r\n MECXDynamicFormArrayComponent,\r\n MECXDynamicInputComponent,\r\n MECXDynamicInputPhoneComponent,\r\n MECXDynamicRadioComponent,\r\n MECXDynamicSelectComponent,\r\n MECXDynamicSelectSearchComponent,\r\n MECXDynamicDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeySelectModule,\r\n MonkeyRadioButtonModule,\r\n MonkeyOptionModule,\r\n MonkeyFileUploadModule,\r\n MonkeyButtonModule,\r\n MonkeyInputPhoneModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXDynamicDirective, MECXDynamicFormComponent, MECXDynamicFormArrayComponent],\r\n entryComponents: [MECXDynamicInputComponent]\r\n})\r\nexport class MECXDynamicModule {}\r\n","import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';\r\nimport { PasswordStrength } from './password-strength';\r\n\r\n@Component({\r\n selector: 'mecx-password-strength',\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXPasswordStrengthComponent implements OnChanges {\r\n @Input() passwordToCheck: string | null = null;\r\n\r\n @Output() onHandleSubmitReady = new EventEmitter<any>();\r\n\r\n _validatorsPasswordPass: Array<PasswordStrength> = [];\r\n\r\n _stepPassword = 0;\r\n\r\n private validatorsPassword = new Map();\r\n\r\n constructor(private configService: MonkeyEcxConfigService) {\r\n // not do\r\n }\r\n\r\n private handleColor(score: number) {\r\n let idx = 0;\r\n if (score > 50) idx = 1;\r\n if (score === 100) idx = 2;\r\n this._stepPassword = idx;\r\n }\r\n\r\n private passwordStrengthValidator(pass : string) {\r\n this._validatorsPasswordPass = [];\r\n let score = 0;\r\n\r\n this.validatorsPassword.forEach((key, value) => {\r\n this._validatorsPasswordPass.push({\r\n regex: `${value}`,\r\n validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),\r\n percent: 100 / this.validatorsPassword.size\r\n });\r\n });\r\n\r\n this._validatorsPasswordPass.forEach((check) => {\r\n if (check.validate) {\r\n score += check.percent;\r\n }\r\n });\r\n\r\n return Math.trunc(score);\r\n }\r\n\r\n private onHandleReady() {\r\n const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });\r\n this.onHandleSubmitReady.next(!validate);\r\n }\r\n\r\n private onHandleChages() {\r\n const password = this.passwordToCheck;\r\n this.handleColor(this.passwordStrengthValidator(password as string));\r\n this.onHandleReady();\r\n }\r\n\r\n private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {\r\n const ps = params?.program?.screens?.login?.passwordStrength;\r\n if (ps) {\r\n Object.entries(ps)\r\n .forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n this.validatorsPassword.set(key, value);\r\n }\r\n });\r\n this.onHandleChages();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.configService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.onHandlePasswordStrengthKeys(_);\r\n });\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.onHandleChages();\r\n }\r\n}\r\n","<ng-container *ngIf=\"_validatorsPasswordPass?.length\">\r\n <div id=\"strength\" class=\"d-flex full-width flex-column justify-content-center align-items-center\"\r\n #strength>\r\n <div id=\"strengthBar\" class=\"strength-bar d-flex full-width flex-row\">\r\n <div class=\"d-flex full-width align-items-center\">\r\n <div class=\"bar-label\">\r\n <small>{{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TITLE' | translate }}</small>\r\n </div>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.error]=\"_stepPassword === 0\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\">\r\n </div>\r\n <ng-container *ngIf=\"_stepPassword === 0\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.warning]=\"_stepPassword === 1\"\r\n [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 1\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"d-flex full-width align-items-center flex-column\">\r\n <div class=\"point\" [class.success]=\"_stepPassword === 2\"></div>\r\n <ng-container *ngIf=\"_stepPassword === 2\">\r\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"callbacks mt-2 row\">\r\n <div class=\"col-sm-6 mt-2 d-flex justify-content-start\"\r\n *ngFor=\"let validators of _validatorsPasswordPass\">\r\n <monkey-icon *ngIf=\"validators.validate\" icon=\"check-circle-20\"></monkey-icon>\r\n <monkey-icon *ngIf=\"!validators.validate\" icon=\"error-20\"></monkey-icon>\r\n <span class=\"ml-2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TYPES.' + validators.regex | translate }}\r\n </span>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-template #stepPasswordLabel>\r\n <div class=\"name-point mt-1\" [class.error]=\"_stepPassword === 0\"\r\n [class.warning]=\"_stepPassword === 1\" [class.success]=\"_stepPassword === 2\">\r\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.LABELS.' + _stepPassword | translate }}\r\n </div>\r\n</ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\r\nimport { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';\r\nimport { MECXPasswordStrengthComponent } from './password-strength.component';\r\n\r\n@NgModule({\r\n declarations: [MECXPasswordStrengthComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyEcxPipesModule,\r\n MonkeyEcxDirectivesModule,\r\n MonkeyButtonModule,\r\n MonkeyInputModule,\r\n MonkeyIconModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [MECXPasswordStrengthComponent]\r\n})\r\nexport class MECXPasswordStrengthModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MECXProgressBarService {\r\n private visible: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> {\r\n return this.visible.asObservable();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseComponent } from '../../base/base-component';\r\nimport { MECXProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'mecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MECXProgressBarComponent extends BaseComponent implements OnInit, OnDestroy {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MECXProgressBarService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService\r\n .visibleConfig()\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MECXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MECXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MECXProgressBarComponent]\r\n})\r\nexport class MECXProgressBarModule {}\r\n","/*\r\n * Public API Surface of monkey-front-components\r\n */\r\n\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators_","Validators"],"mappings":"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"}
1
+ {"version":3,"file":"monkey-front-components.mjs","sources":["../../../projects/monkey-front-components/src/lib/components/base/base-component.ts","../../../projects/monkey-front-components/src/lib/components/base/base-validators.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic-array.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/file-upload/file-upload.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/button/button.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/input-phone/input-phone.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/radio/radio.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select/select.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/select-search/select-search.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic-directive.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.ts","../../../projects/monkey-front-components/src/lib/components/dynamic/form/dynamic-form-array.component.html","../../../projects/monkey-front-components/src/lib/components/dynamic/dynamic.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.component.html","../../../projects/monkey-front-components/src/lib/components/shared/password-strength/password-strength.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.component.html","../../../projects/monkey-front-components/src/lib/components/shared/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-components/src/public-api.ts","../../../projects/monkey-front-components/src/monkey-front-components.ts"],"sourcesContent":["/* eslint-disable max-len */\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { OnDestroy, Directive } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport {\r\n MonkeyEcxCommonsService,\r\n MonkeyEcxErrorResponse,\r\n MonkeyEcxPaginationOptions,\r\n MonkeyEcxScrollOptions,\r\n MonkeyEcxSupportOptions,\r\n MonkeyEcxTranslateOptions,\r\n ValidateUtils\r\n} from 'monkey-front-core';\r\n\r\n@Directive({\r\n selector: '[baseComponent]'\r\n})\r\nexport abstract class BaseComponent implements OnDestroy {\r\n __monkeyecxFormErrors: any | any[];\r\n\r\n __unsubscribeAll: Subject<any>;\r\n\r\n __paginationOptions: MonkeyEcxPaginationOptions | null = null;\r\n\r\n __i18n: any;\r\n\r\n __isMobile = this.isMobile();\r\n\r\n __locales = ['pt-BR', 'es-CL'];\r\n\r\n private paginationFunc: any;\r\n\r\n protected constructor() {\r\n this.__unsubscribeAll = new Subject();\r\n }\r\n\r\n private isMobile() {\r\n const isMobileWidth = (window.screen.width <= 640) ||\r\n (window.matchMedia &&\r\n window.matchMedia('only screen and (max-width: 640px)').matches\r\n );\r\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile/i.test(\r\n navigator.userAgent\r\n )) || isMobileWidth;\r\n }\r\n\r\n private handlePagination(create = true) {\r\n const { __paginationOptions } = this;\r\n\r\n if (__paginationOptions) {\r\n const { mainElement, service } = __paginationOptions;\r\n\r\n const element = document.getElementById(mainElement);\r\n\r\n if (element) {\r\n element.scroll = null;\r\n element.onscroll = null;\r\n\r\n if (create) {\r\n element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\r\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\r\n element.addEventListener('scroll', () => {\r\n const { scrollTop, scrollHeight, offsetHeight } = element;\r\n const contentHeight = scrollHeight - offsetHeight;\r\n\r\n if (contentHeight <= scrollTop) {\r\n service.doPagination();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private handleSupport(supportControls: MonkeyEcxSupportOptions) {\r\n const { service, show } = supportControls;\r\n const method = show ? 'show' : 'hide';\r\n service[method.toLowerCase()]();\r\n }\r\n\r\n private handleTranslate(translateOptions: MonkeyEcxTranslateOptions) {\r\n const { service } = translateOptions;\r\n service.__oni18nDataChanged$\r\n .pipe(takeUntil(this.__unsubscribeAll))\r\n .subscribe(() => {\r\n const data = service.__i18n;\r\n if (data) {\r\n this.__i18n = data;\r\n }\r\n });\r\n }\r\n\r\n private handleViewScroll(options: MonkeyEcxScrollOptions) {\r\n const { elementId, service } = options;\r\n\r\n if (elementId === service?.__savedState?.scrollElementId) {\r\n this.goScroll(elementId);\r\n\r\n service.__savedState.scrollElementId = null;\r\n }\r\n }\r\n\r\n private getErrorFirstMessageTranslated(formControl: AbstractControl | null = null) {\r\n if (formControl?.hasError('required')) return 'FIELD-REQUIRED';\r\n if (formControl?.hasError('invalid')) return 'FIELD-INVALID';\r\n if (formControl?.hasError('email')) return 'INVALID-EMAIL';\r\n if (formControl?.hasError('minlength')) return 'MIN-LENGTH';\r\n if (formControl?.hasError('maxlength')) return 'MAX-LENGTH';\r\n if (formControl?.hasError('max')) return 'MAX';\r\n if (formControl?.hasError('min')) return 'MIN';\r\n if (formControl?.hasError('passwordsNotMatching')) return 'MATCH-PASSWORD';\r\n if (formControl?.hasError('invalidDate')) return 'INVALID-DATE';\r\n if (formControl?.hasError('invalidTrue')) return 'INVALID-TRUE';\r\n if (formControl?.hasError('invalidCpfCnpj')) return 'INVALID-DOCUMENT';\r\n if (formControl?.hasError('invalidZipCode')) return 'INVALID-ZIPCODE';\r\n if (formControl?.hasError('invalidCombo')) return 'INVALID-COMBO';\r\n if (formControl?.hasError('invalidUrl')) return 'INVALID-URL';\r\n if (formControl?.hasError('invalidUnlockRegister')) { return 'INVALID-UNLOCK-REGISTER'; }\r\n if (formControl?.hasError('dateStartMustBeLessThanAnd')) {\r\n return 'DATE-START-MUST-BE-LESS-THAN-AND';\r\n }\r\n if (formControl?.hasError('dateEndMustBeGreaterThanStart')) {\r\n return 'DATE-END-MUST-BE-GREATER-THAN-SART';\r\n }\r\n if (formControl?.hasError('phone')) return 'INVALID-PHONE';\r\n\r\n return 'FIELD-INVALID';\r\n }\r\n\r\n private getErrorLastMessageNotTranslated(formControl: AbstractControl | null = null) {\r\n if (formControl?.hasError('minlength')) {\r\n return `${formControl?.getError('minlength').requiredLength} caracteres.`;\r\n }\r\n if (formControl?.hasError('maxlength')) {\r\n return `${formControl?.getError('maxlength').requiredLength} caracteres.`;\r\n }\r\n if (formControl?.hasError('max')) { return `${formControl?.getError('max').max}`; }\r\n if (formControl?.hasError('min')) { return `${formControl?.getError('min').min}`; }\r\n\r\n return '';\r\n }\r\n\r\n public validateFormWithTranslate(f: FormGroup, index?: number): boolean {\r\n const formErrors: any = f.value;\r\n\r\n if (f.status === 'VALID') return true;\r\n\r\n if (!formErrors) return true;\r\n Object.entries(formErrors).forEach(([key, value]) => {\r\n const control = f.get(key);\r\n formErrors[key] = '';\r\n if (control && !control.valid) {\r\n const msg = {\r\n first: `ERRORS.${this.getErrorFirstMessageTranslated(f.get(key))}`,\r\n last: this.getErrorLastMessageNotTranslated(f.get(key))\r\n };\r\n formErrors[key] = msg;\r\n }\r\n });\r\n\r\n if (MonkeyUtils.persistNullEmptyUndefined(index)) { this.__monkeyecxFormErrors[index || 0] = formErrors; } else {\r\n this.__monkeyecxFormErrors = formErrors;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public copyToClipboard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n public validateForm(f: FormGroup, index?: number, alias?: string): boolean {\r\n const formErrors: any = f.value;\r\n if (f.status === 'VALID') return true;\r\n\r\n if (!formErrors) return true;\r\n Object.entries(formErrors).forEach(([key, value]) => {\r\n const control = f.get(key);\r\n formErrors[key] = '';\r\n if (control && !control.valid) {\r\n const msg = {\r\n firstMessage: `ERRORS.${this.getErrorFirstMessageTranslated(\r\n f.get(key)\r\n )}`,\r\n lastMessage: this.getErrorLastMessageNotTranslated(f.get(key))\r\n };\r\n formErrors[key] = msg;\r\n }\r\n });\r\n\r\n if (MonkeyUtils.persistNullEmptyUndefined(index)) {\r\n this.__monkeyecxFormErrors[index || 0] = formErrors;\r\n } else {\r\n let obj: any;\r\n\r\n if (alias) {\r\n obj = {\r\n [alias]: {\r\n ...formErrors\r\n }\r\n };\r\n } else {\r\n obj = formErrors;\r\n }\r\n\r\n this.__monkeyecxFormErrors = {\r\n ...this.__monkeyecxFormErrors,\r\n ...obj\r\n };\r\n }\r\n f.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n public clearAllServiceData(clearData: boolean) {\r\n const context = this;\r\n Object.values(context).forEach((ctx: any) => {\r\n if (ctx instanceof MonkeyEcxCommonsService) {\r\n ctx.clear(clearData);\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit(args: {\r\n paginationOptions?: MonkeyEcxPaginationOptions;\r\n supportControls?: MonkeyEcxSupportOptions;\r\n scrollOptions?: MonkeyEcxScrollOptions;\r\n translateOptions?: MonkeyEcxTranslateOptions;\r\n }) {\r\n if (args?.paginationOptions) {\r\n this.__paginationOptions = args?.paginationOptions;\r\n this.handlePagination();\r\n }\r\n if (args?.supportControls) {\r\n this.handleSupport(args?.supportControls);\r\n }\r\n if (args?.translateOptions) {\r\n this.handleTranslate(args?.translateOptions);\r\n }\r\n if (args?.scrollOptions) {\r\n this.handleViewScroll(args.scrollOptions);\r\n }\r\n }\r\n\r\n public ngOnDestroy(clearData: boolean = true) {\r\n this.__unsubscribeAll.next();\r\n this.__unsubscribeAll.complete();\r\n this.clearAllServiceData(clearData);\r\n this.handlePagination(false);\r\n }\r\n\r\n public handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup) {\r\n this.__monkeyecxFormErrors = null;\r\n if (error.type === 'Parameter_Error') {\r\n Object.entries(f.value).forEach(([key, value]) => {\r\n error.notifications.forEach((_: any) => {\r\n const field = _.split(':')[0];\r\n const description = _.split(':')[1];\r\n if (field === key) {\r\n const msg = {\r\n firstMessage: '',\r\n lastMessage: description\r\n };\r\n this.__monkeyecxFormErrors = {\r\n ...this.__monkeyecxFormErrors,\r\n [key]: msg\r\n };\r\n f.controls[key].setErrors({\r\n incorrect: true\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n f.markAllAsTouched();\r\n }\r\n\r\n public goBack() {\r\n window.history.back();\r\n }\r\n\r\n public goScroll(id: string) {\r\n const element = document.getElementById(id);\r\n if (element) element.scrollIntoView();\r\n }\r\n\r\n public getEmbeddedData(data: any, field: string): any[] | any {\r\n const { _embedded } = data;\r\n return _embedded ? _embedded[field] : null;\r\n }\r\n\r\n public openWindow(url: string) {\r\n window.open(`${url}`, '_blank');\r\n }\r\n\r\n public fillI18n(data: any) {\r\n this.__i18n = data;\r\n }\r\n\r\n public getCountryPrefix(country: string) {\r\n return {\r\n br: 55,\r\n cl: 56\r\n }[country];\r\n }\r\n\r\n public getCountryCurrencyChartFormat(country: string) {\r\n return {\r\n br: 'R$ #,###,##0.00',\r\n cl: 'CLP #,###,##0'\r\n }[country];\r\n }\r\n\r\n public getCountryValidators(country: string) {\r\n return {\r\n br: {\r\n governmentId: ValidateUtils.DocumentValidator\r\n },\r\n cl: {\r\n governmentId: ValidateUtils.DocumentRutValidator\r\n }\r\n }[country];\r\n }\r\n}\r\n","import { Validators as Validators_ } from '@angular/forms';\nimport { Validators } from 'monkey-front-core';\n\nexport const validators: any = {\n required: Validators_.required,\n email: Validators.email,\n governmentId: Validators.documentBR,\n governmentIdRut: Validators.documentCL,\n documentBR: Validators.documentBR,\n documentCL: Validators.documentCL,\n date: Validators.date,\n zipCode: Validators.zipCode,\n minLength: (param: number) => {\n return Validators_.minLength(param);\n },\n maxLength: (param: number) => {\n return Validators_.maxLength(param);\n }\n};\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\nimport { BaseComponent } from './base-component';\nimport { validators } from './base-validators';\n\n@Directive({\n selector: '[baseDynamic]'\n})\nexport abstract class BaseDynamic extends BaseComponent implements OnInit, OnChanges {\n @Input() onHandleSubmit = new EventEmitter<any>();\n\n @Input() onHandleUpdateForm = new EventEmitter<any>();\n\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() self: any;\n\n @Input() fields: MECXFieldConfig[] = [];\n\n @Input() data: any;\n\n @Input() disabled: boolean = false;\n\n _form: FormGroup | null = null;\n\n constructor(private fb: FormBuilder) {\n super();\n }\n\n private createControl() {\n const { fields } = this;\n if (!fields) return null;\n // eslint-disable-next-line object-curly-newline\n const group = this.fb.group({});\n fields.forEach((field: MECXFieldConfig) => {\n const { fieldType, validations, name, disabled } = field;\n let { value } = field;\n if (fieldType === 'button') return;\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\n value = '';\n }\n const control = this.fb.control(value, this.bindValidations(validations || []));\n if (disabled || this.disabled) control.disable();\n group.addControl(name as string, control);\n });\n return group;\n }\n\n private bindValidations(validations: MECXFieldConfigValidator[]) {\n if (validations.length > 0) {\n const validList: any[] = [];\n validations.forEach((valid: MECXFieldConfigValidator) => {\n const validated = valid.param\n ? validators[valid.name](valid.param)\n : validators[valid.name];\n validList.push(validated);\n });\n return Validators.compose(validList);\n }\n return null;\n }\n\n public fillValues() {\n const { data } = this;\n if (!data || !this._form) return;\n Object.entries(data).forEach(([key, value]) => {\n if (MonkeyUtils.persistNullEmptyUndefined(value) && this._form?.controls[key]) {\n this._form?.controls[key]?.setValue(value);\n }\n });\n }\n\n ngOnInit() {\n this._form = this.createControl();\n this.fillValues();\n\n this.onHandleUpdateForm.subscribe(() => {\n this.fillValues();\n });\n }\n\n ngOnChanges() {\n if (!this._form) {\n this._form = this.createControl();\n }\n this.fillValues();\n }\n}\n","import { Directive, EventEmitter, Input, OnInit, OnChanges, Output } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MECXFieldConfig, MECXFieldConfigValidator } from '../../interfaces';\nimport { BaseComponent } from './base-component';\nimport { validators } from './base-validators';\n\n@Directive({\n selector: '[baseDynamicArray]'\n})\nexport abstract class BaseDynamicArray extends BaseComponent implements OnInit, OnChanges {\n @Input() onHandleSubmit = new EventEmitter<any>();\n\n @Input() onHandleUpdateForm = new EventEmitter<any>();\n\n @Output() onHandleSubmitFormReady: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() self: any;\n\n @Input() fields: MECXFieldConfig[] = [];\n\n @Input() data: any;\n\n @Input() qtd: number = 1;\n\n @Input() disabled: boolean = false;\n\n _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n _plusValidations: any[] = [];\n\n private changesUnsubscribe = new Subject();\n\n constructor(private fb: FormBuilder) {\n super();\n }\n\n private handleInternalPlusValidation(\n mainField: any,\n data: any\n ) {\n const { operator, field, value } = mainField;\n const validators: any = {\n e: (val1: any, val2: string) => { return val1 === val2; },\n lt: (val1: any, val2: string) => { return val1 < val2; },\n gt: (val1: any, val2: string) => { return val1 > val2; }\n };\n\n return validators[operator](data?.[field] || data, value);\n }\n\n private makeInternalPlusValidation(\n data: any,\n sourceField: string,\n settings: any,\n rowIndex: number\n ) {\n const changeFields = (show: boolean) => {\n const saved = [...this.fields];\n\n saved.map((val) => {\n const valSaved = {\n ...val\n };\n if (val.name === sourceField) {\n this._plusValidations[rowIndex] = {\n [sourceField]: {\n ...valSaved,\n alwaysShow: show\n }\n };\n this.createOneControl(val.name, this.formValues?.controls[rowIndex], show);\n } else {\n this._plusValidations[rowIndex] = {\n ...valSaved\n };\n }\n return null;\n });\n };\n\n const validated = this.handleInternalPlusValidation(settings, data);\n changeFields(validated);\n }\n\n private createOneControl(fieldName: string, ctrl: any, create = true) {\n const { fields } = this;\n if (!fields) return;\n\n fields.forEach((field: MECXFieldConfig) => {\n const { fieldType, validations, name, disabled } = field;\n if (name !== fieldName) return;\n let { value } = field;\n if (fieldType === 'button') return;\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\n value = '';\n }\n if (create) {\n const control = this.fb.control(value, this.bindValidations(validations || []));\n if (disabled || this.disabled) control.disable();\n ctrl.addControl(name, control);\n } else {\n ctrl.removeControl(name);\n }\n });\n }\n\n private createControl(data?: any) {\n const { fields } = this;\n if (!fields) return null;\n // eslint-disable-next-line object-curly-newline\n const group = this.fb.group({});\n fields.forEach((field: MECXFieldConfig) => {\n const { fieldType, validations, name, disabled, alwaysShow } = field;\n let { value } = field;\n if (field.alwaysShowPlusValidation) {\n if (!this.handleInternalPlusValidation(field.alwaysShowPlusValidation, data)) return;\n } else if (!alwaysShow) return;\n if (fieldType === 'button') return;\n if (fieldType === 'radiobutton' || fieldType === 'checkbox' || fieldType === 'select') {\n value = '';\n }\n const control = this.fb.control(value, this.bindValidations(validations || []));\n if (disabled || this.disabled) control.disable();\n group.addControl(name as string, control);\n });\n\n return group;\n }\n\n private bindValidations(validations: MECXFieldConfigValidator[]) {\n if (validations.length > 0) {\n const validList: any[] = [];\n validations.forEach((valid: MECXFieldConfigValidator) => {\n const validated = valid.param\n ? validators[valid.name](valid.param)\n : validators[valid.name];\n validList.push(validated);\n });\n return Validators.compose(validList);\n }\n return null;\n }\n\n private buildForm(): FormGroup {\n const form = this.fb.group({\n fields: this.fb.array([])\n });\n\n form?.controls.fields?.valueChanges.subscribe((_) => {\n this.watchForChanges();\n });\n\n return form;\n }\n\n private watchForChanges() {\n const { fields, changesUnsubscribe } = this;\n changesUnsubscribe.next();\n\n this.formValues?.controls?.map((control: any, index: number) => {\n fields.forEach((fieldConfig: MECXFieldConfig) => {\n const { name, alwaysShowPlusValidation } = fieldConfig;\n if (!alwaysShowPlusValidation) return;\n const { field } = alwaysShowPlusValidation;\n if (field) {\n control.controls[field]?.valueChanges.pipe(\n takeUntil(changesUnsubscribe)).subscribe((_: any) => {\n this.makeInternalPlusValidation(\n _,\n name as string,\n alwaysShowPlusValidation,\n index\n );\n });\n }\n });\n return null;\n });\n }\n\n public formBase = () => {\n // return this.fb.group(this.createControl());\n return this.createControl();\n };\n\n public get formValues() {\n return this._form ? (this._form.get('fields') as FormArray) : null;\n }\n\n public fillValues() {\n const { data, qtd } = this;\n if ((!this._form) && qtd) return;\n if (qtd > 0) {\n Array<any>(qtd)\n .fill(null)\n .map((_, index) => {\n let form = this.createControl();\n if (data && data[index]) {\n form = this.createControl(data[index]);\n const handledData = data[index];\n Object.entries(handledData).forEach(([key, value]) => {\n if (MonkeyUtils.persistNullEmptyUndefined(value) && form?.controls[key]) {\n form?.controls[key].setValue(value);\n }\n });\n }\n this.formValues?.push(form as any);\n\n return null;\n });\n }\n }\n\n ngOnInit() {\n this._form = this.buildForm();\n this.fillValues();\n\n this.onHandleUpdateForm.subscribe(() => {\n this.fillValues();\n });\n }\n\n ngOnChanges() {\n if (!this._form) {\n this._form = this.buildForm();\n }\n this.fillValues();\n }\n}\n","import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-file-upload',\n templateUrl: './file-upload.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicFileUploadComponent {\n @Input() _field: MECXFieldConfig;\n\n @Input() _form: FormGroup;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @Input() self: any;\n\n _function: Function = (file: any, callback?: Function) => {\n if (this._form?.disabled) return;\n if (!this._field?.functions?.onHandleUpload) {\n console.error('onHandleUpload not declared');\n return;\n }\n const { func, type } = this._field?.functions?.onHandleUpload;\n if (!func || !this.self[func]) {\n console.error('onHandleUpload not declared');\n return;\n }\n this.self[func](file, type, callback);\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n // not to do\n }\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n ngOnChanges() {\n this.cdr.detectChanges();\n }\n}\n","<monkey-file-upload\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [icon]=\"_field?.icon\" [formControl]=\"_form.controls[_field?.name]\"\n [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [maxSize]=\"_field?.maxSize || 5242880\" [fileUpload]=\"_function\"\n [maxSizeErrorMessage]=\"'FIELD.FILE.MAX-FILE' | translate\"\n [allowedExtensionErrorMessage]=\"'FIELD.FILE.ALLOWED-EXTENSION' | translate\"\n [allowedExtensions]=\"_field?.allowedExtensions || []\" *ngIf=\"_field\">\n</monkey-file-upload>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicButtonComponent implements OnChanges {\n @Input() _field: MECXFieldConfig | null = null;\n\n @Input() _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @Input() self: any;\n\n constructor(private cdr: ChangeDetectorRef) {\n // not to do\n }\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n ngOnChanges() {\n this.cdr.detectChanges();\n }\n\n onClick() {\n const { _form, _field, self } = this;\n if (_form?.disabled || !_field) return;\n const { name, value } = _field;\n const func = _field?.functions?.onClick;\n if (func) {\n self[func]({\n name,\n value,\n form: _form\n });\n }\n }\n}\n","<monkey-button [icon]=\"_field?.icon\" [type]=\"_field?.type\" [color]=\"_field?.color\"\n (click)=\"onClick()\">\n {{ _field?.label | translate }}\n</monkey-button>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MonkeyInputComponent } from 'monkey-style-guide';\nimport { MECXFieldConfig } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-input',\n templateUrl: './input.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicInputComponent implements OnInit, OnChanges {\n @Input() _field: MECXFieldConfig | null = null;\n\n @Input() _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @Input() self: any;\n\n @ViewChild('inputElement', {\n static: true\n }) inputElement: MonkeyInputComponent | null = null;\n\n constructor(private cdr: ChangeDetectorRef) {\n // not to do\n }\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n ngOnInit() {\n this.cdr.detectChanges();\n }\n\n ngOnChanges() {\n this.cdr.detectChanges();\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n if (!_field || !_form) return;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form?.get(_field?.name as string)?.valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field?.name as string),\n form: _form\n });\n }\n }\n}\n","<monkey-input\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\r\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\r\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\r\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\r\n [maxDateToday]=\"_field?.maxDateToday\">\r\n</monkey-input>","import { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MonkeyInputComponent } from 'monkey-style-guide';\nimport { MECXFieldConfig } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-input-phone',\n templateUrl: './input-phone.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicInputPhoneComponent implements OnInit, OnChanges {\n @Input() _field: MECXFieldConfig | null = null;\n\n @Input() _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @Input() self: any;\n\n @ViewChild('inputElement', {\n static: true\n }) inputElement: MonkeyInputComponent | null = null;\n\n constructor(private cdr: ChangeDetectorRef) {\n // not to do\n }\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n ngOnInit() {\n this.cdr.detectChanges();\n }\n\n ngOnChanges() {\n this.cdr.detectChanges();\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n if (!_field || !_form) return;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form?.get(_field?.name as string)?.valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field?.name as string),\n form: _form\n });\n }\n }\n}\n","<monkey-input-phone [name]=\"_field?.name\" [label]=\"_field?.label | translate\"\r\n [helperMessage]=\"_field?.helperMessage | translate\"\r\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\r\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\r\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\r\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\r\n</monkey-input-phone>","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-radio',\n templateUrl: './radio.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicRadioComponent {\n @Input() _field: MECXFieldConfig | null = null;\n\n @Input() _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n}\n","<monkey-radiobutton\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\">\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-radiobutton>","import {\n Component,\n HostBinding,\n Input,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-select',\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicSelectComponent {\n @Input() _field: MECXFieldConfig | null = null;\n\n @Input() _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @Input() self: any;\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n _onHandleOptions = new EventEmitter<any>();\n\n onHandleGenericLoad() {\n const { _form, _field, self } = this;\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\n const { name } = _field;\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\n const { func, url } = _field?.functions?.onHandleGenericLoad;\n if (!func || !self[func]) {\n console.error('onHandleGenericLoad not declared');\n return;\n }\n _form?.disable();\n self[func]({\n name,\n url,\n form: _form,\n callback: (data: any[]) => {\n if (this._field) {\n this._field.value = data;\n }\n this._form?.enable();\n this._onHandleOptions.next(null);\n }\n });\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n if (!_field || !_form) return;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form?.get(_field.name as string)?.valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form?.get(this._field?.name as string),\n form: _form,\n value: _field.value\n });\n }\n }\n}\n","<monkey-select\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\n [placeholder]=\"_field?.placeholder | translate\">\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select>","import {\n Component,\n HostBinding,\n Input,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig, MECXFieldConfigValue } from '../../../interfaces';\n\n@Component({\n selector: 'mecx-dynamic-select-search',\n templateUrl: './select-search.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicSelectSearchComponent {\n @Input() _field: MECXFieldConfig | null = null;\n\n @Input() _form: FormGroup | null = null;\n\n // eslint-disable-next-line object-curly-newline\n @Input() _formErrors: any | any[] = {};\n\n @Input() self: any;\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n _onHandleOptions = new EventEmitter<any>();\n\n onHandleGenericLoad() {\n const { _form, _field, self } = this;\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\n const { name } = _field;\n if ((_field?.value as MECXFieldConfigValue[])?.length) return;\n const { func, url } = _field?.functions?.onHandleGenericLoad;\n if (!func || !self[func]) {\n console.error('onHandleGenericLoad not declared');\n return;\n }\n _form?.disable();\n self[func]({\n name,\n url,\n form: _form,\n callback: (data: any[]) => {\n if (this._field) {\n this._field.value = data;\n }\n this._form?.enable();\n this._onHandleOptions.next(null);\n }\n });\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n if (!_field || !_form) return;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form?.get(_field?.name as string)?.valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field?.name as string),\n form: _form,\n value: _field.value\n });\n }\n }\n}\n","<monkey-select-search\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [formControl]=\"_form.controls[_field?.name]\" [helperMessage]=\"_field?.helperMessage | translate\"\n [label]=\"_field?.label | translate\" (click)=\"onHandleGenericLoad()\"\n [onHandleOptions]=\"_onHandleOptions\" (onChange)=\"onChange($event)\"\n [fieldToCompare]=\"_field?.fieldToCompare\"\n [labelSelect]=\"_form.get(_field?.name).value || ('FIELD.SELECT' | translate)\"\n [placeholder]=\"_field?.placeholder | translate\">\n <monkey-option [label]=\"'FIELD.LOADING' | translate\" *ngIf=\"!_field?.value?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of _field?.value\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>","import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n Input,\n OnChanges,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig } from '../../interfaces';\nimport { MECXDynamicButtonComponent } from './button';\nimport { MECXDynamicFileUploadComponent } from './file-upload';\nimport { MECXDynamicInputComponent } from './input';\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\nimport { MECXDynamicRadioComponent } from './radio';\nimport { MECXDynamicSelectComponent } from './select';\nimport { MECXDynamicSelectSearchComponent } from './select-search';\n\nconst componentMapper: any = {\n input: MECXDynamicInputComponent,\n 'input-phone': MECXDynamicInputPhoneComponent,\n radiobutton: MECXDynamicRadioComponent,\n select: MECXDynamicSelectComponent,\n 'select-search': MECXDynamicSelectSearchComponent,\n 'file-upload': MECXDynamicFileUploadComponent,\n button: MECXDynamicButtonComponent\n};\n\n@Directive({\n selector: '[MECXDynamic]'\n})\nexport class MECXDynamicDirective implements OnInit, OnChanges {\n @Input() field: MECXFieldConfig | null = null;\n\n @Input() form: FormGroup | null = null;\n\n @Input() formErrors: any;\n\n @Input() self: any;\n\n @Input() plusValidations: any;\n\n componentRef: any;\n\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef,\n private cdr: ChangeDetectorRef) {\n // not to do\n }\n\n private handleInternalPlusValidation() {\n if (!this.field?.alwaysShowPlusValidation) return false;\n const { operator, value, field } = this.field?.alwaysShowPlusValidation;\n const validators: any = {\n e: (val1: any, val2: string) => { return val1 === val2; },\n lt: (val1: any, val2: string) => { return val1 < val2; },\n gt: (val1: any, val2: string) => { return val1 > val2; }\n };\n const data = this.form?.controls[field as string]?.value;\n\n return validators[operator as string](data, value);\n }\n\n private buildComponent() {\n if (this.componentRef?.instance) return;\n const factory = this.resolver.resolveComponentFactory(\n componentMapper[this.field?.fieldType as string]\n );\n this.componentRef = this.container.createComponent(factory);\n this.componentRef.instance._field = this.field;\n this.componentRef.instance._form = this.form;\n // eslint-disable-next-line object-curly-newline\n this.componentRef.instance._formErrors = this.formErrors || {};\n this.componentRef.instance.self = this.self;\n }\n\n ngOnInit() {\n if (!this.field?.alwaysShow && !this.handleInternalPlusValidation()) return;\n this.buildComponent();\n }\n\n ngOnChanges() {\n if (this.plusValidations && this.plusValidations[this.field?.name as string]) {\n if (!this.field?.alwaysShow && this.plusValidations[this.field?.name as string].alwaysShow) {\n setTimeout(() => {\n this.buildComponent();\n this.cdr.detectChanges();\n }, 1);\n }\n if (this.componentRef?.instance &&\n !this.plusValidations[this.field?.name as string].alwaysShow) {\n this.componentRef.destroy();\n this.componentRef = null;\n this.form?.controls[this.field?.name as string]?.setValue(null);\n this.form?.controls[this.field?.name as string]?.clearValidators();\n }\n }\n if (!this.componentRef?.instance) return;\n this.componentRef.instance._formErrors = this.formErrors || {\n };\n }\n}\n","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseDynamic } from '../../base/base-dynamic';\n\n@Component({\n selector: 'mecx-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styles: [],\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicFormComponent extends BaseDynamic implements OnInit, OnDestroy {\n private unsubscribeAll = new Subject();\n\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\n super(fb);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\n this.onSubmit(func);\n });\n }\n\n ngOnDestroy() {\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n\n onSubmit(callback: Function) {\n const { _form } = this;\n // eslint-disable-next-line object-curly-newline\n this.__monkeyecxFormErrors = {};\n\n const isValid = this.validateForm(_form as any);\n this.cdr.detectChanges();\n\n this.onHandleSubmitFormReady.next({\n validate: {\n isValid\n },\n callback,\n form: _form\n });\n }\n}\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\n <div class=\"row\">\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"_form\" [self]=\"self\"\n [formErrors]=\"__monkeyecxFormErrors\" [style.display]=\"'none'\">\n </div>\n </div>\n</form>","import { Component, OnInit, ViewEncapsulation, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseDynamicArray } from '../../base';\n\n@Component({\n selector: 'mecx-dynamic-form-array',\n templateUrl: './dynamic-form-array.component.html',\n styleUrls: ['./dynamic-form-array.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXDynamicFormArrayComponent extends BaseDynamicArray implements OnInit, OnDestroy {\n private unsubscribeAll = new Subject();\n\n constructor(fb: FormBuilder, private cdr: ChangeDetectorRef) {\n super(fb);\n this.__monkeyecxFormErrors = [];\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.onHandleSubmit.pipe(takeUntil(this.unsubscribeAll)).subscribe((func: Function) => {\n this.onSubmit(func);\n });\n }\n\n ngOnDestroy() {\n this.unsubscribeAll.next();\n this.unsubscribeAll.complete();\n }\n\n onSubmit(callback: Function) {\n const { _form } = this;\n // eslint-disable-next-line object-curly-newline\n this.__monkeyecxFormErrors = [];\n\n let validate = {\n isValid: false\n };\n let hasErrors: boolean = false;\n if (this.formValues) {\n this.__monkeyecxFormErrors = [this.formValues.length];\n this.formValues.controls.forEach((item: any, index: number) => {\n if (item instanceof FormGroup) {\n if (!this.validateForm(item, index)) {\n hasErrors = true;\n }\n }\n });\n }\n validate = {\n isValid: !hasErrors\n };\n\n this.cdr.detectChanges();\n\n this.onHandleSubmitFormReady.next({\n validate,\n callback,\n form: _form\n });\n }\n\n onHandleAdd() {\n this.formValues?.push(this.formBase() as any);\n this.cdr.detectChanges();\n }\n\n onHandleRemove(index: number) {\n this.formValues?.removeAt(index);\n this._plusValidations.splice(index, 1);\n }\n}\n","<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form\">\n <div formArrayName=\"fields\">\n <div *ngFor=\"let item of formValues.controls; let indForm=index\" [formGroupName]=\"indForm\">\n <monkey-button type=\"secondary\" color=\"error\" icon=\"close-20\" iconPosition=\"right\"\n [label]=\"'BUTTONS.REMOVE' | translate\" (click)=\"onHandleRemove(indForm)\"\n *ngIf=\"formValues.controls.length > 1 && !disabled\">\n </monkey-button>\n <div class=\"row mt-3\">\n <div *ngFor=\"let field of fields;\" MECXDynamic [field]=\"field\" [form]=\"item\" [self]=\"self\"\n [formErrors]=\"__monkeyecxFormErrors[indForm]\"\n [plusValidations]=\"_plusValidations[indForm]\" [style.display]=\"'none'\">\n </div>\n </div>\n </div>\n </div>\n</form>\n<monkey-button type=\"secondary\" color=\"theme\" icon=\"more-20\" iconPosition=\"right\"\n [label]=\"'BUTTONS.ADD' | translate\" (click)=\"onHandleAdd()\" *ngIf=\"!disabled\">\n</monkey-button>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyButtonModule,\n MonkeyFileUploadModule,\n MonkeyInputModule,\n MonkeyInputPhoneModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXDynamicButtonComponent } from './button';\nimport { MECXDynamicDirective } from './dynamic-directive';\nimport { MECXDynamicFileUploadComponent } from './file-upload';\nimport { MECXDynamicFormComponent, MECXDynamicFormArrayComponent } from './form';\nimport { MECXDynamicInputComponent } from './input';\nimport { MECXDynamicInputPhoneComponent } from './input-phone';\nimport { MECXDynamicRadioComponent } from './radio';\nimport { MECXDynamicSelectComponent } from './select';\nimport { MECXDynamicSelectSearchComponent } from './select-search';\n\n@NgModule({\n declarations: [\n MECXDynamicButtonComponent,\n MECXDynamicFileUploadComponent,\n MECXDynamicFormComponent,\n MECXDynamicFormArrayComponent,\n MECXDynamicInputComponent,\n MECXDynamicInputPhoneComponent,\n MECXDynamicRadioComponent,\n MECXDynamicSelectComponent,\n MECXDynamicSelectSearchComponent,\n MECXDynamicDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyInputModule,\n MonkeySelectModule,\n MonkeyRadioButtonModule,\n MonkeyOptionModule,\n MonkeyFileUploadModule,\n MonkeyButtonModule,\n MonkeyInputPhoneModule,\n TranslateModule.forChild()\n ],\n exports: [MECXDynamicDirective, MECXDynamicFormComponent, MECXDynamicFormArrayComponent],\n entryComponents: [MECXDynamicInputComponent]\n})\nexport class MECXDynamicModule {}\n","import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';\nimport { PasswordStrength } from './password-strength';\n\n@Component({\n selector: 'mecx-password-strength',\n templateUrl: './password-strength.component.html',\n styleUrls: ['./password-strength.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXPasswordStrengthComponent implements OnChanges {\n @Input() passwordToCheck: string | null = null;\n\n @Output() onHandleSubmitReady = new EventEmitter<any>();\n\n _validatorsPasswordPass: Array<PasswordStrength> = [];\n\n _stepPassword = 0;\n\n private validatorsPassword = new Map();\n\n constructor(private configService: MonkeyEcxConfigService) {\n // not do\n }\n\n private handleColor(score: number) {\n let idx = 0;\n if (score > 50) idx = 1;\n if (score === 100) idx = 2;\n this._stepPassword = idx;\n }\n\n private passwordStrengthValidator(pass : string) {\n this._validatorsPasswordPass = [];\n let score = 0;\n\n this.validatorsPassword.forEach((key, value) => {\n this._validatorsPasswordPass.push({\n regex: `${value}`,\n validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),\n percent: 100 / this.validatorsPassword.size\n });\n });\n\n this._validatorsPasswordPass.forEach((check) => {\n if (check.validate) {\n score += check.percent;\n }\n });\n\n return Math.trunc(score);\n }\n\n private onHandleReady() {\n const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });\n this.onHandleSubmitReady.next(!validate);\n }\n\n private onHandleChages() {\n const password = this.passwordToCheck;\n this.handleColor(this.passwordStrengthValidator(password as string));\n this.onHandleReady();\n }\n\n private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {\n const ps = params?.program?.screens?.login?.passwordStrength;\n if (ps) {\n Object.entries(ps)\n .forEach(([key, value]) => {\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n this.validatorsPassword.set(key, value);\n }\n });\n this.onHandleChages();\n }\n }\n\n ngOnInit() {\n this.configService.config().subscribe((_: MonkeyEcxConfig) => {\n this.onHandlePasswordStrengthKeys(_);\n });\n }\n\n ngOnChanges(): void {\n this.onHandleChages();\n }\n}\n","<ng-container *ngIf=\"_validatorsPasswordPass?.length\">\n <div id=\"strength\" class=\"d-flex full-width flex-column justify-content-center align-items-center\"\n #strength>\n <div id=\"strengthBar\" class=\"strength-bar d-flex full-width flex-row\">\n <div class=\"d-flex full-width align-items-center\">\n <div class=\"bar-label\">\n <small>{{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TITLE' | translate }}</small>\n </div>\n </div>\n <div class=\"d-flex full-width align-items-center flex-column\">\n <div class=\"point\" [class.error]=\"_stepPassword === 0\" [class.warning]=\"_stepPassword === 1\"\n [class.success]=\"_stepPassword === 2\">\n </div>\n <ng-container *ngIf=\"_stepPassword === 0\">\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\n </ng-container>\n </div>\n <div class=\"d-flex full-width align-items-center flex-column\">\n <div class=\"point\" [class.warning]=\"_stepPassword === 1\"\n [class.success]=\"_stepPassword === 2\"></div>\n <ng-container *ngIf=\"_stepPassword === 1\">\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\n </ng-container>\n </div>\n <div class=\"d-flex full-width align-items-center flex-column\">\n <div class=\"point\" [class.success]=\"_stepPassword === 2\"></div>\n <ng-container *ngIf=\"_stepPassword === 2\">\n <ng-container *ngTemplateOutlet=\"stepPasswordLabel\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"callbacks mt-2 row\">\n <div class=\"col-sm-6 mt-2 d-flex justify-content-start\"\n *ngFor=\"let validators of _validatorsPasswordPass\">\n <monkey-icon *ngIf=\"validators.validate\" icon=\"check-circle-20\"></monkey-icon>\n <monkey-icon *ngIf=\"!validators.validate\" icon=\"error-20\"></monkey-icon>\n <span class=\"ml-2\">\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.TYPES.' + validators.regex | translate }}\n </span>\n </div>\n </div>\n</ng-container>\n<ng-template #stepPasswordLabel>\n <div class=\"name-point mt-1\" [class.error]=\"_stepPassword === 0\"\n [class.warning]=\"_stepPassword === 1\" [class.success]=\"_stepPassword === 2\">\n {{ 'SCREENS.LOGIN.REGISTER.PASSWORD-STRENGTH.LABELS.' + _stepPassword | translate }}\n </div>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\nimport { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';\nimport { MECXPasswordStrengthComponent } from './password-strength.component';\n\n@NgModule({\n declarations: [MECXPasswordStrengthComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyEcxPipesModule,\n MonkeyEcxDirectivesModule,\n MonkeyButtonModule,\n MonkeyInputModule,\n MonkeyIconModule,\n TranslateModule.forChild()\n ],\n exports: [MECXPasswordStrengthComponent]\n})\nexport class MECXPasswordStrengthModule {}\n","import { Injectable } from '@angular/core';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router\n} from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MECXProgressBarService {\n private visible: BehaviorSubject<any> = new BehaviorSubject(false);\n\n constructor(private router: Router) {\n this.init();\n }\n\n private init() {\n this.router.events\n .pipe(\n filter((event: any) => {\n return event instanceof NavigationStart;\n })\n )\n .subscribe(() => {\n this.show();\n });\n\n this.router.events\n .pipe(\n filter((event: any) => {\n return (\n event instanceof NavigationEnd ||\n event instanceof NavigationError ||\n event instanceof NavigationCancel\n );\n })\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n show() {\n this.visible.next(true);\n }\n\n hide() {\n this.visible.next(false);\n }\n\n visibleConfig(): Observable<any> {\n return this.visible.asObservable();\n }\n}\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../base/base-component';\nimport { MECXProgressBarService } from './progress-bar.service';\n\n@Component({\n selector: 'mecx-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MECXProgressBarComponent extends BaseComponent implements OnInit, OnDestroy {\n visible: boolean = false;\n\n constructor(private progressBarService: MECXProgressBarService) {\n super();\n }\n\n ngOnInit() {\n this.progressBarService\n .visibleConfig()\n .pipe(takeUntil(this.__unsubscribeAll))\n .subscribe((visible: boolean) => {\n this.visible = visible;\n });\n }\n}\n","<ng-container *ngIf=\"visible\">\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MECXProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [MECXProgressBarComponent],\n imports: [CommonModule],\n exports: [MECXProgressBarComponent]\n})\nexport class MECXProgressBarModule {}\n","/*\n * Public API Surface of monkey-front-components\n */\n\nexport * from './lib/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Validators_","Validators"],"mappings":"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"}