@acontplus/ng-customer 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"acontplus-ng-customer.mjs","sources":["../tmp-esm2022/lib/application/use-cases/customer.use-case.js","../tmp-esm2022/lib/application/use-cases/customer-external.use-case.js","../tmp-esm2022/lib/infrastructure/constants/customer.constants.js","../tmp-esm2022/lib/infrastructure/mappers/company-search.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-create-update.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-form-data.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-get-by-id.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-list.mapper.js","../tmp-esm2022/lib/infrastructure/repositories/customer-external-http.repository.js","../tmp-esm2022/lib/infrastructure/repositories/customer-http.repository.js","../tmp-esm2022/lib/ui/components/customer-add-edit/customer-add-edit.component.js","../tmp-esm2022/lib/ui/components/customer-card/customer-card.component.js","../tmp-esm2022/acontplus-ng-customer.js"],"sourcesContent":["export class CustomerUseCase {\n repo;\n constructor(repo) {\n this.repo = repo;\n }\n getAll(params) {\n return this.repo.getAll(params);\n }\n getFormData() {\n return this.repo.getFormData();\n }\n getById(id) {\n return this.repo.getById(id);\n }\n checkExistence(identificationNumber) {\n return this.repo.checkExistence(identificationNumber);\n }\n create(params) {\n return this.repo.create(params);\n }\n update(params) {\n return this.repo.update(params);\n }\n updateState(id) {\n return this.repo.updateState(id);\n }\n search(filter) {\n return this.repo.search(filter);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXIudXNlLWNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9jdXN0b21lci51c2UtY2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZUFBZTtJQUNOO0lBQXBCLFlBQW9CLElBQXdCO1FBQXhCLFNBQUksR0FBSixJQUFJLENBQW9CO0lBQUcsQ0FBQztJQUVoRCxNQUFNLENBQUMsTUFBVztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsb0JBQTRCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tZXJSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEN1c3RvbWVyU2VhcmNoIH0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbWVyLXNlYXJjaCc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21lclVzZUNhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG86IEN1c3RvbWVyUmVwb3NpdG9yeSkge31cblxuICBnZXRBbGwocGFyYW1zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmdldEFsbChwYXJhbXMpO1xuICB9XG4gIGdldEZvcm1EYXRhKCkge1xuICAgIHJldHVybiB0aGlzLnJlcG8uZ2V0Rm9ybURhdGEoKTtcbiAgfVxuXG4gIGdldEJ5SWQoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnJlcG8uZ2V0QnlJZChpZCk7XG4gIH1cblxuICBjaGVja0V4aXN0ZW5jZShpZGVudGlmaWNhdGlvbk51bWJlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5jaGVja0V4aXN0ZW5jZShpZGVudGlmaWNhdGlvbk51bWJlcik7XG4gIH1cblxuICBjcmVhdGUocGFyYW1zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmNyZWF0ZShwYXJhbXMpO1xuICB9XG5cbiAgdXBkYXRlKHBhcmFtczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby51cGRhdGUocGFyYW1zKTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnVwZGF0ZVN0YXRlKGlkKTtcbiAgfVxuXG4gIHNlYXJjaChmaWx0ZXI6IEN1c3RvbWVyU2VhcmNoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zZWFyY2goZmlsdGVyKTtcbiAgfVxufVxuIl19","import { IdentificationNumberVo } from '@acontplus/core';\nexport class CustomerExternalUseCase {\n repo;\n constructor(repo) {\n this.repo = repo;\n }\n getById(identification) {\n const idNumber = new IdentificationNumberVo(identification);\n return this.repo.getById(idNumber);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZXh0ZXJuYWwudXNlLWNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9jdXN0b21lci1leHRlcm5hbC51c2UtY2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2Q7SUFBcEIsWUFBb0IsSUFBZ0M7UUFBaEMsU0FBSSxHQUFKLElBQUksQ0FBNEI7SUFBRyxDQUFDO0lBRXhELE9BQU8sQ0FBQyxjQUFzQjtRQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tZXJFeHRlcm5hbFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9kb21haW4vcmVwb3NpdG9yaWVzJztcbmltcG9ydCB7IElkZW50aWZpY2F0aW9uTnVtYmVyVm8gfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJFeHRlcm5hbFVzZUNhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG86IEN1c3RvbWVyRXh0ZXJuYWxSZXBvc2l0b3J5KSB7fVxuXG4gIGdldEJ5SWQoaWRlbnRpZmljYXRpb246IHN0cmluZykge1xuICAgIGNvbnN0IGlkTnVtYmVyID0gbmV3IElkZW50aWZpY2F0aW9uTnVtYmVyVm8oaWRlbnRpZmljYXRpb24pO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZ2V0QnlJZChpZE51bWJlcik7XG4gIH1cbn1cblxuIl19","export const CUSTOMER_API = {\n BILLING: '/api',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXIuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9jb25zdGFudHMvY3VzdG9tZXIuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixPQUFPLEVBQUUsTUFBTTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENVU1RPTUVSX0FQSSA9IHtcbiAgQklMTElORzogJy9hcGknLFxufTtcblxuIl19","export class CompanySearchMapper {\n static toJson(params) {\n return JSON.stringify({\n textSearch: params.search,\n });\n }\n static fromJson(response) {\n let customers = [];\n if (response && response.code === '1') {\n const results = JSON.parse(response.payload) || [];\n customers = results.map((item) => ({\n id: item.idCliente,\n identificationTypeId: item.idTipoIdentificacion,\n creditTimeId: item.idTiempoCredito,\n customerId: item.customerId,\n status: item.estado,\n email: item.correo,\n phone: item.telefono,\n address: item.direccion,\n licensePlate: item.placa,\n creditDays: item.diasCredito,\n sriValidation: item.validationSri,\n businessName: item.nombreFiscal,\n tradeName: item.nombreComercial,\n identificationNumber: item.numeroIdentificacion,\n identificationType: item.tipoIdentificacion,\n sriCode: item.codigoSri,\n companyRuc: item.rucEmpresa,\n companyId: item.companyId,\n name: item.nombreFiscal,\n }));\n }\n return customers;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1zZWFyY2gubWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9tYXBwZXJzL2NvbXBhbnktc2VhcmNoLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBc0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFhO1FBQzNCLElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUUxQixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFN0QsU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDbEIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtnQkFDL0MsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdkIsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUN4QixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzVCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQy9CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7Z0JBQy9DLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTthQUN4QixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21lclNlYXJjaCB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL21vZGVscy9jdXN0b21lci1zZWFyY2gnO1xuXG5leHBvcnQgY2xhc3MgQ29tcGFueVNlYXJjaE1hcHBlciB7XG4gIHN0YXRpYyB0b0pzb24ocGFyYW1zOiBDdXN0b21lclNlYXJjaCkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0ZXh0U2VhcmNoOiBwYXJhbXMuc2VhcmNoLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uKHJlc3BvbnNlOiBhbnkpIHtcbiAgICBsZXQgY3VzdG9tZXJzOiBhbnlbXSA9IFtdO1xuXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09ICcxJykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IEpTT04ucGFyc2UocmVzcG9uc2UucGF5bG9hZCBhcyBzdHJpbmcpIHx8IFtdO1xuXG4gICAgICBjdXN0b21lcnMgPSByZXN1bHRzLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICBpZDogaXRlbS5pZENsaWVudGUsXG4gICAgICAgIGlkZW50aWZpY2F0aW9uVHlwZUlkOiBpdGVtLmlkVGlwb0lkZW50aWZpY2FjaW9uLFxuICAgICAgICBjcmVkaXRUaW1lSWQ6IGl0ZW0uaWRUaWVtcG9DcmVkaXRvLFxuICAgICAgICBjdXN0b21lcklkOiBpdGVtLmN1c3RvbWVySWQsXG4gICAgICAgIHN0YXR1czogaXRlbS5lc3RhZG8sXG4gICAgICAgIGVtYWlsOiBpdGVtLmNvcnJlbyxcbiAgICAgICAgcGhvbmU6IGl0ZW0udGVsZWZvbm8sXG4gICAgICAgIGFkZHJlc3M6IGl0ZW0uZGlyZWNjaW9uLFxuICAgICAgICBsaWNlbnNlUGxhdGU6IGl0ZW0ucGxhY2EsXG4gICAgICAgIGNyZWRpdERheXM6IGl0ZW0uZGlhc0NyZWRpdG8sXG4gICAgICAgIHNyaVZhbGlkYXRpb246IGl0ZW0udmFsaWRhdGlvblNyaSxcbiAgICAgICAgYnVzaW5lc3NOYW1lOiBpdGVtLm5vbWJyZUZpc2NhbCxcbiAgICAgICAgdHJhZGVOYW1lOiBpdGVtLm5vbWJyZUNvbWVyY2lhbCxcbiAgICAgICAgaWRlbnRpZmljYXRpb25OdW1iZXI6IGl0ZW0ubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICAgIGlkZW50aWZpY2F0aW9uVHlwZTogaXRlbS50aXBvSWRlbnRpZmljYWNpb24sXG4gICAgICAgIHNyaUNvZGU6IGl0ZW0uY29kaWdvU3JpLFxuICAgICAgICBjb21wYW55UnVjOiBpdGVtLnJ1Y0VtcHJlc2EsXG4gICAgICAgIGNvbXBhbnlJZDogaXRlbS5jb21wYW55SWQsXG4gICAgICAgIG5hbWU6IGl0ZW0ubm9tYnJlRmlzY2FsLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXN0b21lcnM7XG4gIH1cbn1cblxuIl19","import { DateFormatter, getValidId, isValidField } from '@acontplus/utils';\nexport class CustomerCreateUpdateMapper {\n static toJson(param) {\n return {\n idCliente: getValidId(param.idCliente),\n idEmpleado: getValidId(param.idEmpleado),\n idTipoIdentificacion: param.idTipoIdentificacion,\n idTipoClienteProveedor: getValidId(param.idTipoClienteProveedor),\n idTipoEntidad: getValidId(param.idTipoEntidad),\n idCiudad: getValidId(param.idCiudad),\n idSubContribuyente: getValidId(param.idSubContribuyente),\n idTiempoCredito: getValidId(param.idTiempoCredito),\n idEmpresa: getValidId(param.idEmpresa),\n idCargo: getValidId(param.idCargo),\n numeroIdentificacion: param.numeroIdentificacion,\n nombreFiscal: param.nombreFiscal,\n nombreComercial: param.nombreComercial,\n direccion: isValidField(param.direccion),\n telefono: isValidField(param.telefono),\n correo: isValidField(param.correo),\n placa: isValidField(param.placa),\n montoCredito: isValidField(param.montoCredito),\n nota: isValidField(param.nota),\n validationSri: param.validationSri,\n idFormaPagoSri: getValidId(param.idFormaPagoSri),\n estado: param.estado ?? true,\n infoCrediticia: param.dataInfoCred && JSON.stringify(param.dataInfoCred),\n configValorBruto: param.configValorBruto ?? null,\n birthDate: DateFormatter.isValid(param.birthDate)\n ? DateFormatter.toUTCString(param.birthDate)\n : null,\n };\n }\n static fromJson(response) {\n if (!response)\n return response;\n const result = {\n id: 0,\n };\n if (response.code === '1' && typeof response.payload === 'string') {\n try {\n const parsed = JSON.parse(response.payload);\n if (Array.isArray(parsed) && parsed.length > 0) {\n const { idCliente } = parsed[0];\n result.id = idCliente;\n }\n }\n catch (error) {\n console.error('Error parsing payload JSON:', error);\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY3JlYXRlLXVwZGF0ZS5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2luZnJhc3RydWN0dXJlL21hcHBlcnMvY3VzdG9tZXItY3JlYXRlLXVwZGF0ZS5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0UsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVU7UUFDdEIsT0FBTztZQUNMLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQW1CLENBQUM7WUFDaEQsVUFBVSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBb0IsQ0FBQztZQUNsRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ2hELHNCQUFzQixFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUM7WUFDaEUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzlDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNwQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQ3hELGVBQWUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUNsRCxTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDdEMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7WUFDaEQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxTQUFTLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDeEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDaEMsWUFBWSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUk7WUFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3hFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ2hELFNBQVMsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxJQUFJO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQWE7UUFDM0IsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRztZQUNiLEVBQUUsRUFBRSxDQUFDO1NBQ04sQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksT0FBTyxRQUFRLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVGb3JtYXR0ZXIsIGdldFZhbGlkSWQsIGlzVmFsaWRGaWVsZCB9IGZyb20gJ0BhY29udHBsdXMvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJDcmVhdGVVcGRhdGVNYXBwZXIge1xuICBzdGF0aWMgdG9Kc29uKHBhcmFtOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRDbGllbnRlOiBnZXRWYWxpZElkKHBhcmFtLmlkQ2xpZW50ZSBhcyBudW1iZXIpLFxuICAgICAgaWRFbXBsZWFkbzogZ2V0VmFsaWRJZChwYXJhbS5pZEVtcGxlYWRvIGFzIG51bWJlciksXG4gICAgICBpZFRpcG9JZGVudGlmaWNhY2lvbjogcGFyYW0uaWRUaXBvSWRlbnRpZmljYWNpb24sXG4gICAgICBpZFRpcG9DbGllbnRlUHJvdmVlZG9yOiBnZXRWYWxpZElkKHBhcmFtLmlkVGlwb0NsaWVudGVQcm92ZWVkb3IpLFxuICAgICAgaWRUaXBvRW50aWRhZDogZ2V0VmFsaWRJZChwYXJhbS5pZFRpcG9FbnRpZGFkKSxcbiAgICAgIGlkQ2l1ZGFkOiBnZXRWYWxpZElkKHBhcmFtLmlkQ2l1ZGFkKSxcbiAgICAgIGlkU3ViQ29udHJpYnV5ZW50ZTogZ2V0VmFsaWRJZChwYXJhbS5pZFN1YkNvbnRyaWJ1eWVudGUpLFxuICAgICAgaWRUaWVtcG9DcmVkaXRvOiBnZXRWYWxpZElkKHBhcmFtLmlkVGllbXBvQ3JlZGl0byksXG4gICAgICBpZEVtcHJlc2E6IGdldFZhbGlkSWQocGFyYW0uaWRFbXByZXNhKSxcbiAgICAgIGlkQ2FyZ286IGdldFZhbGlkSWQocGFyYW0uaWRDYXJnbyksXG4gICAgICBudW1lcm9JZGVudGlmaWNhY2lvbjogcGFyYW0ubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICBub21icmVGaXNjYWw6IHBhcmFtLm5vbWJyZUZpc2NhbCxcbiAgICAgIG5vbWJyZUNvbWVyY2lhbDogcGFyYW0ubm9tYnJlQ29tZXJjaWFsLFxuICAgICAgZGlyZWNjaW9uOiBpc1ZhbGlkRmllbGQocGFyYW0uZGlyZWNjaW9uKSxcbiAgICAgIHRlbGVmb25vOiBpc1ZhbGlkRmllbGQocGFyYW0udGVsZWZvbm8pLFxuICAgICAgY29ycmVvOiBpc1ZhbGlkRmllbGQocGFyYW0uY29ycmVvKSxcbiAgICAgIHBsYWNhOiBpc1ZhbGlkRmllbGQocGFyYW0ucGxhY2EpLFxuICAgICAgbW9udG9DcmVkaXRvOiBpc1ZhbGlkRmllbGQocGFyYW0ubW9udG9DcmVkaXRvKSxcbiAgICAgIG5vdGE6IGlzVmFsaWRGaWVsZChwYXJhbS5ub3RhKSxcbiAgICAgIHZhbGlkYXRpb25Tcmk6IHBhcmFtLnZhbGlkYXRpb25TcmksXG4gICAgICBpZEZvcm1hUGFnb1NyaTogZ2V0VmFsaWRJZChwYXJhbS5pZEZvcm1hUGFnb1NyaSksXG4gICAgICBlc3RhZG86IHBhcmFtLmVzdGFkbyA/PyB0cnVlLFxuICAgICAgaW5mb0NyZWRpdGljaWE6IHBhcmFtLmRhdGFJbmZvQ3JlZCAmJiBKU09OLnN0cmluZ2lmeShwYXJhbS5kYXRhSW5mb0NyZWQpLFxuICAgICAgY29uZmlnVmFsb3JCcnV0bzogcGFyYW0uY29uZmlnVmFsb3JCcnV0byA/PyBudWxsLFxuICAgICAgYmlydGhEYXRlOiBEYXRlRm9ybWF0dGVyLmlzVmFsaWQocGFyYW0uYmlydGhEYXRlKVxuICAgICAgICA/IERhdGVGb3JtYXR0ZXIudG9VVENTdHJpbmcocGFyYW0uYmlydGhEYXRlKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbihyZXNwb25zZTogYW55KTogYW55IHtcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gcmVzcG9uc2U7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgaWQ6IDAsXG4gICAgfTtcblxuICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAnMScgJiYgdHlwZW9mIHJlc3BvbnNlLnBheWxvYWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnBheWxvYWQpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWQpICYmIHBhcnNlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgeyBpZENsaWVudGUgfSA9IHBhcnNlZFswXTtcbiAgICAgICAgICByZXN1bHQuaWQgPSBpZENsaWVudGU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgcGF5bG9hZCBKU09OOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbiJdfQ==","export class CustomerFormDataMapper {\n static toJson() {\n return JSON.stringify({\n tipo: 2,\n });\n }\n static fromJson(response) {\n const result = {};\n if (response.code === '1') {\n const mainData = JSON.parse(response.payload);\n result.tipoIdentificacion = mainData[0];\n result.tipoContribuyentes = mainData[1];\n result.tiempoCreditos = mainData[2] || [];\n const ciudades = mainData[3];\n result.ciudades = ciudades.reduce((acc, ciudade) => {\n const dataExists = acc.find((c) => c.idProvincia === ciudade.idProvincia);\n if (!dataExists) {\n acc.push({\n idProvincia: ciudade.idProvincia,\n nombre: ciudade.provincia,\n ciudades: [\n {\n idCiudad: ciudade.idCiudad,\n nombre: ciudade.ciudad,\n },\n ],\n });\n }\n else {\n dataExists.ciudades.push({\n idCiudad: ciudade.idCiudad,\n nombre: ciudade.ciudad,\n });\n }\n return acc;\n }, []);\n result.tiposCliente = mainData[4] || [];\n result.empresas = mainData[5] || [];\n result.cargos = mainData[6] || [];\n result.formasPagoSri = mainData[7] || [];\n result.housingTypes = mainData[8] || [];\n result.maritalStatuses = mainData[9] || [];\n result.employees = mainData[10] || [];\n }\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZm9ybS1kYXRhLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbWFwcGVycy9jdXN0b21lci1mb3JtLWRhdGEubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUM7U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFhO1FBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQVMsQ0FBQztRQUN6QixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBaUIsQ0FBQyxDQUFDO1lBRXhELE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxPQUFZLEVBQUUsRUFBRTtnQkFDM0QsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDUCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7d0JBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUzt3QkFDekIsUUFBUSxFQUFFOzRCQUNSO2dDQUNFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQ0FDMUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNOzZCQUN2Qjt5QkFDRjtxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUN2QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7d0JBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtxQkFDdkIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUM7WUFFZCxNQUFNLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQyxNQUFNLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDdXN0b21lckZvcm1EYXRhTWFwcGVyIHtcbiAgc3RhdGljIHRvSnNvbigpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdGlwbzogMixcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbihyZXNwb25zZTogYW55KSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge30gYXMgYW55O1xuICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAnMScpIHtcbiAgICAgIGNvbnN0IG1haW5EYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZS5wYXlsb2FkIGFzIHN0cmluZyk7XG5cbiAgICAgIHJlc3VsdC50aXBvSWRlbnRpZmljYWNpb24gPSBtYWluRGF0YVswXTtcbiAgICAgIHJlc3VsdC50aXBvQ29udHJpYnV5ZW50ZXMgPSBtYWluRGF0YVsxXTtcbiAgICAgIHJlc3VsdC50aWVtcG9DcmVkaXRvcyA9IG1haW5EYXRhWzJdIHx8IFtdO1xuICAgICAgY29uc3QgY2l1ZGFkZXMgPSBtYWluRGF0YVszXTtcblxuICAgICAgcmVzdWx0LmNpdWRhZGVzID0gY2l1ZGFkZXMucmVkdWNlKChhY2M6IGFueSwgY2l1ZGFkZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFFeGlzdHMgPSBhY2MuZmluZCgoYzogYW55KSA9PiBjLmlkUHJvdmluY2lhID09PSBjaXVkYWRlLmlkUHJvdmluY2lhKTtcbiAgICAgICAgaWYgKCFkYXRhRXhpc3RzKSB7XG4gICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgaWRQcm92aW5jaWE6IGNpdWRhZGUuaWRQcm92aW5jaWEsXG4gICAgICAgICAgICBub21icmU6IGNpdWRhZGUucHJvdmluY2lhLFxuICAgICAgICAgICAgY2l1ZGFkZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkQ2l1ZGFkOiBjaXVkYWRlLmlkQ2l1ZGFkLFxuICAgICAgICAgICAgICAgIG5vbWJyZTogY2l1ZGFkZS5jaXVkYWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGFFeGlzdHMuY2l1ZGFkZXMucHVzaCh7XG4gICAgICAgICAgICBpZENpdWRhZDogY2l1ZGFkZS5pZENpdWRhZCxcbiAgICAgICAgICAgIG5vbWJyZTogY2l1ZGFkZS5jaXVkYWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdIGFzIGFueSk7XG5cbiAgICAgIHJlc3VsdC50aXBvc0NsaWVudGUgPSBtYWluRGF0YVs0XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5lbXByZXNhcyA9IG1haW5EYXRhWzVdIHx8IFtdO1xuICAgICAgcmVzdWx0LmNhcmdvcyA9IG1haW5EYXRhWzZdIHx8IFtdO1xuICAgICAgcmVzdWx0LmZvcm1hc1BhZ29TcmkgPSBtYWluRGF0YVs3XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5ob3VzaW5nVHlwZXMgPSBtYWluRGF0YVs4XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5tYXJpdGFsU3RhdHVzZXMgPSBtYWluRGF0YVs5XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5lbXBsb3llZXMgPSBtYWluRGF0YVsxMF0gfHwgW107XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuIl19","import { SEPARADORES_REGEX } from '@acontplus/core';\nimport { parseJSONSafe } from '@acontplus/utils';\nexport class CustomerGetByIdMapper {\n static fromJson(response) {\n if (response.code !== '1' || !response.payload) {\n return {};\n }\n const data = JSON.parse(response.payload)[0];\n return {\n idCliente: data.idCliente,\n idTipoClienteProveedor: data.idTipoClienteProveedor,\n idTipoEntidad: data.idTipoEntidad,\n idSubContribuyente: data.idSubContribuyente,\n idTiempoCredito: data.idTiempoCredito,\n idTipoIdentificacion: data.idTipoIdentificacion,\n idCiudad: data.idCiudad,\n numeroIdentificacion: data.numeroIdentificacion,\n identificacionComprador: data.numeroIdentificacion,\n razonSocialComprador: data.nombreFiscal,\n nombreFiscal: data.nombreFiscal,\n montoCredito: data.montoCredito,\n nombreComercial: data.nombreComercial,\n direccion: data.direccion,\n telefono: data.telefono,\n correo: data.correo,\n estado: data.estado,\n idEmpleado: data.idEmpleado,\n diasCredito: data.diasCredito,\n empleado: data.empleado,\n idEmpresa: data.idEmpresa,\n idCargo: data.idCargo,\n placa: data.placa,\n validationSri: data.validationSri,\n codigoSri: data.codigoSri,\n correos: data.correo ? data.correo.split(SEPARADORES_REGEX) : [],\n telefonos: data.telefono ? data.telefono.split(SEPARADORES_REGEX) : [],\n placas: data.placa ? data.placa.split(SEPARADORES_REGEX) : [],\n idFormaPagoSri: data.idFormaPagoSri,\n dataInfoCred: parseJSONSafe(data.infoCrediticia, {}),\n nota: data.nota?.trim() ?? '',\n configValorBruto: data.configValorBruto ?? false,\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ2V0LWJ5LWlkLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbWFwcGVycy9jdXN0b21lci1nZXQtYnktaWQubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBYTtRQUMzQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9DLE9BQU8sRUFBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QyxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDL0MsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDL0MsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUNsRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3RCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLO1NBQ2pELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVBBUkFET1JFU19SRUdFWCB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBwYXJzZUpTT05TYWZlIH0gZnJvbSAnQGFjb250cGx1cy91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21lckdldEJ5SWRNYXBwZXIge1xuICBzdGF0aWMgZnJvbUpzb24ocmVzcG9uc2U6IGFueSkge1xuICAgIGlmIChyZXNwb25zZS5jb2RlICE9PSAnMScgfHwgIXJlc3BvbnNlLnBheWxvYWQpIHtcbiAgICAgIHJldHVybiB7fSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2UucGF5bG9hZClbMF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRDbGllbnRlOiBkYXRhLmlkQ2xpZW50ZSxcbiAgICAgIGlkVGlwb0NsaWVudGVQcm92ZWVkb3I6IGRhdGEuaWRUaXBvQ2xpZW50ZVByb3ZlZWRvcixcbiAgICAgIGlkVGlwb0VudGlkYWQ6IGRhdGEuaWRUaXBvRW50aWRhZCxcbiAgICAgIGlkU3ViQ29udHJpYnV5ZW50ZTogZGF0YS5pZFN1YkNvbnRyaWJ1eWVudGUsXG4gICAgICBpZFRpZW1wb0NyZWRpdG86IGRhdGEuaWRUaWVtcG9DcmVkaXRvLFxuICAgICAgaWRUaXBvSWRlbnRpZmljYWNpb246IGRhdGEuaWRUaXBvSWRlbnRpZmljYWNpb24sXG4gICAgICBpZENpdWRhZDogZGF0YS5pZENpdWRhZCxcbiAgICAgIG51bWVyb0lkZW50aWZpY2FjaW9uOiBkYXRhLm51bWVyb0lkZW50aWZpY2FjaW9uLFxuICAgICAgaWRlbnRpZmljYWNpb25Db21wcmFkb3I6IGRhdGEubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICByYXpvblNvY2lhbENvbXByYWRvcjogZGF0YS5ub21icmVGaXNjYWwsXG4gICAgICBub21icmVGaXNjYWw6IGRhdGEubm9tYnJlRmlzY2FsLFxuICAgICAgbW9udG9DcmVkaXRvOiBkYXRhLm1vbnRvQ3JlZGl0byxcbiAgICAgIG5vbWJyZUNvbWVyY2lhbDogZGF0YS5ub21icmVDb21lcmNpYWwsXG4gICAgICBkaXJlY2Npb246IGRhdGEuZGlyZWNjaW9uLFxuICAgICAgdGVsZWZvbm86IGRhdGEudGVsZWZvbm8sXG4gICAgICBjb3JyZW86IGRhdGEuY29ycmVvLFxuICAgICAgZXN0YWRvOiBkYXRhLmVzdGFkbyxcbiAgICAgIGlkRW1wbGVhZG86IGRhdGEuaWRFbXBsZWFkbyxcbiAgICAgIGRpYXNDcmVkaXRvOiBkYXRhLmRpYXNDcmVkaXRvLFxuICAgICAgZW1wbGVhZG86IGRhdGEuZW1wbGVhZG8sXG4gICAgICBpZEVtcHJlc2E6IGRhdGEuaWRFbXByZXNhLFxuICAgICAgaWRDYXJnbzogZGF0YS5pZENhcmdvLFxuICAgICAgcGxhY2E6IGRhdGEucGxhY2EsXG4gICAgICB2YWxpZGF0aW9uU3JpOiBkYXRhLnZhbGlkYXRpb25TcmksXG4gICAgICBjb2RpZ29Tcmk6IGRhdGEuY29kaWdvU3JpLFxuICAgICAgY29ycmVvczogZGF0YS5jb3JyZW8gPyBkYXRhLmNvcnJlby5zcGxpdChTRVBBUkFET1JFU19SRUdFWCkgOiBbXSxcbiAgICAgIHRlbGVmb25vczogZGF0YS50ZWxlZm9ubyA/IGRhdGEudGVsZWZvbm8uc3BsaXQoU0VQQVJBRE9SRVNfUkVHRVgpIDogW10sXG4gICAgICBwbGFjYXM6IGRhdGEucGxhY2EgPyBkYXRhLnBsYWNhLnNwbGl0KFNFUEFSQURPUkVTX1JFR0VYKSA6IFtdLFxuICAgICAgaWRGb3JtYVBhZ29Tcmk6IGRhdGEuaWRGb3JtYVBhZ29TcmksXG4gICAgICBkYXRhSW5mb0NyZWQ6IHBhcnNlSlNPTlNhZmUoZGF0YS5pbmZvQ3JlZGl0aWNpYSwge30pLFxuICAgICAgbm90YTogZGF0YS5ub3RhPy50cmltKCkgPz8gJycsXG4gICAgICBjb25maWdWYWxvckJydXRvOiBkYXRhLmNvbmZpZ1ZhbG9yQnJ1dG8gPz8gZmFsc2UsXG4gICAgfTtcbiAgfVxufVxuXG4iXX0=","export class ListCustomerMapper {\n static toJson(params) {\n return JSON.stringify({\n ...params,\n type: 1,\n tipo: 1, // remove after\n pageIndex: params.pageIndex,\n pageSize: params.pageSize,\n });\n }\n static fromJson(response) {\n // Initialize with backend-aligned shape (PageIndex is commonly 1-based server-side)\n const result = {\n items: [],\n pageIndex: 1,\n pageSize: 0,\n totalCount: 0,\n totalPages: 0,\n hasPreviousPage: false,\n hasNextPage: false,\n metadata: {},\n };\n // Parse payload (backend sends JSON string in payload)\n const parsed = typeof response?.payload === 'string' ? JSON.parse(response.payload) : response?.payload;\n const dataArray = Array.isArray(parsed) ? parsed[0] ?? [] : Array.isArray(parsed?.items) ? parsed.items : [];\n // Map each item to UI-friendly fields, preserving source values\n result.items = dataArray.map((item, index) => ({\n index: index + 1,\n id: item.idCliente,\n identificationTypeId: item.idTipoIdentificacion,\n identification: item.numeroIdentificacion,\n businessName: item.nombreFiscal,\n tradeName: item.nombreComercial,\n address: item.direccion,\n phone: item.telefono,\n email: item.correo,\n finalConsumer: item.consumidorFinal,\n sriValidation: item.validacionSri ?? item.validationSri,\n sriValidationName: (item.validationSri ?? item.validacionSri) ? 'SI' : 'NO',\n identificationType: item.tipoIdentificacion,\n status: item.estado,\n statusName: item.estado ? 'Activo' : 'Inactivo',\n isFinalConsumer: item.codTipoIdentificacion === 'CF',\n totalRecords: item.totalRecords ?? item.TotalCount,\n }));\n // Flexible pagination extraction (prefer explicit backend values)\n const pageIndex = response?.PageIndex ?? response?.pageIndex ?? 1;\n const pageSize = response?.PageSize ?? response?.pageSize ?? result.items.length;\n const totalCountFromItem = result.items.length > 0 ? result.items[0].totalRecords : undefined;\n const totalCount = response?.TotalCount ?? response?.totalCount ?? totalCountFromItem ?? result.items.length;\n const metadata = response?.Metadata ?? response?.metadata ?? {};\n result.pageIndex = Number.isFinite(pageIndex) ? pageIndex : 1;\n result.pageSize = Number.isFinite(pageSize) ? pageSize : result.items.length;\n result.totalCount = Number.isFinite(totalCount) ? totalCount : result.items.length;\n result.totalPages = result.pageSize > 0 ? Math.ceil(result.totalCount / result.pageSize) : 0;\n // Backend semantics show HasPreviousPage as PageIndex > 1\n result.hasPreviousPage = result.pageIndex > 1;\n result.hasNextPage = result.pageIndex < result.totalPages;\n result.metadata = metadata;\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItbGlzdC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2luZnJhc3RydWN0dXJlL21hcHBlcnMvY3VzdG9tZXItbGlzdC5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUMsRUFBRSxlQUFlO1lBQ3hCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBYTtRQUMzQixvRkFBb0Y7UUFDcEYsTUFBTSxNQUFNLEdBQVE7WUFDbEIsS0FBSyxFQUFFLEVBQVc7WUFDbEIsU0FBUyxFQUFFLENBQUM7WUFDWixRQUFRLEVBQUUsQ0FBQztZQUNYLFVBQVUsRUFBRSxDQUFDO1lBQ2IsVUFBVSxFQUFFLENBQUM7WUFDYixlQUFlLEVBQUUsS0FBSztZQUN0QixXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRLEVBQUUsRUFBeUI7U0FDcEMsQ0FBQztRQUVGLHVEQUF1RDtRQUN2RCxNQUFNLE1BQU0sR0FBRyxPQUFPLFFBQVEsRUFBRSxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztRQUN4RyxNQUFNLFNBQVMsR0FBVSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENB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QUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RiwwREFBMEQ7UUFDMUQsTUFBTSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUMxRCxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUUzQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTGlzdEN1c3RvbWVyTWFwcGVyIHtcbiAgc3RhdGljIHRvSnNvbihwYXJhbXM6IGFueSkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICB0eXBlOiAxLFxuICAgICAgdGlwbzogMSwgLy8gcmVtb3ZlIGFmdGVyXG4gICAgICBwYWdlSW5kZXg6IHBhcmFtcy5wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogcGFyYW1zLnBhZ2VTaXplLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uKHJlc3BvbnNlOiBhbnkpIHtcbiAgICAvLyBJbml0aWFsaXplIHdpdGggYmFja2VuZC1hbGlnbmVkIHNoYXBlIChQYWdlSW5kZXggaXMgY29tbW9ubHkgMS1iYXNlZCBzZXJ2ZXItc2lkZSlcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHtcbiAgICAgIGl0ZW1zOiBbXSBhcyBhbnlbXSxcbiAgICAgIHBhZ2VJbmRleDogMSxcbiAgICAgIHBhZ2VTaXplOiAwLFxuICAgICAgdG90YWxDb3VudDogMCxcbiAgICAgIHRvdGFsUGFnZXM6IDAsXG4gICAgICBoYXNQcmV2aW91c1BhZ2U6IGZhbHNlLFxuICAgICAgaGFzTmV4dFBhZ2U6IGZhbHNlLFxuICAgICAgbWV0YWRhdGE6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgfTtcblxuICAgIC8vIFBhcnNlIHBheWxvYWQgKGJhY2tlbmQgc2VuZHMgSlNPTiBzdHJpbmcgaW4gcGF5bG9hZClcbiAgICBjb25zdCBwYXJzZWQgPSB0eXBlb2YgcmVzcG9uc2U/LnBheWxvYWQgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNwb25zZS5wYXlsb2FkKSA6IHJlc3BvbnNlPy5wYXlsb2FkO1xuICAgIGNvbnN0IGRhdGFBcnJheTogYW55W10gPSBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyBwYXJzZWRbMF0gPz8gW10gOiBBcnJheS5pc0FycmF5KHBhcnNlZD8uaXRlbXMpID8gcGFyc2VkLml0ZW1zIDogW107XG5cbiAgICAvLyBNYXAgZWFjaCBpdGVtIHRvIFVJLWZyaWVuZGx5IGZpZWxkcywgcHJlc2VydmluZyBzb3VyY2UgdmFsdWVzXG4gICAgcmVzdWx0Lml0ZW1zID0gZGF0YUFycmF5Lm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgIGlkOiBpdGVtLmlkQ2xpZW50ZSxcbiAgICAgIGlkZW50aWZpY2F0aW9uVHlwZUlkOiBpdGVtLmlkVGlwb0lkZW50aWZpY2FjaW9uLFxuICAgICAgaWRlbnRpZmljYXRpb246IGl0ZW0ubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICBidXNpbmVzc05hbWU6IGl0ZW0ubm9tYnJlRmlzY2FsLFxuICAgICAgdHJhZGVOYW1lOiBpdGVtLm5vbWJyZUNvbWVyY2lhbCxcbiAgICAgIGFkZHJlc3M6IGl0ZW0uZGlyZWNjaW9uLFxuICAgICAgcGhvbmU6IGl0ZW0udGVsZWZvbm8sXG4gICAgICBlbWFpbDogaXRlbS5jb3JyZW8sXG4gICAgICBmaW5hbENvbnN1bWVyOiBpdGVtLmNvbnN1bWlkb3JGaW5hbCxcbiAgICAgIHNyaVZhbGlkYXRpb246IGl0ZW0udmFsaWRhY2lvblNyaSA/PyBpdGVtLnZhbGlkYXRpb25TcmksXG4gICAgICBzcmlWYWxpZGF0aW9uTmFtZTogKGl0ZW0udmFsaWRhdGlvblNyaSA/PyBpdGVtLnZhbGlkYWNpb25TcmkpID8gJ1NJJyA6ICdOTycsXG4gICAgICBpZGVudGlmaWNhdGlvblR5cGU6IGl0ZW0udGlwb0lkZW50aWZpY2FjaW9uLFxuICAgICAgc3RhdHVzOiBpdGVtLmVzdGFkbyxcbiAgICAgIHN0YXR1c05hbWU6IGl0ZW0uZXN0YWRvID8gJ0FjdGl2bycgOiAnSW5hY3Rpdm8nLFxuICAgICAgaXNGaW5hbENvbnN1bWVyOiBpdGVtLmNvZFRpcG9JZGVudGlmaWNhY2lvbiA9PT0gJ0NGJyxcbiAgICAgIHRvdGFsUmVjb3JkczogaXRlbS50b3RhbFJlY29yZHMgPz8gaXRlbS5Ub3RhbENvdW50LFxuICAgIH0pKTtcblxuICAgIC8vIEZsZXhpYmxlIHBhZ2luYXRpb24gZXh0cmFjdGlvbiAocHJlZmVyIGV4cGxpY2l0IGJhY2tlbmQgdmFsdWVzKVxuICAgIGNvbnN0IHBhZ2VJbmRleCA9IHJlc3BvbnNlPy5QYWdlSW5kZXggPz8gcmVzcG9uc2U/LnBhZ2VJbmRleCA/PyAxO1xuICAgIGNvbnN0IHBhZ2VTaXplID0gcmVzcG9uc2U/LlBhZ2VTaXplID8/IHJlc3BvbnNlPy5wYWdlU2l6ZSA/PyByZXN1bHQuaXRlbXMubGVuZ3RoO1xuICAgIGNvbnN0IHRvdGFsQ291bnRGcm9tSXRlbSA9IHJlc3VsdC5pdGVtcy5sZW5ndGggPiAwID8gcmVzdWx0Lml0ZW1zWzBdLnRvdGFsUmVjb3JkcyA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0b3RhbENvdW50ID0gcmVzcG9uc2U/LlRvdGFsQ291bnQgPz8gcmVzcG9uc2U/LnRvdGFsQ291bnQgPz8gdG90YWxDb3VudEZyb21JdGVtID8/IHJlc3VsdC5pdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgbWV0YWRhdGEgPSByZXNwb25zZT8uTWV0YWRhdGEgPz8gcmVzcG9uc2U/Lm1ldGFkYXRhID8/IHt9O1xuXG4gICAgcmVzdWx0LnBhZ2VJbmRleCA9IE51bWJlci5pc0Zpbml0ZShwYWdlSW5kZXgpID8gcGFnZUluZGV4IDogMTtcbiAgICByZXN1bHQucGFnZVNpemUgPSBOdW1iZXIuaXNGaW5pdGUocGFnZVNpemUpID8gcGFnZVNpemUgOiByZXN1bHQuaXRlbXMubGVuZ3RoO1xuICAgIHJlc3VsdC50b3RhbENvdW50ID0gTnVtYmVyLmlzRmluaXRlKHRvdGFsQ291bnQpID8gdG90YWxDb3VudCA6IHJlc3VsdC5pdGVtcy5sZW5ndGg7XG4gICAgcmVzdWx0LnRvdGFsUGFnZXMgPSByZXN1bHQucGFnZVNpemUgPiAwID8gTWF0aC5jZWlsKHJlc3VsdC50b3RhbENvdW50IC8gcmVzdWx0LnBhZ2VTaXplKSA6IDA7XG4gICAgLy8gQmFja2VuZCBzZW1hbnRpY3Mgc2hvdyBIYXNQcmV2aW91c1BhZ2UgYXMgUGFnZUluZGV4ID4gMVxuICAgIHJlc3VsdC5oYXNQcmV2aW91c1BhZ2UgPSByZXN1bHQucGFnZUluZGV4ID4gMTtcbiAgICByZXN1bHQuaGFzTmV4dFBhZ2UgPSByZXN1bHQucGFnZUluZGV4IDwgcmVzdWx0LnRvdGFsUGFnZXM7XG4gICAgcmVzdWx0Lm1ldGFkYXRhID0gbWV0YWRhdGE7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbiJdfQ==","import { HttpClientFactory } from '@acontplus/core';\nimport { CUSTOMER_API } from '../constants/customer.constants';\nexport class CustomerExternalHttpRepository {\n get http() {\n return HttpClientFactory.getClient(); // siempre toma el último cliente configurado\n }\n get url() {\n return `${CUSTOMER_API.BILLING}/Consultas/`;\n }\n getById(identification) {\n const id = identification.getId();\n let endpoint = '';\n if (identification.isValidRuc()) {\n endpoint = `GetRucSRI?Ruc=${id}`;\n }\n else if (identification.isValidCedula()) {\n endpoint = `GetCedulaSri?Ruc=${id}`;\n }\n else {\n throw new Error('Número de identificación inválido para SRI');\n }\n return this.http.get(`${this.url}${endpoint}`).then(response => {\n const idCard = response.numeroRuc ? response.numeroRuc : response.identificacion;\n const businessName = response.razonSocial ? response.razonSocial : response.nombreCompleto;\n const data = {\n phone: response.telefono,\n email: response.email,\n idCard,\n businessName,\n address: response.direccion,\n };\n return {\n status: response.error ? 'warning' : 'success',\n code: response.error ? 'EXTERNAL_API_ERROR' : 'SUCCESS',\n data,\n message: response.error ?? 'External API call completed',\n timestamp: new Date().toISOString(),\n };\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZXh0ZXJuYWwtaHR0cC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9yZXBvc2l0b3JpZXMvY3VzdG9tZXItZXh0ZXJuYWwtaHR0cC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxpQkFBaUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0QsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxJQUFZLElBQUk7UUFDZCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsNkNBQTZDO0lBQ3JGLENBQUM7SUFFRCxJQUFZLEdBQUc7UUFDYixPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsY0FBc0M7UUFDNUMsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDbkMsQ0FBQzthQUFNLElBQUksY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUMsUUFBUSxHQUFHLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNqRixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzNGLE1BQU0sSUFBSSxHQUFxQjtnQkFDN0IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRO2dCQUN4QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE1BQU07Z0JBQ04sWUFBWTtnQkFDWixPQUFPLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDNUIsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDOUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN2RCxJQUFJO2dCQUNKLE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLDZCQUE2QjtnQkFDeEQsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ2hCLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlSZXNwb25zZSwgSHR0cENsaWVudEZhY3RvcnksIElkZW50aWZpY2F0aW9uTnVtYmVyVm8gfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuaW1wb3J0IHsgQ1VTVE9NRVJfQVBJIH0gZnJvbSAnLi4vY29uc3RhbnRzL2N1c3RvbWVyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDdXN0b21lckV4dGVybmFsUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDdXN0b21lckV4dGVybmFsIH0gZnJvbSAnLi4vLi4vZG9tYWluL2VudGl0aWVzL2N1c3RvbWVyLWV4dGVybmFsLmVudGl0eSc7XG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJFeHRlcm5hbEh0dHBSZXBvc2l0b3J5IGltcGxlbWVudHMgQ3VzdG9tZXJFeHRlcm5hbFJlcG9zaXRvcnkge1xuICBwcml2YXRlIGdldCBodHRwKCkge1xuICAgIHJldHVybiBIdHRwQ2xpZW50RmFjdG9yeS5nZXRDbGllbnQoKTsgLy8gc2llbXByZSB0b21hIGVsIMO6bHRpbW8gY2xpZW50ZSBjb25maWd1cmFkb1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdXJsKCkge1xuICAgIHJldHVybiBgJHtDVVNUT01FUl9BUEkuQklMTElOR30vQ29uc3VsdGFzL2A7XG4gIH1cblxuICBnZXRCeUlkKGlkZW50aWZpY2F0aW9uOiBJZGVudGlmaWNhdGlvbk51bWJlclZvKTogUHJvbWlzZTxBcGlSZXNwb25zZTxDdXN0b21lckV4dGVybmFsPj4ge1xuICAgIGNvbnN0IGlkID0gaWRlbnRpZmljYXRpb24uZ2V0SWQoKTtcblxuICAgIGxldCBlbmRwb2ludCA9ICcnO1xuICAgIGlmIChpZGVudGlmaWNhdGlvbi5pc1ZhbGlkUnVjKCkpIHtcbiAgICAgIGVuZHBvaW50ID0gYEdldFJ1Y1NSST9SdWM9JHtpZH1gO1xuICAgIH0gZWxzZSBpZiAoaWRlbnRpZmljYXRpb24uaXNWYWxpZENlZHVsYSgpKSB7XG4gICAgICBlbmRwb2ludCA9IGBHZXRDZWR1bGFTcmk/UnVjPSR7aWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOw7ptZXJvIGRlIGlkZW50aWZpY2FjacOzbiBpbnbDoWxpZG8gcGFyYSBTUkknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMudXJsfSR7ZW5kcG9pbnR9YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICBjb25zdCBpZENhcmQgPSByZXNwb25zZS5udW1lcm9SdWMgPyByZXNwb25zZS5udW1lcm9SdWMgOiByZXNwb25zZS5pZGVudGlmaWNhY2lvbjtcbiAgICAgIGNvbnN0IGJ1c2luZXNzTmFtZSA9IHJlc3BvbnNlLnJhem9uU29jaWFsID8gcmVzcG9uc2UucmF6b25Tb2NpYWwgOiByZXNwb25zZS5ub21icmVDb21wbGV0bztcbiAgICAgIGNvbnN0IGRhdGE6IEN1c3RvbWVyRXh0ZXJuYWwgPSB7XG4gICAgICAgIHBob25lOiByZXNwb25zZS50ZWxlZm9ubyxcbiAgICAgICAgZW1haWw6IHJlc3BvbnNlLmVtYWlsLFxuICAgICAgICBpZENhcmQsXG4gICAgICAgIGJ1c2luZXNzTmFtZSxcbiAgICAgICAgYWRkcmVzczogcmVzcG9uc2UuZGlyZWNjaW9uLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogcmVzcG9uc2UuZXJyb3IgPyAnd2FybmluZycgOiAnc3VjY2VzcycsXG4gICAgICAgIGNvZGU6IHJlc3BvbnNlLmVycm9yID8gJ0VYVEVSTkFMX0FQSV9FUlJPUicgOiAnU1VDQ0VTUycsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLmVycm9yID8/ICdFeHRlcm5hbCBBUEkgY2FsbCBjb21wbGV0ZWQnLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH0gYXMgQXBpUmVzcG9uc2U8YW55PjtcbiAgICB9KTtcbiAgfVxufVxuXG4iXX0=","import { CustomerFormDataMapper } from '../mappers/customer-form-data.mapper';\nimport { ListCustomerMapper } from '../mappers/customer-list.mapper';\nimport { CustomerGetByIdMapper } from '../mappers/customer-get-by-id.mapper';\nimport { CustomerCreateUpdateMapper } from '../mappers/customer-create-update.mapper';\nimport { CompanySearchMapper } from '../mappers/company-search.mapper';\nimport { HttpClientFactory } from '@acontplus/core';\nimport { CUSTOMER_API } from '../constants/customer.constants';\nexport class CustomerHttpRepository {\n get http() {\n return HttpClientFactory.getClient(); // siempre toma el último cliente configurado\n }\n get url() {\n return `${CUSTOMER_API.BILLING}/CompanyCustomer/`;\n }\n checkExistence(identificationNumber) {\n const searchPayload = JSON.stringify({\n textSearch: identificationNumber,\n tipo: 3,\n });\n return this.http.get(`${this.url}?json=${searchPayload}`).then(response => {\n const result = {\n status: 'warning',\n code: response.code ?? 'UNKNOWN_ERROR',\n data: null,\n message: response.message ?? 'Unknown error occurred',\n timestamp: new Date().toISOString(),\n };\n if (response.code === '1' && response.payload) {\n const parsedData = JSON.parse(response.payload);\n if (Array.isArray(parsedData) && parsedData.length > 0 && Array.isArray(parsedData[0])) {\n const [customer] = parsedData[0];\n if (customer) {\n result.status = 'success';\n result.data = customer;\n }\n }\n }\n return result;\n });\n }\n getFormData() {\n const json = CustomerFormDataMapper.toJson();\n return this.http.get(`${this.url}?json=${json}`).then((response) => {\n const data = CustomerFormDataMapper.fromJson(response);\n return {\n status: 'success',\n code: response.code ?? 'SUCCESS',\n data,\n timestamp: new Date().toISOString(),\n };\n });\n }\n getAll(obj) {\n const json = ListCustomerMapper.toJson(obj);\n return this.http\n .get(`${this.url}?json=${json}`)\n .then((response) => {\n const data = ListCustomerMapper.fromJson(response);\n return {\n status: 'success',\n code: response.code ?? 'SUCCESS',\n data,\n timestamp: new Date().toISOString(),\n };\n });\n }\n create(dto) {\n return this.http\n .post(this.url, { data: CustomerCreateUpdateMapper.toJson(dto.data) })\n .then(response => {\n console.log(response);\n const data = CustomerCreateUpdateMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n data,\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n };\n });\n }\n update(dto) {\n return this.http\n .put(`${this.url}${dto.id}`, {\n data: CustomerCreateUpdateMapper.toJson(dto.data),\n })\n .then(response => {\n console.log(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n };\n });\n }\n updateState(id) {\n return this.http.delete(`${this.url}${id}`).then(response => {\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code,\n message: response.message,\n timestamp: new Date().toISOString(),\n };\n });\n }\n getById(id) {\n return this.http\n .get(`${this.url}GetId/${id}`)\n .then(response => {\n const data = CustomerGetByIdMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n data,\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n };\n });\n }\n search(params) {\n const json = CompanySearchMapper.toJson(params);\n return this.http.get(`${this.url}Search?json=${json}`).then(response => {\n const data = CompanySearchMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code,\n data,\n message: response.message,\n timestamp: new Date().toISOString(),\n };\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItaHR0cC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9yZXBvc2l0b3JpZXMvY3VzdG9tZXItaHR0cC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBZSxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQVksSUFBSTtRQUNkLE9BQU8saUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyw2Q0FBNkM7SUFDckYsQ0FBQztJQUVELElBQVksR0FBRztRQUNiLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxtQkFBbUIsQ0FBQztJQUNwRCxDQUFDO0lBRUQsY0FBYyxDQUFDLG9CQUE0QjtRQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25DLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsSUFBSSxFQUFFLENBQUM7U0FDUixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsU0FBUyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUks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QUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsRixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEQsT0FBTztnQkFDTCxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDckQsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUNuQixJQUFJO2dCQUNKLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztnQkFDekIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ2hCLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21lckZvcm1EYXRhTWFwcGVyIH0gZnJvbSAnLi4vbWFwcGVycy9jdXN0b21lci1mb3JtLWRhdGEubWFwcGVyJztcbmltcG9ydCB7IExpc3RDdXN0b21lck1hcHBlciB9IGZyb20gJy4uL21hcHBlcnMvY3VzdG9tZXItbGlzdC5tYXBwZXInO1xuaW1wb3J0IHsgQ3VzdG9tZXJSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEN1c3RvbWVyR2V0QnlJZE1hcHBlciB9IGZyb20gJy4uL21hcHBlcnMvY3VzdG9tZXItZ2V0LWJ5LWlkLm1hcHBlcic7XG5pbXBvcnQgeyBDdXN0b21lckNyZWF0ZVVwZGF0ZU1hcHBlciB9IGZyb20gJy4uL21hcHBlcnMvY3VzdG9tZXItY3JlYXRlLXVwZGF0ZS5tYXBwZXInO1xuaW1wb3J0IHsgQ3VzdG9tZXJTZWFyY2ggfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi9tb2RlbHMvY3VzdG9tZXItc2VhcmNoJztcbmltcG9ydCB7IENvbXBhbnlTZWFyY2hNYXBwZXIgfSBmcm9tICcuLi9tYXBwZXJzL2NvbXBhbnktc2VhcmNoLm1hcHBlcic7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgSHR0cENsaWVudEZhY3RvcnksIFBhZ2VkUmVzdWx0IH0gZnJvbSAnQGFjb250cGx1cy9jb3JlJztcbmltcG9ydCB7IENVU1RPTUVSX0FQSSB9IGZyb20gJy4uL2NvbnN0YW50cy9jdXN0b21lci5jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJIdHRwUmVwb3NpdG9yeSBpbXBsZW1lbnRzIEN1c3RvbWVyUmVwb3NpdG9yeSB7XG4gIHByaXZhdGUgZ2V0IGh0dHAoKSB7XG4gICAgcmV0dXJuIEh0dHBDbGllbnRGYWN0b3J5LmdldENsaWVudCgpOyAvLyBzaWVtcHJlIHRvbWEgZWwgw7psdGltbyBjbGllbnRlIGNvbmZpZ3VyYWRvXG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke0NVU1RPTUVSX0FQSS5CSUxMSU5HfS9Db21wYW55Q3VzdG9tZXIvYDtcbiAgfVxuXG4gIGNoZWNrRXhpc3RlbmNlKGlkZW50aWZpY2F0aW9uTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPEFwaVJlc3BvbnNlPGFueT4+IHtcbiAgICBjb25zdCBzZWFyY2hQYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdGV4dFNlYXJjaDogaWRlbnRpZmljYXRpb25OdW1iZXIsXG4gICAgICB0aXBvOiAzLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy51cmx9P2pzb249JHtzZWFyY2hQYXlsb2FkfWApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0OiBBcGlSZXNwb25zZTxhbnk+ID0ge1xuICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJyxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSA/PyAnVU5LTk9XTl9FUlJPUicsXG4gICAgICAgIGRhdGE6IG51bGwgYXMgYW55LFxuICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlID8/ICdVbmtub3duIGVycm9yIG9jY3VycmVkJyxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgaWYgKHJlc3BvbnNlLmNvZGUgPT09ICcxJyAmJiByZXNwb25zZS5wYXlsb2FkKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnBheWxvYWQpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSAmJiBwYXJzZWREYXRhLmxlbmd0aCA+IDAgJiYgQXJyYXkuaXNBcnJheShwYXJzZWREYXRhWzBdKSkge1xuICAgICAgICAgIGNvbnN0IFtjdXN0b21lcl0gPSBwYXJzZWREYXRhWzBdO1xuICAgICAgICAgIGlmIChjdXN0b21lcikge1xuICAgICAgICAgICAgcmVzdWx0LnN0YXR1cyA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgIHJlc3VsdC5kYXRhID0gY3VzdG9tZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Rm9ybURhdGEoKTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgY29uc3QganNvbiA9IEN1c3RvbWVyRm9ybURhdGFNYXBwZXIudG9Kc29uKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnVybH0/anNvbj0ke2pzb259YCkudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IEN1c3RvbWVyRm9ybURhdGFNYXBwZXIuZnJvbUpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICAgIGNvZGU6IHJlc3BvbnNlLmNvZGUgPz8gJ1NVQ0NFU1MnLFxuICAgICAgICBkYXRhLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH0gYXMgQXBpUmVzcG9uc2U8YW55PjtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEFsbDxUPihvYmo6IFQpOiBQcm9taXNlPEFwaVJlc3BvbnNlPFBhZ2VkUmVzdWx0PGFueT4+PiB7XG4gICAgY29uc3QganNvbiA9IExpc3RDdXN0b21lck1hcHBlci50b0pzb24ob2JqKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy51cmx9P2pzb249JHtqc29ufWApXG4gICAgICAudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gTGlzdEN1c3RvbWVyTWFwcGVyLmZyb21Kc29uKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgICBjb2RlOiByZXNwb25zZS5jb2RlID8/ICdTVUNDRVNTJyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9IGFzIEFwaVJlc3BvbnNlPFBhZ2VkUmVzdWx0PGFueT4+O1xuICAgICAgfSk7XG4gIH1cblxuICBjcmVhdGUoZHRvOiBhbnkpOiBQcm9taXNlPEFwaVJlc3BvbnNlPGFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxBcGlSZXNwb25zZT4odGhpcy51cmwsIHsgZGF0YTogQ3VzdG9tZXJDcmVhdGVVcGRhdGVNYXBwZXIudG9Kc29uKGR0by5kYXRhKSB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBDdXN0b21lckNyZWF0ZVVwZGF0ZU1hcHBlci5mcm9tSnNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5jb2RlID09PSAnMScgPyAnc3VjY2VzcycgOiAnd2FybmluZycsXG4gICAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSA/PyAnT1BFUkFUSU9OX0ZBSUxFRCcsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlID8/ICdPcGVyYXRpb24gY29tcGxldGVkIHdpdGggaXNzdWVzJyxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfSBhcyBBcGlSZXNwb25zZTxhbnk+O1xuICAgICAgfSk7XG4gIH1cbiAgdXBkYXRlKGR0bzogYW55KTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dDxBcGlSZXNwb25zZT4oYCR7dGhpcy51cmx9JHtkdG8uaWR9YCwge1xuICAgICAgICBkYXRhOiBDdXN0b21lckNyZWF0ZVVwZGF0ZU1hcHBlci50b0pzb24oZHRvLmRhdGEpLFxuICAgICAgfSlcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1czogcmVzcG9uc2UuY29kZSA9PT0gJzEnID8gJ3N1Y2Nlc3MnIDogJ3dhcm5pbmcnLFxuICAgICAgICAgIGNvZGU6IHJlc3BvbnNlLmNvZGUgPz8gJ09QRVJBVElPTl9GQUlMRUQnLFxuICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgPz8gJ09wZXJhdGlvbiBjb21wbGV0ZWQgd2l0aCBpc3N1ZXMnLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9IGFzIEFwaVJlc3BvbnNlPGFueT47XG4gICAgICB9KTtcbiAgfVxuICB1cGRhdGVTdGF0ZShpZDogbnVtYmVyKTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpUmVzcG9uc2U+KGAke3RoaXMudXJsfSR7aWR9YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLmNvZGUgPT09ICcxJyA/ICdzdWNjZXNzJyA6ICd3YXJuaW5nJyxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9IGFzIEFwaVJlc3BvbnNlPGFueT47XG4gICAgfSk7XG4gIH1cbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMudXJsfUdldElkLyR7aWR9YClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEN1c3RvbWVyR2V0QnlJZE1hcHBlci5mcm9tSnNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5jb2RlID09PSAnMScgPyAnc3VjY2VzcycgOiAnd2FybmluZycsXG4gICAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSA/PyAnT1BFUkFUSU9OX0ZBSUxFRCcsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlID8/ICdPcGVyYXRpb24gY29tcGxldGVkIHdpdGggaXNzdWVzJyxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfSBhcyBBcGlSZXNwb25zZTxhbnk+O1xuICAgICAgfSk7XG4gIH1cblxuICBzZWFyY2gocGFyYW1zOiBDdXN0b21lclNlYXJjaCk6IFByb21pc2U8QXBpUmVzcG9uc2U8YW55Pj4ge1xuICAgIGNvbnN0IGpzb24gPSBDb21wYW55U2VhcmNoTWFwcGVyLnRvSnNvbihwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPihgJHt0aGlzLnVybH1TZWFyY2g/anNvbj0ke2pzb259YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gQ29tcGFueVNlYXJjaE1hcHBlci5mcm9tSnNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLmNvZGUgPT09ICcxJyA/ICdzdWNjZXNzJyA6ICd3YXJuaW5nJyxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9IGFzIEFwaVJlc3BvbnNlPGFueT47XG4gICAgfSk7XG4gIH1cbn1cblxuIl19","import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { forkJoin, from } from 'rxjs';\nimport { NotificationService } from '@acontplus/ng-notifications';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, } from '@angular/material/dialog';\nimport { MatDynamicCardComponent, MatInputChipComponent, MatThemeButtonComponent, } from '@acontplus/ng-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators, } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport { SEPARADORES_REGEX, SEPARATOR_KEY_CODE, SRI_DOCUMENT_TYPE, isSuccessResponse, } from '@acontplus/core';\nimport { ToUpperCaseDirective } from '@acontplus/ng-components';\nimport { CustomerUseCase } from '../../../application/use-cases/customer.use-case';\nimport { CustomerExternalUseCase } from '../../../application/use-cases/customer-external.use-case';\nimport { CustomerHttpRepository } from '../../../infrastructure/repositories/customer-http.repository';\nimport { CustomerExternalHttpRepository } from '../../../infrastructure/repositories/customer-external-http.repository';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/tabs\";\nimport * as i4 from \"@angular/material/form-field\";\nimport * as i5 from \"@angular/material/input\";\nimport * as i6 from \"@angular/material/select\";\nimport * as i7 from \"@angular/material/slide-toggle\";\nimport * as i8 from \"@angular/material/datepicker\";\nexport class CustomerAddEditComponent {\n dialogRef = inject((MatDialogRef));\n customerUseCase = inject(CustomerUseCase);\n customerExternalUseCase = inject(CustomerExternalUseCase);\n btnText = signal('Guardar', ...(ngDevMode ? [{ debugName: \"btnText\" }] : []));\n paramsOptions = inject(MAT_DIALOG_DATA);\n params = this.paramsOptions.data;\n notificationService = inject(NotificationService);\n title = 'Nuevo Cliente';\n loading = false;\n emails = [];\n telephones = [];\n tiemposCredito = signal([], ...(ngDevMode ? [{ debugName: \"tiemposCredito\" }] : []));\n tipoContribuyentes = signal([], ...(ngDevMode ? [{ debugName: \"tipoContribuyentes\" }] : []));\n tiposCliente = signal([], ...(ngDevMode ? [{ debugName: \"tiposCliente\" }] : []));\n tiposIdentificacion = signal([], ...(ngDevMode ? [{ debugName: \"tiposIdentificacion\" }] : []));\n formasPagoSri = signal([], ...(ngDevMode ? [{ debugName: \"formasPagoSri\" }] : []));\n placas = signal([], ...(ngDevMode ? [{ debugName: \"placas\" }] : []));\n ciudades = signal([], ...(ngDevMode ? [{ debugName: \"ciudades\" }] : []));\n cargos = signal([], ...(ngDevMode ? [{ debugName: \"cargos\" }] : []));\n empresas = signal([], ...(ngDevMode ? [{ debugName: \"empresas\" }] : []));\n employees = signal([], ...(ngDevMode ? [{ debugName: \"employees\" }] : []));\n maritalStatuses = signal([], ...(ngDevMode ? [{ debugName: \"maritalStatuses\" }] : []));\n housingTypes = signal([], ...(ngDevMode ? [{ debugName: \"housingTypes\" }] : []));\n showRefresh = signal(true, ...(ngDevMode ? [{ debugName: \"showRefresh\" }] : []));\n endsWith001Validator(control) {\n const value = control.value;\n if (value && value.length >= 3) {\n if (!value.endsWith('001')) {\n return { endsWith001: true };\n }\n }\n return null;\n }\n customerForm = new FormGroup({\n direccion: new FormControl('', Validators.required),\n idCargo: new FormControl(0),\n idCliente: new FormControl(0),\n idEmpresa: new FormControl(0),\n idFormaPagoSri: new FormControl(0),\n idTipoClienteProveedor: new FormControl(0),\n idTipoEntidad: new FormControl(0),\n idCiudad: new FormControl(0),\n idEmpleado: new FormControl(0),\n nombreFiscal: new FormControl('', Validators.required),\n nombreComercial: new FormControl(''),\n numeroIdentificacion: new FormControl({ value: '', disabled: false }, [\n Validators.required,\n Validators.minLength(13),\n Validators.maxLength(13),\n this.endsWith001Validator,\n ]),\n correo: new FormControl(''),\n telefono: new FormControl(''),\n placa: new FormControl(''),\n nota: new FormControl(''),\n estado: new FormControl(false),\n birthDate: new FormControl(null),\n validationSri: new FormControl(false),\n configValorBruto: new FormControl(false),\n dataInfoCred: new FormGroup({\n maritalStatusId: new FormControl(null),\n conyugeNombre: new FormControl(null),\n conyugeTel: new FormControl(null),\n refFamNombre: new FormControl(null),\n refFamTel: new FormControl(null),\n housingTypeId: new FormControl(null),\n dirVivienda: new FormControl(null),\n refDomicilio: new FormControl(null),\n sector: new FormControl(null),\n barrio: new FormControl(null),\n calle: new FormControl(null),\n }),\n });\n getCustomer(codigo, id) {\n this.customerForm.patchValue({\n validationSri: false,\n });\n from(this.customerUseCase.checkExistence(id)).subscribe(response => {\n if (isSuccessResponse(response) && response.data) {\n alert('El cliente ya se encuentra registrado en su empresa');\n this.notificationService.toastr.show({\n type: 'warning',\n message: 'El cliente ya se encuentra registrado en su empresa',\n });\n this.customerForm.patchValue({ numeroIdentificacion: null });\n return;\n }\n if (codigo === SRI_DOCUMENT_TYPE.PASSPORT) {\n this.customerForm.patchValue({\n validationSri: true,\n });\n return;\n }\n from(this.customerExternalUseCase.getById(id)).subscribe(secondResponse => {\n if (!isSuccessResponse(secondResponse) || !secondResponse.data) {\n this.notificationService.toastr.show({\n type: 'info',\n message: ' No se encontró información en el SRI',\n });\n return;\n }\n const { phone, email, idCard, // numeroRuc\n businessName, // razonSocial\n address, // direccion\n } = secondResponse.data;\n if (phone && typeof phone === 'string') {\n this.telephones = phone.split(SEPARADORES_REGEX) || [];\n }\n if (email && typeof email === 'string') {\n this.emails = email.split(SEPARADORES_REGEX) || [];\n }\n if (idCard) {\n this.customerForm.patchValue({\n numeroIdentificacion: idCard,\n nombreFiscal: businessName,\n validationSri: true,\n direccion: address,\n nombreComercial: businessName,\n });\n }\n });\n });\n }\n getLoadData() {\n if (this.isUpdate()) {\n return forkJoin([\n from(this.customerUseCase.getFormData()),\n from(this.customerUseCase.getById(this.params.id)),\n ]);\n }\n return from(this.customerUseCase.getFormData());\n }\n ngOnInit() {\n try {\n this.getLoadData().subscribe(response => {\n let mainDataForm = {};\n let dataCompanyCustomer = {};\n if (Array.isArray(response)) {\n mainDataForm = response[0].data;\n dataCompanyCustomer = response[1];\n }\n else {\n mainDataForm = response.data;\n }\n this.tiposIdentificacion.set(mainDataForm.tipoIdentificacion);\n this.tiemposCredito.set(mainDataForm.tiempoCreditos);\n this.tipoContribuyentes.set(mainDataForm.tipoContribuyentes);\n this.formasPagoSri.set(mainDataForm.formasPagoSri);\n this.tiposCliente.set(mainDataForm.tiposCliente);\n this.ciudades.set(mainDataForm.ciudades);\n this.cargos.set(mainDataForm.cargos);\n this.empresas.set(mainDataForm.empresas);\n this.employees.set(mainDataForm.employees);\n this.maritalStatuses.set(mainDataForm.maritalStatuses);\n this.housingTypes.set(mainDataForm.housingTypes);\n if (this.isDataOfSri()) {\n const { codigoSri, numeroIdentificacion } = this.params;\n const dataIdentificacion = this.tiposIdentificacion().find((ti) => ti.codigoSri === codigoSri);\n if (dataIdentificacion) {\n const idTipoIdentificacionCtrl = this.customerForm.get('idTipoIdentificacion');\n idTipoIdentificacionCtrl?.setValue(dataIdentificacion.idTipoIdentificacion);\n const numeroIdentificacionCtrl = this.customerForm.get('numeroIdentificacion');\n numeroIdentificacionCtrl?.setValue(numeroIdentificacion);\n const idTiempoCreditoCtrl = this.customerForm.get('idTiempoCredito');\n idTiempoCreditoCtrl?.setValue(this.tiemposCredito().length > 0\n ? this.tiemposCredito()[0].idTiempoCredito\n : 0);\n this.updateFormControlNumeroIdentificacion(dataIdentificacion.codigoSri);\n this.onKeyDownGovernmentId();\n }\n return;\n }\n if (this.isCreate()) {\n const dataIdentificacion = this.tiposIdentificacion().find((ti) => ti.codigoSri === SRI_DOCUMENT_TYPE.RUC);\n if (dataIdentificacion) {\n const idTipoIdentificacionCtrl = this.customerForm.get('idTipoIdentificacion');\n idTipoIdentificacionCtrl?.setValue(dataIdentificacion.idTipoIdentificacion);\n this.setIdentificationTypeChange(dataIdentificacion.codigoSri);\n }\n const idTiempoCreditoCtrl = this.customerForm.get('idTiempoCredito');\n idTiempoCreditoCtrl?.setValue(this.tiemposCredito().length > 0\n ? this.tiemposCredito()[0].idTiempoCredito\n : 0);\n }\n else {\n this.title = 'Editar Cliente';\n this.btnText.set('Actualizar');\n this.emails = dataCompanyCustomer.correos;\n this.telephones = dataCompanyCustomer.telefonos;\n this.placas.set(dataCompanyCustomer.placas);\n const { dataInfoCred, ...rest } = dataCompanyCustomer;\n this.customerForm.patchValue(rest);\n if (dataInfoCred) {\n this.customerForm.get('dataInfoCred')?.patchValue(dataInfoCred);\n }\n this.updateFormControlNumeroIdentificacion(rest.codigoSri);\n }\n });\n }\n catch (error) {\n // Handle error appropriately\n }\n }\n identificationTypeChange(event) {\n const dt = this.tiposIdentificacion().find(item => item.idTipoIdentificacion === Number(event.value));\n this.setIdentificationTypeChange(dt.codigoSri);\n }\n updateFormControlNumeroIdentificacion(codigoSri) {\n const idNumberControl = this.customerForm.get('numeroIdentificacion');\n this.showRefresh.set(false);\n if ([SRI_DOCUMENT_TYPE.RUC, SRI_DOCUMENT_TYPE.CEDULA].includes(codigoSri)) {\n let lengthValidator;\n this.showRefresh.set(true);\n if (codigoSri === SRI_DOCUMENT_TYPE.CEDULA) {\n lengthValidator = [Validators.minLength(10), Validators.maxLength(10)];\n }\n else if (codigoSri === SRI_DOCUMENT_TYPE.RUC) {\n lengthValidator = [\n Validators.minLength(13),\n Validators.maxLength(13),\n this.endsWith001Validator,\n ];\n }\n if (lengthValidator) {\n idNumberControl?.setValidators([\n Validators.required,\n Validators.pattern(/^\\d+$/), // Solo números\n ...lengthValidator,\n ]);\n }\n }\n else {\n idNumberControl?.setValidators([Validators.required]);\n }\n idNumberControl?.updateValueAndValidity();\n }\n setIdentificationTypeChange(codigoSri) {\n const idNumberControl = this.customerForm.get('numeroIdentificacion');\n idNumberControl?.reset();\n idNumberControl?.clearValidators();\n this.updateFormControlNumeroIdentificacion(codigoSri);\n }\n get numeroIdentificacionControl() {\n return this.customerForm.get('numeroIdentificacion');\n }\n get birthDateCtrl() {\n return this.customerForm.get('birthDate');\n }\n onKeyDownGovernmentId($event) {\n if ($event) {\n $event.preventDefault();\n }\n if (this.numeroIdentificacionControl?.invalid)\n return;\n const idTipoIdentificacion = this.customerForm.get('idTipoIdentificacion')?.value;\n const numeroIdentificacion = this.customerForm.get('numeroIdentificacion')?.value;\n const codigoSri = this.tiposIdentificacion().find((x) => x.idTipoIdentificacion == idTipoIdentificacion).codigoSri;\n if (numeroIdentificacion) {\n this.getCustomer(codigoSri, numeroIdentificacion);\n }\n }\n isDataOfSri = () => this.params.dataOfSri;\n isCreate = () => !(this.params.id > 0);\n isUpdate = () => this.params.id > 0;\n onSave() {\n this.customerForm.patchValue({\n telefono: this.telephones.length > 0 ? this.telephones.join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n this.customerForm.patchValue({\n correo: this.emails.length > 0 ? this.emails.join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n this.customerForm.patchValue({\n placa: this.placas().length > 0 ? this.placas().join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n const dataForm = {\n ...this.customerForm.value,\n };\n if (this.customerForm.invalid) {\n this.notificationService.toastr.show({\n type: 'warning',\n message: 'Ingrese todos datos requeridos',\n });\n return;\n }\n if (this.isUpdate()) {\n const sendParams = {\n id: this.params.id,\n data: dataForm,\n };\n from(this.customerUseCase.update(sendParams)).subscribe(response => {\n this.notificationService.toastr.show({\n type: isSuccessResponse(response) ? 'success' : 'warning',\n message: `${response.message}`,\n });\n if (isSuccessResponse(response)) {\n this.dialogRef.close({\n id: this.params.id,\n });\n }\n });\n }\n if (this.isCreate()) {\n from(this.customerUseCase.create(dataForm)).subscribe(response => {\n this.notificationService.toastr.show({\n type: isSuccessResponse(response) ? 'success' : 'warning',\n message: `${response.message}`,\n });\n if (isSuccessResponse(response)) {\n this.dialogRef.close(response.data);\n }\n });\n }\n }\n close() {\n this.dialogRef.close();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerAddEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.2\", type: CustomerAddEditComponent, isStandalone: true, selector: \"acp-customer-add-edit\", providers: [\n provideNativeDateAdapter(),\n {\n provide: CustomerUseCase,\n useFactory: () => new CustomerUseCase(new CustomerHttpRepository()),\n },\n {\n provide: CustomerExternalUseCase,\n useFactory: () => new CustomerExternalUseCase(new CustomerExternalHttpRepository()),\n },\n ], ngImport: i0, template: \"<mat-dialog-content>\\n <form\\n (ngSubmit)=\\\"onSave()\\\"\\n id=\\\"formCompanyCustomer\\\"\\n [formGroup]=\\\"customerForm\\\"\\n autocomplete=\\\"off\\\"\\n >\\n <mat-tab-group>\\n <mat-tab label=\\\"DATOS PRINCIPALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Identificaci\\u00F3n: </mat-label>\\n <mat-select\\n formControlName=\\\"idTipoIdentificacion\\\"\\n (selectionChange)=\\\"identificationTypeChange($event)\\\"\\n >\\n @for (item of tiposIdentificacion(); track $index) {\\n <mat-option [value]=\\\"item.idTipoIdentificacion\\\">{{\\n item.descripcion\\n }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>N\\u00FAmero de Identificaci\\u00F3n</mat-label>\\n <input\\n type=\\\"text\\\"\\n matInput\\n (keydown.enter)=\\\"onKeyDownGovernmentId($event)\\\"\\n formControlName=\\\"numeroIdentificacion\\\"\\n />\\n @if (\\n numeroIdentificacionControl?.invalid &&\\n (numeroIdentificacionControl?.dirty || numeroIdentificacionControl?.touched)\\n ) {\\n @if (numeroIdentificacionControl?.hasError('required')) {\\n <mat-error> El n\\u00FAmero de identificaci\\u00F3n es obligatorio. </mat-error>\\n }\\n\\n @if (numeroIdentificacionControl?.hasError('minlength')) {\\n <mat-error>\\n Debe tener al menos\\n {{ numeroIdentificacionControl?.errors?.['minlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('maxlength')) {\\n <mat-error>\\n No puede tener m\\u00E1s de\\n {{ numeroIdentificacionControl?.errors?.['maxlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('pattern')) {\\n <mat-error> Solo se permiten caracteres num\\u00E9ricos. </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('endsWith001')) {\\n <mat-error> Los \\u00FAltimos tres d\\u00EDgitos deben ser 001. </mat-error>\\n }\\n }\\n\\n @if (showRefresh()) {\\n <ng-container matSuffix>\\n <button type=\\\"button\\\" mat-icon-button (click)=\\\"onKeyDownGovernmentId($event)\\\">\\n <mat-icon>refresh</mat-icon>\\n </button>\\n </ng-container>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Fiscal:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreFiscal\\\"\\n id=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Comercial:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n type=\\\"text\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div>\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"direccion\\\"\\n placeholder=\\\"AV. 09 DE OCTUBRE...\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"emails\\\" [labelText]=\\\"'Correo'\\\" />\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"telephones\\\" [labelText]=\\\"'Tel\\u00E9fono'\\\" />\\n </div>\\n </div>\\n\\n @if (isUpdate()) {\\n <div class=\\\"vstack gap-2 mt-2\\\">\\n <span>Estado</span>\\n <mat-slide-toggle formControlName=\\\"estado\\\">\\n {{ customerForm.value.estado ? 'Activo' : 'Inactivo' }}\\n </mat-slide-toggle>\\n </div>\\n }\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"DATOS ADICIONALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n B\\u00E1sica\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Contribuyente: </mat-label>\\n <mat-select formControlName=\\\"idSubContribuyente\\\">\\n @for (item of tipoContribuyentes(); track $index) {\\n <mat-option [value]=\\\"item.idSubContribuyente\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tiempo Cr\\u00E9dito: </mat-label>\\n <mat-select formControlName=\\\"idTiempoCredito\\\">\\n @for (item of tiemposCredito(); track $index) {\\n <mat-option [value]=\\\"item.idTiempoCredito\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Ciudad</mat-label>\\n <mat-select formControlName=\\\"idCiudad\\\">\\n <mat-option [value]=\\\"0\\\">-- Ninguno --</mat-option>\\n @for (group of ciudades(); track $index) {\\n <mat-optgroup [label]=\\\"group.nombre\\\">\\n @for (item of group.ciudades; track $index) {\\n <mat-option [value]=\\\"item.idCiudad\\\">{{ item.nombre }}</mat-option>\\n }\\n </mat-optgroup>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Cliente: </mat-label>\\n <mat-select formControlName=\\\"idTipoClienteProveedor\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n @for (item of tiposCliente(); track $index) {\\n <mat-option [value]=\\\"item.idTipoClienteProveedor\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empresa: </mat-label>\\n <mat-select formControlName=\\\"idEmpresa\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of empresas(); track $index) {\\n <mat-option [value]=\\\"item.idEmpresa\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Fecha Nacimiento</mat-label>\\n <input matInput [matDatepicker]=\\\"birthDate\\\" formControlName=\\\"birthDate\\\" />\\n <mat-hint>MM/DD/YYYY</mat-hint>\\n <mat-datepicker-toggle matIconSuffix\\n [for]=\\\"birthDate\\\"\\n />\\n <mat-datepicker #birthDate />\\n @if (birthDateCtrl?.invalid && birthDateCtrl?.touched) {\\n <mat-error> Fecha inv\\u00E1lida </mat-error>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Laboral\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empleado: </mat-label>\\n <mat-select formControlName=\\\"idEmpleado\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of employees(); track $index) {\\n <mat-option [value]=\\\"item.idEmpleado\\\">\\n {{ item.nombreCompleto }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Cargo: </mat-label>\\n <mat-select formControlName=\\\"idCargo\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of cargos(); track $index) {\\n <mat-option [value]=\\\"item.idCargo\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Observaci\\u00F3n</mat-label>\\n <textarea matInput placeholder=\\\"...\\\" formControlName=\\\"nota\\\"></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Configuraci\\u00F3n Financiera\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-1 row-cols-xl-1 row-cols-lg-1 row-cols-md-1 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Forma de pago: </mat-label>\\n <mat-select formControlName=\\\"idFormaPagoSri\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of formasPagoSri(); track $index) {\\n <mat-option [value]=\\\"item.idFormaPagoSri\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip labelText=\\\"Placa\\\" [chips]=\\\"placas()\\\" />\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-checkbox formControlName=\\\"configValorBruto\\\"\\n >Activar configuraci\\u00F3n de valor bruto\\n <mat-icon\\n matTooltip=\\\"valor total de un bien o servicio sin incluir impuestos, deducciones o descuentos (uso dentro del reporte)\\\"\\n >info</mat-icon\\n ></mat-checkbox\\n >\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\"></div>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"INFORMACI\\u00D3N CREDITICIA\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Personal\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Estado Civil: </mat-label>\\n <mat-select formControlName=\\\"maritalStatusId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of maritalStatuses(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Esposo(a):</mat-label>\\n <input\\n matInput\\n formControlName=\\\"conyugeNombre\\\"\\n placeholder=\\\"Nombre del c\\u00F3nyuge\\\"\\n />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Personal:</mat-label>\\n <input matInput formControlName=\\\"conyugeTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Referencia:</mat-label>\\n <input matInput formControlName=\\\"refFamTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Referencia Familiar:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"refFamNombre\\\"\\n placeholder=\\\"Nombre de referencia familiar\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n de Vivienda\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo de Vivienda: </mat-label>\\n <mat-select formControlName=\\\"housingTypeId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of housingTypes(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Sector:</mat-label>\\n <input matInput formControlName=\\\"sector\\\" placeholder=\\\"Nombre del sector\\\" />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Barrio:</mat-label>\\n <input matInput formControlName=\\\"barrio\\\" placeholder=\\\"Nombre del barrio\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Calle:</mat-label>\\n <input matInput formControlName=\\\"calle\\\" placeholder=\\\"Nombre de la calle\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n Completa</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"dirVivienda\\\"\\n placeholder=\\\"Direcci\\u00F3n completa de la vivienda (Sector, Barrio y Calle)\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Descripci\\u00F3n del Punto de Referencia:</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"refDomicilio\\\"\\n placeholder=\\\"Descripci\\u00F3n detallada del punto de referencia\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n </div>\\n </mat-tab>\\n </mat-tab-group>\\n </form>\\n</mat-dialog-content>\\n<mat-dialog-actions>\\n <acp-mat-theme-button type=\\\"submit\\\" form=\\\"formCompanyCustomer\\\" [text]=\\\"btnText()\\\" />\\n<<<<<<<< HEAD:projects/acontplus-ui-components/src/lib/customers-ui/client/client-add-edit/client-add-edit.component.html\\n <acp-mat-theme-button type=\\\"button\\\" variant=\\\"dark\\\" text=\\\"Cerrar\\\" (handleClick)=\\\"close()\\\" />\\n========\\n>>>>>>>> e8b4dd251833a4e8d200bdc036806a3191730767:packages/ng-customer/src/lib/ui/components/customer-add-edit/customer-add-edit.component.html\\n</mat-dialog-actions>\\n\", styles: [\"\"], dependencies: [{ kind: \"directive\", type: MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"directive\", type: MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"directive\", type: i2.FormGroupName, selector: \"[formGroupName]\", inputs: [\"formGroupName\"] }, { kind: \"ngmodule\", type: MatTabsModule }, { kind: \"component\", type: i3.MatTab, selector: \"mat-tab\", inputs: [\"disabled\", \"label\", \"aria-label\", \"aria-labelledby\", \"labelClass\", \"bodyClass\", \"id\"], exportAs: [\"matTab\"] }, { kind: \"component\", type: i3.MatTabGroup, selector: \"mat-tab-group\", inputs: [\"color\", \"fitInkBarToContent\", \"mat-stretch-tabs\", \"mat-align-tabs\", \"dynamicHeight\", \"selectedIndex\", \"headerPosition\", \"animationDuration\", \"contentTabIndex\", \"disablePagination\", \"disableRipple\", \"preserveContent\", \"backgroundColor\", \"aria-label\", \"aria-labelledby\"], outputs: [\"selectedIndexChange\", \"focusChange\", \"animationDone\", \"selectedTabChange\"], exportAs: [\"matTabGroup\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i4.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i4.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i4.MatHint, selector: \"mat-hint\", inputs: [\"align\", \"id\"] }, { kind: \"directive\", type: i4.MatError, selector: \"mat-error, [matError]\", inputs: [\"id\"] }, { kind: \"directive\", type: i4.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i5.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i6.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i6.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"component\", type: i6.MatOptgroup, selector: \"mat-optgroup\", inputs: [\"label\", \"disabled\"], exportAs: [\"matOptgroup\"] }, { kind: \"ngmodule\", type: MatSlideToggleModule }, { kind: \"component\", type: i7.MatSlideToggle, selector: \"mat-slide-toggle\", inputs: [\"name\", \"id\", \"labelPosition\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"required\", \"color\", \"disabled\", \"disableRipple\", \"tabIndex\", \"checked\", \"hideIcon\", \"disabledInteractive\"], outputs: [\"change\", \"toggleChange\"], exportAs: [\"matSlideToggle\"] }, { kind: \"component\", type: MatInputChipComponent, selector: \"acp-mat-input-chip\", inputs: [\"chips\", \"labelText\", \"placelholder\"] }, { kind: \"directive\", type: ToUpperCaseDirective, selector: \"[acpToUpperCase]\" }, { kind: \"component\", type: MatCheckbox, selector: \"mat-checkbox\", inputs: [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-expanded\", \"aria-controls\", \"aria-owns\", \"id\", \"required\", \"labelPosition\", \"name\", \"value\", \"disableRipple\", \"tabIndex\", \"color\", \"disabledInteractive\", \"checked\", \"disabled\", \"indeterminate\"], outputs: [\"change\", \"indeterminateChange\"], exportAs: [\"matCheckbox\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i8.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i8.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i8.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"component\", type: MatThemeButtonComponent, selector: \"acp-mat-theme-button\", inputs: [\"variant\", \"text\", \"icon\", \"outlined\", \"disabled\", \"useThemeColor\", \"type\", \"matStyle\", \"title\", \"ariaLabel\", \"name\", \"id\", \"form\", \"tabIndex\", \"testId\"], outputs: [\"handleClick\"] }, { kind: \"component\", type: MatDynamicCardComponent, selector: \"acp-mat-dynamic-card\", inputs: [\"cardTitle\", \"cardSubtitle\", \"avatarImageUrl\", \"isHeaderVisible\", \"contentPadding\", \"hasDivider\", \"areActionsVisible\", \"primaryButtonText\", \"secondaryButtonText\", \"primaryButtonIcon\", \"secondaryButtonIcon\", \"buttonsPosition\"], outputs: [\"primaryButtonClicked\", \"secondaryButtonClicked\", \"cardClicked\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerAddEditComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-customer-add-edit', imports: [\n MatDialogContent,\n MatDialogActions,\n MatButtonModule,\n ReactiveFormsModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatSlideToggleModule,\n MatInputChipComponent,\n ToUpperCaseDirective,\n MatCheckbox,\n MatIcon,\n MatTooltip,\n MatDatepickerModule,\n MatThemeButtonComponent,\n MatDynamicCardComponent,\n ], providers: [\n provideNativeDateAdapter(),\n {\n provide: CustomerUseCase,\n useFactory: () => new CustomerUseCase(new CustomerHttpRepository()),\n },\n {\n provide: CustomerExternalUseCase,\n useFactory: () => new CustomerExternalUseCase(new CustomerExternalHttpRepository()),\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<mat-dialog-content>\\n <form\\n (ngSubmit)=\\\"onSave()\\\"\\n id=\\\"formCompanyCustomer\\\"\\n [formGroup]=\\\"customerForm\\\"\\n autocomplete=\\\"off\\\"\\n >\\n <mat-tab-group>\\n <mat-tab label=\\\"DATOS PRINCIPALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Identificaci\\u00F3n: </mat-label>\\n <mat-select\\n formControlName=\\\"idTipoIdentificacion\\\"\\n (selectionChange)=\\\"identificationTypeChange($event)\\\"\\n >\\n @for (item of tiposIdentificacion(); track $index) {\\n <mat-option [value]=\\\"item.idTipoIdentificacion\\\">{{\\n item.descripcion\\n }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>N\\u00FAmero de Identificaci\\u00F3n</mat-label>\\n <input\\n type=\\\"text\\\"\\n matInput\\n (keydown.enter)=\\\"onKeyDownGovernmentId($event)\\\"\\n formControlName=\\\"numeroIdentificacion\\\"\\n />\\n @if (\\n numeroIdentificacionControl?.invalid &&\\n (numeroIdentificacionControl?.dirty || numeroIdentificacionControl?.touched)\\n ) {\\n @if (numeroIdentificacionControl?.hasError('required')) {\\n <mat-error> El n\\u00FAmero de identificaci\\u00F3n es obligatorio. </mat-error>\\n }\\n\\n @if (numeroIdentificacionControl?.hasError('minlength')) {\\n <mat-error>\\n Debe tener al menos\\n {{ numeroIdentificacionControl?.errors?.['minlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('maxlength')) {\\n <mat-error>\\n No puede tener m\\u00E1s de\\n {{ numeroIdentificacionControl?.errors?.['maxlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('pattern')) {\\n <mat-error> Solo se permiten caracteres num\\u00E9ricos. </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('endsWith001')) {\\n <mat-error> Los \\u00FAltimos tres d\\u00EDgitos deben ser 001. </mat-error>\\n }\\n }\\n\\n @if (showRefresh()) {\\n <ng-container matSuffix>\\n <button type=\\\"button\\\" mat-icon-button (click)=\\\"onKeyDownGovernmentId($event)\\\">\\n <mat-icon>refresh</mat-icon>\\n </button>\\n </ng-container>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Fiscal:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreFiscal\\\"\\n id=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Comercial:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n type=\\\"text\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div>\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"direccion\\\"\\n placeholder=\\\"AV. 09 DE OCTUBRE...\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"emails\\\" [labelText]=\\\"'Correo'\\\" />\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"telephones\\\" [labelText]=\\\"'Tel\\u00E9fono'\\\" />\\n </div>\\n </div>\\n\\n @if (isUpdate()) {\\n <div class=\\\"vstack gap-2 mt-2\\\">\\n <span>Estado</span>\\n <mat-slide-toggle formControlName=\\\"estado\\\">\\n {{ customerForm.value.estado ? 'Activo' : 'Inactivo' }}\\n </mat-slide-toggle>\\n </div>\\n }\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"DATOS ADICIONALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n B\\u00E1sica\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Contribuyente: </mat-label>\\n <mat-select formControlName=\\\"idSubContribuyente\\\">\\n @for (item of tipoContribuyentes(); track $index) {\\n <mat-option [value]=\\\"item.idSubContribuyente\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tiempo Cr\\u00E9dito: </mat-label>\\n <mat-select formControlName=\\\"idTiempoCredito\\\">\\n @for (item of tiemposCredito(); track $index) {\\n <mat-option [value]=\\\"item.idTiempoCredito\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Ciudad</mat-label>\\n <mat-select formControlName=\\\"idCiudad\\\">\\n <mat-option [value]=\\\"0\\\">-- Ninguno --</mat-option>\\n @for (group of ciudades(); track $index) {\\n <mat-optgroup [label]=\\\"group.nombre\\\">\\n @for (item of group.ciudades; track $index) {\\n <mat-option [value]=\\\"item.idCiudad\\\">{{ item.nombre }}</mat-option>\\n }\\n </mat-optgroup>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Cliente: </mat-label>\\n <mat-select formControlName=\\\"idTipoClienteProveedor\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n @for (item of tiposCliente(); track $index) {\\n <mat-option [value]=\\\"item.idTipoClienteProveedor\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empresa: </mat-label>\\n <mat-select formControlName=\\\"idEmpresa\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of empresas(); track $index) {\\n <mat-option [value]=\\\"item.idEmpresa\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Fecha Nacimiento</mat-label>\\n <input matInput [matDatepicker]=\\\"birthDate\\\" formControlName=\\\"birthDate\\\" />\\n <mat-hint>MM/DD/YYYY</mat-hint>\\n <mat-datepicker-toggle matIconSuffix\\n [for]=\\\"birthDate\\\"\\n />\\n <mat-datepicker #birthDate />\\n @if (birthDateCtrl?.invalid && birthDateCtrl?.touched) {\\n <mat-error> Fecha inv\\u00E1lida </mat-error>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Laboral\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empleado: </mat-label>\\n <mat-select formControlName=\\\"idEmpleado\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of employees(); track $index) {\\n <mat-option [value]=\\\"item.idEmpleado\\\">\\n {{ item.nombreCompleto }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Cargo: </mat-label>\\n <mat-select formControlName=\\\"idCargo\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of cargos(); track $index) {\\n <mat-option [value]=\\\"item.idCargo\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Observaci\\u00F3n</mat-label>\\n <textarea matInput placeholder=\\\"...\\\" formControlName=\\\"nota\\\"></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Configuraci\\u00F3n Financiera\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-1 row-cols-xl-1 row-cols-lg-1 row-cols-md-1 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Forma de pago: </mat-label>\\n <mat-select formControlName=\\\"idFormaPagoSri\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of formasPagoSri(); track $index) {\\n <mat-option [value]=\\\"item.idFormaPagoSri\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip labelText=\\\"Placa\\\" [chips]=\\\"placas()\\\" />\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-checkbox formControlName=\\\"configValorBruto\\\"\\n >Activar configuraci\\u00F3n de valor bruto\\n <mat-icon\\n matTooltip=\\\"valor total de un bien o servicio sin incluir impuestos, deducciones o descuentos (uso dentro del reporte)\\\"\\n >info</mat-icon\\n ></mat-checkbox\\n >\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\"></div>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"INFORMACI\\u00D3N CREDITICIA\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Personal\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Estado Civil: </mat-label>\\n <mat-select formControlName=\\\"maritalStatusId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of maritalStatuses(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Esposo(a):</mat-label>\\n <input\\n matInput\\n formControlName=\\\"conyugeNombre\\\"\\n placeholder=\\\"Nombre del c\\u00F3nyuge\\\"\\n />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Personal:</mat-label>\\n <input matInput formControlName=\\\"conyugeTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Referencia:</mat-label>\\n <input matInput formControlName=\\\"refFamTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Referencia Familiar:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"refFamNombre\\\"\\n placeholder=\\\"Nombre de referencia familiar\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n de Vivienda\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo de Vivienda: </mat-label>\\n <mat-select formControlName=\\\"housingTypeId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of housingTypes(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Sector:</mat-label>\\n <input matInput formControlName=\\\"sector\\\" placeholder=\\\"Nombre del sector\\\" />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Barrio:</mat-label>\\n <input matInput formControlName=\\\"barrio\\\" placeholder=\\\"Nombre del barrio\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Calle:</mat-label>\\n <input matInput formControlName=\\\"calle\\\" placeholder=\\\"Nombre de la calle\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n Completa</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"dirVivienda\\\"\\n placeholder=\\\"Direcci\\u00F3n completa de la vivienda (Sector, Barrio y Calle)\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Descripci\\u00F3n del Punto de Referencia:</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"refDomicilio\\\"\\n placeholder=\\\"Descripci\\u00F3n detallada del punto de referencia\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n </div>\\n </mat-tab>\\n </mat-tab-group>\\n </form>\\n</mat-dialog-content>\\n<mat-dialog-actions>\\n <acp-mat-theme-button type=\\\"submit\\\" form=\\\"formCompanyCustomer\\\" [text]=\\\"btnText()\\\" />\\n<<<<<<<< HEAD:projects/acontplus-ui-components/src/lib/customers-ui/client/client-add-edit/client-add-edit.component.html\\n <acp-mat-theme-button type=\\\"button\\\" variant=\\\"dark\\\" text=\\\"Cerrar\\\" (handleClick)=\\\"close()\\\" />\\n========\\n>>>>>>>> e8b4dd251833a4e8d200bdc036806a3191730767:packages/ng-customer/src/lib/ui/components/customer-add-edit/customer-add-edit.component.html\\n</mat-dialog-actions>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItYWRkLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi91aS9jb21wb25lbnRzL2N1c3RvbWVyLWFkZC1lZGl0L2N1c3RvbWVyLWFkZC1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvdWkvY29tcG9uZW50cy9jdXN0b21lci1hZGQtZWRpdC9jdXN0b21lci1hZGQtZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFlBQVksR0FDYixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxtQkFBbUIsRUFFbkIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5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QUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7cUJBQ3hCLGFBR1U7d0JBQ1Qsd0JBQXdCLEVBQUU7d0JBQzFCOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO3lCQUNwRTt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLDhCQUE4QixFQUFFLENBQUM7eUJBQ3BGO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvbnRwbHVzL25nLW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgTUFUX0RJQUxPR19EQVRBLFxuICBNYXREaWFsb2dBY3Rpb25zLFxuICBNYXREaWFsb2dDb250ZW50LFxuICBNYXREaWFsb2dSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBNYXREeW5hbWljQ2FyZENvbXBvbmVudCxcbiAgTWF0SW5wdXRDaGlwQ29tcG9uZW50LFxuICBNYXRUaGVtZUJ1dHRvbkNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb250cGx1cy9uZy1jb21wb25lbnRzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UsIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IHByb3ZpZGVOYXRpdmVEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtcbiAgU0VQQVJBRE9SRVNfUkVHRVgsXG4gIFNFUEFSQVRPUl9LRVlfQ09ERSxcbiAgU1JJX0RPQ1VNRU5UX1RZUEUsXG4gIGlzU3VjY2Vzc1Jlc3BvbnNlLFxufSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuaW1wb3J0IHsgVG9VcHBlckNhc2VEaXJlY3RpdmUgfSBmcm9tICdAYWNvbnRwbHVzL25nLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJVc2VDYXNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwbGljYXRpb24vdXNlLWNhc2VzL2N1c3RvbWVyLnVzZS1jYXNlJztcbmltcG9ydCB7IEN1c3RvbWVyRXh0ZXJuYWxVc2VDYXNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwbGljYXRpb24vdXNlLWNhc2VzL2N1c3RvbWVyLWV4dGVybmFsLnVzZS1jYXNlJztcbmltcG9ydCB7IEN1c3RvbWVySHR0cFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi9pbmZyYXN0cnVjdHVyZS9yZXBvc2l0b3JpZXMvY3VzdG9tZXItaHR0cC5yZXBvc2l0b3J5JztcbmltcG9ydCB7IEN1c3RvbWVyRXh0ZXJuYWxIdHRwUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uLy4uL2luZnJhc3RydWN0dXJlL3JlcG9zaXRvcmllcy9jdXN0b21lci1leHRlcm5hbC1odHRwLnJlcG9zaXRvcnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3AtY3VzdG9tZXItYWRkLWVkaXQnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0RGlhbG9nQ29udGVudCxcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRJbnB1dENoaXBDb21wb25lbnQsXG4gICAgVG9VcHBlckNhc2VEaXJlY3RpdmUsXG4gICAgTWF0Q2hlY2tib3gsXG4gICAgTWF0SWNvbixcbiAgICBNYXRUb29sdGlwLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0VGhlbWVCdXR0b25Db21wb25lbnQsXG4gICAgTWF0RHluYW1pY0NhcmRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b21lci1hZGQtZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jdXN0b21lci1hZGQtZWRpdC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVOYXRpdmVEYXRlQWRhcHRlcigpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEN1c3RvbWVyVXNlQ2FzZSxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBDdXN0b21lclVzZUNhc2UobmV3IEN1c3RvbWVySHR0cFJlcG9zaXRvcnkoKSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDdXN0b21lckV4dGVybmFsVXNlQ2FzZSxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBDdXN0b21lckV4dGVybmFsVXNlQ2FzZShuZXcgQ3VzdG9tZXJFeHRlcm5hbEh0dHBSZXBvc2l0b3J5KCkpLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21lckFkZEVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8Q3VzdG9tZXJBZGRFZGl0Q29tcG9uZW50Pik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tZXJVc2VDYXNlID0gaW5qZWN0KEN1c3RvbWVyVXNlQ2FzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tZXJFeHRlcm5hbFVzZUNhc2UgPSBpbmplY3QoQ3VzdG9tZXJFeHRlcm5hbFVzZUNhc2UpO1xuICBidG5UZXh0ID0gc2lnbmFsKCdHdWFyZGFyJyk7XG5cbiAgcmVhZG9ubHkgcGFyYW1zT3B0aW9ucyA9IGluamVjdDx7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBkZXNjcmlwY2lvbjogbnVsbCB8IHN0cmluZztcbiAgICBkYXRhT2ZTcmk/OiBib29sZWFuO1xuICAgIG51bWVyb0lkZW50aWZpY2FjaW9uPzogc3RyaW5nO1xuICAgIGNvZGlnb1NyaT86IHN0cmluZztcbiAgICBkYXRhOiBhbnk7XG4gIH0+KE1BVF9ESUFMT0dfREFUQSk7XG5cbiAgcmVhZG9ubHkgcGFyYW1zID0gdGhpcy5wYXJhbXNPcHRpb25zLmRhdGE7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuXG4gIHRpdGxlID0gJ051ZXZvIENsaWVudGUnO1xuXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBlbWFpbHM6IHN0cmluZ1tdID0gW107XG5cbiAgdGVsZXBob25lczogc3RyaW5nW10gPSBbXTtcbiAgdGllbXBvc0NyZWRpdG8gPSBzaWduYWw8YW55W10+KFtdKTtcbiAgdGlwb0NvbnRyaWJ1eWVudGVzID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIHRpcG9zQ2xpZW50ZSA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICB0aXBvc0lkZW50aWZpY2FjaW9uID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIGZvcm1hc1BhZ29TcmkgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgcGxhY2FzID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIGNpdWRhZGVzID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIGNhcmdvcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICBlbXByZXNhcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICBlbXBsb3llZXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBtYXJpdGFsU3RhdHVzZXMgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgaG91c2luZ1R5cGVzID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgc2hvd1JlZnJlc2ggPSBzaWduYWwodHJ1ZSk7XG5cbiAgZW5kc1dpdGgwMDFWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID49IDMpIHtcbiAgICAgIGlmICghdmFsdWUuZW5kc1dpdGgoJzAwMScpKSB7XG4gICAgICAgIHJldHVybiB7IGVuZHNXaXRoMDAxOiB0cnVlIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGN1c3RvbWVyRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIGRpcmVjY2lvbjogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICBpZENhcmdvOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgaWRDbGllbnRlOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgaWRFbXByZXNhOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgaWRGb3JtYVBhZ29Tcmk6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDApLFxuICAgIGlkVGlwb0NsaWVudGVQcm92ZWVkb3I6IG5ldyBGb3JtQ29udHJvbCgwKSxcbiAgICBpZFRpcG9FbnRpZGFkOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgaWRDaXVkYWQ6IG5ldyBGb3JtQ29udHJvbCgwKSxcbiAgICBpZEVtcGxlYWRvOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgdW5kZWZpbmVkPigwKSxcbiAgICBub21icmVGaXNjYWw6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgbm9tYnJlQ29tZXJjaWFsOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgIG51bWVyb0lkZW50aWZpY2FjaW9uOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZSB9LCBbXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTMpLFxuICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMpLFxuICAgICAgdGhpcy5lbmRzV2l0aDAwMVZhbGlkYXRvcixcbiAgICBdKSxcbiAgICBjb3JyZW86IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgdGVsZWZvbm86IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgcGxhY2E6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgbm90YTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICBlc3RhZG86IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgYmlydGhEYXRlOiBuZXcgRm9ybUNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpLFxuICAgIHZhbGlkYXRpb25Tcmk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgY29uZmlnVmFsb3JCcnV0bzogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICBkYXRhSW5mb0NyZWQ6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgbWFyaXRhbFN0YXR1c0lkOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCksXG4gICAgICBjb255dWdlTm9tYnJlOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICBjb255dWdlVGVsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICByZWZGYW1Ob21icmU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICAgIHJlZkZhbVRlbDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxuICAgICAgaG91c2luZ1R5cGVJZDogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwpLFxuICAgICAgZGlyVml2aWVuZGE6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICAgIHJlZkRvbWljaWxpbzogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxuICAgICAgc2VjdG9yOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICBiYXJyaW86IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICAgIGNhbGxlOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgfSksXG4gIH0pO1xuXG4gIGdldEN1c3RvbWVyKGNvZGlnbzogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB2YWxpZGF0aW9uU3JpOiBmYWxzZSxcbiAgICB9KTtcbiAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmNoZWNrRXhpc3RlbmNlKGlkKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIGlmIChpc1N1Y2Nlc3NSZXNwb25zZShyZXNwb25zZSkgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICBhbGVydCgnRWwgY2xpZW50ZSB5YSBzZSBlbmN1ZW50cmEgcmVnaXN0cmFkbyBlbiBzdSBlbXByZXNhJyk7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdHIuc2hvdyh7XG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdFbCBjbGllbnRlIHlhIHNlIGVuY3VlbnRyYSByZWdpc3RyYWRvIGVuIHN1IGVtcHJlc2EnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7IG51bWVyb0lkZW50aWZpY2FjaW9uOiBudWxsIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2RpZ28gPT09IFNSSV9ET0NVTUVOVF9UWVBFLlBBU1NQT1JUKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHZhbGlkYXRpb25Tcmk6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmcm9tKHRoaXMuY3VzdG9tZXJFeHRlcm5hbFVzZUNhc2UuZ2V0QnlJZChpZCkpLnN1YnNjcmliZShzZWNvbmRSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghaXNTdWNjZXNzUmVzcG9uc2Uoc2Vjb25kUmVzcG9uc2UpIHx8ICFzZWNvbmRSZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0ci5zaG93KHtcbiAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcgIE5vIHNlIGVuY29udHLDsyBpbmZvcm1hY2nDs24gZW4gZWwgU1JJJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBob25lLFxuICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgIGlkQ2FyZCwgLy8gbnVtZXJvUnVjXG4gICAgICAgICAgYnVzaW5lc3NOYW1lLCAvLyByYXpvblNvY2lhbFxuICAgICAgICAgIGFkZHJlc3MsIC8vIGRpcmVjY2lvblxuICAgICAgICB9ID0gc2Vjb25kUmVzcG9uc2UuZGF0YSBhcyBhbnk7XG5cbiAgICAgICAgaWYgKHBob25lICYmIHR5cGVvZiBwaG9uZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aGlzLnRlbGVwaG9uZXMgPSBwaG9uZS5zcGxpdChTRVBBUkFET1JFU19SRUdFWCkgfHwgW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVtYWlsICYmIHR5cGVvZiBlbWFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aGlzLmVtYWlscyA9IGVtYWlsLnNwbGl0KFNFUEFSQURPUkVTX1JFR0VYKSB8fCBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWRDYXJkKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBudW1lcm9JZGVudGlmaWNhY2lvbjogaWRDYXJkLFxuICAgICAgICAgICAgbm9tYnJlRmlzY2FsOiBidXNpbmVzc05hbWUsXG4gICAgICAgICAgICB2YWxpZGF0aW9uU3JpOiB0cnVlLFxuICAgICAgICAgICAgZGlyZWNjaW9uOiBhZGRyZXNzLFxuICAgICAgICAgICAgbm9tYnJlQ29tZXJjaWFsOiBidXNpbmVzc05hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TG9hZERhdGEoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5pc1VwZGF0ZSgpKSB7XG4gICAgICByZXR1cm4gZm9ya0pvaW4oW1xuICAgICAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmdldEZvcm1EYXRhKCkpLFxuICAgICAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmdldEJ5SWQodGhpcy5wYXJhbXMuaWQpKSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gZnJvbSh0aGlzLmN1c3RvbWVyVXNlQ2FzZS5nZXRGb3JtRGF0YSgpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmdldExvYWREYXRhKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgbGV0IG1haW5EYXRhRm9ybSA9IHt9IGFzIGFueTtcbiAgICAgICAgbGV0IGRhdGFDb21wYW55Q3VzdG9tZXIgPSB7fSBhcyBhbnk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3BvbnNlKSkge1xuICAgICAgICAgIG1haW5EYXRhRm9ybSA9IHJlc3BvbnNlWzBdLmRhdGE7XG4gICAgICAgICAgZGF0YUNvbXBhbnlDdXN0b21lciA9IHJlc3BvbnNlWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1haW5EYXRhRm9ybSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRpcG9zSWRlbnRpZmljYWNpb24uc2V0KG1haW5EYXRhRm9ybS50aXBvSWRlbnRpZmljYWNpb24pO1xuICAgICAgICB0aGlzLnRpZW1wb3NDcmVkaXRvLnNldChtYWluRGF0YUZvcm0udGllbXBvQ3JlZGl0b3MpO1xuICAgICAgICB0aGlzLnRpcG9Db250cmlidXllbnRlcy5zZXQobWFpbkRhdGFGb3JtLnRpcG9Db250cmlidXllbnRlcyk7XG4gICAgICAgIHRoaXMuZm9ybWFzUGFnb1NyaS5zZXQobWFpbkRhdGFGb3JtLmZvcm1hc1BhZ29TcmkpO1xuICAgICAgICB0aGlzLnRpcG9zQ2xpZW50ZS5zZXQobWFpbkRhdGFGb3JtLnRpcG9zQ2xpZW50ZSk7XG4gICAgICAgIHRoaXMuY2l1ZGFkZXMuc2V0KG1haW5EYXRhRm9ybS5jaXVkYWRlcyk7XG4gICAgICAgIHRoaXMuY2FyZ29zLnNldChtYWluRGF0YUZvcm0uY2FyZ29zKTtcbiAgICAgICAgdGhpcy5lbXByZXNhcy5zZXQobWFpbkRhdGFGb3JtLmVtcHJlc2FzKTtcbiAgICAgICAgdGhpcy5lbXBsb3llZXMuc2V0KG1haW5EYXRhRm9ybS5lbXBsb3llZXMpO1xuICAgICAgICB0aGlzLm1hcml0YWxTdGF0dXNlcy5zZXQobWFpbkRhdGFGb3JtLm1hcml0YWxTdGF0dXNlcyk7XG4gICAgICAgIHRoaXMuaG91c2luZ1R5cGVzLnNldChtYWluRGF0YUZvcm0uaG91c2luZ1R5cGVzKTtcblxuICAgICAgICBpZiAodGhpcy5pc0RhdGFPZlNyaSgpKSB7XG4gICAgICAgICAgY29uc3QgeyBjb2RpZ29TcmksIG51bWVyb0lkZW50aWZpY2FjaW9uIH0gPSB0aGlzLnBhcmFtcztcblxuICAgICAgICAgIGNvbnN0IGRhdGFJZGVudGlmaWNhY2lvbiA9IHRoaXMudGlwb3NJZGVudGlmaWNhY2lvbigpLmZpbmQoXG4gICAgICAgICAgICAodGk6IGFueSkgPT4gdGkuY29kaWdvU3JpID09PSBjb2RpZ29TcmksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChkYXRhSWRlbnRpZmljYWNpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGlkVGlwb0lkZW50aWZpY2FjaW9uQ3RybCA9IHRoaXMuY3VzdG9tZXJGb3JtLmdldChcbiAgICAgICAgICAgICAgJ2lkVGlwb0lkZW50aWZpY2FjaW9uJyxcbiAgICAgICAgICAgICkgYXMgRm9ybUNvbnRyb2w8bnVtYmVyPiB8IG51bGw7XG4gICAgICAgICAgICBpZFRpcG9JZGVudGlmaWNhY2lvbkN0cmw/LnNldFZhbHVlKGRhdGFJZGVudGlmaWNhY2lvbi5pZFRpcG9JZGVudGlmaWNhY2lvbiBhcyBudW1iZXIpO1xuXG4gICAgICAgICAgICBjb25zdCBudW1lcm9JZGVudGlmaWNhY2lvbkN0cmwgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoXG4gICAgICAgICAgICAgICdudW1lcm9JZGVudGlmaWNhY2lvbicsXG4gICAgICAgICAgICApIGFzIEZvcm1Db250cm9sPHN0cmluZz4gfCBudWxsO1xuICAgICAgICAgICAgbnVtZXJvSWRlbnRpZmljYWNpb25DdHJsPy5zZXRWYWx1ZShudW1lcm9JZGVudGlmaWNhY2lvbiBhcyBzdHJpbmcpO1xuXG4gICAgICAgICAgICBjb25zdCBpZFRpZW1wb0NyZWRpdG9DdHJsID0gdGhpcy5jdXN0b21lckZvcm0uZ2V0KFxuICAgICAgICAgICAgICAnaWRUaWVtcG9DcmVkaXRvJyxcbiAgICAgICAgICAgICkgYXMgRm9ybUNvbnRyb2w8bnVtYmVyPiB8IG51bGw7XG4gICAgICAgICAgICBpZFRpZW1wb0NyZWRpdG9DdHJsPy5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgdGhpcy50aWVtcG9zQ3JlZGl0bygpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/ICh0aGlzLnRpZW1wb3NDcmVkaXRvKClbMF0uaWRUaWVtcG9DcmVkaXRvIGFzIG51bWJlcilcbiAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE51bWVyb0lkZW50aWZpY2FjaW9uKGRhdGFJZGVudGlmaWNhY2lvbi5jb2RpZ29TcmkpO1xuXG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93bkdvdmVybm1lbnRJZCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzQ3JlYXRlKCkpIHtcbiAgICAgICAgICBjb25zdCBkYXRhSWRlbnRpZmljYWNpb24gPSB0aGlzLnRpcG9zSWRlbnRpZmljYWNpb24oKS5maW5kKFxuICAgICAgICAgICAgKHRpOiBhbnkpID0+IHRpLmNvZGlnb1NyaSA9PT0gU1JJX0RPQ1VNRU5UX1RZUEUuUlVDLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZGF0YUlkZW50aWZpY2FjaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBpZFRpcG9JZGVudGlmaWNhY2lvbkN0cmwgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoXG4gICAgICAgICAgICAgICdpZFRpcG9JZGVudGlmaWNhY2lvbicsXG4gICAgICAgICAgICApIGFzIEZvcm1Db250cm9sPG51bWJlcj4gfCBudWxsO1xuICAgICAgICAgICAgaWRUaXBvSWRlbnRpZmljYWNpb25DdHJsPy5zZXRWYWx1ZShkYXRhSWRlbnRpZmljYWNpb24uaWRUaXBvSWRlbnRpZmljYWNpb24gYXMgbnVtYmVyKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SWRlbnRpZmljYXRpb25UeXBlQ2hhbmdlKGRhdGFJZGVudGlmaWNhY2lvbi5jb2RpZ29TcmkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlkVGllbXBvQ3JlZGl0b0N0cmwgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoXG4gICAgICAgICAgICAnaWRUaWVtcG9DcmVkaXRvJyxcbiAgICAgICAgICApIGFzIEZvcm1Db250cm9sPG51bWJlcj4gfCBudWxsO1xuICAgICAgICAgIGlkVGllbXBvQ3JlZGl0b0N0cmw/LnNldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy50aWVtcG9zQ3JlZGl0bygpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgPyAodGhpcy50aWVtcG9zQ3JlZGl0bygpWzBdLmlkVGllbXBvQ3JlZGl0byBhcyBudW1iZXIpXG4gICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudGl0bGUgPSAnRWRpdGFyIENsaWVudGUnO1xuICAgICAgICAgIHRoaXMuYnRuVGV4dC5zZXQoJ0FjdHVhbGl6YXInKTtcbiAgICAgICAgICB0aGlzLmVtYWlscyA9IGRhdGFDb21wYW55Q3VzdG9tZXIuY29ycmVvcztcbiAgICAgICAgICB0aGlzLnRlbGVwaG9uZXMgPSBkYXRhQ29tcGFueUN1c3RvbWVyLnRlbGVmb25vcztcbiAgICAgICAgICB0aGlzLnBsYWNhcy5zZXQoZGF0YUNvbXBhbnlDdXN0b21lci5wbGFjYXMpO1xuICAgICAgICAgIGNvbnN0IHsgZGF0YUluZm9DcmVkLCAuLi5yZXN0IH0gPSBkYXRhQ29tcGFueUN1c3RvbWVyO1xuICAgICAgICAgIHRoaXMuY3VzdG9tZXJGb3JtLnBhdGNoVmFsdWUocmVzdCk7XG4gICAgICAgICAgaWYgKGRhdGFJbmZvQ3JlZCkge1xuICAgICAgICAgICAgdGhpcy5jdXN0b21lckZvcm0uZ2V0KCdkYXRhSW5mb0NyZWQnKT8ucGF0Y2hWYWx1ZShkYXRhSW5mb0NyZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sTnVtZXJvSWRlbnRpZmljYWNpb24ocmVzdC5jb2RpZ29TcmkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIGVycm9yIGFwcHJvcHJpYXRlbHlcbiAgICB9XG4gIH1cblxuICBpZGVudGlmaWNhdGlvblR5cGVDaGFuZ2UoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgIGNvbnN0IGR0ID0gdGhpcy50aXBvc0lkZW50aWZpY2FjaW9uKCkuZmluZChcbiAgICAgIGl0ZW0gPT4gaXRlbS5pZFRpcG9JZGVudGlmaWNhY2lvbiA9PT0gTnVtYmVyKGV2ZW50LnZhbHVlKSxcbiAgICApO1xuICAgIHRoaXMuc2V0SWRlbnRpZmljYXRpb25UeXBlQ2hhbmdlKGR0LmNvZGlnb1NyaSk7XG4gIH1cblxuICB1cGRhdGVGb3JtQ29udHJvbE51bWVyb0lkZW50aWZpY2FjaW9uKFxuICAgIGNvZGlnb1NyaTogU1JJX0RPQ1VNRU5UX1RZUEUuUlVDIHwgU1JJX0RPQ1VNRU5UX1RZUEUuQ0VEVUxBLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBpZE51bWJlckNvbnRyb2wgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoJ251bWVyb0lkZW50aWZpY2FjaW9uJyk7XG5cbiAgICB0aGlzLnNob3dSZWZyZXNoLnNldChmYWxzZSk7XG5cbiAgICBpZiAoW1NSSV9ET0NVTUVOVF9UWVBFLlJVQywgU1JJX0RPQ1VNRU5UX1RZUEUuQ0VEVUxBXS5pbmNsdWRlcyhjb2RpZ29TcmkpKSB7XG4gICAgICBsZXQgbGVuZ3RoVmFsaWRhdG9yO1xuICAgICAgdGhpcy5zaG93UmVmcmVzaC5zZXQodHJ1ZSk7XG5cbiAgICAgIGlmIChjb2RpZ29TcmkgPT09IFNSSV9ET0NVTUVOVF9UWVBFLkNFRFVMQSkge1xuICAgICAgICBsZW5ndGhWYWxpZGF0b3IgPSBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMCldO1xuICAgICAgfSBlbHNlIGlmIChjb2RpZ29TcmkgPT09IFNSSV9ET0NVTUVOVF9UWVBFLlJVQykge1xuICAgICAgICBsZW5ndGhWYWxpZGF0b3IgPSBbXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTMpLFxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEzKSxcbiAgICAgICAgICB0aGlzLmVuZHNXaXRoMDAxVmFsaWRhdG9yLFxuICAgICAgICBdO1xuICAgICAgfVxuICAgICAgaWYgKGxlbmd0aFZhbGlkYXRvcikge1xuICAgICAgICBpZE51bWJlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1xuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eXFxkKyQvKSwgLy8gU29sbyBuw7ptZXJvc1xuICAgICAgICAgIC4uLmxlbmd0aFZhbGlkYXRvcixcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkTnVtYmVyQ29udHJvbD8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgIH1cblxuICAgIGlkTnVtYmVyQ29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc2V0SWRlbnRpZmljYXRpb25UeXBlQ2hhbmdlKGNvZGlnb1NyaTogU1JJX0RPQ1VNRU5UX1RZUEUuUlVDIHwgU1JJX0RPQ1VNRU5UX1RZUEUuQ0VEVUxBKSB7XG4gICAgY29uc3QgaWROdW1iZXJDb250cm9sID0gdGhpcy5jdXN0b21lckZvcm0uZ2V0KCdudW1lcm9JZGVudGlmaWNhY2lvbicpO1xuICAgIGlkTnVtYmVyQ29udHJvbD8ucmVzZXQoKTtcbiAgICBpZE51bWJlckNvbnRyb2w/LmNsZWFyVmFsaWRhdG9ycygpO1xuICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xOdW1lcm9JZGVudGlmaWNhY2lvbihjb2RpZ29TcmkpO1xuICB9XG5cbiAgZ2V0IG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21lckZvcm0uZ2V0KCdudW1lcm9JZGVudGlmaWNhY2lvbicpO1xuICB9XG5cbiAgZ2V0IGJpcnRoRGF0ZUN0cmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tZXJGb3JtLmdldCgnYmlydGhEYXRlJyk7XG4gIH1cblxuICBvbktleURvd25Hb3Zlcm5tZW50SWQoJGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy5pbnZhbGlkKSByZXR1cm47XG5cbiAgICBjb25zdCBpZFRpcG9JZGVudGlmaWNhY2lvbiA9IChcbiAgICAgIHRoaXMuY3VzdG9tZXJGb3JtLmdldCgnaWRUaXBvSWRlbnRpZmljYWNpb24nKSBhcyBGb3JtQ29udHJvbDxudW1iZXI+IHwgbnVsbFxuICAgICk/LnZhbHVlIGFzIG51bWJlcjtcbiAgICBjb25zdCBudW1lcm9JZGVudGlmaWNhY2lvbiA9IChcbiAgICAgIHRoaXMuY3VzdG9tZXJGb3JtLmdldCgnbnVtZXJvSWRlbnRpZmljYWNpb24nKSBhcyBGb3JtQ29udHJvbDxzdHJpbmc+IHwgbnVsbFxuICAgICk/LnZhbHVlIGFzIHN0cmluZztcblxuICAgIGNvbnN0IGNvZGlnb1NyaSA9IHRoaXMudGlwb3NJZGVudGlmaWNhY2lvbigpLmZpbmQoXG4gICAgICAoeDogYW55KSA9PiB4LmlkVGlwb0lkZW50aWZpY2FjaW9uID09IGlkVGlwb0lkZW50aWZpY2FjaW9uLFxuICAgICkuY29kaWdvU3JpO1xuXG4gICAgaWYgKG51bWVyb0lkZW50aWZpY2FjaW9uKSB7XG4gICAgICB0aGlzLmdldEN1c3RvbWVyKGNvZGlnb1NyaSwgbnVtZXJvSWRlbnRpZmljYWNpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNEYXRhT2ZTcmkgPSAoKSA9PiB0aGlzLnBhcmFtcy5kYXRhT2ZTcmk7XG4gIHByaXZhdGUgaXNDcmVhdGUgPSAoKSA9PiAhKHRoaXMucGFyYW1zLmlkID4gMCk7XG4gIGlzVXBkYXRlID0gKCkgPT4gdGhpcy5wYXJhbXMuaWQgPiAwO1xuXG4gIG9uU2F2ZSgpIHtcbiAgICB0aGlzLmN1c3RvbWVyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHRlbGVmb25vOiB0aGlzLnRlbGVwaG9uZXMubGVuZ3RoID4gMCA/IHRoaXMudGVsZXBob25lcy5qb2luKFNFUEFSQVRPUl9LRVlfQ09ERS5TTEFTSCkgOiBudWxsLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBjb3JyZW86IHRoaXMuZW1haWxzLmxlbmd0aCA+IDAgPyB0aGlzLmVtYWlscy5qb2luKFNFUEFSQVRPUl9LRVlfQ09ERS5TTEFTSCkgOiBudWxsLFxuICAgIH0pO1xuICAgIHRoaXMuY3VzdG9tZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgcGxhY2E6IHRoaXMucGxhY2FzKCkubGVuZ3RoID4gMCA/IHRoaXMucGxhY2FzKCkuam9pbihTRVBBUkFUT1JfS0VZX0NPREUuU0xBU0gpIDogbnVsbCxcbiAgICB9KTtcbiAgICBjb25zdCBkYXRhRm9ybSA9IHtcbiAgICAgIC4uLnRoaXMuY3VzdG9tZXJGb3JtLnZhbHVlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jdXN0b21lckZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0ci5zaG93KHtcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICBtZXNzYWdlOiAnSW5ncmVzZSB0b2RvcyBkYXRvcyByZXF1ZXJpZG9zJyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzVXBkYXRlKCkpIHtcbiAgICAgIGNvbnN0IHNlbmRQYXJhbXMgPSB7XG4gICAgICAgIGlkOiB0aGlzLnBhcmFtcy5pZCxcbiAgICAgICAgZGF0YTogZGF0YUZvcm0sXG4gICAgICB9O1xuICAgICAgZnJvbSh0aGlzLmN1c3RvbWVyVXNlQ2FzZS51cGRhdGUoc2VuZFBhcmFtcykpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdHIuc2hvdyh7XG4gICAgICAgICAgdHlwZTogaXNTdWNjZXNzUmVzcG9uc2UocmVzcG9uc2UpID8gJ3N1Y2Nlc3MnIDogJ3dhcm5pbmcnLFxuICAgICAgICAgIG1lc3NhZ2U6IGAke3Jlc3BvbnNlLm1lc3NhZ2V9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc1N1Y2Nlc3NSZXNwb25zZShyZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAgICAgICBpZDogdGhpcy5wYXJhbXMuaWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ3JlYXRlKCkpIHtcbiAgICAgIGZyb20odGhpcy5jdXN0b21lclVzZUNhc2UuY3JlYXRlKGRhdGFGb3JtKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0ci5zaG93KHtcbiAgICAgICAgICB0eXBlOiBpc1N1Y2Nlc3NSZXNwb25zZShyZXNwb25zZSkgPyAnc3VjY2VzcycgOiAnd2FybmluZycsXG4gICAgICAgICAgbWVzc2FnZTogYCR7cmVzcG9uc2UubWVzc2FnZX1gLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlzU3VjY2Vzc1Jlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG59XG4iLCI8bWF0LWRpYWxvZy1jb250ZW50PlxuICA8Zm9ybVxuICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiXG4gICAgaWQ9XCJmb3JtQ29tcGFueUN1c3RvbWVyXCJcbiAgICBbZm9ybUdyb3VwXT1cImN1c3RvbWVyRm9ybVwiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgPlxuICAgIDxtYXQtdGFiLWdyb3VwPlxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJEQVRPUyBQUklOQ0lQQUxFU1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkIGdhcC0yIG14LTMgbXQtMlwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTIgcm93LWNvbHMtMSBnLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlRpcG8gSWRlbnRpZmljYWNpw7NuOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRUaXBvSWRlbnRpZmljYWNpb25cIlxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJpZGVudGlmaWNhdGlvblR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB0aXBvc0lkZW50aWZpY2FjaW9uKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFRpcG9JZGVudGlmaWNhY2lvblwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS5kZXNjcmlwY2lvblxuICAgICAgICAgICAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk7Dum1lcm8gZGUgSWRlbnRpZmljYWNpw7NuPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25LZXlEb3duR292ZXJubWVudElkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtZXJvSWRlbnRpZmljYWNpb25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgIG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAgICAgICAgICAgKG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uZGlydHkgfHwgbnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy50b3VjaGVkKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgQGlmIChudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+IEVsIG7Dum1lcm8gZGUgaWRlbnRpZmljYWNpw7NuIGVzIG9ibGlnYXRvcmlvLiA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgQGlmIChudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgIERlYmUgdGVuZXIgYWwgbWVub3NcbiAgICAgICAgICAgICAgICAgICAgICB7eyBudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/LmVycm9ycz8uWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aCB9fVxuICAgICAgICAgICAgICAgICAgICAgIGTDrWdpdG9zLlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBpZiAobnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgICBObyBwdWVkZSB0ZW5lciBtw6FzIGRlXG4gICAgICAgICAgICAgICAgICAgICAge3sgbnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGggfX1cbiAgICAgICAgICAgICAgICAgICAgICBkw61naXRvcy5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uaGFzRXJyb3IoJ3BhdHRlcm4nKSkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPiBTb2xvIHNlIHBlcm1pdGVuIGNhcmFjdGVyZXMgbnVtw6lyaWNvcy4gPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uaGFzRXJyb3IoJ2VuZHNXaXRoMDAxJykpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj4gTG9zIMO6bHRpbW9zIHRyZXMgZMOtZ2l0b3MgZGViZW4gc2VyIDAwMS4gPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChzaG93UmVmcmVzaCgpKSB7XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdFN1ZmZpeD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbktleURvd25Hb3Zlcm5tZW50SWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTIgcm93LWNvbHMtMSBnLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk5vbWJyZSBGaXNjYWw6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5vbWJyZUZpc2NhbFwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm5vbWJyZUNvbWVyY2lhbFwiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVqOiBURUNOT01FR0FcIlxuICAgICAgICAgICAgICAgICAgYWNwVG9VcHBlckNhc2VcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Ob21icmUgQ29tZXJjaWFsOjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJub21icmVDb21lcmNpYWxcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFajogVEVDTk9NRUdBXCJcbiAgICAgICAgICAgICAgICAgIGFjcFRvVXBwZXJDYXNlXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+RGlyZWNjacOzbjo8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY2Npb25cIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQVYuIDA5IERFIE9DVFVCUkUuLi5cIlxuICAgICAgICAgICAgICAgIGFjcFRvVXBwZXJDYXNlXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMteHhsLTIgcm93LWNvbHMteGwtMiByb3ctY29scy1sZy0yIHJvdy1jb2xzLW1kLTIgcm93LWNvbHMtc20tMiByb3ctY29scy0xIGctMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8YWNwLW1hdC1pbnB1dC1jaGlwIFtjaGlwc109XCJlbWFpbHNcIiBbbGFiZWxUZXh0XT1cIidDb3JyZW8nXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8YWNwLW1hdC1pbnB1dC1jaGlwIFtjaGlwc109XCJ0ZWxlcGhvbmVzXCIgW2xhYmVsVGV4dF09XCInVGVsw6lmb25vJ1wiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIEBpZiAoaXNVcGRhdGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZzdGFjayBnYXAtMiBtdC0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuPkVzdGFkbzwvc3Bhbj5cbiAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiZXN0YWRvXCI+XG4gICAgICAgICAgICAgICAge3sgY3VzdG9tZXJGb3JtLnZhbHVlLmVzdGFkbyA/ICdBY3Rpdm8nIDogJ0luYWN0aXZvJyB9fVxuICAgICAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJEQVRPUyBBRElDSU9OQUxFU1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkIGdhcC0yIG14LTMgbXQtMlwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTIgcm93LWNvbHMtMSBnLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPGFjcC1tYXQtZHluYW1pYy1jYXJkIHRpdGxlPVwiSW5mb3JtYWNpw7NuIELDoXNpY2FcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0yXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5UaXBvIENvbnRyaWJ1eWVudGU6IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkU3ViQ29udHJpYnV5ZW50ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB0aXBvQ29udHJpYnV5ZW50ZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkU3ViQ29udHJpYnV5ZW50ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZGVzY3JpcGNpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5UaWVtcG8gQ3LDqWRpdG86IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkVGllbXBvQ3JlZGl0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB0aWVtcG9zQ3JlZGl0bygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRUaWVtcG9DcmVkaXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kZXNjcmlwY2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNpdWRhZDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkQ2l1ZGFkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMFwiPi0tIE5pbmd1bm8gLS08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChncm91cCBvZiBjaXVkYWRlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRncm91cCBbbGFiZWxdPVwiZ3JvdXAubm9tYnJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBncm91cC5jaXVkYWRlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZENpdWRhZFwiPnt7IGl0ZW0ubm9tYnJlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5UaXBvIENsaWVudGU6IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkVGlwb0NsaWVudGVQcm92ZWVkb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIwXCI+LS1OaW5ndW5vLS08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHRpcG9zQ2xpZW50ZSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRUaXBvQ2xpZW50ZVByb3ZlZWRvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZGVzY3JpcGNpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbXByZXNhOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpZEVtcHJlc2FcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIwXCI+LS1OaW5ndW5vLS08L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZW1wcmVzYXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkRW1wcmVzYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZGVzY3JpcGNpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RmVjaGEgTmFjaW1pZW50bzwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJiaXJ0aERhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJiaXJ0aERhdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGludD5NTS9ERC9ZWVlZPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25TdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiYmlydGhEYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2JpcnRoRGF0ZSAvPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYmlydGhEYXRlQ3RybD8uaW52YWxpZCAmJiBiaXJ0aERhdGVDdHJsPy50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPiBGZWNoYSBpbnbDoWxpZGEgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYWNwLW1hdC1keW5hbWljLWNhcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPGFjcC1tYXQtZHluYW1pYy1jYXJkIHRpdGxlPVwiSW5mb3JtYWNpw7NuIExhYm9yYWxcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbXBsZWFkbzogPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaWRFbXBsZWFkb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjBcIj4tLU5pbmd1bm8tLTwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBlbXBsb3llZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkRW1wbGVhZG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5vbWJyZUNvbXBsZXRvIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2FyZ286IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkQ2FyZ29cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIwXCI+LS1OaW5ndW5vLS08L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY2FyZ29zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZENhcmdvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kZXNjcmlwY2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk9ic2VydmFjacOzbjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIi4uLlwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGFcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYWNwLW1hdC1keW5hbWljLWNhcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxhY3AtbWF0LWR5bmFtaWMtY2FyZCB0aXRsZT1cIkNvbmZpZ3VyYWNpw7NuIEZpbmFuY2llcmFcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMSByb3ctY29scy14bC0xIHJvdy1jb2xzLWxnLTEgcm93LWNvbHMtbWQtMSByb3ctY29scy1zbS0xIHJvdy1jb2xzLTEgZy0yIG10LTJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkZvcm1hIGRlIHBhZ286IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkRm9ybWFQYWdvU3JpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMFwiPi0tTmluZ3Vuby0tPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZvcm1hc1BhZ29TcmkoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkRm9ybWFQYWdvU3JpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kZXNjcmlwY2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFjcC1tYXQtaW5wdXQtY2hpcCBsYWJlbFRleHQ9XCJQbGFjYVwiIFtjaGlwc109XCJwbGFjYXMoKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImNvbmZpZ1ZhbG9yQnJ1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgID5BY3RpdmFyIGNvbmZpZ3VyYWNpw7NuIGRlIHZhbG9yIGJydXRvXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwidmFsb3IgdG90YWwgZGUgdW4gYmllbiBvIHNlcnZpY2lvIHNpbiBpbmNsdWlyIGltcHVlc3RvcywgZGVkdWNjaW9uZXMgbyBkZXNjdWVudG9zICh1c28gZGVudHJvIGRlbCByZXBvcnRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+aW5mbzwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICA+PC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYWNwLW1hdC1keW5hbWljLWNhcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIklORk9STUFDScOTTiBDUkVESVRJQ0lBXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgZ2FwLTIgbXgtMyBtdC0yXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMteHhsLTIgcm93LWNvbHMteGwtMiByb3ctY29scy1sZy0yIHJvdy1jb2xzLW1kLTIgcm93LWNvbHMtc20tMiByb3ctY29scy0xIGctMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8YWNwLW1hdC1keW5hbWljLWNhcmQgdGl0bGU9XCJJbmZvcm1hY2nDs24gUGVyc29uYWxcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiZGF0YUluZm9DcmVkXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTEgcm93LWNvbHMtMSBnLTIgbXQtMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RXN0YWRvIENpdmlsOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJtYXJpdGFsU3RhdHVzSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIwXCI+U2VsZWNjaW9uYXIuLi48L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWFyaXRhbFN0YXR1c2VzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Fc3Bvc28oYSk6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29ueXVnZU5vbWJyZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5vbWJyZSBkZWwgY8Ozbnl1Z2VcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGVsw6lmb25vIFBlcnNvbmFsOjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb255dWdlVGVsXCIgcGxhY2Vob2xkZXI9XCIwOXh4eHh4eHh4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGVsw6lmb25vIFJlZmVyZW5jaWE6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInJlZkZhbVRlbFwiIHBsYWNlaG9sZGVyPVwiMDl4eHh4eHh4eFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlJlZmVyZW5jaWEgRmFtaWxpYXI6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVmRmFtTm9tYnJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTm9tYnJlIGRlIHJlZmVyZW5jaWEgZmFtaWxpYXJcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hY3AtbWF0LWR5bmFtaWMtY2FyZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8YWNwLW1hdC1keW5hbWljLWNhcmQgdGl0bGU9XCJJbmZvcm1hY2nDs24gZGUgVml2aWVuZGFcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiZGF0YUluZm9DcmVkXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTEgcm93LWNvbHMtMSBnLTIgbXQtMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGlwbyBkZSBWaXZpZW5kYTogPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaG91c2luZ1R5cGVJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjBcIj5TZWxlY2Npb25hci4uLjwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBob3VzaW5nVHlwZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlY3Rvcjo8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VjdG9yXCIgcGxhY2Vob2xkZXI9XCJOb21icmUgZGVsIHNlY3RvclwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QmFycmlvOjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJiYXJyaW9cIiBwbGFjZWhvbGRlcj1cIk5vbWJyZSBkZWwgYmFycmlvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2FsbGU6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNhbGxlXCIgcGxhY2Vob2xkZXI9XCJOb21icmUgZGUgbGEgY2FsbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EaXJlY2Npw7NuIENvbXBsZXRhPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlyVml2aWVuZGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEaXJlY2Npw7NuIGNvbXBsZXRhIGRlIGxhIHZpdmllbmRhIChTZWN0b3IsIEJhcnJpbyB5IENhbGxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRlc2NyaXBjacOzbiBkZWwgUHVudG8gZGUgUmVmZXJlbmNpYTo8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWZEb21pY2lsaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZXNjcmlwY2nDs24gZGV0YWxsYWRhIGRlbCBwdW50byBkZSByZWZlcmVuY2lhXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2FjcC1tYXQtZHluYW1pYy1jYXJkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YWNwLW1hdC10aGVtZS1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGZvcm09XCJmb3JtQ29tcGFueUN1c3RvbWVyXCIgW3RleHRdPVwiYnRuVGV4dCgpXCIgLz5cbjw8PDw8PDw8IEhFQUQ6cHJvamVjdHMvYWNvbnRwbHVzLXVpLWNvbXBvbmVudHMvc3JjL2xpYi9jdXN0b21lcnMtdWkvY2xpZW50L2NsaWVudC1hZGQtZWRpdC9jbGllbnQtYWRkLWVkaXQuY29tcG9uZW50Lmh0bWxcbiAgPGFjcC1tYXQtdGhlbWUtYnV0dG9uIHR5cGU9XCJidXR0b25cIiB2YXJpYW50PVwiZGFya1wiIHRleHQ9XCJDZXJyYXJcIiAoaGFuZGxlQ2xpY2spPVwiY2xvc2UoKVwiIC8+XG49PT09PT09PVxuPj4+Pj4+Pj4gZThiNGRkMjUxODMzYTRlOGQyMDBiZGMwMzY4MDZhMzE5MTczMDc2NzpwYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL3VpL2NvbXBvbmVudHMvY3VzdG9tZXItYWRkLWVkaXQvY3VzdG9tZXItYWRkLWVkaXQuY29tcG9uZW50Lmh0bWxcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19","import { Component, computed, input, output } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatThemeButtonComponent } from '@acontplus/ng-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/card\";\nimport * as i2 from \"@angular/material/chips\";\nexport class CustomerCardComponent {\n customer = input.required(...(ngDevMode ? [{ debugName: \"customer\" }] : []));\n editCustomer = output();\n deleteCustomer = output();\n getLogoSliceBusinessName = computed(() => {\n const name = this.customer()?.businessName || '';\n return name.slice(0, 1);\n }, ...(ngDevMode ? [{ debugName: \"getLogoSliceBusinessName\" }] : []));\n onEditClick() {\n // Emits the customer object to the parent component\n this.editCustomer.emit(this.customer());\n }\n onDeleteClick() {\n // Emits the customer object to the parent component\n this.deleteCustomer.emit(this.customer());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.2\", type: CustomerCardComponent, isStandalone: true, selector: \"acp-customer-card\", inputs: { customer: { classPropertyName: \"customer\", publicName: \"customer\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { editCustomer: \"editCustomer\", deleteCustomer: \"deleteCustomer\" }, ngImport: i0, template: \"<mat-card class=\\\"customer-card\\\">\\n <!-- Header -->\\n <div class=\\\"card-header\\\">\\n <div class=\\\"avatar\\\" aria-label=\\\"Logo de cliente\\\">{{ getLogoSliceBusinessName() }}</div>\\n <h5 class=\\\"businessName\\\">{{ customer().businessName }}</h5>\\n <p class=\\\"tradeName\\\">{{ customer().tradeName }}</p>\\n </div>\\n\\n <!-- Card content -->\\n <mat-card-content>\\n <div class=\\\"info\\\">\\n <p><strong>ID:</strong> 1234567890 (RUC)</p>\\n <p><strong>Email:</strong> {{ customer().email }}</p>\\n <p><strong>Tel\\u00E9fono:</strong> {{ customer().phone }}</p>\\n <p><strong>Direcci\\u00F3n:</strong>{{ customer().address }}</p>\\n\\n <div class=\\\"chips\\\">\\n <mat-chip-set>\\n <mat-chip color=\\\"primary\\\">{{ customer().statusName }}</mat-chip>\\n </mat-chip-set>\\n </div>\\n </div>\\n </mat-card-content>\\n\\n <!-- Card actions -->\\n @if (!customer().isFinalConsumer) {\\n <mat-card-actions class=\\\"actions gap-2\\\">\\n <acp-mat-theme-button matStyle=\\\"icon\\\" icon=\\\"edit\\\" (handleClick)=\\\"onEditClick()\\\" />\\n <acp-mat-theme-button\\n matStyle=\\\"icon\\\"\\n icon=\\\"delete\\\"\\n variant=\\\"danger\\\"\\n (handleClick)=\\\"onDeleteClick()\\\"\\n />\\n </mat-card-actions>\\n }\\n</mat-card>\\n\", styles: [\".customer-card{width:345px;border-radius:16px}.card-header{display:flex;flex-direction:column;align-items:center;padding:16px;background-color:#e3f2fd;border-top-left-radius:16px;border-top-right-radius:16px}.card-header .businessName{text-align:center;font-size:14px;font-weight:500}.card-header .tradeName{text-align:center;font-size:12px;color:#6c757d}.avatar{width:80px;height:80px;border-radius:50%;background-color:#1976d2;display:flex;justify-content:center;align-items:center;font-size:32px;color:#fff;margin-bottom:12px}.info p{margin:4px 0}.chips{margin-top:12px;display:flex;gap:8px}.actions{justify-content:flex-end;padding:16px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatCardModule }, { kind: \"component\", type: i1.MatCard, selector: \"mat-card\", inputs: [\"appearance\"], exportAs: [\"matCard\"] }, { kind: \"directive\", type: i1.MatCardActions, selector: \"mat-card-actions\", inputs: [\"align\"], exportAs: [\"matCardActions\"] }, { kind: \"directive\", type: i1.MatCardContent, selector: \"mat-card-content\" }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"ngmodule\", type: MatChipsModule }, { kind: \"component\", type: i2.MatChip, selector: \"mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]\", inputs: [\"role\", \"id\", \"aria-label\", \"aria-description\", \"value\", \"color\", \"removable\", \"highlighted\", \"disableRipple\", \"disabled\"], outputs: [\"removed\", \"destroyed\"], exportAs: [\"matChip\"] }, { kind: \"component\", type: i2.MatChipSet, selector: \"mat-chip-set\", inputs: [\"disabled\", \"role\", \"tabIndex\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: MatThemeButtonComponent, selector: \"acp-mat-theme-button\", inputs: [\"variant\", \"text\", \"icon\", \"outlined\", \"disabled\", \"useThemeColor\", \"type\", \"matStyle\", \"title\", \"ariaLabel\", \"name\", \"id\", \"form\", \"tabIndex\", \"testId\"], outputs: [\"handleClick\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerCardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-customer-card', imports: [\n MatCardModule,\n MatDividerModule,\n MatChipsModule,\n MatButtonModule,\n MatThemeButtonComponent,\n ], template: \"<mat-card class=\\\"customer-card\\\">\\n <!-- Header -->\\n <div class=\\\"card-header\\\">\\n <div class=\\\"avatar\\\" aria-label=\\\"Logo de cliente\\\">{{ getLogoSliceBusinessName() }}</div>\\n <h5 class=\\\"businessName\\\">{{ customer().businessName }}</h5>\\n <p class=\\\"tradeName\\\">{{ customer().tradeName }}</p>\\n </div>\\n\\n <!-- Card content -->\\n <mat-card-content>\\n <div class=\\\"info\\\">\\n <p><strong>ID:</strong> 1234567890 (RUC)</p>\\n <p><strong>Email:</strong> {{ customer().email }}</p>\\n <p><strong>Tel\\u00E9fono:</strong> {{ customer().phone }}</p>\\n <p><strong>Direcci\\u00F3n:</strong>{{ customer().address }}</p>\\n\\n <div class=\\\"chips\\\">\\n <mat-chip-set>\\n <mat-chip color=\\\"primary\\\">{{ customer().statusName }}</mat-chip>\\n </mat-chip-set>\\n </div>\\n </div>\\n </mat-card-content>\\n\\n <!-- Card actions -->\\n @if (!customer().isFinalConsumer) {\\n <mat-card-actions class=\\\"actions gap-2\\\">\\n <acp-mat-theme-button matStyle=\\\"icon\\\" icon=\\\"edit\\\" (handleClick)=\\\"onEditClick()\\\" />\\n <acp-mat-theme-button\\n matStyle=\\\"icon\\\"\\n icon=\\\"delete\\\"\\n variant=\\\"danger\\\"\\n (handleClick)=\\\"onDeleteClick()\\\"\\n />\\n </mat-card-actions>\\n }\\n</mat-card>\\n\", styles: [\".customer-card{width:345px;border-radius:16px}.card-header{display:flex;flex-direction:column;align-items:center;padding:16px;background-color:#e3f2fd;border-top-left-radius:16px;border-top-right-radius:16px}.card-header .businessName{text-align:center;font-size:14px;font-weight:500}.card-header .tradeName{text-align:center;font-size:12px;color:#6c757d}.avatar{width:80px;height:80px;border-radius:50%;background-color:#1976d2;display:flex;justify-content:center;align-items:center;font-size:32px;color:#fff;margin-bottom:12px}.info p{margin:4px 0}.chips{margin-top:12px;display:flex;gap:8px}.actions{justify-content:flex-end;padding:16px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL3VpL2NvbXBvbmVudHMvY3VzdG9tZXItY2FyZC9jdXN0b21lci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvdWkvY29tcG9uZW50cy9jdXN0b21lci1jYXJkL2N1c3RvbWVyLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWVuRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBdUIsQ0FBQztJQUNqRCxZQUFZLEdBQUcsTUFBTSxFQUF1QixDQUFDO0lBQzdDLGNBQWMsR0FBRyxNQUFNLEVBQXVCLENBQUM7SUFFL0Msd0JBQXdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUMsb0VBQUMsQ0FBQztJQUVILFdBQVc7UUFDVCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGFBQWE7UUFDWCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzt1R0FsQlUscUJBQXFCOzJGQUFyQixxQkFBcUIsc1NDcEJsQyx1dkNBcUNBLDRyQkQxQkksYUFBYSx5VkFDYixnQkFBZ0IsOEJBQ2hCLGNBQWMsMGJBQ2QsZUFBZSwrQkFDZix1QkFBdUI7OzJGQUtkLHFCQUFxQjtrQkFaakMsU0FBUzsrQkFDRSxtQkFBbUIsV0FDcEI7d0JBQ1AsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZix1QkFBdUI7cUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0VGhlbWVCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvbnRwbHVzL25nLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJMaXN0SXRlbUR0byB9IGZyb20gJy4uLy4uLy4uL2luZnJhc3RydWN0dXJlL2R0b3MvY3VzdG9tZXIuZHRvJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLWN1c3RvbWVyLWNhcmQnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUaGVtZUJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY3VzdG9tZXItY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyQ2FyZENvbXBvbmVudCB7XG4gIGN1c3RvbWVyID0gaW5wdXQucmVxdWlyZWQ8Q3VzdG9tZXJMaXN0SXRlbUR0bz4oKTtcbiAgZWRpdEN1c3RvbWVyID0gb3V0cHV0PEN1c3RvbWVyTGlzdEl0ZW1EdG8+KCk7XG4gIGRlbGV0ZUN1c3RvbWVyID0gb3V0cHV0PEN1c3RvbWVyTGlzdEl0ZW1EdG8+KCk7XG5cbiAgZ2V0TG9nb1NsaWNlQnVzaW5lc3NOYW1lID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmN1c3RvbWVyKCk/LmJ1c2luZXNzTmFtZSB8fCAnJztcbiAgICByZXR1cm4gbmFtZS5zbGljZSgwLCAxKTtcbiAgfSk7XG5cbiAgb25FZGl0Q2xpY2soKTogdm9pZCB7XG4gICAgLy8gRW1pdHMgdGhlIGN1c3RvbWVyIG9iamVjdCB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuZWRpdEN1c3RvbWVyLmVtaXQodGhpcy5jdXN0b21lcigpKTtcbiAgfVxuXG4gIG9uRGVsZXRlQ2xpY2soKTogdm9pZCB7XG4gICAgLy8gRW1pdHMgdGhlIGN1c3RvbWVyIG9iamVjdCB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuZGVsZXRlQ3VzdG9tZXIuZW1pdCh0aGlzLmN1c3RvbWVyKCkpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJjdXN0b21lci1jYXJkXCI+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCIgYXJpYS1sYWJlbD1cIkxvZ28gZGUgY2xpZW50ZVwiPnt7IGdldExvZ29TbGljZUJ1c2luZXNzTmFtZSgpIH19PC9kaXY+XG4gICAgPGg1IGNsYXNzPVwiYnVzaW5lc3NOYW1lXCI+e3sgY3VzdG9tZXIoKS5idXNpbmVzc05hbWUgfX08L2g1PlxuICAgIDxwIGNsYXNzPVwidHJhZGVOYW1lXCI+e3sgY3VzdG9tZXIoKS50cmFkZU5hbWUgfX08L3A+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2FyZCBjb250ZW50IC0tPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mb1wiPlxuICAgICAgPHA+PHN0cm9uZz5JRDo8L3N0cm9uZz4gMTIzNDU2Nzg5MCAoUlVDKTwvcD5cbiAgICAgIDxwPjxzdHJvbmc+RW1haWw6PC9zdHJvbmc+IHt7IGN1c3RvbWVyKCkuZW1haWwgfX08L3A+XG4gICAgICA8cD48c3Ryb25nPlRlbMOpZm9ubzo8L3N0cm9uZz4ge3sgY3VzdG9tZXIoKS5waG9uZSB9fTwvcD5cbiAgICAgIDxwPjxzdHJvbmc+RGlyZWNjacOzbjo8L3N0cm9uZz57eyBjdXN0b21lcigpLmFkZHJlc3MgfX08L3A+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiPlxuICAgICAgICA8bWF0LWNoaXAtc2V0PlxuICAgICAgICAgIDxtYXQtY2hpcCBjb2xvcj1cInByaW1hcnlcIj57eyBjdXN0b21lcigpLnN0YXR1c05hbWUgfX08L21hdC1jaGlwPlxuICAgICAgICA8L21hdC1jaGlwLXNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgPCEtLSBDYXJkIGFjdGlvbnMgLS0+XG4gIEBpZiAoIWN1c3RvbWVyKCkuaXNGaW5hbENvbnN1bWVyKSB7XG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zIGdhcC0yXCI+XG4gICAgICA8YWNwLW1hdC10aGVtZS1idXR0b24gbWF0U3R5bGU9XCJpY29uXCIgaWNvbj1cImVkaXRcIiAoaGFuZGxlQ2xpY2spPVwib25FZGl0Q2xpY2soKVwiIC8+XG4gICAgICA8YWNwLW1hdC10aGVtZS1idXR0b25cbiAgICAgICAgbWF0U3R5bGU9XCJpY29uXCJcbiAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAoaGFuZGxlQ2xpY2spPVwib25EZWxldGVDbGljaygpXCJcbiAgICAgIC8+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICB9XG48L21hdC1jYXJkPlxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWN1c3RvbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2Fjb250cGx1cy1uZy1jdXN0b21lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"acontplus-ng-customer.mjs","sources":["../tmp-esm2022/lib/application/use-cases/customer.use-case.js","../tmp-esm2022/lib/application/use-cases/customer-external.use-case.js","../tmp-esm2022/lib/infrastructure/constants/customer.constants.js","../tmp-esm2022/lib/infrastructure/mappers/company-search.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-create-update.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-form-data.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-get-by-id.mapper.js","../tmp-esm2022/lib/infrastructure/mappers/customer-list.mapper.js","../tmp-esm2022/lib/infrastructure/repositories/customer-external-http.repository.js","../tmp-esm2022/lib/infrastructure/repositories/customer-http.repository.js","../tmp-esm2022/lib/ui/components/customer-add-edit/customer-add-edit.component.js","../tmp-esm2022/lib/ui/components/customer-card/customer-card.component.js","../tmp-esm2022/acontplus-ng-customer.js"],"sourcesContent":["export class CustomerUseCase {\n repo;\n constructor(repo) {\n this.repo = repo;\n }\n getAll(params) {\n return this.repo.getAll(params);\n }\n getFormData() {\n return this.repo.getFormData();\n }\n getById(id) {\n return this.repo.getById(id);\n }\n checkExistence(identificationNumber) {\n return this.repo.checkExistence(identificationNumber);\n }\n create(params) {\n return this.repo.create(params);\n }\n update(params) {\n return this.repo.update(params);\n }\n updateState(id) {\n return this.repo.updateState(id);\n }\n search(filter) {\n return this.repo.search(filter);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXIudXNlLWNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9jdXN0b21lci51c2UtY2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZUFBZTtJQUNOO0lBQXBCLFlBQW9CLElBQXdCO1FBQXhCLFNBQUksR0FBSixJQUFJLENBQW9CO0lBQUcsQ0FBQztJQUVoRCxNQUFNLENBQUMsTUFBVztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsb0JBQTRCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tZXJSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEN1c3RvbWVyU2VhcmNoIH0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbWVyLXNlYXJjaCc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21lclVzZUNhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG86IEN1c3RvbWVyUmVwb3NpdG9yeSkge31cblxuICBnZXRBbGwocGFyYW1zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmdldEFsbChwYXJhbXMpO1xuICB9XG4gIGdldEZvcm1EYXRhKCkge1xuICAgIHJldHVybiB0aGlzLnJlcG8uZ2V0Rm9ybURhdGEoKTtcbiAgfVxuXG4gIGdldEJ5SWQoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnJlcG8uZ2V0QnlJZChpZCk7XG4gIH1cblxuICBjaGVja0V4aXN0ZW5jZShpZGVudGlmaWNhdGlvbk51bWJlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5jaGVja0V4aXN0ZW5jZShpZGVudGlmaWNhdGlvbk51bWJlcik7XG4gIH1cblxuICBjcmVhdGUocGFyYW1zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmNyZWF0ZShwYXJhbXMpO1xuICB9XG5cbiAgdXBkYXRlKHBhcmFtczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby51cGRhdGUocGFyYW1zKTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnVwZGF0ZVN0YXRlKGlkKTtcbiAgfVxuXG4gIHNlYXJjaChmaWx0ZXI6IEN1c3RvbWVyU2VhcmNoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zZWFyY2goZmlsdGVyKTtcbiAgfVxufVxuIl19","import { IdentificationNumberVo } from '@acontplus/core';\nexport class CustomerExternalUseCase {\n repo;\n constructor(repo) {\n this.repo = repo;\n }\n getById(identification) {\n const idNumber = new IdentificationNumberVo(identification);\n return this.repo.getById(idNumber);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZXh0ZXJuYWwudXNlLWNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9jdXN0b21lci1leHRlcm5hbC51c2UtY2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2Q7SUFBcEIsWUFBb0IsSUFBZ0M7UUFBaEMsU0FBSSxHQUFKLElBQUksQ0FBNEI7SUFBRyxDQUFDO0lBRXhELE9BQU8sQ0FBQyxjQUFzQjtRQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tZXJFeHRlcm5hbFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9kb21haW4vcmVwb3NpdG9yaWVzJztcbmltcG9ydCB7IElkZW50aWZpY2F0aW9uTnVtYmVyVm8gfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJFeHRlcm5hbFVzZUNhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG86IEN1c3RvbWVyRXh0ZXJuYWxSZXBvc2l0b3J5KSB7fVxuXG4gIGdldEJ5SWQoaWRlbnRpZmljYXRpb246IHN0cmluZykge1xuICAgIGNvbnN0IGlkTnVtYmVyID0gbmV3IElkZW50aWZpY2F0aW9uTnVtYmVyVm8oaWRlbnRpZmljYXRpb24pO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZ2V0QnlJZChpZE51bWJlcik7XG4gIH1cbn1cbiJdfQ==","export const CUSTOMER_API = {\n BILLING: '/api',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXIuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9jb25zdGFudHMvY3VzdG9tZXIuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixPQUFPLEVBQUUsTUFBTTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENVU1RPTUVSX0FQSSA9IHtcbiAgQklMTElORzogJy9hcGknLFxufTtcbiJdfQ==","export class CompanySearchMapper {\n static toJson(params) {\n return JSON.stringify({\n textSearch: params.search,\n });\n }\n static fromJson(response) {\n let customers = [];\n if (response && response.code === '1') {\n const results = JSON.parse(response.payload) || [];\n customers = results.map((item) => ({\n id: item.idCliente,\n identificationTypeId: item.idTipoIdentificacion,\n creditTimeId: item.idTiempoCredito,\n customerId: item.customerId,\n status: item.estado,\n email: item.correo,\n phone: item.telefono,\n address: item.direccion,\n licensePlate: item.placa,\n creditDays: item.diasCredito,\n sriValidation: item.validationSri,\n businessName: item.nombreFiscal,\n tradeName: item.nombreComercial,\n identificationNumber: item.numeroIdentificacion,\n identificationType: item.tipoIdentificacion,\n sriCode: item.codigoSri,\n companyRuc: item.rucEmpresa,\n companyId: item.companyId,\n name: item.nombreFiscal,\n }));\n }\n return customers;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1zZWFyY2gubWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9tYXBwZXJzL2NvbXBhbnktc2VhcmNoLm1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBc0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFhO1FBQzNCLElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUUxQixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFN0QsU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDbEIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtnQkFDL0MsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdkIsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUN4QixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzVCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQy9CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7Z0JBQy9DLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTthQUN4QixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21lclNlYXJjaCB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL21vZGVscy9jdXN0b21lci1zZWFyY2gnO1xuXG5leHBvcnQgY2xhc3MgQ29tcGFueVNlYXJjaE1hcHBlciB7XG4gIHN0YXRpYyB0b0pzb24ocGFyYW1zOiBDdXN0b21lclNlYXJjaCkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0ZXh0U2VhcmNoOiBwYXJhbXMuc2VhcmNoLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uKHJlc3BvbnNlOiBhbnkpIHtcbiAgICBsZXQgY3VzdG9tZXJzOiBhbnlbXSA9IFtdO1xuXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09ICcxJykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IEpTT04ucGFyc2UocmVzcG9uc2UucGF5bG9hZCBhcyBzdHJpbmcpIHx8IFtdO1xuXG4gICAgICBjdXN0b21lcnMgPSByZXN1bHRzLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICBpZDogaXRlbS5pZENsaWVudGUsXG4gICAgICAgIGlkZW50aWZpY2F0aW9uVHlwZUlkOiBpdGVtLmlkVGlwb0lkZW50aWZpY2FjaW9uLFxuICAgICAgICBjcmVkaXRUaW1lSWQ6IGl0ZW0uaWRUaWVtcG9DcmVkaXRvLFxuICAgICAgICBjdXN0b21lcklkOiBpdGVtLmN1c3RvbWVySWQsXG4gICAgICAgIHN0YXR1czogaXRlbS5lc3RhZG8sXG4gICAgICAgIGVtYWlsOiBpdGVtLmNvcnJlbyxcbiAgICAgICAgcGhvbmU6IGl0ZW0udGVsZWZvbm8sXG4gICAgICAgIGFkZHJlc3M6IGl0ZW0uZGlyZWNjaW9uLFxuICAgICAgICBsaWNlbnNlUGxhdGU6IGl0ZW0ucGxhY2EsXG4gICAgICAgIGNyZWRpdERheXM6IGl0ZW0uZGlhc0NyZWRpdG8sXG4gICAgICAgIHNyaVZhbGlkYXRpb246IGl0ZW0udmFsaWRhdGlvblNyaSxcbiAgICAgICAgYnVzaW5lc3NOYW1lOiBpdGVtLm5vbWJyZUZpc2NhbCxcbiAgICAgICAgdHJhZGVOYW1lOiBpdGVtLm5vbWJyZUNvbWVyY2lhbCxcbiAgICAgICAgaWRlbnRpZmljYXRpb25OdW1iZXI6IGl0ZW0ubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICAgIGlkZW50aWZpY2F0aW9uVHlwZTogaXRlbS50aXBvSWRlbnRpZmljYWNpb24sXG4gICAgICAgIHNyaUNvZGU6IGl0ZW0uY29kaWdvU3JpLFxuICAgICAgICBjb21wYW55UnVjOiBpdGVtLnJ1Y0VtcHJlc2EsXG4gICAgICAgIGNvbXBhbnlJZDogaXRlbS5jb21wYW55SWQsXG4gICAgICAgIG5hbWU6IGl0ZW0ubm9tYnJlRmlzY2FsLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXN0b21lcnM7XG4gIH1cbn1cbiJdfQ==","import { DateFormatter, getValidId, isValidField } from '@acontplus/utils';\nexport class CustomerCreateUpdateMapper {\n static toJson(param) {\n return {\n idCliente: getValidId(param.idCliente),\n idEmpleado: getValidId(param.idEmpleado),\n idTipoIdentificacion: param.idTipoIdentificacion,\n idTipoClienteProveedor: getValidId(param.idTipoClienteProveedor),\n idTipoEntidad: getValidId(param.idTipoEntidad),\n idCiudad: getValidId(param.idCiudad),\n idSubContribuyente: getValidId(param.idSubContribuyente),\n idTiempoCredito: getValidId(param.idTiempoCredito),\n idEmpresa: getValidId(param.idEmpresa),\n idCargo: getValidId(param.idCargo),\n numeroIdentificacion: param.numeroIdentificacion,\n nombreFiscal: param.nombreFiscal,\n nombreComercial: param.nombreComercial,\n direccion: isValidField(param.direccion),\n telefono: isValidField(param.telefono),\n correo: isValidField(param.correo),\n placa: isValidField(param.placa),\n montoCredito: isValidField(param.montoCredito),\n nota: isValidField(param.nota),\n validationSri: param.validationSri,\n idFormaPagoSri: getValidId(param.idFormaPagoSri),\n estado: param.estado ?? true,\n infoCrediticia: param.dataInfoCred && JSON.stringify(param.dataInfoCred),\n configValorBruto: param.configValorBruto ?? null,\n birthDate: DateFormatter.isValid(param.birthDate)\n ? DateFormatter.toUTCString(param.birthDate)\n : null,\n };\n }\n static fromJson(response) {\n if (!response)\n return response;\n const result = {\n id: 0,\n };\n if (response.code === '1' && typeof response.payload === 'string') {\n try {\n const parsed = JSON.parse(response.payload);\n if (Array.isArray(parsed) && parsed.length > 0) {\n const { idCliente } = parsed[0];\n result.id = idCliente;\n }\n }\n catch (error) {\n console.error('Error parsing payload JSON:', error);\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY3JlYXRlLXVwZGF0ZS5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2luZnJhc3RydWN0dXJlL21hcHBlcnMvY3VzdG9tZXItY3JlYXRlLXVwZGF0ZS5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0UsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVU7UUFDdEIsT0FBTztZQUNMLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQW1CLENBQUM7WUFDaEQsVUFBVSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBb0IsQ0FBQztZQUNsRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ2hELHNCQUFzQixFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUM7WUFDaEUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzlDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNwQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQ3hELGVBQWUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUNsRCxTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDdEMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7WUFDaEQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxTQUFTLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDeEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDaEMsWUFBWSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM5QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUk7WUFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3hFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ2hELFNBQVMsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxJQUFJO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQWE7UUFDM0IsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRztZQUNiLEVBQUUsRUFBRSxDQUFDO1NBQ04sQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksT0FBTyxRQUFRLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVGb3JtYXR0ZXIsIGdldFZhbGlkSWQsIGlzVmFsaWRGaWVsZCB9IGZyb20gJ0BhY29udHBsdXMvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJDcmVhdGVVcGRhdGVNYXBwZXIge1xuICBzdGF0aWMgdG9Kc29uKHBhcmFtOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWRDbGllbnRlOiBnZXRWYWxpZElkKHBhcmFtLmlkQ2xpZW50ZSBhcyBudW1iZXIpLFxuICAgICAgaWRFbXBsZWFkbzogZ2V0VmFsaWRJZChwYXJhbS5pZEVtcGxlYWRvIGFzIG51bWJlciksXG4gICAgICBpZFRpcG9JZGVudGlmaWNhY2lvbjogcGFyYW0uaWRUaXBvSWRlbnRpZmljYWNpb24sXG4gICAgICBpZFRpcG9DbGllbnRlUHJvdmVlZG9yOiBnZXRWYWxpZElkKHBhcmFtLmlkVGlwb0NsaWVudGVQcm92ZWVkb3IpLFxuICAgICAgaWRUaXBvRW50aWRhZDogZ2V0VmFsaWRJZChwYXJhbS5pZFRpcG9FbnRpZGFkKSxcbiAgICAgIGlkQ2l1ZGFkOiBnZXRWYWxpZElkKHBhcmFtLmlkQ2l1ZGFkKSxcbiAgICAgIGlkU3ViQ29udHJpYnV5ZW50ZTogZ2V0VmFsaWRJZChwYXJhbS5pZFN1YkNvbnRyaWJ1eWVudGUpLFxuICAgICAgaWRUaWVtcG9DcmVkaXRvOiBnZXRWYWxpZElkKHBhcmFtLmlkVGllbXBvQ3JlZGl0byksXG4gICAgICBpZEVtcHJlc2E6IGdldFZhbGlkSWQocGFyYW0uaWRFbXByZXNhKSxcbiAgICAgIGlkQ2FyZ286IGdldFZhbGlkSWQocGFyYW0uaWRDYXJnbyksXG4gICAgICBudW1lcm9JZGVudGlmaWNhY2lvbjogcGFyYW0ubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICBub21icmVGaXNjYWw6IHBhcmFtLm5vbWJyZUZpc2NhbCxcbiAgICAgIG5vbWJyZUNvbWVyY2lhbDogcGFyYW0ubm9tYnJlQ29tZXJjaWFsLFxuICAgICAgZGlyZWNjaW9uOiBpc1ZhbGlkRmllbGQocGFyYW0uZGlyZWNjaW9uKSxcbiAgICAgIHRlbGVmb25vOiBpc1ZhbGlkRmllbGQocGFyYW0udGVsZWZvbm8pLFxuICAgICAgY29ycmVvOiBpc1ZhbGlkRmllbGQocGFyYW0uY29ycmVvKSxcbiAgICAgIHBsYWNhOiBpc1ZhbGlkRmllbGQocGFyYW0ucGxhY2EpLFxuICAgICAgbW9udG9DcmVkaXRvOiBpc1ZhbGlkRmllbGQocGFyYW0ubW9udG9DcmVkaXRvKSxcbiAgICAgIG5vdGE6IGlzVmFsaWRGaWVsZChwYXJhbS5ub3RhKSxcbiAgICAgIHZhbGlkYXRpb25Tcmk6IHBhcmFtLnZhbGlkYXRpb25TcmksXG4gICAgICBpZEZvcm1hUGFnb1NyaTogZ2V0VmFsaWRJZChwYXJhbS5pZEZvcm1hUGFnb1NyaSksXG4gICAgICBlc3RhZG86IHBhcmFtLmVzdGFkbyA/PyB0cnVlLFxuICAgICAgaW5mb0NyZWRpdGljaWE6IHBhcmFtLmRhdGFJbmZvQ3JlZCAmJiBKU09OLnN0cmluZ2lmeShwYXJhbS5kYXRhSW5mb0NyZWQpLFxuICAgICAgY29uZmlnVmFsb3JCcnV0bzogcGFyYW0uY29uZmlnVmFsb3JCcnV0byA/PyBudWxsLFxuICAgICAgYmlydGhEYXRlOiBEYXRlRm9ybWF0dGVyLmlzVmFsaWQocGFyYW0uYmlydGhEYXRlKVxuICAgICAgICA/IERhdGVGb3JtYXR0ZXIudG9VVENTdHJpbmcocGFyYW0uYmlydGhEYXRlKVxuICAgICAgICA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbihyZXNwb25zZTogYW55KTogYW55IHtcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gcmVzcG9uc2U7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgaWQ6IDAsXG4gICAgfTtcblxuICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAnMScgJiYgdHlwZW9mIHJlc3BvbnNlLnBheWxvYWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3BvbnNlLnBheWxvYWQpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWQpICYmIHBhcnNlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgeyBpZENsaWVudGUgfSA9IHBhcnNlZFswXTtcbiAgICAgICAgICByZXN1bHQuaWQgPSBpZENsaWVudGU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgcGF5bG9hZCBKU09OOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=","export class CustomerFormDataMapper {\n static toJson() {\n return JSON.stringify({\n tipo: 2,\n });\n }\n static fromJson(response) {\n const result = {};\n if (response.code === '1') {\n const mainData = JSON.parse(response.payload);\n result.tipoIdentificacion = mainData[0];\n result.tipoContribuyentes = mainData[1];\n result.tiempoCreditos = mainData[2] || [];\n const ciudades = mainData[3];\n result.ciudades = ciudades.reduce((acc, ciudade) => {\n const dataExists = acc.find((c) => c.idProvincia === ciudade.idProvincia);\n if (!dataExists) {\n acc.push({\n idProvincia: ciudade.idProvincia,\n nombre: ciudade.provincia,\n ciudades: [\n {\n idCiudad: ciudade.idCiudad,\n nombre: ciudade.ciudad,\n },\n ],\n });\n }\n else {\n dataExists.ciudades.push({\n idCiudad: ciudade.idCiudad,\n nombre: ciudade.ciudad,\n });\n }\n return acc;\n }, []);\n result.tiposCliente = mainData[4] || [];\n result.empresas = mainData[5] || [];\n result.cargos = mainData[6] || [];\n result.formasPagoSri = mainData[7] || [];\n result.housingTypes = mainData[8] || [];\n result.maritalStatuses = mainData[9] || [];\n result.employees = mainData[10] || [];\n }\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZm9ybS1kYXRhLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbWFwcGVycy9jdXN0b21lci1mb3JtLWRhdGEubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUM7U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFhO1FBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQVMsQ0FBQztRQUN6QixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBaUIsQ0FBQyxDQUFDO1lBRXhELE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxPQUFZLEVBQUUsRUFBRTtnQkFDM0QsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDUCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7d0JBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUzt3QkFDekIsUUFBUSxFQUFFOzRCQUNSO2dDQUNFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQ0FDMUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNOzZCQUN2Qjt5QkFDRjtxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUN2QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7d0JBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtxQkFDdkIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQUUsRUFBUyxDQUFDLENBQUM7WUFFZCxNQUFNLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQyxNQUFNLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDdXN0b21lckZvcm1EYXRhTWFwcGVyIHtcbiAgc3RhdGljIHRvSnNvbigpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdGlwbzogMixcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbihyZXNwb25zZTogYW55KSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge30gYXMgYW55O1xuICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAnMScpIHtcbiAgICAgIGNvbnN0IG1haW5EYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZS5wYXlsb2FkIGFzIHN0cmluZyk7XG5cbiAgICAgIHJlc3VsdC50aXBvSWRlbnRpZmljYWNpb24gPSBtYWluRGF0YVswXTtcbiAgICAgIHJlc3VsdC50aXBvQ29udHJpYnV5ZW50ZXMgPSBtYWluRGF0YVsxXTtcbiAgICAgIHJlc3VsdC50aWVtcG9DcmVkaXRvcyA9IG1haW5EYXRhWzJdIHx8IFtdO1xuICAgICAgY29uc3QgY2l1ZGFkZXMgPSBtYWluRGF0YVszXTtcblxuICAgICAgcmVzdWx0LmNpdWRhZGVzID0gY2l1ZGFkZXMucmVkdWNlKChhY2M6IGFueSwgY2l1ZGFkZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFFeGlzdHMgPSBhY2MuZmluZCgoYzogYW55KSA9PiBjLmlkUHJvdmluY2lhID09PSBjaXVkYWRlLmlkUHJvdmluY2lhKTtcbiAgICAgICAgaWYgKCFkYXRhRXhpc3RzKSB7XG4gICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgaWRQcm92aW5jaWE6IGNpdWRhZGUuaWRQcm92aW5jaWEsXG4gICAgICAgICAgICBub21icmU6IGNpdWRhZGUucHJvdmluY2lhLFxuICAgICAgICAgICAgY2l1ZGFkZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkQ2l1ZGFkOiBjaXVkYWRlLmlkQ2l1ZGFkLFxuICAgICAgICAgICAgICAgIG5vbWJyZTogY2l1ZGFkZS5jaXVkYWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGFFeGlzdHMuY2l1ZGFkZXMucHVzaCh7XG4gICAgICAgICAgICBpZENpdWRhZDogY2l1ZGFkZS5pZENpdWRhZCxcbiAgICAgICAgICAgIG5vbWJyZTogY2l1ZGFkZS5jaXVkYWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdIGFzIGFueSk7XG5cbiAgICAgIHJlc3VsdC50aXBvc0NsaWVudGUgPSBtYWluRGF0YVs0XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5lbXByZXNhcyA9IG1haW5EYXRhWzVdIHx8IFtdO1xuICAgICAgcmVzdWx0LmNhcmdvcyA9IG1haW5EYXRhWzZdIHx8IFtdO1xuICAgICAgcmVzdWx0LmZvcm1hc1BhZ29TcmkgPSBtYWluRGF0YVs3XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5ob3VzaW5nVHlwZXMgPSBtYWluRGF0YVs4XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5tYXJpdGFsU3RhdHVzZXMgPSBtYWluRGF0YVs5XSB8fCBbXTtcbiAgICAgIHJlc3VsdC5lbXBsb3llZXMgPSBtYWluRGF0YVsxMF0gfHwgW107XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==","import { SEPARADORES_REGEX } from '@acontplus/core';\nimport { parseJSONSafe } from '@acontplus/utils';\nexport class CustomerGetByIdMapper {\n static fromJson(response) {\n if (response.code !== '1' || !response.payload) {\n return {};\n }\n const data = JSON.parse(response.payload)[0];\n return {\n idCliente: data.idCliente,\n idTipoClienteProveedor: data.idTipoClienteProveedor,\n idTipoEntidad: data.idTipoEntidad,\n idSubContribuyente: data.idSubContribuyente,\n idTiempoCredito: data.idTiempoCredito,\n idTipoIdentificacion: data.idTipoIdentificacion,\n idCiudad: data.idCiudad,\n numeroIdentificacion: data.numeroIdentificacion,\n identificacionComprador: data.numeroIdentificacion,\n razonSocialComprador: data.nombreFiscal,\n nombreFiscal: data.nombreFiscal,\n montoCredito: data.montoCredito,\n nombreComercial: data.nombreComercial,\n direccion: data.direccion,\n telefono: data.telefono,\n correo: data.correo,\n estado: data.estado,\n idEmpleado: data.idEmpleado,\n diasCredito: data.diasCredito,\n empleado: data.empleado,\n idEmpresa: data.idEmpresa,\n idCargo: data.idCargo,\n placa: data.placa,\n validationSri: data.validationSri,\n codigoSri: data.codigoSri,\n correos: data.correo ? data.correo.split(SEPARADORES_REGEX) : [],\n telefonos: data.telefono ? data.telefono.split(SEPARADORES_REGEX) : [],\n placas: data.placa ? data.placa.split(SEPARADORES_REGEX) : [],\n idFormaPagoSri: data.idFormaPagoSri,\n dataInfoCred: parseJSONSafe(data.infoCrediticia, {}),\n nota: data.nota?.trim() ?? '',\n configValorBruto: data.configValorBruto ?? false,\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ2V0LWJ5LWlkLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvbWFwcGVycy9jdXN0b21lci1nZXQtYnktaWQubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBYTtRQUMzQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9DLE9BQU8sRUFBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QyxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDL0MsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDL0MsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUNsRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0RSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3RCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLO1NBQ2pELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVBBUkFET1JFU19SRUdFWCB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBwYXJzZUpTT05TYWZlIH0gZnJvbSAnQGFjb250cGx1cy91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21lckdldEJ5SWRNYXBwZXIge1xuICBzdGF0aWMgZnJvbUpzb24ocmVzcG9uc2U6IGFueSkge1xuICAgIGlmIChyZXNwb25zZS5jb2RlICE9PSAnMScgfHwgIXJlc3BvbnNlLnBheWxvYWQpIHtcbiAgICAgIHJldHVybiB7fSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2UucGF5bG9hZClbMF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRDbGllbnRlOiBkYXRhLmlkQ2xpZW50ZSxcbiAgICAgIGlkVGlwb0NsaWVudGVQcm92ZWVkb3I6IGRhdGEuaWRUaXBvQ2xpZW50ZVByb3ZlZWRvcixcbiAgICAgIGlkVGlwb0VudGlkYWQ6IGRhdGEuaWRUaXBvRW50aWRhZCxcbiAgICAgIGlkU3ViQ29udHJpYnV5ZW50ZTogZGF0YS5pZFN1YkNvbnRyaWJ1eWVudGUsXG4gICAgICBpZFRpZW1wb0NyZWRpdG86IGRhdGEuaWRUaWVtcG9DcmVkaXRvLFxuICAgICAgaWRUaXBvSWRlbnRpZmljYWNpb246IGRhdGEuaWRUaXBvSWRlbnRpZmljYWNpb24sXG4gICAgICBpZENpdWRhZDogZGF0YS5pZENpdWRhZCxcbiAgICAgIG51bWVyb0lkZW50aWZpY2FjaW9uOiBkYXRhLm51bWVyb0lkZW50aWZpY2FjaW9uLFxuICAgICAgaWRlbnRpZmljYWNpb25Db21wcmFkb3I6IGRhdGEubnVtZXJvSWRlbnRpZmljYWNpb24sXG4gICAgICByYXpvblNvY2lhbENvbXByYWRvcjogZGF0YS5ub21icmVGaXNjYWwsXG4gICAgICBub21icmVGaXNjYWw6IGRhdGEubm9tYnJlRmlzY2FsLFxuICAgICAgbW9udG9DcmVkaXRvOiBkYXRhLm1vbnRvQ3JlZGl0byxcbiAgICAgIG5vbWJyZUNvbWVyY2lhbDogZGF0YS5ub21icmVDb21lcmNpYWwsXG4gICAgICBkaXJlY2Npb246IGRhdGEuZGlyZWNjaW9uLFxuICAgICAgdGVsZWZvbm86IGRhdGEudGVsZWZvbm8sXG4gICAgICBjb3JyZW86IGRhdGEuY29ycmVvLFxuICAgICAgZXN0YWRvOiBkYXRhLmVzdGFkbyxcbiAgICAgIGlkRW1wbGVhZG86IGRhdGEuaWRFbXBsZWFkbyxcbiAgICAgIGRpYXNDcmVkaXRvOiBkYXRhLmRpYXNDcmVkaXRvLFxuICAgICAgZW1wbGVhZG86IGRhdGEuZW1wbGVhZG8sXG4gICAgICBpZEVtcHJlc2E6IGRhdGEuaWRFbXByZXNhLFxuICAgICAgaWRDYXJnbzogZGF0YS5pZENhcmdvLFxuICAgICAgcGxhY2E6IGRhdGEucGxhY2EsXG4gICAgICB2YWxpZGF0aW9uU3JpOiBkYXRhLnZhbGlkYXRpb25TcmksXG4gICAgICBjb2RpZ29Tcmk6IGRhdGEuY29kaWdvU3JpLFxuICAgICAgY29ycmVvczogZGF0YS5jb3JyZW8gPyBkYXRhLmNvcnJlby5zcGxpdChTRVBBUkFET1JFU19SRUdFWCkgOiBbXSxcbiAgICAgIHRlbGVmb25vczogZGF0YS50ZWxlZm9ubyA/IGRhdGEudGVsZWZvbm8uc3BsaXQoU0VQQVJBRE9SRVNfUkVHRVgpIDogW10sXG4gICAgICBwbGFjYXM6IGRhdGEucGxhY2EgPyBkYXRhLnBsYWNhLnNwbGl0KFNFUEFSQURPUkVTX1JFR0VYKSA6IFtdLFxuICAgICAgaWRGb3JtYVBhZ29Tcmk6IGRhdGEuaWRGb3JtYVBhZ29TcmksXG4gICAgICBkYXRhSW5mb0NyZWQ6IHBhcnNlSlNPTlNhZmUoZGF0YS5pbmZvQ3JlZGl0aWNpYSwge30pLFxuICAgICAgbm90YTogZGF0YS5ub3RhPy50cmltKCkgPz8gJycsXG4gICAgICBjb25maWdWYWxvckJydXRvOiBkYXRhLmNvbmZpZ1ZhbG9yQnJ1dG8gPz8gZmFsc2UsXG4gICAgfTtcbiAgfVxufVxuIl19","export class ListCustomerMapper {\n static toJson(params) {\n return JSON.stringify({\n ...params,\n type: 1,\n tipo: 1, // remove after\n pageIndex: params.pageIndex,\n pageSize: params.pageSize,\n });\n }\n static fromJson(response) {\n // Initialize with backend-aligned shape (PageIndex is commonly 1-based server-side)\n const result = {\n items: [],\n pageIndex: 1,\n pageSize: 0,\n totalCount: 0,\n totalPages: 0,\n hasPreviousPage: false,\n hasNextPage: false,\n metadata: {},\n };\n // Parse payload (backend sends JSON string in payload)\n const parsed = typeof response?.payload === 'string' ? JSON.parse(response.payload) : response?.payload;\n const dataArray = Array.isArray(parsed)\n ? (parsed[0] ?? [])\n : Array.isArray(parsed?.items)\n ? parsed.items\n : [];\n // Map each item to UI-friendly fields, preserving source values\n result.items = dataArray.map((item, index) => ({\n index: index + 1,\n id: item.idCliente,\n identificationTypeId: item.idTipoIdentificacion,\n identification: item.numeroIdentificacion,\n businessName: item.nombreFiscal,\n tradeName: item.nombreComercial,\n address: item.direccion,\n phone: item.telefono,\n email: item.correo,\n finalConsumer: item.consumidorFinal,\n sriValidation: item.validacionSri ?? item.validationSri,\n sriValidationName: (item.validationSri ?? item.validacionSri) ? 'SI' : 'NO',\n identificationType: item.tipoIdentificacion,\n status: item.estado,\n statusName: item.estado ? 'Activo' : 'Inactivo',\n isFinalConsumer: item.codTipoIdentificacion === 'CF',\n totalRecords: item.totalRecords ?? item.TotalCount,\n }));\n // Flexible pagination extraction (prefer explicit backend values)\n const pageIndex = response?.PageIndex ?? response?.pageIndex ?? 1;\n const pageSize = response?.PageSize ?? response?.pageSize ?? result.items.length;\n const totalCountFromItem = result.items.length > 0 ? result.items[0].totalRecords : undefined;\n const totalCount = response?.TotalCount ?? response?.totalCount ?? totalCountFromItem ?? result.items.length;\n const metadata = response?.Metadata ?? response?.metadata ?? {};\n result.pageIndex = Number.isFinite(pageIndex) ? pageIndex : 1;\n result.pageSize = Number.isFinite(pageSize) ? pageSize : result.items.length;\n result.totalCount = Number.isFinite(totalCount) ? totalCount : result.items.length;\n result.totalPages = result.pageSize > 0 ? Math.ceil(result.totalCount / result.pageSize) : 0;\n // Backend semantics show HasPreviousPage as PageIndex > 1\n result.hasPreviousPage = result.pageIndex > 1;\n result.hasNextPage = result.pageIndex < result.totalPages;\n result.metadata = metadata;\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItbGlzdC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL2luZnJhc3RydWN0dXJlL21hcHBlcnMvY3VzdG9tZXItbGlzdC5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BCLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUMsRUFBRSxlQUFlO1lBQ3hCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBYTtRQUMzQixvRkFBb0Y7UUFDcEYsTUFBTSxNQUFNLEdBQVE7WUFDbEIsS0FBSyxFQUFFLEVBQVc7WUFDbEIsU0FBUyxFQUFFLENBQUM7WUFDWixRQUFRLEVBQUUsQ0FBQztZQUNYLFVBQVUsRUFBRSxDQUFDO1lBQ2IsVUFBVSxFQUFFLENBQUM7WUFDYixlQUFlLEVBQUUsS0FBSztZQUN0QixXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRLEVBQUUsRUFBeUI7U0FDcEMsQ0FBQztRQUVGLHVEQUF1RDtRQUN2RCxNQUFNLE1BQU0sR0FDVixPQUFPLFFBQVEsRUFBRSxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztRQUMzRixNQUFNLFNBQVMsR0FBVSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQyxN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bkYsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLDBEQUEwRDtRQUMxRCxNQUFNLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTNCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMaXN0Q3VzdG9tZXJNYXBwZXIge1xuICBzdGF0aWMgdG9Kc29uKHBhcmFtczogYW55KSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHR5cGU6IDEsXG4gICAgICB0aXBvOiAxLCAvLyByZW1vdmUgYWZ0ZXJcbiAgICAgIHBhZ2VJbmRleDogcGFyYW1zLnBhZ2VJbmRleCxcbiAgICAgIHBhZ2VTaXplOiBwYXJhbXMucGFnZVNpemUsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb24ocmVzcG9uc2U6IGFueSkge1xuICAgIC8vIEluaXRpYWxpemUgd2l0aCBiYWNrZW5kLWFsaWduZWQgc2hhcGUgKFBhZ2VJbmRleCBpcyBjb21tb25seSAxLWJhc2VkIHNlcnZlci1zaWRlKVxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge1xuICAgICAgaXRlbXM6IFtdIGFzIGFueVtdLFxuICAgICAgcGFnZUluZGV4OiAxLFxuICAgICAgcGFnZVNpemU6IDAsXG4gICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgIGhhc1ByZXZpb3VzUGFnZTogZmFsc2UsXG4gICAgICBoYXNOZXh0UGFnZTogZmFsc2UsXG4gICAgICBtZXRhZGF0YToge30gYXMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgICB9O1xuXG4gICAgLy8gUGFyc2UgcGF5bG9hZCAoYmFja2VuZCBzZW5kcyBKU09OIHN0cmluZyBpbiBwYXlsb2FkKVxuICAgIGNvbnN0IHBhcnNlZCA9XG4gICAgICB0eXBlb2YgcmVzcG9uc2U/LnBheWxvYWQgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNwb25zZS5wYXlsb2FkKSA6IHJlc3BvbnNlPy5wYXlsb2FkO1xuICAgIGNvbnN0IGRhdGFBcnJheTogYW55W10gPSBBcnJheS5pc0FycmF5KHBhcnNlZClcbiAgICAgID8gKHBhcnNlZFswXSA/PyBbXSlcbiAgICAgIDogQXJyYXkuaXNBcnJheShwYXJzZWQ/Lml0ZW1zKVxuICAgICAgICA/IHBhcnNlZC5pdGVtc1xuICAgICAgICA6IFtdO1xuXG4gICAgLy8gTWFwIGVhY2ggaXRlbSB0byBVSS1mcmllbmRseSBmaWVsZHMsIHByZXNlcnZpbmcgc291cmNlIHZhbHVlc1xuICAgIHJlc3VsdC5pdGVtcyA9IGRhdGFBcnJheS5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICBpZDogaXRlbS5pZENsaWVudGUsXG4gICAgICBpZGVudGlmaWNhdGlvblR5cGVJZDogaXRlbS5pZFRpcG9JZGVudGlmaWNhY2lvbixcbiAgICAgIGlkZW50aWZpY2F0aW9uOiBpdGVtLm51bWVyb0lkZW50aWZpY2FjaW9uLFxuICAgICAgYnVzaW5lc3NOYW1lOiBpdGVtLm5vbWJyZUZpc2NhbCxcbiAgICAgIHRyYWRlTmFtZTogaXRlbS5ub21icmVDb21lcmNpYWwsXG4gICAgICBhZGRyZXNzOiBpdGVtLmRpcmVjY2lvbixcbiAgICAgIHBob25lOiBpdGVtLnRlbGVmb25vLFxuICAgICAgZW1haWw6IGl0ZW0uY29ycmVvLFxuICAgICAgZmluYWxDb25zdW1lcjogaXRlbS5jb25zdW1pZG9yRmluYWwsXG4gICAgICBzcmlWYWxpZGF0aW9uOiBpdGVtLnZhbGlkYWNpb25TcmkgPz8gaXRlbS52YWxpZGF0aW9uU3JpLFxuICAgICAgc3JpVmFsaWRhdGlvbk5hbWU6IChpdGVtLnZhbGlkYXRpb25TcmkgPz8gaXRlbS52YWxpZGFjaW9uU3JpKSA/ICdTSScgOiAnTk8nLFxuICAgICAgaWRlbnRpZmljYXRpb25UeXBlOiBpdGVtLnRpcG9JZGVudGlmaWNhY2lvbixcbiAgICAgIHN0YXR1czogaXRlbS5lc3RhZG8sXG4gICAgICBzdGF0dXNOYW1lOiBpdGVtLmVzdGFkbyA/ICdBY3Rpdm8nIDogJ0luYWN0aXZvJyxcbiAgICAgIGlzRmluYWxDb25zdW1lcjogaXRlbS5jb2RUaXBvSWRlbnRpZmljYWNpb24gPT09ICdDRicsXG4gICAgICB0b3RhbFJlY29yZHM6IGl0ZW0udG90YWxSZWNvcmRzID8/IGl0ZW0uVG90YWxDb3VudCxcbiAgICB9KSk7XG5cbiAgICAvLyBGbGV4aWJsZSBwYWdpbmF0aW9uIGV4dHJhY3Rpb24gKHByZWZlciBleHBsaWNpdCBiYWNrZW5kIHZhbHVlcylcbiAgICBjb25zdCBwYWdlSW5kZXggPSByZXNwb25zZT8uUGFnZUluZGV4ID8/IHJlc3BvbnNlPy5wYWdlSW5kZXggPz8gMTtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHJlc3BvbnNlPy5QYWdlU2l6ZSA/PyByZXNwb25zZT8ucGFnZVNpemUgPz8gcmVzdWx0Lml0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbENvdW50RnJvbUl0ZW0gPSByZXN1bHQuaXRlbXMubGVuZ3RoID4gMCA/IHJlc3VsdC5pdGVtc1swXS50b3RhbFJlY29yZHMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdG90YWxDb3VudCA9XG4gICAgICByZXNwb25zZT8uVG90YWxDb3VudCA/PyByZXNwb25zZT8udG90YWxDb3VudCA/PyB0b3RhbENvdW50RnJvbUl0ZW0gPz8gcmVzdWx0Lml0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHJlc3BvbnNlPy5NZXRhZGF0YSA/PyByZXNwb25zZT8ubWV0YWRhdGEgPz8ge307XG5cbiAgICByZXN1bHQucGFnZUluZGV4ID0gTnVtYmVyLmlzRmluaXRlKHBhZ2VJbmRleCkgPyBwYWdlSW5kZXggOiAxO1xuICAgIHJlc3VsdC5wYWdlU2l6ZSA9IE51bWJlci5pc0Zpbml0ZShwYWdlU2l6ZSkgPyBwYWdlU2l6ZSA6IHJlc3VsdC5pdGVtcy5sZW5ndGg7XG4gICAgcmVzdWx0LnRvdGFsQ291bnQgPSBOdW1iZXIuaXNGaW5pdGUodG90YWxDb3VudCkgPyB0b3RhbENvdW50IDogcmVzdWx0Lml0ZW1zLmxlbmd0aDtcbiAgICByZXN1bHQudG90YWxQYWdlcyA9IHJlc3VsdC5wYWdlU2l6ZSA+IDAgPyBNYXRoLmNlaWwocmVzdWx0LnRvdGFsQ291bnQgLyByZXN1bHQucGFnZVNpemUpIDogMDtcbiAgICAvLyBCYWNrZW5kIHNlbWFudGljcyBzaG93IEhhc1ByZXZpb3VzUGFnZSBhcyBQYWdlSW5kZXggPiAxXG4gICAgcmVzdWx0Lmhhc1ByZXZpb3VzUGFnZSA9IHJlc3VsdC5wYWdlSW5kZXggPiAxO1xuICAgIHJlc3VsdC5oYXNOZXh0UGFnZSA9IHJlc3VsdC5wYWdlSW5kZXggPCByZXN1bHQudG90YWxQYWdlcztcbiAgICByZXN1bHQubWV0YWRhdGEgPSBtZXRhZGF0YTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==","import { HttpClientFactory } from '@acontplus/core';\nimport { CUSTOMER_API } from '../constants/customer.constants';\nexport class CustomerExternalHttpRepository {\n get http() {\n return HttpClientFactory.getClient(); // siempre toma el último cliente configurado\n }\n get url() {\n return `${CUSTOMER_API.BILLING}/Consultas/`;\n }\n getById(identification) {\n const id = identification.getId();\n let endpoint = '';\n if (identification.isValidRuc()) {\n endpoint = `GetRucSRI?Ruc=${id}`;\n }\n else if (identification.isValidCedula()) {\n endpoint = `GetCedulaSri?Ruc=${id}`;\n }\n else {\n throw new Error('Número de identificación inválido para SRI');\n }\n return this.http.get(`${this.url}${endpoint}`).then(response => {\n const idCard = response.numeroRuc ? response.numeroRuc : response.identificacion;\n const businessName = response.razonSocial ? response.razonSocial : response.nombreCompleto;\n const data = {\n phone: response.telefono,\n email: response.email,\n idCard,\n businessName,\n address: response.direccion,\n };\n return {\n status: response.error ? 'warning' : 'success',\n code: response.error ? 'EXTERNAL_API_ERROR' : 'SUCCESS',\n data,\n message: response.error ?? 'External API call completed',\n timestamp: new Date().toISOString(),\n };\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZXh0ZXJuYWwtaHR0cC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9yZXBvc2l0b3JpZXMvY3VzdG9tZXItZXh0ZXJuYWwtaHR0cC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxpQkFBaUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0QsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxJQUFZLElBQUk7UUFDZCxPQUFPLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsNkNBQTZDO0lBQ3JGLENBQUM7SUFFRCxJQUFZLEdBQUc7UUFDYixPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsY0FBc0M7UUFDNUMsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsR0FBRyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDbkMsQ0FBQzthQUFNLElBQUksY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUMsUUFBUSxHQUFHLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNqRixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzNGLE1BQU0sSUFBSSxHQUFxQjtnQkFDN0IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRO2dCQUN4QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE1BQU07Z0JBQ04sWUFBWTtnQkFDWixPQUFPLEVBQUUsUUFBUSxDQUFDLFNBQVM7YUFDNUIsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDOUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN2RCxJQUFJO2dCQUNKLE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLDZCQUE2QjtnQkFDeEQsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ2hCLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlSZXNwb25zZSwgSHR0cENsaWVudEZhY3RvcnksIElkZW50aWZpY2F0aW9uTnVtYmVyVm8gfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuaW1wb3J0IHsgQ1VTVE9NRVJfQVBJIH0gZnJvbSAnLi4vY29uc3RhbnRzL2N1c3RvbWVyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDdXN0b21lckV4dGVybmFsUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDdXN0b21lckV4dGVybmFsIH0gZnJvbSAnLi4vLi4vZG9tYWluL2VudGl0aWVzL2N1c3RvbWVyLWV4dGVybmFsLmVudGl0eSc7XG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJFeHRlcm5hbEh0dHBSZXBvc2l0b3J5IGltcGxlbWVudHMgQ3VzdG9tZXJFeHRlcm5hbFJlcG9zaXRvcnkge1xuICBwcml2YXRlIGdldCBodHRwKCkge1xuICAgIHJldHVybiBIdHRwQ2xpZW50RmFjdG9yeS5nZXRDbGllbnQoKTsgLy8gc2llbXByZSB0b21hIGVsIMO6bHRpbW8gY2xpZW50ZSBjb25maWd1cmFkb1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdXJsKCkge1xuICAgIHJldHVybiBgJHtDVVNUT01FUl9BUEkuQklMTElOR30vQ29uc3VsdGFzL2A7XG4gIH1cblxuICBnZXRCeUlkKGlkZW50aWZpY2F0aW9uOiBJZGVudGlmaWNhdGlvbk51bWJlclZvKTogUHJvbWlzZTxBcGlSZXNwb25zZTxDdXN0b21lckV4dGVybmFsPj4ge1xuICAgIGNvbnN0IGlkID0gaWRlbnRpZmljYXRpb24uZ2V0SWQoKTtcblxuICAgIGxldCBlbmRwb2ludCA9ICcnO1xuICAgIGlmIChpZGVudGlmaWNhdGlvbi5pc1ZhbGlkUnVjKCkpIHtcbiAgICAgIGVuZHBvaW50ID0gYEdldFJ1Y1NSST9SdWM9JHtpZH1gO1xuICAgIH0gZWxzZSBpZiAoaWRlbnRpZmljYXRpb24uaXNWYWxpZENlZHVsYSgpKSB7XG4gICAgICBlbmRwb2ludCA9IGBHZXRDZWR1bGFTcmk/UnVjPSR7aWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOw7ptZXJvIGRlIGlkZW50aWZpY2FjacOzbiBpbnbDoWxpZG8gcGFyYSBTUkknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMudXJsfSR7ZW5kcG9pbnR9YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICBjb25zdCBpZENhcmQgPSByZXNwb25zZS5udW1lcm9SdWMgPyByZXNwb25zZS5udW1lcm9SdWMgOiByZXNwb25zZS5pZGVudGlmaWNhY2lvbjtcbiAgICAgIGNvbnN0IGJ1c2luZXNzTmFtZSA9IHJlc3BvbnNlLnJhem9uU29jaWFsID8gcmVzcG9uc2UucmF6b25Tb2NpYWwgOiByZXNwb25zZS5ub21icmVDb21wbGV0bztcbiAgICAgIGNvbnN0IGRhdGE6IEN1c3RvbWVyRXh0ZXJuYWwgPSB7XG4gICAgICAgIHBob25lOiByZXNwb25zZS50ZWxlZm9ubyxcbiAgICAgICAgZW1haWw6IHJlc3BvbnNlLmVtYWlsLFxuICAgICAgICBpZENhcmQsXG4gICAgICAgIGJ1c2luZXNzTmFtZSxcbiAgICAgICAgYWRkcmVzczogcmVzcG9uc2UuZGlyZWNjaW9uLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogcmVzcG9uc2UuZXJyb3IgPyAnd2FybmluZycgOiAnc3VjY2VzcycsXG4gICAgICAgIGNvZGU6IHJlc3BvbnNlLmVycm9yID8gJ0VYVEVSTkFMX0FQSV9FUlJPUicgOiAnU1VDQ0VTUycsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLmVycm9yID8/ICdFeHRlcm5hbCBBUEkgY2FsbCBjb21wbGV0ZWQnLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH0gYXMgQXBpUmVzcG9uc2U8YW55PjtcbiAgICB9KTtcbiAgfVxufVxuIl19","import { CustomerFormDataMapper } from '../mappers/customer-form-data.mapper';\nimport { ListCustomerMapper } from '../mappers/customer-list.mapper';\nimport { CustomerGetByIdMapper } from '../mappers/customer-get-by-id.mapper';\nimport { CustomerCreateUpdateMapper } from '../mappers/customer-create-update.mapper';\nimport { CompanySearchMapper } from '../mappers/company-search.mapper';\nimport { HttpClientFactory } from '@acontplus/core';\nimport { CUSTOMER_API } from '../constants/customer.constants';\nexport class CustomerHttpRepository {\n get http() {\n return HttpClientFactory.getClient(); // siempre toma el último cliente configurado\n }\n get url() {\n return `${CUSTOMER_API.BILLING}/CompanyCustomer/`;\n }\n checkExistence(identificationNumber) {\n const searchPayload = JSON.stringify({\n textSearch: identificationNumber,\n tipo: 3,\n });\n return this.http.get(`${this.url}?json=${searchPayload}`).then(response => {\n const result = {\n status: 'warning',\n code: response.code ?? 'UNKNOWN_ERROR',\n data: null,\n message: response.message ?? 'Unknown error occurred',\n timestamp: new Date().toISOString(),\n };\n if (response.code === '1' && response.payload) {\n const parsedData = JSON.parse(response.payload);\n if (Array.isArray(parsedData) && parsedData.length > 0 && Array.isArray(parsedData[0])) {\n const [customer] = parsedData[0];\n if (customer) {\n result.status = 'success';\n result.data = customer;\n }\n }\n }\n return result;\n });\n }\n getFormData() {\n const json = CustomerFormDataMapper.toJson();\n return this.http.get(`${this.url}?json=${json}`).then((response) => {\n const data = CustomerFormDataMapper.fromJson(response);\n return {\n status: 'success',\n code: response.code ?? 'SUCCESS',\n data,\n timestamp: new Date().toISOString(),\n };\n });\n }\n getAll(obj) {\n const json = ListCustomerMapper.toJson(obj);\n return this.http.get(`${this.url}?json=${json}`).then((response) => {\n const data = ListCustomerMapper.fromJson(response);\n return {\n status: 'success',\n code: response.code ?? 'SUCCESS',\n data,\n timestamp: new Date().toISOString(),\n };\n });\n }\n create(dto) {\n return this.http\n .post(this.url, { data: CustomerCreateUpdateMapper.toJson(dto.data) })\n .then(response => {\n console.log(response);\n const data = CustomerCreateUpdateMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n data,\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n };\n });\n }\n update(dto) {\n return this.http\n .put(`${this.url}${dto.id}`, {\n data: CustomerCreateUpdateMapper.toJson(dto.data),\n })\n .then(response => {\n console.log(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n };\n });\n }\n updateState(id) {\n return this.http.delete(`${this.url}${id}`).then(response => {\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code,\n message: response.message,\n timestamp: new Date().toISOString(),\n };\n });\n }\n getById(id) {\n return this.http.get(`${this.url}GetId/${id}`).then(response => {\n const data = CustomerGetByIdMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code ?? 'OPERATION_FAILED',\n data,\n message: response.message ?? 'Operation completed with issues',\n timestamp: new Date().toISOString(),\n };\n });\n }\n search(params) {\n const json = CompanySearchMapper.toJson(params);\n return this.http.get(`${this.url}Search?json=${json}`).then(response => {\n const data = CompanySearchMapper.fromJson(response);\n return {\n status: response.code === '1' ? 'success' : 'warning',\n code: response.code,\n data,\n message: response.message,\n timestamp: new Date().toISOString(),\n };\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItaHR0cC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9yZXBvc2l0b3JpZXMvY3VzdG9tZXItaHR0cC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBZSxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQVksSUFBSTtRQUNkLE9BQU8saUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyw2Q0FBNkM7SUFDckYsQ0FBQztJQUVELElBQVksR0FBRztRQUNiLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxtQkFBbUIsQ0FBQztJQUNwRCxDQUFDO0lBRUQsY0FBYyxDQUFDLG9CQUE0QjtRQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25DLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsSUFBSSxFQUFFLENBQUM7U0FDUixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsU0FBUyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUks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QWMsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xGLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNyRCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLElBQUk7Z0JBQ0osT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7YUFDaEIsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbWVyRm9ybURhdGFNYXBwZXIgfSBmcm9tICcuLi9tYXBwZXJzL2N1c3RvbWVyLWZvcm0tZGF0YS5tYXBwZXInO1xuaW1wb3J0IHsgTGlzdEN1c3RvbWVyTWFwcGVyIH0gZnJvbSAnLi4vbWFwcGVycy9jdXN0b21lci1saXN0Lm1hcHBlcic7XG5pbXBvcnQgeyBDdXN0b21lclJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ3VzdG9tZXJHZXRCeUlkTWFwcGVyIH0gZnJvbSAnLi4vbWFwcGVycy9jdXN0b21lci1nZXQtYnktaWQubWFwcGVyJztcbmltcG9ydCB7IEN1c3RvbWVyQ3JlYXRlVXBkYXRlTWFwcGVyIH0gZnJvbSAnLi4vbWFwcGVycy9jdXN0b21lci1jcmVhdGUtdXBkYXRlLm1hcHBlcic7XG5pbXBvcnQgeyBDdXN0b21lclNlYXJjaCB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL21vZGVscy9jdXN0b21lci1zZWFyY2gnO1xuaW1wb3J0IHsgQ29tcGFueVNlYXJjaE1hcHBlciB9IGZyb20gJy4uL21hcHBlcnMvY29tcGFueS1zZWFyY2gubWFwcGVyJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlLCBIdHRwQ2xpZW50RmFjdG9yeSwgUGFnZWRSZXN1bHQgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuaW1wb3J0IHsgQ1VTVE9NRVJfQVBJIH0gZnJvbSAnLi4vY29uc3RhbnRzL2N1c3RvbWVyLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21lckh0dHBSZXBvc2l0b3J5IGltcGxlbWVudHMgQ3VzdG9tZXJSZXBvc2l0b3J5IHtcbiAgcHJpdmF0ZSBnZXQgaHR0cCgpIHtcbiAgICByZXR1cm4gSHR0cENsaWVudEZhY3RvcnkuZ2V0Q2xpZW50KCk7IC8vIHNpZW1wcmUgdG9tYSBlbCDDumx0aW1vIGNsaWVudGUgY29uZmlndXJhZG9cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYCR7Q1VTVE9NRVJfQVBJLkJJTExJTkd9L0NvbXBhbnlDdXN0b21lci9gO1xuICB9XG5cbiAgY2hlY2tFeGlzdGVuY2UoaWRlbnRpZmljYXRpb25OdW1iZXI6IHN0cmluZyk6IFByb21pc2U8QXBpUmVzcG9uc2U8YW55Pj4ge1xuICAgIGNvbnN0IHNlYXJjaFBheWxvYWQgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0ZXh0U2VhcmNoOiBpZGVudGlmaWNhdGlvbk51bWJlcixcbiAgICAgIHRpcG86IDMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnVybH0/anNvbj0ke3NlYXJjaFBheWxvYWR9YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQ6IEFwaVJlc3BvbnNlPGFueT4gPSB7XG4gICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLFxuICAgICAgICBjb2RlOiByZXNwb25zZS5jb2RlID8/ICdVTktOT1dOX0VSUk9SJyxcbiAgICAgICAgZGF0YTogbnVsbCBhcyBhbnksXG4gICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgPz8gJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gJzEnICYmIHJlc3BvbnNlLnBheWxvYWQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2UucGF5bG9hZCk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcnNlZERhdGEpICYmIHBhcnNlZERhdGEubGVuZ3RoID4gMCAmJiBBcnJheS5pc0FycmF5KHBhcnNlZERhdGFbMF0pKSB7XG4gICAgICAgICAgY29uc3QgW2N1c3RvbWVyXSA9IHBhcnNlZERhdGFbMF07XG4gICAgICAgICAgaWYgKGN1c3RvbWVyKSB7XG4gICAgICAgICAgICByZXN1bHQuc3RhdHVzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgcmVzdWx0LmRhdGEgPSBjdXN0b21lcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRGb3JtRGF0YSgpOiBQcm9taXNlPEFwaVJlc3BvbnNlPGFueT4+IHtcbiAgICBjb25zdCBqc29uID0gQ3VzdG9tZXJGb3JtRGF0YU1hcHBlci50b0pzb24oKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMudXJsfT9qc29uPSR7anNvbn1gKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gQ3VzdG9tZXJGb3JtRGF0YU1hcHBlci5mcm9tSnNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSA/PyAnU1VDQ0VTUycsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgfSBhcyBBcGlSZXNwb25zZTxhbnk+O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWxsPFQ+KG9iajogVCk6IFByb21pc2U8QXBpUmVzcG9uc2U8UGFnZWRSZXN1bHQ8YW55Pj4+IHtcbiAgICBjb25zdCBqc29uID0gTGlzdEN1c3RvbWVyTWFwcGVyLnRvSnNvbihvYmopO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy51cmx9P2pzb249JHtqc29ufWApLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBMaXN0Q3VzdG9tZXJNYXBwZXIuZnJvbUpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAgICAgIGNvZGU6IHJlc3BvbnNlLmNvZGUgPz8gJ1NVQ0NFU1MnLFxuICAgICAgICBkYXRhLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH0gYXMgQXBpUmVzcG9uc2U8UGFnZWRSZXN1bHQ8YW55Pj47XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGUoZHRvOiBhbnkpOiBQcm9taXNlPEFwaVJlc3BvbnNlPGFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxBcGlSZXNwb25zZT4odGhpcy51cmwsIHsgZGF0YTogQ3VzdG9tZXJDcmVhdGVVcGRhdGVNYXBwZXIudG9Kc29uKGR0by5kYXRhKSB9KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBDdXN0b21lckNyZWF0ZVVwZGF0ZU1hcHBlci5mcm9tSnNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5jb2RlID09PSAnMScgPyAnc3VjY2VzcycgOiAnd2FybmluZycsXG4gICAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSA/PyAnT1BFUkFUSU9OX0ZBSUxFRCcsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlID8/ICdPcGVyYXRpb24gY29tcGxldGVkIHdpdGggaXNzdWVzJyxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfSBhcyBBcGlSZXNwb25zZTxhbnk+O1xuICAgICAgfSk7XG4gIH1cbiAgdXBkYXRlKGR0bzogYW55KTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dDxBcGlSZXNwb25zZT4oYCR7dGhpcy51cmx9JHtkdG8uaWR9YCwge1xuICAgICAgICBkYXRhOiBDdXN0b21lckNyZWF0ZVVwZGF0ZU1hcHBlci50b0pzb24oZHRvLmRhdGEpLFxuICAgICAgfSlcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1czogcmVzcG9uc2UuY29kZSA9PT0gJzEnID8gJ3N1Y2Nlc3MnIDogJ3dhcm5pbmcnLFxuICAgICAgICAgIGNvZGU6IHJlc3BvbnNlLmNvZGUgPz8gJ09QRVJBVElPTl9GQUlMRUQnLFxuICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgPz8gJ09wZXJhdGlvbiBjb21wbGV0ZWQgd2l0aCBpc3N1ZXMnLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9IGFzIEFwaVJlc3BvbnNlPGFueT47XG4gICAgICB9KTtcbiAgfVxuICB1cGRhdGVTdGF0ZShpZDogbnVtYmVyKTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpUmVzcG9uc2U+KGAke3RoaXMudXJsfSR7aWR9YCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLmNvZGUgPT09ICcxJyA/ICdzdWNjZXNzJyA6ICd3YXJuaW5nJyxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9IGFzIEFwaVJlc3BvbnNlPGFueT47XG4gICAgfSk7XG4gIH1cbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnVybH1HZXRJZC8ke2lkfWApLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IEN1c3RvbWVyR2V0QnlJZE1hcHBlci5mcm9tSnNvbihyZXNwb25zZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLmNvZGUgPT09ICcxJyA/ICdzdWNjZXNzJyA6ICd3YXJuaW5nJyxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSA/PyAnT1BFUkFUSU9OX0ZBSUxFRCcsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UgPz8gJ09wZXJhdGlvbiBjb21wbGV0ZWQgd2l0aCBpc3N1ZXMnLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH0gYXMgQXBpUmVzcG9uc2U8YW55PjtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaChwYXJhbXM6IEN1c3RvbWVyU2VhcmNoKTogUHJvbWlzZTxBcGlSZXNwb25zZTxhbnk+PiB7XG4gICAgY29uc3QganNvbiA9IENvbXBhbnlTZWFyY2hNYXBwZXIudG9Kc29uKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U+KGAke3RoaXMudXJsfVNlYXJjaD9qc29uPSR7anNvbn1gKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBDb21wYW55U2VhcmNoTWFwcGVyLmZyb21Kc29uKHJlc3BvbnNlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogcmVzcG9uc2UuY29kZSA9PT0gJzEnID8gJ3N1Y2Nlc3MnIDogJ3dhcm5pbmcnLFxuICAgICAgICBjb2RlOiByZXNwb25zZS5jb2RlLFxuICAgICAgICBkYXRhLFxuICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIH0gYXMgQXBpUmVzcG9uc2U8YW55PjtcbiAgICB9KTtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { forkJoin, from } from 'rxjs';\nimport { NotificationService } from '@acontplus/ng-notifications';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, } from '@angular/material/dialog';\nimport { MatDynamicCardComponent, MatInputChipComponent, MatThemeButtonComponent, ToUpperCaseDirective, } from '@acontplus/ng-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators, } from '@angular/forms';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport { SEPARADORES_REGEX, SEPARATOR_KEY_CODE, SRI_DOCUMENT_TYPE, isSuccessResponse, } from '@acontplus/core';\nimport { CustomerUseCase } from '../../../application/use-cases/customer.use-case';\nimport { CustomerExternalUseCase } from '../../../application/use-cases/customer-external.use-case';\nimport { CustomerHttpRepository } from '../../../infrastructure/repositories/customer-http.repository';\nimport { CustomerExternalHttpRepository } from '../../../infrastructure/repositories/customer-external-http.repository';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/tabs\";\nimport * as i4 from \"@angular/material/form-field\";\nimport * as i5 from \"@angular/material/input\";\nimport * as i6 from \"@angular/material/select\";\nimport * as i7 from \"@angular/material/slide-toggle\";\nimport * as i8 from \"@angular/material/datepicker\";\nexport class CustomerAddEditComponent {\n dialogRef = inject((MatDialogRef));\n customerUseCase = inject(CustomerUseCase);\n customerExternalUseCase = inject(CustomerExternalUseCase);\n btnText = signal('Guardar', ...(ngDevMode ? [{ debugName: \"btnText\" }] : []));\n paramsOptions = inject(MAT_DIALOG_DATA);\n params = this.paramsOptions.data;\n notificationService = inject(NotificationService);\n title = 'Nuevo Cliente';\n loading = false;\n emails = [];\n telephones = [];\n tiemposCredito = signal([], ...(ngDevMode ? [{ debugName: \"tiemposCredito\" }] : []));\n tipoContribuyentes = signal([], ...(ngDevMode ? [{ debugName: \"tipoContribuyentes\" }] : []));\n tiposCliente = signal([], ...(ngDevMode ? [{ debugName: \"tiposCliente\" }] : []));\n tiposIdentificacion = signal([], ...(ngDevMode ? [{ debugName: \"tiposIdentificacion\" }] : []));\n formasPagoSri = signal([], ...(ngDevMode ? [{ debugName: \"formasPagoSri\" }] : []));\n placas = signal([], ...(ngDevMode ? [{ debugName: \"placas\" }] : []));\n ciudades = signal([], ...(ngDevMode ? [{ debugName: \"ciudades\" }] : []));\n cargos = signal([], ...(ngDevMode ? [{ debugName: \"cargos\" }] : []));\n empresas = signal([], ...(ngDevMode ? [{ debugName: \"empresas\" }] : []));\n employees = signal([], ...(ngDevMode ? [{ debugName: \"employees\" }] : []));\n maritalStatuses = signal([], ...(ngDevMode ? [{ debugName: \"maritalStatuses\" }] : []));\n housingTypes = signal([], ...(ngDevMode ? [{ debugName: \"housingTypes\" }] : []));\n showRefresh = signal(true, ...(ngDevMode ? [{ debugName: \"showRefresh\" }] : []));\n endsWith001Validator(control) {\n const value = control.value;\n if (value && value.length >= 3) {\n if (!value.endsWith('001')) {\n return { endsWith001: true };\n }\n }\n return null;\n }\n customerForm = new FormGroup({\n direccion: new FormControl('', Validators.required),\n idCargo: new FormControl(0),\n idCliente: new FormControl(0),\n idEmpresa: new FormControl(0),\n idFormaPagoSri: new FormControl(0),\n idTipoClienteProveedor: new FormControl(0),\n idTipoIdentificacion: new FormControl(0, Validators.required),\n idSubContribuyente: new FormControl(0),\n idTiempoCredito: new FormControl(0),\n idCiudad: new FormControl(0),\n idEmpleado: new FormControl(0),\n nombreFiscal: new FormControl('', Validators.required),\n nombreComercial: new FormControl(''),\n numeroIdentificacion: new FormControl({ value: '', disabled: false }, [\n Validators.required,\n Validators.minLength(13),\n Validators.maxLength(13),\n this.endsWith001Validator,\n ]),\n correo: new FormControl(''),\n telefono: new FormControl(''),\n placa: new FormControl(''),\n nota: new FormControl(''),\n estado: new FormControl(false),\n birthDate: new FormControl(null),\n validationSri: new FormControl(false),\n configValorBruto: new FormControl(false),\n dataInfoCred: new FormGroup({\n maritalStatusId: new FormControl(null),\n conyugeNombre: new FormControl(null),\n conyugeTel: new FormControl(null),\n refFamNombre: new FormControl(null),\n refFamTel: new FormControl(null),\n housingTypeId: new FormControl(null),\n dirVivienda: new FormControl(null),\n refDomicilio: new FormControl(null),\n sector: new FormControl(null),\n barrio: new FormControl(null),\n calle: new FormControl(null),\n }),\n });\n getCustomer(codigo, id) {\n this.customerForm.patchValue({\n validationSri: false,\n });\n from(this.customerUseCase.checkExistence(id)).subscribe(response => {\n if (isSuccessResponse(response) && response.data) {\n alert('El cliente ya se encuentra registrado en su empresa');\n this.notificationService.toastr.show({\n type: 'warning',\n message: 'El cliente ya se encuentra registrado en su empresa',\n });\n this.customerForm.patchValue({ numeroIdentificacion: null });\n return;\n }\n if (codigo === SRI_DOCUMENT_TYPE.PASSPORT) {\n this.customerForm.patchValue({\n validationSri: true,\n });\n return;\n }\n from(this.customerExternalUseCase.getById(id)).subscribe(secondResponse => {\n if (!isSuccessResponse(secondResponse) || !secondResponse.data) {\n this.notificationService.toastr.show({\n type: 'info',\n message: ' No se encontró información en el SRI',\n });\n return;\n }\n const { phone, email, idCard, // numeroRuc\n businessName, // razonSocial\n address, // direccion\n } = secondResponse.data;\n if (phone && typeof phone === 'string') {\n this.telephones = phone.split(SEPARADORES_REGEX) || [];\n }\n if (email && typeof email === 'string') {\n this.emails = email.split(SEPARADORES_REGEX) || [];\n }\n if (idCard) {\n this.customerForm.patchValue({\n numeroIdentificacion: idCard,\n nombreFiscal: businessName,\n validationSri: true,\n direccion: address,\n nombreComercial: businessName,\n });\n }\n });\n });\n }\n getLoadData() {\n if (this.isUpdate()) {\n return forkJoin([\n from(this.customerUseCase.getFormData()),\n from(this.customerUseCase.getById(this.params.id)),\n ]);\n }\n return from(this.customerUseCase.getFormData());\n }\n ngOnInit() {\n try {\n this.getLoadData().subscribe(response => {\n let mainDataForm = {};\n let dataCompanyCustomer = {};\n if (Array.isArray(response)) {\n mainDataForm = response[0].data;\n dataCompanyCustomer = response[1];\n }\n else {\n mainDataForm = response.data;\n }\n this.tiposIdentificacion.set(mainDataForm.tipoIdentificacion);\n this.tiemposCredito.set(mainDataForm.tiempoCreditos);\n this.tipoContribuyentes.set(mainDataForm.tipoContribuyentes);\n this.formasPagoSri.set(mainDataForm.formasPagoSri);\n this.tiposCliente.set(mainDataForm.tiposCliente);\n this.ciudades.set(mainDataForm.ciudades);\n this.cargos.set(mainDataForm.cargos);\n this.empresas.set(mainDataForm.empresas);\n this.employees.set(mainDataForm.employees);\n this.maritalStatuses.set(mainDataForm.maritalStatuses);\n this.housingTypes.set(mainDataForm.housingTypes);\n if (this.isDataOfSri()) {\n const { codigoSri, numeroIdentificacion } = this.params;\n const dataIdentificacion = this.tiposIdentificacion().find((ti) => ti.codigoSri === codigoSri);\n if (dataIdentificacion) {\n const idTipoIdentificacionCtrl = this.customerForm.get('idTipoIdentificacion');\n idTipoIdentificacionCtrl?.setValue(dataIdentificacion.idTipoIdentificacion);\n const numeroIdentificacionCtrl = this.customerForm.get('numeroIdentificacion');\n numeroIdentificacionCtrl?.setValue(numeroIdentificacion);\n const idTiempoCreditoCtrl = this.customerForm.get('idTiempoCredito');\n idTiempoCreditoCtrl?.setValue(this.tiemposCredito().length > 0\n ? this.tiemposCredito()[0].idTiempoCredito\n : 0);\n this.updateFormControlNumeroIdentificacion(dataIdentificacion.codigoSri);\n this.onKeyDownGovernmentId();\n }\n return;\n }\n if (this.isCreate()) {\n const dataIdentificacion = this.tiposIdentificacion().find((ti) => ti.codigoSri === SRI_DOCUMENT_TYPE.RUC);\n if (dataIdentificacion) {\n const idTipoIdentificacionCtrl = this.customerForm.get('idTipoIdentificacion');\n idTipoIdentificacionCtrl?.setValue(dataIdentificacion.idTipoIdentificacion);\n this.setIdentificationTypeChange(dataIdentificacion.codigoSri);\n }\n const idTiempoCreditoCtrl = this.customerForm.get('idTiempoCredito');\n idTiempoCreditoCtrl?.setValue(this.tiemposCredito().length > 0\n ? this.tiemposCredito()[0].idTiempoCredito\n : 0);\n }\n else {\n this.title = 'Editar Cliente';\n this.btnText.set('Actualizar');\n this.emails = dataCompanyCustomer.correos;\n this.telephones = dataCompanyCustomer.telefonos;\n this.placas.set(dataCompanyCustomer.placas);\n const { dataInfoCred, ...rest } = dataCompanyCustomer;\n this.customerForm.patchValue(rest);\n if (dataInfoCred) {\n this.customerForm.get('dataInfoCred')?.patchValue(dataInfoCred);\n }\n this.updateFormControlNumeroIdentificacion(rest.codigoSri);\n }\n });\n }\n catch {\n // Handle error appropriately\n }\n }\n identificationTypeChange(event) {\n const dt = this.tiposIdentificacion().find(item => item.idTipoIdentificacion === Number(event.value));\n this.setIdentificationTypeChange(dt.codigoSri);\n }\n updateFormControlNumeroIdentificacion(codigoSri) {\n const idNumberControl = this.customerForm.get('numeroIdentificacion');\n this.showRefresh.set(false);\n if ([SRI_DOCUMENT_TYPE.RUC, SRI_DOCUMENT_TYPE.CEDULA].includes(codigoSri)) {\n let lengthValidator;\n this.showRefresh.set(true);\n if (codigoSri === SRI_DOCUMENT_TYPE.CEDULA) {\n lengthValidator = [Validators.minLength(10), Validators.maxLength(10)];\n }\n else if (codigoSri === SRI_DOCUMENT_TYPE.RUC) {\n lengthValidator = [\n Validators.minLength(13),\n Validators.maxLength(13),\n this.endsWith001Validator,\n ];\n }\n if (lengthValidator) {\n idNumberControl?.setValidators([\n Validators.required,\n Validators.pattern(/^\\d+$/), // Solo números\n ...lengthValidator,\n ]);\n }\n }\n else {\n idNumberControl?.setValidators([Validators.required]);\n }\n idNumberControl?.updateValueAndValidity();\n }\n setIdentificationTypeChange(codigoSri) {\n const idNumberControl = this.customerForm.get('numeroIdentificacion');\n idNumberControl?.reset();\n idNumberControl?.clearValidators();\n this.updateFormControlNumeroIdentificacion(codigoSri);\n }\n get numeroIdentificacionControl() {\n return this.customerForm.get('numeroIdentificacion');\n }\n get birthDateCtrl() {\n return this.customerForm.get('birthDate');\n }\n onKeyDownGovernmentId($event) {\n if ($event) {\n $event.preventDefault();\n }\n if (this.numeroIdentificacionControl?.invalid)\n return;\n const idTipoIdentificacion = this.customerForm.get('idTipoIdentificacion')?.value;\n const numeroIdentificacion = this.customerForm.get('numeroIdentificacion')?.value;\n const codigoSri = this.tiposIdentificacion().find((x) => x.idTipoIdentificacion == idTipoIdentificacion).codigoSri;\n if (numeroIdentificacion) {\n this.getCustomer(codigoSri, numeroIdentificacion);\n }\n }\n isDataOfSri = () => this.params.dataOfSri;\n isCreate = () => !(this.params.id > 0);\n isUpdate = () => this.params.id > 0;\n onSave() {\n this.customerForm.patchValue({\n telefono: this.telephones.length > 0 ? this.telephones.join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n this.customerForm.patchValue({\n correo: this.emails.length > 0 ? this.emails.join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n this.customerForm.patchValue({\n placa: this.placas().length > 0 ? this.placas().join(SEPARATOR_KEY_CODE.SLASH) : null,\n });\n const dataForm = {\n ...this.customerForm.value,\n };\n if (this.customerForm.invalid) {\n this.notificationService.toastr.show({\n type: 'warning',\n message: 'Ingrese todos datos requeridos',\n });\n return;\n }\n if (this.isUpdate()) {\n const sendParams = {\n id: this.params.id,\n data: dataForm,\n };\n from(this.customerUseCase.update(sendParams)).subscribe(response => {\n this.notificationService.toastr.show({\n type: isSuccessResponse(response) ? 'success' : 'warning',\n message: `${response.message}`,\n });\n if (isSuccessResponse(response)) {\n this.dialogRef.close({\n id: this.params.id,\n });\n }\n });\n }\n if (this.isCreate()) {\n from(this.customerUseCase.create(dataForm)).subscribe(response => {\n this.notificationService.toastr.show({\n type: isSuccessResponse(response) ? 'success' : 'warning',\n message: `${response.message}`,\n });\n if (isSuccessResponse(response)) {\n this.dialogRef.close(response.data);\n }\n });\n }\n }\n close() {\n this.dialogRef.close();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerAddEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.2\", type: CustomerAddEditComponent, isStandalone: true, selector: \"acp-customer-add-edit\", providers: [\n provideNativeDateAdapter(),\n {\n provide: CustomerUseCase,\n useFactory: () => new CustomerUseCase(new CustomerHttpRepository()),\n },\n {\n provide: CustomerExternalUseCase,\n useFactory: () => new CustomerExternalUseCase(new CustomerExternalHttpRepository()),\n },\n ], ngImport: i0, template: \"<mat-dialog-content>\\n <form\\n (ngSubmit)=\\\"onSave()\\\"\\n id=\\\"formCompanyCustomer\\\"\\n [formGroup]=\\\"customerForm\\\"\\n autocomplete=\\\"off\\\"\\n >\\n <mat-tab-group>\\n <mat-tab label=\\\"DATOS PRINCIPALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Identificaci\\u00F3n: </mat-label>\\n <mat-select\\n formControlName=\\\"idTipoIdentificacion\\\"\\n (selectionChange)=\\\"identificationTypeChange($event)\\\"\\n >\\n @for (item of tiposIdentificacion(); track $index) {\\n <mat-option [value]=\\\"item.idTipoIdentificacion\\\">{{\\n item.descripcion\\n }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>N\\u00FAmero de Identificaci\\u00F3n</mat-label>\\n <input\\n type=\\\"text\\\"\\n matInput\\n (keydown.enter)=\\\"onKeyDownGovernmentId($event)\\\"\\n formControlName=\\\"numeroIdentificacion\\\"\\n />\\n @if (\\n numeroIdentificacionControl?.invalid &&\\n (numeroIdentificacionControl?.dirty || numeroIdentificacionControl?.touched)\\n ) {\\n @if (numeroIdentificacionControl?.hasError('required')) {\\n <mat-error> El n\\u00FAmero de identificaci\\u00F3n es obligatorio. </mat-error>\\n }\\n\\n @if (numeroIdentificacionControl?.hasError('minlength')) {\\n <mat-error>\\n Debe tener al menos\\n {{ numeroIdentificacionControl?.errors?.['minlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('maxlength')) {\\n <mat-error>\\n No puede tener m\\u00E1s de\\n {{ numeroIdentificacionControl?.errors?.['maxlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('pattern')) {\\n <mat-error> Solo se permiten caracteres num\\u00E9ricos. </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('endsWith001')) {\\n <mat-error> Los \\u00FAltimos tres d\\u00EDgitos deben ser 001. </mat-error>\\n }\\n }\\n\\n @if (showRefresh()) {\\n <ng-container matSuffix>\\n <button type=\\\"button\\\" mat-icon-button (click)=\\\"onKeyDownGovernmentId($event)\\\">\\n <mat-icon>refresh</mat-icon>\\n </button>\\n </ng-container>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Fiscal:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreFiscal\\\"\\n id=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Comercial:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n type=\\\"text\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div>\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"direccion\\\"\\n placeholder=\\\"AV. 09 DE OCTUBRE...\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"emails\\\" [labelText]=\\\"'Correo'\\\" />\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"telephones\\\" [labelText]=\\\"'Tel\\u00E9fono'\\\" />\\n </div>\\n </div>\\n\\n @if (isUpdate()) {\\n <div class=\\\"vstack gap-2 mt-2\\\">\\n <span>Estado</span>\\n <mat-slide-toggle formControlName=\\\"estado\\\">\\n {{ customerForm.value.estado ? 'Activo' : 'Inactivo' }}\\n </mat-slide-toggle>\\n </div>\\n }\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"DATOS ADICIONALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n B\\u00E1sica\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Contribuyente: </mat-label>\\n <mat-select formControlName=\\\"idSubContribuyente\\\">\\n @for (item of tipoContribuyentes(); track $index) {\\n <mat-option [value]=\\\"item.idSubContribuyente\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tiempo Cr\\u00E9dito: </mat-label>\\n <mat-select formControlName=\\\"idTiempoCredito\\\">\\n @for (item of tiemposCredito(); track $index) {\\n <mat-option [value]=\\\"item.idTiempoCredito\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Ciudad</mat-label>\\n <mat-select formControlName=\\\"idCiudad\\\">\\n <mat-option [value]=\\\"0\\\">-- Ninguno --</mat-option>\\n @for (group of ciudades(); track $index) {\\n <mat-optgroup [label]=\\\"group.nombre\\\">\\n @for (item of group.ciudades; track $index) {\\n <mat-option [value]=\\\"item.idCiudad\\\">{{ item.nombre }}</mat-option>\\n }\\n </mat-optgroup>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Cliente: </mat-label>\\n <mat-select formControlName=\\\"idTipoClienteProveedor\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n @for (item of tiposCliente(); track $index) {\\n <mat-option [value]=\\\"item.idTipoClienteProveedor\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empresa: </mat-label>\\n <mat-select formControlName=\\\"idEmpresa\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of empresas(); track $index) {\\n <mat-option [value]=\\\"item.idEmpresa\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Fecha Nacimiento</mat-label>\\n <input matInput [matDatepicker]=\\\"birthDate\\\" formControlName=\\\"birthDate\\\" />\\n <mat-hint>MM/DD/YYYY</mat-hint>\\n <mat-datepicker-toggle matIconSuffix [for]=\\\"birthDate\\\" />\\n <mat-datepicker #birthDate />\\n @if (birthDateCtrl?.invalid && birthDateCtrl?.touched) {\\n <mat-error> Fecha inv\\u00E1lida </mat-error>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Laboral\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empleado: </mat-label>\\n <mat-select formControlName=\\\"idEmpleado\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of employees(); track $index) {\\n <mat-option [value]=\\\"item.idEmpleado\\\">\\n {{ item.nombreCompleto }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Cargo: </mat-label>\\n <mat-select formControlName=\\\"idCargo\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of cargos(); track $index) {\\n <mat-option [value]=\\\"item.idCargo\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Observaci\\u00F3n</mat-label>\\n <textarea matInput placeholder=\\\"...\\\" formControlName=\\\"nota\\\"></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Configuraci\\u00F3n Financiera\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-1 row-cols-xl-1 row-cols-lg-1 row-cols-md-1 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Forma de pago: </mat-label>\\n <mat-select formControlName=\\\"idFormaPagoSri\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of formasPagoSri(); track $index) {\\n <mat-option [value]=\\\"item.idFormaPagoSri\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip labelText=\\\"Placa\\\" [chips]=\\\"placas()\\\" />\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-checkbox formControlName=\\\"configValorBruto\\\"\\n >Activar configuraci\\u00F3n de valor bruto\\n <mat-icon\\n matTooltip=\\\"valor total de un bien o servicio sin incluir impuestos, deducciones o descuentos (uso dentro del reporte)\\\"\\n >info</mat-icon\\n ></mat-checkbox\\n >\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\"></div>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"INFORMACI\\u00D3N CREDITICIA\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Personal\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Estado Civil: </mat-label>\\n <mat-select formControlName=\\\"maritalStatusId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of maritalStatuses(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Esposo(a):</mat-label>\\n <input\\n matInput\\n formControlName=\\\"conyugeNombre\\\"\\n placeholder=\\\"Nombre del c\\u00F3nyuge\\\"\\n />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Personal:</mat-label>\\n <input matInput formControlName=\\\"conyugeTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Referencia:</mat-label>\\n <input matInput formControlName=\\\"refFamTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Referencia Familiar:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"refFamNombre\\\"\\n placeholder=\\\"Nombre de referencia familiar\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n de Vivienda\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo de Vivienda: </mat-label>\\n <mat-select formControlName=\\\"housingTypeId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of housingTypes(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Sector:</mat-label>\\n <input matInput formControlName=\\\"sector\\\" placeholder=\\\"Nombre del sector\\\" />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Barrio:</mat-label>\\n <input matInput formControlName=\\\"barrio\\\" placeholder=\\\"Nombre del barrio\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Calle:</mat-label>\\n <input matInput formControlName=\\\"calle\\\" placeholder=\\\"Nombre de la calle\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n Completa</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"dirVivienda\\\"\\n placeholder=\\\"Direcci\\u00F3n completa de la vivienda (Sector, Barrio y Calle)\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Descripci\\u00F3n del Punto de Referencia:</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"refDomicilio\\\"\\n placeholder=\\\"Descripci\\u00F3n detallada del punto de referencia\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n </div>\\n </mat-tab>\\n </mat-tab-group>\\n </form>\\n</mat-dialog-content>\\n<mat-dialog-actions>\\n <div class=\\\"hstack gap-2\\\">\\n <acp-mat-theme-button type=\\\"submit\\\" form=\\\"formCompanyCustomer\\\" [text]=\\\"btnText()\\\" />\\n <acp-mat-theme-button type=\\\"button\\\" variant=\\\"dark\\\" text=\\\"Cerrar\\\" (handleClick)=\\\"close()\\\" />\\n </div>\\n</mat-dialog-actions>\\n\", styles: [\"\"], dependencies: [{ kind: \"directive\", type: MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"directive\", type: MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"directive\", type: i2.FormGroupName, selector: \"[formGroupName]\", inputs: [\"formGroupName\"] }, { kind: \"ngmodule\", type: MatTabsModule }, { kind: \"component\", type: i3.MatTab, selector: \"mat-tab\", inputs: [\"disabled\", \"label\", \"aria-label\", \"aria-labelledby\", \"labelClass\", \"bodyClass\", \"id\"], exportAs: [\"matTab\"] }, { kind: \"component\", type: i3.MatTabGroup, selector: \"mat-tab-group\", inputs: [\"color\", \"fitInkBarToContent\", \"mat-stretch-tabs\", \"mat-align-tabs\", \"dynamicHeight\", \"selectedIndex\", \"headerPosition\", \"animationDuration\", \"contentTabIndex\", \"disablePagination\", \"disableRipple\", \"preserveContent\", \"backgroundColor\", \"aria-label\", \"aria-labelledby\"], outputs: [\"selectedIndexChange\", \"focusChange\", \"animationDone\", \"selectedTabChange\"], exportAs: [\"matTabGroup\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i4.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i4.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i4.MatHint, selector: \"mat-hint\", inputs: [\"align\", \"id\"] }, { kind: \"directive\", type: i4.MatError, selector: \"mat-error, [matError]\", inputs: [\"id\"] }, { kind: \"directive\", type: i4.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i5.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i6.MatSelect, selector: \"mat-select\", inputs: [\"aria-describedby\", \"panelClass\", \"disabled\", \"disableRipple\", \"tabIndex\", \"hideSingleSelectionIndicator\", \"placeholder\", \"required\", \"multiple\", \"disableOptionCentering\", \"compareWith\", \"value\", \"aria-label\", \"aria-labelledby\", \"errorStateMatcher\", \"typeaheadDebounceInterval\", \"sortComparator\", \"id\", \"panelWidth\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i6.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"component\", type: i6.MatOptgroup, selector: \"mat-optgroup\", inputs: [\"label\", \"disabled\"], exportAs: [\"matOptgroup\"] }, { kind: \"ngmodule\", type: MatSlideToggleModule }, { kind: \"component\", type: i7.MatSlideToggle, selector: \"mat-slide-toggle\", inputs: [\"name\", \"id\", \"labelPosition\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"required\", \"color\", \"disabled\", \"disableRipple\", \"tabIndex\", \"checked\", \"hideIcon\", \"disabledInteractive\"], outputs: [\"change\", \"toggleChange\"], exportAs: [\"matSlideToggle\"] }, { kind: \"component\", type: MatInputChipComponent, selector: \"acp-mat-input-chip\", inputs: [\"chips\", \"labelText\", \"placelholder\"] }, { kind: \"directive\", type: ToUpperCaseDirective, selector: \"[acpToUpperCase]\" }, { kind: \"component\", type: MatCheckbox, selector: \"mat-checkbox\", inputs: [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-expanded\", \"aria-controls\", \"aria-owns\", \"id\", \"required\", \"labelPosition\", \"name\", \"value\", \"disableRipple\", \"tabIndex\", \"color\", \"disabledInteractive\", \"checked\", \"disabled\", \"indeterminate\"], outputs: [\"change\", \"indeterminateChange\"], exportAs: [\"matCheckbox\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: MatDatepickerModule }, { kind: \"component\", type: i8.MatDatepicker, selector: \"mat-datepicker\", exportAs: [\"matDatepicker\"] }, { kind: \"directive\", type: i8.MatDatepickerInput, selector: \"input[matDatepicker]\", inputs: [\"matDatepicker\", \"min\", \"max\", \"matDatepickerFilter\"], exportAs: [\"matDatepickerInput\"] }, { kind: \"component\", type: i8.MatDatepickerToggle, selector: \"mat-datepicker-toggle\", inputs: [\"for\", \"tabIndex\", \"aria-label\", \"disabled\", \"disableRipple\"], exportAs: [\"matDatepickerToggle\"] }, { kind: \"component\", type: MatThemeButtonComponent, selector: \"acp-mat-theme-button\", inputs: [\"variant\", \"text\", \"icon\", \"outlined\", \"disabled\", \"useThemeColor\", \"type\", \"matStyle\", \"title\", \"ariaLabel\", \"name\", \"id\", \"form\", \"tabIndex\", \"testId\"], outputs: [\"handleClick\"] }, { kind: \"component\", type: MatDynamicCardComponent, selector: \"acp-mat-dynamic-card\", inputs: [\"cardTitle\", \"cardSubtitle\", \"avatarImageUrl\", \"isHeaderVisible\", \"contentPadding\", \"hasDivider\", \"areActionsVisible\", \"primaryButtonText\", \"secondaryButtonText\", \"primaryButtonIcon\", \"secondaryButtonIcon\", \"buttonsPosition\"], outputs: [\"primaryButtonClicked\", \"secondaryButtonClicked\", \"cardClicked\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerAddEditComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-customer-add-edit', imports: [\n MatDialogContent,\n MatDialogActions,\n MatButtonModule,\n ReactiveFormsModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatSlideToggleModule,\n MatInputChipComponent,\n ToUpperCaseDirective,\n MatCheckbox,\n MatIcon,\n MatTooltip,\n MatDatepickerModule,\n MatThemeButtonComponent,\n MatDynamicCardComponent,\n ], providers: [\n provideNativeDateAdapter(),\n {\n provide: CustomerUseCase,\n useFactory: () => new CustomerUseCase(new CustomerHttpRepository()),\n },\n {\n provide: CustomerExternalUseCase,\n useFactory: () => new CustomerExternalUseCase(new CustomerExternalHttpRepository()),\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<mat-dialog-content>\\n <form\\n (ngSubmit)=\\\"onSave()\\\"\\n id=\\\"formCompanyCustomer\\\"\\n [formGroup]=\\\"customerForm\\\"\\n autocomplete=\\\"off\\\"\\n >\\n <mat-tab-group>\\n <mat-tab label=\\\"DATOS PRINCIPALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Identificaci\\u00F3n: </mat-label>\\n <mat-select\\n formControlName=\\\"idTipoIdentificacion\\\"\\n (selectionChange)=\\\"identificationTypeChange($event)\\\"\\n >\\n @for (item of tiposIdentificacion(); track $index) {\\n <mat-option [value]=\\\"item.idTipoIdentificacion\\\">{{\\n item.descripcion\\n }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>N\\u00FAmero de Identificaci\\u00F3n</mat-label>\\n <input\\n type=\\\"text\\\"\\n matInput\\n (keydown.enter)=\\\"onKeyDownGovernmentId($event)\\\"\\n formControlName=\\\"numeroIdentificacion\\\"\\n />\\n @if (\\n numeroIdentificacionControl?.invalid &&\\n (numeroIdentificacionControl?.dirty || numeroIdentificacionControl?.touched)\\n ) {\\n @if (numeroIdentificacionControl?.hasError('required')) {\\n <mat-error> El n\\u00FAmero de identificaci\\u00F3n es obligatorio. </mat-error>\\n }\\n\\n @if (numeroIdentificacionControl?.hasError('minlength')) {\\n <mat-error>\\n Debe tener al menos\\n {{ numeroIdentificacionControl?.errors?.['minlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('maxlength')) {\\n <mat-error>\\n No puede tener m\\u00E1s de\\n {{ numeroIdentificacionControl?.errors?.['maxlength'].requiredLength }}\\n d\\u00EDgitos.\\n </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('pattern')) {\\n <mat-error> Solo se permiten caracteres num\\u00E9ricos. </mat-error>\\n }\\n @if (numeroIdentificacionControl?.hasError('endsWith001')) {\\n <mat-error> Los \\u00FAltimos tres d\\u00EDgitos deben ser 001. </mat-error>\\n }\\n }\\n\\n @if (showRefresh()) {\\n <ng-container matSuffix>\\n <button type=\\\"button\\\" mat-icon-button (click)=\\\"onKeyDownGovernmentId($event)\\\">\\n <mat-icon>refresh</mat-icon>\\n </button>\\n </ng-container>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Fiscal:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreFiscal\\\"\\n id=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre Comercial:</mat-label>\\n <input\\n matInput\\n autocomplete=\\\"off\\\"\\n formControlName=\\\"nombreComercial\\\"\\n placeholder=\\\"Ej: TECNOMEGA\\\"\\n acpToUpperCase\\n type=\\\"text\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n\\n <div>\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"direccion\\\"\\n placeholder=\\\"AV. 09 DE OCTUBRE...\\\"\\n acpToUpperCase\\n />\\n </mat-form-field>\\n </div>\\n\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"emails\\\" [labelText]=\\\"'Correo'\\\" />\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip [chips]=\\\"telephones\\\" [labelText]=\\\"'Tel\\u00E9fono'\\\" />\\n </div>\\n </div>\\n\\n @if (isUpdate()) {\\n <div class=\\\"vstack gap-2 mt-2\\\">\\n <span>Estado</span>\\n <mat-slide-toggle formControlName=\\\"estado\\\">\\n {{ customerForm.value.estado ? 'Activo' : 'Inactivo' }}\\n </mat-slide-toggle>\\n </div>\\n }\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"DATOS ADICIONALES\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n B\\u00E1sica\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Contribuyente: </mat-label>\\n <mat-select formControlName=\\\"idSubContribuyente\\\">\\n @for (item of tipoContribuyentes(); track $index) {\\n <mat-option [value]=\\\"item.idSubContribuyente\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tiempo Cr\\u00E9dito: </mat-label>\\n <mat-select formControlName=\\\"idTiempoCredito\\\">\\n @for (item of tiemposCredito(); track $index) {\\n <mat-option [value]=\\\"item.idTiempoCredito\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Ciudad</mat-label>\\n <mat-select formControlName=\\\"idCiudad\\\">\\n <mat-option [value]=\\\"0\\\">-- Ninguno --</mat-option>\\n @for (group of ciudades(); track $index) {\\n <mat-optgroup [label]=\\\"group.nombre\\\">\\n @for (item of group.ciudades; track $index) {\\n <mat-option [value]=\\\"item.idCiudad\\\">{{ item.nombre }}</mat-option>\\n }\\n </mat-optgroup>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo Cliente: </mat-label>\\n <mat-select formControlName=\\\"idTipoClienteProveedor\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n @for (item of tiposCliente(); track $index) {\\n <mat-option [value]=\\\"item.idTipoClienteProveedor\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empresa: </mat-label>\\n <mat-select formControlName=\\\"idEmpresa\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of empresas(); track $index) {\\n <mat-option [value]=\\\"item.idEmpresa\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Fecha Nacimiento</mat-label>\\n <input matInput [matDatepicker]=\\\"birthDate\\\" formControlName=\\\"birthDate\\\" />\\n <mat-hint>MM/DD/YYYY</mat-hint>\\n <mat-datepicker-toggle matIconSuffix [for]=\\\"birthDate\\\" />\\n <mat-datepicker #birthDate />\\n @if (birthDateCtrl?.invalid && birthDateCtrl?.touched) {\\n <mat-error> Fecha inv\\u00E1lida </mat-error>\\n }\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Laboral\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Empleado: </mat-label>\\n <mat-select formControlName=\\\"idEmpleado\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of employees(); track $index) {\\n <mat-option [value]=\\\"item.idEmpleado\\\">\\n {{ item.nombreCompleto }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Cargo: </mat-label>\\n <mat-select formControlName=\\\"idCargo\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of cargos(); track $index) {\\n <mat-option [value]=\\\"item.idCargo\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Observaci\\u00F3n</mat-label>\\n <textarea matInput placeholder=\\\"...\\\" formControlName=\\\"nota\\\"></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Configuraci\\u00F3n Financiera\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n class=\\\"row row-cols-xxl-1 row-cols-xl-1 row-cols-lg-1 row-cols-md-1 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Forma de pago: </mat-label>\\n <mat-select formControlName=\\\"idFormaPagoSri\\\">\\n <mat-option [value]=\\\"0\\\">--Ninguno--</mat-option>\\n\\n @for (item of formasPagoSri(); track $index) {\\n <mat-option [value]=\\\"item.idFormaPagoSri\\\">\\n {{ item.descripcion }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <acp-mat-input-chip labelText=\\\"Placa\\\" [chips]=\\\"placas()\\\" />\\n </div>\\n\\n <div class=\\\"col w-100\\\">\\n <mat-checkbox formControlName=\\\"configValorBruto\\\"\\n >Activar configuraci\\u00F3n de valor bruto\\n <mat-icon\\n matTooltip=\\\"valor total de un bien o servicio sin incluir impuestos, deducciones o descuentos (uso dentro del reporte)\\\"\\n >info</mat-icon\\n ></mat-checkbox\\n >\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\"></div>\\n </div>\\n </div>\\n </mat-tab>\\n <mat-tab label=\\\"INFORMACI\\u00D3N CREDITICIA\\\">\\n <div class=\\\"d-grid gap-2 mx-3 mt-2\\\">\\n <div\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-2 row-cols-1 g-1\\\"\\n >\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n Personal\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Estado Civil: </mat-label>\\n <mat-select formControlName=\\\"maritalStatusId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of maritalStatuses(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Esposo(a):</mat-label>\\n <input\\n matInput\\n formControlName=\\\"conyugeNombre\\\"\\n placeholder=\\\"Nombre del c\\u00F3nyuge\\\"\\n />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Personal:</mat-label>\\n <input matInput formControlName=\\\"conyugeTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tel\\u00E9fono Referencia:</mat-label>\\n <input matInput formControlName=\\\"refFamTel\\\" placeholder=\\\"09xxxxxxxx\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Referencia Familiar:</mat-label>\\n <input\\n matInput\\n formControlName=\\\"refFamNombre\\\"\\n placeholder=\\\"Nombre de referencia familiar\\\"\\n />\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n <div class=\\\"col\\\">\\n <acp-mat-dynamic-card title=\\\"Informaci\\u00F3n de Vivienda\\\" [isHeaderVisible]=\\\"true\\\">\\n <div\\n formGroupName=\\\"dataInfoCred\\\"\\n class=\\\"row row-cols-xxl-2 row-cols-xl-2 row-cols-lg-2 row-cols-md-2 row-cols-sm-1 row-cols-1 g-2 mt-2\\\"\\n >\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Tipo de Vivienda: </mat-label>\\n <mat-select formControlName=\\\"housingTypeId\\\">\\n <mat-option [value]=\\\"0\\\">Seleccionar...</mat-option>\\n\\n @for (item of housingTypes(); track $index) {\\n <mat-option [value]=\\\"item.id\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Sector:</mat-label>\\n <input matInput formControlName=\\\"sector\\\" placeholder=\\\"Nombre del sector\\\" />\\n </mat-form-field>\\n </div>\\n\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Barrio:</mat-label>\\n <input matInput formControlName=\\\"barrio\\\" placeholder=\\\"Nombre del barrio\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Calle:</mat-label>\\n <input matInput formControlName=\\\"calle\\\" placeholder=\\\"Nombre de la calle\\\" />\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Direcci\\u00F3n Completa</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"dirVivienda\\\"\\n placeholder=\\\"Direcci\\u00F3n completa de la vivienda (Sector, Barrio y Calle)\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n <div class=\\\"col w-100\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Descripci\\u00F3n del Punto de Referencia:</mat-label>\\n <textarea\\n matInput\\n formControlName=\\\"refDomicilio\\\"\\n placeholder=\\\"Descripci\\u00F3n detallada del punto de referencia\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </div>\\n </acp-mat-dynamic-card>\\n </div>\\n </div>\\n </div>\\n </mat-tab>\\n </mat-tab-group>\\n </form>\\n</mat-dialog-content>\\n<mat-dialog-actions>\\n <div class=\\\"hstack gap-2\\\">\\n <acp-mat-theme-button type=\\\"submit\\\" form=\\\"formCompanyCustomer\\\" [text]=\\\"btnText()\\\" />\\n <acp-mat-theme-button type=\\\"button\\\" variant=\\\"dark\\\" text=\\\"Cerrar\\\" (handleClick)=\\\"close()\\\" />\\n </div>\\n</mat-dialog-actions>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItYWRkLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2xpYi91aS9jb21wb25lbnRzL2N1c3RvbWVyLWFkZC1lZGl0L2N1c3RvbWVyLWFkZC1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvdWkvY29tcG9uZW50cy9jdXN0b21lci1hZGQtZWRpdC9jdXN0b21lci1hZGQtZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFlBQVksR0FDYixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsbUJBQW1CLEVBRW5CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FB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LG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3FCQUN4QixhQUdVO3dCQUNULHdCQUF3QixFQUFFO3dCQUMxQjs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQzt5QkFDcEU7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksdUJBQXVCLENBQUMsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO3lCQUNwRjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb250cGx1cy9uZy1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIE1BVF9ESUFMT0dfREFUQSxcbiAgTWF0RGlhbG9nQWN0aW9ucyxcbiAgTWF0RGlhbG9nQ29udGVudCxcbiAgTWF0RGlhbG9nUmVmLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgTWF0RHluYW1pY0NhcmRDb21wb25lbnQsXG4gIE1hdElucHV0Q2hpcENvbXBvbmVudCxcbiAgTWF0VGhlbWVCdXR0b25Db21wb25lbnQsXG4gIFRvVXBwZXJDYXNlRGlyZWN0aXZlLFxufSBmcm9tICdAYWNvbnRwbHVzL25nLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgcHJvdmlkZU5hdGl2ZURhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1xuICBTRVBBUkFET1JFU19SRUdFWCxcbiAgU0VQQVJBVE9SX0tFWV9DT0RFLFxuICBTUklfRE9DVU1FTlRfVFlQRSxcbiAgaXNTdWNjZXNzUmVzcG9uc2UsXG59IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBDdXN0b21lclVzZUNhc2UgfSBmcm9tICcuLi8uLi8uLi9hcHBsaWNhdGlvbi91c2UtY2FzZXMvY3VzdG9tZXIudXNlLWNhc2UnO1xuaW1wb3J0IHsgQ3VzdG9tZXJFeHRlcm5hbFVzZUNhc2UgfSBmcm9tICcuLi8uLi8uLi9hcHBsaWNhdGlvbi91c2UtY2FzZXMvY3VzdG9tZXItZXh0ZXJuYWwudXNlLWNhc2UnO1xuaW1wb3J0IHsgQ3VzdG9tZXJIdHRwUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uLy4uL2luZnJhc3RydWN0dXJlL3JlcG9zaXRvcmllcy9jdXN0b21lci1odHRwLnJlcG9zaXRvcnknO1xuaW1wb3J0IHsgQ3VzdG9tZXJFeHRlcm5hbEh0dHBSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvcmVwb3NpdG9yaWVzL2N1c3RvbWVyLWV4dGVybmFsLWh0dHAucmVwb3NpdG9yeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1jdXN0b21lci1hZGQtZWRpdCcsXG4gIGltcG9ydHM6IFtcbiAgICBNYXREaWFsb2dDb250ZW50LFxuICAgIE1hdERpYWxvZ0FjdGlvbnMsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0VGFic01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdElucHV0Q2hpcENvbXBvbmVudCxcbiAgICBUb1VwcGVyQ2FzZURpcmVjdGl2ZSxcbiAgICBNYXRDaGVja2JveCxcbiAgICBNYXRJY29uLFxuICAgIE1hdFRvb2x0aXAsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRUaGVtZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXREeW5hbWljQ2FyZENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLWFkZC1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2N1c3RvbWVyLWFkZC1lZGl0LmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZU5hdGl2ZURhdGVBZGFwdGVyKCksXG4gICAge1xuICAgICAgcHJvdmlkZTogQ3VzdG9tZXJVc2VDYXNlLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gbmV3IEN1c3RvbWVyVXNlQ2FzZShuZXcgQ3VzdG9tZXJIdHRwUmVwb3NpdG9yeSgpKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEN1c3RvbWVyRXh0ZXJuYWxVc2VDYXNlLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gbmV3IEN1c3RvbWVyRXh0ZXJuYWxVc2VDYXNlKG5ldyBDdXN0b21lckV4dGVybmFsSHR0cFJlcG9zaXRvcnkoKSksXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyQWRkRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxDdXN0b21lckFkZEVkaXRDb21wb25lbnQ+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21lclVzZUNhc2UgPSBpbmplY3QoQ3VzdG9tZXJVc2VDYXNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21lckV4dGVybmFsVXNlQ2FzZSA9IGluamVjdChDdXN0b21lckV4dGVybmFsVXNlQ2FzZSk7XG4gIGJ0blRleHQgPSBzaWduYWwoJ0d1YXJkYXInKTtcblxuICByZWFkb25seSBwYXJhbXNPcHRpb25zID0gaW5qZWN0PHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGRlc2NyaXBjaW9uOiBudWxsIHwgc3RyaW5nO1xuICAgIGRhdGFPZlNyaT86IGJvb2xlYW47XG4gICAgbnVtZXJvSWRlbnRpZmljYWNpb24/OiBzdHJpbmc7XG4gICAgY29kaWdvU3JpPzogc3RyaW5nO1xuICAgIGRhdGE6IGFueTtcbiAgfT4oTUFUX0RJQUxPR19EQVRBKTtcblxuICByZWFkb25seSBwYXJhbXMgPSB0aGlzLnBhcmFtc09wdGlvbnMuZGF0YTtcblxuICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgdGl0bGUgPSAnTnVldm8gQ2xpZW50ZSc7XG5cbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGVtYWlsczogc3RyaW5nW10gPSBbXTtcblxuICB0ZWxlcGhvbmVzOiBzdHJpbmdbXSA9IFtdO1xuICB0aWVtcG9zQ3JlZGl0byA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICB0aXBvQ29udHJpYnV5ZW50ZXMgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgdGlwb3NDbGllbnRlID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIHRpcG9zSWRlbnRpZmljYWNpb24gPSBzaWduYWw8YW55W10+KFtdKTtcbiAgZm9ybWFzUGFnb1NyaSA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICBwbGFjYXMgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgY2l1ZGFkZXMgPSBzaWduYWw8YW55W10+KFtdKTtcbiAgY2FyZ29zID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIGVtcHJlc2FzID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIGVtcGxveWVlcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIG1hcml0YWxTdGF0dXNlcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICBob3VzaW5nVHlwZXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBzaG93UmVmcmVzaCA9IHNpZ25hbCh0cnVlKTtcblxuICBlbmRzV2l0aDAwMVZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPj0gMykge1xuICAgICAgaWYgKCF2YWx1ZS5lbmRzV2l0aCgnMDAxJykpIHtcbiAgICAgICAgcmV0dXJuIHsgZW5kc1dpdGgwMDE6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY3VzdG9tZXJGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgZGlyZWNjaW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIGlkQ2FyZ286IG5ldyBGb3JtQ29udHJvbCgwKSxcbiAgICBpZENsaWVudGU6IG5ldyBGb3JtQ29udHJvbCgwKSxcbiAgICBpZEVtcHJlc2E6IG5ldyBGb3JtQ29udHJvbCgwKSxcbiAgICBpZEZvcm1hUGFnb1NyaTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMCksXG4gICAgaWRUaXBvQ2xpZW50ZVByb3ZlZWRvcjogbmV3IEZvcm1Db250cm9sKDApLFxuICAgIGlkVGlwb0lkZW50aWZpY2FjaW9uOiBuZXcgRm9ybUNvbnRyb2woMCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgaWRTdWJDb250cmlidXllbnRlOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgaWRUaWVtcG9DcmVkaXRvOiBuZXcgRm9ybUNvbnRyb2woMCksXG4gICAgaWRDaXVkYWQ6IG5ldyBGb3JtQ29udHJvbCgwKSxcbiAgICBpZEVtcGxlYWRvOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgdW5kZWZpbmVkPigwKSxcbiAgICBub21icmVGaXNjYWw6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgbm9tYnJlQ29tZXJjaWFsOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgIG51bWVyb0lkZW50aWZpY2FjaW9uOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZSB9LCBbXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTMpLFxuICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMpLFxuICAgICAgdGhpcy5lbmRzV2l0aDAwMVZhbGlkYXRvcixcbiAgICBdKSxcbiAgICBjb3JyZW86IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgdGVsZWZvbm86IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgcGxhY2E6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgbm90YTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICBlc3RhZG86IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgYmlydGhEYXRlOiBuZXcgRm9ybUNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpLFxuICAgIHZhbGlkYXRpb25Tcmk6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXG4gICAgY29uZmlnVmFsb3JCcnV0bzogbmV3IEZvcm1Db250cm9sKGZhbHNlKSxcbiAgICBkYXRhSW5mb0NyZWQ6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgbWFyaXRhbFN0YXR1c0lkOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCksXG4gICAgICBjb255dWdlTm9tYnJlOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICBjb255dWdlVGVsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICByZWZGYW1Ob21icmU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICAgIHJlZkZhbVRlbDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxuICAgICAgaG91c2luZ1R5cGVJZDogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwpLFxuICAgICAgZGlyVml2aWVuZGE6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICAgIHJlZkRvbWljaWxpbzogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxuICAgICAgc2VjdG9yOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICBiYXJyaW86IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICAgIGNhbGxlOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgfSksXG4gIH0pO1xuXG4gIGdldEN1c3RvbWVyKGNvZGlnbzogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB2YWxpZGF0aW9uU3JpOiBmYWxzZSxcbiAgICB9KTtcbiAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmNoZWNrRXhpc3RlbmNlKGlkKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIGlmIChpc1N1Y2Nlc3NSZXNwb25zZShyZXNwb25zZSkgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICBhbGVydCgnRWwgY2xpZW50ZSB5YSBzZSBlbmN1ZW50cmEgcmVnaXN0cmFkbyBlbiBzdSBlbXByZXNhJyk7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdHIuc2hvdyh7XG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdFbCBjbGllbnRlIHlhIHNlIGVuY3VlbnRyYSByZWdpc3RyYWRvIGVuIHN1IGVtcHJlc2EnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7IG51bWVyb0lkZW50aWZpY2FjaW9uOiBudWxsIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2RpZ28gPT09IFNSSV9ET0NVTUVOVF9UWVBFLlBBU1NQT1JUKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHZhbGlkYXRpb25Tcmk6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmcm9tKHRoaXMuY3VzdG9tZXJFeHRlcm5hbFVzZUNhc2UuZ2V0QnlJZChpZCkpLnN1YnNjcmliZShzZWNvbmRSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghaXNTdWNjZXNzUmVzcG9uc2Uoc2Vjb25kUmVzcG9uc2UpIHx8ICFzZWNvbmRSZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0ci5zaG93KHtcbiAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcgIE5vIHNlIGVuY29udHLDsyBpbmZvcm1hY2nDs24gZW4gZWwgU1JJJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBob25lLFxuICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgIGlkQ2FyZCwgLy8gbnVtZXJvUnVjXG4gICAgICAgICAgYnVzaW5lc3NOYW1lLCAvLyByYXpvblNvY2lhbFxuICAgICAgICAgIGFkZHJlc3MsIC8vIGRpcmVjY2lvblxuICAgICAgICB9ID0gc2Vjb25kUmVzcG9uc2UuZGF0YSBhcyBhbnk7XG5cbiAgICAgICAgaWYgKHBob25lICYmIHR5cGVvZiBwaG9uZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aGlzLnRlbGVwaG9uZXMgPSBwaG9uZS5zcGxpdChTRVBBUkFET1JFU19SRUdFWCkgfHwgW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVtYWlsICYmIHR5cGVvZiBlbWFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aGlzLmVtYWlscyA9IGVtYWlsLnNwbGl0KFNFUEFSQURPUkVTX1JFR0VYKSB8fCBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWRDYXJkKSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBudW1lcm9JZGVudGlmaWNhY2lvbjogaWRDYXJkLFxuICAgICAgICAgICAgbm9tYnJlRmlzY2FsOiBidXNpbmVzc05hbWUsXG4gICAgICAgICAgICB2YWxpZGF0aW9uU3JpOiB0cnVlLFxuICAgICAgICAgICAgZGlyZWNjaW9uOiBhZGRyZXNzLFxuICAgICAgICAgICAgbm9tYnJlQ29tZXJjaWFsOiBidXNpbmVzc05hbWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TG9hZERhdGEoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5pc1VwZGF0ZSgpKSB7XG4gICAgICByZXR1cm4gZm9ya0pvaW4oW1xuICAgICAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmdldEZvcm1EYXRhKCkpLFxuICAgICAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmdldEJ5SWQodGhpcy5wYXJhbXMuaWQpKSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gZnJvbSh0aGlzLmN1c3RvbWVyVXNlQ2FzZS5nZXRGb3JtRGF0YSgpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmdldExvYWREYXRhKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgbGV0IG1haW5EYXRhRm9ybSA9IHt9IGFzIGFueTtcbiAgICAgICAgbGV0IGRhdGFDb21wYW55Q3VzdG9tZXIgPSB7fSBhcyBhbnk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3BvbnNlKSkge1xuICAgICAgICAgIG1haW5EYXRhRm9ybSA9IHJlc3BvbnNlWzBdLmRhdGE7XG4gICAgICAgICAgZGF0YUNvbXBhbnlDdXN0b21lciA9IHJlc3BvbnNlWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1haW5EYXRhRm9ybSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRpcG9zSWRlbnRpZmljYWNpb24uc2V0KG1haW5EYXRhRm9ybS50aXBvSWRlbnRpZmljYWNpb24pO1xuICAgICAgICB0aGlzLnRpZW1wb3NDcmVkaXRvLnNldChtYWluRGF0YUZvcm0udGllbXBvQ3JlZGl0b3MpO1xuICAgICAgICB0aGlzLnRpcG9Db250cmlidXllbnRlcy5zZXQobWFpbkRhdGFGb3JtLnRpcG9Db250cmlidXllbnRlcyk7XG4gICAgICAgIHRoaXMuZm9ybWFzUGFnb1NyaS5zZXQobWFpbkRhdGFGb3JtLmZvcm1hc1BhZ29TcmkpO1xuICAgICAgICB0aGlzLnRpcG9zQ2xpZW50ZS5zZXQobWFpbkRhdGFGb3JtLnRpcG9zQ2xpZW50ZSk7XG4gICAgICAgIHRoaXMuY2l1ZGFkZXMuc2V0KG1haW5EYXRhRm9ybS5jaXVkYWRlcyk7XG4gICAgICAgIHRoaXMuY2FyZ29zLnNldChtYWluRGF0YUZvcm0uY2FyZ29zKTtcbiAgICAgICAgdGhpcy5lbXByZXNhcy5zZXQobWFpbkRhdGFGb3JtLmVtcHJlc2FzKTtcbiAgICAgICAgdGhpcy5lbXBsb3llZXMuc2V0KG1haW5EYXRhRm9ybS5lbXBsb3llZXMpO1xuICAgICAgICB0aGlzLm1hcml0YWxTdGF0dXNlcy5zZXQobWFpbkRhdGFGb3JtLm1hcml0YWxTdGF0dXNlcyk7XG4gICAgICAgIHRoaXMuaG91c2luZ1R5cGVzLnNldChtYWluRGF0YUZvcm0uaG91c2luZ1R5cGVzKTtcblxuICAgICAgICBpZiAodGhpcy5pc0RhdGFPZlNyaSgpKSB7XG4gICAgICAgICAgY29uc3QgeyBjb2RpZ29TcmksIG51bWVyb0lkZW50aWZpY2FjaW9uIH0gPSB0aGlzLnBhcmFtcztcblxuICAgICAgICAgIGNvbnN0IGRhdGFJZGVudGlmaWNhY2lvbiA9IHRoaXMudGlwb3NJZGVudGlmaWNhY2lvbigpLmZpbmQoXG4gICAgICAgICAgICAodGk6IGFueSkgPT4gdGkuY29kaWdvU3JpID09PSBjb2RpZ29TcmksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChkYXRhSWRlbnRpZmljYWNpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGlkVGlwb0lkZW50aWZpY2FjaW9uQ3RybCA9IHRoaXMuY3VzdG9tZXJGb3JtLmdldChcbiAgICAgICAgICAgICAgJ2lkVGlwb0lkZW50aWZpY2FjaW9uJyxcbiAgICAgICAgICAgICkgYXMgRm9ybUNvbnRyb2w8bnVtYmVyPiB8IG51bGw7XG4gICAgICAgICAgICBpZFRpcG9JZGVudGlmaWNhY2lvbkN0cmw/LnNldFZhbHVlKGRhdGFJZGVudGlmaWNhY2lvbi5pZFRpcG9JZGVudGlmaWNhY2lvbiBhcyBudW1iZXIpO1xuXG4gICAgICAgICAgICBjb25zdCBudW1lcm9JZGVudGlmaWNhY2lvbkN0cmwgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoXG4gICAgICAgICAgICAgICdudW1lcm9JZGVudGlmaWNhY2lvbicsXG4gICAgICAgICAgICApIGFzIEZvcm1Db250cm9sPHN0cmluZz4gfCBudWxsO1xuICAgICAgICAgICAgbnVtZXJvSWRlbnRpZmljYWNpb25DdHJsPy5zZXRWYWx1ZShudW1lcm9JZGVudGlmaWNhY2lvbiBhcyBzdHJpbmcpO1xuXG4gICAgICAgICAgICBjb25zdCBpZFRpZW1wb0NyZWRpdG9DdHJsID0gdGhpcy5jdXN0b21lckZvcm0uZ2V0KFxuICAgICAgICAgICAgICAnaWRUaWVtcG9DcmVkaXRvJyxcbiAgICAgICAgICAgICkgYXMgRm9ybUNvbnRyb2w8bnVtYmVyPiB8IG51bGw7XG4gICAgICAgICAgICBpZFRpZW1wb0NyZWRpdG9DdHJsPy5zZXRWYWx1ZShcbiAgICAgICAgICAgICAgdGhpcy50aWVtcG9zQ3JlZGl0bygpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/ICh0aGlzLnRpZW1wb3NDcmVkaXRvKClbMF0uaWRUaWVtcG9DcmVkaXRvIGFzIG51bWJlcilcbiAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE51bWVyb0lkZW50aWZpY2FjaW9uKGRhdGFJZGVudGlmaWNhY2lvbi5jb2RpZ29TcmkpO1xuXG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93bkdvdmVybm1lbnRJZCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzQ3JlYXRlKCkpIHtcbiAgICAgICAgICBjb25zdCBkYXRhSWRlbnRpZmljYWNpb24gPSB0aGlzLnRpcG9zSWRlbnRpZmljYWNpb24oKS5maW5kKFxuICAgICAgICAgICAgKHRpOiBhbnkpID0+IHRpLmNvZGlnb1NyaSA9PT0gU1JJX0RPQ1VNRU5UX1RZUEUuUlVDLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZGF0YUlkZW50aWZpY2FjaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBpZFRpcG9JZGVudGlmaWNhY2lvbkN0cmwgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoXG4gICAgICAgICAgICAgICdpZFRpcG9JZGVudGlmaWNhY2lvbicsXG4gICAgICAgICAgICApIGFzIEZvcm1Db250cm9sPG51bWJlcj4gfCBudWxsO1xuICAgICAgICAgICAgaWRUaXBvSWRlbnRpZmljYWNpb25DdHJsPy5zZXRWYWx1ZShkYXRhSWRlbnRpZmljYWNpb24uaWRUaXBvSWRlbnRpZmljYWNpb24gYXMgbnVtYmVyKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SWRlbnRpZmljYXRpb25UeXBlQ2hhbmdlKGRhdGFJZGVudGlmaWNhY2lvbi5jb2RpZ29TcmkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlkVGllbXBvQ3JlZGl0b0N0cmwgPSB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoXG4gICAgICAgICAgICAnaWRUaWVtcG9DcmVkaXRvJyxcbiAgICAgICAgICApIGFzIEZvcm1Db250cm9sPG51bWJlcj4gfCBudWxsO1xuICAgICAgICAgIGlkVGllbXBvQ3JlZGl0b0N0cmw/LnNldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy50aWVtcG9zQ3JlZGl0bygpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgPyAodGhpcy50aWVtcG9zQ3JlZGl0bygpWzBdLmlkVGllbXBvQ3JlZGl0byBhcyBudW1iZXIpXG4gICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudGl0bGUgPSAnRWRpdGFyIENsaWVudGUnO1xuICAgICAgICAgIHRoaXMuYnRuVGV4dC5zZXQoJ0FjdHVhbGl6YXInKTtcbiAgICAgICAgICB0aGlzLmVtYWlscyA9IGRhdGFDb21wYW55Q3VzdG9tZXIuY29ycmVvcztcbiAgICAgICAgICB0aGlzLnRlbGVwaG9uZXMgPSBkYXRhQ29tcGFueUN1c3RvbWVyLnRlbGVmb25vcztcbiAgICAgICAgICB0aGlzLnBsYWNhcy5zZXQoZGF0YUNvbXBhbnlDdXN0b21lci5wbGFjYXMpO1xuICAgICAgICAgIGNvbnN0IHsgZGF0YUluZm9DcmVkLCAuLi5yZXN0IH0gPSBkYXRhQ29tcGFueUN1c3RvbWVyO1xuICAgICAgICAgIHRoaXMuY3VzdG9tZXJGb3JtLnBhdGNoVmFsdWUocmVzdCk7XG4gICAgICAgICAgaWYgKGRhdGFJbmZvQ3JlZCkge1xuICAgICAgICAgICAgdGhpcy5jdXN0b21lckZvcm0uZ2V0KCdkYXRhSW5mb0NyZWQnKT8ucGF0Y2hWYWx1ZShkYXRhSW5mb0NyZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sTnVtZXJvSWRlbnRpZmljYWNpb24ocmVzdC5jb2RpZ29TcmkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvciBhcHByb3ByaWF0ZWx5XG4gICAgfVxuICB9XG5cbiAgaWRlbnRpZmljYXRpb25UeXBlQ2hhbmdlKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICBjb25zdCBkdCA9IHRoaXMudGlwb3NJZGVudGlmaWNhY2lvbigpLmZpbmQoXG4gICAgICBpdGVtID0+IGl0ZW0uaWRUaXBvSWRlbnRpZmljYWNpb24gPT09IE51bWJlcihldmVudC52YWx1ZSksXG4gICAgKTtcbiAgICB0aGlzLnNldElkZW50aWZpY2F0aW9uVHlwZUNoYW5nZShkdC5jb2RpZ29TcmkpO1xuICB9XG5cbiAgdXBkYXRlRm9ybUNvbnRyb2xOdW1lcm9JZGVudGlmaWNhY2lvbihcbiAgICBjb2RpZ29Tcmk6IFNSSV9ET0NVTUVOVF9UWVBFLlJVQyB8IFNSSV9ET0NVTUVOVF9UWVBFLkNFRFVMQSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgaWROdW1iZXJDb250cm9sID0gdGhpcy5jdXN0b21lckZvcm0uZ2V0KCdudW1lcm9JZGVudGlmaWNhY2lvbicpO1xuXG4gICAgdGhpcy5zaG93UmVmcmVzaC5zZXQoZmFsc2UpO1xuXG4gICAgaWYgKFtTUklfRE9DVU1FTlRfVFlQRS5SVUMsIFNSSV9ET0NVTUVOVF9UWVBFLkNFRFVMQV0uaW5jbHVkZXMoY29kaWdvU3JpKSkge1xuICAgICAgbGV0IGxlbmd0aFZhbGlkYXRvcjtcbiAgICAgIHRoaXMuc2hvd1JlZnJlc2guc2V0KHRydWUpO1xuXG4gICAgICBpZiAoY29kaWdvU3JpID09PSBTUklfRE9DVU1FTlRfVFlQRS5DRURVTEEpIHtcbiAgICAgICAgbGVuZ3RoVmFsaWRhdG9yID0gW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDEwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTApXTtcbiAgICAgIH0gZWxzZSBpZiAoY29kaWdvU3JpID09PSBTUklfRE9DVU1FTlRfVFlQRS5SVUMpIHtcbiAgICAgICAgbGVuZ3RoVmFsaWRhdG9yID0gW1xuICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEzKSxcbiAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMyksXG4gICAgICAgICAgdGhpcy5lbmRzV2l0aDAwMVZhbGlkYXRvcixcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICAgIGlmIChsZW5ndGhWYWxpZGF0b3IpIHtcbiAgICAgICAgaWROdW1iZXJDb250cm9sPy5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXlxcZCskLyksIC8vIFNvbG8gbsO6bWVyb3NcbiAgICAgICAgICAuLi5sZW5ndGhWYWxpZGF0b3IsXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZE51bWJlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICB9XG5cbiAgICBpZE51bWJlckNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHNldElkZW50aWZpY2F0aW9uVHlwZUNoYW5nZShjb2RpZ29Tcmk6IFNSSV9ET0NVTUVOVF9UWVBFLlJVQyB8IFNSSV9ET0NVTUVOVF9UWVBFLkNFRFVMQSkge1xuICAgIGNvbnN0IGlkTnVtYmVyQ29udHJvbCA9IHRoaXMuY3VzdG9tZXJGb3JtLmdldCgnbnVtZXJvSWRlbnRpZmljYWNpb24nKTtcbiAgICBpZE51bWJlckNvbnRyb2w/LnJlc2V0KCk7XG4gICAgaWROdW1iZXJDb250cm9sPy5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICB0aGlzLnVwZGF0ZUZvcm1Db250cm9sTnVtZXJvSWRlbnRpZmljYWNpb24oY29kaWdvU3JpKTtcbiAgfVxuXG4gIGdldCBudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2woKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tZXJGb3JtLmdldCgnbnVtZXJvSWRlbnRpZmljYWNpb24nKTtcbiAgfVxuXG4gIGdldCBiaXJ0aERhdGVDdHJsKCkge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoJ2JpcnRoRGF0ZScpO1xuICB9XG5cbiAgb25LZXlEb3duR292ZXJubWVudElkKCRldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKCRldmVudCkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgaWRUaXBvSWRlbnRpZmljYWNpb24gPSAoXG4gICAgICB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoJ2lkVGlwb0lkZW50aWZpY2FjaW9uJykgYXMgRm9ybUNvbnRyb2w8bnVtYmVyPiB8IG51bGxcbiAgICApPy52YWx1ZSBhcyBudW1iZXI7XG4gICAgY29uc3QgbnVtZXJvSWRlbnRpZmljYWNpb24gPSAoXG4gICAgICB0aGlzLmN1c3RvbWVyRm9ybS5nZXQoJ251bWVyb0lkZW50aWZpY2FjaW9uJykgYXMgRm9ybUNvbnRyb2w8c3RyaW5nPiB8IG51bGxcbiAgICApPy52YWx1ZSBhcyBzdHJpbmc7XG5cbiAgICBjb25zdCBjb2RpZ29TcmkgPSB0aGlzLnRpcG9zSWRlbnRpZmljYWNpb24oKS5maW5kKFxuICAgICAgKHg6IGFueSkgPT4geC5pZFRpcG9JZGVudGlmaWNhY2lvbiA9PSBpZFRpcG9JZGVudGlmaWNhY2lvbixcbiAgICApLmNvZGlnb1NyaTtcblxuICAgIGlmIChudW1lcm9JZGVudGlmaWNhY2lvbikge1xuICAgICAgdGhpcy5nZXRDdXN0b21lcihjb2RpZ29TcmksIG51bWVyb0lkZW50aWZpY2FjaW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRGF0YU9mU3JpID0gKCkgPT4gdGhpcy5wYXJhbXMuZGF0YU9mU3JpO1xuICBwcml2YXRlIGlzQ3JlYXRlID0gKCkgPT4gISh0aGlzLnBhcmFtcy5pZCA+IDApO1xuICBpc1VwZGF0ZSA9ICgpID0+IHRoaXMucGFyYW1zLmlkID4gMDtcblxuICBvblNhdmUoKSB7XG4gICAgdGhpcy5jdXN0b21lckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB0ZWxlZm9ubzogdGhpcy50ZWxlcGhvbmVzLmxlbmd0aCA+IDAgPyB0aGlzLnRlbGVwaG9uZXMuam9pbihTRVBBUkFUT1JfS0VZX0NPREUuU0xBU0gpIDogbnVsbCxcbiAgICB9KTtcblxuICAgIHRoaXMuY3VzdG9tZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgY29ycmVvOiB0aGlzLmVtYWlscy5sZW5ndGggPiAwID8gdGhpcy5lbWFpbHMuam9pbihTRVBBUkFUT1JfS0VZX0NPREUuU0xBU0gpIDogbnVsbCxcbiAgICB9KTtcbiAgICB0aGlzLmN1c3RvbWVyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIHBsYWNhOiB0aGlzLnBsYWNhcygpLmxlbmd0aCA+IDAgPyB0aGlzLnBsYWNhcygpLmpvaW4oU0VQQVJBVE9SX0tFWV9DT0RFLlNMQVNIKSA6IG51bGwsXG4gICAgfSk7XG4gICAgY29uc3QgZGF0YUZvcm0gPSB7XG4gICAgICAuLi50aGlzLmN1c3RvbWVyRm9ybS52YWx1ZSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tZXJGb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdHIuc2hvdyh7XG4gICAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgICAgbWVzc2FnZTogJ0luZ3Jlc2UgdG9kb3MgZGF0b3MgcmVxdWVyaWRvcycsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1VwZGF0ZSgpKSB7XG4gICAgICBjb25zdCBzZW5kUGFyYW1zID0ge1xuICAgICAgICBpZDogdGhpcy5wYXJhbXMuaWQsXG4gICAgICAgIGRhdGE6IGRhdGFGb3JtLFxuICAgICAgfTtcbiAgICAgIGZyb20odGhpcy5jdXN0b21lclVzZUNhc2UudXBkYXRlKHNlbmRQYXJhbXMpKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UudG9hc3RyLnNob3coe1xuICAgICAgICAgIHR5cGU6IGlzU3VjY2Vzc1Jlc3BvbnNlKHJlc3BvbnNlKSA/ICdzdWNjZXNzJyA6ICd3YXJuaW5nJyxcbiAgICAgICAgICBtZXNzYWdlOiBgJHtyZXNwb25zZS5tZXNzYWdlfWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNTdWNjZXNzUmVzcG9uc2UocmVzcG9uc2UpKSB7XG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgICAgICAgaWQ6IHRoaXMucGFyYW1zLmlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0NyZWF0ZSgpKSB7XG4gICAgICBmcm9tKHRoaXMuY3VzdG9tZXJVc2VDYXNlLmNyZWF0ZShkYXRhRm9ybSkpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdHIuc2hvdyh7XG4gICAgICAgICAgdHlwZTogaXNTdWNjZXNzUmVzcG9uc2UocmVzcG9uc2UpID8gJ3N1Y2Nlc3MnIDogJ3dhcm5pbmcnLFxuICAgICAgICAgIG1lc3NhZ2U6IGAke3Jlc3BvbnNlLm1lc3NhZ2V9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc1N1Y2Nlc3NSZXNwb25zZShyZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIiwiPG1hdC1kaWFsb2ctY29udGVudD5cbiAgPGZvcm1cbiAgICAobmdTdWJtaXQpPVwib25TYXZlKClcIlxuICAgIGlkPVwiZm9ybUNvbXBhbnlDdXN0b21lclwiXG4gICAgW2Zvcm1Hcm91cF09XCJjdXN0b21lckZvcm1cIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gID5cbiAgICA8bWF0LXRhYi1ncm91cD5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiREFUT1MgUFJJTkNJUEFMRVNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBnYXAtMiBteC0zIG10LTJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5UaXBvIElkZW50aWZpY2FjacOzbjogPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkVGlwb0lkZW50aWZpY2FjaW9uXCJcbiAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaWRlbnRpZmljYXRpb25UeXBlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdGlwb3NJZGVudGlmaWNhY2lvbigpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRUaXBvSWRlbnRpZmljYWNpb25cIj57e1xuICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGVzY3JpcGNpb25cbiAgICAgICAgICAgICAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Ow7ptZXJvIGRlIElkZW50aWZpY2FjacOzbjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uS2V5RG93bkdvdmVybm1lbnRJZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm51bWVyb0lkZW50aWZpY2FjaW9uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICBudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/LmludmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgIChudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/LmRpcnR5IHx8IG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8udG91Y2hlZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAobnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPiBFbCBuw7ptZXJvIGRlIGlkZW50aWZpY2FjacOzbiBlcyBvYmxpZ2F0b3Jpby4gPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIEBpZiAobnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgICBEZWJlIHRlbmVyIGFsIG1lbm9zXG4gICAgICAgICAgICAgICAgICAgICAge3sgbnVtZXJvSWRlbnRpZmljYWNpb25Db250cm9sPy5lcnJvcnM/LlsnbWlubGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGggfX1cbiAgICAgICAgICAgICAgICAgICAgICBkw61naXRvcy5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgICAgTm8gcHVlZGUgdGVuZXIgbcOhcyBkZVxuICAgICAgICAgICAgICAgICAgICAgIHt7IG51bWVyb0lkZW50aWZpY2FjaW9uQ29udHJvbD8uZXJyb3JzPy5bJ21heGxlbmd0aCddLnJlcXVpcmVkTGVuZ3RoIH19XG4gICAgICAgICAgICAgICAgICAgICAgZMOtZ2l0b3MuXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/Lmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj4gU29sbyBzZSBwZXJtaXRlbiBjYXJhY3RlcmVzIG51bcOpcmljb3MuIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChudW1lcm9JZGVudGlmaWNhY2lvbkNvbnRyb2w/Lmhhc0Vycm9yKCdlbmRzV2l0aDAwMScpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+IExvcyDDumx0aW1vcyB0cmVzIGTDrWdpdG9zIGRlYmVuIHNlciAwMDEuIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoc2hvd1JlZnJlc2goKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRTdWZmaXg+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25LZXlEb3duR292ZXJubWVudElkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Ob21icmUgRmlzY2FsOjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJub21icmVGaXNjYWxcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJub21icmVDb21lcmNpYWxcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFajogVEVDTk9NRUdBXCJcbiAgICAgICAgICAgICAgICAgIGFjcFRvVXBwZXJDYXNlXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Tm9tYnJlIENvbWVyY2lhbDo8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibm9tYnJlQ29tZXJjaWFsXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWo6IFRFQ05PTUVHQVwiXG4gICAgICAgICAgICAgICAgICBhY3BUb1VwcGVyQ2FzZVxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRpcmVjY2nDs246PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWNjaW9uXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFWLiAwOSBERSBPQ1RVQlJFLi4uXCJcbiAgICAgICAgICAgICAgICBhY3BUb1VwcGVyQ2FzZVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTIgcm93LWNvbHMtMSBnLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPGFjcC1tYXQtaW5wdXQtY2hpcCBbY2hpcHNdPVwiZW1haWxzXCIgW2xhYmVsVGV4dF09XCInQ29ycmVvJ1wiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPGFjcC1tYXQtaW5wdXQtY2hpcCBbY2hpcHNdPVwidGVsZXBob25lc1wiIFtsYWJlbFRleHRdPVwiJ1RlbMOpZm9ubydcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKGlzVXBkYXRlKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2c3RhY2sgZ2FwLTIgbXQtMlwiPlxuICAgICAgICAgICAgICA8c3Bhbj5Fc3RhZG88L3NwYW4+XG4gICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImVzdGFkb1wiPlxuICAgICAgICAgICAgICAgIHt7IGN1c3RvbWVyRm9ybS52YWx1ZS5lc3RhZG8gPyAnQWN0aXZvJyA6ICdJbmFjdGl2bycgfX1cbiAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiREFUT1MgQURJQ0lPTkFMRVNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBnYXAtMiBteC0zIG10LTJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxhY3AtbWF0LWR5bmFtaWMtY2FyZCB0aXRsZT1cIkluZm9ybWFjacOzbiBCw6FzaWNhXCIgW2lzSGVhZGVyVmlzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMteHhsLTIgcm93LWNvbHMteGwtMiByb3ctY29scy1sZy0yIHJvdy1jb2xzLW1kLTIgcm93LWNvbHMtc20tMiByb3ctY29scy0xIGctMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGlwbyBDb250cmlidXllbnRlOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpZFN1YkNvbnRyaWJ1eWVudGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdGlwb0NvbnRyaWJ1eWVudGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFN1YkNvbnRyaWJ1eWVudGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRlc2NyaXBjaW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGllbXBvIENyw6lkaXRvOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpZFRpZW1wb0NyZWRpdG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdGllbXBvc0NyZWRpdG8oKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkVGllbXBvQ3JlZGl0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZGVzY3JpcGNpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DaXVkYWQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpZENpdWRhZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjBcIj4tLSBOaW5ndW5vIC0tPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZ3JvdXAgb2YgY2l1ZGFkZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cImdyb3VwLm5vbWJyZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZ3JvdXAuY2l1ZGFkZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRDaXVkYWRcIj57eyBpdGVtLm5vbWJyZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGlwbyBDbGllbnRlOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpZFRpcG9DbGllbnRlUHJvdmVlZG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMFwiPi0tTmluZ3Vuby0tPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB0aXBvc0NsaWVudGUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkVGlwb0NsaWVudGVQcm92ZWVkb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRlc2NyaXBjaW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RW1wcmVzYTogPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaWRFbXByZXNhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMFwiPi0tTmluZ3Vuby0tPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGVtcHJlc2FzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZEVtcHJlc2FcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmRlc2NyaXBjaW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkZlY2hhIE5hY2ltaWVudG88L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiYmlydGhEYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmlydGhEYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQ+TU0vREQvWVlZWTwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwiYmlydGhEYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2JpcnRoRGF0ZSAvPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYmlydGhEYXRlQ3RybD8uaW52YWxpZCAmJiBiaXJ0aERhdGVDdHJsPy50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPiBGZWNoYSBpbnbDoWxpZGEgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYWNwLW1hdC1keW5hbWljLWNhcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPGFjcC1tYXQtZHluYW1pYy1jYXJkIHRpdGxlPVwiSW5mb3JtYWNpw7NuIExhYm9yYWxcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbXBsZWFkbzogPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaWRFbXBsZWFkb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjBcIj4tLU5pbmd1bm8tLTwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBlbXBsb3llZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkRW1wbGVhZG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5vbWJyZUNvbXBsZXRvIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2FyZ286IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkQ2FyZ29cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIwXCI+LS1OaW5ndW5vLS08L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgY2FyZ29zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZENhcmdvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kZXNjcmlwY2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk9ic2VydmFjacOzbjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIi4uLlwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGFcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYWNwLW1hdC1keW5hbWljLWNhcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMiByb3ctY29scy14bC0yIHJvdy1jb2xzLWxnLTIgcm93LWNvbHMtbWQtMiByb3ctY29scy1zbS0yIHJvdy1jb2xzLTEgZy0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgIDxhY3AtbWF0LWR5bmFtaWMtY2FyZCB0aXRsZT1cIkNvbmZpZ3VyYWNpw7NuIEZpbmFuY2llcmFcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdyByb3ctY29scy14eGwtMSByb3ctY29scy14bC0xIHJvdy1jb2xzLWxnLTEgcm93LWNvbHMtbWQtMSByb3ctY29scy1zbS0xIHJvdy1jb2xzLTEgZy0yIG10LTJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkZvcm1hIGRlIHBhZ286IDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImlkRm9ybWFQYWdvU3JpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMFwiPi0tTmluZ3Vuby0tPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZvcm1hc1BhZ29TcmkoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkRm9ybWFQYWdvU3JpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5kZXNjcmlwY2lvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFjcC1tYXQtaW5wdXQtY2hpcCBsYWJlbFRleHQ9XCJQbGFjYVwiIFtjaGlwc109XCJwbGFjYXMoKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImNvbmZpZ1ZhbG9yQnJ1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgID5BY3RpdmFyIGNvbmZpZ3VyYWNpw7NuIGRlIHZhbG9yIGJydXRvXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwidmFsb3IgdG90YWwgZGUgdW4gYmllbiBvIHNlcnZpY2lvIHNpbiBpbmNsdWlyIGltcHVlc3RvcywgZGVkdWNjaW9uZXMgbyBkZXNjdWVudG9zICh1c28gZGVudHJvIGRlbCByZXBvcnRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+aW5mbzwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICA+PC9tYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYWNwLW1hdC1keW5hbWljLWNhcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIklORk9STUFDScOTTiBDUkVESVRJQ0lBXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgZ2FwLTIgbXgtMyBtdC0yXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMteHhsLTIgcm93LWNvbHMteGwtMiByb3ctY29scy1sZy0yIHJvdy1jb2xzLW1kLTIgcm93LWNvbHMtc20tMiByb3ctY29scy0xIGctMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8YWNwLW1hdC1keW5hbWljLWNhcmQgdGl0bGU9XCJJbmZvcm1hY2nDs24gUGVyc29uYWxcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiZGF0YUluZm9DcmVkXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTEgcm93LWNvbHMtMSBnLTIgbXQtMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+RXN0YWRvIENpdmlsOiA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJtYXJpdGFsU3RhdHVzSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIwXCI+U2VsZWNjaW9uYXIuLi48L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWFyaXRhbFN0YXR1c2VzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Fc3Bvc28oYSk6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29ueXVnZU5vbWJyZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5vbWJyZSBkZWwgY8Ozbnl1Z2VcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGVsw6lmb25vIFBlcnNvbmFsOjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb255dWdlVGVsXCIgcGxhY2Vob2xkZXI9XCIwOXh4eHh4eHh4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGVsw6lmb25vIFJlZmVyZW5jaWE6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInJlZkZhbVRlbFwiIHBsYWNlaG9sZGVyPVwiMDl4eHh4eHh4eFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlJlZmVyZW5jaWEgRmFtaWxpYXI6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVmRmFtTm9tYnJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTm9tYnJlIGRlIHJlZmVyZW5jaWEgZmFtaWxpYXJcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9hY3AtbWF0LWR5bmFtaWMtY2FyZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8YWNwLW1hdC1keW5hbWljLWNhcmQgdGl0bGU9XCJJbmZvcm1hY2nDs24gZGUgVml2aWVuZGFcIiBbaXNIZWFkZXJWaXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiZGF0YUluZm9DcmVkXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93IHJvdy1jb2xzLXh4bC0yIHJvdy1jb2xzLXhsLTIgcm93LWNvbHMtbGctMiByb3ctY29scy1tZC0yIHJvdy1jb2xzLXNtLTEgcm93LWNvbHMtMSBnLTIgbXQtMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGlwbyBkZSBWaXZpZW5kYTogPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaG91c2luZ1R5cGVJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjBcIj5TZWxlY2Npb25hci4uLjwvbWF0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBob3VzaW5nVHlwZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlY3Rvcjo8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VjdG9yXCIgcGxhY2Vob2xkZXI9XCJOb21icmUgZGVsIHNlY3RvclwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QmFycmlvOjwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJiYXJyaW9cIiBwbGFjZWhvbGRlcj1cIk5vbWJyZSBkZWwgYmFycmlvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2FsbGU6PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNhbGxlXCIgcGxhY2Vob2xkZXI9XCJOb21icmUgZGUgbGEgY2FsbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EaXJlY2Npw7NuIENvbXBsZXRhPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlyVml2aWVuZGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEaXJlY2Npw7NuIGNvbXBsZXRhIGRlIGxhIHZpdmllbmRhIChTZWN0b3IsIEJhcnJpbyB5IENhbGxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRlc2NyaXBjacOzbiBkZWwgUHVudG8gZGUgUmVmZXJlbmNpYTo8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWZEb21pY2lsaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZXNjcmlwY2nDs24gZGV0YWxsYWRhIGRlbCBwdW50byBkZSByZWZlcmVuY2lhXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2FjcC1tYXQtZHluYW1pYy1jYXJkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8ZGl2IGNsYXNzPVwiaHN0YWNrIGdhcC0yXCI+XG4gICAgPGFjcC1tYXQtdGhlbWUtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBmb3JtPVwiZm9ybUNvbXBhbnlDdXN0b21lclwiIFt0ZXh0XT1cImJ0blRleHQoKVwiIC8+XG4gICAgPGFjcC1tYXQtdGhlbWUtYnV0dG9uIHR5cGU9XCJidXR0b25cIiB2YXJpYW50PVwiZGFya1wiIHRleHQ9XCJDZXJyYXJcIiAoaGFuZGxlQ2xpY2spPVwiY2xvc2UoKVwiIC8+XG4gIDwvZGl2PlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=","import { Component, computed, input, output } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatThemeButtonComponent } from '@acontplus/ng-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/card\";\nimport * as i2 from \"@angular/material/chips\";\nexport class CustomerCardComponent {\n customer = input.required(...(ngDevMode ? [{ debugName: \"customer\" }] : []));\n editCustomer = output();\n deleteCustomer = output();\n getLogoSliceBusinessName = computed(() => {\n const name = this.customer()?.businessName || '';\n return name.slice(0, 1);\n }, ...(ngDevMode ? [{ debugName: \"getLogoSliceBusinessName\" }] : []));\n onEditClick() {\n // Emits the customer object to the parent component\n this.editCustomer.emit(this.customer());\n }\n onDeleteClick() {\n // Emits the customer object to the parent component\n this.deleteCustomer.emit(this.customer());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.2\", type: CustomerCardComponent, isStandalone: true, selector: \"acp-customer-card\", inputs: { customer: { classPropertyName: \"customer\", publicName: \"customer\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { editCustomer: \"editCustomer\", deleteCustomer: \"deleteCustomer\" }, ngImport: i0, template: \"<mat-card class=\\\"customer-card\\\">\\n <!-- Header -->\\n <div class=\\\"card-header\\\">\\n <div class=\\\"avatar\\\" aria-label=\\\"Logo de cliente\\\">{{ getLogoSliceBusinessName() }}</div>\\n <h5 class=\\\"businessName\\\">{{ customer().businessName }}</h5>\\n <p class=\\\"tradeName\\\">{{ customer().tradeName }}</p>\\n </div>\\n\\n <!-- Card content -->\\n <mat-card-content>\\n <div class=\\\"info\\\">\\n <p><strong>ID:</strong> 1234567890 (RUC)</p>\\n <p><strong>Email:</strong> {{ customer().email }}</p>\\n <p><strong>Tel\\u00E9fono:</strong> {{ customer().phone }}</p>\\n <p><strong>Direcci\\u00F3n:</strong>{{ customer().address }}</p>\\n\\n <div class=\\\"chips\\\">\\n <mat-chip-set>\\n <mat-chip color=\\\"primary\\\">{{ customer().statusName }}</mat-chip>\\n </mat-chip-set>\\n </div>\\n </div>\\n </mat-card-content>\\n\\n <!-- Card actions -->\\n @if (!customer().isFinalConsumer) {\\n <mat-card-actions class=\\\"actions gap-2\\\">\\n <acp-mat-theme-button matStyle=\\\"icon\\\" icon=\\\"edit\\\" (handleClick)=\\\"onEditClick()\\\" />\\n <acp-mat-theme-button\\n matStyle=\\\"icon\\\"\\n icon=\\\"delete\\\"\\n variant=\\\"danger\\\"\\n (handleClick)=\\\"onDeleteClick()\\\"\\n />\\n </mat-card-actions>\\n }\\n</mat-card>\\n\", styles: [\".customer-card{width:345px;border-radius:16px}.card-header{display:flex;flex-direction:column;align-items:center;padding:16px;background-color:#e3f2fd;border-top-left-radius:16px;border-top-right-radius:16px}.card-header .businessName{text-align:center;font-size:14px;font-weight:500}.card-header .tradeName{text-align:center;font-size:12px;color:#6c757d}.avatar{width:80px;height:80px;border-radius:50%;background-color:#1976d2;display:flex;justify-content:center;align-items:center;font-size:32px;color:#fff;margin-bottom:12px}.info p{margin:4px 0}.chips{margin-top:12px;display:flex;gap:8px}.actions{justify-content:flex-end;padding:16px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatCardModule }, { kind: \"component\", type: i1.MatCard, selector: \"mat-card\", inputs: [\"appearance\"], exportAs: [\"matCard\"] }, { kind: \"directive\", type: i1.MatCardActions, selector: \"mat-card-actions\", inputs: [\"align\"], exportAs: [\"matCardActions\"] }, { kind: \"directive\", type: i1.MatCardContent, selector: \"mat-card-content\" }, { kind: \"ngmodule\", type: MatDividerModule }, { kind: \"ngmodule\", type: MatChipsModule }, { kind: \"component\", type: i2.MatChip, selector: \"mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]\", inputs: [\"role\", \"id\", \"aria-label\", \"aria-description\", \"value\", \"color\", \"removable\", \"highlighted\", \"disableRipple\", \"disabled\"], outputs: [\"removed\", \"destroyed\"], exportAs: [\"matChip\"] }, { kind: \"component\", type: i2.MatChipSet, selector: \"mat-chip-set\", inputs: [\"disabled\", \"role\", \"tabIndex\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: MatThemeButtonComponent, selector: \"acp-mat-theme-button\", inputs: [\"variant\", \"text\", \"icon\", \"outlined\", \"disabled\", \"useThemeColor\", \"type\", \"matStyle\", \"title\", \"ariaLabel\", \"name\", \"id\", \"form\", \"tabIndex\", \"testId\"], outputs: [\"handleClick\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CustomerCardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-customer-card', imports: [\n MatCardModule,\n MatDividerModule,\n MatChipsModule,\n MatButtonModule,\n MatThemeButtonComponent,\n ], template: \"<mat-card class=\\\"customer-card\\\">\\n <!-- Header -->\\n <div class=\\\"card-header\\\">\\n <div class=\\\"avatar\\\" aria-label=\\\"Logo de cliente\\\">{{ getLogoSliceBusinessName() }}</div>\\n <h5 class=\\\"businessName\\\">{{ customer().businessName }}</h5>\\n <p class=\\\"tradeName\\\">{{ customer().tradeName }}</p>\\n </div>\\n\\n <!-- Card content -->\\n <mat-card-content>\\n <div class=\\\"info\\\">\\n <p><strong>ID:</strong> 1234567890 (RUC)</p>\\n <p><strong>Email:</strong> {{ customer().email }}</p>\\n <p><strong>Tel\\u00E9fono:</strong> {{ customer().phone }}</p>\\n <p><strong>Direcci\\u00F3n:</strong>{{ customer().address }}</p>\\n\\n <div class=\\\"chips\\\">\\n <mat-chip-set>\\n <mat-chip color=\\\"primary\\\">{{ customer().statusName }}</mat-chip>\\n </mat-chip-set>\\n </div>\\n </div>\\n </mat-card-content>\\n\\n <!-- Card actions -->\\n @if (!customer().isFinalConsumer) {\\n <mat-card-actions class=\\\"actions gap-2\\\">\\n <acp-mat-theme-button matStyle=\\\"icon\\\" icon=\\\"edit\\\" (handleClick)=\\\"onEditClick()\\\" />\\n <acp-mat-theme-button\\n matStyle=\\\"icon\\\"\\n icon=\\\"delete\\\"\\n variant=\\\"danger\\\"\\n (handleClick)=\\\"onDeleteClick()\\\"\\n />\\n </mat-card-actions>\\n }\\n</mat-card>\\n\", styles: [\".customer-card{width:345px;border-radius:16px}.card-header{display:flex;flex-direction:column;align-items:center;padding:16px;background-color:#e3f2fd;border-top-left-radius:16px;border-top-right-radius:16px}.card-header .businessName{text-align:center;font-size:14px;font-weight:500}.card-header .tradeName{text-align:center;font-size:12px;color:#6c757d}.avatar{width:80px;height:80px;border-radius:50%;background-color:#1976d2;display:flex;justify-content:center;align-items:center;font-size:32px;color:#fff;margin-bottom:12px}.info p{margin:4px 0}.chips{margin-top:12px;display:flex;gap:8px}.actions{justify-content:flex-end;padding:16px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jdXN0b21lci9zcmMvbGliL3VpL2NvbXBvbmVudHMvY3VzdG9tZXItY2FyZC9jdXN0b21lci1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWN1c3RvbWVyL3NyYy9saWIvdWkvY29tcG9uZW50cy9jdXN0b21lci1jYXJkL2N1c3RvbWVyLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWVuRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBdUIsQ0FBQztJQUNqRCxZQUFZLEdBQUcsTUFBTSxFQUF1QixDQUFDO0lBQzdDLGNBQWMsR0FBRyxNQUFNLEVBQXVCLENBQUM7SUFFL0Msd0JBQXdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUMsb0VBQUMsQ0FBQztJQUVILFdBQVc7UUFDVCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGFBQWE7UUFDWCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzt1R0FsQlUscUJBQXFCOzJGQUFyQixxQkFBcUIsc1NDcEJsQyx1dkNBcUNBLDRyQkQxQkksYUFBYSx5VkFDYixnQkFBZ0IsOEJBQ2hCLGNBQWMsMGJBQ2QsZUFBZSwrQkFDZix1QkFBdUI7OzJGQUtkLHFCQUFxQjtrQkFaakMsU0FBUzsrQkFDRSxtQkFBbUIsV0FDcEI7d0JBQ1AsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZix1QkFBdUI7cUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0VGhlbWVCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvbnRwbHVzL25nLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VzdG9tZXJMaXN0SXRlbUR0byB9IGZyb20gJy4uLy4uLy4uL2luZnJhc3RydWN0dXJlL2R0b3MvY3VzdG9tZXIuZHRvJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNwLWN1c3RvbWVyLWNhcmQnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUaGVtZUJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY3VzdG9tZXItY2FyZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyQ2FyZENvbXBvbmVudCB7XG4gIGN1c3RvbWVyID0gaW5wdXQucmVxdWlyZWQ8Q3VzdG9tZXJMaXN0SXRlbUR0bz4oKTtcbiAgZWRpdEN1c3RvbWVyID0gb3V0cHV0PEN1c3RvbWVyTGlzdEl0ZW1EdG8+KCk7XG4gIGRlbGV0ZUN1c3RvbWVyID0gb3V0cHV0PEN1c3RvbWVyTGlzdEl0ZW1EdG8+KCk7XG5cbiAgZ2V0TG9nb1NsaWNlQnVzaW5lc3NOYW1lID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmN1c3RvbWVyKCk/LmJ1c2luZXNzTmFtZSB8fCAnJztcbiAgICByZXR1cm4gbmFtZS5zbGljZSgwLCAxKTtcbiAgfSk7XG5cbiAgb25FZGl0Q2xpY2soKTogdm9pZCB7XG4gICAgLy8gRW1pdHMgdGhlIGN1c3RvbWVyIG9iamVjdCB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuZWRpdEN1c3RvbWVyLmVtaXQodGhpcy5jdXN0b21lcigpKTtcbiAgfVxuXG4gIG9uRGVsZXRlQ2xpY2soKTogdm9pZCB7XG4gICAgLy8gRW1pdHMgdGhlIGN1c3RvbWVyIG9iamVjdCB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgIHRoaXMuZGVsZXRlQ3VzdG9tZXIuZW1pdCh0aGlzLmN1c3RvbWVyKCkpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJjdXN0b21lci1jYXJkXCI+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCIgYXJpYS1sYWJlbD1cIkxvZ28gZGUgY2xpZW50ZVwiPnt7IGdldExvZ29TbGljZUJ1c2luZXNzTmFtZSgpIH19PC9kaXY+XG4gICAgPGg1IGNsYXNzPVwiYnVzaW5lc3NOYW1lXCI+e3sgY3VzdG9tZXIoKS5idXNpbmVzc05hbWUgfX08L2g1PlxuICAgIDxwIGNsYXNzPVwidHJhZGVOYW1lXCI+e3sgY3VzdG9tZXIoKS50cmFkZU5hbWUgfX08L3A+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2FyZCBjb250ZW50IC0tPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mb1wiPlxuICAgICAgPHA+PHN0cm9uZz5JRDo8L3N0cm9uZz4gMTIzNDU2Nzg5MCAoUlVDKTwvcD5cbiAgICAgIDxwPjxzdHJvbmc+RW1haWw6PC9zdHJvbmc+IHt7IGN1c3RvbWVyKCkuZW1haWwgfX08L3A+XG4gICAgICA8cD48c3Ryb25nPlRlbMOpZm9ubzo8L3N0cm9uZz4ge3sgY3VzdG9tZXIoKS5waG9uZSB9fTwvcD5cbiAgICAgIDxwPjxzdHJvbmc+RGlyZWNjacOzbjo8L3N0cm9uZz57eyBjdXN0b21lcigpLmFkZHJlc3MgfX08L3A+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiPlxuICAgICAgICA8bWF0LWNoaXAtc2V0PlxuICAgICAgICAgIDxtYXQtY2hpcCBjb2xvcj1cInByaW1hcnlcIj57eyBjdXN0b21lcigpLnN0YXR1c05hbWUgfX08L21hdC1jaGlwPlxuICAgICAgICA8L21hdC1jaGlwLXNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgPCEtLSBDYXJkIGFjdGlvbnMgLS0+XG4gIEBpZiAoIWN1c3RvbWVyKCkuaXNGaW5hbENvbnN1bWVyKSB7XG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zIGdhcC0yXCI+XG4gICAgICA8YWNwLW1hdC10aGVtZS1idXR0b24gbWF0U3R5bGU9XCJpY29uXCIgaWNvbj1cImVkaXRcIiAoaGFuZGxlQ2xpY2spPVwib25FZGl0Q2xpY2soKVwiIC8+XG4gICAgICA8YWNwLW1hdC10aGVtZS1idXR0b25cbiAgICAgICAgbWF0U3R5bGU9XCJpY29uXCJcbiAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAoaGFuZGxlQ2xpY2spPVwib25EZWxldGVDbGljaygpXCJcbiAgICAgIC8+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICB9XG48L21hdC1jYXJkPlxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWN1c3RvbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY3VzdG9tZXIvc3JjL2Fjb250cGx1cy1uZy1jdXN0b21lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2"],"mappings":"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"}