@votodigital-onpeui/react 0.1.59 → 0.1.61
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/dist/{chunk-UZ6PCYO3.mjs → chunk-42FKZQSB.mjs} +3 -3
- package/dist/{chunk-UZ6PCYO3.mjs.map → chunk-42FKZQSB.mjs.map} +1 -1
- package/dist/{chunk-LHUNVLPX.mjs → chunk-O4VBKKND.mjs} +4 -4
- package/dist/{chunk-LHUNVLPX.mjs.map → chunk-O4VBKKND.mjs.map} +1 -1
- package/dist/{chunk-FMHMRILU.mjs → chunk-QD5KK3V5.mjs} +3 -3
- package/dist/{chunk-FMHMRILU.mjs.map → chunk-QD5KK3V5.mjs.map} +1 -1
- package/dist/{chunk-DTIU6Q2O.mjs → chunk-SAJUQPOO.mjs} +7 -3
- package/dist/chunk-SAJUQPOO.mjs.map +1 -0
- package/dist/components.js +5 -1
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +3 -3
- package/dist/hooks.js +6 -2
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.mjs +2 -2
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/modal.js +5 -1
- package/dist/modal.js.map +1 -1
- package/dist/modal.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-DTIU6Q2O.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IconChrome, IconSafari, IconEdge, FaceBookIcon, XIcon, TikTokIcon, InstagramIcon, YoutubeIcon, IconWarning, IconChromeColor, IconSafariColor, IconEdgeColor, IconWindow, IconAndroid, IconApple, IconWarningNotRecommended } from './chunk-WMTOTUKK.mjs';
|
|
2
|
-
import { Modal } from './chunk-
|
|
2
|
+
import { Modal } from './chunk-SAJUQPOO.mjs';
|
|
3
3
|
import { IconCloseRadius } from './chunk-J4MV4J6H.mjs';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { useState } from 'react';
|
|
@@ -592,5 +592,5 @@ var ModalNfc = ({
|
|
|
592
592
|
};
|
|
593
593
|
|
|
594
594
|
export { BrowserRecommended, Footer, ModalBrowserIncompatible, ModalDnieVersions, ModalNfc, ModalSystemIncompatible, NotRecommended, Overlay, Show };
|
|
595
|
-
//# sourceMappingURL=chunk-
|
|
596
|
-
//# sourceMappingURL=chunk-
|
|
595
|
+
//# sourceMappingURL=chunk-42FKZQSB.mjs.map
|
|
596
|
+
//# sourceMappingURL=chunk-42FKZQSB.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/BrowserRecommended/BrowserRecommended.tsx","../src/components/Footer/Footer.tsx","../src/components/Overlay/Overlay.tsx","../src/components/Show/Show.tsx","../src/components/ErrorHandling/ModalBrowserIncompatible/ModalBrowserIncompatible.tsx","../src/components/ErrorHandling/ModalSystemIncompatible/ModalSystemIncompatible.tsx","../src/components/ErrorHandling/NotRecommended/NotRecommended.tsx","../src/components/Feedback/ModalDnieVersions/ModalDnieVersions.tsx","../src/components/Feedback/ModalNfc/ModalNfc.tsx"],"names":["jsxs","jsx","Fragment"],"mappings":"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","file":"chunk-UZ6PCYO3.mjs","sourcesContent":["import { IconChrome } from \"../../icons/Browsers/IconChrome\";\nimport { IconSafari } from \"../../icons/Browsers/IconSafari\";\nimport { IconEdge } from \"../../icons/Browsers/IconEdge\";\n\nexport const BrowserRecommended = () => {\n return (\n <div className=\"flex flex-col lg:flex-row lg:py-2 items-center justify-center gap-6 py-3 pb-6 text-xs text-center text-onpe-blue bg-onpe-skyblue-light/15\">\n <p>Navegadores recomendados:</p>\n <ul className=\"flex gap-6 lg:gap-8\">\n <li className=\"flex items-center gap-2\">\n <IconChrome aria-hidden=\"true\" />\n <span className=\"sr-only\">Google Chrome</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Google Chrome\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconSafari aria-hidden=\"true\" />\n <span className=\"sr-only\">Safari</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Safari\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconEdge aria-hidden=\"true\" />\n <span className=\"sr-only\">Microsoft Edge</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Microsoft Edge\n </p>\n </li>\n </ul>\n </div>\n );\n};\n\nexport default BrowserRecommended;\n","import { HTMLAttributes, ReactNode } from \"react\";\nimport { BrowserRecommended } from \"../BrowserRecommended/BrowserRecommended\";\nimport { FaceBookIcon } from \"../../icons/Redes/FaceBookIcon\";\nimport { XIcon } from \"../../icons/Redes/XIcon\";\nimport { TikTokIcon } from \"../../icons/Redes/TikTokIcon\";\nimport { YoutubeIcon } from \"../../icons/Redes/YoutubeIcon\";\nimport { InstagramIcon } from \"../../icons/Redes/InstagramIcon\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n showBrowserInfo?: boolean;\n showContactInfo?: boolean;\n children?: ReactNode;\n isDevelopment?: boolean;\n showFooterContent?: boolean;\n}\n\nexport const Footer = ({\n showBrowserInfo = true,\n showContactInfo = true,\n children,\n showFooterContent = true,\n isDevelopment = true,\n ...props\n}: FooterProps) => {\n return (\n <footer {...props} tabIndex={0} aria-label=\"\">\n {showFooterContent && (\n <>\n {children && children}\n\n {showBrowserInfo && <BrowserRecommended />}\n {showContactInfo && (\n <div className=\"relative z-10 flex w-full min-h-[100px] bg-onpe-blue\">\n <div className=\"flex justify-between items-start w-full flex-col gap-6 mx-auto py-14 px-4 max-w-[1460px] md:py-5 md:px-4 lg:flex-row lg:items-center\">\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Oficina central</span>\n <span aria-hidden=\"true\">Oficina central:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\" lang=\"es-PE\">\n Dirección: jiroon Washington 1894, Cercado de Lima\n </span>\n <span aria-hidden=\"true\">\n Jr. Washington 1894, Cercado de Lima\n </span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Horario de atención: Lunes a viernes de 8:30 a. m. a 5:00\n p. m.\n </span>\n <span aria-hidden=\"true\">\n Lunes a viernes de 8:30 a. m. a 5:00 p. m.\n </span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Contáctanos</span>\n <span aria-hidden=\"true\">Contáctanos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Correo electrónico, informes@onpe punto goob punto pe,\n </span>\n <span aria-hidden=\"true\">informes@onpe.gob.pe</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Número telefónico, (01)4170630,\n </span>\n <span aria-hidden=\"true\">(01)4170630</span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">\n Síguenos en nuestras redes sociales\n </span>\n <span aria-hidden=\"true\">Síguenos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white gap-4\">\n <a\n href=\"https://www.facebook.com/ONPEoficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Facebook de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <FaceBookIcon />\n </span>\n </a>\n <a\n href=\"https://x.com/ONPE_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"X de ONPE (antes Twitter),\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <XIcon />\n </span>\n </a>\n <a\n href=\"https://www.tiktok.com/@onpe_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"TikTok de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <TikTokIcon />\n </span>\n </a>\n <a\n href=\"https://www.instagram.com/ONPE_oficial/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Instagram de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <InstagramIcon />\n </span>\n </a>\n <a\n href=\"https://www.youtube.com/@onpeprensa\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"YouTube de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <YoutubeIcon />\n </span>\n </a>\n </p>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n\n {isDevelopment && (\n <div className=\"h-[93px] w-full text-center flex items-center justify-center bg-onpe-yellow-light/75 fixed z-10 right-0 bottom-0 lg:h-[46px]\">\n <p className=\"py-2 px-2 text-2xl text-onpe-blue font-[Consolas,monospace] font-black\">\n Versión en Desarrollo - No Oficial\n </p>\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;\n","type OverlayColor =\n | \"blue\"\n | \"skyblue\"\n | \"skyblue-light\"\n | \"yellow\"\n | \"light-skyblue\"\n | \"gray\"\n | \"gray-light\"\n | \"gray-extra-light\"\n | \"red\"\n | \"dark-gray\"\n | \"green\"\n | \"yellow-light\"\n | \"primary\";\n\nexport interface OverlayProps {\n show?: boolean;\n onClick?: () => void;\n color?: OverlayColor;\n}\n\nconst colorClasses: Record<OverlayColor, string> = {\n blue: \"bg-onpe-blue/80\",\n skyblue: \"bg-onpe-skyblue/80\",\n \"skyblue-light\": \"bg-onpe-skyblue-light/80\",\n yellow: \"bg-onpe-yellow/80\",\n \"light-skyblue\": \"bg-onpe-light-skyblue/80\",\n gray: \"bg-onpe-gray/80\",\n \"gray-light\": \"bg-onpe-gray-light/80\",\n \"gray-extra-light\": \"bg-onpe-gray-extra-light/80\",\n red: \"bg-onpe-red/80\",\n \"dark-gray\": \"bg-onpe-dark-gray/80\",\n green: \"bg-onpe-green/80\",\n \"yellow-light\": \"bg-onpe-yellow-light/80\",\n primary: \"bg-onpe-blue/80\",\n};\n\nexport const Overlay = ({ show, onClick, color = \"blue\" }: OverlayProps) => {\n return (\n <div\n onClick={onClick}\n className={[\n \"absolute inset-0 w-full h-screen z-10 transition-all duration-500\",\n show ? \"pointer-events-auto opacity-100\" : \"pointer-events-none opacity-0\",\n colorClasses[color],\n ].join(\" \")}\n />\n );\n};\n\nexport default Overlay;\n","import { ReactNode } from \"react\";\n\nexport interface ShowProps {\n condition: boolean;\n loadingComponent: ReactNode;\n children: ReactNode;\n}\n\nexport const Show = ({ condition, loadingComponent, children }: ShowProps) => {\n return (\n <>\n {condition && loadingComponent}\n {!condition && children}\n </>\n );\n};\n\nexport default Show;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconChromeColor } from \"../../../icons/Browsers/IconChromeColor\";\nimport { IconSafariColor } from \"../../../icons/Browsers/IconSafariColor\";\nimport { IconEdgeColor } from \"../../../icons/Browsers/IconEdgeColor\";\n\nexport interface ModalBrowserIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalBrowserIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 100,\n}: ModalBrowserIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Estás usando un navegador no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para una mejor experiencia y mayor seguridad, debes ingresar con los\n siguientes navegadores:\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconChromeColor\n role=\"img\"\n aria-label=\"Google Chrome\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconSafariColor\n role=\"img\"\n aria-label=\"Safari\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconEdgeColor\n role=\"img\"\n aria-label=\"Microsoft Edge\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalBrowserIncompatible;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconWindow } from \"../../../icons/OperatingSystems/IconWindow\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalSystemIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalSystemIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 1000,\n}: ModalSystemIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n closeDisabled\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Sistema Operativo no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para descargar e instalar el ONPEID utiliza un dispositivo con sistema\n operativo Windows, macOS, Android o iOS.\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconWindow\n role=\"img\"\n aria-label=\"Windows 10 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconAndroid\n role=\"img\"\n aria-label=\"Android 7.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconApple\n role=\"img\"\n aria-label=\"macOS 10.12 o superior / iOS 11.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalSystemIncompatible;\n","import { useState } from \"react\";\nimport { IconWarningNotRecommended } from \"../../../icons/Actions/IconWarningNotRecommended\";\nimport { IconCloseRadius } from \"../../../icons/Actions/IconCloseRadius\";\n\nexport interface NotRecommendedProps {\n isOpenBrowserError?: boolean;\n isOpenDeviceError?: boolean;\n bottom?: number | string;\n right?: number | string;\n}\n\nexport const NotRecommended = ({\n isOpenBrowserError = false,\n isOpenDeviceError = false,\n bottom = 40,\n right = 20,\n}: NotRecommendedProps) => {\n const [isWarningClosed, setIsWarningClosed] = useState(false);\n\n const handleOpenWarning = () => setIsWarningClosed(false);\n const handleCloseWarning = () => setIsWarningClosed(true);\n\n const getContainerWidth = () => {\n if (isWarningClosed) return \"60px\";\n if (isOpenDeviceError) return \"365px\";\n return \"315px\";\n };\n\n const getMessageWidth = () => {\n if (isWarningClosed) return \"0\";\n if (isOpenDeviceError) return \"335px\";\n return \"285px\";\n };\n\n const getBottomValue = () =>\n typeof bottom === \"string\" ? bottom : `${bottom}px`;\n\n const getRightValue = () =>\n typeof right === \"string\" ? right : `${right}px`;\n\n return (\n <div\n className=\"fixed z-[99]\"\n style={{ bottom: getBottomValue(), right: getRightValue() }}\n >\n <div\n className=\"relative h-[75px] transition-all duration-300\"\n style={{ width: getContainerWidth() }}\n >\n {/* Warning icon */}\n {isWarningClosed ? (\n <button\n onClick={handleOpenWarning}\n className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10 cursor-pointer border-none transition-transform duration-200 hover:scale-110\"\n aria-label=\"Abrir advertencia\"\n type=\"button\"\n >\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </button>\n ) : (\n <div className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10\">\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </div>\n )}\n\n {/* Message */}\n <div\n className={[\n \"absolute bg-white left-[30px] top-0 flex flex-col justify-center items-center gap-2\",\n \"border-2 border-onpe-yellow rounded-[10px] h-[60px] text-sm\",\n \"transition-all duration-300 overflow-hidden\",\n isWarningClosed ? \"opacity-0 border-0 pointer-events-none\" : \"opacity-100\",\n ].join(\" \")}\n style={{ width: getMessageWidth() }}\n >\n <div className=\"whitespace-nowrap pl-6\">\n <p className=\"font-bold text-onpe-yellow m-0\">Estás usando un</p>\n {isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">\n sistema operativo no recomendado\n </p>\n )}\n {isOpenBrowserError && !isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">navegador no recomendado</p>\n )}\n </div>\n </div>\n\n {/* Close button */}\n {!isWarningClosed && (\n <button\n onClick={handleCloseWarning}\n className=\"absolute -top-2 -right-2 z-20 rounded-full cursor-pointer border-none bg-transparent p-0 transition-opacity duration-200 hover:opacity-80\"\n aria-label=\"Cerrar advertencia\"\n type=\"button\"\n >\n <IconCloseRadius className=\"w-[23px] h-[23px] text-onpe-yellow bg-white rounded-full\" />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default NotRecommended;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\n\nexport interface ModalDnieVersionsProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconDnie1: ReactNode;\n iconDnie2: ReactNode;\n iconDnie3?: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalDnieVersions = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconDnie1,\n iconDnie2,\n iconDnie3,\n zIndexLevel = 100,\n}: ModalDnieVersionsProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[590px]! pt-[30px] pb-[38px] md:pt-[35px] px-4 md:pb-[54px] md:px-8 ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold mb-2 text-lg sm:text-xl\"\n tabIndex={0}\n >\n <span className=\"sr-only\">Versiones del DNI electrónico</span>\n <span aria-hidden=\"true\">Versiones del DNIe</span>\n </h2>\n\n <section className=\"flex flex-col gap-5 sm:gap-8 items-center mt-[18px] sm:mt-6 text-sm\">\n {/* DNIe versión 1 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 1</span>\n <span aria-hidden=\"true\">DNIe versión 1</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte delantera del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte delantera del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatible solo con el lector del DNI electrónico en PC, Mac\n o laptop.\n </span>\n <span aria-hidden=\"true\">\n Compatible solo con el lector del DNIe en{\" \"}\n <strong>PC, Mac o laptop</strong>.\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] relative flex justify-center\">\n {iconDnie1}\n </div>\n </article>\n\n {/* DNIe versión 2 y 3 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 sm:gap-[52px] w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 2 y 3</span>\n <span aria-hidden=\"true\">DNIe versión 2 y 3</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte posterior del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte posterior del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatibles con el lector del DNI electrónico en PC, Mac o\n laptop y tecnología NFC (ISO 14443-B) en móviles.\n </span>\n <span aria-hidden=\"true\">\n Compatibles con el lector del DNIe en{\" \"}\n <strong>\n {\" \"}\n PC, Mac o laptop y tecnología NFC (ISO 14443-B) en móviles\n </strong>\n .\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] h-[181px] relative\">\n {iconDnie2}\n {iconDnie3}\n </div>\n </article>\n </section>\n </Modal>\n );\n};\n\nexport default ModalDnieVersions;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalNfcProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconNfc1: ReactNode;\n iconNfc2: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalNfc = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconNfc1,\n iconNfc2,\n zIndexLevel = 100,\n}: ModalNfcProps) => {\n const ANDROID_VIDEO_URL = \"https://www.youtube.com/watch?v=qlVVC9JHSro\";\n const IPHONE_VIDEO_URL = \"https://www.youtube.com/watch?v=wjzh_FUVXRE\";\n\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[600px]! pt-[46px] pb-[46px] px-[30px] md:px-[50px] md:pt-[35px] md:pb-[54px] ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold text-base\"\n tabIndex={0}\n >\n ¿Cómo saber si tu dispositivo móvil tiene NFC?\n </h2>\n\n <section className=\"flex flex-col gap-6 items-center mt-8 text-sm w-full\">\n {/* Android section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">1.</span>\n Celular Android\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Desde la barra de notificaciones, simplemente deslizando hacia\n abajo desde tu pantalla y buscando el ícono del NFC.\n </li>\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Otra forma es ir hacia Ajustes\n <span aria-hidden=\"true\">{\" > \"}</span>Conexiones o Redes\n Inalámbricas<span aria-hidden=\"true\">{\" > \"}</span>Buscar\n "NFC".\n </li>\n </ul>\n </div>\n\n {iconNfc1}\n\n {/* iPhone section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">2.</span>\n Celular iPhone\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Todos los modelos iPhone 7 en adelante ya cuentan con tecnología\n NFC activa.\n </li>\n </ul>\n </div>\n\n {iconNfc2}\n\n {/* How to use NFC */}\n <h2\n className=\"text-center text-onpe-blue font-bold my-5 text-base\"\n tabIndex={0}\n >\n ¿Cómo usar el NFC correctamente?\n </h2>\n\n <div className=\"pl-3 w-full\">\n <ol\n role=\"presentation\"\n className=\"text-sm text-justify list-decimal list-outside\"\n >\n <li role=\"presentation\" className=\"mb-2\">\n Activa el NFC en tu celular.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Busca en internet dónde está el lector NFC según tu modelo.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Coloca tu DNIe sobre esa zona hasta que recibas la confirmación\n del sistema.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Puedes consultar los videos "Aprende como leer tu DNIe con\n NFC":\n </li>\n </ol>\n </div>\n\n {/* OS links */}\n <div className=\"flex flex-row gap-5 justify-center items-center\">\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={ANDROID_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para Android en YouTube\"\n >\n <IconAndroid />\n Android\n </a>\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={IPHONE_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para iPhone en YouTube\"\n >\n <IconApple />\n iPhone\n </a>\n </div>\n </section>\n </Modal>\n );\n};\n\nexport default ModalNfc;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/BrowserRecommended/BrowserRecommended.tsx","../src/components/Footer/Footer.tsx","../src/components/Overlay/Overlay.tsx","../src/components/Show/Show.tsx","../src/components/ErrorHandling/ModalBrowserIncompatible/ModalBrowserIncompatible.tsx","../src/components/ErrorHandling/ModalSystemIncompatible/ModalSystemIncompatible.tsx","../src/components/ErrorHandling/NotRecommended/NotRecommended.tsx","../src/components/Feedback/ModalDnieVersions/ModalDnieVersions.tsx","../src/components/Feedback/ModalNfc/ModalNfc.tsx"],"names":["jsxs","jsx","Fragment"],"mappings":"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","file":"chunk-42FKZQSB.mjs","sourcesContent":["import { IconChrome } from \"../../icons/Browsers/IconChrome\";\nimport { IconSafari } from \"../../icons/Browsers/IconSafari\";\nimport { IconEdge } from \"../../icons/Browsers/IconEdge\";\n\nexport const BrowserRecommended = () => {\n return (\n <div className=\"flex flex-col lg:flex-row lg:py-2 items-center justify-center gap-6 py-3 pb-6 text-xs text-center text-onpe-blue bg-onpe-skyblue-light/15\">\n <p>Navegadores recomendados:</p>\n <ul className=\"flex gap-6 lg:gap-8\">\n <li className=\"flex items-center gap-2\">\n <IconChrome aria-hidden=\"true\" />\n <span className=\"sr-only\">Google Chrome</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Google Chrome\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconSafari aria-hidden=\"true\" />\n <span className=\"sr-only\">Safari</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Safari\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconEdge aria-hidden=\"true\" />\n <span className=\"sr-only\">Microsoft Edge</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Microsoft Edge\n </p>\n </li>\n </ul>\n </div>\n );\n};\n\nexport default BrowserRecommended;\n","import { HTMLAttributes, ReactNode } from \"react\";\nimport { BrowserRecommended } from \"../BrowserRecommended/BrowserRecommended\";\nimport { FaceBookIcon } from \"../../icons/Redes/FaceBookIcon\";\nimport { XIcon } from \"../../icons/Redes/XIcon\";\nimport { TikTokIcon } from \"../../icons/Redes/TikTokIcon\";\nimport { YoutubeIcon } from \"../../icons/Redes/YoutubeIcon\";\nimport { InstagramIcon } from \"../../icons/Redes/InstagramIcon\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n showBrowserInfo?: boolean;\n showContactInfo?: boolean;\n children?: ReactNode;\n isDevelopment?: boolean;\n showFooterContent?: boolean;\n}\n\nexport const Footer = ({\n showBrowserInfo = true,\n showContactInfo = true,\n children,\n showFooterContent = true,\n isDevelopment = true,\n ...props\n}: FooterProps) => {\n return (\n <footer {...props} tabIndex={0} aria-label=\"\">\n {showFooterContent && (\n <>\n {children && children}\n\n {showBrowserInfo && <BrowserRecommended />}\n {showContactInfo && (\n <div className=\"relative z-10 flex w-full min-h-[100px] bg-onpe-blue\">\n <div className=\"flex justify-between items-start w-full flex-col gap-6 mx-auto py-14 px-4 max-w-[1460px] md:py-5 md:px-4 lg:flex-row lg:items-center\">\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Oficina central</span>\n <span aria-hidden=\"true\">Oficina central:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\" lang=\"es-PE\">\n Dirección: jiroon Washington 1894, Cercado de Lima\n </span>\n <span aria-hidden=\"true\">\n Jr. Washington 1894, Cercado de Lima\n </span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Horario de atención: Lunes a viernes de 8:30 a. m. a 5:00\n p. m.\n </span>\n <span aria-hidden=\"true\">\n Lunes a viernes de 8:30 a. m. a 5:00 p. m.\n </span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Contáctanos</span>\n <span aria-hidden=\"true\">Contáctanos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Correo electrónico, informes@onpe punto goob punto pe,\n </span>\n <span aria-hidden=\"true\">informes@onpe.gob.pe</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Número telefónico, (01)4170630,\n </span>\n <span aria-hidden=\"true\">(01)4170630</span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">\n Síguenos en nuestras redes sociales\n </span>\n <span aria-hidden=\"true\">Síguenos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white gap-4\">\n <a\n href=\"https://www.facebook.com/ONPEoficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Facebook de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <FaceBookIcon />\n </span>\n </a>\n <a\n href=\"https://x.com/ONPE_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"X de ONPE (antes Twitter),\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <XIcon />\n </span>\n </a>\n <a\n href=\"https://www.tiktok.com/@onpe_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"TikTok de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <TikTokIcon />\n </span>\n </a>\n <a\n href=\"https://www.instagram.com/ONPE_oficial/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Instagram de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <InstagramIcon />\n </span>\n </a>\n <a\n href=\"https://www.youtube.com/@onpeprensa\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"YouTube de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <YoutubeIcon />\n </span>\n </a>\n </p>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n\n {isDevelopment && (\n <div className=\"h-[93px] w-full text-center flex items-center justify-center bg-onpe-yellow-light/75 fixed z-10 right-0 bottom-0 lg:h-[46px]\">\n <p className=\"py-2 px-2 text-2xl text-onpe-blue font-[Consolas,monospace] font-black\">\n Versión en Desarrollo - No Oficial\n </p>\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;\n","type OverlayColor =\n | \"blue\"\n | \"skyblue\"\n | \"skyblue-light\"\n | \"yellow\"\n | \"light-skyblue\"\n | \"gray\"\n | \"gray-light\"\n | \"gray-extra-light\"\n | \"red\"\n | \"dark-gray\"\n | \"green\"\n | \"yellow-light\"\n | \"primary\";\n\nexport interface OverlayProps {\n show?: boolean;\n onClick?: () => void;\n color?: OverlayColor;\n}\n\nconst colorClasses: Record<OverlayColor, string> = {\n blue: \"bg-onpe-blue/80\",\n skyblue: \"bg-onpe-skyblue/80\",\n \"skyblue-light\": \"bg-onpe-skyblue-light/80\",\n yellow: \"bg-onpe-yellow/80\",\n \"light-skyblue\": \"bg-onpe-light-skyblue/80\",\n gray: \"bg-onpe-gray/80\",\n \"gray-light\": \"bg-onpe-gray-light/80\",\n \"gray-extra-light\": \"bg-onpe-gray-extra-light/80\",\n red: \"bg-onpe-red/80\",\n \"dark-gray\": \"bg-onpe-dark-gray/80\",\n green: \"bg-onpe-green/80\",\n \"yellow-light\": \"bg-onpe-yellow-light/80\",\n primary: \"bg-onpe-blue/80\",\n};\n\nexport const Overlay = ({ show, onClick, color = \"blue\" }: OverlayProps) => {\n return (\n <div\n onClick={onClick}\n className={[\n \"absolute inset-0 w-full h-screen z-10 transition-all duration-500\",\n show ? \"pointer-events-auto opacity-100\" : \"pointer-events-none opacity-0\",\n colorClasses[color],\n ].join(\" \")}\n />\n );\n};\n\nexport default Overlay;\n","import { ReactNode } from \"react\";\n\nexport interface ShowProps {\n condition: boolean;\n loadingComponent: ReactNode;\n children: ReactNode;\n}\n\nexport const Show = ({ condition, loadingComponent, children }: ShowProps) => {\n return (\n <>\n {condition && loadingComponent}\n {!condition && children}\n </>\n );\n};\n\nexport default Show;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconChromeColor } from \"../../../icons/Browsers/IconChromeColor\";\nimport { IconSafariColor } from \"../../../icons/Browsers/IconSafariColor\";\nimport { IconEdgeColor } from \"../../../icons/Browsers/IconEdgeColor\";\n\nexport interface ModalBrowserIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalBrowserIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 100,\n}: ModalBrowserIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Estás usando un navegador no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para una mejor experiencia y mayor seguridad, debes ingresar con los\n siguientes navegadores:\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconChromeColor\n role=\"img\"\n aria-label=\"Google Chrome\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconSafariColor\n role=\"img\"\n aria-label=\"Safari\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconEdgeColor\n role=\"img\"\n aria-label=\"Microsoft Edge\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalBrowserIncompatible;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconWindow } from \"../../../icons/OperatingSystems/IconWindow\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalSystemIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalSystemIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 1000,\n}: ModalSystemIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n closeDisabled\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Sistema Operativo no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para descargar e instalar el ONPEID utiliza un dispositivo con sistema\n operativo Windows, macOS, Android o iOS.\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconWindow\n role=\"img\"\n aria-label=\"Windows 10 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconAndroid\n role=\"img\"\n aria-label=\"Android 7.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconApple\n role=\"img\"\n aria-label=\"macOS 10.12 o superior / iOS 11.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalSystemIncompatible;\n","import { useState } from \"react\";\nimport { IconWarningNotRecommended } from \"../../../icons/Actions/IconWarningNotRecommended\";\nimport { IconCloseRadius } from \"../../../icons/Actions/IconCloseRadius\";\n\nexport interface NotRecommendedProps {\n isOpenBrowserError?: boolean;\n isOpenDeviceError?: boolean;\n bottom?: number | string;\n right?: number | string;\n}\n\nexport const NotRecommended = ({\n isOpenBrowserError = false,\n isOpenDeviceError = false,\n bottom = 40,\n right = 20,\n}: NotRecommendedProps) => {\n const [isWarningClosed, setIsWarningClosed] = useState(false);\n\n const handleOpenWarning = () => setIsWarningClosed(false);\n const handleCloseWarning = () => setIsWarningClosed(true);\n\n const getContainerWidth = () => {\n if (isWarningClosed) return \"60px\";\n if (isOpenDeviceError) return \"365px\";\n return \"315px\";\n };\n\n const getMessageWidth = () => {\n if (isWarningClosed) return \"0\";\n if (isOpenDeviceError) return \"335px\";\n return \"285px\";\n };\n\n const getBottomValue = () =>\n typeof bottom === \"string\" ? bottom : `${bottom}px`;\n\n const getRightValue = () =>\n typeof right === \"string\" ? right : `${right}px`;\n\n return (\n <div\n className=\"fixed z-[99]\"\n style={{ bottom: getBottomValue(), right: getRightValue() }}\n >\n <div\n className=\"relative h-[75px] transition-all duration-300\"\n style={{ width: getContainerWidth() }}\n >\n {/* Warning icon */}\n {isWarningClosed ? (\n <button\n onClick={handleOpenWarning}\n className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10 cursor-pointer border-none transition-transform duration-200 hover:scale-110\"\n aria-label=\"Abrir advertencia\"\n type=\"button\"\n >\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </button>\n ) : (\n <div className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10\">\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </div>\n )}\n\n {/* Message */}\n <div\n className={[\n \"absolute bg-white left-[30px] top-0 flex flex-col justify-center items-center gap-2\",\n \"border-2 border-onpe-yellow rounded-[10px] h-[60px] text-sm\",\n \"transition-all duration-300 overflow-hidden\",\n isWarningClosed ? \"opacity-0 border-0 pointer-events-none\" : \"opacity-100\",\n ].join(\" \")}\n style={{ width: getMessageWidth() }}\n >\n <div className=\"whitespace-nowrap pl-6\">\n <p className=\"font-bold text-onpe-yellow m-0\">Estás usando un</p>\n {isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">\n sistema operativo no recomendado\n </p>\n )}\n {isOpenBrowserError && !isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">navegador no recomendado</p>\n )}\n </div>\n </div>\n\n {/* Close button */}\n {!isWarningClosed && (\n <button\n onClick={handleCloseWarning}\n className=\"absolute -top-2 -right-2 z-20 rounded-full cursor-pointer border-none bg-transparent p-0 transition-opacity duration-200 hover:opacity-80\"\n aria-label=\"Cerrar advertencia\"\n type=\"button\"\n >\n <IconCloseRadius className=\"w-[23px] h-[23px] text-onpe-yellow bg-white rounded-full\" />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default NotRecommended;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\n\nexport interface ModalDnieVersionsProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconDnie1: ReactNode;\n iconDnie2: ReactNode;\n iconDnie3?: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalDnieVersions = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconDnie1,\n iconDnie2,\n iconDnie3,\n zIndexLevel = 100,\n}: ModalDnieVersionsProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[590px]! pt-[30px] pb-[38px] md:pt-[35px] px-4 md:pb-[54px] md:px-8 ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold mb-2 text-lg sm:text-xl\"\n tabIndex={0}\n >\n <span className=\"sr-only\">Versiones del DNI electrónico</span>\n <span aria-hidden=\"true\">Versiones del DNIe</span>\n </h2>\n\n <section className=\"flex flex-col gap-5 sm:gap-8 items-center mt-[18px] sm:mt-6 text-sm\">\n {/* DNIe versión 1 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 1</span>\n <span aria-hidden=\"true\">DNIe versión 1</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte delantera del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte delantera del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatible solo con el lector del DNI electrónico en PC, Mac\n o laptop.\n </span>\n <span aria-hidden=\"true\">\n Compatible solo con el lector del DNIe en{\" \"}\n <strong>PC, Mac o laptop</strong>.\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] relative flex justify-center\">\n {iconDnie1}\n </div>\n </article>\n\n {/* DNIe versión 2 y 3 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 sm:gap-[52px] w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 2 y 3</span>\n <span aria-hidden=\"true\">DNIe versión 2 y 3</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte posterior del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte posterior del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatibles con el lector del DNI electrónico en PC, Mac o\n laptop y tecnología NFC (ISO 14443-B) en móviles.\n </span>\n <span aria-hidden=\"true\">\n Compatibles con el lector del DNIe en{\" \"}\n <strong>\n {\" \"}\n PC, Mac o laptop y tecnología NFC (ISO 14443-B) en móviles\n </strong>\n .\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] h-[181px] relative\">\n {iconDnie2}\n {iconDnie3}\n </div>\n </article>\n </section>\n </Modal>\n );\n};\n\nexport default ModalDnieVersions;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalNfcProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconNfc1: ReactNode;\n iconNfc2: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalNfc = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconNfc1,\n iconNfc2,\n zIndexLevel = 100,\n}: ModalNfcProps) => {\n const ANDROID_VIDEO_URL = \"https://www.youtube.com/watch?v=qlVVC9JHSro\";\n const IPHONE_VIDEO_URL = \"https://www.youtube.com/watch?v=wjzh_FUVXRE\";\n\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[600px]! pt-[46px] pb-[46px] px-[30px] md:px-[50px] md:pt-[35px] md:pb-[54px] ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold text-base\"\n tabIndex={0}\n >\n ¿Cómo saber si tu dispositivo móvil tiene NFC?\n </h2>\n\n <section className=\"flex flex-col gap-6 items-center mt-8 text-sm w-full\">\n {/* Android section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">1.</span>\n Celular Android\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Desde la barra de notificaciones, simplemente deslizando hacia\n abajo desde tu pantalla y buscando el ícono del NFC.\n </li>\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Otra forma es ir hacia Ajustes\n <span aria-hidden=\"true\">{\" > \"}</span>Conexiones o Redes\n Inalámbricas<span aria-hidden=\"true\">{\" > \"}</span>Buscar\n "NFC".\n </li>\n </ul>\n </div>\n\n {iconNfc1}\n\n {/* iPhone section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">2.</span>\n Celular iPhone\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Todos los modelos iPhone 7 en adelante ya cuentan con tecnología\n NFC activa.\n </li>\n </ul>\n </div>\n\n {iconNfc2}\n\n {/* How to use NFC */}\n <h2\n className=\"text-center text-onpe-blue font-bold my-5 text-base\"\n tabIndex={0}\n >\n ¿Cómo usar el NFC correctamente?\n </h2>\n\n <div className=\"pl-3 w-full\">\n <ol\n role=\"presentation\"\n className=\"text-sm text-justify list-decimal list-outside\"\n >\n <li role=\"presentation\" className=\"mb-2\">\n Activa el NFC en tu celular.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Busca en internet dónde está el lector NFC según tu modelo.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Coloca tu DNIe sobre esa zona hasta que recibas la confirmación\n del sistema.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Puedes consultar los videos "Aprende como leer tu DNIe con\n NFC":\n </li>\n </ol>\n </div>\n\n {/* OS links */}\n <div className=\"flex flex-row gap-5 justify-center items-center\">\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={ANDROID_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para Android en YouTube\"\n >\n <IconAndroid />\n Android\n </a>\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={IPHONE_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para iPhone en YouTube\"\n >\n <IconApple />\n iPhone\n </a>\n </div>\n </section>\n </Modal>\n );\n};\n\nexport default ModalNfc;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Modal } from './chunk-
|
|
1
|
+
import { Modal } from './chunk-SAJUQPOO.mjs';
|
|
2
2
|
import { create } from 'zustand';
|
|
3
3
|
import { useRef, useEffect, useCallback, useState } from 'react';
|
|
4
4
|
import io from 'socket.io-client';
|
|
@@ -306,7 +306,7 @@ var useSocketConnection = ({
|
|
|
306
306
|
}, [enabled, isOpenLaunchApp, socketUrl, secure]);
|
|
307
307
|
useEffect(() => {
|
|
308
308
|
if (isSessionExpired && socketRef.current) {
|
|
309
|
-
socketRef.current.emit("
|
|
309
|
+
socketRef.current.emit("setTimeout", "TIMEOUT_APP");
|
|
310
310
|
}
|
|
311
311
|
}, [isSessionExpired]);
|
|
312
312
|
useEffect(() => {
|
|
@@ -474,5 +474,5 @@ var OnpeIdModal = ({
|
|
|
474
474
|
};
|
|
475
475
|
|
|
476
476
|
export { OnpeIdModal, useIframeCommunication, useIframePreload, useModalIframePreload, useOnpeIdAuth, useSendMessageToIframe, useSocketConnection };
|
|
477
|
-
//# sourceMappingURL=chunk-
|
|
478
|
-
//# sourceMappingURL=chunk-
|
|
477
|
+
//# sourceMappingURL=chunk-O4VBKKND.mjs.map
|
|
478
|
+
//# sourceMappingURL=chunk-O4VBKKND.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/onpeId/store/modalIframePreload.ts","../src/hooks/onpeId/useIframeCommunication/useIframeCommunication.ts","../src/hooks/onpeId/useIframePreload/useIframePreload.ts","../src/hooks/onpeId/useSocketConnection/useSocketConnection.ts","../src/hooks/useOnpeIdAuth/useOnpeIdAuth.ts","../src/hooks/useOnpeIdAuth/OnpeIdModal.tsx"],"names":["useRef","useEffect","useState","useCallback"],"mappings":"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","file":"chunk-LHUNVLPX.mjs","sourcesContent":["import { create } from \"zustand\";\n\ninterface ModalIframePreloadStore {\n modalUrl: string;\n isOpenModal: boolean;\n isIframeReady: boolean;\n setModalUrl: (url: string) => void;\n openModal: () => void;\n closeModal: () => void;\n setIsIframeReady: (ready: boolean) => void;\n reset: () => void;\n}\n\nconst INITIAL_STATE: Omit<\n ModalIframePreloadStore,\n \"setModalUrl\" | \"openModal\" | \"closeModal\" | \"setIsIframeReady\" | \"reset\"\n> = {\n modalUrl: \"\",\n isOpenModal: false,\n isIframeReady: false,\n};\n\nexport const useModalIframePreload = create<ModalIframePreloadStore>()(\n (set) => ({\n ...INITIAL_STATE,\n setModalUrl: (url: string) => set({ modalUrl: url }),\n openModal: () => set({ isOpenModal: true }),\n closeModal: () => {\n set({\n isOpenModal: false,\n isIframeReady: false,\n modalUrl: \"\",\n });\n },\n setIsIframeReady: (ready: boolean) => set({ isIframeReady: ready }),\n reset: () => set(INITIAL_STATE),\n })\n);\n","import { useEffect, useRef, useCallback } from \"react\";\n\nexport type MessageStatus = \"EXPIRED_APP\" | \"OPEN_APP\" | \"LAUNCH_APP\" | \"HOME_APP\" | \"NOT_APP\" | \"OPEN_MOBILE\";\n\nexport interface IframeMessage {\n status: MessageStatus;\n url?: string;\n data?: unknown;\n token?: string;\n type?: \"LOGIN\" | \"FIRMA\";\n}\n\ninterface UseIframeCommunicationParams {\n onExpiredApp?: (data: IframeMessage) => void;\n onOpenApp?: (data: IframeMessage) => void;\n onLaunchApp?: (data: IframeMessage) => void;\n onHomeApp?: (data: IframeMessage) => void;\n onNotApp?: (data: IframeMessage) => void;\n onOpenMobile?: (data: IframeMessage) => void;\n enabled?: boolean;\n allowedOrigin?: string;\n}\n\nexport const useIframeCommunication = ({\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n enabled = true,\n allowedOrigin,\n}: UseIframeCommunicationParams = {}) => {\n const handlersRef = useRef({\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n });\n\n useEffect(() => {\n handlersRef.current = {\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n };\n }, [onExpiredApp, onOpenApp, onLaunchApp, onHomeApp, onNotApp, onOpenMobile]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const handler = (event: MessageEvent) => {\n if (allowedOrigin && event.origin !== allowedOrigin) {\n console.warn(\n `Mensaje rechazado de origen no permitido: ${event.origin}`,\n );\n return;\n }\n\n const data = event.data as IframeMessage;\n if (!data?.status) return;\n\n const handlers = handlersRef.current;\n\n switch (data.status) {\n case \"EXPIRED_APP\":\n handlers.onExpiredApp?.(data);\n break;\n case \"OPEN_APP\":\n handlers.onOpenApp?.(data);\n break;\n case \"LAUNCH_APP\":\n handlers.onLaunchApp?.(data);\n break;\n case \"HOME_APP\":\n handlers.onHomeApp?.(data);\n break;\n case \"NOT_APP\":\n handlers.onNotApp?.(data);\n break;\n case \"OPEN_MOBILE\":\n handlers.onOpenMobile?.(data);\n break;\n default:\n break;\n }\n };\n\n globalThis.addEventListener(\"message\", handler);\n return () => globalThis.removeEventListener(\"message\", handler);\n }, [enabled, allowedOrigin]);\n};\n\ninterface UseSendMessageToIframeParams {\n iframeRef: React.RefObject<HTMLIFrameElement | null>;\n modalUrl: string;\n}\n\nexport const useSendMessageToIframe = ({\n iframeRef,\n modalUrl,\n}: UseSendMessageToIframeParams) => {\n const sendMessageToIframe = useCallback(\n (message: Record<string, unknown>) => {\n if (!iframeRef.current || !modalUrl) return;\n\n try {\n const iframeOrigin = new URL(modalUrl).origin;\n iframeRef.current.contentWindow?.postMessage(message, iframeOrigin);\n } catch (error) {\n console.error(\"Error al enviar mensaje al iframe:\", error);\n }\n },\n [iframeRef, modalUrl],\n );\n\n return { sendMessageToIframe };\n};\n","import { useRef } from \"react\";\n\nimport { useModalIframePreload } from \"../store/modalIframePreload\";\n\nexport const useIframePreload = () => {\n const {\n modalUrl,\n setModalUrl,\n isOpenModal,\n closeModal,\n setIsIframeReady,\n openModal,\n reset,\n } = useModalIframePreload();\n\n const preloadIframeRef = useRef<HTMLIFrameElement>(null);\n const iframeRef = useRef<HTMLIFrameElement>(null);\n\n const isPreloading = !!modalUrl && !isOpenModal;\n\n const handlePreloadIframeReady = () => {\n setIsIframeReady(true);\n openModal();\n };\n\n const handleModalIframeReady = () => {\n if (!useModalIframePreload.getState().isIframeReady) {\n setIsIframeReady(true);\n }\n };\n\n return {\n modalUrl,\n setModalUrl,\n isOpenModal,\n closeModal,\n isPreloading,\n preloadIframeRef,\n iframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n reset,\n };\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport io, { type Socket } from \"socket.io-client\";\n\nconst RECONNECTION_ATTEMPTS = 14;\n\nexport interface SocketEventData {\n success: boolean;\n token: string;\n}\n\ninterface UseSocketConnectionParams {\n socketUrl: string;\n secure?: boolean;\n isOpenLaunchApp: boolean;\n dataOpenLaunchApp: Record<string, unknown>;\n closeLaunchApp: () => void;\n closeModal: () => void;\n onComplete?: (data: SocketEventData) => void;\n onDisconnectClient?: () => void;\n onDisconnect?: () => void;\n onMaxReconnects?: () => void;\n onConnectionChange?: (connected: boolean) => void;\n enabled?: boolean;\n isSessionExpired?: boolean;\n}\n\nexport const useSocketConnection = ({\n socketUrl,\n secure = false,\n isOpenLaunchApp,\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n onConnectionChange,\n enabled = true,\n isSessionExpired = false,\n}: UseSocketConnectionParams) => {\n const socketRef = useRef<Socket | null>(null);\n const [attempts, setAttempts] = useState(0);\n\n const dataOpenLaunchAppRef = useRef(dataOpenLaunchApp);\n const closeLaunchAppRef = useRef(closeLaunchApp);\n const closeModalRef = useRef(closeModal);\n const enabledRef = useRef(enabled);\n const onConnectionChangeRef = useRef(onConnectionChange);\n const onCompleteRef = useRef(onComplete);\n const onDisconnectClientRef = useRef(onDisconnectClient);\n const onDisconnectRef = useRef(onDisconnect);\n const onMaxReconnectsRef = useRef(onMaxReconnects);\n\n useEffect(() => {\n dataOpenLaunchAppRef.current = dataOpenLaunchApp;\n closeLaunchAppRef.current = closeLaunchApp;\n closeModalRef.current = closeModal;\n enabledRef.current = enabled;\n onConnectionChangeRef.current = onConnectionChange;\n onCompleteRef.current = onComplete;\n onDisconnectClientRef.current = onDisconnectClient;\n onDisconnectRef.current = onDisconnect;\n onMaxReconnectsRef.current = onMaxReconnects;\n }, [\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal,\n enabled,\n onConnectionChange,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n ]);\n\n useEffect(() => {\n if (attempts === RECONNECTION_ATTEMPTS) {\n if (socketRef.current) {\n socketRef.current.disconnect();\n }\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onMaxReconnectsRef.current?.();\n setTimeout(() => setAttempts(0), 0);\n }\n }, [attempts]);\n\n useEffect(() => {\n if (!enabled) {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n onConnectionChangeRef.current?.(false);\n setTimeout(() => setAttempts(0), 0);\n }\n return;\n }\n\n if (!isOpenLaunchApp) {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n return;\n }\n\n if (!socketRef.current) {\n socketRef.current = io(socketUrl, {\n transports: [\"websocket\"],\n secure,\n upgrade: false,\n forceNew: true,\n reconnection: true,\n reconnectionAttempts: RECONNECTION_ATTEMPTS,\n reconnectionDelay: 2000,\n reconnectionDelayMax: 1000,\n });\n\n const socket = socketRef.current;\n\n const handleConnect = () => {\n if (!enabledRef.current) return;\n\n onConnectionChangeRef.current?.(true);\n if (socketRef.current) {\n const jsonObject = dataOpenLaunchAppRef.current;\n\n if (jsonObject && Object.keys(jsonObject).length > 0) {\n socketRef.current.emit(\"setToken\", jsonObject);\n } else {\n setTimeout(() => {\n const delayedData = dataOpenLaunchAppRef.current;\n if (\n delayedData &&\n Object.keys(delayedData).length > 0 &&\n socketRef.current &&\n enabledRef.current\n ) {\n socketRef.current.emit(\"setToken\", delayedData);\n }\n }, 100);\n }\n } else {\n console.error(\"Socket no está disponible para enviar token\");\n }\n };\n\n const handleDisconnect = () => {\n if (!enabledRef.current) return;\n\n onConnectionChangeRef.current?.(false);\n closeLaunchAppRef.current();\n closeModalRef.current();\n onDisconnectRef.current?.();\n };\n\n const handleReconnectAttempt = (attemptNumber: number) => {\n setAttempts(attemptNumber);\n };\n\n const handleConnectError = (error: Error) => {\n console.error(\"Error de conexión socket:\", error);\n };\n\n const handleComplete = (data: SocketEventData) => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onCompleteRef.current?.(data);\n };\n\n const handleServerTimeout = () => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n };\n\n const handleDisconnectClient = () => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onDisconnectClientRef.current?.();\n };\n\n socket.on(\"connect\", handleConnect);\n socket.on(\"disconnect\", handleDisconnect);\n socket.on(\"connect_error\", handleConnectError);\n socket.io.on(\"reconnect_attempt\", handleReconnectAttempt);\n socket.on(\"onProcessComplete\", handleComplete);\n socket.on(\"onValidationComplete\", handleComplete);\n socket.on(\"onProcessCompleteFirma\", handleComplete);\n socket.on(\"onServerTimeout\", handleServerTimeout);\n socket.on(\"onDisconnectClient\", handleDisconnectClient);\n }\n\n return () => {\n if (socketRef.current && (!enabled || !isOpenLaunchApp)) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n };\n }, [enabled, isOpenLaunchApp, socketUrl, secure]);\n\n useEffect(() => {\n if (isSessionExpired && socketRef.current) {\n socketRef.current.emit(\"setToken\", \"TIMEOUT_APP\");\n }\n }, [isSessionExpired]);\n\n useEffect(() => {\n return () => {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n };\n }, []);\n\n return { attempts };\n};\n","import { useState, useCallback, useEffect } from \"react\";\n\nimport {\n useIframeCommunication,\n useIframePreload,\n useSocketConnection,\n type SocketEventData,\n} from \"../onpeId\";\n\ninterface UseOnpeIdAuthParams {\n socketUrl: string;\n secure?: boolean;\n navigate: (url: string) => void;\n onConnectionChange?: (connected: boolean) => void;\n connectionApp?: boolean;\n onPageReload?: () => void;\n onComplete?: (data: SocketEventData) => void;\n onDisconnectClient?: () => void;\n onExpiredApp?: () => void;\n onDisconnect?: () => void;\n onMaxReconnects?: () => void;\n onHomeApp?: () => void;\n onNotApp?: () => void;\n onOpenMobile?: (data: Record<string, unknown>) => void;\n isSessionExpired?: boolean;\n}\n\nexport const useOnpeIdAuth = ({\n socketUrl,\n secure = false,\n navigate,\n onConnectionChange,\n connectionApp,\n onPageReload,\n onComplete,\n onHomeApp,\n onNotApp,\n onDisconnectClient,\n isSessionExpired,\n onExpiredApp,\n onDisconnect,\n onMaxReconnects,\n onOpenMobile,\n}: UseOnpeIdAuthParams) => {\n const [isOpenLaunchApp, setIsOpenLaunchApp] = useState(false);\n const [dataOpenLaunchApp, setDataOpenLaunchApp] = useState<\n Record<string, unknown>\n >({});\n\n const openLaunchApp = useCallback(() => setIsOpenLaunchApp(true), []);\n const closeLaunchApp = useCallback(() => setIsOpenLaunchApp(false), []);\n\n const {\n modalUrl,\n setModalUrl,\n isOpenModal,\n isPreloading,\n closeModal,\n preloadIframeRef,\n iframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n reset: resetIframeState,\n } = useIframePreload();\n\n const handleClose = useCallback(() => {\n onConnectionChange?.(false);\n closeModal();\n closeLaunchApp();\n resetIframeState();\n }, [closeModal, closeLaunchApp, resetIframeState, onConnectionChange]);\n\n useEffect(() => {\n if (connectionApp) {\n onConnectionChange?.(false);\n onPageReload?.();\n }\n return () => {\n resetIframeState();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- solo se ejecuta en el primer render\n }, []);\n\n const { attempts } = useSocketConnection({\n socketUrl,\n secure,\n isOpenLaunchApp,\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal: handleClose,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n onConnectionChange,\n enabled: isOpenModal && !!modalUrl,\n isSessionExpired,\n });\n\n useIframeCommunication({\n onExpiredApp: () => {\n handleClose();\n onExpiredApp?.();\n },\n onOpenApp: (data) => {\n navigate(data.url!);\n },\n onLaunchApp: (data) => {\n openLaunchApp();\n setDataOpenLaunchApp((data.data as Record<string, unknown>) ?? {});\n },\n onOpenMobile: (data) => {\n onOpenMobile?.((data.data as Record<string, unknown>) ?? {});\n },\n onHomeApp: () => {\n handleClose();\n onHomeApp?.();\n },\n onNotApp: () => {\n handleClose();\n onNotApp?.();\n },\n });\n\n return {\n modalUrl,\n setModalUrl,\n isOpenModal,\n isPreloading,\n isOpenLaunchApp,\n handleClose,\n iframeRef,\n preloadIframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n attempts,\n reset: resetIframeState,\n };\n};\n","import { useState } from \"react\";\n\nimport { Modal } from \"../../components/Modal\";\n\ninterface OnpeIdModalProps {\n modalUrl: string;\n isOpenModal: boolean;\n isOpenLaunchApp: boolean;\n isOnline: boolean;\n onClose: () => void;\n iframeRef: React.RefObject<HTMLIFrameElement | null>;\n preloadIframeRef: React.RefObject<HTMLIFrameElement | null>;\n handlePreloadIframeReady: () => void;\n handleModalIframeReady: () => void;\n disableFocus?: boolean;\n}\n\nexport const OnpeIdModal = ({\n modalUrl,\n isOpenModal,\n isOpenLaunchApp,\n isOnline,\n onClose,\n iframeRef,\n preloadIframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n disableFocus = false,\n}: OnpeIdModalProps) => {\n const [isIframeLoaded, setIsIframeLoaded] = useState(false);\n\n return (\n <>\n {modalUrl && !isOpenModal && isOnline && (\n <iframe\n ref={preloadIframeRef}\n src={modalUrl}\n className=\"hidden\"\n onLoad={handlePreloadIframeReady}\n title=\"Precarga ONPE ID\"\n />\n )}\n\n <Modal\n isOpen={isOpenModal && isOnline}\n onClose={onClose}\n className=\"bg-white max-w-custom-673 p-10 relative\"\n closeButton={!isOpenLaunchApp && isIframeLoaded}\n escapeToClose={false}\n disableFocus={disableFocus}\n >\n {!!modalUrl && isOnline && (\n <iframe\n ref={iframeRef}\n src={modalUrl}\n onLoad={() => {\n handleModalIframeReady();\n setIsIframeLoaded(true);\n }}\n className=\"w-full h-[410px] min-[400px]:h-[390px] md:h-[312px]\"\n title=\"Aplicativo ONPEID para autenticación y registro\"\n />\n )}\n </Modal>\n </>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/hooks/onpeId/store/modalIframePreload.ts","../src/hooks/onpeId/useIframeCommunication/useIframeCommunication.ts","../src/hooks/onpeId/useIframePreload/useIframePreload.ts","../src/hooks/onpeId/useSocketConnection/useSocketConnection.ts","../src/hooks/useOnpeIdAuth/useOnpeIdAuth.ts","../src/hooks/useOnpeIdAuth/OnpeIdModal.tsx"],"names":["useRef","useEffect","useState","useCallback"],"mappings":";;;;;;AAaA,IAAM,aAAA,GAGF;AAAA,EACF,QAAA,EAAU,EAAA;AAAA,EACV,WAAA,EAAa,KAAA;AAAA,EACb,aAAA,EAAe;AACjB,CAAA;AAEO,IAAM,wBAAwB,MAAA,EAAgC;AAAA,EACnE,CAAC,GAAA,MAAS;AAAA,IACR,GAAG,aAAA;AAAA,IACH,aAAa,CAAC,GAAA,KAAgB,IAAI,EAAE,QAAA,EAAU,KAAK,CAAA;AAAA,IACnD,WAAW,MAAM,GAAA,CAAI,EAAE,WAAA,EAAa,MAAM,CAAA;AAAA,IAC1C,YAAY,MAAM;AAChB,MAAA,GAAA,CAAI;AAAA,QACF,WAAA,EAAa,KAAA;AAAA,QACb,aAAA,EAAe,KAAA;AAAA,QACf,QAAA,EAAU;AAAA,OACX,CAAA;AAAA,IACH,CAAA;AAAA,IACA,kBAAkB,CAAC,KAAA,KAAmB,IAAI,EAAE,aAAA,EAAe,OAAO,CAAA;AAAA,IAClE,KAAA,EAAO,MAAM,GAAA,CAAI,aAAa;AAAA,GAChC;AACF;ACdO,IAAM,yBAAyB,CAAC;AAAA,EACrC,YAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV;AACF,CAAA,GAAkC,EAAC,KAAM;AACvC,EAAA,MAAM,cAAc,MAAA,CAAO;AAAA,IACzB,YAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,OAAA,GAAU;AAAA,MACpB,YAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,SAAA,EAAW,aAAa,SAAA,EAAW,QAAA,EAAU,YAAY,CAAC,CAAA;AAE5E,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,MAAM,OAAA,GAAU,CAAC,KAAA,KAAwB;AACvC,MAAA,IAAI,aAAA,IAAiB,KAAA,CAAM,MAAA,KAAW,aAAA,EAAe;AACnD,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,CAAA,0CAAA,EAA6C,MAAM,MAAM,CAAA;AAAA,SAC3D;AACA,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,OAAO,KAAA,CAAM,IAAA;AACnB,MAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AAEnB,MAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAE7B,MAAA,QAAQ,KAAK,MAAA;AAAQ,QACnB,KAAK,aAAA;AACH,UAAA,QAAA,CAAS,eAAe,IAAI,CAAA;AAC5B,UAAA;AAAA,QACF,KAAK,UAAA;AACH,UAAA,QAAA,CAAS,YAAY,IAAI,CAAA;AACzB,UAAA;AAAA,QACF,KAAK,YAAA;AACH,UAAA,QAAA,CAAS,cAAc,IAAI,CAAA;AAC3B,UAAA;AAAA,QACF,KAAK,UAAA;AACH,UAAA,QAAA,CAAS,YAAY,IAAI,CAAA;AACzB,UAAA;AAAA,QACF,KAAK,SAAA;AACH,UAAA,QAAA,CAAS,WAAW,IAAI,CAAA;AACxB,UAAA;AAAA,QACF,KAAK,aAAA;AACH,UAAA,QAAA,CAAS,eAAe,IAAI,CAAA;AAC5B,UAAA;AAEA;AACJ,IACF,CAAA;AAEA,IAAA,UAAA,CAAW,gBAAA,CAAiB,WAAW,OAAO,CAAA;AAC9C,IAAA,OAAO,MAAM,UAAA,CAAW,mBAAA,CAAoB,SAAA,EAAW,OAAO,CAAA;AAAA,EAChE,CAAA,EAAG,CAAC,OAAA,EAAS,aAAa,CAAC,CAAA;AAC7B;AAOO,IAAM,yBAAyB,CAAC;AAAA,EACrC,SAAA;AAAA,EACA;AACF,CAAA,KAAoC;AAClC,EAAA,MAAM,mBAAA,GAAsB,WAAA;AAAA,IAC1B,CAAC,OAAA,KAAqC;AACpC,MAAA,IAAI,CAAC,SAAA,CAAU,OAAA,IAAW,CAAC,QAAA,EAAU;AAErC,MAAA,IAAI;AACF,QAAA,MAAM,YAAA,GAAe,IAAI,GAAA,CAAI,QAAQ,CAAA,CAAE,MAAA;AACvC,QAAA,SAAA,CAAU,OAAA,CAAQ,aAAA,EAAe,WAAA,CAAY,OAAA,EAAS,YAAY,CAAA;AAAA,MACpE,SAAS,KAAA,EAAO;AACd,QAAA,OAAA,CAAQ,KAAA,CAAM,sCAAsC,KAAK,CAAA;AAAA,MAC3D;AAAA,IACF,CAAA;AAAA,IACA,CAAC,WAAW,QAAQ;AAAA,GACtB;AAEA,EAAA,OAAO,EAAE,mBAAA,EAAoB;AAC/B;ACtHO,IAAM,mBAAmB,MAAM;AACpC,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,qBAAA,EAAsB;AAE1B,EAAA,MAAM,gBAAA,GAAmBA,OAA0B,IAAI,CAAA;AACvD,EAAA,MAAM,SAAA,GAAYA,OAA0B,IAAI,CAAA;AAEhD,EAAA,MAAM,YAAA,GAAe,CAAC,CAAC,QAAA,IAAY,CAAC,WAAA;AAEpC,EAAA,MAAM,2BAA2B,MAAM;AACrC,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,SAAA,EAAU;AAAA,EACZ,CAAA;AAEA,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAA,IAAI,CAAC,qBAAA,CAAsB,QAAA,EAAS,CAAE,aAAA,EAAe;AACnD,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,wBAAA;AAAA,IACA,sBAAA;AAAA,IACA;AAAA,GACF;AACF;ACxCA,IAAM,qBAAA,GAAwB,EAAA;AAuBvB,IAAM,sBAAsB,CAAC;AAAA,EAClC,SAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,gBAAA,GAAmB;AACrB,CAAA,KAAiC;AAC/B,EAAA,MAAM,SAAA,GAAYA,OAAsB,IAAI,CAAA;AAC5C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,CAAC,CAAA;AAE1C,EAAA,MAAM,oBAAA,GAAuBA,OAAO,iBAAiB,CAAA;AACrD,EAAA,MAAM,iBAAA,GAAoBA,OAAO,cAAc,CAAA;AAC/C,EAAA,MAAM,aAAA,GAAgBA,OAAO,UAAU,CAAA;AACvC,EAAA,MAAM,UAAA,GAAaA,OAAO,OAAO,CAAA;AACjC,EAAA,MAAM,qBAAA,GAAwBA,OAAO,kBAAkB,CAAA;AACvD,EAAA,MAAM,aAAA,GAAgBA,OAAO,UAAU,CAAA;AACvC,EAAA,MAAM,qBAAA,GAAwBA,OAAO,kBAAkB,CAAA;AACvD,EAAA,MAAM,eAAA,GAAkBA,OAAO,YAAY,CAAA;AAC3C,EAAA,MAAM,kBAAA,GAAqBA,OAAO,eAAe,CAAA;AAEjD,EAAAC,UAAU,MAAM;AACd,IAAA,oBAAA,CAAqB,OAAA,GAAU,iBAAA;AAC/B,IAAA,iBAAA,CAAkB,OAAA,GAAU,cAAA;AAC5B,IAAA,aAAA,CAAc,OAAA,GAAU,UAAA;AACxB,IAAA,UAAA,CAAW,OAAA,GAAU,OAAA;AACrB,IAAA,qBAAA,CAAsB,OAAA,GAAU,kBAAA;AAChC,IAAA,aAAA,CAAc,OAAA,GAAU,UAAA;AACxB,IAAA,qBAAA,CAAsB,OAAA,GAAU,kBAAA;AAChC,IAAA,eAAA,CAAgB,OAAA,GAAU,YAAA;AAC1B,IAAA,kBAAA,CAAmB,OAAA,GAAU,eAAA;AAAA,EAC/B,CAAA,EAAG;AAAA,IACD,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,kBAAA;AAAA,IACA,UAAA;AAAA,IACA,kBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,aAAa,qBAAA,EAAuB;AACtC,MAAA,IAAI,UAAU,OAAA,EAAS;AACrB,QAAA,SAAA,CAAU,QAAQ,UAAA,EAAW;AAAA,MAC/B;AACA,MAAA,iBAAA,CAAkB,OAAA,EAAQ;AAC1B,MAAA,qBAAA,CAAsB,UAAU,KAAK,CAAA;AACrC,MAAA,aAAA,CAAc,OAAA,EAAQ;AACtB,MAAA,kBAAA,CAAmB,OAAA,IAAU;AAC7B,MAAA,UAAA,CAAW,MAAM,WAAA,CAAY,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,IACpC;AAAA,EACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAI,UAAU,OAAA,EAAS;AACrB,QAAA,SAAA,CAAU,QAAQ,kBAAA,EAAmB;AACrC,QAAA,SAAA,CAAU,QAAQ,UAAA,EAAW;AAC7B,QAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AACpB,QAAA,qBAAA,CAAsB,UAAU,KAAK,CAAA;AACrC,QAAA,UAAA,CAAW,MAAM,WAAA,CAAY,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,MACpC;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA,IAAI,UAAU,OAAA,EAAS;AACrB,QAAA,SAAA,CAAU,QAAQ,kBAAA,EAAmB;AACrC,QAAA,SAAA,CAAU,QAAQ,UAAA,EAAW;AAC7B,QAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AAAA,MACtB;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,UAAU,OAAA,EAAS;AACtB,MAAA,SAAA,CAAU,OAAA,GAAU,GAAG,SAAA,EAAW;AAAA,QAChC,UAAA,EAAY,CAAC,WAAW,CAAA;AAAA,QACxB,MAAA;AAAA,QACA,OAAA,EAAS,KAAA;AAAA,QACT,QAAA,EAAU,IAAA;AAAA,QACV,YAAA,EAAc,IAAA;AAAA,QACd,oBAAA,EAAsB,qBAAA;AAAA,QACtB,iBAAA,EAAmB,GAAA;AAAA,QACnB,oBAAA,EAAsB;AAAA,OACvB,CAAA;AAED,MAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AAEzB,MAAA,MAAM,gBAAgB,MAAM;AAC1B,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AAEzB,QAAA,qBAAA,CAAsB,UAAU,IAAI,CAAA;AACpC,QAAA,IAAI,UAAU,OAAA,EAAS;AACrB,UAAA,MAAM,aAAa,oBAAA,CAAqB,OAAA;AAExC,UAAA,IAAI,cAAc,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,CAAE,SAAS,CAAA,EAAG;AACpD,YAAA,SAAA,CAAU,OAAA,CAAQ,IAAA,CAAK,UAAA,EAAY,UAAU,CAAA;AAAA,UAC/C,CAAA,MAAO;AACL,YAAA,UAAA,CAAW,MAAM;AACf,cAAA,MAAM,cAAc,oBAAA,CAAqB,OAAA;AACzC,cAAA,IACE,WAAA,IACA,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,CAAE,SAAS,CAAA,IAClC,SAAA,CAAU,OAAA,IACV,UAAA,CAAW,OAAA,EACX;AACA,gBAAA,SAAA,CAAU,OAAA,CAAQ,IAAA,CAAK,UAAA,EAAY,WAAW,CAAA;AAAA,cAChD;AAAA,YACF,GAAG,GAAG,CAAA;AAAA,UACR;AAAA,QACF,CAAA,MAAO;AACL,UAAA,OAAA,CAAQ,MAAM,gDAA6C,CAAA;AAAA,QAC7D;AAAA,MACF,CAAA;AAEA,MAAA,MAAM,mBAAmB,MAAM;AAC7B,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AAEzB,QAAA,qBAAA,CAAsB,UAAU,KAAK,CAAA;AACrC,QAAA,iBAAA,CAAkB,OAAA,EAAQ;AAC1B,QAAA,aAAA,CAAc,OAAA,EAAQ;AACtB,QAAA,eAAA,CAAgB,OAAA,IAAU;AAAA,MAC5B,CAAA;AAEA,MAAA,MAAM,sBAAA,GAAyB,CAAC,aAAA,KAA0B;AACxD,QAAA,WAAA,CAAY,aAAa,CAAA;AAAA,MAC3B,CAAA;AAEA,MAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAiB;AAC3C,QAAA,OAAA,CAAQ,KAAA,CAAM,gCAA6B,KAAK,CAAA;AAAA,MAClD,CAAA;AAEA,MAAA,MAAM,cAAA,GAAiB,CAAC,IAAA,KAA0B;AAChD,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,QAAA,iBAAA,CAAkB,OAAA,EAAQ;AAC1B,QAAA,qBAAA,CAAsB,UAAU,KAAK,CAAA;AACrC,QAAA,aAAA,CAAc,OAAA,EAAQ;AACtB,QAAA,aAAA,CAAc,UAAU,IAAI,CAAA;AAAA,MAC9B,CAAA;AAEA,MAAA,MAAM,sBAAsB,MAAM;AAChC,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,QAAA,iBAAA,CAAkB,OAAA,EAAQ;AAC1B,QAAA,qBAAA,CAAsB,UAAU,KAAK,CAAA;AACrC,QAAA,aAAA,CAAc,OAAA,EAAQ;AAAA,MACxB,CAAA;AAEA,MAAA,MAAM,yBAAyB,MAAM;AACnC,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,QAAA,iBAAA,CAAkB,OAAA,EAAQ;AAC1B,QAAA,qBAAA,CAAsB,UAAU,KAAK,CAAA;AACrC,QAAA,aAAA,CAAc,OAAA,EAAQ;AACtB,QAAA,qBAAA,CAAsB,OAAA,IAAU;AAAA,MAClC,CAAA;AAEA,MAAA,MAAA,CAAO,EAAA,CAAG,WAAW,aAAa,CAAA;AAClC,MAAA,MAAA,CAAO,EAAA,CAAG,cAAc,gBAAgB,CAAA;AACxC,MAAA,MAAA,CAAO,EAAA,CAAG,iBAAiB,kBAAkB,CAAA;AAC7C,MAAA,MAAA,CAAO,EAAA,CAAG,EAAA,CAAG,mBAAA,EAAqB,sBAAsB,CAAA;AACxD,MAAA,MAAA,CAAO,EAAA,CAAG,qBAAqB,cAAc,CAAA;AAC7C,MAAA,MAAA,CAAO,EAAA,CAAG,wBAAwB,cAAc,CAAA;AAChD,MAAA,MAAA,CAAO,EAAA,CAAG,0BAA0B,cAAc,CAAA;AAClD,MAAA,MAAA,CAAO,EAAA,CAAG,mBAAmB,mBAAmB,CAAA;AAChD,MAAA,MAAA,CAAO,EAAA,CAAG,sBAAsB,sBAAsB,CAAA;AAAA,IACxD;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,SAAA,CAAU,OAAA,KAAY,CAAC,OAAA,IAAW,CAAC,eAAA,CAAA,EAAkB;AACvD,QAAA,SAAA,CAAU,QAAQ,kBAAA,EAAmB;AACrC,QAAA,SAAA,CAAU,QAAQ,UAAA,EAAW;AAC7B,QAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AAAA,MACtB;AAAA,IACF,CAAA;AAAA,EACF,GAAG,CAAC,OAAA,EAAS,eAAA,EAAiB,SAAA,EAAW,MAAM,CAAC,CAAA;AAEhD,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,gBAAA,IAAoB,UAAU,OAAA,EAAS;AACzC,MAAA,SAAA,CAAU,OAAA,CAAQ,IAAA,CAAK,YAAA,EAAc,aAAa,CAAA;AAAA,IACpD;AAAA,EACF,CAAA,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAErB,EAAAA,UAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAU,OAAA,EAAS;AACrB,QAAA,SAAA,CAAU,QAAQ,kBAAA,EAAmB;AACrC,QAAA,SAAA,CAAU,QAAQ,UAAA,EAAW;AAC7B,QAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AAAA,MACtB;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,EAAE,QAAA,EAAS;AACpB;ACzMO,IAAM,gBAAgB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIC,SAAS,KAAK,CAAA;AAC5D,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,QAAAA,CAEhD,EAAE,CAAA;AAEJ,EAAA,MAAM,gBAAgBC,WAAAA,CAAY,MAAM,mBAAmB,IAAI,CAAA,EAAG,EAAE,CAAA;AACpE,EAAA,MAAM,iBAAiBA,WAAAA,CAAY,MAAM,mBAAmB,KAAK,CAAA,EAAG,EAAE,CAAA;AAEtE,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,wBAAA;AAAA,IACA,sBAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACL,gBAAA,EAAiB;AAErB,EAAA,MAAM,WAAA,GAAcA,YAAY,MAAM;AACpC,IAAA,kBAAA,GAAqB,KAAK,CAAA;AAC1B,IAAA,UAAA,EAAW;AACX,IAAA,cAAA,EAAe;AACf,IAAA,gBAAA,EAAiB;AAAA,EACnB,GAAG,CAAC,UAAA,EAAY,cAAA,EAAgB,gBAAA,EAAkB,kBAAkB,CAAC,CAAA;AAErE,EAAAF,UAAU,MAAM;AACd,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,kBAAA,GAAqB,KAAK,CAAA;AAC1B,MAAA,YAAA,IAAe;AAAA,IACjB;AACA,IAAA,OAAO,MAAM;AACX,MAAA,gBAAA,EAAiB;AAAA,IACnB,CAAA;AAAA,EAEF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,mBAAA,CAAoB;AAAA,IACvC,SAAA;AAAA,IACA,MAAA;AAAA,IACA,eAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA;AAAA,IACA,kBAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA,OAAA,EAAS,WAAA,IAAe,CAAC,CAAC,QAAA;AAAA,IAC1B;AAAA,GACD,CAAA;AAED,EAAA,sBAAA,CAAuB;AAAA,IACrB,cAAc,MAAM;AAClB,MAAA,WAAA,EAAY;AACZ,MAAA,YAAA,IAAe;AAAA,IACjB,CAAA;AAAA,IACA,SAAA,EAAW,CAAC,IAAA,KAAS;AACnB,MAAA,QAAA,CAAS,KAAK,GAAI,CAAA;AAAA,IACpB,CAAA;AAAA,IACA,WAAA,EAAa,CAAC,IAAA,KAAS;AACrB,MAAA,aAAA,EAAc;AACd,MAAA,oBAAA,CAAsB,IAAA,CAAK,IAAA,IAAoC,EAAE,CAAA;AAAA,IACnE,CAAA;AAAA,IACA,YAAA,EAAc,CAAC,IAAA,KAAS;AACtB,MAAA,YAAA,GAAgB,IAAA,CAAK,IAAA,IAAoC,EAAE,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,WAAW,MAAM;AACf,MAAA,WAAA,EAAY;AACZ,MAAA,SAAA,IAAY;AAAA,IACd,CAAA;AAAA,IACA,UAAU,MAAM;AACd,MAAA,WAAA,EAAY;AACZ,MAAA,QAAA,IAAW;AAAA,IACb;AAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA;AAAA,IACA,wBAAA;AAAA,IACA,sBAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA,EAAO;AAAA,GACT;AACF;ACzHO,IAAM,cAAc,CAAC;AAAA,EAC1B,QAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,wBAAA;AAAA,EACA,sBAAA;AAAA,EACA,YAAA,GAAe;AACjB,CAAA,KAAwB;AACtB,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIC,SAAS,KAAK,CAAA;AAE1D,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,QAAA,IAAY,CAAC,eAAe,QAAA,oBAC3B,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,gBAAA;AAAA,QACL,GAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,QAAA;AAAA,QACV,MAAA,EAAQ,wBAAA;AAAA,QACR,KAAA,EAAM;AAAA;AAAA,KACR;AAAA,oBAGF,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAQ,WAAA,IAAe,QAAA;AAAA,QACvB,OAAA;AAAA,QACA,SAAA,EAAU,yCAAA;AAAA,QACV,WAAA,EAAa,CAAC,eAAA,IAAmB,cAAA;AAAA,QACjC,aAAA,EAAe,KAAA;AAAA,QACf,YAAA;AAAA,QAEC,QAAA,EAAA,CAAC,CAAC,QAAA,IAAY,QAAA,oBACb,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,SAAA;AAAA,YACL,GAAA,EAAK,QAAA;AAAA,YACL,QAAQ,MAAM;AACZ,cAAA,sBAAA,EAAuB;AACvB,cAAA,iBAAA,CAAkB,IAAI,CAAA;AAAA,YACxB,CAAA;AAAA,YACA,SAAA,EAAU,qDAAA;AAAA,YACV,KAAA,EAAM;AAAA;AAAA;AACR;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ","file":"chunk-O4VBKKND.mjs","sourcesContent":["import { create } from \"zustand\";\n\ninterface ModalIframePreloadStore {\n modalUrl: string;\n isOpenModal: boolean;\n isIframeReady: boolean;\n setModalUrl: (url: string) => void;\n openModal: () => void;\n closeModal: () => void;\n setIsIframeReady: (ready: boolean) => void;\n reset: () => void;\n}\n\nconst INITIAL_STATE: Omit<\n ModalIframePreloadStore,\n \"setModalUrl\" | \"openModal\" | \"closeModal\" | \"setIsIframeReady\" | \"reset\"\n> = {\n modalUrl: \"\",\n isOpenModal: false,\n isIframeReady: false,\n};\n\nexport const useModalIframePreload = create<ModalIframePreloadStore>()(\n (set) => ({\n ...INITIAL_STATE,\n setModalUrl: (url: string) => set({ modalUrl: url }),\n openModal: () => set({ isOpenModal: true }),\n closeModal: () => {\n set({\n isOpenModal: false,\n isIframeReady: false,\n modalUrl: \"\",\n });\n },\n setIsIframeReady: (ready: boolean) => set({ isIframeReady: ready }),\n reset: () => set(INITIAL_STATE),\n })\n);\n","import { useEffect, useRef, useCallback } from \"react\";\n\nexport type MessageStatus = \"EXPIRED_APP\" | \"OPEN_APP\" | \"LAUNCH_APP\" | \"HOME_APP\" | \"NOT_APP\" | \"OPEN_MOBILE\";\n\nexport interface IframeMessage {\n status: MessageStatus;\n url?: string;\n data?: unknown;\n token?: string;\n type?: \"LOGIN\" | \"FIRMA\";\n}\n\ninterface UseIframeCommunicationParams {\n onExpiredApp?: (data: IframeMessage) => void;\n onOpenApp?: (data: IframeMessage) => void;\n onLaunchApp?: (data: IframeMessage) => void;\n onHomeApp?: (data: IframeMessage) => void;\n onNotApp?: (data: IframeMessage) => void;\n onOpenMobile?: (data: IframeMessage) => void;\n enabled?: boolean;\n allowedOrigin?: string;\n}\n\nexport const useIframeCommunication = ({\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n enabled = true,\n allowedOrigin,\n}: UseIframeCommunicationParams = {}) => {\n const handlersRef = useRef({\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n });\n\n useEffect(() => {\n handlersRef.current = {\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n };\n }, [onExpiredApp, onOpenApp, onLaunchApp, onHomeApp, onNotApp, onOpenMobile]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const handler = (event: MessageEvent) => {\n if (allowedOrigin && event.origin !== allowedOrigin) {\n console.warn(\n `Mensaje rechazado de origen no permitido: ${event.origin}`,\n );\n return;\n }\n\n const data = event.data as IframeMessage;\n if (!data?.status) return;\n\n const handlers = handlersRef.current;\n\n switch (data.status) {\n case \"EXPIRED_APP\":\n handlers.onExpiredApp?.(data);\n break;\n case \"OPEN_APP\":\n handlers.onOpenApp?.(data);\n break;\n case \"LAUNCH_APP\":\n handlers.onLaunchApp?.(data);\n break;\n case \"HOME_APP\":\n handlers.onHomeApp?.(data);\n break;\n case \"NOT_APP\":\n handlers.onNotApp?.(data);\n break;\n case \"OPEN_MOBILE\":\n handlers.onOpenMobile?.(data);\n break;\n default:\n break;\n }\n };\n\n globalThis.addEventListener(\"message\", handler);\n return () => globalThis.removeEventListener(\"message\", handler);\n }, [enabled, allowedOrigin]);\n};\n\ninterface UseSendMessageToIframeParams {\n iframeRef: React.RefObject<HTMLIFrameElement | null>;\n modalUrl: string;\n}\n\nexport const useSendMessageToIframe = ({\n iframeRef,\n modalUrl,\n}: UseSendMessageToIframeParams) => {\n const sendMessageToIframe = useCallback(\n (message: Record<string, unknown>) => {\n if (!iframeRef.current || !modalUrl) return;\n\n try {\n const iframeOrigin = new URL(modalUrl).origin;\n iframeRef.current.contentWindow?.postMessage(message, iframeOrigin);\n } catch (error) {\n console.error(\"Error al enviar mensaje al iframe:\", error);\n }\n },\n [iframeRef, modalUrl],\n );\n\n return { sendMessageToIframe };\n};\n","import { useRef } from \"react\";\n\nimport { useModalIframePreload } from \"../store/modalIframePreload\";\n\nexport const useIframePreload = () => {\n const {\n modalUrl,\n setModalUrl,\n isOpenModal,\n closeModal,\n setIsIframeReady,\n openModal,\n reset,\n } = useModalIframePreload();\n\n const preloadIframeRef = useRef<HTMLIFrameElement>(null);\n const iframeRef = useRef<HTMLIFrameElement>(null);\n\n const isPreloading = !!modalUrl && !isOpenModal;\n\n const handlePreloadIframeReady = () => {\n setIsIframeReady(true);\n openModal();\n };\n\n const handleModalIframeReady = () => {\n if (!useModalIframePreload.getState().isIframeReady) {\n setIsIframeReady(true);\n }\n };\n\n return {\n modalUrl,\n setModalUrl,\n isOpenModal,\n closeModal,\n isPreloading,\n preloadIframeRef,\n iframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n reset,\n };\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport io, { type Socket } from \"socket.io-client\";\n\nconst RECONNECTION_ATTEMPTS = 14;\n\nexport interface SocketEventData {\n success: boolean;\n token: string;\n}\n\ninterface UseSocketConnectionParams {\n socketUrl: string;\n secure?: boolean;\n isOpenLaunchApp: boolean;\n dataOpenLaunchApp: Record<string, unknown>;\n closeLaunchApp: () => void;\n closeModal: () => void;\n onComplete?: (data: SocketEventData) => void;\n onDisconnectClient?: () => void;\n onDisconnect?: () => void;\n onMaxReconnects?: () => void;\n onConnectionChange?: (connected: boolean) => void;\n enabled?: boolean;\n isSessionExpired?: boolean;\n}\n\nexport const useSocketConnection = ({\n socketUrl,\n secure = false,\n isOpenLaunchApp,\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n onConnectionChange,\n enabled = true,\n isSessionExpired = false,\n}: UseSocketConnectionParams) => {\n const socketRef = useRef<Socket | null>(null);\n const [attempts, setAttempts] = useState(0);\n\n const dataOpenLaunchAppRef = useRef(dataOpenLaunchApp);\n const closeLaunchAppRef = useRef(closeLaunchApp);\n const closeModalRef = useRef(closeModal);\n const enabledRef = useRef(enabled);\n const onConnectionChangeRef = useRef(onConnectionChange);\n const onCompleteRef = useRef(onComplete);\n const onDisconnectClientRef = useRef(onDisconnectClient);\n const onDisconnectRef = useRef(onDisconnect);\n const onMaxReconnectsRef = useRef(onMaxReconnects);\n\n useEffect(() => {\n dataOpenLaunchAppRef.current = dataOpenLaunchApp;\n closeLaunchAppRef.current = closeLaunchApp;\n closeModalRef.current = closeModal;\n enabledRef.current = enabled;\n onConnectionChangeRef.current = onConnectionChange;\n onCompleteRef.current = onComplete;\n onDisconnectClientRef.current = onDisconnectClient;\n onDisconnectRef.current = onDisconnect;\n onMaxReconnectsRef.current = onMaxReconnects;\n }, [\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal,\n enabled,\n onConnectionChange,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n ]);\n\n useEffect(() => {\n if (attempts === RECONNECTION_ATTEMPTS) {\n if (socketRef.current) {\n socketRef.current.disconnect();\n }\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onMaxReconnectsRef.current?.();\n setTimeout(() => setAttempts(0), 0);\n }\n }, [attempts]);\n\n useEffect(() => {\n if (!enabled) {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n onConnectionChangeRef.current?.(false);\n setTimeout(() => setAttempts(0), 0);\n }\n return;\n }\n\n if (!isOpenLaunchApp) {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n return;\n }\n\n if (!socketRef.current) {\n socketRef.current = io(socketUrl, {\n transports: [\"websocket\"],\n secure,\n upgrade: false,\n forceNew: true,\n reconnection: true,\n reconnectionAttempts: RECONNECTION_ATTEMPTS,\n reconnectionDelay: 2000,\n reconnectionDelayMax: 1000,\n });\n\n const socket = socketRef.current;\n\n const handleConnect = () => {\n if (!enabledRef.current) return;\n\n onConnectionChangeRef.current?.(true);\n if (socketRef.current) {\n const jsonObject = dataOpenLaunchAppRef.current;\n\n if (jsonObject && Object.keys(jsonObject).length > 0) {\n socketRef.current.emit(\"setToken\", jsonObject);\n } else {\n setTimeout(() => {\n const delayedData = dataOpenLaunchAppRef.current;\n if (\n delayedData &&\n Object.keys(delayedData).length > 0 &&\n socketRef.current &&\n enabledRef.current\n ) {\n socketRef.current.emit(\"setToken\", delayedData);\n }\n }, 100);\n }\n } else {\n console.error(\"Socket no está disponible para enviar token\");\n }\n };\n\n const handleDisconnect = () => {\n if (!enabledRef.current) return;\n\n onConnectionChangeRef.current?.(false);\n closeLaunchAppRef.current();\n closeModalRef.current();\n onDisconnectRef.current?.();\n };\n\n const handleReconnectAttempt = (attemptNumber: number) => {\n setAttempts(attemptNumber);\n };\n\n const handleConnectError = (error: Error) => {\n console.error(\"Error de conexión socket:\", error);\n };\n\n const handleComplete = (data: SocketEventData) => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onCompleteRef.current?.(data);\n };\n\n const handleServerTimeout = () => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n };\n\n const handleDisconnectClient = () => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onDisconnectClientRef.current?.();\n };\n\n socket.on(\"connect\", handleConnect);\n socket.on(\"disconnect\", handleDisconnect);\n socket.on(\"connect_error\", handleConnectError);\n socket.io.on(\"reconnect_attempt\", handleReconnectAttempt);\n socket.on(\"onProcessComplete\", handleComplete);\n socket.on(\"onValidationComplete\", handleComplete);\n socket.on(\"onProcessCompleteFirma\", handleComplete);\n socket.on(\"onServerTimeout\", handleServerTimeout);\n socket.on(\"onDisconnectClient\", handleDisconnectClient);\n }\n\n return () => {\n if (socketRef.current && (!enabled || !isOpenLaunchApp)) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n };\n }, [enabled, isOpenLaunchApp, socketUrl, secure]);\n\n useEffect(() => {\n if (isSessionExpired && socketRef.current) {\n socketRef.current.emit(\"setTimeout\", \"TIMEOUT_APP\");\n }\n }, [isSessionExpired]);\n\n useEffect(() => {\n return () => {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n };\n }, []);\n\n return { attempts };\n};\n","import { useState, useCallback, useEffect } from \"react\";\n\nimport {\n useIframeCommunication,\n useIframePreload,\n useSocketConnection,\n type SocketEventData,\n} from \"../onpeId\";\n\ninterface UseOnpeIdAuthParams {\n socketUrl: string;\n secure?: boolean;\n navigate: (url: string) => void;\n onConnectionChange?: (connected: boolean) => void;\n connectionApp?: boolean;\n onPageReload?: () => void;\n onComplete?: (data: SocketEventData) => void;\n onDisconnectClient?: () => void;\n onExpiredApp?: () => void;\n onDisconnect?: () => void;\n onMaxReconnects?: () => void;\n onHomeApp?: () => void;\n onNotApp?: () => void;\n onOpenMobile?: (data: Record<string, unknown>) => void;\n isSessionExpired?: boolean;\n}\n\nexport const useOnpeIdAuth = ({\n socketUrl,\n secure = false,\n navigate,\n onConnectionChange,\n connectionApp,\n onPageReload,\n onComplete,\n onHomeApp,\n onNotApp,\n onDisconnectClient,\n isSessionExpired,\n onExpiredApp,\n onDisconnect,\n onMaxReconnects,\n onOpenMobile,\n}: UseOnpeIdAuthParams) => {\n const [isOpenLaunchApp, setIsOpenLaunchApp] = useState(false);\n const [dataOpenLaunchApp, setDataOpenLaunchApp] = useState<\n Record<string, unknown>\n >({});\n\n const openLaunchApp = useCallback(() => setIsOpenLaunchApp(true), []);\n const closeLaunchApp = useCallback(() => setIsOpenLaunchApp(false), []);\n\n const {\n modalUrl,\n setModalUrl,\n isOpenModal,\n isPreloading,\n closeModal,\n preloadIframeRef,\n iframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n reset: resetIframeState,\n } = useIframePreload();\n\n const handleClose = useCallback(() => {\n onConnectionChange?.(false);\n closeModal();\n closeLaunchApp();\n resetIframeState();\n }, [closeModal, closeLaunchApp, resetIframeState, onConnectionChange]);\n\n useEffect(() => {\n if (connectionApp) {\n onConnectionChange?.(false);\n onPageReload?.();\n }\n return () => {\n resetIframeState();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- solo se ejecuta en el primer render\n }, []);\n\n const { attempts } = useSocketConnection({\n socketUrl,\n secure,\n isOpenLaunchApp,\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal: handleClose,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n onConnectionChange,\n enabled: isOpenModal && !!modalUrl,\n isSessionExpired,\n });\n\n useIframeCommunication({\n onExpiredApp: () => {\n handleClose();\n onExpiredApp?.();\n },\n onOpenApp: (data) => {\n navigate(data.url!);\n },\n onLaunchApp: (data) => {\n openLaunchApp();\n setDataOpenLaunchApp((data.data as Record<string, unknown>) ?? {});\n },\n onOpenMobile: (data) => {\n onOpenMobile?.((data.data as Record<string, unknown>) ?? {});\n },\n onHomeApp: () => {\n handleClose();\n onHomeApp?.();\n },\n onNotApp: () => {\n handleClose();\n onNotApp?.();\n },\n });\n\n return {\n modalUrl,\n setModalUrl,\n isOpenModal,\n isPreloading,\n isOpenLaunchApp,\n handleClose,\n iframeRef,\n preloadIframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n attempts,\n reset: resetIframeState,\n };\n};\n","import { useState } from \"react\";\n\nimport { Modal } from \"../../components/Modal\";\n\ninterface OnpeIdModalProps {\n modalUrl: string;\n isOpenModal: boolean;\n isOpenLaunchApp: boolean;\n isOnline: boolean;\n onClose: () => void;\n iframeRef: React.RefObject<HTMLIFrameElement | null>;\n preloadIframeRef: React.RefObject<HTMLIFrameElement | null>;\n handlePreloadIframeReady: () => void;\n handleModalIframeReady: () => void;\n disableFocus?: boolean;\n}\n\nexport const OnpeIdModal = ({\n modalUrl,\n isOpenModal,\n isOpenLaunchApp,\n isOnline,\n onClose,\n iframeRef,\n preloadIframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n disableFocus = false,\n}: OnpeIdModalProps) => {\n const [isIframeLoaded, setIsIframeLoaded] = useState(false);\n\n return (\n <>\n {modalUrl && !isOpenModal && isOnline && (\n <iframe\n ref={preloadIframeRef}\n src={modalUrl}\n className=\"hidden\"\n onLoad={handlePreloadIframeReady}\n title=\"Precarga ONPE ID\"\n />\n )}\n\n <Modal\n isOpen={isOpenModal && isOnline}\n onClose={onClose}\n className=\"bg-white max-w-custom-673 p-10 relative\"\n closeButton={!isOpenLaunchApp && isIframeLoaded}\n escapeToClose={false}\n disableFocus={disableFocus}\n >\n {!!modalUrl && isOnline && (\n <iframe\n ref={iframeRef}\n src={modalUrl}\n onLoad={() => {\n handleModalIframeReady();\n setIsIframeLoaded(true);\n }}\n className=\"w-full h-[410px] min-[400px]:h-[390px] md:h-[312px]\"\n title=\"Aplicativo ONPEID para autenticación y registro\"\n />\n )}\n </Modal>\n </>\n );\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IconSpinnerDesktop, IconSpinnerMobile, IconCheck, IconQuestion, IconInfo, IconWarningNotRecommended } from './chunk-WMTOTUKK.mjs';
|
|
2
|
-
import { Modal } from './chunk-
|
|
2
|
+
import { Modal } from './chunk-SAJUQPOO.mjs';
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useState, useEffect } from 'react';
|
|
5
5
|
|
|
@@ -318,5 +318,5 @@ var ModalLoading = ({
|
|
|
318
318
|
};
|
|
319
319
|
|
|
320
320
|
export { Button, ModalConfirm, ModalLoading };
|
|
321
|
-
//# sourceMappingURL=chunk-
|
|
322
|
-
//# sourceMappingURL=chunk-
|
|
321
|
+
//# sourceMappingURL=chunk-QD5KK3V5.mjs.map
|
|
322
|
+
//# sourceMappingURL=chunk-QD5KK3V5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button/Button.tsx","../src/components/Feedback/ModalConfirm/ModalConfirm.tsx","../src/components/Feedback/ModalLoading/ModalLoading.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-FMHMRILU.mjs","sourcesContent":["import { type ReactNode } from \"react\";\n\ntype ButtonColor =\n | \"blue\"\n | \"skyblue\"\n | \"skyblue-light\"\n | \"yellow\"\n | \"light-skyblue\"\n | \"gray\"\n | \"gray-light\"\n | \"gray-extra-light\"\n | \"red\"\n | \"dark-gray\"\n | \"green\"\n | \"yellow-light\"\n | \"primary\";\n\ntype ButtonSize = \"small\" | \"normal\" | \"large\";\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n color: ButtonColor;\n title: string;\n size?: ButtonSize;\n /** Icono opcional que se muestra a la izquierda del texto */\n icon?: ReactNode;\n /** Color de fondo del contenedor del icono. Si no se especifica, usa el mismo color del botón */\n colorBgIcon?: ButtonColor;\n /** Deshabilita el click al presionar Enter o Espacio */\n disableEnterClick?: boolean;\n /** Activa el efecto hover (default: true) */\n hoverEffect?: boolean;\n}\n\nconst colorClasses: Record<ButtonColor, string> = {\n blue: \"bg-onpe-blue\",\n skyblue: \"bg-onpe-skyblue\",\n \"skyblue-light\": \"bg-onpe-skyblue-light\",\n yellow: \"bg-onpe-yellow\",\n \"light-skyblue\": \"bg-onpe-light-skyblue\",\n gray: \"bg-onpe-gray\",\n \"gray-light\": \"bg-onpe-gray-light\",\n \"gray-extra-light\": \"bg-onpe-gray-extra-light\",\n red: \"bg-onpe-red\",\n \"dark-gray\": \"bg-onpe-dark-gray\",\n green: \"bg-onpe-green\",\n \"yellow-light\": \"bg-onpe-yellow-light\",\n primary: \"bg-onpe-blue\",\n};\n\nconst sizeClasses: Record<ButtonSize, string> = {\n small: \"h-10 text-sm\",\n normal: \"h-12 text-base\",\n large: \"h-14 text-lg\",\n};\n\nexport function Button({\n color,\n title,\n size = \"normal\",\n className = \"\",\n icon,\n colorBgIcon,\n disableEnterClick,\n hoverEffect = false,\n ...props\n}: ButtonProps) {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n }\n };\n\n return (\n <button\n className={[\n \"inline-flex items-center\",\n icon ? \"\" : \"justify-center\",\n \"min-w-[200px] border-none\",\n \"text-white font-semibold cursor-pointer\",\n \"transition-all duration-300 ease-in-out\",\n \"disabled:cursor-default disabled:bg-onpe-gray!\",\n hoverEffect ? \"hover:opacity-50 disabled:hover:opacity-100\" : \"\",\n colorClasses[color],\n sizeClasses[size],\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n onKeyDown={disableEnterClick ? handleKeyDown : undefined}\n {...props}\n >\n {icon && (\n <div\n className={[\n \"w-12 h-12 flex justify-center items-center shrink-0\",\n props.disabled\n ? \"bg-onpe-gray\"\n : colorClasses[colorBgIcon ?? color],\n ].join(\" \")}\n >\n {icon}\n </div>\n )}\n <span className=\"flex-1 text-center\">{title}</span>\n </button>\n );\n}\n\nexport default Button;\n","import { type ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { Button } from \"../../Button/Button\";\nimport { IconCheck } from \"../../../icons/Actions/IconCheck\";\nimport { IconWarningNotRecommended } from \"../../../icons\";\nimport { IconQuestion } from \"../../../icons/Actions/IconQuestion\";\nimport { IconInfo } from \"../../../icons/Actions/IconInfo\";\n\nexport type ModalType = \"warning\" | \"success\" | \"question\" | \"info\" | \"none\";\n\n/** Mapa de override de color a clase CSS (icono + título) */\nconst colorOverrideMap: Record<string, string> = {\n red: \"text-onpe-red\",\n blue: \"text-onpe-blue\",\n skyblue: \"text-onpe-skyblue\",\n yellow: \"text-onpe-yellow\",\n};\n\nfunction renderIcon(type: ModalType, colorClass: string): ReactNode {\n if (type === \"none\") return null;\n if (type === \"success\") {\n return (\n <IconCheck role=\"presentation\" className={`w-16 h-16 ${colorClass}`} />\n );\n }\n if (type === \"question\") {\n return (\n <IconQuestion role=\"presentation\" className={`w-16 h-16 ${colorClass}`} />\n );\n }\n if (type === \"info\") {\n return (\n <IconInfo role=\"presentation\" className={`w-16 h-16 ${colorClass}`} />\n );\n }\n // error | warning\n return (\n <IconWarningNotRecommended\n role=\"presentation\"\n className={`w-16 h-16 ${colorClass}`}\n />\n );\n}\n\nconst defaultTitleByType: Record<string, string> = {\n success: \"Confirmación\",\n warning: \"Advertencia\",\n question: \"Atención\",\n info: \"Información\",\n};\n\nexport interface ModalConfirmProps {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n /** Contenido del modal (string o JSX) */\n message?: ReactNode;\n /** Alias de message */\n content?: ReactNode;\n /** Tipo semántico: determina icono, color de título y color de botón confirmar */\n type?: ModalType;\n /**\n * \"single\" → un botón \"Confirmar\".\n * \"double\" → \"Cancelar\" + \"Confirmar\".\n * \"confirm\" → \"No\" + \"Sí\" (diálogo de confirmación Sí/No).\n */\n buttonMode?: \"single\" | \"double\" | \"confirm\";\n /** Deshabilita el botón confirmar */\n disabledConfirmButton?: boolean;\n /** Deshabilita el cierre del modal */\n closeDisabled?: boolean;\n /**\n * Override del color del icono y título.\n * Si no se provee, se deriva automáticamente del `type`.\n */\n color?: \"red\" | \"blue\" | \"skyblue\" | \"yellow\";\n onConfirm?: () => void | Promise<void>;\n onCancel?: () => void | Promise<void>;\n textButtonConfirm?: string;\n textButtonCancel?: string;\n className?: string;\n zIndexLevel?: number;\n withoutAutoClose?: boolean;\n disableFocus?: boolean;\n /** Muestra el botón X para cerrar el modal */\n closeButton?: boolean;\n /** Alinea el texto del mensaje a la izquierda (justify) en vez de centrado */\n alignJustify?: boolean;\n /** Alinea el modal al tope de la pantalla en vez de al centro */\n alignTop?: boolean;\n /** Habilita animación de entrada/salida (default: true) */\n animated?: boolean;\n /** Bloquea el scroll del body mientras el modal está abierto (default: true) */\n preventBodyScroll?: boolean;\n}\n\nexport const ModalConfirm = ({\n isOpen = false,\n onClose = () => {},\n withoutAutoClose = false,\n title,\n message,\n content,\n type = \"warning\",\n buttonMode,\n disabledConfirmButton = false,\n closeDisabled = false,\n color,\n onConfirm = () => {},\n onCancel = () => {},\n textButtonConfirm,\n textButtonCancel,\n className = \"\",\n zIndexLevel = 100,\n disableFocus = false,\n closeButton = false,\n alignJustify = false,\n alignTop = false,\n animated = true,\n preventBodyScroll = true,\n}: ModalConfirmProps) => {\n const titleId = \"modal-confirm-title\";\n const messageId = \"modal-confirm-message\";\n\n const effectiveTitle = title ?? defaultTitleByType[type] ?? \"\";\n // Título e ícono siempre skyblue por defecto; `color` es el único override\n const effectiveColorClass = color\n ? (colorOverrideMap[color] ?? \"text-onpe-skyblue\")\n : \"text-onpe-skyblue\";\n const effectiveButtonMode =\n buttonMode ?? (type === \"question\" ? \"confirm\" : \"single\");\n const isConfirmMode = effectiveButtonMode === \"confirm\";\n const showTwoButtons = effectiveButtonMode === \"double\" || isConfirmMode;\n const confirmLabel =\n textButtonConfirm ??\n (isConfirmMode\n ? \"Sí\"\n : effectiveButtonMode === \"double\"\n ? \"Confirmar\"\n : \"Aceptar\");\n const cancelLabel = textButtonCancel ?? (isConfirmMode ? \"No\" : \"Cancelar\");\n\n const handleConfirm = async () => {\n try {\n await onConfirm();\n if (!withoutAutoClose) onClose();\n } catch (error) {\n console.error(\"Error en handleConfirm:\", error);\n if (!withoutAutoClose) onClose();\n }\n };\n\n const handleCancel = () => {\n onCancel();\n if (!withoutAutoClose) onClose();\n };\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[30px] pb-[30px] px-[30px] max-w-[719px]! ${className}`}\n closeButton={closeButton}\n closeDisabled={closeDisabled}\n zIndexLevel={zIndexLevel}\n aria-labelledby={titleId}\n aria-describedby={messageId}\n disableFocus={disableFocus}\n alignTop={alignTop}\n animated={animated}\n preventBodyScroll={preventBodyScroll}\n >\n {/* Icono */}\n <div className=\"flex items-center justify-center\">\n {renderIcon(type, effectiveColorClass)}\n </div>\n\n {/* Título */}\n <p\n id={titleId}\n className={[\n \"text-lg md:text-2xl font-semibold text-center mt-0 md:mt-4\",\n effectiveColorClass,\n ].join(\" \")}\n >\n {effectiveTitle}\n </p>\n\n {/* Mensaje / Contenido */}\n {message &&\n (typeof message === \"string\" ? (\n <div\n id={messageId}\n className={`mt-7 w-full text-sm md:text-lg text-black ${alignJustify ? \"text-justify\" : \"text-center\"}`}\n dangerouslySetInnerHTML={{ __html: message }}\n />\n ) : (\n <div\n id={messageId}\n className={`mt-7 w-full text-sm md:text-lg max-w-full text-black ${alignJustify ? \"text-justify\" : \"text-center\"}`}\n >\n {message}\n </div>\n ))}\n {content && (\n <div\n id={message ? undefined : messageId}\n className={`text-sm w-full md:text-lg max-w-full text-black ${alignJustify ? \"text-justify\" : \"text-center\"}`}\n >\n {content}\n </div>\n )}\n\n {/* Mobile: apilado */}\n <div className=\"flex flex-col items-center justify-center w-full gap-5 mt-11 md:hidden\">\n <Button\n className=\"w-full max-w-[200px]\"\n color=\"red\"\n title={confirmLabel}\n onClick={handleConfirm}\n disabled={disabledConfirmButton}\n />\n {showTwoButtons && (\n <Button\n className=\"w-full max-w-[200px]\"\n color=\"skyblue\"\n title={cancelLabel}\n onClick={handleCancel}\n />\n )}\n </div>\n\n {/* Desktop: fila */}\n <div className=\"hidden md:flex md:flex-row items-center justify-center w-full gap-5 mt-11\">\n {showTwoButtons && (\n <Button\n className=\"w-[200px]\"\n color=\"skyblue\"\n title={cancelLabel}\n onClick={handleCancel}\n />\n )}\n <Button\n className=\"w-[200px]\"\n color=\"red\"\n title={confirmLabel}\n onClick={handleConfirm}\n disabled={disabledConfirmButton}\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalConfirm;\n","import { type ReactNode, useEffect, useState } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { IconSpinnerDesktop } from \"../../../icons/Actions/IconSpinnerDesktop\";\nimport { IconSpinnerMobile } from \"../../../icons/Actions/IconSpinnerMobile\";\n\nexport interface ModalLoadingProps {\n isOpen: boolean;\n onClose?: () => void;\n message?: string;\n className?: string;\n zIndexLevel?: number;\n animated?: boolean;\n preventBodyScroll?: boolean;\n /** Spinner personalizado. Si no se provee, se usa el spinner por defecto de la librería. */\n spinner?: ReactNode;\n}\n\nexport const ModalLoading = ({\n isOpen = false,\n onClose = () => {},\n message = \"Cargando...\",\n className = \"\",\n zIndexLevel = 100,\n animated = true,\n preventBodyScroll = true,\n spinner,\n}: ModalLoadingProps) => {\n const [announceMessage, setAnnounceMessage] = useState(\"\");\n\n useEffect(() => {\n if (!isOpen) {\n setAnnounceMessage(\"\");\n return;\n }\n setAnnounceMessage(\"\");\n const t = globalThis.setTimeout(() => {\n setAnnounceMessage(message);\n }, 150);\n return () => {\n globalThis.clearTimeout(t);\n };\n }, [isOpen, message]);\n\n return (\n <Modal\n disableFocus\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={className}\n closeDisabled\n whitoutBackground={true}\n animated={animated}\n preventBodyScroll={preventBodyScroll}\n >\n <div className=\"sr-only\" aria-live=\"assertive\" aria-atomic=\"true\">\n {announceMessage}\n </div>\n {spinner ?? (\n <>\n <IconSpinnerDesktop\n className=\"hidden md:block text-white animate-spin\"\n aria-hidden=\"true\"\n />\n <IconSpinnerMobile\n className=\"block md:hidden text-white animate-spin\"\n aria-hidden=\"true\"\n />\n </>\n )}\n <p\n className={`text-white leading-normal text-2xl md:text-[64px] text-center ${spinner ? \"mt-5\" : \"mt-10 md:mt-20\"}`}\n >\n {message}\n </p>\n </Modal>\n );\n};\n\nexport default ModalLoading;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.tsx","../src/components/Feedback/ModalConfirm/ModalConfirm.tsx","../src/components/Feedback/ModalLoading/ModalLoading.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-QD5KK3V5.mjs","sourcesContent":["import { type ReactNode } from \"react\";\n\ntype ButtonColor =\n | \"blue\"\n | \"skyblue\"\n | \"skyblue-light\"\n | \"yellow\"\n | \"light-skyblue\"\n | \"gray\"\n | \"gray-light\"\n | \"gray-extra-light\"\n | \"red\"\n | \"dark-gray\"\n | \"green\"\n | \"yellow-light\"\n | \"primary\";\n\ntype ButtonSize = \"small\" | \"normal\" | \"large\";\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n color: ButtonColor;\n title: string;\n size?: ButtonSize;\n /** Icono opcional que se muestra a la izquierda del texto */\n icon?: ReactNode;\n /** Color de fondo del contenedor del icono. Si no se especifica, usa el mismo color del botón */\n colorBgIcon?: ButtonColor;\n /** Deshabilita el click al presionar Enter o Espacio */\n disableEnterClick?: boolean;\n /** Activa el efecto hover (default: true) */\n hoverEffect?: boolean;\n}\n\nconst colorClasses: Record<ButtonColor, string> = {\n blue: \"bg-onpe-blue\",\n skyblue: \"bg-onpe-skyblue\",\n \"skyblue-light\": \"bg-onpe-skyblue-light\",\n yellow: \"bg-onpe-yellow\",\n \"light-skyblue\": \"bg-onpe-light-skyblue\",\n gray: \"bg-onpe-gray\",\n \"gray-light\": \"bg-onpe-gray-light\",\n \"gray-extra-light\": \"bg-onpe-gray-extra-light\",\n red: \"bg-onpe-red\",\n \"dark-gray\": \"bg-onpe-dark-gray\",\n green: \"bg-onpe-green\",\n \"yellow-light\": \"bg-onpe-yellow-light\",\n primary: \"bg-onpe-blue\",\n};\n\nconst sizeClasses: Record<ButtonSize, string> = {\n small: \"h-10 text-sm\",\n normal: \"h-12 text-base\",\n large: \"h-14 text-lg\",\n};\n\nexport function Button({\n color,\n title,\n size = \"normal\",\n className = \"\",\n icon,\n colorBgIcon,\n disableEnterClick,\n hoverEffect = false,\n ...props\n}: ButtonProps) {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n }\n };\n\n return (\n <button\n className={[\n \"inline-flex items-center\",\n icon ? \"\" : \"justify-center\",\n \"min-w-[200px] border-none\",\n \"text-white font-semibold cursor-pointer\",\n \"transition-all duration-300 ease-in-out\",\n \"disabled:cursor-default disabled:bg-onpe-gray!\",\n hoverEffect ? \"hover:opacity-50 disabled:hover:opacity-100\" : \"\",\n colorClasses[color],\n sizeClasses[size],\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n onKeyDown={disableEnterClick ? handleKeyDown : undefined}\n {...props}\n >\n {icon && (\n <div\n className={[\n \"w-12 h-12 flex justify-center items-center shrink-0\",\n props.disabled\n ? \"bg-onpe-gray\"\n : colorClasses[colorBgIcon ?? color],\n ].join(\" \")}\n >\n {icon}\n </div>\n )}\n <span className=\"flex-1 text-center\">{title}</span>\n </button>\n );\n}\n\nexport default Button;\n","import { type ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { Button } from \"../../Button/Button\";\nimport { IconCheck } from \"../../../icons/Actions/IconCheck\";\nimport { IconWarningNotRecommended } from \"../../../icons\";\nimport { IconQuestion } from \"../../../icons/Actions/IconQuestion\";\nimport { IconInfo } from \"../../../icons/Actions/IconInfo\";\n\nexport type ModalType = \"warning\" | \"success\" | \"question\" | \"info\" | \"none\";\n\n/** Mapa de override de color a clase CSS (icono + título) */\nconst colorOverrideMap: Record<string, string> = {\n red: \"text-onpe-red\",\n blue: \"text-onpe-blue\",\n skyblue: \"text-onpe-skyblue\",\n yellow: \"text-onpe-yellow\",\n};\n\nfunction renderIcon(type: ModalType, colorClass: string): ReactNode {\n if (type === \"none\") return null;\n if (type === \"success\") {\n return (\n <IconCheck role=\"presentation\" className={`w-16 h-16 ${colorClass}`} />\n );\n }\n if (type === \"question\") {\n return (\n <IconQuestion role=\"presentation\" className={`w-16 h-16 ${colorClass}`} />\n );\n }\n if (type === \"info\") {\n return (\n <IconInfo role=\"presentation\" className={`w-16 h-16 ${colorClass}`} />\n );\n }\n // error | warning\n return (\n <IconWarningNotRecommended\n role=\"presentation\"\n className={`w-16 h-16 ${colorClass}`}\n />\n );\n}\n\nconst defaultTitleByType: Record<string, string> = {\n success: \"Confirmación\",\n warning: \"Advertencia\",\n question: \"Atención\",\n info: \"Información\",\n};\n\nexport interface ModalConfirmProps {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n /** Contenido del modal (string o JSX) */\n message?: ReactNode;\n /** Alias de message */\n content?: ReactNode;\n /** Tipo semántico: determina icono, color de título y color de botón confirmar */\n type?: ModalType;\n /**\n * \"single\" → un botón \"Confirmar\".\n * \"double\" → \"Cancelar\" + \"Confirmar\".\n * \"confirm\" → \"No\" + \"Sí\" (diálogo de confirmación Sí/No).\n */\n buttonMode?: \"single\" | \"double\" | \"confirm\";\n /** Deshabilita el botón confirmar */\n disabledConfirmButton?: boolean;\n /** Deshabilita el cierre del modal */\n closeDisabled?: boolean;\n /**\n * Override del color del icono y título.\n * Si no se provee, se deriva automáticamente del `type`.\n */\n color?: \"red\" | \"blue\" | \"skyblue\" | \"yellow\";\n onConfirm?: () => void | Promise<void>;\n onCancel?: () => void | Promise<void>;\n textButtonConfirm?: string;\n textButtonCancel?: string;\n className?: string;\n zIndexLevel?: number;\n withoutAutoClose?: boolean;\n disableFocus?: boolean;\n /** Muestra el botón X para cerrar el modal */\n closeButton?: boolean;\n /** Alinea el texto del mensaje a la izquierda (justify) en vez de centrado */\n alignJustify?: boolean;\n /** Alinea el modal al tope de la pantalla en vez de al centro */\n alignTop?: boolean;\n /** Habilita animación de entrada/salida (default: true) */\n animated?: boolean;\n /** Bloquea el scroll del body mientras el modal está abierto (default: true) */\n preventBodyScroll?: boolean;\n}\n\nexport const ModalConfirm = ({\n isOpen = false,\n onClose = () => {},\n withoutAutoClose = false,\n title,\n message,\n content,\n type = \"warning\",\n buttonMode,\n disabledConfirmButton = false,\n closeDisabled = false,\n color,\n onConfirm = () => {},\n onCancel = () => {},\n textButtonConfirm,\n textButtonCancel,\n className = \"\",\n zIndexLevel = 100,\n disableFocus = false,\n closeButton = false,\n alignJustify = false,\n alignTop = false,\n animated = true,\n preventBodyScroll = true,\n}: ModalConfirmProps) => {\n const titleId = \"modal-confirm-title\";\n const messageId = \"modal-confirm-message\";\n\n const effectiveTitle = title ?? defaultTitleByType[type] ?? \"\";\n // Título e ícono siempre skyblue por defecto; `color` es el único override\n const effectiveColorClass = color\n ? (colorOverrideMap[color] ?? \"text-onpe-skyblue\")\n : \"text-onpe-skyblue\";\n const effectiveButtonMode =\n buttonMode ?? (type === \"question\" ? \"confirm\" : \"single\");\n const isConfirmMode = effectiveButtonMode === \"confirm\";\n const showTwoButtons = effectiveButtonMode === \"double\" || isConfirmMode;\n const confirmLabel =\n textButtonConfirm ??\n (isConfirmMode\n ? \"Sí\"\n : effectiveButtonMode === \"double\"\n ? \"Confirmar\"\n : \"Aceptar\");\n const cancelLabel = textButtonCancel ?? (isConfirmMode ? \"No\" : \"Cancelar\");\n\n const handleConfirm = async () => {\n try {\n await onConfirm();\n if (!withoutAutoClose) onClose();\n } catch (error) {\n console.error(\"Error en handleConfirm:\", error);\n if (!withoutAutoClose) onClose();\n }\n };\n\n const handleCancel = () => {\n onCancel();\n if (!withoutAutoClose) onClose();\n };\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[30px] pb-[30px] px-[30px] max-w-[719px]! ${className}`}\n closeButton={closeButton}\n closeDisabled={closeDisabled}\n zIndexLevel={zIndexLevel}\n aria-labelledby={titleId}\n aria-describedby={messageId}\n disableFocus={disableFocus}\n alignTop={alignTop}\n animated={animated}\n preventBodyScroll={preventBodyScroll}\n >\n {/* Icono */}\n <div className=\"flex items-center justify-center\">\n {renderIcon(type, effectiveColorClass)}\n </div>\n\n {/* Título */}\n <p\n id={titleId}\n className={[\n \"text-lg md:text-2xl font-semibold text-center mt-0 md:mt-4\",\n effectiveColorClass,\n ].join(\" \")}\n >\n {effectiveTitle}\n </p>\n\n {/* Mensaje / Contenido */}\n {message &&\n (typeof message === \"string\" ? (\n <div\n id={messageId}\n className={`mt-7 w-full text-sm md:text-lg text-black ${alignJustify ? \"text-justify\" : \"text-center\"}`}\n dangerouslySetInnerHTML={{ __html: message }}\n />\n ) : (\n <div\n id={messageId}\n className={`mt-7 w-full text-sm md:text-lg max-w-full text-black ${alignJustify ? \"text-justify\" : \"text-center\"}`}\n >\n {message}\n </div>\n ))}\n {content && (\n <div\n id={message ? undefined : messageId}\n className={`text-sm w-full md:text-lg max-w-full text-black ${alignJustify ? \"text-justify\" : \"text-center\"}`}\n >\n {content}\n </div>\n )}\n\n {/* Mobile: apilado */}\n <div className=\"flex flex-col items-center justify-center w-full gap-5 mt-11 md:hidden\">\n <Button\n className=\"w-full max-w-[200px]\"\n color=\"red\"\n title={confirmLabel}\n onClick={handleConfirm}\n disabled={disabledConfirmButton}\n />\n {showTwoButtons && (\n <Button\n className=\"w-full max-w-[200px]\"\n color=\"skyblue\"\n title={cancelLabel}\n onClick={handleCancel}\n />\n )}\n </div>\n\n {/* Desktop: fila */}\n <div className=\"hidden md:flex md:flex-row items-center justify-center w-full gap-5 mt-11\">\n {showTwoButtons && (\n <Button\n className=\"w-[200px]\"\n color=\"skyblue\"\n title={cancelLabel}\n onClick={handleCancel}\n />\n )}\n <Button\n className=\"w-[200px]\"\n color=\"red\"\n title={confirmLabel}\n onClick={handleConfirm}\n disabled={disabledConfirmButton}\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalConfirm;\n","import { type ReactNode, useEffect, useState } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { IconSpinnerDesktop } from \"../../../icons/Actions/IconSpinnerDesktop\";\nimport { IconSpinnerMobile } from \"../../../icons/Actions/IconSpinnerMobile\";\n\nexport interface ModalLoadingProps {\n isOpen: boolean;\n onClose?: () => void;\n message?: string;\n className?: string;\n zIndexLevel?: number;\n animated?: boolean;\n preventBodyScroll?: boolean;\n /** Spinner personalizado. Si no se provee, se usa el spinner por defecto de la librería. */\n spinner?: ReactNode;\n}\n\nexport const ModalLoading = ({\n isOpen = false,\n onClose = () => {},\n message = \"Cargando...\",\n className = \"\",\n zIndexLevel = 100,\n animated = true,\n preventBodyScroll = true,\n spinner,\n}: ModalLoadingProps) => {\n const [announceMessage, setAnnounceMessage] = useState(\"\");\n\n useEffect(() => {\n if (!isOpen) {\n setAnnounceMessage(\"\");\n return;\n }\n setAnnounceMessage(\"\");\n const t = globalThis.setTimeout(() => {\n setAnnounceMessage(message);\n }, 150);\n return () => {\n globalThis.clearTimeout(t);\n };\n }, [isOpen, message]);\n\n return (\n <Modal\n disableFocus\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={className}\n closeDisabled\n whitoutBackground={true}\n animated={animated}\n preventBodyScroll={preventBodyScroll}\n >\n <div className=\"sr-only\" aria-live=\"assertive\" aria-atomic=\"true\">\n {announceMessage}\n </div>\n {spinner ?? (\n <>\n <IconSpinnerDesktop\n className=\"hidden md:block text-white animate-spin\"\n aria-hidden=\"true\"\n />\n <IconSpinnerMobile\n className=\"block md:hidden text-white animate-spin\"\n aria-hidden=\"true\"\n />\n </>\n )}\n <p\n className={`text-white leading-normal text-2xl md:text-[64px] text-center ${spinner ? \"mt-5\" : \"mt-10 md:mt-20\"}`}\n >\n {message}\n </p>\n </Modal>\n );\n};\n\nexport default ModalLoading;\n"]}
|
|
@@ -309,7 +309,11 @@ var Modal = ({
|
|
|
309
309
|
document.removeEventListener("keydown", handleKeyDown);
|
|
310
310
|
document.removeEventListener("focusin", handleDocumentFocusIn, true);
|
|
311
311
|
if (!disableFocus && !disableFocusRestore && previousActiveElement.current) {
|
|
312
|
-
|
|
312
|
+
try {
|
|
313
|
+
previousActiveElement.current.focus({ preventScroll: true });
|
|
314
|
+
} catch {
|
|
315
|
+
previousActiveElement.current.focus();
|
|
316
|
+
}
|
|
313
317
|
}
|
|
314
318
|
};
|
|
315
319
|
}, [
|
|
@@ -407,5 +411,5 @@ var Modal = ({
|
|
|
407
411
|
};
|
|
408
412
|
|
|
409
413
|
export { Modal, ModalGlobalContext, Portal };
|
|
410
|
-
//# sourceMappingURL=chunk-
|
|
411
|
-
//# sourceMappingURL=chunk-
|
|
414
|
+
//# sourceMappingURL=chunk-SAJUQPOO.mjs.map
|
|
415
|
+
//# sourceMappingURL=chunk-SAJUQPOO.mjs.map
|