monkey-front-components 0.0.784 → 0.0.786

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 (24) hide show
  1. package/esm2020/lib/components/base/base-validators.mjs +8 -2
  2. package/esm2020/lib/components/shared/filter/options/options.component.mjs +7 -6
  3. package/esm2020/lib/components/shared/filter/options/options.module.mjs +13 -8
  4. package/esm2020/lib/components/shared/filter/options/value-range/index.mjs +2 -0
  5. package/esm2020/lib/components/shared/filter/options/value-range/value-range.component.mjs +119 -0
  6. package/esm2020/lib/components/shared/filter/selected/item/index.mjs +2 -1
  7. package/esm2020/lib/components/shared/filter/selected/item/item.component.mjs +12 -11
  8. package/esm2020/lib/components/shared/filter/selected/item/value-range/index.mjs +2 -0
  9. package/esm2020/lib/components/shared/filter/selected/item/value-range/value-range.component.mjs +48 -0
  10. package/esm2020/lib/components/shared/filter/selected/selected.module.mjs +12 -9
  11. package/fesm2015/monkey-front-components.mjs +200 -32
  12. package/fesm2015/monkey-front-components.mjs.map +1 -1
  13. package/fesm2020/monkey-front-components.mjs +198 -32
  14. package/fesm2020/monkey-front-components.mjs.map +1 -1
  15. package/lib/components/shared/filter/options/options.module.d.ts +8 -7
  16. package/lib/components/shared/filter/options/value-range/index.d.ts +1 -0
  17. package/lib/components/shared/filter/options/value-range/value-range.component.d.ts +24 -0
  18. package/lib/components/shared/filter/selected/item/index.d.ts +1 -0
  19. package/lib/components/shared/filter/selected/item/value-range/index.d.ts +1 -0
  20. package/lib/components/shared/filter/selected/item/value-range/value-range.component.d.ts +13 -0
  21. package/lib/components/shared/filter/selected/selected.module.d.ts +13 -12
  22. package/monkey-front-components-0.0.786.tgz +0 -0
  23. package/package.json +2 -2
  24. package/monkey-front-components-0.0.784.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-array.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-scroll-component.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/filter/selected/item/date-with-action/date-with-action.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/date-range/date-range.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/date-range/date-range.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/children/children.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/children/children.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/currency/currency.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/currency/currency.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status/status.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status/status.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status-radio/status-radio.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status-radio/status-radio.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/children/children.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/children/children.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/currency/currency.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/currency/currency.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/date-range/date-range.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/date-range/date-range.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status/status.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status/status.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status-radio/status-radio.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status-radio/status-radio.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/options.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/options.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/item.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/item.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/selected.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/selected.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/menu/menu.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/menu/menu.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/filter.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/filter.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/options.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/menu/menu.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/selected.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/filter.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/lib/components/shared/products/providers/products.model.ts","../../../projects/monkey-front-components/src/lib/components/shared/products/filter/filter.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/products/filter/filter.component.html","../../../projects/monkey-front-components/src/lib/components/shared/products/products.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/products/products.component.html","../../../projects/monkey-front-components/src/lib/components/shared/products/products.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 { Directive, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport {\n MonkeyEcxCommonsService,\n MonkeyEcxErrorResponse,\n MonkeyEcxPaginationOptions,\n MonkeyEcxScrollOptions,\n MonkeyEcxSupportOptions,\n MonkeyEcxTranslateOptions,\n MonkeyEcxUtils,\n ValidateUtils,\n Validators\n} from 'monkey-front-core';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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', 'es-MX', 'en-US'];\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 element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\n if (create) {\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 if (formControl?.hasError('invalidValueGreaterThanZero')) return 'INVALID-GREATER-THAN-ZERO';\n if (formControl?.hasError('dateRange')) return 'INVALID-DATE-RANGE';\n if (formControl?.hasError('differentFromZero')) return 'DIFFERENT-FROMT-ZERO';\n if (formControl?.hasError('invalidMinYears')) {\n return `INVALID-MIN-YEARS-${formControl?.getError('invalidMinYears').year}`;\n }\n if (formControl?.hasError('fullName')) return 'FULL-NAME-REQUIRED';\n if (formControl?.hasError('containsNumber')) return 'CONTAINS-NUMBER';\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 scrollToError() {\n setTimeout(() => {\n const error: HTMLCollectionOf<Element> = document.getElementsByTagName('error');\n\n let letHEele: Element = null;\n for (let i = 0; i <= error.length; i += 1) {\n if (`${error[i]?.textContent}`.trim()) {\n letHEele = error[i];\n break;\n }\n }\n letHEele?.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }, 0);\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\n try {\n this.scrollToError();\n } catch (e) {\n // ignore\n }\n\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 mx: 52,\n us: 1\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 getCountryDocumentMask(type: 'CPF' | 'CPNJ' | '', country: string) {\n return MonkeyEcxUtils.getDocumentMask(type, country);\n }\n\n public getCountryDocumentPlaceholder(type: 'CPF' | 'CPNJ' | '', country: string) {\n return MonkeyEcxUtils.getDocumentPlaceholder(type, country);\n }\n\n public getCountryValidators(country: string) {\n return {\n br: {\n governmentId: ValidateUtils.DocumentValidator,\n zipCode: Validators.zipCodeByCountry(country)\n },\n cl: {\n governmentId: ValidateUtils.DocumentRutValidator,\n zipCode: Validators.zipCodeByCountry(country)\n },\n mx: {\n governmentId: ValidateUtils.DocumentRFCValidator,\n zipCode: Validators.zipCodeByCountry(country)\n },\n }[country] || {\n governmentId: ValidateUtils.DocumentValidator,\n zipCode: Validators.zipCodeByCountry('br')\n };\n }\n\n public isAbleToHandlePagination() {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { service } = __paginationOptions;\n\n const links = service.__links;\n if (links && links?.next) return true;\n }\n return false;\n }\n\n public onHandlePagination() {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { service } = __paginationOptions;\n service.doPagination();\n }\n }\n}\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 governmentIdRfc: Validators.documentMX,\n documentBR: Validators.documentBR,\n documentCL: Validators.documentCL,\n documentMX: Validators.documentMX,\n date: Validators.date,\n minYears: (param: number) => {\n return Validators.minYears(param);\n },\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 differentFromZero: Validators.differentFromZero,\n fullName: Validators.validateFullName,\n containsNumber: Validators.containsNumber\n};\n","import { Directive, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { Subject } from 'rxjs';\nimport { debounceTime, 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 @Input() enableListenerFormChange = false;\n\n @Output() onFormChange = new EventEmitter<any>();\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 if (this.enableListenerFormChange) {\n this._form.markAsUntouched();\n this._form.valueChanges\n .pipe(\n debounceTime(400),\n takeUntil(this.__unsubscribeAll)\n )\n .subscribe(() => {\n this.onFormChange.next(this._form)\n });\n }\n }\n\n ngOnChanges() {\n if (!this._form) {\n this._form = this.buildForm();\n }\n this.fillValues();\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\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 @Input() isLoading: boolean = false;\n\n @Input() enableListenerFormChange = false;\n\n @Output() onFormChange = new EventEmitter<any>();\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 if (this.enableListenerFormChange) {\n this._form.markAsUntouched();\n this._form.valueChanges\n .pipe(\n debounceTime(400),\n takeUntil(this.__unsubscribeAll)\n )\n .subscribe(() => {\n this.onFormChange.next(this._form)\n });\n }\n }\n\n ngOnChanges() {\n if (!this._form) {\n this._form = this.createControl();\n }\n this.fillValues();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, OnInit } from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { BaseComponent } from './base-component';\n\n@Directive({\n selector: '[baseScrollComponent]'\n})\nexport abstract class BaseScrollComponent extends BaseComponent implements OnInit {\n private routeScrollPositions: { [url: string]: number } = {};\n\n constructor(private _pId: Object, private _rt: Router) {\n super();\n }\n\n private saveScroll(url: string) {\n const element: any = document.getElementById('container-3');\n this.routeScrollPositions[url] = element.scrollTop;\n }\n\n private restoreScroll(url: string) {\n const savedScroll = this.routeScrollPositions[url];\n const element: any = document.getElementById('container-3');\n if (!savedScroll) {\n return;\n }\n\n element.scrollTop = savedScroll;\n }\n\n private addScrollTopListeners() {\n if ('scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n\n this._rt.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.saveScroll(this._rt.url);\n } else if (event instanceof NavigationEnd) {\n setTimeout(() => {\n this.restoreScroll(event.url);\n });\n }\n });\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this._pId)) {\n this.addScrollTopListeners();\n }\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 const { _form } = this;\n if (_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, _form);\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\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\n [maxDateToday]=\"_field?.maxDateToday\"\n [minYears]=\"_field?.minYears\">\n</monkey-input>\n","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\"\n [helperMessage]=\"_field?.helperMessage | translate\"\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\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\n *ngFor=\"let value of _field?.value\"\n [label]=\"value.description | translate\"\n [attr.data-testid]=\"'option-' + value.value.toString().toLowerCase()\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-radiobutton>\n","import {\n Component,\n HostBinding,\n Input,\n OnInit,\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 implements OnInit {\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 ngOnInit(): void {\n if (this._field && this._field?.startValues) {\n this.onHandleGenericLoad();\n }\n }\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 OnInit,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig } 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 implements OnInit {\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 @Input() set options(value: any[]) {\n this._options = value;\n }\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n _onHandleOptions = new EventEmitter<any>();\n\n _options: any[] = [];\n\n ngOnInit(): void {\n if (this._field && this._field?.startValues) {\n this.onHandleGenericLoad();\n }\n }\n\n onHandleGenericLoad() {\n const { _form, _field, self } = this;\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\n const { name } = _field;\n const { func, url } = _field?.functions?.onHandleGenericLoad || {\n func: null,\n url: ''\n };\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._options = 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 && !_options?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of (_field?.value || _options)\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>","import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\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: 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 this.componentRef.location.nativeElement.dataset.testid = `mecx-dynamic-${this.field?.fieldType}-${this.field?.name}`;\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","<ng-container *ngIf=\"isLoading\">\n <div class=\"input-loading\" *ngFor=\"let item of [1,2,3,4,5,6,7]\"></div>\n</ng-container>\n\n<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form && !isLoading\">\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, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenuChildren, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-date-with-action',\n templateUrl: './date-with-action.component.html',\n styleUrls: ['./date-with-action.component.scss']\n})\nexport class MECXFilterSelectedItemDateWithActionComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenuChildren = null;\n\n _date = '';\n\n private onHandleSelectedValue({ field, getValue }: any) {\n const value = getValue()?.[field];\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n this._date = value;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _date | monkeyecxFormatDateTimelapse: false }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-date-range',\n templateUrl: './date-range.component.html',\n styleUrls: ['./date-range.component.scss']\n})\nexport class MECXFilterSelectedItemDateRangeComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n _startDate = '';\n\n _endDate = '';\n\n private onHandleSelectedValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (value && JSON.stringify(value) !== '{}') {\n const objDates = JSON.parse(value);\n this._startDate = objDates?.startDate;\n this._endDate = objDates?.endDate;\n }\n } catch (e) {\n const objDates = JSON.parse(value?.dates);\n this._startDate = objDates?.startDate;\n this._endDate = objDates?.endDate;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _startDate | monkeyecxFormatDateTimelapse: false }} -\n{{ _endDate | monkeyecxFormatDateTimelapse: false }}","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-children',\n templateUrl: './children.component.html',\n styleUrls: ['./children.component.scss']\n})\nexport class MECXFilterSelectedItemChildrenComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onShow = new EventEmitter<any>();\n\n @Output() onRemove = new EventEmitter<any>();\n\n _child: any = null;\n\n constructor(private elRef: ElementRef) {\n // not to do\n }\n\n private validateValue(value: any) {\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n }\n\n private onHandleSelectedValue({ children }: any) {\n const found = children.find(({ field, getValue }: any) => {\n return this.validateValue(getValue()?.[field]);\n });\n if (!found) {\n this.elRef.nativeElement.remove();\n return;\n }\n this._child = found;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","<div class=\"box\">\n <div class=\"data\">\n {{ option.label | translate }}\n </div>\n <div class=\"value\" [id]=\"'mecx-filter-selected-item-'+option?.field\" (click)=\"onShow.next()\">\n <ng-container *ngIf=\"option?.type as type\">\n <ng-container [ngSwitch]=\"type+'-'+_child?.type\">\n <mecx-filter-selected-item-date-with-action *ngSwitchCase=\"'date-with-action'\"\n [option]=\"_child\">\n </mecx-filter-selected-item-date-with-action>\n <mecx-filter-selected-item-date-range *ngSwitchCase=\"'date-date-range'\" [option]=\"_child\">\n </mecx-filter-selected-item-date-range>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"action\" (click)=\"onShow.next()\">\n <monkey-icon icon=\"arrow-right-14\" color=\"#4B4A53\"></monkey-icon>\n </div>\n</div>","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-currency',\n templateUrl: './currency.component.html',\n styleUrls: ['./currency.component.scss']\n})\nexport class MECXFilterSelectedItemCurrencyComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n _value: any = null;\n\n private onHandleSelectedValue({ value }: any) {\n this._value = value;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _value | monkeyecxFormatCurrency }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss']\n})\nexport class MECXFilterSelectedItemInputComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n _value: any = null;\n\n private onHandleSelectedValue({ value }: any) {\n this._value = value;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _value }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-status',\n templateUrl: './status.component.html',\n styleUrls: ['./status.component.scss']\n})\nexport class MECXFilterSelectedItemStatusComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Input() labelMoreValues: string;\n\n _selectedValue = '';\n\n _labelMoreValues = '';\n\n private onHandleSelectedValue({ value, i18n }: any) {\n const { labelMoreValues } = this;\n const selected = `${value}`.split(',');\n\n this._selectedValue = `${i18n}${selected[0]}`.trim();\n if (selected.length >= 2) {\n this._labelMoreValues = `, ${labelMoreValues} ${selected.length - 1}`;\n } else this._labelMoreValues = '';\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _selectedValue | translate }}{{ _labelMoreValues }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-status-radio',\n templateUrl: './status-radio.component.html',\n styleUrls: ['./status-radio.component.scss']\n})\nexport class MECXFilterSelectedItemStatusRadioComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n _selectedValue = '';\n\n private onHandleSelectedValue({ value, i18n }: any) {\n this._selectedValue = `${i18n}${value}`.trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _selectedValue | translate }}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-children',\n templateUrl: './children.component.html',\n styleUrls: ['./children.component.scss']\n})\nexport class MECXFilterOptionsChildrenComponent implements OnInit, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n @Output() onShow = new EventEmitter<any>();\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const {\n eventHandle,\n onSubmit,\n option: { field }\n } = this;\n\n this.eventSubscription = eventHandle.pipe(debounceTime(100)).subscribe((value: any) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n onHandleChildrenAction(child: any) {\n const { field, type, action } = child;\n\n if (type === 'with-action') {\n this.eventHandle.next(\n JSON.stringify({\n [field]: action()\n })\n );\n } else {\n this.onShow.next(child);\n }\n }\n\n onHandleValidateSelected({ field, getValue }: any) {\n return !!getValue()?.[field];\n }\n}\n","<ng-container *ngFor=\"let child of option?.children\">\n <div class=\"item\" (click)=\"onHandleChildrenAction(child)\"\n [class.selected]=\"onHandleValidateSelected(child)\">\n {{ child.label | translate }}\n </div>\n</ng-container>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-currency',\n templateUrl: './currency.component.html',\n styleUrls: ['./currency.component.scss']\n})\nexport class MECXFilterOptionsCurrencyComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value = 0;\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: number) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this._value = currentValue?.value;\n }\n }\n }\n\n onChangeFilter(value: number) {\n this.eventHandle.next(value);\n }\n}\n","<monkey-input currency=\"true\" type=\"text\" maxLength=\"25\" [(value)]=\"_value\"\n (onChange)=\"onChangeFilter($event)\">\n</monkey-input>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren, MonkeyEcxUtils } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-date-range',\n templateUrl: './date-range.component.html',\n styleUrls: ['./date-range.component.scss']\n})\nexport class MECXFilterOptionsDateRangeComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value: any = {\n startDate: null,\n endDate: null\n };\n\n _form: FormGroup;\n\n _moveDaysForward = true;\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n private onHandleSelectedValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n this._value = JSON.parse(value);\n }\n } catch (e) {\n // not to do\n }\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: number) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n\n onChangeFilter(value: { startDate: string, endDate: string }) {\n if (!value?.endDate) return;\n this.eventHandle.next(JSON.stringify(value));\n }\n}\n","<monkey-date-range-picker [(value)]=\"_value\" [i18n]=\"'CALENDAR' | translate\"\n [moveDaysForward]=\"_moveDaysForward\" (onChange)=\"onChangeFilter($event)\">\n</monkey-date-range-picker>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss']\n})\nexport class MECXFilterOptionsInputComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value = '';\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: string) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this._value = currentValue?.value;\n }\n }\n }\n\n onChangeFilter(value: number) {\n this.eventHandle.next(value);\n }\n}\n","<monkey-input type=\"text\" maxLength=\"255\" [(value)]=\"_value\"\n (onChange)=\"onChangeFilter($event)\">\n</monkey-input>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-status',\n templateUrl: './status.component.html',\n styleUrls: ['./status.component.scss']\n})\nexport class MECXFilterOptionsStatusComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value = '';\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n private verifySelected(value: string): boolean {\n return this._value?.includes(value);\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: string) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this._value = currentValue?.value;\n }\n }\n }\n\n onHandleChecked(cmp: string) {\n const { _value } = this;\n return `${_value}`.split(',')?.indexOf(cmp) >= 0;\n }\n\n onChangeFilter(event: any, value: string): void {\n event.preventDefault();\n event.stopPropagation();\n\n const selected = !this.verifySelected(value);\n const filters: string[] = this._value?.split(',') || [];\n if (!selected) {\n filters.splice(filters.indexOf(value), 1);\n } else {\n filters.push(value);\n }\n\n this._value = filters?.length ? filters.join(',') : null;\n this.eventHandle.next(this._value);\n }\n}\n","<ng-container *ngFor=\"let op of option?.values\">\n <div class=\"content-status d-flex flex-column\">\n <div class=\"d-flex align-items-center gap\">\n <monkey-checkbox\n type=\"multiple\"\n [description]=\"op?.description | translate\"\n [value]=\"onHandleChecked(op?.value)\"\n (click)=\"onChangeFilter($event, op?.value)\"\n [attr.data-testid]=\"'mecx-filter-status-btn-' + op?.value?.toLowerCase()\"\n >\n </monkey-checkbox>\n <span class=\"helper\" *ngIf=\"op?.helperMessage\">{{ op?.helperMessage }}</span>\n </div>\n <span class=\"info\" *ngIf=\"op?.infoMessage\">{{ op?.infoMessage }}</span>\n </div>\n</ng-container>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-status-radio',\n templateUrl: './status-radio.component.html',\n styleUrls: ['./status-radio.component.scss']\n})\nexport class MECXFilterOptionsStatusRadioComponent implements OnInit, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const {\n eventHandle,\n onSubmit,\n option: { field }\n } = this;\n\n this.eventSubscription = eventHandle.pipe(debounceTime(800)).subscribe((value: string) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n onChangeFilter(event: any): void {\n this.eventHandle.next(event);\n }\n}\n","<monkey-radiobutton [value]=\"option.value\" (onChange)=\"onChangeFilter($event)\">\n <monkey-option\n *ngFor=\"let op of option?.values\"\n [label]=\"op?.description | translate\"\n [value]=\"op?.value\"\n >\n </monkey-option>\n</monkey-radiobutton>\n","import { Component, EventEmitter, Input, Output, OnInit, AfterViewInit } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren } from 'monkey-front-core';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../base';\n\n@Component({\n selector: 'mecx-filter-options',\n templateUrl: './options.component.html',\n styleUrls: ['./options.component.scss']\n})\nexport class MECXFilterOptionsComponent extends BaseComponent implements OnInit, AfterViewInit {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Input() closeDirectly = false;\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onRemove = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n @Output() onShowFromChildren = new EventEmitter<any>();\n\n _showMenu = false;\n\n _isLoading = false;\n\n _hasMoreValues = false;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n constructor() {\n super();\n }\n\n private onHandleLoading(loading = false) {\n this._isLoading = loading;\n }\n\n private onHandleLoadValues(first = false) {\n if (first) {\n this.option?.loadValues?.();\n } else {\n this.option?.loadMoreValues?.();\n }\n }\n\n ngOnInit() {\n const { option } = this;\n\n option?.values$?.()?.pipe(\n takeUntil(this.__unsubscribeAll)\n ).subscribe((data: any) => {\n this.option.values = data;\n });\n\n option?.pagination$?.()?.pipe(\n takeUntil(this.__unsubscribeAll)\n ).subscribe((data: any) => {\n this._hasMoreValues = !!(data?.next);\n });\n\n option?.control$?.()?.pipe(\n takeUntil(this.__unsubscribeAll)\n ).subscribe((data: any) => {\n this.onHandleLoading(data?.isLoading);\n });\n }\n\n ngAfterViewInit() {\n this.onHandleLoadValues(true);\n }\n\n onHandleChildrenAction(child: MonkeyEcxFilterMenuChildren) {\n const { option } = this;\n const { field, action } = child;\n this.onSubmit.next({\n [option.field]: {\n [field]: action()\n }\n });\n }\n\n onHandleSubmitChildren(event: any) {\n this.onSubmit.next(event);\n }\n\n onHandleSubmit(event: any) {\n this.onSubmit.next(event);\n }\n\n onHandleShowMenu() {\n const { closeDirectly } = this;\n if (closeDirectly) {\n this.onClose.next();\n return;\n }\n this._showMenu = true;\n }\n\n onHandleLoadMoreValues() {\n this.onHandleLoadValues();\n }\n}\n","<div class=\"d-flex justify-content-between header\">\n <span class=\"title\">\n {{ option?.label | translate }}\n </span>\n <div\n class=\"close\"\n #actionElement\n (click)=\"onHandleShowMenu()\"\n data-testid=\"mecx-filter-options-btn-handle-show-menu\"\n >\n <monkey-icon icon=\"close-12\" color=\"#474747\"></monkey-icon>\n </div>\n</div>\n<ng-container *ngIf=\"option?.type as type\">\n <ng-container *ngIf=\"option?.children; else withoutChildren\">\n <mecx-filter-options-children\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmitChildren($event)\"\n (onShow)=\"onShowFromChildren.next($event)\"\n >\n </mecx-filter-options-children>\n </ng-container>\n <ng-template #withoutChildren>\n <ng-container [ngSwitch]=\"type\">\n <mecx-filter-options-currency\n *ngSwitchCase=\"'currency'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-currency>\n <mecx-filter-options-date-range\n *ngSwitchCase=\"'date-range'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-date-range>\n <mecx-filter-options-input\n *ngSwitchCase=\"'input'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-input>\n <mecx-filter-options-status\n *ngSwitchCase=\"'status'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-status>\n <mecx-filter-options-status-radio\n *ngSwitchCase=\"'status-radio'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-status-radio>\n </ng-container>\n </ng-template>\n</ng-container>\n\n<div class=\"box-loading\" *ngIf=\"_isLoading\">\n <div class=\"loading\"></div>\n <div class=\"loading\"></div>\n <div class=\"loading\"></div>\n</div>\n\n<div class=\"footer\" *ngIf=\"_hasMoreValues && !_isLoading\">\n <monkey-button\n type=\"tertiary\"\n color=\"theme\"\n [label]=\"'BUTTONS.LOAD-MORE' | translate\"\n (click)=\"onHandleLoadMoreValues()\"\n >\n </monkey-button>\n</div>\n\n<ng-container\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'ltr'\"\n>\n <div class=\"close-menu\">\n <monkey-button\n type=\"tertiary\"\n color=\"error\"\n (click)=\"onRemove.next()\"\n size=\"sm\"\n data-testid=\"mecx-filter-options-btn-remove\"\n >\n {{ 'BUTTONS.REMOVE' | translate }}\n </monkey-button>\n <monkey-button\n type=\"tertiary\"\n color=\"theme\"\n (click)=\"onClose.next()\"\n size=\"sm\"\n data-testid=\"mecx-filter-options-btn-close\"\n >\n {{ 'BUTTONS.CLOSE' | translate }}\n </monkey-button>\n </div>\n</ng-container>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss']\n})\nexport class MECXFilterSelectedItemComponent {\n @Input() set option(value: MonkeyEcxFilterMenu) {\n this._option = value;\n }\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _option: MonkeyEcxFilterMenu = null;\n\n _showMenu = false;\n\n _actionElement: HTMLElement = null;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n constructor() {\n // not to do\n }\n\n onHandleShowMenu() {\n const { _option } = this;\n this._actionElement = document.getElementById(`mecx-filter-selected-item-${_option?.field}`);\n setTimeout(() => {\n this._showMenu = true;\n }, 0);\n }\n\n onHandleClose() {\n this._showMenu = false;\n this.onClose.next();\n }\n\n onHandleSubmit(event: any) {\n this.onSubmit.next(event);\n }\n\n onHandleRemove() {\n const { _option } = this;\n const { field } = _option;\n this.onSubmit.next({ [field]: null });\n }\n\n onHandleShowFromChildren(event: any) {\n const { _option } = this;\n const { label } = _option;\n\n this.onHandleShowMenu();\n this.onHandleSubmit = (event: any) => {\n this.onSubmit.next({\n [_option.field]: JSON.stringify(event)\n });\n };\n\n this._option = {\n ...event,\n label\n };\n }\n}\n","<ng-container *ngIf=\"_option?.type as type\">\n <ng-container *ngIf=\"_option?.children; else withoutChildren\">\n <mecx-filter-selected-item-children\n [option]=\"_option\"\n (onShow)=\"onHandleShowMenu()\"\n (onRemove)=\"onHandleRemove()\"\n >\n </mecx-filter-selected-item-children>\n </ng-container>\n <ng-template #withoutChildren>\n <div class=\"box\">\n <div class=\"data\">\n {{ _option.label | translate }}\n </div>\n <div\n class=\"value\"\n [id]=\"'mecx-filter-selected-item-' + _option?.field\"\n (click)=\"onHandleShowMenu()\"\n [attr.data-testid]=\"'mecx-filter-selected-item-btn-' + _option?.value?.toLowerCase()\"\n >\n <ng-container [ngSwitch]=\"type\">\n <mecx-filter-selected-item-currency *ngSwitchCase=\"'currency'\" [option]=\"_option\">\n </mecx-filter-selected-item-currency>\n <mecx-filter-selected-item-date-range *ngSwitchCase=\"'date-range'\" [option]=\"_option\">\n </mecx-filter-selected-item-date-range>\n <mecx-filter-selected-item-input *ngSwitchCase=\"'input'\" [option]=\"_option\">\n </mecx-filter-selected-item-input>\n <mecx-filter-selected-item-status\n *ngSwitchCase=\"'status'\"\n [option]=\"_option\"\n [labelMoreValues]=\"'FIELD.AND-MORE' | translate\"\n >\n </mecx-filter-selected-item-status>\n <mecx-filter-selected-item-status-radio *ngSwitchCase=\"'status-radio'\" [option]=\"_option\">\n </mecx-filter-selected-item-status-radio>\n </ng-container>\n </div>\n <div\n class=\"action\"\n (click)=\"onHandleShowMenu()\"\n data-testid=\"mecx-filter-selected-item-btn-arrow-right\"\n >\n <monkey-icon icon=\"arrow-right-14\" color=\"#4B4A53\"></monkey-icon>\n </div>\n </div>\n </ng-template>\n</ng-container>\n<ng-container\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n>\n <mecx-filter-options\n [option]=\"_option\"\n (onClose)=\"onHandleClose()\"\n (onRemove)=\"onHandleRemove()\"\n (onSubmit)=\"onHandleSubmit($event)\"\n (onShowFromChildren)=\"onHandleShowFromChildren($event)\"\n >\n </mecx-filter-options>\n</ng-container>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected',\n templateUrl: './selected.component.html',\n styleUrls: ['./selected.component.scss']\n})\nexport class MECXFilterSelectedComponent implements OnChanges {\n @Input() model: MonkeyEcxFilterMenu[] = [];\n\n @Output() onOpenFilters = new EventEmitter<any>();\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _model: MonkeyEcxFilterMenu[] = [];\n\n constructor() {\n // not to do\n }\n\n private validateValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n } catch (e) {\n // not to do\n }\n return false;\n }\n\n private handleValidateChildrenValue(value: any[]) {\n return value.find((data: any) => {\n return this.validateValue(data);\n });\n }\n\n private onHandleSelectedValue(value: any[]) {\n this._model = value?.map((_: any) => {\n const { children } = _;\n let obj = null;\n if (children && this.handleValidateChildrenValue(children)) {\n obj = {\n ..._,\n children\n };\n } else if (this.validateValue(_)) {\n obj = {\n ..._,\n ...obj || {}\n };\n }\n\n return obj;\n })?.filter((_) => {\n return _;\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.model) {\n const { currentValue } = changes.model;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n\n onHandleClose() {\n this.onClose.next();\n }\n\n onHandleSubmit(event: any) {\n this.onSubmit.next(event);\n }\n}\n","<mecx-filter-selected-item *ngFor=\"let option of _model\" (onSubmit)=\"onHandleSubmit($event)\"\n (onClose)=\"onHandleClose()\" [option]=\"option\">\n</mecx-filter-selected-item>","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss']\n})\nexport class MECXFilterMenuComponent implements OnChanges {\n @Input() model: MonkeyEcxFilterMenu[] = [];\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _onHandleSubmit: Function = null;\n\n _model: MonkeyEcxFilterMenu[] = [];\n\n _showMenu = false;\n\n _menuOption: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n constructor() {\n // not to do\n }\n\n private validateValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n } catch (e) {\n // not to do\n }\n return false;\n }\n\n private onHandleSubmitValue(value: any) {\n this.onSubmit.next(value);\n this.onHandleClose();\n }\n\n private onHandleMenus(value: any[]) {\n this._model = value?.map((_: any) => {\n const { children } = _;\n let obj = null;\n if (children) {\n obj = {\n ..._,\n children: children?.filter((_: any) => {\n return !this.validateValue(_);\n })\n };\n } else if (!this.validateValue(_)) {\n obj = {\n ..._,\n ...obj || {}\n };\n }\n\n return obj;\n })?.filter((_) => {\n return _;\n });\n\n this._model = this._model?.sort((a, b) => {\n const groupA = `${a?.group}`.toLowerCase();\n const groupB = `${b?.group}`.toLowerCase();\n return groupA !== groupB ? 1 : -1;\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.model) {\n const { currentValue } = changes.model;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleMenus(currentValue);\n }\n }\n }\n\n onHandleChildrenAction(option: MonkeyEcxFilterMenu, child: MonkeyEcxFilterMenuChildren) {\n const { field, type, action } = child;\n if (type === 'with-action') {\n this.onHandleSubmitValue({\n [option.field]: JSON.stringify({\n [field]: action()\n })\n });\n } else {\n this._showMenu = true;\n this._menuOption = child;\n this.onHandleSubmit = (event: any) => {\n this.onHandleSubmitValue({\n [option.field]: JSON.stringify(event)\n });\n };\n }\n }\n\n onHandleShowMenu(option: MonkeyEcxFilterMenu) {\n this._showMenu = true;\n this._menuOption = option;\n }\n\n onHandleClose() {\n this._showMenu = false;\n this.onClose.next();\n }\n\n onHandleSubmit(event: any) {\n this.onHandleSubmitValue(event);\n }\n}\n","<div class=\"d-flex flex-column\" #actionElement>\n <ng-container *ngFor=\"let menu of _model; let index = index\">\n <ng-container *ngIf=\"menu?.children; else withoutChildren\">\n <div class=\"item no-action\">\n {{ menu.label | translate }}\n </div>\n <div class=\"separator\"></div>\n <ng-container *ngFor=\"let child of menu?.children\">\n <div\n class=\"item children\"\n (click)=\"onHandleChildrenAction(menu, child)\"\n [attr.data-testid]=\"\n 'mecx-filter-item-children-btn-' +\n menu?.field?.toLowerCase() +\n '-' +\n child?.field?.toLowerCase()\n \"\n >\n {{ child.label | translate }}\n </div>\n </ng-container>\n </ng-container>\n <ng-template #withoutChildren>\n <div\n class=\"item\"\n (click)=\"onHandleShowMenu(menu)\"\n [attr.data-testid]=\"'mecx-filter-menu-btn-' + menu?.label?.toLowerCase()\"\n >\n {{ menu.label | translate }}\n </div>\n </ng-template>\n <ng-container *ngIf=\"_model[index + 1]?.group as next; _model: [index]?.group as current\">\n <div class=\"separator\" *ngIf=\"next !== current\"></div>\n </ng-container>\n </ng-container>\n</div>\n<ng-container\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'rt'\"\n>\n <mecx-filter-options\n [option]=\"_menuOption\"\n (onClose)=\"onHandleClose()\"\n (onSubmit)=\"onHandleSubmit($event)\"\n [closeDirectly]=\"true\"\n ></mecx-filter-options>\n</ng-container>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport {\n MonkeyEcxFilterMenu,\n MonkeyEcxFilterOrder,\n MonkeyEcxFilterOrdersList,\n MonkeyEcxUtils\n} from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss']\n})\nexport class MECXFilterComponent implements OnChanges {\n @Input() searchPlaceholder = '';\n\n @Input() orderPlaceholder = '';\n\n @Input() menus: MonkeyEcxFilterMenu[] = [];\n\n @Input() orders: MonkeyEcxFilterOrder[] = [];\n\n @Input() enableSearch = true;\n\n @Input() enableAddFilter = true;\n\n @Input() enableOrder = true;\n\n @Input() complementTemplate: TemplateRef<any>;\n\n @Input()\n set search(value: string) {\n this._search = value;\n }\n\n @Input()\n set order(value: any) {\n this._order = value;\n }\n\n @Input()\n set ordersList(value: any[]) {\n this._ordersList = value;\n }\n\n @Input() isLoading = false;\n\n @Output() onFilter = new EventEmitter<any>();\n\n _order: MonkeyEcxFilterOrder = null;\n\n _search = '';\n\n _ordersList: MonkeyEcxFilterOrdersList | any = null;\n\n _showMenu = false;\n\n _showOrder = false;\n\n _hasFilterByMenu = false;\n\n _actionElement: HTMLElement = null;\n\n _actionElementOrder: HTMLElement = null;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n closeOrder = () => {\n this._showOrder = false;\n };\n\n constructor() {\n // not to do\n }\n\n private validateValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n } catch (e) {\n // not to do\n }\n return false;\n }\n\n private handleFilters() {\n const { menus } = this;\n let found = menus.find((_: any) => {\n return this.validateValue(_);\n });\n if (!found) {\n found = menus.find(({ children }) => {\n return (children || [])?.find((_: any) => {\n return this.validateValue(_);\n });\n });\n }\n this._hasFilterByMenu = !!found;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.menus) {\n const { currentValue } = changes.menus;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.handleFilters();\n }\n }\n }\n\n onSearchFilter(event: string) {\n this.onFilter.next({ search: event });\n }\n\n onClearFilter() {\n this._search = '';\n this.onFilter.next({ search: null });\n }\n\n onHandleSubmit(event: any) {\n this.onFilter.next(event);\n }\n\n onHandleShowMenu() {\n this._actionElement = document.getElementById('mecx-filters-add-filter');\n setTimeout(() => {\n this._showMenu = true;\n }, 0);\n }\n\n onHandleClose() {\n this._showMenu = false;\n }\n\n onHandleShowOrders(el: HTMLElement) {\n this._actionElementOrder = el;\n setTimeout(() => {\n this._showOrder = true;\n }, 10);\n }\n\n onHandleOrder(event: any, field: string = 'sort') {\n this.onFilter.next({ [field]: event });\n }\n}\n","<div class=\"d-flex full-width flex-column d-flex-gap-2 filter-content\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between full-width\">\n <div class=\"d-flex full-width d-flex-gap-2 filter-input\">\n <ng-container *ngIf=\"enableSearch\">\n <monkey-input-filter\n [placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"onSearchFilter($event)\"\n icon=\"search-16\"\n iconPosition=\"left\"\n [(value)]=\"_search\"\n data-testid=\"mecx-filter-input\"\n >\n </monkey-input-filter>\n </ng-container>\n <ng-container *ngIf=\"!_hasFilterByMenu\">\n <div *ngIf=\"enableAddFilter\" class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\n <monkey-button\n type=\"filter\"\n color=\"border\"\n (click)=\"onHandleShowMenu()\"\n icon=\"more-16\"\n iconPosition=\"right\"\n data-testid=\"mecx-filter-btn-add-filter\"\n >\n {{ 'BUTTONS.ADD-FILTER' | translate }}\n </monkey-button>\n </div>\n </ng-container>\n </div>\n <div class=\"order hidden-sm hidden-xs\">\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\n <ng-container *ngIf=\"!!complementTemplate\">\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"enableOrder\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"_hasFilterByMenu\">\n <div class=\"separator\"></div>\n <div class=\"d-flex full-width d-flex-gap-2 align-items-end\">\n <mecx-filter-selected\n class=\"d-flex-gap-2\"\n (onSubmit)=\"onHandleSubmit($event)\"\n (onClose)=\"onHandleClose()\"\n [model]=\"menus\"\n ></mecx-filter-selected>\n <div class=\"more-filters\">\n <monkey-button\n type=\"filter\"\n color=\"border\"\n icon=\"more-16\"\n id=\"mecx-filters-add-filter\"\n (click)=\"onHandleShowMenu()\"\n >\n </monkey-button>\n </div>\n </div>\n </ng-container>\n <div class=\"order hidden-md hidden-lg\">\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\n <ng-container *ngIf=\"!!complementTemplate\">\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"enableOrder\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<mecx-filter-menu\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n (onSubmit)=\"onHandleSubmit($event)\"\n (onClose)=\"onHandleClose()\"\n [model]=\"menus\"\n>\n</mecx-filter-menu>\n\n<ng-template #orderBy>\n <ng-container *ngIf=\"!(_ordersList?.length > 0); else orderByList\">\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\n <monkey-select-filter\n (onChange)=\"onHandleOrder($event)\"\n [placeholder]=\"orderPlaceholder | translate\"\n type=\"none\"\n [(value)]=\"_order\"\n data-testid=\"mecx-filter-btn-order\"\n >\n <monkey-option\n *ngFor=\"let ordBy of orders\"\n [label]=\"ordBy?.label | translate\"\n [value]=\"ordBy?.value\"\n [attr.data-testid]=\"'mecx-filter-btn-order-' + ordBy?.value?.toLowerCase()\"\n >x\n </monkey-option>\n </monkey-select-filter>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #orderByList>\n <div class=\"d-flex full-width justify-content-end\">\n <div #ordersFilterMenu (click)=\"onHandleShowOrders(ordersFilterMenu)\">\n <monkey-button\n type=\"filter\"\n color=\"border\"\n icon=\"arrow-down-16\"\n iconPosition=\"right\"\n data-testid=\"mecx-filter-btn-ordination\"\n >\n {{ 'BUTTONS.ORDINATION' | translate }}\n </monkey-button>\n </div>\n </div>\n <div\n class=\"ml-1\"\n *monkeyecxPopover=\"\n _showOrder;\n target: $any(_actionElementOrder);\n closed: closeOrder;\n dir: 'rtl'\n \"\n >\n <div class=\"drop-down-orders-filter pt-4\">\n <ng-container *ngFor=\"let item of _ordersList\">\n <div class=\"px-4\">\n <span>{{ item.label | translate }}</span>\n <monkey-radiobutton [value]=\"item.value\" (onChange)=\"onHandleOrder($event, item.field)\">\n <monkey-option\n *ngFor=\"let ordBy of item.values\"\n [label]=\"ordBy?.label | translate\"\n [value]=\"ordBy?.value\"\n [attr.data-testid]=\"'mecx-filter-btn-ordination-' + ordBy?.value?.toLowerCase()\"\n >\n </monkey-option>\n </monkey-radiobutton>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyEcxDirectivesModule } from 'monkey-front-core';\nimport {\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule,\n} from 'monkey-style-guide';\nimport { MECXFilterOptionsChildrenComponent } from './children';\nimport { MECXFilterOptionsCurrencyComponent } from './currency';\nimport { MECXFilterOptionsInputComponent } from './input';\nimport { MECXFilterOptionsDateRangeComponent } from './date-range';\nimport { MECXFilterOptionsComponent } from './options.component';\nimport { MECXFilterOptionsStatusComponent } from './status';\nimport { MECXFilterOptionsStatusRadioComponent } from './status-radio';\n\n@NgModule({\n declarations: [\n MECXFilterOptionsChildrenComponent,\n MECXFilterOptionsComponent,\n MECXFilterOptionsCurrencyComponent,\n MECXFilterOptionsDateRangeComponent,\n MECXFilterOptionsInputComponent,\n MECXFilterOptionsStatusComponent,\n MECXFilterOptionsStatusRadioComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyRadioButtonModule,\n MonkeyDateRangePickerModule,\n MonkeyEcxDirectivesModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forChild(),\n ],\n exports: [\n MECXFilterOptionsChildrenComponent,\n MECXFilterOptionsComponent,\n MECXFilterOptionsCurrencyComponent,\n MECXFilterOptionsDateRangeComponent,\n MECXFilterOptionsInputComponent,\n MECXFilterOptionsStatusComponent,\n MECXFilterOptionsStatusRadioComponent,\n ],\n})\nexport class MECXFilterOptionsModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MonkeyEcxDirectivesModule } from 'monkey-front-core';\nimport {\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXFilterOptionsModule } from '../options';\nimport { MECXFilterMenuComponent } from './menu.component';\n\n@NgModule({\n declarations: [MECXFilterMenuComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyEcxDirectivesModule,\n MonkeyButtonModule,\n MonkeyBadgeModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyCheckboxModule,\n MonkeySelectModule,\n MonkeyOptionModule,\n MonkeyDateRangePickerModule,\n RouterModule,\n MECXFilterOptionsModule,\n TranslateModule.forChild()\n ],\n exports: [MECXFilterMenuComponent]\n})\nexport class MECXFilterMenuModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n MonkeyEcxDirectivesModule,\n MonkeyEcxPipesModule,\n} from 'monkey-front-core';\nimport {\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule,\n} from 'monkey-style-guide';\nimport { MECXFilterOptionsModule } from '../options';\nimport {\n MECXFilterSelectedItemChildrenComponent,\n MECXFilterSelectedItemComponent,\n MECXFilterSelectedItemCurrencyComponent,\n MECXFilterSelectedItemDateRangeComponent,\n MECXFilterSelectedItemDateWithActionComponent,\n MECXFilterSelectedItemInputComponent,\n MECXFilterSelectedItemStatusComponent,\n MECXFilterSelectedItemStatusRadioComponent,\n} from './item';\nimport { MECXFilterSelectedComponent } from './selected.component';\n\n@NgModule({\n declarations: [\n MECXFilterSelectedComponent,\n MECXFilterSelectedItemChildrenComponent,\n MECXFilterSelectedItemComponent,\n MECXFilterSelectedItemCurrencyComponent,\n MECXFilterSelectedItemDateRangeComponent,\n MECXFilterSelectedItemDateWithActionComponent,\n MECXFilterSelectedItemInputComponent,\n MECXFilterSelectedItemStatusComponent,\n MECXFilterSelectedItemStatusRadioComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MECXFilterOptionsModule,\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyEcxDirectivesModule,\n MonkeyEcxPipesModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forChild(),\n ],\n exports: [MECXFilterSelectedComponent],\n})\nexport class MECXFilterSelectedModule {}\n","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 {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXFilterComponent } from './filter.component';\nimport { MECXFilterMenuModule } from './menu';\nimport { MECXFilterSelectedModule } from './selected';\n\n@NgModule({\n declarations: [MECXFilterComponent],\n imports: [\n CommonModule,\n FormsModule,\n MECXFilterMenuModule,\n MECXFilterSelectedModule,\n MonkeyButtonModule,\n MonkeyEcxDirectivesModule,\n MonkeyEcxPipesModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule,\n ReactiveFormsModule,\n TranslateModule.forChild()\n ],\n exports: [MECXFilterComponent]\n})\nexport class MECXFilterModule {}\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 @Input() i18n: any = 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>{{ i18n?.TITLE }}</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\"\n [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 {{ i18n?.TYPES?.[validators.regex] }}\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 {{ i18n?.LABELS?.[_stepPassword] }}\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","export class ProductsModel {\n url: string;\n\n token: string;\n\n username: string;\n\n ownerGovernmentId: string;\n\n ownerName: string;\n\n product: string;\n\n name: string;\n\n type: string;\n\n logo: string;\n\n constructor(data?: any) {\n this.url = data?.url;\n this.token = data?.token;\n this.username = data?.username;\n this.ownerGovernmentId = data?.ownerGovernmentId;\n this.ownerName = data?.ownerName;\n this.product = data?.product;\n this.name = data?.name;\n this.type = data?.type;\n this.handleLogo();\n }\n\n private handleLogo() {\n const { product, token, url } = this;\n if (!url) return;\n\n const sufix = {\n SALES_FINANCE: 'SF_',\n SPIKE: 'SF_',\n SUPPLY_CHAIN: 'SF_'\n }[product];\n\n const { hostname } = new URL(url);\n const lastDot = hostname?.lastIndexOf('.');\n const previousLastDot = hostname?.lastIndexOf('.', lastDot - 1);\n const domain = hostname?.substring(previousLastDot + 1, hostname?.length);\n\n const handledToken = token?.replace(sufix, '');\n\n const path = {\n 'monkeyecx.com': 'scf/br',\n 'monkey.exchange': 'scf/br',\n 'monkeyexchange.cl': 'scf/cl',\n 'sales.finance': 'sf',\n 'spike.cash': 'spike',\n 'monkey.credit': 'credit'\n }[domain];\n\n this.logo = `https://assets.monkey.exchange/${path}/wl/${handledToken}/login.svg`.toLowerCase();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mecx-products-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss']\n})\nexport class MECXProductsFilterComponent {\n @Input() isLoading = false;\n\n @Output() onChangeFilter = new EventEmitter<any>();\n\n _search = '';\n\n constructor() {\n // not to do\n }\n\n onSearchFilter(event: string) {\n this._search = event;\n if (!event) {\n this.onChangeFilter.next('');\n return;\n }\n event = `${event}`.toLowerCase();\n\n this.onChangeFilter.next(event);\n }\n\n onClearFilter() {\n this._search = '';\n this.onChangeFilter.next(this._search);\n }\n}\n","<monkey-input-filter [placeholder]=\"'SIDEBAR-ACTIONS.PROFILE.FILTER.SEARCH-INPUT' | translate\"\n (onChange)=\"onSearchFilter($event)\" icon=\"search-16\" [(value)]=\"_search\">\n</monkey-input-filter>\n<monkey-button type=\"filter\" color=\"border\" (click)=\"onClearFilter()\">\n Limpar\n</monkey-button>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from 'monkey-front-core';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../base/base-component';\nimport { ProductsModel } from './providers';\n\n@Component({\n selector: 'mecx-products',\n templateUrl: './products.component.html',\n styleUrls: ['./products.component.scss']\n})\nexport class MECXProductsComponent extends BaseComponent implements OnInit {\n @Output() onAccess = new EventEmitter<any>();\n\n _products: any[];\n\n _filteredProducts: any[];\n\n _filter = '';\n\n _hasMoreProducts = false;\n\n constructor(private tokenStorage: MonkeyEcxTokenStorageService) {\n super();\n }\n\n onImgError(img: HTMLImageElement) {\n const index = Math.floor(Math.random() * (6 - 1 + 1)) + 1;\n img.src = `https://assets.monkeyecx.com/icons/icon-${index}.svg`;\n img.className = 'no-image';\n }\n\n private onHandleProducts() {\n const { _filter } = this;\n\n this._filteredProducts = this._products.map(({ name, items }) => {\n const found = items?.filter((_: any) => {\n const cmpA = `${_.name}`.toLowerCase();\n const cmpB = `${_filter}`.toLowerCase();\n return cmpA.includes(cmpB);\n });\n\n if (found && found.length) {\n return {\n name,\n items: found\n };\n }\n\n return null;\n }).filter((_: any) => { return _; });\n }\n\n private async onHandleMe() {\n const programs: ProductsModel[] = (await this.tokenStorage.getMe())?.programs?.map((_: any) => {\n return new ProductsModel(_);\n });\n\n const onlyUnique = (value: any, index: any, self: any) => {\n return self.indexOf(value) === index;\n };\n\n const products = programs.map(({ product }) => {\n return product;\n }).filter(onlyUnique);\n\n this._hasMoreProducts = (products?.length || 0) > 1;\n\n this._products = Object.entries(products).map(([key, value]) => {\n const found = programs.filter(({ product }) => {\n return `${product}` === `${value}`;\n })?.sort((a, b) => {\n const groupA = `${a?.name}`.toLowerCase();\n const groupB = `${b?.name}`.toLowerCase();\n return groupA !== groupB ? 1 : -1;\n });\n\n return {\n name: value,\n items: found\n };\n })?.sort((a, b) => {\n const groupA = `${a?.name}`.toLowerCase();\n const groupB = `${b?.name}`.toLowerCase();\n return groupA !== groupB ? -1 : 1;\n });\n\n this._filteredProducts = this._products;\n }\n\n ngOnInit() {\n this.tokenStorage\n .meHasChanged()\n .pipe(takeUntil(this.__unsubscribeAll))\n .subscribe(() => {\n this.onHandleMe();\n });\n }\n\n onHandleChangeFilter(event: string) {\n this._filter = event;\n this.onHandleProducts();\n }\n}\n","<mecx-products-filter (onChangeFilter)=\"onHandleChangeFilter($event)\"></mecx-products-filter>\n<div class=\"products-list\">\n <div *ngFor=\"let product of _filteredProducts\" class=\"product\">\n <span class=\"title\" *ngIf=\"_hasMoreProducts\">{{ 'PRODUCTS.'+product.name | translate }}</span>\n <div class=\"items\">\n <div *ngFor=\"let item of product.items\" class=\"item\"\n (click)=\"onAccess.next(item)\">\n <div class=\"icon\">\n <img [src]=\"item.logo\" #img (error)=\"onImgError(img)\">\n </div>\n <span class=\"name\">{{ item.name }}</span>\n </div>\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyInputModule } from 'monkey-style-guide';\nimport { MECXProductsFilterComponent } from './filter/filter.component';\nimport { MECXProductsComponent } from './products.component';\n\n@NgModule({\n declarations: [MECXProductsComponent, MECXProductsFilterComponent],\n imports: [CommonModule, TranslateModule.forChild(), MonkeyInputModule, MonkeyButtonModule],\n exports: [MECXProductsComponent]\n})\nexport class MECXProductsModule {}\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","i1","i2","i3","i4","i3.MECXDynamicDirective","i4.MECXDynamicDirective","i5","i1.MECXFilterSelectedItemDateWithActionComponent","i2.MECXFilterSelectedItemDateRangeComponent","i2.MECXFilterOptionsChildrenComponent","i3.MECXFilterOptionsCurrencyComponent","i4.MECXFilterOptionsDateRangeComponent","i5.MECXFilterOptionsInputComponent","i6.MECXFilterOptionsStatusComponent","i7.MECXFilterOptionsStatusRadioComponent","i8","i9","i10","i1.MECXFilterSelectedItemChildrenComponent","i2.MECXFilterSelectedItemCurrencyComponent","i3.MECXFilterSelectedItemDateRangeComponent","i4.MECXFilterSelectedItemInputComponent","i5.MECXFilterSelectedItemStatusComponent","i6.MECXFilterSelectedItemStatusRadioComponent","i7","i8.MECXFilterOptionsComponent","i11","i1.MECXFilterSelectedItemComponent","i1.MECXFilterOptionsComponent","i2.MECXFilterSelectedComponent","i3.MECXFilterMenuComponent","i6","i1.MECXProgressBarService","i2.MECXProductsFilterComponent"],"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-array.ts","../../../projects/monkey-front-components/src/lib/components/base/base-dynamic.ts","../../../projects/monkey-front-components/src/lib/components/base/base-scroll-component.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/filter/selected/item/date-with-action/date-with-action.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/date-range/date-range.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/date-range/date-range.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/children/children.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/children/children.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/currency/currency.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/currency/currency.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/value-range/value-range.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/value-range/value-range.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status/status.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status/status.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status-radio/status-radio.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/status-radio/status-radio.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/children/children.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/children/children.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/currency/currency.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/currency/currency.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/date-range/date-range.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/date-range/date-range.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/input/input.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/input/input.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status/status.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status/status.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status-radio/status-radio.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/status-radio/status-radio.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/value-range/value-range.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/value-range/value-range.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/options.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/options.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/item.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/item/item.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/selected.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/selected.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/menu/menu.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/menu/menu.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/filter.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/filter.component.html","../../../projects/monkey-front-components/src/lib/components/shared/filter/options/options.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/menu/menu.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/selected/selected.module.ts","../../../projects/monkey-front-components/src/lib/components/shared/filter/filter.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/lib/components/shared/products/providers/products.model.ts","../../../projects/monkey-front-components/src/lib/components/shared/products/filter/filter.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/products/filter/filter.component.html","../../../projects/monkey-front-components/src/lib/components/shared/products/products.component.ts","../../../projects/monkey-front-components/src/lib/components/shared/products/products.component.html","../../../projects/monkey-front-components/src/lib/components/shared/products/products.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 { Directive, OnDestroy } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport {\n MonkeyEcxCommonsService,\n MonkeyEcxErrorResponse,\n MonkeyEcxPaginationOptions,\n MonkeyEcxScrollOptions,\n MonkeyEcxSupportOptions,\n MonkeyEcxTranslateOptions,\n MonkeyEcxUtils,\n ValidateUtils,\n Validators\n} from 'monkey-front-core';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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', 'es-MX', 'en-US'];\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 element.removeEventListener('scroll', (element as any).eventListeners('scroll'));\n element.removeEventListener('scroll', (element as any).eventListeners('scroll')[0]);\n if (create) {\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 if (formControl?.hasError('invalidValueGreaterThanZero')) return 'INVALID-GREATER-THAN-ZERO';\n if (formControl?.hasError('dateRange')) return 'INVALID-DATE-RANGE';\n if (formControl?.hasError('differentFromZero')) return 'DIFFERENT-FROMT-ZERO';\n if (formControl?.hasError('invalidMinYears')) {\n return `INVALID-MIN-YEARS-${formControl?.getError('invalidMinYears').year}`;\n }\n if (formControl?.hasError('fullName')) return 'FULL-NAME-REQUIRED';\n if (formControl?.hasError('containsNumber')) return 'CONTAINS-NUMBER';\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 scrollToError() {\n setTimeout(() => {\n const error: HTMLCollectionOf<Element> = document.getElementsByTagName('error');\n\n let letHEele: Element = null;\n for (let i = 0; i <= error.length; i += 1) {\n if (`${error[i]?.textContent}`.trim()) {\n letHEele = error[i];\n break;\n }\n }\n letHEele?.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }, 0);\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\n try {\n this.scrollToError();\n } catch (e) {\n // ignore\n }\n\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 mx: 52,\n us: 1\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 getCountryDocumentMask(type: 'CPF' | 'CPNJ' | '', country: string) {\n return MonkeyEcxUtils.getDocumentMask(type, country);\n }\n\n public getCountryDocumentPlaceholder(type: 'CPF' | 'CPNJ' | '', country: string) {\n return MonkeyEcxUtils.getDocumentPlaceholder(type, country);\n }\n\n public getCountryValidators(country: string) {\n return {\n br: {\n governmentId: ValidateUtils.DocumentValidator,\n zipCode: Validators.zipCodeByCountry(country)\n },\n cl: {\n governmentId: ValidateUtils.DocumentRutValidator,\n zipCode: Validators.zipCodeByCountry(country)\n },\n mx: {\n governmentId: ValidateUtils.DocumentRFCValidator,\n zipCode: Validators.zipCodeByCountry(country)\n },\n }[country] || {\n governmentId: ValidateUtils.DocumentValidator,\n zipCode: Validators.zipCodeByCountry('br')\n };\n }\n\n public isAbleToHandlePagination() {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { service } = __paginationOptions;\n\n const links = service.__links;\n if (links && links?.next) return true;\n }\n return false;\n }\n\n public onHandlePagination() {\n const { __paginationOptions } = this;\n\n if (__paginationOptions) {\n const { service } = __paginationOptions;\n service.doPagination();\n }\n }\n}\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 governmentIdRfc: Validators.documentMX,\n documentBR: Validators.documentBR,\n documentCL: Validators.documentCL,\n documentMX: Validators.documentMX,\n date: Validators.date,\n minYears: (param: number) => {\n return Validators.minYears(param);\n },\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 differentFromZero: Validators.differentFromZero,\n fullName: Validators.validateFullName,\n containsNumber: Validators.containsNumber,\n min: (param: number) => {\n return Validators_.min(param);\n },\n max: (param: number) => {\n return Validators_.max(param);\n }\n};\n","import { Directive, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { Subject } from 'rxjs';\nimport { debounceTime, 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 @Input() enableListenerFormChange = false;\n\n @Output() onFormChange = new EventEmitter<any>();\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 if (this.enableListenerFormChange) {\n this._form.markAsUntouched();\n this._form.valueChanges\n .pipe(\n debounceTime(400),\n takeUntil(this.__unsubscribeAll)\n )\n .subscribe(() => {\n this.onFormChange.next(this._form)\n });\n }\n }\n\n ngOnChanges() {\n if (!this._form) {\n this._form = this.buildForm();\n }\n this.fillValues();\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MonkeyUtils } from 'monkey-style-guide';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\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 @Input() isLoading: boolean = false;\n\n @Input() enableListenerFormChange = false;\n\n @Output() onFormChange = new EventEmitter<any>();\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 if (this.enableListenerFormChange) {\n this._form.markAsUntouched();\n this._form.valueChanges\n .pipe(\n debounceTime(400),\n takeUntil(this.__unsubscribeAll)\n )\n .subscribe(() => {\n this.onFormChange.next(this._form)\n });\n }\n }\n\n ngOnChanges() {\n if (!this._form) {\n this._form = this.createControl();\n }\n this.fillValues();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, OnInit } from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { BaseComponent } from './base-component';\n\n@Directive({\n selector: '[baseScrollComponent]'\n})\nexport abstract class BaseScrollComponent extends BaseComponent implements OnInit {\n private routeScrollPositions: { [url: string]: number } = {};\n\n constructor(private _pId: Object, private _rt: Router) {\n super();\n }\n\n private saveScroll(url: string) {\n const element: any = document.getElementById('container-3');\n this.routeScrollPositions[url] = element.scrollTop;\n }\n\n private restoreScroll(url: string) {\n const savedScroll = this.routeScrollPositions[url];\n const element: any = document.getElementById('container-3');\n if (!savedScroll) {\n return;\n }\n\n element.scrollTop = savedScroll;\n }\n\n private addScrollTopListeners() {\n if ('scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n\n this._rt.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.saveScroll(this._rt.url);\n } else if (event instanceof NavigationEnd) {\n setTimeout(() => {\n this.restoreScroll(event.url);\n });\n }\n });\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this._pId)) {\n this.addScrollTopListeners();\n }\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 const { _form } = this;\n if (_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, _form);\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\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [mask]=\"_field?.mask\" [prefix]=\"_field?.prefix\" [name]=\"_field?.name\"\n [formControl]=\"_form.controls[_field?.name]\" [placeholder]=\"_field?.placeholder | translate\"\n [helperMessage]=\"_field?.helperMessage | translate\" [label]=\"_field?.label | translate\"\n [type]=\"_field?.type\" #inputElement (onChange)=\"onChange($event)\"\n [onlyNumber]=\"_field?.onlyNumber\" [currency]=\"_field?.currency\" [maxLength]=\"_field?.maxLength\"\n [maxDateToday]=\"_field?.maxDateToday\"\n [minYears]=\"_field?.minYears\">\n</monkey-input>\n","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\"\n [helperMessage]=\"_field?.helperMessage | translate\"\n [placeholder]=\"_field?.placeholder | translate\" [icon]=\"_field?.icon\"\n (onChange)=\"onChange($event)\" [internationalNumber]=\"_field?.internationalNumber\"\n errorMessage=\"{{ _formErrors[_field?.name]?.firstMessage | translate }} {{ _formErrors[_field?.name]?.lastMessage }}\"\n [maxLength]=\"_field?.maxLength\" [formControl]=\"_form.controls[_field?.name]\" #inputElement>\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\n *ngFor=\"let value of _field?.value\"\n [label]=\"value.description | translate\"\n [attr.data-testid]=\"'option-' + value.value.toString().toLowerCase()\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-radiobutton>\n","import {\n Component,\n HostBinding,\n Input,\n OnInit,\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 implements OnInit {\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 ngOnInit(): void {\n if (this._field && this._field?.startValues) {\n this.onHandleGenericLoad();\n }\n }\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 OnInit,\n EventEmitter,\n ViewEncapsulation\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MECXFieldConfig } 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 implements OnInit {\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 @Input() set options(value: any[]) {\n this._options = value;\n }\n\n @HostBinding('class')\n get className() {\n return this._field?.style?.class;\n }\n\n _onHandleOptions = new EventEmitter<any>();\n\n _options: any[] = [];\n\n ngOnInit(): void {\n if (this._field && this._field?.startValues) {\n this.onHandleGenericLoad();\n }\n }\n\n onHandleGenericLoad() {\n const { _form, _field, self } = this;\n if (_form?.disabled || !_field || !_field?.functions?.onHandleGenericLoad) return;\n const { name } = _field;\n const { func, url } = _field?.functions?.onHandleGenericLoad || {\n func: null,\n url: ''\n };\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._options = 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 && !_options?.length\"\n enableClick=\"false\">\n </monkey-option>\n <monkey-option *ngFor=\"let value of (_field?.value || _options)\" [label]=\"value.description | translate\"\n [value]=\"value.value\">\n </monkey-option>\n</monkey-select-search>","import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\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: 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 this.componentRef.location.nativeElement.dataset.testid = `mecx-dynamic-${this.field?.fieldType}-${this.field?.name}`;\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","<ng-container *ngIf=\"isLoading\">\n <div class=\"input-loading\" *ngFor=\"let item of [1,2,3,4,5,6,7]\"></div>\n</ng-container>\n\n<form name=\"form\" [formGroup]=\"_form\" *ngIf=\"_form && !isLoading\">\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, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenuChildren, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-date-with-action',\n templateUrl: './date-with-action.component.html',\n styleUrls: ['./date-with-action.component.scss']\n})\nexport class MECXFilterSelectedItemDateWithActionComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenuChildren = null;\n\n _date = '';\n\n private onHandleSelectedValue({ field, getValue }: any) {\n const value = getValue()?.[field];\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n this._date = value;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _date | monkeyecxFormatDateTimelapse: false }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-date-range',\n templateUrl: './date-range.component.html',\n styleUrls: ['./date-range.component.scss']\n})\nexport class MECXFilterSelectedItemDateRangeComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n _startDate = '';\n\n _endDate = '';\n\n private onHandleSelectedValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (value && JSON.stringify(value) !== '{}') {\n const objDates = JSON.parse(value);\n this._startDate = objDates?.startDate;\n this._endDate = objDates?.endDate;\n }\n } catch (e) {\n const objDates = JSON.parse(value?.dates);\n this._startDate = objDates?.startDate;\n this._endDate = objDates?.endDate;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _startDate | monkeyecxFormatDateTimelapse: false }} -\n{{ _endDate | monkeyecxFormatDateTimelapse: false }}","import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-children',\n templateUrl: './children.component.html',\n styleUrls: ['./children.component.scss']\n})\nexport class MECXFilterSelectedItemChildrenComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onShow = new EventEmitter<any>();\n\n @Output() onRemove = new EventEmitter<any>();\n\n _child: any = null;\n\n constructor(private elRef: ElementRef) {\n // not to do\n }\n\n private validateValue(value: any) {\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n }\n\n private onHandleSelectedValue({ children }: any) {\n const found = children.find(({ field, getValue }: any) => {\n return this.validateValue(getValue()?.[field]);\n });\n if (!found) {\n this.elRef.nativeElement.remove();\n return;\n }\n this._child = found;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","<div class=\"box\">\n <div class=\"data\">\n {{ option.label | translate }}\n </div>\n <div class=\"value\" [id]=\"'mecx-filter-selected-item-'+option?.field\" (click)=\"onShow.next()\">\n <ng-container *ngIf=\"option?.type as type\">\n <ng-container [ngSwitch]=\"type+'-'+_child?.type\">\n <mecx-filter-selected-item-date-with-action *ngSwitchCase=\"'date-with-action'\"\n [option]=\"_child\">\n </mecx-filter-selected-item-date-with-action>\n <mecx-filter-selected-item-date-range *ngSwitchCase=\"'date-date-range'\" [option]=\"_child\">\n </mecx-filter-selected-item-date-range>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"action\" (click)=\"onShow.next()\">\n <monkey-icon icon=\"arrow-right-14\" color=\"#4B4A53\"></monkey-icon>\n </div>\n</div>","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-currency',\n templateUrl: './currency.component.html',\n styleUrls: ['./currency.component.scss']\n})\nexport class MECXFilterSelectedItemCurrencyComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n _value: any = null;\n\n private onHandleSelectedValue({ value }: any) {\n this._value = value;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _value | monkeyecxFormatCurrency }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-value-range',\n templateUrl: './value-range.component.html',\n styleUrls: ['./value-range.component.scss']\n})\nexport class MECXFilterSelectedItemValueRangeComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n _min = '';\n\n _max = '';\n\n _hasFilter = true;\n\n private onHandleSelectedValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (value && JSON.stringify(value) !== '{}') {\n const objValue = JSON.parse(value);\n this._min = objValue?.min;\n this._max = objValue?.max;\n\n if (this._min === null && this._max === null) {\n this._hasFilter = false;\n }\n }\n } catch (e) {\n const objValue = JSON.parse(value);\n this._min = objValue?.min;\n this._max = objValue?.max;\n this._hasFilter = true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","<ng-container *ngIf=\"_hasFilter\">\n {{ _min }} -\n {{ _max }}\n</ng-container>\n\n<ng-container *ngIf=\"!_hasFilter\"> {{ 'FIELD.WITHOUT-FILTER' | translate }} </ng-container>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss']\n})\nexport class MECXFilterSelectedItemInputComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n _value: any = null;\n\n private onHandleSelectedValue({ value }: any) {\n this._value = value;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _value }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-status',\n templateUrl: './status.component.html',\n styleUrls: ['./status.component.scss']\n})\nexport class MECXFilterSelectedItemStatusComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Input() labelMoreValues: string;\n\n _selectedValue = '';\n\n _labelMoreValues = '';\n\n private onHandleSelectedValue({ value, i18n }: any) {\n const { labelMoreValues } = this;\n const selected = `${value}`.split(',');\n\n this._selectedValue = `${i18n}${selected[0]}`.trim();\n if (selected.length >= 2) {\n this._labelMoreValues = `, ${labelMoreValues} ${selected.length - 1}`;\n } else this._labelMoreValues = '';\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _selectedValue | translate }}{{ _labelMoreValues }}","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item-status-radio',\n templateUrl: './status-radio.component.html',\n styleUrls: ['./status-radio.component.scss']\n})\nexport class MECXFilterSelectedItemStatusRadioComponent implements OnChanges {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n _selectedValue = '';\n\n private onHandleSelectedValue({ value, i18n }: any) {\n this._selectedValue = `${i18n}${value}`.trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n}\n","{{ _selectedValue | translate }}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-children',\n templateUrl: './children.component.html',\n styleUrls: ['./children.component.scss']\n})\nexport class MECXFilterOptionsChildrenComponent implements OnInit, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n @Output() onShow = new EventEmitter<any>();\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const {\n eventHandle,\n onSubmit,\n option: { field }\n } = this;\n\n this.eventSubscription = eventHandle.pipe(debounceTime(100)).subscribe((value: any) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n onHandleChildrenAction(child: any) {\n const { field, type, action } = child;\n\n if (type === 'with-action') {\n this.eventHandle.next(\n JSON.stringify({\n [field]: action()\n })\n );\n } else {\n this.onShow.next(child);\n }\n }\n\n onHandleValidateSelected({ field, getValue }: any) {\n return !!getValue()?.[field];\n }\n}\n","<ng-container *ngFor=\"let child of option?.children\">\n <div class=\"item\" (click)=\"onHandleChildrenAction(child)\"\n [class.selected]=\"onHandleValidateSelected(child)\">\n {{ child.label | translate }}\n </div>\n</ng-container>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-currency',\n templateUrl: './currency.component.html',\n styleUrls: ['./currency.component.scss']\n})\nexport class MECXFilterOptionsCurrencyComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value = 0;\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: number) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this._value = currentValue?.value;\n }\n }\n }\n\n onChangeFilter(value: number) {\n this.eventHandle.next(value);\n }\n}\n","<monkey-input currency=\"true\" type=\"text\" maxLength=\"25\" [(value)]=\"_value\"\n (onChange)=\"onChangeFilter($event)\">\n</monkey-input>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren, MonkeyEcxUtils } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-date-range',\n templateUrl: './date-range.component.html',\n styleUrls: ['./date-range.component.scss']\n})\nexport class MECXFilterOptionsDateRangeComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value: any = {\n startDate: null,\n endDate: null\n };\n\n _form: FormGroup;\n\n _moveDaysForward = true;\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n private onHandleSelectedValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\n this._value = JSON.parse(value);\n }\n } catch (e) {\n // not to do\n }\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: number) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n\n onChangeFilter(value: { startDate: string, endDate: string }) {\n if (!value?.endDate) return;\n this.eventHandle.next(JSON.stringify(value));\n }\n}\n","<monkey-date-range-picker [(value)]=\"_value\" [i18n]=\"'CALENDAR' | translate\"\n [moveDaysForward]=\"_moveDaysForward\" (onChange)=\"onChangeFilter($event)\">\n</monkey-date-range-picker>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss']\n})\nexport class MECXFilterOptionsInputComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value = '';\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: string) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this._value = currentValue?.value;\n }\n }\n }\n\n onChangeFilter(value: number) {\n this.eventHandle.next(value);\n }\n}\n","<monkey-input type=\"text\" maxLength=\"255\" [(value)]=\"_value\"\n (onChange)=\"onChangeFilter($event)\">\n</monkey-input>","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-status',\n templateUrl: './status.component.html',\n styleUrls: ['./status.component.scss']\n})\nexport class MECXFilterOptionsStatusComponent implements OnInit, OnChanges, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _value = '';\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n private verifySelected(value: string): boolean {\n return this._value?.includes(value);\n }\n\n ngOnInit() {\n const { eventHandle, onSubmit, option: { field } } = this;\n\n this.eventSubscription = eventHandle\n .pipe(debounceTime(800))\n .subscribe((value: string) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.option) {\n const { currentValue } = changes.option;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this._value = currentValue?.value;\n }\n }\n }\n\n onHandleChecked(cmp: string) {\n const { _value } = this;\n return `${_value}`.split(',')?.indexOf(cmp) >= 0;\n }\n\n onChangeFilter(event: any, value: string): void {\n event.preventDefault();\n event.stopPropagation();\n\n const selected = !this.verifySelected(value);\n const filters: string[] = this._value?.split(',') || [];\n if (!selected) {\n filters.splice(filters.indexOf(value), 1);\n } else {\n filters.push(value);\n }\n\n this._value = filters?.length ? filters.join(',') : null;\n this.eventHandle.next(this._value);\n }\n}\n","<ng-container *ngFor=\"let op of option?.values\">\n <div class=\"content-status d-flex flex-column\">\n <div class=\"d-flex align-items-center gap\">\n <monkey-checkbox\n type=\"multiple\"\n [description]=\"op?.description | translate\"\n [value]=\"onHandleChecked(op?.value)\"\n (click)=\"onChangeFilter($event, op?.value)\"\n [attr.data-testid]=\"'mecx-filter-status-btn-' + op?.value?.toLowerCase()\"\n >\n </monkey-checkbox>\n <span class=\"helper\" *ngIf=\"op?.helperMessage\">{{ op?.helperMessage }}</span>\n </div>\n <span class=\"info\" *ngIf=\"op?.infoMessage\">{{ op?.infoMessage }}</span>\n </div>\n</ng-container>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'mecx-filter-options-status-radio',\n templateUrl: './status-radio.component.html',\n styleUrls: ['./status-radio.component.scss']\n})\nexport class MECXFilterOptionsStatusRadioComponent implements OnInit, OnDestroy {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n private eventHandle = new EventEmitter<any>();\n\n private eventSubscription: Subscription;\n\n constructor() {\n // not to do\n }\n\n ngOnInit() {\n const {\n eventHandle,\n onSubmit,\n option: { field }\n } = this;\n\n this.eventSubscription = eventHandle.pipe(debounceTime(800)).subscribe((value: string) => {\n onSubmit.next({ [field]: value });\n });\n }\n\n ngOnDestroy() {\n this.eventSubscription.unsubscribe();\n }\n\n onChangeFilter(event: any): void {\n this.eventHandle.next(event);\n }\n}\n","<monkey-radiobutton [value]=\"option.value\" (onChange)=\"onChangeFilter($event)\">\n <monkey-option\n *ngFor=\"let op of option?.values\"\n [label]=\"op?.description | translate\"\n [value]=\"op?.value\"\n >\n </monkey-option>\n</monkey-radiobutton>\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { FormControl, FormGroup, Validators as Validators_ } from '@angular/forms';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuValidators } from 'monkey-front-core';\nimport { BaseComponent } from '../../../../base/base-component';\nimport { validators } from '../../../../base/base-validators';\n\n@Component({\n selector: 'mecx-filter-options-value-range',\n templateUrl: './value-range.component.html',\n styleUrls: ['./value-range.component.scss']\n})\nexport class MECXFilterOptionsValueRangeComponent\n extends BaseComponent\n implements AfterViewInit, OnChanges\n{\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _max = '';\n\n _min = '';\n\n _form: FormGroup = new FormGroup({\n max: new FormControl(''),\n min: new FormControl('')\n });\n\n _selected = 'with';\n\n _hasValue: boolean = true;\n\n private eventHandle = new EventEmitter<any>();\n\n constructor() {\n super();\n }\n\n private bindValidations(validations: MonkeyEcxFilterMenuValidators[]) {\n if (validations.length > 0) {\n const validList: any[] = [];\n validations.forEach((valid: MonkeyEcxFilterMenuValidators) => {\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 ngAfterViewInit(): void {\n const { option } = this;\n\n this._form.get('max').setValidators([this.bindValidations(option.validators || [])]);\n this._form.get('max').updateValueAndValidity();\n this._form.get('min').setValidators([this.bindValidations(option.validators || [])]);\n this._form.get('min').updateValueAndValidity();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const rawValue = changes.option?.currentValue?.value;\n\n if (!rawValue) {\n this._selected = 'with';\n return;\n }\n\n const obj = JSON.parse(rawValue);\n\n const hasContent = obj?.min || obj?.max;\n\n this._selected = hasContent ? 'with' : 'without';\n\n if (hasContent) {\n this._form.patchValue({\n max: obj?.max ?? '',\n min: obj?.min ?? ''\n });\n } else {\n this._hasValue = false;\n this._form.reset();\n }\n }\n\n onChooseOption(value: string) {\n if (value === 'with') {\n this._hasValue = true;\n }\n\n if (value === 'without') {\n this._hasValue = false;\n this._form.reset();\n }\n }\n\n onClearAllInputs() {\n this._form.reset();\n }\n\n onApplyFilter() {\n const { _form } = this;\n this.__monkeyecxFormErrors = null;\n\n if (!this.validateForm(_form)) {\n return;\n }\n\n const { value } = _form;\n let { max, min } = value;\n\n if (!!min && !!max && min > max) {\n this.__monkeyecxFormErrors = {\n min: {\n firstMessage: 'ERRORS.MIN-GREATHER-THAN-MAX',\n lastMessage: ''\n }\n };\n return;\n }\n\n const handleValidators = (param: string) => {\n const found = this.option.validators.find(({ name }) => {\n return name === param;\n });\n\n return found.param || 0;\n };\n\n if (this._selected === 'with') {\n min = min || handleValidators('min');\n max = max || handleValidators('max');\n }\n\n const values = { min, max };\n\n this.onSubmit.next({ [this.option.field]: JSON.stringify(values) });\n this.eventHandle.next({ [this.option.field]: JSON.stringify(values) });\n }\n}\n","<ng-container>\n <div class=\"content\">\n <div class=\"checkbox-container\">\n <monkey-radiobutton\n (onChange)=\"onChooseOption($event)\"\n [(ngModel)]=\"_selected\"\n class=\"d-flex\"\n *ngFor=\"let op of option?.roles\"\n >\n <monkey-option [label]=\"op?.label | translate\" [value]=\"op?.type\"> </monkey-option>\n </monkey-radiobutton>\n </div>\n <form name=\"valueRangeForm\" [formGroup]=\"_form\" class=\"form\">\n <div class=\"inputs-container\" [class.disabled]=\"!_hasValue\">\n <ng-container>\n <monkey-input\n [infoMessage]=\"option?.values?.[0].infoMessage | translate\"\n type=\"text\"\n onlyNumber=\"true\"\n [maxLength]=\"4\"\n [(value)]=\"_min\"\n formControlName=\"min\"\n [placeholder]=\"option?.values?.[0].description | translate\"\n >\n </monkey-input>\n <span class=\"title-muted font-size-xxs mt-2\"> {{ 'FIELD.UNTIL' | translate }} </span>\n <monkey-input\n [infoMessage]=\"option?.values?.[1].infoMessage | translate\"\n type=\"text\"\n onlyNumber=\"true\"\n [maxLength]=\"4\"\n [(value)]=\"_max\"\n formControlName=\"max\"\n [placeholder]=\"option?.values?.[1].description | translate\"\n >\n </monkey-input>\n </ng-container>\n </div>\n </form>\n <span\n class=\"error mt-2\"\n *ngIf=\"\n __monkeyecxFormErrors?.min?.firstMessage\n ? (__monkeyecxFormErrors?.min?.firstMessage | translate) +\n ' ' +\n __monkeyecxFormErrors?.min?.lastMessage\n : __monkeyecxFormErrors?.max?.firstMessage\n ? (__monkeyecxFormErrors?.max?.firstMessage | translate) +\n ' ' +\n __monkeyecxFormErrors?.max?.lastMessage\n : '' as error\n \"\n >\n {{ error }}\n </span>\n <div class=\"separator mt-2\"></div>\n <div class=\"buttons-container\">\n <monkey-button type=\"secondary\" color=\"theme\" (click)=\"onClearAllInputs()\" size=\"sm\">\n {{ 'BUTTONS.CLEAR' | translate }}\n </monkey-button>\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onApplyFilter()\" size=\"sm\">\n {{ 'BUTTONS.APPLY' | translate }}\n </monkey-button>\n </div>\n </div>\n</ng-container>\n","import { Component, EventEmitter, Input, Output, OnInit, AfterViewInit } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren } from 'monkey-front-core';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../base';\n\n@Component({\n selector: 'mecx-filter-options',\n templateUrl: './options.component.html',\n styleUrls: ['./options.component.scss']\n})\nexport class MECXFilterOptionsComponent extends BaseComponent implements OnInit, AfterViewInit {\n @Input() option: MonkeyEcxFilterMenu = null;\n\n @Input() closeDirectly = false;\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onRemove = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n @Output() onShowFromChildren = new EventEmitter<any>();\n\n _showMenu = false;\n\n _isLoading = false;\n\n _hasMoreValues = false;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n constructor() {\n super();\n }\n\n private onHandleLoading(loading = false) {\n this._isLoading = loading;\n }\n\n private onHandleLoadValues(first = false) {\n if (first) {\n this.option?.loadValues?.();\n } else {\n this.option?.loadMoreValues?.();\n }\n }\n\n ngOnInit() {\n const { option } = this;\n\n option?.values$?.()?.pipe(\n takeUntil(this.__unsubscribeAll)\n ).subscribe((data: any) => {\n this.option.values = data;\n });\n\n option?.pagination$?.()?.pipe(\n takeUntil(this.__unsubscribeAll)\n ).subscribe((data: any) => {\n this._hasMoreValues = !!(data?.next);\n });\n\n option?.control$?.()?.pipe(\n takeUntil(this.__unsubscribeAll)\n ).subscribe((data: any) => {\n this.onHandleLoading(data?.isLoading);\n });\n }\n\n ngAfterViewInit() {\n this.onHandleLoadValues(true);\n }\n\n onHandleChildrenAction(child: MonkeyEcxFilterMenuChildren) {\n const { option } = this;\n const { field, action } = child;\n this.onSubmit.next({\n [option.field]: {\n [field]: action()\n }\n });\n }\n\n onHandleSubmitChildren(event: any) {\n this.onSubmit.next(event);\n }\n\n onHandleSubmit(event: any) {\n this.onSubmit.next(event);\n }\n\n onHandleShowMenu() {\n const { closeDirectly } = this;\n if (closeDirectly) {\n this.onClose.next();\n return;\n }\n this._showMenu = true;\n }\n\n onHandleLoadMoreValues() {\n this.onHandleLoadValues();\n }\n}\n","<div class=\"d-flex justify-content-between header\">\n <span class=\"title\">\n {{ option?.label | translate }}\n </span>\n <div\n class=\"close\"\n #actionElement\n (click)=\"onHandleShowMenu()\"\n data-testid=\"mecx-filter-options-btn-handle-show-menu\"\n >\n <monkey-icon icon=\"close-12\" color=\"#474747\"></monkey-icon>\n </div>\n</div>\n<ng-container *ngIf=\"option?.type as type\">\n <ng-container *ngIf=\"option?.children; else withoutChildren\">\n <mecx-filter-options-children\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmitChildren($event)\"\n (onShow)=\"onShowFromChildren.next($event)\"\n >\n </mecx-filter-options-children>\n </ng-container>\n <ng-template #withoutChildren>\n <ng-container [ngSwitch]=\"type\">\n <mecx-filter-options-currency\n *ngSwitchCase=\"'currency'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-currency>\n <mecx-filter-options-date-range\n *ngSwitchCase=\"'date-range'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-date-range>\n <mecx-filter-options-input\n *ngSwitchCase=\"'input'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-input>\n <mecx-filter-options-status\n *ngSwitchCase=\"'status'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-status>\n <mecx-filter-options-status-radio\n *ngSwitchCase=\"'status-radio'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-status-radio>\n\n <mecx-filter-options-value-range\n *ngSwitchCase=\"'value-range'\"\n [option]=\"option\"\n (onSubmit)=\"onHandleSubmit($event)\"\n >\n </mecx-filter-options-value-range>\n </ng-container>\n </ng-template>\n</ng-container>\n\n<div class=\"box-loading\" *ngIf=\"_isLoading\">\n <div class=\"loading\"></div>\n <div class=\"loading\"></div>\n <div class=\"loading\"></div>\n</div>\n\n<div class=\"footer\" *ngIf=\"_hasMoreValues && !_isLoading\">\n <monkey-button\n type=\"tertiary\"\n color=\"theme\"\n [label]=\"'BUTTONS.LOAD-MORE' | translate\"\n (click)=\"onHandleLoadMoreValues()\"\n >\n </monkey-button>\n</div>\n\n<ng-container\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'ltr'\"\n>\n <div class=\"close-menu\">\n <monkey-button\n type=\"tertiary\"\n color=\"error\"\n (click)=\"onRemove.next()\"\n size=\"sm\"\n data-testid=\"mecx-filter-options-btn-remove\"\n >\n {{ 'BUTTONS.REMOVE' | translate }}\n </monkey-button>\n <monkey-button\n type=\"tertiary\"\n color=\"theme\"\n (click)=\"onClose.next()\"\n size=\"sm\"\n data-testid=\"mecx-filter-options-btn-close\"\n >\n {{ 'BUTTONS.CLOSE' | translate }}\n </monkey-button>\n </div>\n</ng-container>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MonkeyEcxFilterMenu } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss']\n})\nexport class MECXFilterSelectedItemComponent {\n @Input() set option(value: MonkeyEcxFilterMenu) {\n this._option = value;\n }\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _option: MonkeyEcxFilterMenu = null;\n\n _showMenu = false;\n\n _actionElement: HTMLElement = null;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n constructor() {\n // not to do\n }\n\n onHandleShowMenu() {\n const { _option } = this;\n this._actionElement = document.getElementById(`mecx-filter-selected-item-${_option?.field}`);\n setTimeout(() => {\n this._showMenu = true;\n }, 0);\n }\n\n onHandleClose() {\n this._showMenu = false;\n this.onClose.next();\n }\n\n onHandleSubmit(event: any) {\n this.onSubmit.next(event);\n }\n\n onHandleRemove() {\n const { _option } = this;\n const { field } = _option;\n this.onSubmit.next({ [field]: null });\n }\n\n onHandleShowFromChildren(event: any) {\n const { _option } = this;\n const { label } = _option;\n\n this.onHandleShowMenu();\n this.onHandleSubmit = (event: any) => {\n this.onSubmit.next({\n [_option.field]: JSON.stringify(event)\n });\n };\n\n this._option = {\n ...event,\n label\n };\n }\n}\n","<ng-container *ngIf=\"_option?.type as type\">\n <ng-container *ngIf=\"_option?.children; else withoutChildren\">\n <mecx-filter-selected-item-children\n [option]=\"_option\"\n (onShow)=\"onHandleShowMenu()\"\n (onRemove)=\"onHandleRemove()\"\n >\n </mecx-filter-selected-item-children>\n </ng-container>\n <ng-template #withoutChildren>\n <div class=\"box\">\n <div class=\"data\">\n {{ _option.label | translate }}\n </div>\n <div\n class=\"value\"\n [id]=\"'mecx-filter-selected-item-' + _option?.field\"\n (click)=\"onHandleShowMenu()\"\n [attr.data-testid]=\"'mecx-filter-selected-item-btn-' + _option?.value?.toLowerCase()\"\n >\n <ng-container [ngSwitch]=\"type\">\n <mecx-filter-selected-item-currency *ngSwitchCase=\"'currency'\" [option]=\"_option\">\n </mecx-filter-selected-item-currency>\n <mecx-filter-selected-item-date-range *ngSwitchCase=\"'date-range'\" [option]=\"_option\">\n </mecx-filter-selected-item-date-range>\n <mecx-filter-selected-item-value-range *ngSwitchCase=\"'value-range'\" [option]=\"_option\">\n </mecx-filter-selected-item-value-range>\n <mecx-filter-selected-item-input *ngSwitchCase=\"'input'\" [option]=\"_option\">\n </mecx-filter-selected-item-input>\n <mecx-filter-selected-item-status\n *ngSwitchCase=\"'status'\"\n [option]=\"_option\"\n [labelMoreValues]=\"'FIELD.AND-MORE' | translate\"\n >\n </mecx-filter-selected-item-status>\n <mecx-filter-selected-item-status-radio *ngSwitchCase=\"'status-radio'\" [option]=\"_option\">\n </mecx-filter-selected-item-status-radio>\n </ng-container>\n </div>\n <div\n class=\"action\"\n (click)=\"onHandleShowMenu()\"\n data-testid=\"mecx-filter-selected-item-btn-arrow-right\"\n >\n <monkey-icon icon=\"arrow-right-14\" color=\"#4B4A53\"></monkey-icon>\n </div>\n </div>\n </ng-template>\n</ng-container>\n<ng-container\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n>\n <mecx-filter-options\n [option]=\"_option\"\n (onClose)=\"onHandleClose()\"\n (onRemove)=\"onHandleRemove()\"\n (onSubmit)=\"onHandleSubmit($event)\"\n (onShowFromChildren)=\"onHandleShowFromChildren($event)\"\n >\n </mecx-filter-options>\n</ng-container>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-selected',\n templateUrl: './selected.component.html',\n styleUrls: ['./selected.component.scss']\n})\nexport class MECXFilterSelectedComponent implements OnChanges {\n @Input() model: MonkeyEcxFilterMenu[] = [];\n\n @Output() onOpenFilters = new EventEmitter<any>();\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _model: MonkeyEcxFilterMenu[] = [];\n\n constructor() {\n // not to do\n }\n\n private validateValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n } catch (e) {\n // not to do\n }\n return false;\n }\n\n private handleValidateChildrenValue(value: any[]) {\n return value.find((data: any) => {\n return this.validateValue(data);\n });\n }\n\n private onHandleSelectedValue(value: any[]) {\n this._model = value?.map((_: any) => {\n const { children } = _;\n let obj = null;\n if (children && this.handleValidateChildrenValue(children)) {\n obj = {\n ..._,\n children\n };\n } else if (this.validateValue(_)) {\n obj = {\n ..._,\n ...obj || {}\n };\n }\n\n return obj;\n })?.filter((_) => {\n return _;\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.model) {\n const { currentValue } = changes.model;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleSelectedValue(currentValue);\n }\n }\n }\n\n onHandleClose() {\n this.onClose.next();\n }\n\n onHandleSubmit(event: any) {\n this.onSubmit.next(event);\n }\n}\n","<mecx-filter-selected-item *ngFor=\"let option of _model\" (onSubmit)=\"onHandleSubmit($event)\"\n (onClose)=\"onHandleClose()\" [option]=\"option\">\n</mecx-filter-selected-item>","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { MonkeyEcxFilterMenu, MonkeyEcxFilterMenuChildren, MonkeyEcxUtils } from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss']\n})\nexport class MECXFilterMenuComponent implements OnChanges {\n @Input() model: MonkeyEcxFilterMenu[] = [];\n\n @Output() onClose = new EventEmitter<any>();\n\n @Output() onSubmit = new EventEmitter<any>();\n\n _onHandleSubmit: Function = null;\n\n _model: MonkeyEcxFilterMenu[] = [];\n\n _showMenu = false;\n\n _menuOption: MonkeyEcxFilterMenu | MonkeyEcxFilterMenuChildren = null;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n constructor() {\n // not to do\n }\n\n private validateValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n } catch (e) {\n // not to do\n }\n return false;\n }\n\n private onHandleSubmitValue(value: any) {\n this.onSubmit.next(value);\n this.onHandleClose();\n }\n\n private onHandleMenus(value: any[]) {\n this._model = value?.map((_: any) => {\n const { children } = _;\n let obj = null;\n if (children) {\n obj = {\n ..._,\n children: children?.filter((_: any) => {\n return !this.validateValue(_);\n })\n };\n } else if (!this.validateValue(_)) {\n obj = {\n ..._,\n ...obj || {}\n };\n }\n\n return obj;\n })?.filter((_) => {\n return _;\n });\n\n this._model = this._model?.sort((a, b) => {\n const groupA = `${a?.group}`.toLowerCase();\n const groupB = `${b?.group}`.toLowerCase();\n return groupA !== groupB ? 1 : -1;\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.model) {\n const { currentValue } = changes.model;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.onHandleMenus(currentValue);\n }\n }\n }\n\n onHandleChildrenAction(option: MonkeyEcxFilterMenu, child: MonkeyEcxFilterMenuChildren) {\n const { field, type, action } = child;\n if (type === 'with-action') {\n this.onHandleSubmitValue({\n [option.field]: JSON.stringify({\n [field]: action()\n })\n });\n } else {\n this._showMenu = true;\n this._menuOption = child;\n this.onHandleSubmit = (event: any) => {\n this.onHandleSubmitValue({\n [option.field]: JSON.stringify(event)\n });\n };\n }\n }\n\n onHandleShowMenu(option: MonkeyEcxFilterMenu) {\n this._showMenu = true;\n this._menuOption = option;\n }\n\n onHandleClose() {\n this._showMenu = false;\n this.onClose.next();\n }\n\n onHandleSubmit(event: any) {\n this.onHandleSubmitValue(event);\n }\n}\n","<div class=\"d-flex flex-column\" #actionElement>\n <ng-container *ngFor=\"let menu of _model; let index = index\">\n <ng-container *ngIf=\"menu?.children; else withoutChildren\">\n <div class=\"item no-action\">\n {{ menu.label | translate }}\n </div>\n <div class=\"separator\"></div>\n <ng-container *ngFor=\"let child of menu?.children\">\n <div\n class=\"item children\"\n (click)=\"onHandleChildrenAction(menu, child)\"\n [attr.data-testid]=\"\n 'mecx-filter-item-children-btn-' +\n menu?.field?.toLowerCase() +\n '-' +\n child?.field?.toLowerCase()\n \"\n >\n {{ child.label | translate }}\n </div>\n </ng-container>\n </ng-container>\n <ng-template #withoutChildren>\n <div\n class=\"item\"\n (click)=\"onHandleShowMenu(menu)\"\n [attr.data-testid]=\"'mecx-filter-menu-btn-' + menu?.label?.toLowerCase()\"\n >\n {{ menu.label | translate }}\n </div>\n </ng-template>\n <ng-container *ngIf=\"_model[index + 1]?.group as next; _model: [index]?.group as current\">\n <div class=\"separator\" *ngIf=\"next !== current\"></div>\n </ng-container>\n </ng-container>\n</div>\n<ng-container\n *monkeyecxPopover=\"_showMenu; target: $any(actionElement); closed: closeMenu; dir: 'rt'\"\n>\n <mecx-filter-options\n [option]=\"_menuOption\"\n (onClose)=\"onHandleClose()\"\n (onSubmit)=\"onHandleSubmit($event)\"\n [closeDirectly]=\"true\"\n ></mecx-filter-options>\n</ng-container>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport {\n MonkeyEcxFilterMenu,\n MonkeyEcxFilterOrder,\n MonkeyEcxFilterOrdersList,\n MonkeyEcxUtils\n} from 'monkey-front-core';\n\n@Component({\n selector: 'mecx-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss']\n})\nexport class MECXFilterComponent implements OnChanges {\n @Input() searchPlaceholder = '';\n\n @Input() orderPlaceholder = '';\n\n @Input() menus: MonkeyEcxFilterMenu[] = [];\n\n @Input() orders: MonkeyEcxFilterOrder[] = [];\n\n @Input() enableSearch = true;\n\n @Input() enableAddFilter = true;\n\n @Input() enableOrder = true;\n\n @Input() complementTemplate: TemplateRef<any>;\n\n @Input()\n set search(value: string) {\n this._search = value;\n }\n\n @Input()\n set order(value: any) {\n this._order = value;\n }\n\n @Input()\n set ordersList(value: any[]) {\n this._ordersList = value;\n }\n\n @Input() isLoading = false;\n\n @Output() onFilter = new EventEmitter<any>();\n\n _order: MonkeyEcxFilterOrder = null;\n\n _search = '';\n\n _ordersList: MonkeyEcxFilterOrdersList | any = null;\n\n _showMenu = false;\n\n _showOrder = false;\n\n _hasFilterByMenu = false;\n\n _actionElement: HTMLElement = null;\n\n _actionElementOrder: HTMLElement = null;\n\n closeMenu = () => {\n this._showMenu = false;\n };\n\n closeOrder = () => {\n this._showOrder = false;\n };\n\n constructor() {\n // not to do\n }\n\n private validateValue({ field, value, getValue }: any) {\n try {\n value = value || getValue()?.[field];\n if (!value) return false;\n if (typeof value === 'object') {\n return value && JSON.stringify(value) !== '{}';\n }\n return MonkeyEcxUtils.persistNullEmptyUndefined(value);\n } catch (e) {\n // not to do\n }\n return false;\n }\n\n private handleFilters() {\n const { menus } = this;\n let found = menus.find((_: any) => {\n return this.validateValue(_);\n });\n if (!found) {\n found = menus.find(({ children }) => {\n return (children || [])?.find((_: any) => {\n return this.validateValue(_);\n });\n });\n }\n this._hasFilterByMenu = !!found;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.menus) {\n const { currentValue } = changes.menus;\n if (currentValue && JSON.stringify(currentValue) !== '{}') {\n this.handleFilters();\n }\n }\n }\n\n onSearchFilter(event: string) {\n this.onFilter.next({ search: event });\n }\n\n onClearFilter() {\n this._search = '';\n this.onFilter.next({ search: null });\n }\n\n onHandleSubmit(event: any) {\n this.onFilter.next(event);\n }\n\n onHandleShowMenu() {\n this._actionElement = document.getElementById('mecx-filters-add-filter');\n setTimeout(() => {\n this._showMenu = true;\n }, 0);\n }\n\n onHandleClose() {\n this._showMenu = false;\n }\n\n onHandleShowOrders(el: HTMLElement) {\n this._actionElementOrder = el;\n setTimeout(() => {\n this._showOrder = true;\n }, 10);\n }\n\n onHandleOrder(event: any, field: string = 'sort') {\n this.onFilter.next({ [field]: event });\n }\n}\n","<div class=\"d-flex full-width flex-column d-flex-gap-2 filter-content\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between full-width\">\n <div class=\"d-flex full-width d-flex-gap-2 filter-input\">\n <ng-container *ngIf=\"enableSearch\">\n <monkey-input-filter\n [placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"onSearchFilter($event)\"\n icon=\"search-16\"\n iconPosition=\"left\"\n [(value)]=\"_search\"\n data-testid=\"mecx-filter-input\"\n >\n </monkey-input-filter>\n </ng-container>\n <ng-container *ngIf=\"!_hasFilterByMenu\">\n <div *ngIf=\"enableAddFilter\" class=\"d-flex actions\" id=\"mecx-filters-add-filter\">\n <monkey-button\n type=\"filter\"\n color=\"border\"\n (click)=\"onHandleShowMenu()\"\n icon=\"more-16\"\n iconPosition=\"right\"\n data-testid=\"mecx-filter-btn-add-filter\"\n >\n {{ 'BUTTONS.ADD-FILTER' | translate }}\n </monkey-button>\n </div>\n </ng-container>\n </div>\n <div class=\"order hidden-sm hidden-xs\">\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\n <ng-container *ngIf=\"!!complementTemplate\">\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"enableOrder\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"_hasFilterByMenu\">\n <div class=\"separator\"></div>\n <div class=\"d-flex full-width d-flex-gap-2 align-items-end\">\n <mecx-filter-selected\n class=\"d-flex-gap-2\"\n (onSubmit)=\"onHandleSubmit($event)\"\n (onClose)=\"onHandleClose()\"\n [model]=\"menus\"\n ></mecx-filter-selected>\n <div class=\"more-filters\">\n <monkey-button\n type=\"filter\"\n color=\"border\"\n icon=\"more-16\"\n id=\"mecx-filters-add-filter\"\n (click)=\"onHandleShowMenu()\"\n >\n </monkey-button>\n </div>\n </div>\n </ng-container>\n <div class=\"order hidden-md hidden-lg\">\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\n <ng-container *ngIf=\"!!complementTemplate\">\n <ng-container *ngTemplateOutlet=\"complementTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"enableOrder\">\n <ng-container *ngTemplateOutlet=\"orderBy\"></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<mecx-filter-menu\n *monkeyecxPopover=\"_showMenu; target: $any(_actionElement); closed: closeMenu; dir: 'ltr'\"\n (onSubmit)=\"onHandleSubmit($event)\"\n (onClose)=\"onHandleClose()\"\n [model]=\"menus\"\n>\n</mecx-filter-menu>\n\n<ng-template #orderBy>\n <ng-container *ngIf=\"!(_ordersList?.length > 0); else orderByList\">\n <div class=\"d-flex align-items-center flex-column flex-sm-row\">\n <monkey-select-filter\n (onChange)=\"onHandleOrder($event)\"\n [placeholder]=\"orderPlaceholder | translate\"\n type=\"none\"\n [(value)]=\"_order\"\n data-testid=\"mecx-filter-btn-order\"\n >\n <monkey-option\n *ngFor=\"let ordBy of orders\"\n [label]=\"ordBy?.label | translate\"\n [value]=\"ordBy?.value\"\n [attr.data-testid]=\"'mecx-filter-btn-order-' + ordBy?.value?.toLowerCase()\"\n >x\n </monkey-option>\n </monkey-select-filter>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #orderByList>\n <div class=\"d-flex full-width justify-content-end\">\n <div #ordersFilterMenu (click)=\"onHandleShowOrders(ordersFilterMenu)\">\n <monkey-button\n type=\"filter\"\n color=\"border\"\n icon=\"arrow-down-16\"\n iconPosition=\"right\"\n data-testid=\"mecx-filter-btn-ordination\"\n >\n {{ 'BUTTONS.ORDINATION' | translate }}\n </monkey-button>\n </div>\n </div>\n <div\n class=\"ml-1\"\n *monkeyecxPopover=\"\n _showOrder;\n target: $any(_actionElementOrder);\n closed: closeOrder;\n dir: 'rtl'\n \"\n >\n <div class=\"drop-down-orders-filter pt-4\">\n <ng-container *ngFor=\"let item of _ordersList\">\n <div class=\"px-4\">\n <span>{{ item.label | translate }}</span>\n <monkey-radiobutton [value]=\"item.value\" (onChange)=\"onHandleOrder($event, item.field)\">\n <monkey-option\n *ngFor=\"let ordBy of item.values\"\n [label]=\"ordBy?.label | translate\"\n [value]=\"ordBy?.value\"\n [attr.data-testid]=\"'mecx-filter-btn-ordination-' + ordBy?.value?.toLowerCase()\"\n >\n </monkey-option>\n </monkey-radiobutton>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyEcxDirectivesModule } from 'monkey-front-core';\nimport {\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXFilterOptionsChildrenComponent } from './children';\nimport { MECXFilterOptionsCurrencyComponent } from './currency';\nimport { MECXFilterOptionsDateRangeComponent } from './date-range';\nimport { MECXFilterOptionsInputComponent } from './input';\nimport { MECXFilterOptionsComponent } from './options.component';\nimport { MECXFilterOptionsStatusComponent } from './status';\nimport { MECXFilterOptionsStatusRadioComponent } from './status-radio';\nimport { MECXFilterOptionsValueRangeComponent } from './value-range';\n\n@NgModule({\n declarations: [\n MECXFilterOptionsChildrenComponent,\n MECXFilterOptionsComponent,\n MECXFilterOptionsCurrencyComponent,\n MECXFilterOptionsDateRangeComponent,\n MECXFilterOptionsInputComponent,\n MECXFilterOptionsStatusComponent,\n MECXFilterOptionsStatusRadioComponent,\n MECXFilterOptionsValueRangeComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyRadioButtonModule,\n MonkeyDateRangePickerModule,\n MonkeyEcxDirectivesModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forChild()\n ],\n exports: [\n MECXFilterOptionsChildrenComponent,\n MECXFilterOptionsComponent,\n MECXFilterOptionsCurrencyComponent,\n MECXFilterOptionsDateRangeComponent,\n MECXFilterOptionsInputComponent,\n MECXFilterOptionsStatusComponent,\n MECXFilterOptionsStatusRadioComponent,\n MECXFilterOptionsValueRangeComponent\n ]\n})\nexport class MECXFilterOptionsModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MonkeyEcxDirectivesModule } from 'monkey-front-core';\nimport {\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXFilterOptionsModule } from '../options';\nimport { MECXFilterMenuComponent } from './menu.component';\n\n@NgModule({\n declarations: [MECXFilterMenuComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyEcxDirectivesModule,\n MonkeyButtonModule,\n MonkeyBadgeModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyCheckboxModule,\n MonkeySelectModule,\n MonkeyOptionModule,\n MonkeyDateRangePickerModule,\n RouterModule,\n MECXFilterOptionsModule,\n TranslateModule.forChild()\n ],\n exports: [MECXFilterMenuComponent]\n})\nexport class MECXFilterMenuModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';\nimport {\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXFilterOptionsModule } from '../options';\nimport {\n MECXFilterSelectedItemChildrenComponent,\n MECXFilterSelectedItemComponent,\n MECXFilterSelectedItemCurrencyComponent,\n MECXFilterSelectedItemDateRangeComponent,\n MECXFilterSelectedItemDateWithActionComponent,\n MECXFilterSelectedItemInputComponent,\n MECXFilterSelectedItemStatusComponent,\n MECXFilterSelectedItemStatusRadioComponent\n} from './item';\nimport { MECXFilterSelectedItemValueRangeComponent } from './item/value-range';\nimport { MECXFilterSelectedComponent } from './selected.component';\n\n@NgModule({\n declarations: [\n MECXFilterSelectedComponent,\n MECXFilterSelectedItemChildrenComponent,\n MECXFilterSelectedItemComponent,\n MECXFilterSelectedItemCurrencyComponent,\n MECXFilterSelectedItemDateRangeComponent,\n MECXFilterSelectedItemValueRangeComponent,\n MECXFilterSelectedItemDateWithActionComponent,\n MECXFilterSelectedItemInputComponent,\n MECXFilterSelectedItemStatusComponent,\n MECXFilterSelectedItemStatusRadioComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MECXFilterOptionsModule,\n MonkeyBadgeModule,\n MonkeyButtonModule,\n MonkeyCheckboxModule,\n MonkeyDateRangePickerModule,\n MonkeyEcxDirectivesModule,\n MonkeyEcxPipesModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeySelectModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forChild()\n ],\n exports: [MECXFilterSelectedComponent]\n})\nexport class MECXFilterSelectedModule {}\n","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 {\n MonkeyButtonModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule\n} from 'monkey-style-guide';\nimport { MECXFilterComponent } from './filter.component';\nimport { MECXFilterMenuModule } from './menu';\nimport { MECXFilterSelectedModule } from './selected';\n\n@NgModule({\n declarations: [MECXFilterComponent],\n imports: [\n CommonModule,\n FormsModule,\n MECXFilterMenuModule,\n MECXFilterSelectedModule,\n MonkeyButtonModule,\n MonkeyEcxDirectivesModule,\n MonkeyEcxPipesModule,\n MonkeyIconModule,\n MonkeyInputModule,\n MonkeyOptionModule,\n MonkeyRadioButtonModule,\n MonkeySelectModule,\n ReactiveFormsModule,\n TranslateModule.forChild()\n ],\n exports: [MECXFilterComponent]\n})\nexport class MECXFilterModule {}\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 @Input() i18n: any = 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>{{ i18n?.TITLE }}</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\"\n [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 {{ i18n?.TYPES?.[validators.regex] }}\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 {{ i18n?.LABELS?.[_stepPassword] }}\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","export class ProductsModel {\n url: string;\n\n token: string;\n\n username: string;\n\n ownerGovernmentId: string;\n\n ownerName: string;\n\n product: string;\n\n name: string;\n\n type: string;\n\n logo: string;\n\n constructor(data?: any) {\n this.url = data?.url;\n this.token = data?.token;\n this.username = data?.username;\n this.ownerGovernmentId = data?.ownerGovernmentId;\n this.ownerName = data?.ownerName;\n this.product = data?.product;\n this.name = data?.name;\n this.type = data?.type;\n this.handleLogo();\n }\n\n private handleLogo() {\n const { product, token, url } = this;\n if (!url) return;\n\n const sufix = {\n SALES_FINANCE: 'SF_',\n SPIKE: 'SF_',\n SUPPLY_CHAIN: 'SF_'\n }[product];\n\n const { hostname } = new URL(url);\n const lastDot = hostname?.lastIndexOf('.');\n const previousLastDot = hostname?.lastIndexOf('.', lastDot - 1);\n const domain = hostname?.substring(previousLastDot + 1, hostname?.length);\n\n const handledToken = token?.replace(sufix, '');\n\n const path = {\n 'monkeyecx.com': 'scf/br',\n 'monkey.exchange': 'scf/br',\n 'monkeyexchange.cl': 'scf/cl',\n 'sales.finance': 'sf',\n 'spike.cash': 'spike',\n 'monkey.credit': 'credit'\n }[domain];\n\n this.logo = `https://assets.monkey.exchange/${path}/wl/${handledToken}/login.svg`.toLowerCase();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mecx-products-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss']\n})\nexport class MECXProductsFilterComponent {\n @Input() isLoading = false;\n\n @Output() onChangeFilter = new EventEmitter<any>();\n\n _search = '';\n\n constructor() {\n // not to do\n }\n\n onSearchFilter(event: string) {\n this._search = event;\n if (!event) {\n this.onChangeFilter.next('');\n return;\n }\n event = `${event}`.toLowerCase();\n\n this.onChangeFilter.next(event);\n }\n\n onClearFilter() {\n this._search = '';\n this.onChangeFilter.next(this._search);\n }\n}\n","<monkey-input-filter [placeholder]=\"'SIDEBAR-ACTIONS.PROFILE.FILTER.SEARCH-INPUT' | translate\"\n (onChange)=\"onSearchFilter($event)\" icon=\"search-16\" [(value)]=\"_search\">\n</monkey-input-filter>\n<monkey-button type=\"filter\" color=\"border\" (click)=\"onClearFilter()\">\n Limpar\n</monkey-button>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { MonkeyEcxTokenStorageService } from 'monkey-front-core';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../base/base-component';\nimport { ProductsModel } from './providers';\n\n@Component({\n selector: 'mecx-products',\n templateUrl: './products.component.html',\n styleUrls: ['./products.component.scss']\n})\nexport class MECXProductsComponent extends BaseComponent implements OnInit {\n @Output() onAccess = new EventEmitter<any>();\n\n _products: any[];\n\n _filteredProducts: any[];\n\n _filter = '';\n\n _hasMoreProducts = false;\n\n constructor(private tokenStorage: MonkeyEcxTokenStorageService) {\n super();\n }\n\n onImgError(img: HTMLImageElement) {\n const index = Math.floor(Math.random() * (6 - 1 + 1)) + 1;\n img.src = `https://assets.monkeyecx.com/icons/icon-${index}.svg`;\n img.className = 'no-image';\n }\n\n private onHandleProducts() {\n const { _filter } = this;\n\n this._filteredProducts = this._products.map(({ name, items }) => {\n const found = items?.filter((_: any) => {\n const cmpA = `${_.name}`.toLowerCase();\n const cmpB = `${_filter}`.toLowerCase();\n return cmpA.includes(cmpB);\n });\n\n if (found && found.length) {\n return {\n name,\n items: found\n };\n }\n\n return null;\n }).filter((_: any) => { return _; });\n }\n\n private async onHandleMe() {\n const programs: ProductsModel[] = (await this.tokenStorage.getMe())?.programs?.map((_: any) => {\n return new ProductsModel(_);\n });\n\n const onlyUnique = (value: any, index: any, self: any) => {\n return self.indexOf(value) === index;\n };\n\n const products = programs.map(({ product }) => {\n return product;\n }).filter(onlyUnique);\n\n this._hasMoreProducts = (products?.length || 0) > 1;\n\n this._products = Object.entries(products).map(([key, value]) => {\n const found = programs.filter(({ product }) => {\n return `${product}` === `${value}`;\n })?.sort((a, b) => {\n const groupA = `${a?.name}`.toLowerCase();\n const groupB = `${b?.name}`.toLowerCase();\n return groupA !== groupB ? 1 : -1;\n });\n\n return {\n name: value,\n items: found\n };\n })?.sort((a, b) => {\n const groupA = `${a?.name}`.toLowerCase();\n const groupB = `${b?.name}`.toLowerCase();\n return groupA !== groupB ? -1 : 1;\n });\n\n this._filteredProducts = this._products;\n }\n\n ngOnInit() {\n this.tokenStorage\n .meHasChanged()\n .pipe(takeUntil(this.__unsubscribeAll))\n .subscribe(() => {\n this.onHandleMe();\n });\n }\n\n onHandleChangeFilter(event: string) {\n this._filter = event;\n this.onHandleProducts();\n }\n}\n","<mecx-products-filter (onChangeFilter)=\"onHandleChangeFilter($event)\"></mecx-products-filter>\n<div class=\"products-list\">\n <div *ngFor=\"let product of _filteredProducts\" class=\"product\">\n <span class=\"title\" *ngIf=\"_hasMoreProducts\">{{ 'PRODUCTS.'+product.name | translate }}</span>\n <div class=\"items\">\n <div *ngFor=\"let item of product.items\" class=\"item\"\n (click)=\"onAccess.next(item)\">\n <div class=\"icon\">\n <img [src]=\"item.logo\" #img (error)=\"onImgError(img)\">\n </div>\n <span class=\"name\">{{ item.name }}</span>\n </div>\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MonkeyButtonModule, MonkeyInputModule } from 'monkey-style-guide';\nimport { MECXProductsFilterComponent } from './filter/filter.component';\nimport { MECXProductsComponent } from './products.component';\n\n@NgModule({\n declarations: [MECXProductsComponent, MECXProductsFilterComponent],\n imports: [CommonModule, TranslateModule.forChild(), MonkeyInputModule, MonkeyButtonModule],\n exports: [MECXProductsComponent]\n})\nexport class MECXProductsModule {}\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","i1","i3","i4","i2","i3.MECXDynamicDirective","i4.MECXDynamicDirective","i5","i1.MECXFilterSelectedItemDateWithActionComponent","i2.MECXFilterSelectedItemDateRangeComponent","i2.MECXFilterOptionsChildrenComponent","i3.MECXFilterOptionsCurrencyComponent","i4.MECXFilterOptionsDateRangeComponent","i5.MECXFilterOptionsInputComponent","i6.MECXFilterOptionsStatusComponent","i7.MECXFilterOptionsStatusRadioComponent","i8.MECXFilterOptionsValueRangeComponent","i9","i10","i11","i1.MECXFilterSelectedItemChildrenComponent","i2.MECXFilterSelectedItemCurrencyComponent","i3.MECXFilterSelectedItemDateRangeComponent","i4.MECXFilterSelectedItemValueRangeComponent","i5.MECXFilterSelectedItemInputComponent","i6.MECXFilterSelectedItemStatusComponent","i7.MECXFilterSelectedItemStatusRadioComponent","i8","i9.MECXFilterOptionsComponent","i12","i1.MECXFilterSelectedItemComponent","i1.MECXFilterOptionsComponent","i2.MECXFilterSelectedComponent","i3.MECXFilterMenuComponent","i6","i1.MECXProgressBarService","i2.MECXProductsFilterComponent"],"mappings":"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"}