@fad-producto-portal/ng-fad-signature-fea 1.0.0-alpha.0
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.
- package/README.md +24 -0
- package/assets/images/fad-signature-fea/document-approval-list/activeApprove.png +0 -0
- package/assets/images/fad-signature-fea/document-approval-list/activeReject.png +0 -0
- package/assets/images/fad-signature-fea/document-approval-list/inactiveApprove.png +0 -0
- package/assets/images/fad-signature-fea/document-approval-list/inactiveReject.png +0 -0
- package/assets/images/fad-signature-fea/generic-error-fea/error.svg +41 -0
- package/assets/images/fad-signature-fea/upload-e-signature/check-off.svg +20 -0
- package/assets/images/fad-signature-fea/upload-e-signature/check-on.svg +12 -0
- package/assets/images/fad-signature-fea/upload-e-signature/file.svg +1 -0
- package/assets/images/fad-signature-fea/upload-e-signature/upload.svg +1 -0
- package/esm2022/fad-producto-portal-ng-fad-signature-fea.mjs +5 -0
- package/esm2022/lib/components/document-approval-list/document-approval-list.component.mjs +237 -0
- package/esm2022/lib/components/generic-error-fea/generic-error-fea.component.mjs +28 -0
- package/esm2022/lib/components/upload-e-signature/upload-e-signature.component.mjs +252 -0
- package/esm2022/lib/components/validate-rfc/validate-rfc.component.mjs +91 -0
- package/esm2022/lib/components/validate-signature/validate-signature.component.mjs +76 -0
- package/esm2022/lib/constants/configuration/document-approval-list/document-approval-lis-tconfiguration.const.mjs +18 -0
- package/esm2022/lib/constants/configuration/document-approval-list/index.mjs +2 -0
- package/esm2022/lib/constants/configuration/generic-error-fea/configuration-generic-error-fea.const.mjs +15 -0
- package/esm2022/lib/constants/configuration/generic-error-fea/index.mjs +2 -0
- package/esm2022/lib/constants/configuration/index.mjs +6 -0
- package/esm2022/lib/constants/configuration/upload-e-signature/configuration-upload-e-signature.const.mjs +93 -0
- package/esm2022/lib/constants/configuration/upload-e-signature/index.mjs +2 -0
- package/esm2022/lib/constants/configuration/validate-rfc/configuration-validate-rfc.const.mjs +18 -0
- package/esm2022/lib/constants/configuration/validate-rfc/index.mjs +2 -0
- package/esm2022/lib/constants/configuration/validate-signature/index.mjs +2 -0
- package/esm2022/lib/constants/configuration/validate-signature/validate-signature.const.mjs +15 -0
- package/esm2022/lib/constants/errors/document-approval-list/document-approval-list-error-code.mjs +7 -0
- package/esm2022/lib/constants/errors/document-approval-list/document-approval-list-error-description.mjs +13 -0
- package/esm2022/lib/constants/errors/document-approval-list/index.mjs +3 -0
- package/esm2022/lib/constants/errors/generic-error-fea/generic-error-fea-error-code.mjs +4 -0
- package/esm2022/lib/constants/errors/generic-error-fea/generic-error-fea-error-description.mjs +7 -0
- package/esm2022/lib/constants/errors/generic-error-fea/index.mjs +3 -0
- package/esm2022/lib/constants/errors/index.mjs +6 -0
- package/esm2022/lib/constants/errors/upload-e-signature/index.mjs +3 -0
- package/esm2022/lib/constants/errors/upload-e-signature/upload-e-signature-error-code.mjs +13 -0
- package/esm2022/lib/constants/errors/upload-e-signature/upload-e-signature-error-description.mjs +25 -0
- package/esm2022/lib/constants/errors/validate-rfc/index.mjs +3 -0
- package/esm2022/lib/constants/errors/validate-rfc/validate-rfc-error-code.mjs +6 -0
- package/esm2022/lib/constants/errors/validate-rfc/validate-rfc-error-description.mjs +11 -0
- package/esm2022/lib/constants/errors/validate-signature/index.mjs +3 -0
- package/esm2022/lib/constants/errors/validate-signature/validate-signature-error-code.mjs +8 -0
- package/esm2022/lib/constants/errors/validate-signature/validate-signature-error-description.mjs +15 -0
- package/esm2022/lib/constants/index.mjs +3 -0
- package/esm2022/lib/models/components/document-approval-list/document-approval-fea.interface.mjs +2 -0
- package/esm2022/lib/models/components/document-approval-list/index.mjs +2 -0
- package/esm2022/lib/models/components/index.mjs +3 -0
- package/esm2022/lib/models/components/upload-e-signature/certificate.interface.mjs +2 -0
- package/esm2022/lib/models/components/upload-e-signature/index.mjs +3 -0
- package/esm2022/lib/models/components/upload-e-signature/upload-e-signature-complete.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/document-approval-list/document-approval-list.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/document-approval-list/index.mjs +2 -0
- package/esm2022/lib/models/configuration/generic-error-fea/generic-error-fea-configuration.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/generic-error-fea/index.mjs +2 -0
- package/esm2022/lib/models/configuration/index.mjs +6 -0
- package/esm2022/lib/models/configuration/upload-e-signature/index.mjs +2 -0
- package/esm2022/lib/models/configuration/upload-e-signature/upload-e-signature-configuration.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/validate-rfc/index.mjs +2 -0
- package/esm2022/lib/models/configuration/validate-rfc/validate-rfc-configuration.interface.mjs +2 -0
- package/esm2022/lib/models/configuration/validate-signature/index.mjs +2 -0
- package/esm2022/lib/models/configuration/validate-signature/validate-signature-configuration.interface.mjs +2 -0
- package/esm2022/lib/models/customization/index.mjs +3 -0
- package/esm2022/lib/models/customization/legends/document-approval-list/document-approval-list-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/legends/document-approval-list/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/generic-error-fea/generic-error-fea-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/legends/generic-error-fea/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/index.mjs +6 -0
- package/esm2022/lib/models/customization/legends/upload-e-signature/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/upload-e-signature/upload-e-signature-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/legends/validate-rfc/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/validate-rfc/validate-rfc-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/legends/validate-signature/index.mjs +2 -0
- package/esm2022/lib/models/customization/legends/validate-signature/validate-signature-legends.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/document-approval-list/document-approval-list-style.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/document-approval-list/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/generic-error-fea/generic-error-fea-style.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/generic-error-fea/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/index.mjs +6 -0
- package/esm2022/lib/models/customization/style/upload-e-signature/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/upload-e-signature/upload-e-signature-style.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/validate-rfc/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/validate-rfc/validate-rfc-style.interface.mjs +2 -0
- package/esm2022/lib/models/customization/style/validate-signature/index.mjs +2 -0
- package/esm2022/lib/models/customization/style/validate-signature/validate-signature-style.interface.mjs +2 -0
- package/esm2022/lib/models/index.mjs +6 -0
- package/esm2022/lib/models/path-dependencies/document-approval-list/document-approval-list-dependencies.interface.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/document-approval-list/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/generic-error-fea/generic-error-fea-dependencies.interface.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/generic-error-fea/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/index.mjs +6 -0
- package/esm2022/lib/models/path-dependencies/upload-e-signature/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/upload-e-signature/upload-e-signature-dependencies.interface.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/validate-rfc/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/validate-rfc/validate-rfc-dependencies.interface.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/validate-signature/index.mjs +2 -0
- package/esm2022/lib/models/path-dependencies/validate-signature/validate-signature-dependencies.interface.mjs +2 -0
- package/esm2022/lib/ng-fad-signature-fea.module.mjs +61 -0
- package/esm2022/public-api.mjs +15 -0
- package/fesm2022/fad-producto-portal-ng-fad-signature-fea.mjs +976 -0
- package/fesm2022/fad-producto-portal-ng-fad-signature-fea.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/document-approval-list/document-approval-list.component.d.ts +62 -0
- package/lib/components/generic-error-fea/generic-error-fea.component.d.ts +13 -0
- package/lib/components/upload-e-signature/upload-e-signature.component.d.ts +52 -0
- package/lib/components/validate-rfc/validate-rfc.component.d.ts +29 -0
- package/lib/components/validate-signature/validate-signature.component.d.ts +22 -0
- package/lib/constants/configuration/document-approval-list/document-approval-lis-tconfiguration.const.d.ts +2 -0
- package/lib/constants/configuration/document-approval-list/index.d.ts +1 -0
- package/lib/constants/configuration/generic-error-fea/configuration-generic-error-fea.const.d.ts +2 -0
- package/lib/constants/configuration/generic-error-fea/index.d.ts +1 -0
- package/lib/constants/configuration/index.d.ts +5 -0
- package/lib/constants/configuration/upload-e-signature/configuration-upload-e-signature.const.d.ts +2 -0
- package/lib/constants/configuration/upload-e-signature/index.d.ts +1 -0
- package/lib/constants/configuration/validate-rfc/configuration-validate-rfc.const.d.ts +2 -0
- package/lib/constants/configuration/validate-rfc/index.d.ts +1 -0
- package/lib/constants/configuration/validate-signature/index.d.ts +1 -0
- package/lib/constants/configuration/validate-signature/validate-signature.const.d.ts +2 -0
- package/lib/constants/errors/document-approval-list/document-approval-list-error-code.d.ts +5 -0
- package/lib/constants/errors/document-approval-list/document-approval-list-error-description.d.ts +2 -0
- package/lib/constants/errors/document-approval-list/index.d.ts +2 -0
- package/lib/constants/errors/generic-error-fea/generic-error-fea-error-code.d.ts +2 -0
- package/lib/constants/errors/generic-error-fea/generic-error-fea-error-description.d.ts +2 -0
- package/lib/constants/errors/generic-error-fea/index.d.ts +2 -0
- package/lib/constants/errors/index.d.ts +5 -0
- package/lib/constants/errors/upload-e-signature/index.d.ts +2 -0
- package/lib/constants/errors/upload-e-signature/upload-e-signature-error-code.d.ts +11 -0
- package/lib/constants/errors/upload-e-signature/upload-e-signature-error-description.d.ts +2 -0
- package/lib/constants/errors/validate-rfc/index.d.ts +2 -0
- package/lib/constants/errors/validate-rfc/validate-rfc-error-code.d.ts +4 -0
- package/lib/constants/errors/validate-rfc/validate-rfc-error-description.d.ts +2 -0
- package/lib/constants/errors/validate-signature/index.d.ts +2 -0
- package/lib/constants/errors/validate-signature/validate-signature-error-code.d.ts +6 -0
- package/lib/constants/errors/validate-signature/validate-signature-error-description.d.ts +2 -0
- package/lib/constants/index.d.ts +2 -0
- package/lib/models/components/document-approval-list/document-approval-fea.interface.d.ts +8 -0
- package/lib/models/components/document-approval-list/index.d.ts +1 -0
- package/lib/models/components/index.d.ts +2 -0
- package/lib/models/components/upload-e-signature/certificate.interface.d.ts +5 -0
- package/lib/models/components/upload-e-signature/index.d.ts +2 -0
- package/lib/models/components/upload-e-signature/upload-e-signature-complete.interface.d.ts +4 -0
- package/lib/models/configuration/document-approval-list/document-approval-list.interface.d.ts +8 -0
- package/lib/models/configuration/document-approval-list/index.d.ts +1 -0
- package/lib/models/configuration/generic-error-fea/generic-error-fea-configuration.interface.d.ts +5 -0
- package/lib/models/configuration/generic-error-fea/index.d.ts +1 -0
- package/lib/models/configuration/index.d.ts +5 -0
- package/lib/models/configuration/upload-e-signature/index.d.ts +1 -0
- package/lib/models/configuration/upload-e-signature/upload-e-signature-configuration.interface.d.ts +14 -0
- package/lib/models/configuration/validate-rfc/index.d.ts +1 -0
- package/lib/models/configuration/validate-rfc/validate-rfc-configuration.interface.d.ts +9 -0
- package/lib/models/configuration/validate-signature/index.d.ts +1 -0
- package/lib/models/configuration/validate-signature/validate-signature-configuration.interface.d.ts +9 -0
- package/lib/models/customization/index.d.ts +2 -0
- package/lib/models/customization/legends/document-approval-list/document-approval-list-legends.interface.d.ts +8 -0
- package/lib/models/customization/legends/document-approval-list/index.d.ts +1 -0
- package/lib/models/customization/legends/generic-error-fea/generic-error-fea-legends.interface.d.ts +5 -0
- package/lib/models/customization/legends/generic-error-fea/index.d.ts +1 -0
- package/lib/models/customization/legends/index.d.ts +5 -0
- package/lib/models/customization/legends/upload-e-signature/index.d.ts +1 -0
- package/lib/models/customization/legends/upload-e-signature/upload-e-signature-legends.interface.d.ts +54 -0
- package/lib/models/customization/legends/validate-rfc/index.d.ts +1 -0
- package/lib/models/customization/legends/validate-rfc/validate-rfc-legends.interface.d.ts +6 -0
- package/lib/models/customization/legends/validate-signature/index.d.ts +1 -0
- package/lib/models/customization/legends/validate-signature/validate-signature-legends.interface.d.ts +3 -0
- package/lib/models/customization/style/document-approval-list/document-approval-list-style.interface.d.ts +2 -0
- package/lib/models/customization/style/document-approval-list/index.d.ts +1 -0
- package/lib/models/customization/style/generic-error-fea/generic-error-fea-style.interface.d.ts +2 -0
- package/lib/models/customization/style/generic-error-fea/index.d.ts +1 -0
- package/lib/models/customization/style/index.d.ts +5 -0
- package/lib/models/customization/style/upload-e-signature/index.d.ts +1 -0
- package/lib/models/customization/style/upload-e-signature/upload-e-signature-style.interface.d.ts +22 -0
- package/lib/models/customization/style/validate-rfc/index.d.ts +1 -0
- package/lib/models/customization/style/validate-rfc/validate-rfc-style.interface.d.ts +2 -0
- package/lib/models/customization/style/validate-signature/index.d.ts +1 -0
- package/lib/models/customization/style/validate-signature/validate-signature-style.interface.d.ts +2 -0
- package/lib/models/index.d.ts +5 -0
- package/lib/models/path-dependencies/document-approval-list/document-approval-list-dependencies.interface.d.ts +9 -0
- package/lib/models/path-dependencies/document-approval-list/index.d.ts +1 -0
- package/lib/models/path-dependencies/generic-error-fea/generic-error-fea-dependencies.interface.d.ts +6 -0
- package/lib/models/path-dependencies/generic-error-fea/index.d.ts +1 -0
- package/lib/models/path-dependencies/index.d.ts +5 -0
- package/lib/models/path-dependencies/upload-e-signature/index.d.ts +1 -0
- package/lib/models/path-dependencies/upload-e-signature/upload-e-signature-dependencies.interface.d.ts +9 -0
- package/lib/models/path-dependencies/validate-rfc/index.d.ts +1 -0
- package/lib/models/path-dependencies/validate-rfc/validate-rfc-dependencies.interface.d.ts +4 -0
- package/lib/models/path-dependencies/validate-signature/index.d.ts +1 -0
- package/lib/models/path-dependencies/validate-signature/validate-signature-dependencies.interface.d.ts +4 -0
- package/lib/ng-fad-signature-fea.module.d.ts +16 -0
- package/package.json +31 -0
- package/public-api.d.ts +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fad-producto-portal-ng-fad-signature-fea.mjs","sources":["../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/configuration/document-approval-list/document-approval-lis-tconfiguration.const.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/configuration/generic-error-fea/configuration-generic-error-fea.const.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/configuration/upload-e-signature/configuration-upload-e-signature.const.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/configuration/validate-rfc/configuration-validate-rfc.const.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/configuration/validate-signature/validate-signature.const.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/document-approval-list/document-approval-list-error-code.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/document-approval-list/document-approval-list-error-description.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/generic-error-fea/generic-error-fea-error-code.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/generic-error-fea/generic-error-fea-error-description.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/upload-e-signature/upload-e-signature-error-code.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/upload-e-signature/upload-e-signature-error-description.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/validate-rfc/validate-rfc-error-code.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/validate-rfc/validate-rfc-error-description.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/validate-signature/validate-signature-error-code.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/constants/errors/validate-signature/validate-signature-error-description.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/validate-rfc/validate-rfc.component.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/validate-rfc/validate-rfc.component.html","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/document-approval-list/document-approval-list.component.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/document-approval-list/document-approval-list.component.html","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/upload-e-signature/upload-e-signature.component.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/upload-e-signature/upload-e-signature.component.html","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/generic-error-fea/generic-error-fea.component.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/generic-error-fea/generic-error-fea.component.html","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/validate-signature/validate-signature.component.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/components/validate-signature/validate-signature.component.html","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/lib/ng-fad-signature-fea.module.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/public-api.ts","../../../../projects/fad-producto-portal/ng-fad-signature-fea/src/fad-producto-portal-ng-fad-signature-fea.ts"],"sourcesContent":["import { IDocumentApprovalListConfiguration } from \"../../../models\";\r\n\r\nexport const DOCUMENT_APPROVAL_LIST_DEFAULT: IDocumentApprovalListConfiguration = {\r\n\r\n customization: {\r\n moduleCustomization: {\r\n style: {\r\n },\r\n legends: {\r\n sendTo: 'Enviado por',\r\n seeDocument: 'Ver documento',\r\n hideDocument: 'Ocultar documento',\r\n download:'Descargar',\r\n pages: 'Páginas'\r\n }\r\n }\r\n },\r\n pathDependencies: {\r\n imageDirectory: 'assets/images/fad-signature-fea/document-approval-list/',\r\n }\r\n};\r\n","import { IGenericErrorFeaConfiguration } from \"../../../models\";\r\n\r\nexport const GENERIC_ERROR_FEA_CONFIGURATION_DEFAULT: IGenericErrorFeaConfiguration = {\r\n customization: {\r\n moduleCustomization: {\r\n style: {\r\n },\r\n legends: {\r\n title: 'Aviso',\r\n instruction: 'No existe un documento que corresponda a este URL (la dirección web). Si copiaste y pegaste la dirección, es posible que hayas cometido un error. Asegúrate de que no sobren o falten caracteres e intenta nuevamente.'\r\n }\r\n }\r\n },\r\n pathDependencies: {\r\n imageDirectory: 'assets/images/fad-signature-fea/generic-error-fea/',\r\n }\r\n};\r\n","import { IUploadESignatureConfiguration } from \"../../../models\";\r\n\r\nexport const UPLOAD_E_SIGNATURE_CONFIGURATION_DEFAULT: IUploadESignatureConfiguration = {\r\n services: {\r\n reject: { loader: true, error: true },\r\n sign: { loader: true, error: true }\r\n },\r\n credentials: {\r\n key: 'JJQUfgm0i5MJ70NI',\r\n iv: 'uxQKO3FiCiht0uVU'\r\n },\r\n customization: {\r\n moduleCustomization: {\r\n style: {\r\n documents: {\r\n backgroundColor: '#f5f5f5',\r\n borderRadius: '15px'\r\n },\r\n upload: {\r\n backgroundColor: '#f4f6fa',\r\n borderRadius: '10px',\r\n border: '2px dashed var(--fad-portal-common-legends-tertiary)',\r\n button: {\r\n backgroundColor: '#e3e7f0',\r\n borderRadius: '50px',\r\n hover: '#cbd7f5'\r\n }\r\n },\r\n file: {\r\n borderRadius: '10px',\r\n img: {\r\n backgroundColor: '#f5f5f5'\r\n }\r\n }\r\n },\r\n legends: {\r\n documents: {\r\n pages: {\r\n singular: 'Página',\r\n plural: 'Páginas'\r\n },\r\n status: {\r\n approved: 'Aprobado',\r\n rejected: 'Rechazado'\r\n },\r\n title: {\r\n plural: 'Documentos para enviar (#TOTAL_DOCS)',\r\n singular: 'Documento #STATUS_DOC para firma',\r\n approved: 'aprobado',\r\n rejected: 'rechazado'\r\n }\r\n },\r\n eSignature: {\r\n cer: {\r\n instruction: 'Selecciona o arrastra el archivo .CER',\r\n label: 'Certificado .CER',\r\n upload: 'Subir .CER'\r\n },\r\n key: {\r\n instruction: 'Selecciona o arrastra el archivo .KEY',\r\n label: 'Llave privada .KEY',\r\n upload: 'Subir .KEY'\r\n },\r\n password: {\r\n hide: 'OCULTAR',\r\n label: 'Ingresa la contraseña de tu e.firma',\r\n show: 'MOSTRAR'\r\n },\r\n title: 'Ingresa tu e.firma para firmar los documentos',\r\n upload: 'Seleccionar otro archivo'\r\n },\r\n sign: {\r\n button: {\r\n reject: {\r\n plural: 'Rechazar documentos',\r\n singular: 'Rechazar documento'\r\n },\r\n sign: {\r\n plural: 'Firmar documentos',\r\n singular: 'Firmar documento'\r\n }\r\n },\r\n validate: {\r\n plural: 'Valido que he leído y he aceptado firmar los documentos',\r\n singular: 'Valido que he leído y he aceptado firmar el documento'\r\n }\r\n }\r\n }\r\n }\r\n },\r\n pathDependencies: {\r\n imageDirectory: 'assets/images/fad-signature-fea/upload-e-signature/',\r\n }\r\n};\r\n","import { IValidateRfcConfiguration } from \"../../../models\";\r\n\r\nexport const SIGNATURE_FEA_CONFIGURATION_DEFAULT: IValidateRfcConfiguration = {\r\n\r\n maxCharacters: 13,\r\n regexRFC: '^[A-ZÑ&]{3,4}[0-9]{6}[A-V1-9][A-Z1-9][0-9A]$',\r\n customization: {\r\n moduleCustomization: {\r\n style: {\r\n },\r\n legends: {\r\n title: 'Código de validación',\r\n description: 'Ingresa tu RFC para comenzar la firma',\r\n buttonLegend: 'Validar'\r\n }\r\n }\r\n },\r\n pathDependencies: {\r\n imageDirectory: 'assets/images/fad-signature-fea/validate-rfc/',\r\n }\r\n};\r\n","import { IValidateSignatureConfiguration } from \"../../../models\";\r\n\r\nexport const VALIDATE_SIGNATURE_CONFIGURATION_DEFAULT: IValidateSignatureConfiguration = {\r\n services: {\r\n signerStatusFea: { loader: true, error: true }\r\n },\r\n customization: {\r\n moduleCustomization: {\r\n style: {\r\n },\r\n legends: {\r\n }\r\n }\r\n },\r\n pathDependencies: {\r\n imageDirectory: 'assets/images/fad-signature-fea/validate-signature/',\r\n }\r\n};\r\n","export enum DocumentApprovalListErrorCode {\r\n \r\n SERVICE = -1,\r\n HTTP = -2,\r\n ERROR_PDF = -3,\r\n\r\n}\r\n","import { DocumentApprovalListErrorCode } from \"./document-approval-list-error-code\";\r\n\r\nexport const getDocumentApprovalListErrorDescription = (code: DocumentApprovalListErrorCode) => {\r\n switch (code) {\r\n case -1:\r\n return \"Service error\";\r\n case -2:\r\n return \"HTTP error\";\r\n case -3:\r\n return \"PDF error\";\r\n default:\r\n return 'Unknown error';\r\n }\r\n};\r\n","export enum GenericErrorFeaErrorCode {\r\n}\r\n","import { GenericErrorFeaErrorCode } from \"./generic-error-fea-error-code\";\r\n\r\nexport const getGenericErrorFeaErrorDescription = (code: GenericErrorFeaErrorCode) => {\r\n switch (code) {\r\n default:\r\n return 'Unknown error';\r\n }\r\n};\r\n","export enum UploadESignatureErrorCode {\r\n SERVICE = -1,\r\n HTTP = -2,\r\n NO_DOCUMENTS = -3,\r\n FORMAT_CER = -4,\r\n FORMAT_KEY = -5,\r\n MULTIPLE_FILES = -6,\r\n ERROR_BASE_64 = -7,\r\n NO_SIGNER_ID = -8,\r\n NO_RFC = -9,\r\n}\r\n","import { UploadESignatureErrorCode } from \"./upload-e-signature-error-code\";\r\n\r\nexport const getUploadESignatureErrorDescription = (code:UploadESignatureErrorCode) => {\r\n switch (code) {\r\n case -1:\r\n return \"Service error\";\r\n case -2:\r\n return \"HTTP error\";\r\n case -3:\r\n return \"Los documentos a procesar son requeridos\";\r\n case -4:\r\n return \"El formato del archivo seleccionado no es .cer\";\r\n case -5:\r\n return \"El formato del archivo seleccionado no es .key\";\r\n case -6:\r\n return \"Solo puedes seleccionar un archivo\";\r\n case -7:\r\n return \"Error al convertir el archivo a base 64\";\r\n case -8:\r\n return \"El ID del firmante es requerido\";\r\n case -9:\r\n return \"El RFC del firmante es requerido\";\r\n default:\r\n return 'Unknown error';\r\n }\r\n};\r\n","export enum ValidateRFCErrorCode {\r\n \r\n SERVICE = -1,\r\n HTTP = -2,\r\n\r\n}\r\n","import { ValidateRFCErrorCode } from \"./validate-rfc-error-code\";\r\n\r\nexport const getValidateRFCErrorDescription = (code: ValidateRFCErrorCode) => {\r\n switch (code) {\r\n case -1:\r\n return \"Service error\";\r\n case -2:\r\n return \"HTTP error\";\r\n default:\r\n return 'Unknown error';\r\n }\r\n};\r\n","export enum ValidateSignatureErrorCode {\r\n SERVICE = -1,\r\n HTTP = -2,\r\n NO_REQUISITION_ID = -3,\r\n NO_SIGNER_ID = -4,\r\n}\r\n","import { ValidateSignatureErrorCode } from \"./validate-signature-error-code\";\r\n\r\nexport const getValidateSignatureErrorDescription = (code: ValidateSignatureErrorCode) => {\r\n switch (code) {\r\n case -1:\r\n return \"Service error\";\r\n case -2:\r\n return \"HTTP error\";\r\n case -2:\r\n return \"Requisition ID is required\";\r\n case -3:\r\n return \"Signer ID is required\";\r\n default:\r\n return 'Unknown error';\r\n }\r\n};\r\n","import { Component, ElementRef, EventEmitter, Input, Output, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { IValidateRfcConfiguration } from '../../models';\r\nimport { getValidateRFCErrorDescription, SIGNATURE_FEA_CONFIGURATION_DEFAULT, ValidateRFCErrorCode } from '../../constants';\r\nimport { Utils } from '@fad-producto-portal/fad-common/utils/utils';\r\nimport { Configuration } from '@fad-producto-portal/fad-common/models/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FadService, ResponseData, ValidateRFC } from '@fad-producto-portal/ng-fad-services';\r\nimport { ResponseError } from '@fad-producto-portal/ng-fad-shared';\r\n\r\n@Component({\r\n selector: 'ng-fad-signature-fea-validate-rfc',\r\n templateUrl: './validate-rfc.component.html',\r\n styleUrls: ['./validate-rfc.component.scss']\r\n})\r\nexport class ValidateRfcComponent implements OnInit {\r\n \r\n @Input() configuration!: IValidateRfcConfiguration;\r\n @Output() onerror = new EventEmitter<ResponseError>();\r\n @Output() onevent = new EventEmitter<ResponseData<ValidateRFC>>();\r\n validationForm!: FormGroup;\r\n showComponent: boolean = true;\r\n requisitionId: string = '';\r\n signerId: string = '';\r\n constructor(private fb: FormBuilder, private hostContext: ElementRef,private route: ActivatedRoute, private fadService: FadService) {}\r\n\r\n ngOnInit() {\r\n this.setCustomizationStyle(this.hostContext.nativeElement);\r\n this.initializeForm();\r\n\r\n this.route.queryParams.subscribe(params => {\r\n this.requisitionId = params['req'];\r\n this.signerId = params['sign'];\r\n console.log(this.requisitionId, this.signerId);\r\n });\r\n\r\n }\r\n\r\n initializeForm(): void {\r\n const maxCharacters = this.configuration?.maxCharacters || 13;\r\n const rfcRegex = new RegExp(this.configuration?.regexRFC!);\r\n\r\n this.validationForm = this.fb.group({\r\n code: ['', [\r\n Validators.required,\r\n Validators.minLength(maxCharacters),\r\n Validators.maxLength(maxCharacters),\r\n Validators.pattern(rfcRegex)\r\n ]]\r\n });\r\n }\r\n\r\n onSubmit(): void {\r\n this.validateRFC();\r\n }\r\n\r\n setCustomizationStyle(targetElement = document.documentElement): void {\r\n this.configuration = Utils.mergeConfiguration(\r\n new Configuration(),\r\n SIGNATURE_FEA_CONFIGURATION_DEFAULT,\r\n this.configuration\r\n );\r\n }\r\n\r\n validateRFC(){\r\n if( this.validationForm.valid ){\r\n console.error(\"Validar rfc \");\r\n\r\n const validateReq = {\r\n requisitionId: this.requisitionId,\r\n signerId: this.signerId,\r\n rfc: this.codeControl?.value\r\n };\r\n\r\n this.fadService.validateRfc(validateReq).subscribe({\r\n next: (response) => {\r\n if( response.success ){\r\n this.onevent.emit(response);\r\n }else{\r\n this.onerror.emit(new ResponseError(ValidateRFCErrorCode.SERVICE, getValidateRFCErrorDescription(ValidateRFCErrorCode.SERVICE), 'ng-fad-portal-signature-fea-validate-rfc'));\r\n }\r\n },\r\n error: (error) => {\r\n this.onerror.emit(new ResponseError(ValidateRFCErrorCode.HTTP, getValidateRFCErrorDescription(ValidateRFCErrorCode.HTTP), 'ng-fad-portal-signature-fea-validate-rfc'));\r\n }\r\n });\r\n }\r\n }\r\n\r\n get codeControl() {\r\n return this.validationForm.get('code') ?? null;\r\n }\r\n}\r\n","<div class=\"validation-container fad-container\" *ngIf=\"showComponent\">\r\n <div class=\"title\">{{ configuration.customization?.moduleCustomization?.legends?.title }}</div>\r\n <div class=\"fad-portal-subtitle\">{{ configuration.customization?.moduleCustomization?.legends?.description }}</div>\r\n <form [formGroup]=\"validationForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"fad-portal-container-input\">\r\n <input id=\"code\" type=\"text\" formControlName=\"code\" maxlength=\"{{ configuration.maxCharacters || 13 }}\" />\r\n </div>\r\n <ng-fad-portal-shared-form-errors \r\n [formData]=\"codeControl!\" \r\n [configuration]=\"configuration.formErrors?.configuration!\">\r\n </ng-fad-portal-shared-form-errors>\r\n\r\n <button type=\"submit\" class=\"fad-portal-primary\" [disabled]=\"validationForm.invalid\">\r\n {{ configuration.customization?.moduleCustomization?.legends?.buttonLegend }}\r\n </button>\r\n </form>\r\n</div>\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { Utils } from '@fad-producto-portal/fad-common/utils/utils';\r\nimport { Configuration } from '@fad-producto-portal/fad-common/models/core';\r\nimport { DocumentApprovalFea, IDocumentApprovalListConfiguration } from '../../models';\r\nimport { DOCUMENT_APPROVAL_LIST_DEFAULT, getDocumentApprovalListErrorDescription } from '../../constants';\r\nimport { FadService, RequisitionsFea, ResponseData, RequisitionFeaData, DocumentFea } from '@fad-producto-portal/ng-fad-services';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { GeneralPdfViewerComponent as GeneralPdfViewerComponentModule, IPdfMiniViewConfiguration } from '@fad-producto-portal/ng-fad-viewer'\r\nimport { finalize, Subscription } from 'rxjs';\r\nimport { NgFadPdfReaderService, ResponseSuccess } from '@fad-producto/ng-fad-pdf-reader';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ResponseError, SharedUtils } from '@fad-producto-portal/ng-fad-shared';\r\nimport { DocumentApprovalListErrorCode } from '../../constants';\r\n\r\n\r\n@Component({\r\n selector: 'ng-fad-signature-fea-document-approval-list',\r\n templateUrl: './document-approval-list.component.html',\r\n styleUrls: ['./document-approval-list.component.scss'],\r\n providers: [NgFadPdfReaderService]\r\n})\r\nexport class DocumentApprovalListComponent {\r\n \r\n @Input() configuration!: IDocumentApprovalListConfiguration;\r\n @Input() rfc!: string;\r\n @Output() onloader = new EventEmitter<boolean>();\r\n @Output() onevent = new EventEmitter<DocumentApprovalFea[]>();\r\n @Output() onerror: EventEmitter<ResponseError> = new EventEmitter();\r\n pagesMap: Map<string, ResponseSuccess[]> = new Map();\r\n requisitionsFea: RequisitionFeaData[] = [];\r\n documentsApprovalList: DocumentApprovalFea[] = [];\r\n approveAll: boolean = false;\r\n \r\n images = {\r\n inactive:{\r\n reject: '',\r\n approve: ''\r\n },\r\n active:{\r\n reject: '',\r\n approve: '' \r\n }\r\n }\r\n\r\n\r\n\r\n @ViewChild(GeneralPdfViewerComponentModule) generalPdfViewerComponent!: GeneralPdfViewerComponentModule;\r\n pdfSrc: string = 'assets/pdf/one-drive.pdf';\r\n pdfError!: Subscription;\r\n pdfLibrary!: Subscription;\r\n pages: ResponseSuccess[] = [];\r\n page = 1;\r\n height = '500px';\r\n\r\n miniView: IPdfMiniViewConfiguration = {\r\n scrollIntoView: false\r\n }\r\n\r\n constructor( private hostContext: ElementRef, private fad: FadService,private cdr: ChangeDetectorRef,private pdfService: NgFadPdfReaderService ) {}\r\n \r\n \r\n ngOnInit() {\r\n console.log(this.configuration,this.rfc)\r\n this.setCustomizationStyle(this.hostContext.nativeElement);\r\n if (this.configuration?.pathDependencies?.imageDirectory) {\r\n this.images.inactive.reject = this.configuration.pathDependencies?.images?.inactiveReject ?? `${this.configuration.pathDependencies.imageDirectory}/inactiveReject.png`;\r\n this.images.inactive.approve = this.configuration.pathDependencies?.images?.inactiveApprove ?? `${this.configuration.pathDependencies.imageDirectory}/inactiveApprove.png`;\r\n this.images.active.reject = this.configuration.pathDependencies?.images?.activeReject ?? `${this.configuration.pathDependencies.imageDirectory}/activeReject.png`;\r\n this.images.active.approve = this.configuration.pathDependencies?.images?.activeApprove ?? `${this.configuration.pathDependencies.imageDirectory}/activeApprove.png`;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n \r\n this.getRequisitionsRfc();\r\n }\r\n\r\n getRequisitionsRfc() {\r\n this.onloader.emit(true); \r\n \r\n this.fad.getRequisitionsRfc(this.rfc)\r\n .pipe(finalize(() => this.onloader.emit(false))) \r\n .subscribe({\r\n next: (res) => {\r\n if (res.success) { \r\n this.requisitionsFea = res.data.requisitions;\r\n this.documentsApprovalList = this.requisitionsFea.flatMap(requisition => \r\n requisition.documents.map(doc => ({\r\n doc: doc,\r\n id: doc.documentId,\r\n idRequisition: requisition.requisitionId,\r\n approved: undefined,\r\n isVisible: false\r\n }))\r\n );\r\n } else {\r\n this.onerror.emit(new ResponseError(\r\n DocumentApprovalListErrorCode.SERVICE,\r\n getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.SERVICE),\r\n 'ng-fad-portal-signature-fea-document-approval-list'\r\n ));\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.onerror.emit(new ResponseError(\r\n DocumentApprovalListErrorCode.HTTP,\r\n getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.HTTP),\r\n 'ng-fad-portal-signature-fea-document-approval-list'\r\n ));\r\n }\r\n });\r\n }\r\n\r\n toggleApproval(document: DocumentApprovalFea) {\r\n document.approved = document.approved === true ? undefined : true;\r\n this.updateApproveAllState();\r\n }\r\n \r\n toggleRejection(document: DocumentApprovalFea) {\r\n document.approved = document.approved === false ? undefined : false;\r\n this.updateApproveAllState();\r\n }\r\n\r\n updateApproveAllState() {\r\n this.approveAll = this.documentsApprovalList.every(doc => doc.approved === true);\r\n }\r\n\r\n approveAllDocuments() {\r\n this.approveAll = !this.approveAll;\r\n this.documentsApprovalList.forEach(doc => doc.approved = this.approveAll ? true : undefined);\r\n }\r\n\r\n getApprovedCount(): number {\r\n return this.documentsApprovalList.filter(doc => doc.approved === true).length;\r\n }\r\n\r\n getRejectedCount(): number {\r\n return this.documentsApprovalList.filter(doc => doc.approved === false).length;\r\n }\r\n\r\n emitApprovedDocuments() {\r\n const approvedDocuments = this.documentsApprovalList.filter(doc => doc.approved !== undefined);\r\n console.log(approvedDocuments);\r\n this.onevent.emit(approvedDocuments);\r\n }\r\n\r\n\r\n\r\n seeDocumentFea(document: DocumentApprovalFea) {\r\n document.isVisible = !document.isVisible;\r\n if (document.isVisible) {\r\n this.onloader.emit(true); \r\n this.fad.getDocumentFea(document.id! , { loader: true, error: true })\r\n .pipe(finalize(() => this.onloader.emit(false))) \r\n .subscribe({\r\n next: (res) => {\r\n if (document.doc) {\r\n const byteCharacters = atob(res.data.file);\r\n const byteNumbers = new Array(byteCharacters.length).fill(0).map((_, i) => byteCharacters.charCodeAt(i));\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n this.getBase64(blob, document);\r\n } else {\r\n this.onerror.emit(new ResponseError(\r\n DocumentApprovalListErrorCode.SERVICE,\r\n getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.SERVICE),\r\n 'ng-fad-portal-signature-fea-document-approval-list'\r\n ));\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.onerror.emit(new ResponseError(\r\n DocumentApprovalListErrorCode.HTTP,\r\n getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.HTTP),\r\n 'ng-fad-portal-signature-fea-document-approval-list'\r\n ));\r\n }\r\n });\r\n }\r\n }\r\n\r\n downloadDocumentFea(document: DocumentApprovalFea) {\r\n this.onloader.emit(true); \r\n this.fad.getDocumentFea(document.id!)\r\n .pipe(finalize(() => this.onloader.emit(false))) \r\n .subscribe({\r\n next: (res) => {\r\n if (res.success && res.data.file) {\r\n const byteCharacters = atob(res.data.file);\r\n const byteNumbers = new Array(byteCharacters.length).fill(0).map((_, i) => byteCharacters.charCodeAt(i));\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const link = window.document.createElement('a');\r\n link.href = URL.createObjectURL(blob);\r\n link.download = document.doc?.name || 'document.pdf';\r\n window.document.body.appendChild(link);\r\n link.click();\r\n window.document.body.removeChild(link);\r\n } else {\r\n this.onerror.emit(new ResponseError(\r\n DocumentApprovalListErrorCode.SERVICE,\r\n getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.SERVICE),\r\n 'ng-fad-portal-signature-fea-document-approval-list'\r\n ));\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.onerror.emit(new ResponseError(\r\n DocumentApprovalListErrorCode.HTTP,\r\n getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.HTTP),\r\n 'ng-fad-portal-signature-fea-document-approval-list'\r\n ));\r\n }\r\n });\r\n }\r\n \r\n async getBase64(blob: Blob,document: DocumentApprovalFea) {\r\n console.log(blob)\r\n const data = new File([blob], 'file.pdf', { type: 'application/pdf' });\r\n const base64 = await SharedUtils.fileToBase64(data);\r\n if (base64) {\r\n this.initializePdf(base64 as string,document);\r\n } else {\r\n this.onerror.emit(new ResponseError(DocumentApprovalListErrorCode.ERROR_PDF, getDocumentApprovalListErrorDescription(DocumentApprovalListErrorCode.HTTP), 'ng-fad-portal-signature-fea-document-approval-list'));\r\n }\r\n }\r\n\r\n initializePdf(pdf: string, document: DocumentApprovalFea) {\r\n if (!this.pagesMap.has(document.id!)) {\r\n this.pagesMap.set(document.id!, []);\r\n } else {\r\n this.pagesMap.get(document.id!)!.length = 0;\r\n }\r\n \r\n this.pdfService.initialize(pdf, SharedUtils.generateUUID());\r\n this.getPages(document);\r\n }\r\n \r\n getPages(document: DocumentApprovalFea) {\r\n if (!this.pagesMap.has(document.id!)) {\r\n this.pagesMap.set(document.id!, []);\r\n } else {\r\n this.pagesMap.get(document.id!)!.length = 0; \r\n }\r\n \r\n if (this.pdfLibrary) {\r\n this.pdfLibrary.unsubscribe();\r\n }\r\n \r\n this.pdfLibrary = this.pdfService.pages.subscribe(res => {\r\n const docPages = this.pagesMap.get(document.id!)!;\r\n docPages.push(res);\r\n \r\n this.cdr.detectChanges();\r\n\r\n });\r\n \r\n }\r\n \r\n\r\n //PDF General viewer methods\r\n\r\n onpagechange(page: number) {\r\n this.page = page;\r\n }\r\n\r\n scrollToPage(page: number) {\r\n this.generalPdfViewerComponent.scrollToPage(page);\r\n }\r\n\r\n onloadpage(data: ResponseSuccess) {\r\n if (data.page == 1) {\r\n const id = \"fad-viewer-page-v1-1\";\r\n const dynamicDiv = document.getElementById(id);;\r\n this.height = dynamicDiv!.clientHeight + 'px';\r\n\r\n }\r\n }\r\n\r\n setCustomizationStyle(targetElement = document.documentElement): void {\r\n this.configuration = Utils.mergeConfiguration(\r\n new Configuration(),\r\n DOCUMENT_APPROVAL_LIST_DEFAULT,\r\n this.configuration\r\n );\r\n }\r\n}\r\n","\r\n <ng-container *ngFor=\"let requisition of requisitionsFea\">\r\n <div class=\"fad-portal-content\" >\r\n <div class=\"header\" >\r\n <div>\r\n <div class=\"fad-portal-title\">\r\n {{ requisition.name }} ({{requisition.documents.length}})\r\n </div>\r\n <div class=\"info\">\r\n {{configuration.customization?.moduleCustomization?.legends?.sendTo}} Alfredo Villanueva {{ requisition.sendBy }}\r\n </div>\r\n <div class=\"info\">\r\n {{ requisition.sendByEmail }}\r\n </div>\r\n </div>\r\n <div class=\"requisition-id\">\r\n <div class=\"fad-portal-subtitle-bold\">ID {{ requisition.requisitionId }}</div>\r\n </div>\r\n </div>\r\n <div class=\"documents-container\">\r\n <ng-container *ngFor=\"let document of documentsApprovalList\">\r\n <ng-container *ngIf=\"document.idRequisition === requisition.requisitionId\" >\r\n <div class=\"document\" >\r\n <div class=\"information\" >\r\n <div class=\"document-name fad-portal-subtitle-bold\" >\r\n {{ document.doc?.name }}\r\n </div>\r\n <div class=\"validate\">\r\n \r\n <ng-fad-image-inline \r\n [src]=\"document.approved === false ? images.active.reject : images.inactive.reject\"\r\n (click)=\"toggleRejection(document)\">\r\n </ng-fad-image-inline>\r\n \r\n \r\n <ng-fad-image-inline \r\n [src]=\"document.approved === true ? images.active.approve : images.inactive.approve\"\r\n (click)=\"toggleApproval(document)\">\r\n </ng-fad-image-inline>\r\n </div>\r\n \r\n </div>\r\n <div class=\"actions\">\r\n <div>\r\n <div class=\"fad-portal-subtitle-bold\" (click)=\"seeDocumentFea(document)\">\r\n {{ document.isVisible ? 'Ocultar documento' : 'Ver documento' }}\r\n </div>\r\n <div class=\"fad-portal-subtitle-bold\" (click)=\"downloadDocumentFea(document)\">{{configuration.customization?.moduleCustomization?.legends?.download}}</div>\r\n </div>\r\n <div>\r\n {{ document.doc?.pages }} {{configuration.customization?.moduleCustomization?.legends?.pages}}\r\n </div>\r\n </div>\r\n <div class=\"pdf-viewer\" *ngIf=\"document.isVisible\" [style.height.px]=\"1000\">\r\n <ng-fad-viewer-general-pdf-viewer\r\n [pages]=\"pagesMap.get(document.id!) ?? []\"\r\n (onpagechange)=\"onpagechange($event)\"\r\n (onloadpage)=\"onloadpage($event)\">\r\n \r\n <ng-fad-viewer-pdf-mini-view\r\n miniView\r\n [configuration]=\"miniView\"\r\n [pages]=\"pagesMap.get(document.id!) ?? []\"\r\n [page]=\"page\"\r\n (onpagechange)=\"scrollToPage($event)\">\r\n </ng-fad-viewer-pdf-mini-view>\r\n \r\n </ng-fad-viewer-general-pdf-viewer>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <div class=\"fad-portal-content selector-document\">\r\n <div class=\"document-status-bar\">\r\n \r\n <div *ngIf=\"getApprovedCount() === 0 && getRejectedCount() === 0\" class=\"document-status-message \">\r\n Aprueba los documentos para firmarlos con tu e.firma\r\n </div>\r\n \r\n \r\n <div *ngIf=\"getApprovedCount() > 0 || getRejectedCount() > 0\" class=\"document-status-content\">\r\n <div class=\"approve-all\">\r\n <ng-fad-image-inline \r\n [src]=\"approveAll ? images.active.approve : images.inactive.approve\"\r\n (click)=\"approveAllDocuments()\">\r\n </ng-fad-image-inline>\r\n <span (click)=\"approveAllDocuments()\">Aprobar todos los documentos ({{ documentsApprovalList.length }})</span>\r\n </div>\r\n \r\n \r\n <div class=\"document-counts\">\r\n <span *ngIf=\"getApprovedCount() > 0 && getRejectedCount() === 0\" class=\"fad-portal-informative-bold\">\r\n {{ getApprovedCount() }} documentos aprobados\r\n </span>\r\n <span *ngIf=\"getRejectedCount() > 0 && getApprovedCount() === 0\" class=\"fad-portal-informative-bold\">\r\n {{ getRejectedCount() }} documentos rechazados\r\n </span>\r\n \r\n <ng-container *ngIf=\"getApprovedCount() > 0 && getRejectedCount() > 0\" >\r\n <span class=\"fad-portal-informative-bold\">\r\n {{ getApprovedCount() }} documentos aprobados\r\n </span>\r\n <span class=\"fad-portal-informative-bold\">\r\n {{ getRejectedCount() }} documentos rechazados\r\n </span>\r\n </ng-container>\r\n </div>\r\n \r\n \r\n <button class=\"fad-portal-primary\" (click)=\"emitApprovedDocuments()\">Continuar</button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Utils } from '@fad-producto-portal/fad-common/utils/utils';\r\nimport { Configuration } from '@fad-producto-portal/fad-common/models/core';\r\nimport { IUploadESignatureConfiguration, UploadESignatureComplete } from '../../models';\r\nimport { getUploadESignatureErrorDescription, UPLOAD_E_SIGNATURE_CONFIGURATION_DEFAULT, UploadESignatureErrorCode } from '../../constants';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ResponseError, SharedUtils } from '@fad-producto-portal/ng-fad-shared';\r\nimport { FadService, MifielService, SignatureFeaRequest, SignInternalFeaRequest } from '@fad-producto-portal/ng-fad-services';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { finalize } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ng-fad-signature-fea-upload-e-signature',\r\n templateUrl: './upload-e-signature.component.html',\r\n styleUrls: ['./upload-e-signature.component.scss']\r\n})\r\nexport class UploadESignatureComponent implements OnInit {\r\n @Input() configuration!: IUploadESignatureConfiguration;\r\n @Input() documents: SignInternalFeaRequest[] = [];\r\n @Input() signerId!: string;\r\n @Input() rfc!: string;\r\n @Output() onerror = new EventEmitter<ResponseError>();\r\n @Output() onloader = new EventEmitter<boolean>();\r\n @Output() oncomplete = new EventEmitter<null | UploadESignatureComplete>();\r\n uploadImg!: string;\r\n checkOnImg!: string;\r\n checkOffImg!: string;\r\n fileImg!: string;\r\n formatCerList = ['cer'];\r\n formatKeyList = ['key'];\r\n form!: FormGroup;\r\n passwordInputType = 'password';\r\n documentPluralTitle!: string;\r\n documentSingularTitle!: string;\r\n isValidated = false;\r\n showComponent = true;\r\n\r\n constructor(private hostContext: ElementRef, private fb: FormBuilder,\r\n private fad: FadService, private mifiel: MifielService) {}\r\n\r\n ngOnInit(): void {\r\n this.setCustomizationStyle(this.hostContext.nativeElement);\r\n\r\n this.uploadImg = this.configuration.pathDependencies?.images?.upload || `${this.configuration.pathDependencies?.imageDirectory}upload.svg`;\r\n this.checkOnImg = this.configuration.pathDependencies?.images?.checkOn || `${this.configuration.pathDependencies?.imageDirectory}check-on.svg`;\r\n this.checkOffImg = this.configuration.pathDependencies?.images?.checkOff || `${this.configuration.pathDependencies?.imageDirectory}check-off.svg`;\r\n this.fileImg = this.configuration.pathDependencies?.images?.file || `${this.configuration.pathDependencies?.imageDirectory}file.svg`;\r\n\r\n this.showComponent = this.validateData();\r\n if (this.showComponent) {\r\n this.documentPluralTitle = this.configuration.customization?.moduleCustomization?.legends?.documents?.title?.plural?.replace('#TOTAL_DOCS', this.documents?.length.toString())!; // poner longitud\r\n if (this.documents?.length === 1) {\r\n const status = this.documents[0].approved ? this.configuration.customization?.moduleCustomization?.legends?.documents?.title?.approved! : this.configuration.customization?.moduleCustomization?.legends?.documents?.title?.rejected!;\r\n this.documentSingularTitle = this.configuration.customization?.moduleCustomization?.legends?.documents?.title?.singular?.replace('#STATUS_DOC', status)!; // poner longitud\r\n }\r\n\r\n this.initForm();\r\n }\r\n }\r\n\r\n validateData() {\r\n if(!this.documents || this.documents.length < 1) {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.NO_DOCUMENTS, getUploadESignatureErrorDescription(UploadESignatureErrorCode.NO_DOCUMENTS), 'ng-fad-signature-fea-upload-e-signature'));\r\n return false;\r\n }\r\n\r\n if(!this.signerId) {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.NO_SIGNER_ID, getUploadESignatureErrorDescription(UploadESignatureErrorCode.NO_SIGNER_ID), 'ng-fad-signature-fea-upload-e-signature'));\r\n return false;\r\n }\r\n\r\n if(!this.rfc) {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.NO_RFC, getUploadESignatureErrorDescription(UploadESignatureErrorCode.NO_RFC), 'ng-fad-signature-fea-upload-e-signature'));\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n initForm() {\r\n this.form = this.fb.group({\r\n cer: [null, [Validators.required]],\r\n key: [null, [Validators.required]],\r\n password: [null, [Validators.required]]\r\n });\r\n }\r\n\r\n get cer() {\r\n return this.form.get('cer');\r\n }\r\n\r\n get key() {\r\n return this.form.get('key');\r\n }\r\n\r\n get password() {\r\n return this.form.get('password');\r\n }\r\n\r\n openFilePicker(fileInput: HTMLInputElement) {\r\n fileInput.click();\r\n }\r\n\r\n onFileChange(event: any, type: string) {\r\n const file = event.target.files[0];\r\n if (!file) return;\r\n\r\n if (event.target.files.length > 1) {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.MULTIPLE_FILES, getUploadESignatureErrorDescription(UploadESignatureErrorCode.MULTIPLE_FILES), 'ng-fad-signature-fea-upload-e-signature'));\r\n return;\r\n }\r\n\r\n if (type === 'cer' && !/\\.cer$/.test(file.name)) {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.FORMAT_CER, getUploadESignatureErrorDescription(UploadESignatureErrorCode.FORMAT_CER), 'ng-fad-signature-fea-upload-e-signature'));\r\n return;\r\n }\r\n\r\n if (type === 'key' && !/\\.key$/.test(file.name)) {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.FORMAT_KEY, getUploadESignatureErrorDescription(UploadESignatureErrorCode.FORMAT_KEY), 'ng-fad-signature-fea-upload-e-signature'));\r\n return;\r\n }\r\n\r\n type === 'cer' ? this.cer?.setValue(file) : this.key?.setValue(file);\r\n }\r\n\r\n onfiledropped(files: FileList, type: string) {\r\n const file = files[0];\r\n type === 'cer' ? this.cer?.setValue(file) : this.key?.setValue(file);\r\n }\r\n\r\n onerrorDirective(event: ResponseError, type: string) {\r\n if (event.code === -1) this.onerror.emit(new ResponseError(UploadESignatureErrorCode.MULTIPLE_FILES, getUploadESignatureErrorDescription(UploadESignatureErrorCode.MULTIPLE_FILES), 'ng-fad-signature-fea-upload-e-signature'));\r\n if (event.code === -2 && type === 'cer') this.onerror.emit(new ResponseError(UploadESignatureErrorCode.FORMAT_CER, getUploadESignatureErrorDescription(UploadESignatureErrorCode.FORMAT_CER), 'ng-fad-signature-fea-upload-e-signature'));\r\n if (event.code === -2 && type === 'key') this.onerror.emit(new ResponseError(UploadESignatureErrorCode.FORMAT_KEY, getUploadESignatureErrorDescription(UploadESignatureErrorCode.FORMAT_KEY), 'ng-fad-signature-fea-upload-e-signature'));\r\n }\r\n\r\n changePaswordInputType() {\r\n this.passwordInputType = this.passwordInputType === 'text' ? 'password' : 'text';\r\n }\r\n\r\n savePassword(value: Event) {\r\n const inputElement = value.target as HTMLInputElement;\r\n this.password?.setValue(inputElement.value);\r\n }\r\n\r\n allIsRejected() {\r\n return this.documents.every(doc => doc.approved === false);\r\n }\r\n\r\n async signDocuments() {\r\n let canContinue: boolean | null = true;\r\n\r\n const rejectedDocuments = this.documents.filter((doc) => !doc.approved);\r\n if (rejectedDocuments.length > 0) {\r\n canContinue = await this.rejectDocuments(true);\r\n }\r\n\r\n if (!canContinue) return;\r\n\r\n this.onloader.emit(true);\r\n const cer = await this.getBase64File(this.cer?.value);\r\n this.onloader.emit(false);\r\n if (!cer) return;\r\n\r\n this.onloader.emit(true);\r\n const key = await this.getBase64File(this.key?.value);\r\n this.onloader.emit(false);\r\n if (!key) return;\r\n\r\n const aprrovedDocuments = this.documents.filter((doc) => doc.approved);\r\n\r\n const body: SignatureFeaRequest = {\r\n cer: cer.split(',')[1],\r\n key: key.split(',')[1],\r\n password: this.password?.value,\r\n documents: aprrovedDocuments,\r\n signerId: this.rfc\r\n }\r\n\r\n this.onloader.emit(true);\r\n\r\n this.fad.signFea(body, this.configuration.credentials?.key!, this.configuration.credentials?.iv!, this.configuration.services?.reject!).pipe(\r\n finalize(() => {\r\n this.onloader.emit(false);\r\n })\r\n ).subscribe({\r\n next: (res) => {\r\n if (res.success) {\r\n const certificate = this.mifiel.parseCertificate(body.cer);\r\n const data: UploadESignatureComplete = {\r\n cer: certificate!\r\n }\r\n\r\n this.oncomplete.emit(data);\r\n } else {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.SERVICE,res.error, 'ng-fad-signature-fea-upload-e-signature'));;\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.HTTP, error.error, 'ng-fad-signature-fea-upload-e-signature'));;\r\n },\r\n });\r\n\r\n }\r\n\r\n rejectDocuments(fromSign = false): Promise<boolean | null> {\r\n return new Promise((resolve, reject) => {\r\n const rejectedDocuments = this.documents.filter((doc) => !doc.approved);\r\n\r\n const body: SignatureFeaRequest = {\r\n cer: '',\r\n key: '',\r\n password: '',\r\n documents: rejectedDocuments.map(res => {\r\n return {\r\n id: res.id,\r\n idRequisition: res.idRequisition,\r\n }\r\n }),\r\n signerId: this.signerId\r\n }\r\n\r\n this.onloader.emit(true);\r\n\r\n\r\n this.fad.rejectFea(body, this.configuration.credentials?.key!, this.configuration.credentials?.iv!, this.configuration.services?.reject!).pipe(\r\n finalize(() => {\r\n this.onloader.emit(false);\r\n })\r\n ).subscribe({\r\n next: (res) => {\r\n if (res.success) {\r\n if (!fromSign) this.oncomplete.emit(null);\r\n resolve(true);\r\n } else {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.SERVICE,res.error, 'ng-fad-signature-fea-upload-e-signature'));\r\n reject(null);\r\n }\r\n },\r\n error: (error: HttpErrorResponse) => {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.HTTP, error.error, 'ng-fad-signature-fea-upload-e-signature'));\r\n reject(null);\r\n },\r\n });\r\n })\r\n }\r\n\r\n async onRejectDocument() {\r\n await this.rejectDocuments();\r\n }\r\n\r\n async getBase64File(file: File) {\r\n const data = await SharedUtils.fileToBase64(file).then(base64 => base64).catch(error => null);\r\n if (data) return data as string;\r\n else {\r\n this.onerror.emit(new ResponseError(UploadESignatureErrorCode.ERROR_BASE_64, getUploadESignatureErrorDescription(UploadESignatureErrorCode.ERROR_BASE_64), 'ng-fad-signature-fea-upload-e-signature'));\r\n return null;\r\n }\r\n }\r\n\r\n setCustomizationStyle(targetElement = document.documentElement): void {\r\n this.configuration = Utils.mergeConfiguration(new Configuration(), UPLOAD_E_SIGNATURE_CONFIGURATION_DEFAULT, this.configuration);\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-documents-background-color', this.configuration.customization?.moduleCustomization?.style?.documents?.backgroundColor, { targetElement });\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-documents-border-radius', this.configuration.customization?.moduleCustomization?.style?.documents?.borderRadius, { targetElement });\r\n\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-upload-background-color', this.configuration.customization?.moduleCustomization?.style?.upload?.backgroundColor, { targetElement });\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-upload-border', this.configuration.customization?.moduleCustomization?.style?.upload?.border, { targetElement });\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-upload-border-radius', this.configuration.customization?.moduleCustomization?.style?.upload?.borderRadius, { targetElement });\r\n\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-upload-button-background-color', this.configuration.customization?.moduleCustomization?.style?.upload?.button?.backgroundColor, { targetElement });\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-upload-button-border-radius', this.configuration.customization?.moduleCustomization?.style?.upload?.button?.borderRadius, { targetElement });\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-upload-button-hover', this.configuration.customization?.moduleCustomization?.style?.upload?.button?.hover, { targetElement });\r\n\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-file-border-radius', this.configuration.customization?.moduleCustomization?.style?.file?.borderRadius, { targetElement });\r\n Utils.setVariableCss('--fad-signature-fea-e-signature-file-img-background-color', this.configuration.customization?.moduleCustomization?.style?.file?.img?.backgroundColor, { targetElement });\r\n }\r\n}\r\n","<ng-container *ngIf=\"showComponent\">\r\n <div>\r\n <div *ngIf=\"documents.length > 1\" class=\"fad-portal-title-bold\">{{ documentPluralTitle }}</div>\r\n <div *ngIf=\"documents.length === 1\" class=\"fad-portal-title-bold\">{{ documentSingularTitle }}</div>\r\n\r\n <div class=\"container-document fad-portal-content\">\r\n <div *ngFor=\"let i of documents\" class=\"document\">\r\n <div>{{ i.doc.name }}</div>\r\n <div class=\"status fad-portal-content-bold\">{{ i.approved ? configuration.customization?.moduleCustomization?.legends?.documents?.status?.approved : configuration.customization?.moduleCustomization?.legends?.documents?.status?.rejected }}</div>\r\n <div class=\"pages\">{{ i.doc.pages }} {{ i.doc.pages > 1 ? configuration.customization?.moduleCustomization?.legends?.documents?.pages?.plural : configuration.customization?.moduleCustomization?.legends?.documents?.pages?.singular }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!allIsRejected()\">\r\n <div class=\"fad-portal-title-bold\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.title }}</div>\r\n\r\n <div>\r\n <div class=\"container-instruction-file\">\r\n <div class=\"fad-portal-content\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.cer?.label }}</div>\r\n <div *ngIf=\"cer?.value\" class=\"fad-portal-content select-file\" (click)=\"openFilePicker(fileCerInput)\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.upload }}</div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!cer?.value\"\r\n class=\"container-upload\"\r\n (click)=\"openFilePicker(fileCerInput)\"\r\n dragDropDocument\r\n [formatList]=\"formatCerList\"\r\n [acceptMultipleFiles]=\"false\"\r\n (onfiledropped)=\"onfiledropped($event, 'cer')\"\r\n (onerror)=\"onerrorDirective($event, 'cer')\">\r\n <div class=\"fad-portal-content instruction\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.cer?.instruction }}</div>\r\n <div class=\"fad-portal-content-bold upload-btn\">\r\n <ng-fad-image-inline [src]=\"uploadImg\"></ng-fad-image-inline>\r\n <span>{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.cer?.upload }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"cer?.value\" class=\"container-file\">\r\n <div class=\"document-img\">\r\n <img [src]=\"fileImg\" alt=\"\">\r\n </div>\r\n <div class=\"fad-portal-content\">{{ cer?.value.name }}</div>\r\n </div>\r\n\r\n <input type=\"file\" accept=\".cer\" #fileCerInput style=\"display: none\" (change)=\"onFileChange($event, 'cer')\">\r\n </div>\r\n\r\n <div>\r\n <div class=\"container-instruction-file\">\r\n <div class=\"fad-portal-content\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.key?.label }}</div>\r\n <div *ngIf=\"key?.value\" class=\"fad-portal-content select-file\" (click)=\"openFilePicker(fileKeyInput)\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.upload }}</div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!key?.value\"\r\n class=\"container-upload\"\r\n (click)=\"openFilePicker(fileKeyInput)\"\r\n dragDropDocument\r\n [formatList]=\"formatKeyList\"\r\n [acceptMultipleFiles]=\"false\"\r\n (onfiledropped)=\"onfiledropped($event, 'key')\"\r\n (onerror)=\"onerrorDirective($event, 'key')\">\r\n\r\n <div class=\"fad-portal-content instruction\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.key?.instruction }}</div>\r\n <div class=\"fad-portal-content-bold upload-btn\">\r\n <ng-fad-image-inline [src]=\"uploadImg\"></ng-fad-image-inline>\r\n <span>{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.key?.upload }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"key?.value\" class=\"container-file\">\r\n <div class=\"document-img\">\r\n <img [src]=\"fileImg\" alt=\"\">\r\n </div>\r\n <div class=\"fad-portal-content\">{{ key?.value.name }}</div>\r\n </div>\r\n\r\n <input type=\"file\" accept=\".key\" #fileKeyInput style=\"display: none\" (change)=\"onFileChange($event, 'key')\">\r\n </div>\r\n\r\n <div class=\"fad-portal-container-input\">\r\n <label class=\"fad-portal-content\" for=\"\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.password?.label }}</label>\r\n <div class=\"input-password\">\r\n <input [type]=\"passwordInputType\" (input)=\"savePassword($event)\">\r\n <div class=\"fad-portal-content-bold password-show\">\r\n <div *ngIf=\"passwordInputType === 'text'\" (click)=\"changePaswordInputType()\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.password?.hide }}</div>\r\n <div *ngIf=\"passwordInputType === 'password'\" (click)=\"changePaswordInputType()\">{{ configuration.customization?.moduleCustomization?.legends?.eSignature?.password?.show }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n <div></div>\r\n\r\n <div class=\"fad-portal-content container-confirm\">\r\n <div *ngIf=\"!allIsRejected()\" (click)=\"isValidated = !isValidated\">\r\n <div>\r\n <ng-fad-image-inline *ngIf=\"isValidated\" [src]=\"checkOnImg\"></ng-fad-image-inline>\r\n <ng-fad-image-inline *ngIf=\"!isValidated\" [src]=\"checkOffImg\"></ng-fad-image-inline>\r\n </div>\r\n <div *ngIf=\"documents.length === 1\">{{ configuration.customization?.moduleCustomization?.legends?.sign?.validate?.singular }}</div>\r\n <div *ngIf=\"documents.length > 1\">{{ configuration.customization?.moduleCustomization?.legends?.sign?.validate?.plural }}</div>\r\n </div>\r\n\r\n <div></div>\r\n\r\n <div class=\"action\">\r\n <button type=\"button\" *ngIf=\"documents.length === 1 && !allIsRejected()\" class=\"fad-portal-primary\" [disabled]=\"!form.valid || !isValidated\" (click)=\"signDocuments()\">{{ configuration.customization?.moduleCustomization?.legends?.sign?.button?.sign?.singular }}</button>\r\n <button type=\"button\" *ngIf=\"documents.length > 1 && !allIsRejected()\" class=\"fad-portal-primary\" [disabled]=\"!form.valid || !isValidated\" (click)=\"signDocuments()\">{{ configuration.customization?.moduleCustomization?.legends?.sign?.button?.sign?.plural }}</button>\r\n <button type=\"button\" *ngIf=\"documents.length === 1 && allIsRejected()\" class=\"fad-portal-primary\" (click)=\"onRejectDocument()\">{{ configuration.customization?.moduleCustomization?.legends?.sign?.button?.reject?.singular }}</button>\r\n <button type=\"button\" *ngIf=\"documents.length > 1 && allIsRejected()\" class=\"fad-portal-primary\" (click)=\"onRejectDocument()\">{{ configuration.customization?.moduleCustomization?.legends?.sign?.button?.reject?.plural }}</button>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { GENERIC_ERROR_FEA_CONFIGURATION_DEFAULT } from '../../constants';\nimport { IGenericErrorFeaConfiguration } from '../../models';\nimport { Utils } from '@fad-producto-portal/fad-common/utils/utils';\nimport { Configuration } from '@fad-producto-portal/fad-common/models/core';\n\n@Component({\n selector: 'ng-fad-signature-fea-generic-error-fea',\n templateUrl: './generic-error-fea.component.html',\n styleUrls: ['./generic-error-fea.component.scss']\n})\nexport class GenericErrorFeaComponent implements OnInit {\n @Input() configuration!: IGenericErrorFeaConfiguration;\n @Input() title!: string;\n @Input() instruction!: string;\n errorIgm!: string;\n\n ngOnInit(): void {\n this.setCustomizationStyle();\n this.errorIgm = this.configuration.pathDependencies?.images?.error || `${this.configuration.pathDependencies?.imageDirectory}error.svg`;\n }\n\n setCustomizationStyle(targetElement = document.documentElement): void {\n this.configuration = Utils.mergeConfiguration(new Configuration(), GENERIC_ERROR_FEA_CONFIGURATION_DEFAULT, this.configuration);\n }\n}\n","<ng-fad-image-inline [src]=\"errorIgm\"></ng-fad-image-inline>\n<div class=\"fad-portal-title-bold\">{{ title ? title : configuration.customization?.moduleCustomization?.legends?.title }}</div>\n<div class=\"fad-portal-content\">{{ instruction ? instruction : configuration.customization?.moduleCustomization?.legends?.instruction }}</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IValidateSignatureConfiguration } from '../../models';\nimport { Utils } from '@fad-producto-portal/fad-common/utils/utils';\nimport { Configuration } from '@fad-producto-portal/fad-common/models/core';\nimport { getValidateSignatureErrorDescription, VALIDATE_SIGNATURE_CONFIGURATION_DEFAULT, ValidateSignatureErrorCode } from '../../constants';\nimport { FadService } from '@fad-producto-portal/ng-fad-services';\nimport { finalize } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ResponseError } from '@fad-producto-portal/ng-fad-shared';\n\n@Component({\n selector: 'ng-fad-signature-fea-validate-signature',\n templateUrl: './validate-signature.component.html',\n styleUrls: ['./validate-signature.component.scss']\n})\nexport class ValidateSignatureComponent {\n @Input() configuration!: IValidateSignatureConfiguration;\n @Input() signerId!: string;\n @Input() requisitionId!: string;\n @Output() onloader = new EventEmitter<boolean>();\n @Output() onerror = new EventEmitter<ResponseError>();\n @Output() oncomplete = new EventEmitter<string>();\n @Output() onsigned = new EventEmitter<string>();\n\n constructor(private fad: FadService) { }\n\n ngOnInit(): void {\n this.setCustomizationStyle();\n const canContinue = this.validateData();\n if (canContinue) this.getSignerStatusFea();\n }\n\n validateData() {\n if (!this.requisitionId) {\n this.onerror.emit(new ResponseError(ValidateSignatureErrorCode.NO_REQUISITION_ID, getValidateSignatureErrorDescription(ValidateSignatureErrorCode.NO_REQUISITION_ID), 'ng-fad-signature-fea-validate-signature'));\n return false;\n }\n\n if (!this.signerId) {\n this.onerror.emit(new ResponseError(ValidateSignatureErrorCode.NO_SIGNER_ID, getValidateSignatureErrorDescription(ValidateSignatureErrorCode.NO_SIGNER_ID), 'ng-fad-signature-fea-validate-signature'));\n return false;\n }\n\n return true;\n }\n\n getSignerStatusFea() {\n this.onloader.emit(true);\n this.fad.getSignerStatusFea(this.requisitionId, this.signerId, this.configuration.services?.signerStatusFea)\n .pipe(finalize(() => this.onloader.emit(false)))\n .subscribe({\n next: (res) => {\n if (res.success) {\n res.data === 'COMPLETED' ? this.onsigned.emit(res.data) : this.oncomplete.emit(res.data);\n } else {\n this.onerror.emit(new ResponseError(ValidateSignatureErrorCode.SERVICE, res.error, 'ng-fad-signature-fea-validate-signature'));\n }\n },\n error: (error: HttpErrorResponse) => {\n this.onerror.emit(new ResponseError(ValidateSignatureErrorCode.HTTP, error.error, 'ng-fad-signature-fea-validate-signature'));\n }\n })\n }\n\n setCustomizationStyle(targetElement = document.documentElement): void {\n this.configuration = Utils.mergeConfiguration(new Configuration(), VALIDATE_SIGNATURE_CONFIGURATION_DEFAULT, this.configuration);\n }\n}\n","","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgFadSharedModule } from '@fad-producto-portal/ng-fad-shared';\r\nimport { NgFadImageInlineModule } from '@fad-producto/ng-fad-image-inline';\r\nimport { NgFadViewerModule } from '@fad-producto-portal/ng-fad-viewer';\r\n\r\n// components\r\nimport { ValidateRfcComponent } from './components/validate-rfc/validate-rfc.component';\r\nimport { DocumentApprovalListComponent } from './components/document-approval-list/document-approval-list.component';\r\nimport { UploadESignatureComponent } from './components/upload-e-signature/upload-e-signature.component';\r\nimport { GenericErrorFeaComponent } from './components/generic-error-fea/generic-error-fea.component';\r\nimport { ValidateSignatureComponent } from './components/validate-signature/validate-signature.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ValidateRfcComponent,\r\n DocumentApprovalListComponent,\r\n UploadESignatureComponent,\r\n GenericErrorFeaComponent,\r\n ValidateSignatureComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n NgFadSharedModule,\r\n NgFadImageInlineModule,\r\n NgFadViewerModule,\r\n ],\r\n exports: [\r\n ValidateRfcComponent,\r\n DocumentApprovalListComponent,\r\n UploadESignatureComponent,\r\n GenericErrorFeaComponent,\r\n ValidateSignatureComponent\r\n ]\r\n})\r\nexport class NgFadSignatureFeaModule { }\r\n","/*\r\n * Public API Surface of ng-fad-signature-fea\r\n */\r\n\r\nexport * from './lib/ng-fad-signature-fea.module';\r\n\r\n// constants\r\nexport * from './lib/constants/index';\r\n\r\n// models\r\nexport * from './lib/models/index';\r\n\r\n// components\r\nexport * from './lib/components/validate-rfc/validate-rfc.component';\r\nexport * from './lib/components/document-approval-list/document-approval-list.component';\r\nexport * from './lib/components/upload-e-signature/upload-e-signature.component';\r\nexport * from './lib/components/generic-error-fea/generic-error-fea.component';\r\nexport *from './lib/components/validate-signature/validate-signature.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i1","i2","GeneralPdfViewerComponentModule","i5"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
+
import { DocumentApprovalFea, IDocumentApprovalListConfiguration } from '../../models';
|
|
3
|
+
import { FadService, RequisitionFeaData } from '@fad-producto-portal/ng-fad-services';
|
|
4
|
+
import { GeneralPdfViewerComponent as GeneralPdfViewerComponentModule, IPdfMiniViewConfiguration } from '@fad-producto-portal/ng-fad-viewer';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import { NgFadPdfReaderService, ResponseSuccess } from '@fad-producto/ng-fad-pdf-reader';
|
|
7
|
+
import { ResponseError } from '@fad-producto-portal/ng-fad-shared';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class DocumentApprovalListComponent {
|
|
10
|
+
private hostContext;
|
|
11
|
+
private fad;
|
|
12
|
+
private cdr;
|
|
13
|
+
private pdfService;
|
|
14
|
+
configuration: IDocumentApprovalListConfiguration;
|
|
15
|
+
rfc: string;
|
|
16
|
+
onloader: EventEmitter<boolean>;
|
|
17
|
+
onevent: EventEmitter<DocumentApprovalFea[]>;
|
|
18
|
+
onerror: EventEmitter<ResponseError>;
|
|
19
|
+
pagesMap: Map<string, ResponseSuccess[]>;
|
|
20
|
+
requisitionsFea: RequisitionFeaData[];
|
|
21
|
+
documentsApprovalList: DocumentApprovalFea[];
|
|
22
|
+
approveAll: boolean;
|
|
23
|
+
images: {
|
|
24
|
+
inactive: {
|
|
25
|
+
reject: string;
|
|
26
|
+
approve: string;
|
|
27
|
+
};
|
|
28
|
+
active: {
|
|
29
|
+
reject: string;
|
|
30
|
+
approve: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
generalPdfViewerComponent: GeneralPdfViewerComponentModule;
|
|
34
|
+
pdfSrc: string;
|
|
35
|
+
pdfError: Subscription;
|
|
36
|
+
pdfLibrary: Subscription;
|
|
37
|
+
pages: ResponseSuccess[];
|
|
38
|
+
page: number;
|
|
39
|
+
height: string;
|
|
40
|
+
miniView: IPdfMiniViewConfiguration;
|
|
41
|
+
constructor(hostContext: ElementRef, fad: FadService, cdr: ChangeDetectorRef, pdfService: NgFadPdfReaderService);
|
|
42
|
+
ngOnInit(): void;
|
|
43
|
+
getRequisitionsRfc(): void;
|
|
44
|
+
toggleApproval(document: DocumentApprovalFea): void;
|
|
45
|
+
toggleRejection(document: DocumentApprovalFea): void;
|
|
46
|
+
updateApproveAllState(): void;
|
|
47
|
+
approveAllDocuments(): void;
|
|
48
|
+
getApprovedCount(): number;
|
|
49
|
+
getRejectedCount(): number;
|
|
50
|
+
emitApprovedDocuments(): void;
|
|
51
|
+
seeDocumentFea(document: DocumentApprovalFea): void;
|
|
52
|
+
downloadDocumentFea(document: DocumentApprovalFea): void;
|
|
53
|
+
getBase64(blob: Blob, document: DocumentApprovalFea): Promise<void>;
|
|
54
|
+
initializePdf(pdf: string, document: DocumentApprovalFea): void;
|
|
55
|
+
getPages(document: DocumentApprovalFea): void;
|
|
56
|
+
onpagechange(page: number): void;
|
|
57
|
+
scrollToPage(page: number): void;
|
|
58
|
+
onloadpage(data: ResponseSuccess): void;
|
|
59
|
+
setCustomizationStyle(targetElement?: HTMLElement): void;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DocumentApprovalListComponent, never>;
|
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DocumentApprovalListComponent, "ng-fad-signature-fea-document-approval-list", never, { "configuration": { "alias": "configuration"; "required": false; }; "rfc": { "alias": "rfc"; "required": false; }; }, { "onloader": "onloader"; "onevent": "onevent"; "onerror": "onerror"; }, never, never, false, never>;
|
|
62
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { IGenericErrorFeaConfiguration } from '../../models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class GenericErrorFeaComponent implements OnInit {
|
|
5
|
+
configuration: IGenericErrorFeaConfiguration;
|
|
6
|
+
title: string;
|
|
7
|
+
instruction: string;
|
|
8
|
+
errorIgm: string;
|
|
9
|
+
ngOnInit(): void;
|
|
10
|
+
setCustomizationStyle(targetElement?: HTMLElement): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GenericErrorFeaComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GenericErrorFeaComponent, "ng-fad-signature-fea-generic-error-fea", never, { "configuration": { "alias": "configuration"; "required": false; }; "title": { "alias": "title"; "required": false; }; "instruction": { "alias": "instruction"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { IUploadESignatureConfiguration, UploadESignatureComplete } from '../../models';
|
|
3
|
+
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
4
|
+
import { ResponseError } from '@fad-producto-portal/ng-fad-shared';
|
|
5
|
+
import { FadService, MifielService, SignInternalFeaRequest } from '@fad-producto-portal/ng-fad-services';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class UploadESignatureComponent implements OnInit {
|
|
8
|
+
private hostContext;
|
|
9
|
+
private fb;
|
|
10
|
+
private fad;
|
|
11
|
+
private mifiel;
|
|
12
|
+
configuration: IUploadESignatureConfiguration;
|
|
13
|
+
documents: SignInternalFeaRequest[];
|
|
14
|
+
signerId: string;
|
|
15
|
+
rfc: string;
|
|
16
|
+
onerror: EventEmitter<ResponseError>;
|
|
17
|
+
onloader: EventEmitter<boolean>;
|
|
18
|
+
oncomplete: EventEmitter<UploadESignatureComplete | null>;
|
|
19
|
+
uploadImg: string;
|
|
20
|
+
checkOnImg: string;
|
|
21
|
+
checkOffImg: string;
|
|
22
|
+
fileImg: string;
|
|
23
|
+
formatCerList: string[];
|
|
24
|
+
formatKeyList: string[];
|
|
25
|
+
form: FormGroup;
|
|
26
|
+
passwordInputType: string;
|
|
27
|
+
documentPluralTitle: string;
|
|
28
|
+
documentSingularTitle: string;
|
|
29
|
+
isValidated: boolean;
|
|
30
|
+
showComponent: boolean;
|
|
31
|
+
constructor(hostContext: ElementRef, fb: FormBuilder, fad: FadService, mifiel: MifielService);
|
|
32
|
+
ngOnInit(): void;
|
|
33
|
+
validateData(): boolean;
|
|
34
|
+
initForm(): void;
|
|
35
|
+
get cer(): import("@angular/forms").AbstractControl<any, any> | null;
|
|
36
|
+
get key(): import("@angular/forms").AbstractControl<any, any> | null;
|
|
37
|
+
get password(): import("@angular/forms").AbstractControl<any, any> | null;
|
|
38
|
+
openFilePicker(fileInput: HTMLInputElement): void;
|
|
39
|
+
onFileChange(event: any, type: string): void;
|
|
40
|
+
onfiledropped(files: FileList, type: string): void;
|
|
41
|
+
onerrorDirective(event: ResponseError, type: string): void;
|
|
42
|
+
changePaswordInputType(): void;
|
|
43
|
+
savePassword(value: Event): void;
|
|
44
|
+
allIsRejected(): boolean;
|
|
45
|
+
signDocuments(): Promise<void>;
|
|
46
|
+
rejectDocuments(fromSign?: boolean): Promise<boolean | null>;
|
|
47
|
+
onRejectDocument(): Promise<void>;
|
|
48
|
+
getBase64File(file: File): Promise<string | null>;
|
|
49
|
+
setCustomizationStyle(targetElement?: HTMLElement): void;
|
|
50
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UploadESignatureComponent, never>;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UploadESignatureComponent, "ng-fad-signature-fea-upload-e-signature", never, { "configuration": { "alias": "configuration"; "required": false; }; "documents": { "alias": "documents"; "required": false; }; "signerId": { "alias": "signerId"; "required": false; }; "rfc": { "alias": "rfc"; "required": false; }; }, { "onerror": "onerror"; "onloader": "onloader"; "oncomplete": "oncomplete"; }, never, never, false, never>;
|
|
52
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
|
+
import { IValidateRfcConfiguration } from '../../models';
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
|
+
import { FadService, ResponseData, ValidateRFC } from '@fad-producto-portal/ng-fad-services';
|
|
6
|
+
import { ResponseError } from '@fad-producto-portal/ng-fad-shared';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class ValidateRfcComponent implements OnInit {
|
|
9
|
+
private fb;
|
|
10
|
+
private hostContext;
|
|
11
|
+
private route;
|
|
12
|
+
private fadService;
|
|
13
|
+
configuration: IValidateRfcConfiguration;
|
|
14
|
+
onerror: EventEmitter<ResponseError>;
|
|
15
|
+
onevent: EventEmitter<ResponseData<ValidateRFC>>;
|
|
16
|
+
validationForm: FormGroup;
|
|
17
|
+
showComponent: boolean;
|
|
18
|
+
requisitionId: string;
|
|
19
|
+
signerId: string;
|
|
20
|
+
constructor(fb: FormBuilder, hostContext: ElementRef, route: ActivatedRoute, fadService: FadService);
|
|
21
|
+
ngOnInit(): void;
|
|
22
|
+
initializeForm(): void;
|
|
23
|
+
onSubmit(): void;
|
|
24
|
+
setCustomizationStyle(targetElement?: HTMLElement): void;
|
|
25
|
+
validateRFC(): void;
|
|
26
|
+
get codeControl(): import("@angular/forms").AbstractControl<any, any> | null;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ValidateRfcComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ValidateRfcComponent, "ng-fad-signature-fea-validate-rfc", never, { "configuration": { "alias": "configuration"; "required": false; }; }, { "onerror": "onerror"; "onevent": "onevent"; }, never, never, false, never>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { IValidateSignatureConfiguration } from '../../models';
|
|
3
|
+
import { FadService } from '@fad-producto-portal/ng-fad-services';
|
|
4
|
+
import { ResponseError } from '@fad-producto-portal/ng-fad-shared';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ValidateSignatureComponent {
|
|
7
|
+
private fad;
|
|
8
|
+
configuration: IValidateSignatureConfiguration;
|
|
9
|
+
signerId: string;
|
|
10
|
+
requisitionId: string;
|
|
11
|
+
onloader: EventEmitter<boolean>;
|
|
12
|
+
onerror: EventEmitter<ResponseError>;
|
|
13
|
+
oncomplete: EventEmitter<string>;
|
|
14
|
+
onsigned: EventEmitter<string>;
|
|
15
|
+
constructor(fad: FadService);
|
|
16
|
+
ngOnInit(): void;
|
|
17
|
+
validateData(): boolean;
|
|
18
|
+
getSignerStatusFea(): void;
|
|
19
|
+
setCustomizationStyle(targetElement?: HTMLElement): void;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ValidateSignatureComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ValidateSignatureComponent, "ng-fad-signature-fea-validate-signature", never, { "configuration": { "alias": "configuration"; "required": false; }; "signerId": { "alias": "signerId"; "required": false; }; "requisitionId": { "alias": "requisitionId"; "required": false; }; }, { "onloader": "onloader"; "onerror": "onerror"; "oncomplete": "oncomplete"; "onsigned": "onsigned"; }, never, never, false, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './document-approval-lis-tconfiguration.const';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './configuration-generic-error-fea.const';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './configuration-upload-e-signature.const';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './configuration-validate-rfc.const';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './validate-signature.const';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { UploadESignatureErrorCode } from "./upload-e-signature-error-code";
|
|
2
|
+
export declare const getUploadESignatureErrorDescription: (code: UploadESignatureErrorCode) => "Service error" | "HTTP error" | "Unknown error" | "Los documentos a procesar son requeridos" | "El formato del archivo seleccionado no es .cer" | "El formato del archivo seleccionado no es .key" | "Solo puedes seleccionar un archivo" | "Error al convertir el archivo a base 64" | "El ID del firmante es requerido" | "El RFC del firmante es requerido";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { ValidateSignatureErrorCode } from "./validate-signature-error-code";
|
|
2
|
+
export declare const getValidateSignatureErrorDescription: (code: ValidateSignatureErrorCode) => "Service error" | "HTTP error" | "Unknown error" | "Requisition ID is required" | "Signer ID is required";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './document-approval-fea.interface';
|