monkey-front-components 0.0.174 → 0.0.178

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.
@@ -1 +1 @@
1
- {"version":3,"file":"monkey-front-components.js","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/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 MonkeyEcxMonkeyIntercomOptions,\n MonkeyEcxPaginationOptions,\n MonkeyEcxTranslateOptions\n} from 'monkey-front-core';\n\n@Directive({\n selector: '[baseComponent]'\n})\nexport abstract class BaseComponent implements OnDestroy {\n __monkeyexcFormErrors: any | any[];\n\n __unsubscribeAll: Subject<any>;\n\n __paginationOptions: MonkeyEcxPaginationOptions;\n\n __i18n: any;\n\n private paginationFunc: any;\n\n protected constructor() {\n this.__unsubscribeAll = new Subject();\n }\n\n private handlePagination(create = true) {\n const { __paginationOptions } = this;\n if (__paginationOptions) {\n const { mainElement, service } = __paginationOptions;\n setTimeout(() => {\n const element = document.getElementById(mainElement);\n if (element) {\n element.scroll = null;\n element.onscroll = null;\n if (create) {\n this.paginationFunc = () => {\n const { scrollTop, scrollHeight, offsetHeight } = element;\n const contentHeight = scrollHeight - offsetHeight;\n if (contentHeight <= scrollTop) {\n service.__onDoPagination$.next(null);\n }\n };\n element.addEventListener('scroll', this.paginationFunc);\n } else {\n element.removeEventListener('scroll', this.paginationFunc);\n }\n }\n }, 200);\n }\n }\n\n private handleIntercom(intercomControls: MonkeyEcxMonkeyIntercomOptions) {\n const { service, show } = intercomControls;\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 getErrorFirstMessageTranslated(formControl: AbstractControl) {\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) {\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.__monkeyexcFormErrors[index] = formErrors; } else {\n this.__monkeyexcFormErrors = 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.__monkeyexcFormErrors[index] = 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.__monkeyexcFormErrors = {\n ...this.__monkeyexcFormErrors,\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 intercomControls?: MonkeyEcxMonkeyIntercomOptions;\n translateOptions?: MonkeyEcxTranslateOptions;\n }) {\n if (args?.paginationOptions) {\n this.__paginationOptions = args?.paginationOptions;\n this.handlePagination();\n }\n if (args?.intercomControls) {\n this.handleIntercom(args?.intercomControls);\n }\n if (args?.translateOptions) {\n this.handleTranslate(args?.translateOptions);\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.__monkeyexcFormErrors = 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.__monkeyexcFormErrors = {\n ...this.__monkeyexcFormErrors,\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","import { Validators as Validators_ } from '@angular/forms';\nimport { Validators } from 'monkey-front-core';\n\nexport const validators = {\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;\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, control);\n });\n return group;\n }\n\n private bindValidations(validations: MECXFieldConfigValidator[]) {\n if (validations.length > 0) {\n const validList = [];\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;\n\n // eslint-disable-next-line object-curly-newline\n _plusValidations = [];\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 = {\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, control);\n });\n\n return group;\n }\n\n private bindValidations(validations: MECXFieldConfigValidator[]) {\n if (validations.length > 0) {\n const validList = [];\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((_) => {\n this.makeInternalPlusValidation(\n _,\n name,\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);\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 || []\">\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;\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 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) 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;\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 @ViewChild('inputElement', {\n static: true\n }) inputElement: MonkeyInputComponent;\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 const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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;\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 @ViewChild('inputElement', {\n static: true\n }) inputElement: MonkeyInputComponent;\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 const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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;\n\n @Input() _form: FormGroup;\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;\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 @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) 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 this._field.value = data;\n this._form.enable();\n this._onHandleOptions.next(null);\n }\n });\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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;\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 @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) 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 this._field.value = data;\n this._form.enable();\n this._onHandleOptions.next(null);\n }\n });\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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 = {\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;\n\n @Input() form: FormGroup;\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 = {\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].value;\n\n return validators[operator](data, value);\n }\n\n private buildComponent() {\n if (this.componentRef?.instance) return;\n const factory = this.resolver.resolveComponentFactory(componentMapper[this.field.fieldType]);\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]) {\n if (!this.field.alwaysShow && this.plusValidations[this.field.name].alwaysShow) {\n setTimeout(() => {\n this.buildComponent();\n this.cdr.detectChanges();\n }, 1);\n }\n if (this.componentRef?.instance && !this.plusValidations[this.field.name].alwaysShow) {\n this.componentRef.destroy();\n this.componentRef = null;\n this.form.controls[this.field.name]?.setValue(null);\n this.form.controls[this.field.name]?.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.__monkeyexcFormErrors = {};\n\n const isValid = this.validateForm(_form);\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]=\"__monkeyexcFormErrors\" [style.display]=\"'none'\">\n </div>\n </div>\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.__monkeyexcFormErrors = [];\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.__monkeyexcFormErrors = [];\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.__monkeyexcFormErrors = [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());\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\">\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]=\"__monkeyexcFormErrors[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","/*\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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"}
1
+ {"version":3,"file":"monkey-front-components.js","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/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 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;\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 if (__paginationOptions) {\n const { mainElement, service } = __paginationOptions;\n setTimeout(() => {\n const element = document.getElementById(mainElement);\n if (element) {\n element.scroll = null;\n element.onscroll = null;\n if (create) {\n this.paginationFunc = () => {\n const { scrollTop, scrollHeight, offsetHeight } = element;\n const contentHeight = scrollHeight - offsetHeight;\n if (contentHeight <= scrollTop) {\n service.__onDoPagination$.next(null);\n }\n };\n element.addEventListener('scroll', this.paginationFunc);\n } else {\n element.removeEventListener('scroll', this.paginationFunc);\n }\n }\n }, 200);\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 getErrorFirstMessageTranslated(formControl: AbstractControl) {\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) {\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] = 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] = 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 console.log('==========');\n console.log(ctx);\n console.log(ctx instanceof MonkeyEcxCommonsService);\n console.log('==========');\n if (ctx instanceof MonkeyEcxCommonsService) {\n ctx.clear(clearData);\n }\n });\n }\n\n public ngOnInit(args: {\n paginationOptions?: MonkeyEcxPaginationOptions;\n supportControls?: MonkeyEcxSupportOptions;\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 }\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';\nimport { Validators } from 'monkey-front-core';\n\nexport const validators = {\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;\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, control);\n });\n return group;\n }\n\n private bindValidations(validations: MECXFieldConfigValidator[]) {\n if (validations.length > 0) {\n const validList = [];\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;\n\n // eslint-disable-next-line object-curly-newline\n _plusValidations = [];\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 = {\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, control);\n });\n\n return group;\n }\n\n private bindValidations(validations: MECXFieldConfigValidator[]) {\n if (validations.length > 0) {\n const validList = [];\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((_) => {\n this.makeInternalPlusValidation(\n _,\n name,\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);\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 || []\">\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;\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 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) 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;\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 @ViewChild('inputElement', {\n static: true\n }) inputElement: MonkeyInputComponent;\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 const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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;\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 @ViewChild('inputElement', {\n static: true\n }) inputElement: MonkeyInputComponent;\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 const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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;\n\n @Input() _form: FormGroup;\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;\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 @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) 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 this._field.value = data;\n this._form.enable();\n this._onHandleOptions.next(null);\n }\n });\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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;\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 @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) 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 this._field.value = data;\n this._form.enable();\n this._onHandleOptions.next(null);\n }\n });\n }\n\n onChange(event: string) {\n const { _form, _field, self } = this;\n const { name } = _field;\n const func = _field?.functions?.onChange;\n const isValid = _form.get(_field.name).valid;\n if (func) {\n self[func]({\n name,\n isValid,\n event,\n ctrl: _form.get(this._field.name),\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 = {\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;\n\n @Input() form: FormGroup;\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 = {\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].value;\n\n return validators[operator](data, value);\n }\n\n private buildComponent() {\n if (this.componentRef?.instance) return;\n const factory = this.resolver.resolveComponentFactory(componentMapper[this.field.fieldType]);\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]) {\n if (!this.field.alwaysShow && this.plusValidations[this.field.name].alwaysShow) {\n setTimeout(() => {\n this.buildComponent();\n this.cdr.detectChanges();\n }, 1);\n }\n if (this.componentRef?.instance && !this.plusValidations[this.field.name].alwaysShow) {\n this.componentRef.destroy();\n this.componentRef = null;\n this.form.controls[this.field.name]?.setValue(null);\n this.form.controls[this.field.name]?.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);\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';\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());\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\">\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","/*\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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"}
@@ -1,17 +1,20 @@
1
1
  import { FormGroup } from '@angular/forms';
2
2
  import { Subject } from 'rxjs';
3
3
  import { OnDestroy } from '@angular/core';
4
- import { MonkeyEcxErrorResponse, MonkeyEcxMonkeyIntercomOptions, MonkeyEcxPaginationOptions, MonkeyEcxTranslateOptions } from 'monkey-front-core';
4
+ import { MonkeyEcxErrorResponse, MonkeyEcxPaginationOptions, MonkeyEcxSupportOptions, MonkeyEcxTranslateOptions, ValidateUtils } from 'monkey-front-core';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare abstract class BaseComponent implements OnDestroy {
7
- __monkeyexcFormErrors: any | any[];
7
+ __monkeyecxFormErrors: any | any[];
8
8
  __unsubscribeAll: Subject<any>;
9
9
  __paginationOptions: MonkeyEcxPaginationOptions;
10
10
  __i18n: any;
11
+ __isMobile: boolean;
12
+ __locales: string[];
11
13
  private paginationFunc;
12
14
  protected constructor();
15
+ private isMobile;
13
16
  private handlePagination;
14
- private handleIntercom;
17
+ private handleSupport;
15
18
  private handleTranslate;
16
19
  private getErrorFirstMessageTranslated;
17
20
  private getErrorLastMessageNotTranslated;
@@ -21,13 +24,23 @@ export declare abstract class BaseComponent implements OnDestroy {
21
24
  clearAllServiceData(clearData: boolean): void;
22
25
  ngOnInit(args: {
23
26
  paginationOptions?: MonkeyEcxPaginationOptions;
24
- intercomControls?: MonkeyEcxMonkeyIntercomOptions;
27
+ supportControls?: MonkeyEcxSupportOptions;
25
28
  translateOptions?: MonkeyEcxTranslateOptions;
26
29
  }): void;
27
30
  ngOnDestroy(clearData?: boolean): void;
28
31
  handleErrorFromServices(error: MonkeyEcxErrorResponse, f: FormGroup): void;
29
32
  goBack(): void;
30
33
  goScroll(id: string): void;
34
+ getEmbeddedData(data: any, field: string): any[] | any;
35
+ openWindow(url: string): void;
36
+ fillI18n(data: any): void;
37
+ getCountryPrefix(country: string): number;
38
+ getCountryCurrencyChartFormat(country: string): string;
39
+ getCountryValidators(country: string): {
40
+ governmentId: typeof ValidateUtils.DocumentValidator;
41
+ } | {
42
+ governmentId: typeof ValidateUtils.DocumentRutValidator;
43
+ };
31
44
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
32
45
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseComponent, "[baseComponent]", never, {}, {}, never>;
33
46
  }
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "monkey-front-components",
3
- "version": "0.0.174",
3
+ "version": "0.0.178",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "~12.2.0",
6
6
  "@angular/core": "~12.2.0",
7
7
  "@angular/forms": "~12.2.0",
8
8
  "rxjs": "^6.6.3",
9
9
  "@ngx-translate/core": "^13.0.0",
10
- "monkey-style-guide": "^2.0.105",
10
+ "monkey-style-guide": "^2.0.107",
11
11
  "monkey-front-core": "0.0.33",
12
12
  "ngx-mask": "^12.0.0"
13
13
  },
14
14
  "dependencies": {
15
- "monkey-style-guide": "^2.0.105",
15
+ "monkey-style-guide": "^2.0.107",
16
16
  "tslib": "^2.2.0"
17
17
  },
18
18
  "main": "bundles/monkey-front-components.umd.js",
Binary file