From c2edebb99ace1e1a72e101adac0f06a3b3c2a3fc Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 16 May 2023 16:03:41 -0500 Subject: [PATCH] first commit --- .env.development | 2 + .env.production | 2 + .env.qa | 2 + package.json | 37 +- public/index.html | 8 +- src/App.test.tsx | 9 - src/App.tsx | 133 +- .../Corresponsales/CCorresponsalesTrafico.ts | 181 + .../CatCorresponsales/CatCorresponsales.tsx | 375 + .../ControlledInput/ControlledInput.tsx | 114 + .../Catalogos/CatTabulador/CatTabulador.tsx | 501 + .../Corresponsales/Anticipos/Anticipos.tsx | 614 + .../CatProveedores/CatProveedores.tsx | 269 + .../ControlledInput/ControlledInput.tsx | 77 + .../Contenedores/Contenedores.tsx | 252 + .../ControlledInput/ControlledInput.tsx | 79 + .../Contenedores/SelectContainer.tsx | 326 + .../CuentasComplementarias.tsx | 569 + .../SelectEstatus/SelectEstatus.tsx | 85 + .../Corresponsales/Guias/SelectGuias.tsx | 190 + .../ControlledInput/ControlledInput.tsx | 110 + .../PagosTerceros/PagosTerceros.tsx | 365 + .../Partidas/Dialog/DialogBox.tsx | 308 + .../Corresponsales/Partidas/Partidas.tsx | 269 + .../ControlledInput/ControlledInput.tsx | 148 + .../ProveedorFactura/ProveedorFactura.tsx | 426 + .../Rectificaciones/Rectificaciones.tsx | 180 + .../Corresponsales/Tabulador/Tabulador.tsx | 314 + .../Corresponsales/TraficoCorresponsales.tsx | 3413 ++++++ src/Components/Dashboard/Dashboard.tsx | 47 + .../Dashboard/DashboardClasificacion.tsx | 122 + .../Dashboard/DashboardContabilidad.tsx | 116 + .../Dashboard/DashboardCorresponsales.tsx | 150 + .../Dashboard/DashboardFacturacion.tsx | 56 + src/Components/Dashboard/DashboardTrafico.tsx | 113 + src/Components/Home/home.tsx | 77 + src/Components/Login/login.tsx | 163 + src/Components/Logout/logout.tsx | 21 + src/Components/MenuUsuario/MenuUsuario.tsx | 37 + src/Components/Register/UserList/UserList.tsx | 276 + .../Register/admonPerfiles/AdmonPerfiles.tsx | 258 + .../nuevoItemMenu/NuevoItemMenu.tsx | 193 + .../admonPerfiles/nuevoPerfil/NuevoPerfil.tsx | 125 + src/Components/Register/register.tsx | 1400 +++ .../Reportes/RptCorresponsalesTraficos.tsx | 525 + .../Reportes/RptCorresponsalesTraficosHst.tsx | 519 + .../Reportes/customCells/ProcessStatus.tsx | 36 + .../Reportes/customCells/progressBar.tsx | 31 + .../Reportes/customCells/verPDF.tsx | 18 + src/Components/Submenu/Submenu.tsx | 62 + .../Utils/ControlledInput/ControlledInput.tsx | 51 + .../Utils/FileManager/FileManager.tsx | 245 + .../Utils/MFileManager/MFileManager.tsx | 335 + src/Components/Utils/Toast/msgInformativo.tsx | 51 + .../asignacionPerfil/asignacionPerfil.tsx | 43 + .../registerPermisoClientes.tsx | 127 + .../resetCredentials/resetCredentials.tsx | 99 + src/Constants/TargetURL.ts | 11 + .../CasaCuervo/DTO325AduanasPedidos.ts | 4 + .../CasaCuervo/DTO325UpdateFromWeb.ts | 14 + src/DTO/Clientes/CasaCuervo/DTORptPedidos.ts | 5 + .../Corresponsales/DTOAnticiposAutoriza.ts | 4 + .../DTOCorresponsalFacturaProveedor.ts | 7 + .../DTOCorresponsalFacturasTerceros.ts | 6 + .../Corresponsales/DTOCorresponsalTrafico.ts | 40 + .../Corresponsales/DTOCuentaComplementaria.ts | 5 + .../DTOCuentaComplementariaEstatus.ts | 4 + src/DTO/Corresponsales/DTOItems.ts | 4 + ...DTOLogCorresponsalComplementariaEstatus.ts | 5 + .../DTORectificacionHistorico.ts | 4 + .../DTORptCorresponsalesTraficos.ts | 9 + src/DTO/Corresponsales/DTOTraficoCompleto.ts | 6 + src/DTO/DTOAEPeriodo.ts | 7 + src/DTO/DTOClienteTransportita.ts | 5 + src/DTO/DTOClonarUsuario.ts | 4 + src/DTO/DTOItemMenuPerfil.ts | 5 + src/DTO/DTOPerfilCreate.ts | 4 + src/DTO/DTOReporte.ts | 7 + src/DTO/DTOUsuario.ts | 4 + src/DTO/DTOUsuarioCliente.ts | 5 + src/DTO/DTOUsuariosShort.ts | 4 + src/DTO/DTOasignaClienteProveedor.ts | 6 + src/DTO/DTOgetArchivosPorReferencia.ts | 8 + src/DTO/DTOgetThesePedimentos.ts | 8 + src/DTO/DTOid.ts | 3 + .../Anexo/DTOAnexoFacturacionAlen.ts | 7 + .../Anexo/DTOAnexoFacturacionMission.ts | 8 + src/DTO/Utils/DTOConceptos.ts | 4 + .../DTONotificacionesContactoGrupo.ts | 5 + .../Catalogos/ICatCorresponsales.ts | 7 + src/Interfaces/Catalogos/ICatProveedores.ts | 5 + src/Interfaces/Catalogos/IClientes.ts | 5 + src/Interfaces/Catalogos/IItemMenu.ts | 7 + src/Interfaces/Catalogos/IPerfiles.ts | 4 + src/Interfaces/Catalogos/IProveedores.ts | 8 + src/Interfaces/Catalogos/ITabulador.ts | 5 + .../Catalogos/ITabuladorConceptos.ts | 8 + src/Interfaces/Catalogos/ITransportitas.ts | 7 + src/Interfaces/Catalogos/IUsuarios.ts | 11 + .../Corresponsales/ICorresponsalAnticipos.ts | 15 + .../Corresponsales/ICorresponsalCatAduanas.ts | 6 + .../ICorresponsalCatDestinos.ts | 5 + .../ICorresponsalCatMediosEmbarque.ts | 4 + .../ICorresponsalCatTipoDocumento.ts | 7 + .../ICorresponsalContenedores.ts | 8 + ...CorresponsalCuentaComplementariaEstatus.ts | 4 + .../ICorresponsalCuentasComplementarias.ts | 9 + .../Corresponsales/ICorresponsalFacturas.ts | 12 + .../ICorresponsalFacturasTerceros.ts | 7 + .../Corresponsales/ICorresponsalPedimento.ts | 35 + .../ICorresponsalPedimentoPartidas.ts | 15 + .../ICorresponsalRazonesRechazo.ts | 3 + .../ICorresponsalRectificacionHistorico.ts | 12 + .../Corresponsales/ICorresponsalTrafico.ts | 43 + .../ICorresponsalTraficoContabilidad.ts | 9 + .../ICorresponsalesCatTiposEmbarque.ts | 5 + .../ICorresponsalesCatTraficoEstatus.ts | 5 + .../Corresponsales/ICorresponsalesGuias.ts | 6 + .../ICorresponsalesRectificaciones.ts | 8 + .../Corresponsales/ICorresponsalesZips.ts | 10 + .../Dashboard/DashboardCorresponsales.ts | 4 + .../Anexo/IAnexoFacturacionAlen.ts | 22 + .../Anexo/IAnexoFacturacionMission.ts | 15 + .../Anexo/IConsolidadosSinCerrar.ts | 5 + src/Interfaces/IArchivoElectronico.ts | 7 + src/Interfaces/IDashboardTotal.ts | 3 + src/Interfaces/IFotosBodega.ts | 11 + src/Interfaces/IPerfilesMenu.tsx | 12 + src/Interfaces/IRegister.tsx | 32 + src/Interfaces/IRespuesta.ts | 3 + src/Interfaces/ITokenInfo.ts | 12 + src/Interfaces/IjwtStructure.ts | 10 + src/Interfaces/Ilogin.ts | 4 + .../Reportes/IRptArchivoElectronicoOficial.ts | 7 + src/Interfaces/Reportes/IRptBattery.ts | 7 + src/Interfaces/Reportes/IRptOperaciones.ts | 19 + .../Reportes/IRptOperacionesConsolidadas.ts | 32 + .../Reportes/IRptOperacionesDiarias.ts | 16 + .../Reportes/IRptPedimentosConsolidados.ts | 37 + .../Reportes/IRptPedimentosPagados.tsx | 50 + .../IRptPedimentosPagadosImpuestos.ts | 29 + src/Interfaces/Reportes/RptDetalleAnexo24.tsx | 53 + .../Reportes/RptOperacionesRemesa.tsx | 99 + src/Interfaces/Utils/IFileManager.ts | 9 + .../Utils/INotificacionesConceptos.ts | 5 + .../Utils/INotificacionesContactos.ts | 9 + .../Utils/INotificacionesContactosGrupos.ts | 5 + src/Interfaces/Utils/INotificacionesGrupos.ts | 5 + src/Interfaces/Utils/INotificacionesLog.ts | 7 + src/Interfaces/registroPermisoClientes.tsx | 8 + src/Interfaces/token.ts | 3 + src/Services/Auth/Auth.Service.ts | 39 + .../Catalogos/ArchivoElectronico.Services.ts | 60 + src/Services/Catalogos/Clientes.Services.ts | 35 + .../Catalogos/Corresponsales.Services.ts | 43 + .../Catalogos/PerfilesMenu.Services.ts | 51 + .../Catalogos/Proveedores.Services.ts | 18 + src/Services/Catalogos/Usuarios.Services.ts | 49 + .../Contabilidad.Corresponsalias.Services.ts | 18 + .../Corresponsales.Anticipos.Services.ts | 22 + .../Corresponsales.CatAduanas.Services.ts | 11 + .../Corresponsales.CatDestinos.Services.ts | 11 + ...rresponsales.CatMediosEmbarque.Services.ts | 11 + ...orresponsales.CatTiposEmbarque.Services.ts | 11 + .../Corresponsales.Contenedores.Services.ts | 16 + ...onsales.CuentasComplementarias.Services.ts | 36 + .../Corresponsales.Facturas.Services.ts | 16 + ...orresponsales.FacturasTerceros.services.ts | 17 + .../Corresponsales.Guias.Services.ts | 16 + .../Corresponsales.Precuenta.Services.ts | 16 + ...responsales.Tabuladores.Detalle.Sevices.ts | 20 + .../Corresponsales.Tabuladores.Services.ts | 23 + ...les.Trafico.Pedimento.Partidas.Services.ts | 18 + ...rresponsales.Trafico.Pedimento.Services.ts | 17 + .../Corresponsales.Trafico.Services.ts | 36 + ...esponsalias.CatTiposDocumentos.Services.ts | 10 + .../Dashboard.Clasificacion.Services.ts | 9 + .../Dashboard.Contabilidad.Service.ts | 15 + .../Dashboard.Corresponsales.Services.ts | 12 + .../Anexo/Anexo.Facturacion.Services.ts | 21 + .../Operaciones/Operaciones.Services.ts | 12 + src/Services/Reportes/reportes.services.ts | 71 + src/Services/Utils/FileManager.Services.ts | 27 + src/Services/Utils/MFileManager.Service.ts | 26 + .../Notificaciones/Notificaciones.Services.ts | 43 + src/Services/common/http-common.ts | 77 + src/css/autoComplete.css | 54 + src/css/development-home.css | 60 + src/css/generalStyles.css | 29 + src/css/generic01.css | 296 + src/css/heineken.css | 101 + src/css/heineken1.css | 91 + src/css/home.css | 60 + src/css/imageModal.css | 4 + src/css/login.css | 44 + src/css/masterDetail.css | 203 + src/css/menu.css | 48 + src/css/menu2.css | 68 + src/css/printableArea.css | 24 + src/css/production-home.css | 60 + src/css/qa-home.css | 60 + src/css/react-flexy-table.css | 5 + src/css/register.css | 5 + src/css/zincinternacional.css | 115 + src/images/AvisoCruceFooter.png | Bin 0 -> 22328 bytes src/images/AvisoCruceHeader.png | Bin 0 -> 67221 bytes src/images/GEMCO.png | Bin 0 -> 59873 bytes src/images/GEMCO_logo_min.png | Bin 0 -> 32402 bytes src/images/GEMCO_mini.png | Bin 0 -> 18731 bytes src/images/Logo.ico | Bin 0 -> 151070 bytes src/images/QA.png | Bin 0 -> 18329 bytes src/images/ajaxloader.gif | Bin 0 -> 42933 bytes src/images/search01.png | Bin 0 -> 786 bytes src/index.tsx | 92 +- .../CatCorresponsalesSlice.ts | 42 + .../CatProveedores/CatProveedoresSlice.ts | 33 + .../CorresponsalesAnticiposSlice.ts | 62 + .../CorresponsalesContenedoresSlice.ts | 39 + ...salesCuentasComplementariasEstatusSlice.ts | 44 + .../CorresponsalesFacturasSlice.ts | 89 + .../CorresponsalesFacturasTercerosSlice.ts | 40 + .../CorresponsalesGuiasSlice.ts | 34 + .../CorresponsalesPartidasSlice.ts | 36 + .../CorresponsalesTraficoSlice.ts | 73 + .../features/Reportes/ArchivoElectronico.ts | 26 + .../userStatusSlice/userStatusSlice.ts | 20 + src/store/hooks.ts | 6 + src/store/store.ts | 32 + yarn.lock | 10077 ++++++++++++++++ 229 files changed, 28667 insertions(+), 49 deletions(-) create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .env.qa delete mode 100644 src/App.test.tsx create mode 100644 src/Classes/Corresponsales/CCorresponsalesTrafico.ts create mode 100644 src/Components/Catalogos/CatCorresponsales/CatCorresponsales.tsx create mode 100644 src/Components/Catalogos/CatCorresponsales/ControlledInput/ControlledInput.tsx create mode 100644 src/Components/Catalogos/CatTabulador/CatTabulador.tsx create mode 100644 src/Components/Corresponsales/Anticipos/Anticipos.tsx create mode 100644 src/Components/Corresponsales/CatProveedores/CatProveedores.tsx create mode 100644 src/Components/Corresponsales/CatProveedores/ControlledInput/ControlledInput.tsx create mode 100644 src/Components/Corresponsales/Contenedores/Contenedores.tsx create mode 100644 src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx create mode 100644 src/Components/Corresponsales/Contenedores/SelectContainer.tsx create mode 100644 src/Components/Corresponsales/CuentasComplementarias/CuentasComplementarias.tsx create mode 100644 src/Components/Corresponsales/CuentasComplementarias/SelectEstatus/SelectEstatus.tsx create mode 100644 src/Components/Corresponsales/Guias/SelectGuias.tsx create mode 100644 src/Components/Corresponsales/PagosTerceros/ControlledInput/ControlledInput.tsx create mode 100644 src/Components/Corresponsales/PagosTerceros/PagosTerceros.tsx create mode 100644 src/Components/Corresponsales/Partidas/Dialog/DialogBox.tsx create mode 100644 src/Components/Corresponsales/Partidas/Partidas.tsx create mode 100644 src/Components/Corresponsales/ProveedorFactura/ControlledInput/ControlledInput.tsx create mode 100644 src/Components/Corresponsales/ProveedorFactura/ProveedorFactura.tsx create mode 100644 src/Components/Corresponsales/Rectificaciones/Rectificaciones.tsx create mode 100644 src/Components/Corresponsales/Tabulador/Tabulador.tsx create mode 100644 src/Components/Corresponsales/TraficoCorresponsales.tsx create mode 100644 src/Components/Dashboard/Dashboard.tsx create mode 100644 src/Components/Dashboard/DashboardClasificacion.tsx create mode 100644 src/Components/Dashboard/DashboardContabilidad.tsx create mode 100644 src/Components/Dashboard/DashboardCorresponsales.tsx create mode 100644 src/Components/Dashboard/DashboardFacturacion.tsx create mode 100644 src/Components/Dashboard/DashboardTrafico.tsx create mode 100644 src/Components/Home/home.tsx create mode 100644 src/Components/Login/login.tsx create mode 100644 src/Components/Logout/logout.tsx create mode 100644 src/Components/MenuUsuario/MenuUsuario.tsx create mode 100644 src/Components/Register/UserList/UserList.tsx create mode 100644 src/Components/Register/admonPerfiles/AdmonPerfiles.tsx create mode 100644 src/Components/Register/admonPerfiles/nuevoItemMenu/NuevoItemMenu.tsx create mode 100644 src/Components/Register/admonPerfiles/nuevoPerfil/NuevoPerfil.tsx create mode 100644 src/Components/Register/register.tsx create mode 100644 src/Components/Reportes/RptCorresponsalesTraficos.tsx create mode 100644 src/Components/Reportes/RptCorresponsalesTraficosHst.tsx create mode 100644 src/Components/Reportes/customCells/ProcessStatus.tsx create mode 100644 src/Components/Reportes/customCells/progressBar.tsx create mode 100644 src/Components/Reportes/customCells/verPDF.tsx create mode 100644 src/Components/Submenu/Submenu.tsx create mode 100644 src/Components/Utils/ControlledInput/ControlledInput.tsx create mode 100644 src/Components/Utils/FileManager/FileManager.tsx create mode 100644 src/Components/Utils/MFileManager/MFileManager.tsx create mode 100644 src/Components/Utils/Toast/msgInformativo.tsx create mode 100644 src/Components/asignacionPerfil/asignacionPerfil.tsx create mode 100644 src/Components/registerPermisoClientes/registerPermisoClientes.tsx create mode 100644 src/Components/resetCredentials/resetCredentials.tsx create mode 100644 src/Constants/TargetURL.ts create mode 100644 src/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.ts create mode 100644 src/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.ts create mode 100644 src/DTO/Clientes/CasaCuervo/DTORptPedidos.ts create mode 100644 src/DTO/Corresponsales/DTOAnticiposAutoriza.ts create mode 100644 src/DTO/Corresponsales/DTOCorresponsalFacturaProveedor.ts create mode 100644 src/DTO/Corresponsales/DTOCorresponsalFacturasTerceros.ts create mode 100644 src/DTO/Corresponsales/DTOCorresponsalTrafico.ts create mode 100644 src/DTO/Corresponsales/DTOCuentaComplementaria.ts create mode 100644 src/DTO/Corresponsales/DTOCuentaComplementariaEstatus.ts create mode 100644 src/DTO/Corresponsales/DTOItems.ts create mode 100644 src/DTO/Corresponsales/DTOLogCorresponsalComplementariaEstatus.ts create mode 100644 src/DTO/Corresponsales/DTORectificacionHistorico.ts create mode 100644 src/DTO/Corresponsales/DTORptCorresponsalesTraficos.ts create mode 100644 src/DTO/Corresponsales/DTOTraficoCompleto.ts create mode 100644 src/DTO/DTOAEPeriodo.ts create mode 100644 src/DTO/DTOClienteTransportita.ts create mode 100644 src/DTO/DTOClonarUsuario.ts create mode 100644 src/DTO/DTOItemMenuPerfil.ts create mode 100644 src/DTO/DTOPerfilCreate.ts create mode 100644 src/DTO/DTOReporte.ts create mode 100644 src/DTO/DTOUsuario.ts create mode 100644 src/DTO/DTOUsuarioCliente.ts create mode 100644 src/DTO/DTOUsuariosShort.ts create mode 100644 src/DTO/DTOasignaClienteProveedor.ts create mode 100644 src/DTO/DTOgetArchivosPorReferencia.ts create mode 100644 src/DTO/DTOgetThesePedimentos.ts create mode 100644 src/DTO/DTOid.ts create mode 100644 src/DTO/Facturacion/Anexo/DTOAnexoFacturacionAlen.ts create mode 100644 src/DTO/Facturacion/Anexo/DTOAnexoFacturacionMission.ts create mode 100644 src/DTO/Utils/DTOConceptos.ts create mode 100644 src/DTO/Utils/Notificaciones/DTONotificacionesContactoGrupo.ts create mode 100644 src/Interfaces/Catalogos/ICatCorresponsales.ts create mode 100644 src/Interfaces/Catalogos/ICatProveedores.ts create mode 100644 src/Interfaces/Catalogos/IClientes.ts create mode 100644 src/Interfaces/Catalogos/IItemMenu.ts create mode 100644 src/Interfaces/Catalogos/IPerfiles.ts create mode 100644 src/Interfaces/Catalogos/IProveedores.ts create mode 100644 src/Interfaces/Catalogos/ITabulador.ts create mode 100644 src/Interfaces/Catalogos/ITabuladorConceptos.ts create mode 100644 src/Interfaces/Catalogos/ITransportitas.ts create mode 100644 src/Interfaces/Catalogos/IUsuarios.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalAnticipos.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalCatAduanas.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalCatDestinos.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalCatMediosEmbarque.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalCatTipoDocumento.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalContenedores.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalCuentasComplementarias.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalFacturas.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalFacturasTerceros.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalPedimento.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalPedimentoPartidas.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalRazonesRechazo.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalRectificacionHistorico.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalTrafico.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalTraficoContabilidad.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalesCatTiposEmbarque.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalesGuias.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalesRectificaciones.ts create mode 100644 src/Interfaces/Corresponsales/ICorresponsalesZips.ts create mode 100644 src/Interfaces/Dashboard/DashboardCorresponsales.ts create mode 100644 src/Interfaces/Facturacion/Anexo/IAnexoFacturacionAlen.ts create mode 100644 src/Interfaces/Facturacion/Anexo/IAnexoFacturacionMission.ts create mode 100644 src/Interfaces/Facturacion/Anexo/IConsolidadosSinCerrar.ts create mode 100644 src/Interfaces/IArchivoElectronico.ts create mode 100644 src/Interfaces/IDashboardTotal.ts create mode 100644 src/Interfaces/IFotosBodega.ts create mode 100644 src/Interfaces/IPerfilesMenu.tsx create mode 100644 src/Interfaces/IRegister.tsx create mode 100644 src/Interfaces/IRespuesta.ts create mode 100644 src/Interfaces/ITokenInfo.ts create mode 100644 src/Interfaces/IjwtStructure.ts create mode 100644 src/Interfaces/Ilogin.ts create mode 100644 src/Interfaces/Reportes/IRptArchivoElectronicoOficial.ts create mode 100644 src/Interfaces/Reportes/IRptBattery.ts create mode 100644 src/Interfaces/Reportes/IRptOperaciones.ts create mode 100644 src/Interfaces/Reportes/IRptOperacionesConsolidadas.ts create mode 100644 src/Interfaces/Reportes/IRptOperacionesDiarias.ts create mode 100644 src/Interfaces/Reportes/IRptPedimentosConsolidados.ts create mode 100644 src/Interfaces/Reportes/IRptPedimentosPagados.tsx create mode 100644 src/Interfaces/Reportes/IRptPedimentosPagadosImpuestos.ts create mode 100644 src/Interfaces/Reportes/RptDetalleAnexo24.tsx create mode 100644 src/Interfaces/Reportes/RptOperacionesRemesa.tsx create mode 100644 src/Interfaces/Utils/IFileManager.ts create mode 100644 src/Interfaces/Utils/INotificacionesConceptos.ts create mode 100644 src/Interfaces/Utils/INotificacionesContactos.ts create mode 100644 src/Interfaces/Utils/INotificacionesContactosGrupos.ts create mode 100644 src/Interfaces/Utils/INotificacionesGrupos.ts create mode 100644 src/Interfaces/Utils/INotificacionesLog.ts create mode 100644 src/Interfaces/registroPermisoClientes.tsx create mode 100644 src/Interfaces/token.ts create mode 100644 src/Services/Auth/Auth.Service.ts create mode 100644 src/Services/Catalogos/ArchivoElectronico.Services.ts create mode 100644 src/Services/Catalogos/Clientes.Services.ts create mode 100644 src/Services/Catalogos/Corresponsales.Services.ts create mode 100644 src/Services/Catalogos/PerfilesMenu.Services.ts create mode 100644 src/Services/Catalogos/Proveedores.Services.ts create mode 100644 src/Services/Catalogos/Usuarios.Services.ts create mode 100644 src/Services/Contabilidad/Contabilidad.Corresponsalias.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Anticipos.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.CatAduanas.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.CatDestinos.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.CatMediosEmbarque.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.CatTiposEmbarque.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Contenedores.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Facturas.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.FacturasTerceros.services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Guias.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Precuenta.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Tabuladores.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts create mode 100644 src/Services/Corresponsalias/Corresponsalias.CatTiposDocumentos.Services.ts create mode 100644 src/Services/Dashboard/Dashboard.Clasificacion.Services.ts create mode 100644 src/Services/Dashboard/Dashboard.Contabilidad.Service.ts create mode 100644 src/Services/Dashboard/Dashboard.Corresponsales.Services.ts create mode 100644 src/Services/Facturacion/Anexo/Anexo.Facturacion.Services.ts create mode 100644 src/Services/Operaciones/Operaciones.Services.ts create mode 100644 src/Services/Reportes/reportes.services.ts create mode 100644 src/Services/Utils/FileManager.Services.ts create mode 100644 src/Services/Utils/MFileManager.Service.ts create mode 100644 src/Services/Utils/Notificaciones/Notificaciones.Services.ts create mode 100644 src/Services/common/http-common.ts create mode 100644 src/css/autoComplete.css create mode 100644 src/css/development-home.css create mode 100644 src/css/generalStyles.css create mode 100644 src/css/generic01.css create mode 100644 src/css/heineken.css create mode 100644 src/css/heineken1.css create mode 100644 src/css/home.css create mode 100644 src/css/imageModal.css create mode 100644 src/css/login.css create mode 100644 src/css/masterDetail.css create mode 100644 src/css/menu.css create mode 100644 src/css/menu2.css create mode 100644 src/css/printableArea.css create mode 100644 src/css/production-home.css create mode 100644 src/css/qa-home.css create mode 100644 src/css/react-flexy-table.css create mode 100644 src/css/register.css create mode 100644 src/css/zincinternacional.css create mode 100644 src/images/AvisoCruceFooter.png create mode 100644 src/images/AvisoCruceHeader.png create mode 100644 src/images/GEMCO.png create mode 100644 src/images/GEMCO_logo_min.png create mode 100644 src/images/GEMCO_mini.png create mode 100644 src/images/Logo.ico create mode 100644 src/images/QA.png create mode 100644 src/images/ajaxloader.gif create mode 100644 src/images/search01.png create mode 100644 src/store/features/CatCorresponsales/CatCorresponsalesSlice.ts create mode 100644 src/store/features/CatProveedores/CatProveedoresSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesAnticiposSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesFacturasSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesFacturasTercerosSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesGuiasSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesPartidasSlice.ts create mode 100644 src/store/features/Corresponsales/CorresponsalesTraficoSlice.ts create mode 100644 src/store/features/Reportes/ArchivoElectronico.ts create mode 100644 src/store/features/userStatusSlice/userStatusSlice.ts create mode 100644 src/store/hooks.ts create mode 100644 src/store/store.ts create mode 100644 yarn.lock diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..8dc4075 --- /dev/null +++ b/.env.development @@ -0,0 +1,2 @@ +REACT_APP_ENVIRONMENT=development +REACT_APP_API=https://localhost:5041/api \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..624dd3e --- /dev/null +++ b/.env.production @@ -0,0 +1,2 @@ +REACT_APP_ENVIRONMENT=production +REACT_APP_API=https://www.gemcousa.mx/CORRESPONSALBackend/api diff --git a/.env.qa b/.env.qa new file mode 100644 index 0000000..3f60a2c --- /dev/null +++ b/.env.qa @@ -0,0 +1,2 @@ +REACT_APP_ENVIRONMENT=qa +REACT_APP_API=https://www.gemcousa.solutions/CORRESPONSALBackend/api \ No newline at end of file diff --git a/package.json b/package.json index 276aab9..1d039d4 100644 --- a/package.json +++ b/package.json @@ -3,22 +3,53 @@ "version": "0.1.0", "private": true, "dependencies": { + "@reduxjs/toolkit": "^1.9.5", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "@types/bootstrap": "^5.2.6", "@types/jest": "^27.5.2", "@types/node": "^16.18.30", "@types/react": "^18.2.6", "@types/react-dom": "^18.2.4", + "@types/styled-components": "^5.1.26", + "ag-grid-community": "^29.3.5", + "ag-grid-react": "^29.3.5", + "apexcharts": "^3.40.0", + "axios": "^1.4.0", + "boostrap": "^2.0.0", + "bootstrap": "^5.2.3", + "dotenv": "^16.0.3", + "env-cmd": "^10.1.0", + "formik": "^2.2.9", + "jwt-decode": "^3.1.2", + "moment": "^2.29.4", "react": "^18.2.0", + "react-apexcharts": "^1.4.0", + "react-bootstrap": "^2.7.4", + "react-currency-format": "^1.1.0", + "react-data-table-component": "^7.5.3", + "react-data-table-component-extensions": "^1.6.0", + "react-datepicker": "^4.11.0", "react-dom": "^18.2.0", + "react-dropzone": "^14.2.3", + "react-flexy-table": "^1.8.11", + "react-icons": "^4.8.0", + "react-redux": "^8.0.5", + "react-router-dom": "^6.11.1", "react-scripts": "5.0.1", + "styled-components": "^6.0.0-rc.1", "typescript": "^4.9.5", - "web-vitals": "^2.1.4" + "web-vitals": "^2.1.4", + "xlsx": "^0.18.5", + "yup": "^1.1.1" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", + "start-dev": "env-cmd -f .env.development react-scripts start", + "start-qa": "env-cmd -f .env.qa react-scripts start", + "start-prod": "env-cmd -f .env.production react-scripts start", + "build-qa": "env-cmd -f .env.qa react-scripts build", + "build-prod": "env-cmd -f .env.production react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, diff --git a/public/index.html b/public/index.html index aa069f2..fe7e3b6 100644 --- a/public/index.html +++ b/public/index.html @@ -24,7 +24,13 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - React App + + + + CORRESPONSALIAS diff --git a/src/App.test.tsx b/src/App.test.tsx deleted file mode 100644 index 2a68616..0000000 --- a/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/src/App.tsx b/src/App.tsx index a53698a..8c7ad4f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,26 +1,121 @@ -import React from 'react'; -import logo from './logo.svg'; -import './App.css'; +import React, { useEffect, useState } from 'react' +import { Outlet, useNavigate } from 'react-router-dom' +import { Container, Form, Nav, Navbar, NavDropdown } from 'react-bootstrap' +import ItemMenu from './Interfaces/Catalogos/IItemMenu' +import 'ag-grid-community/styles/ag-grid.css' +import 'ag-grid-community/styles/ag-theme-alpine.css' +import usuariosServices from './Services/Catalogos/Usuarios.Services' +import { logued } from './store/features/userStatusSlice/userStatusSlice' +import { useSelector, useDispatch } from 'react-redux' +import { RootState } from './store/store' +import { MsgInformativo } from './Components/Utils/Toast/msgInformativo' +import { IconContext } from 'react-icons' +import { BsPersonCircle } from 'react-icons/bs' +import Submenu from './Components/Submenu/Submenu' function App() { + const navigate = useNavigate() + const dispatch = useDispatch() + let _menu: ItemMenu[] = [] + const [mainMenu, setMainMenu] = useState(_menu) + const userLogued = useSelector((state: RootState) => state.userStatus.value) + const [show, setShow] = useState(false) + const [msg, setMsg] = useState('') + const [header, setHeader] = useState('') + const msgColor = 'primary' + const menu = localStorage.getItem('menu') ? localStorage.getItem('menu') : '' + const User = () => { + const stickyValue = window.localStorage.getItem('User') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + } + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null + ? JSON.parse(stickyValue).substring(0, 4) + '.' + : '' + }) + + useEffect(() => { + if (menu && userLogued) { + setMainMenu(JSON.parse(menu)) + } else { + setMainMenu([]) + } + }, [menu, userLogued]) + + useEffect(() => { + usuariosServices + .validate() + .then((response) => { + if (response.status === 200) { + dispatch(logued(true)) + } + }) + .catch((e: Error) => { + if (!window.location.href.indexOf('login')) { + localStorage.setItem('menu', '') + localStorage.setItem('token', '') + setHeader('Informativo') + setMsg('Su session ha expirado, necesita volver a loguerse') + setShow(true) + navigate('/') + } + }) + }, [dispatch, navigate]) + return (
-
- logo -

- Edit src/App.tsx and save to reload. -

- - Learn React - -
+ + + + GEMCO + + + + +
+ {!userLogued ? ( + <> + login  + reset + + ) : ( + <> + Logout +
+ + + +  
{Depto} 
+ + )} +
+
+
+
+
- ); + ) } -export default App; +export default App + diff --git a/src/Classes/Corresponsales/CCorresponsalesTrafico.ts b/src/Classes/Corresponsales/CCorresponsalesTrafico.ts new file mode 100644 index 0000000..0f94005 --- /dev/null +++ b/src/Classes/Corresponsales/CCorresponsalesTrafico.ts @@ -0,0 +1,181 @@ +import ICorresponsalTrafico from "../../Interfaces/Corresponsales/ICorresponsalTrafico"; + +export default class CCorresponsalesTrafico implements ICorresponsalTrafico { + id: number=0 + folioGemco: string + fechaRegistro?: string + idUsuario: number=0 + idCliente: number=0 + tipoOperacion: number=0 + opEntrada: number=0 + opSalida: number=0 + idCorresponsal: number=0 + bultos?: number + kilos?: number + estatus?: number + trafico?: string + aduana?: number + patente?: number + pedimento?: number + clave?: string + fechaPago?: string + tipoCambio?: number + valorAduanaMN?: number + totalPagado?: number + valorFacturaMN?: number + cantidadFracciones?: number + buque?: string + valorFacturaDls?: number + descripcionMercancia?: string + observaciones?: string + fechaDesaduanamiento: string + semaforoFiscal?: number + noCuenta?: string + fechaCuenta?: string + tipoMercancia?: number + ultimaActualizacion?: string + zipgemco?: string; + zipCorresponsales?: string; + proceso: number; + rechazado: number; + idTabulador: number; + noRecti: number; + estatusCode: number; + activo?: number + + constructor() { + this.id=0 + this.folioGemco='' + this.fechaRegistro='' + this.idUsuario=0 + this.idCliente=0 + this.tipoOperacion=0 + this.opEntrada=0 + this.opSalida=0 + this.idCorresponsal=0 + this.bultos=0 + this.kilos=0 + this.estatus=0 + this.trafico='' + this.aduana=0 + this.patente=0 + this.pedimento=0 + this.clave='' + this.fechaPago='' + this.tipoCambio=0 + this.valorAduanaMN=0 + this.totalPagado=0 + this.valorFacturaMN=0 + this.cantidadFracciones=0 + this.buque='' + this.valorFacturaDls=0 + this.descripcionMercancia='' + this.observaciones='' + this.fechaDesaduanamiento='' + this.semaforoFiscal=0 + this.noCuenta='' + this.fechaCuenta='' + this.tipoMercancia=0 + this.ultimaActualizacion='' + this.zipgemco='' + this.zipCorresponsales='' + this.proceso=1 + this.rechazado=1 + this.idTabulador=0 + this.noRecti=0; + this.estatusCode=0; + this.activo=1 + } + + public getEmptyObject(): ICorresponsalTrafico { + return { + id: 0, + folioGemco:'', + fechaRegistro: '', + idUsuario :0, + idCliente :0, + tipoOperacion :0, + opEntrada :0, + opSalida:0, + idCorresponsal :0, + bultos :0, + kilos :0, + estatus :0, + trafico :'', + aduana :0, + patente :0, + pedimento :0, + clave :'', + fechaPago :'', + tipoCambio :0, + valorAduanaMN :0, + totalPagado :0, + valorFacturaMN :0, + cantidadFracciones :0, + buque :'', + valorFacturaDls :0, + descripcionMercancia :'', + observaciones :'', + fechaDesaduanamiento :'', + semaforoFiscal :0, + noCuenta :'', + fechaCuenta :'', + tipoMercancia :0, + ultimaActualizacion :'', + zipgemco:'', + zipCorresponsales:'', + proceso:1, + rechazado:1, + idTabulador:0, + noRecti:0, + estatusCode:0, + activo :1 + } + } + + public setObject(data: ICorresponsalTrafico): ICorresponsalTrafico { + return { + id: data.id, + folioGemco: data.folioGemco, + fechaRegistro: data.fechaRegistro, + idUsuario : data.idUsuario, + idCliente :data.idCliente, + tipoOperacion :data.tipoOperacion, + opEntrada : data.opEntrada, + opSalida: data.opSalida, + idCorresponsal : data.idCorresponsal, + bultos :data.bultos, + kilos : data.kilos, + estatus : data.estatus, + trafico : data.trafico, + aduana : data.aduana, + patente : data.patente, + pedimento : data.pedimento, + clave : data.clave, + fechaPago : data.fechaPago, + tipoCambio : data.tipoCambio, + valorAduanaMN : data.valorAduanaMN, + totalPagado : data.totalPagado, + valorFacturaMN : data.valorFacturaMN, + cantidadFracciones : data.cantidadFracciones, + buque : data.buque, + valorFacturaDls : data.valorFacturaDls, + descripcionMercancia : data.descripcionMercancia, + observaciones : data.observaciones, + fechaDesaduanamiento : data.fechaDesaduanamiento, + semaforoFiscal : data.semaforoFiscal, + noCuenta : data.noCuenta, + fechaCuenta : data.fechaCuenta, + tipoMercancia : data.tipoMercancia, + ultimaActualizacion : data.ultimaActualizacion, + zipgemco: data.zipgemco, + zipCorresponsales: data.zipCorresponsales, + proceso: data.proceso, + rechazado: data.rechazado, + idTabulador: data.idTabulador, + noRecti: data.noRecti, + estatusCode: data.estatusCode, + activo : data.activo + } + } +} \ No newline at end of file diff --git a/src/Components/Catalogos/CatCorresponsales/CatCorresponsales.tsx b/src/Components/Catalogos/CatCorresponsales/CatCorresponsales.tsx new file mode 100644 index 0000000..82b0ce6 --- /dev/null +++ b/src/Components/Catalogos/CatCorresponsales/CatCorresponsales.tsx @@ -0,0 +1,375 @@ +import React, { FC, useEffect, useState } from 'react' +import { Alert, Button, Card, Col, Form, Modal, Row } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import ICatCorresponsales from '../../../Interfaces/Catalogos/ICatCorresponsales' +import CorresponsalesDataService from '../../../Services/Catalogos/Corresponsales.Services' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import { useDispatch, useSelector } from 'react-redux' +import { + addCatCorresponsales, + deleteCatCorresponsales, +} from '../../../store/features/CatCorresponsales/CatCorresponsalesSlice' +import { RootState } from '../../../store/store' +import DataTable from 'react-data-table-component' +import { ControlledInput } from './ControlledInput/ControlledInput' +import { FaEraser, FaTimesCircle } from 'react-icons/fa' +import * as CurrencyFormat from 'react-currency-format' + +interface IProps { + canDelete: boolean +} + +export const CatCorresponsales: FC = (props) => { + const dispatch = useDispatch() + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const [filteredData, setFilteredData] = useState([]) + const mCorresponsales = useSelector((state: RootState) => state.CatCorresponsales.CatCorresponsales) + // const gridRef = React.useRef(null) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [id, setId] = useState(0) + const [msgDialog, setMsgDialog] = useState(false) + // const [IDCorresponsal, setIDCorresponsal] = useState(0) + const [Nombre, setNombre] = useState('') + const [Patente, setPatente] = useState(0) + const [Aduana, setAduana] = useState(0) + const [Correos, setCorreos] = useState('') + + useEffect(() => { + CorresponsalesDataService.getAll() + .then((response) => { + setFilteredData(response.data) + console.log(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, []) + + const columnsCorresponsales = [ + { + name: 'id', + width: '5%', + selector: (row: ICatCorresponsales) => row.id, + sortable: true, + }, + { + name: 'Corresponsal ...................................................................................................................................... Patente ...... Aduana ...... Correos', + width: '90%', + cell: (row: ICatCorresponsales) => , + }, + { + name: 'Elimina', + width: '5%', + cell: (row: ICatCorresponsales) => ( +
{ + setId(row.id) + setNombre(row.nombre) + setPatente(row.patente) + setAduana(row.aduana) + setCorreos(row.correos) + setMsgDialog(true) + }} + > + + + +
+ ), + }, + ] + + function deleteRow(row: ICatCorresponsales) { + setId(row.id) + setNombre(row.nombre) + setPatente(row.patente) + setAduana(row.aduana) + setMsgDialog(true) + } + + const loadRow = (data: ICatCorresponsales) => { + setId(data.id) + setNombre(data.nombre) + setPatente(data.patente) + setAduana(data.aduana) + setCorreos(data.correos) + } + + function Guardar() { + if (Patente < 999) { + setHeader('Error!') + setMsgColor('danger') + setMsg('La patente debe tener 4 digitos') + setShowMsg(true) + return false + } + if (Aduana < 99) { + setHeader('Error!') + setMsgColor('danger') + setMsg('La aduana debe tener 3 digitos') + setShowMsg(true) + return false + } + const data: ICatCorresponsales = { + id: id, + nombre: Nombre, + aduana: Aduana, + patente: Patente, + correos: Correos, + } + CorresponsalesDataService.Append(data) + .then((response) => { + if (response.status == 200) { + dispatch(addCatCorresponsales(response.data)) + setMsgColor('primary') + setHeader('Confirmacion') + setMsg('La informacion se guardo exitosamente') + setShowMsg(true) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + function cleanForm() { + setId(0) + setNombre('') + setPatente(0) + setAduana(0) + } + + const deleteItem = () => { + setMsgDialog(false) + CorresponsalesDataService.Delete(id) + .then((response) => { + if (response.status == 200) { + dispatch(deleteCatCorresponsales(id)) + cleanForm() + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + + setNombre('') + setId(0) + } + + return ( +
+ + + + + Corresponsal + + + {/* setNombre((v) => (e.target.validity.valid ? e.target.value : v))} + /> */} + { + setNombre(e.target.value) + }} + /* onKeyDown={(e) => handleKeyDown(e)} */ + /> + + + Correos + + + setCorreos((v) => e.target.value)} + /> + + + + { + cleanForm() + }} + > + + + + +   + + Patente + + + { + const { formattedValue, value } = values + setPatente(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '80px', + textAlign: 'right', + borderRadius: '10px', + } + : { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '80px', + textAlign: 'right', + borderRadius: '10px', + paddingRight: '5px', + paddingLeft: '5px', + } + } + /> + +   + + Aduana + + + { + const { formattedValue, value } = values + setAduana(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '60px', + textAlign: 'right', + borderRadius: '10px', + } + : { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '60px', + textAlign: 'right', + borderRadius: '10px', + paddingRight: '5px', + paddingLeft: '5px', + } + } + /> + + + + + + + + + + + + + setMsgDialog(false)} size='sm'> + + + ¿Esta seguro de eliminar? +
+
+ {Nombre} | Patente: {Patente} | Aduana {Aduana} +
+
+
+ + + + + + + + + + +
+ { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Catalogos/CatCorresponsales/ControlledInput/ControlledInput.tsx b/src/Components/Catalogos/CatCorresponsales/ControlledInput/ControlledInput.tsx new file mode 100644 index 0000000..5f8264e --- /dev/null +++ b/src/Components/Catalogos/CatCorresponsales/ControlledInput/ControlledInput.tsx @@ -0,0 +1,114 @@ +import React, { FC, useState } from 'react' +import { useDispatch } from 'react-redux' +import ICatCorresponsales from '../../../../Interfaces/Catalogos/ICatCorresponsales' +import CorDataService from '../../../../Services/Catalogos/Corresponsales.Services' +import { updateCatCorresponsales } from '../../../../store/features/CatCorresponsales/CatCorresponsalesSlice' +import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' + +interface IProps { + record: ICatCorresponsales +} + +export const ControlledInput: FC = (props) => { + const dispatch = useDispatch() + const [IDCorresponsal, setIDCorresponsal] = useState(props.record.id) + const [Corresponsal, setCorresponsal] = useState(props.record.nombre) + const [Patente, setPatente] = useState(props.record.patente) + const [Aduana, setAduana] = useState(props.record.aduana) + const [Correos, setCorreos] = useState(props.record.correos) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + + const onChangeCor = (event: any) => { + setCorresponsal(event.target.value) + } + + const onChangeAd = (event: any) => { + setAduana(event.target.value) + } + const onChangePat = (event: any) => { + setPatente(event.target.value) + } + const onChangeEmail = (event: any) => { + setCorreos(event.target.value) + } + + const handleKeyDown = (event: any, mode: number) => { + if (event.key === 'Enter') { + if (isNaN(event.target.value) && mode === 1) { + alert('Valor no valido!') + return + } + const data: ICatCorresponsales = { + id: props.record.id, + nombre: Corresponsal, + patente: Patente, + aduana: Aduana, + correos: Correos, + } + CorDataService.Append(data) + .then((response) => { + if (response.status == 200) { + dispatch(updateCatCorresponsales(response.data)) + setHeader('Informativo') + setMsg('La informacion se guardo exitosamente') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + } + + return ( +
+ handleKeyDown(e, 2)} + style={{ width: '450px', textAlign: 'left' }} + /> +       + handleKeyDown(e, 1)} + style={{ width: '50px', textAlign: 'right' }} + /> +       + handleKeyDown(e, 1)} + style={{ width: '30px', textAlign: 'right' }} + /> +       + handleKeyDown(e, 2)} + style={{ width: '650px', textAlign: 'left' }} + /> + { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Catalogos/CatTabulador/CatTabulador.tsx b/src/Components/Catalogos/CatTabulador/CatTabulador.tsx new file mode 100644 index 0000000..003fb5d --- /dev/null +++ b/src/Components/Catalogos/CatTabulador/CatTabulador.tsx @@ -0,0 +1,501 @@ +import React, { FC, useEffect, useState } from 'react' + +import ITabulador from '../../../Interfaces/Catalogos/ITabulador' +import ITabuladorConceptos from '../../../Interfaces/Catalogos/ITabuladorConceptos' +import DTOConceptos from '../../../DTO/Utils/DTOConceptos' + +import CTabDataService from '../../../Services/Corresponsalias/Corresponsales.Tabuladores.Services' +import CTabDetDataService from '../../../Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices' +import ClientesDataService from '../../../Services/Catalogos/Clientes.Services' + +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import { ControlledInput } from '../../Utils/ControlledInput/ControlledInput' +import DataTable from 'react-data-table-component' +import { Alert, Button, Card, Col, Container, Form, Modal, Row } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import 'react-data-table-component-extensions/dist/index.css' +import { BsPlusSquareFill } from 'react-icons/bs' +import IClientes from '../../../Interfaces/Catalogos/IClientes' +import { FcTimeline } from 'react-icons/fc' +import { FaEraser, FaTimesCircle } from 'react-icons/fa' + +interface IProps {} + +interface IselectedRows { + allSelected: boolean + selectedCount: number + selectedRows: any +} + +export default function CatTabuladores (props: IProps) { + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [Tabulador, setTabulador] = useState(0) + const [Concepto, setConcepto] = useState(0) + const [Cliente, setCliente] = useState(0) + const [Clientes, setClientes] = useState>() + const [NombreTabulador, setNombreTabulador] = useState('') + const [DetalleConceptos, setDetalleConceptos] = useState([]) + const [CatConceptos, setCatConceptos] = useState([]) + const [Tabuladores, setTabuladores] = useState([]) + const [AllTabuladores, setAllTabuladores] = useState([]) + const [Costo, setCosto] = useState('') + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [DialogTabs, setDialogTabs] = useState(false) + + const columnsConcepts = [ + { + name: 'id', + selector: (row: ITabuladorConceptos) => row.id, + sortable: true, + }, + { + name: 'Concepto', + width: '70%', + selector: (row: ITabuladorConceptos) => row.concepto, + sortable: true, + }, + { + name: 'Costo', + cell: (row: ITabuladorConceptos) => ( + { + postCost(id, value) + }} + /> + ), + }, + ] + + const columnsTabs = [ + { + name: 'id', + selector: (row: ITabulador) => row.id, + sortable: true, + }, + { + name: 'Nombre', + width: '70%', + cell: (row: ITabulador) => ( +
{ + setTabulador(row.id) + setNombreTabulador(row.nombre) + }} + > + {row.nombre} +
+ ), + sortable: true, + }, + { + name: 'Elimina', + cell: (row: ITabulador) => ( +
{ + setTabulador(row.id) + setNombreTabulador(row.nombre) + setDialogTabs(true) + }} + > + + + +
+ ), + }, + ] + + const postCost = (id: number, Cost: number) => { + const data: ITabuladorConceptos = { + id: id, + idTabulador: Tabulador, + idConcepto: Concepto, + concepto: '', + costo: Cost, + activo: 1, + } + CTabDetDataService.Append(data) + .then((response) => { + setDetalleConceptos(response.data) + setHeader('Confirmacion') + setMsg('La informacion se guardo corrctamente') + setShowMsg(true) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const deleteTabulador = () => { + CTabDataService.Delete(Tabulador) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo') + setMsg(response.data.respuesta) + setShowMsg(true) + setDialogTabs(false) + setTabuladores(Tabuladores.filter((data) => data.id != Tabulador)) + setAllTabuladores(Tabuladores) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + useEffect(() => { + CTabDetDataService.getAllConcepts() + .then((response) => { + setCatConceptos(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + ClientesDataService.getAllClientes(UserId) + .then((response) => { + setClientes(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, []) + + useEffect(() => { + CTabDetDataService.GetDetailByIdTab(Tabulador) + .then((response) => { + setDetalleConceptos(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + console.log(Tabulador) + }, [Tabulador]) + + useEffect(() => { + if (Cliente > 0) { + setNombreTabulador('') + setTabuladores([]) + setDetalleConceptos([]) + CTabDataService.GetByCustomer(Cliente) + .then((response) => { + setTabuladores(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + }, [Cliente]) + + const filtraTabulador = (e: any) => { + if (e.target.value !== '') { + setTabuladores( + AllTabuladores.filter(function (el) { + return el.nombre.toLocaleLowerCase().includes(e.target.value.toLocaleLowerCase()) + }) + ) + } else { + setTabuladores(AllTabuladores) + } + } + + const saveForm = () => { + const data: ITabulador = { + id: Tabulador, + idCliente: Cliente, + nombre: NombreTabulador, + } + CTabDataService.Append(data) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo') + setMsg('La informacion se guardo correctamente') + setShowMsg(true) + if (Tabulador > 0) { + let tmp = Tabuladores + let idx = tmp.findIndex((obj) => obj.id == Tabulador) + tmp[idx].nombre = NombreTabulador + setTabuladores(tmp) + setAllTabuladores(tmp) + } else { + setTabulador(response.data.id) + const tmp = [...Tabuladores, response.data] + setTabuladores(tmp) + setAllTabuladores(tmp) + } + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const addConcept = () => { + if (Tabulador === 0) { + setHeader('Error') + setMsg('Por favor, primero seleccione el tabulador') + setShowMsg(true) + return + } + if (Concepto === 0) { + setHeader('Error') + setMsg('Por favor, primero seleccione el concepto') + setShowMsg(true) + return + } + postCost(0, 0) + } + + return ( +
+ + + + Tabuladores + + + + + +
Cliente:
+ + +

+ { + setCliente(parseInt(e.target.value)) + }} + className='form-select form-select-sm' + style={{ fontSize: '18px' }} + > + + {Clientes + ? Clientes.map((c) => { + return ( + + ) + }) + : null} + +

+ + { + setTabulador(0) + setNombreTabulador('') + }} + > + + + + + +
+
Tabulador
+
+ + +

+ { + setNombreTabulador(e.target.value) + }} + placeholder='Nombre del tabulador' + style={{ fontSize: '18px' }} + /> +

+ + + + +
+
+ + + + + + + + Tabulador + + + { + filtraTabulador(e) + }} + /> + + + + + + + + + + + + + + Conceptos + + + setConcepto(parseInt(e.target.value))} + className='form-select form-select-sm' + style={{ fontSize: '17px' }} + > + + {CatConceptos + ? CatConceptos.map((c) => { + return ( + + ) + }) + : null} + + + + { + addConcept() + }} + style={{ cursor: 'pointer' }} + > + + + + + + + + + + + + +
+
+
+
+
+ { + setDialogTabs(false) + }} + size='sm' + > + + ¿Esta seguro de eliminar: +
{NombreTabulador}? +
+ + + + + + + + + + +
+ { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Corresponsales/Anticipos/Anticipos.tsx b/src/Components/Corresponsales/Anticipos/Anticipos.tsx new file mode 100644 index 0000000..0626431 --- /dev/null +++ b/src/Components/Corresponsales/Anticipos/Anticipos.tsx @@ -0,0 +1,614 @@ +import React, { FC, useEffect, useState } from 'react' +import { Alert, Button, Col, Container, Form, Modal, Row } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import { + BsCash, + BsCheckCircle, + BsCheckCircleFill, + BsEraserFill, + BsFileEarmarkPdf, + BsFillXCircleFill, + BsPencilFill, + BsQuestionOctagonFill, +} from 'react-icons/bs' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import 'react-flexy-table/dist/index.css' +import DTOItems from '../../../DTO/Corresponsales/DTOItems' +import CAnticiposDataService from '../../../Services/Corresponsalias/Corresponsales.Anticipos.Services' + +import { + populateCorresponsalesAnticipos, + addCorresponsalesAnticipos, + deleteCorresponsalesAnticipos, + updateCorresponsalesAnticipos, +} from '../../../store/features/Corresponsales/CorresponsalesAnticiposSlice' +import ICorresponsalAnticipos from '../../../Interfaces/Corresponsales/ICorresponsalAnticipos' +import { useDispatch, useSelector } from 'react-redux' +import { RootState } from '../../../store/store' +import { AgGridReact } from 'ag-grid-react' +import { RowClickedEvent } from 'ag-grid-community' +import { BiCoinStack } from 'react-icons/bi' +import * as CurrencyFormat from 'react-currency-format' +import FileManager from '../../Utils/FileManager/FileManager' +import DTOAnticiposAutoriza from '../../../DTO/Corresponsales/DTOAnticiposAutoriza' + +interface ItemList { + id: number + item: string +} + +interface IProps { + IDTrafico: number + closeCRUDItems: (arg: boolean) => void + canDelete: boolean +} + +export const Anticipos: FC = (props) => { + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [Depto, setDept] = useState(() => { + const Depto = window.localStorage.getItem('Departamento') + return Depto !== null ? JSON.parse(Depto) : '' + }) + const mCAnticipos = useSelector((state: RootState) => state.CAnticipos.CorresponsalesAnticipos) + const [allItems, setAllItems] = useState([]) + const [filteredData, setFilteredData] = useState([]) + const [IdAnticipo, setIdAnticipo] = useState(0) + const [Anticipo, setAnticipo] = useState(0) + const [Moneda, setMoneda] = useState(2) + const [Financiado, setFinanciado] = useState(0) + const [Concepto, setConcepto] = useState('') + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [msgDialog, setMsgDialog] = useState(false) + const [MsgDialogFileManager, setMsgDialogFileManager] = useState(false) + const [msgDialogFileManagerConta, setMsgDialogFileManagerConta] = useState(false) + const gridRef = React.useRef(null) + const [deleteFile, setDeleteFile] = useState(false) + const [columnDefs] = useState([ + Depto === 'Corresponsalias' + ? { + field: 'id', + headerName: 'Acciones', + width: 110, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + return ( +
+ + { + loadRow(params.data.id) + }} + style={{ cursor: 'pointer' }} + /> + +     + + { + viewDoc(params.value) + //getFileContent(params.value) + }} + style={{ cursor: 'pointer' }} + /> + +
+ ) + }, + } + : { + field: 'id', + headerName: 'id', + width: 60, + sortable: false, + filter: false, + visible: false, + }, + { + field: 'anticipo', + headerName: 'Anticipo', + width: 120, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + return ( + + ) + }, + }, + { + field: 'moneda', + headerName: 'Moneda', + width: 105, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value === 1) { + return ( + + Pesos + + ) + } else if (params.value === 2) { + return ( + + Dollar + + ) + } else return '?' + }, + }, + { + field: 'financiado', + headerName: '¿Financiado?', + width: 135, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value === 1) + return ( +
+ + + +
+ ) + else + return ( +
+ + + +
+ ) + }, + }, + { + field: 'id', + headerName: 'Autorizado', + width: 130, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.data.autoriza === 0) + return ( +
+ + { + return Depto === 'Contabilidad' ? viewDocConta(params.value) : '#' + }} + style={{ cursor: 'pointer' }} + /> + +
+ ) + else + return ( +
+ + { + viewDocConta(params.value) + }} + style={{ cursor: 'pointer' }} + /> + +
+ ) + }, + }, + { field: 'concepto', headerName: 'Concepto', width: 350, sortable: true, filter: true }, + { field: 'sSolicita', headerName: 'Solicita', width: 150, sortable: true, filter: true }, + { + field: 'fhSolicita', + headerName: 'Fecha solicitud', + width: 200, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value !== null) { + return params.value.substring(0, 16) + } + }, + }, + { field: 'sAutoriza', headerName: 'Authoriza', width: 150, sortable: true, filter: true }, + { field: 'fhAutoriza', headerName: 'Fecha autorizacion', width: 200, sortable: true, filter: true }, + ]) + const dispatch = useDispatch() + + const cleanForm = () => { + setIdAnticipo(0) + setAnticipo(0) + setMoneda(2) + setConcepto('') + } + + const saveForm = () => { + if (Concepto.length < 5) { + setHeader('Error') + setMsg('Para poder guardar la informacion, proporcione el concepto') + setShowMsg(true) + return + } + if (Anticipo === 0) { + setHeader('Error') + setMsg('Para poder guardar la informacion, proporcione el monto del anticipo') + setShowMsg(true) + return + } + const data: ICorresponsalAnticipos = { + id: IdAnticipo, + idTrafico: props.IDTrafico, + anticipo: Anticipo, + moneda: Moneda, + concepto: Concepto, + solicita: UserId, + fhSolicita: '', + financiado: Financiado, + } + CAnticiposDataService.Append(data) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo') + setMsg('La informcion se guardo correctamente') + setShowMsg(true) + if (IdAnticipo === 0) dispatch(addCorresponsalesAnticipos(response.data)) + else dispatch(updateCorresponsalesAnticipos(response.data)) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const loadRow = (idRow: number) => { + var tmpArray = mCAnticipos.filter(function (item) { + return item.id === idRow + }) + setIdAnticipo(tmpArray[0].id) + setAnticipo(tmpArray[0].anticipo) + setConcepto(tmpArray[0].concepto) + setMoneda(tmpArray[0].moneda) + } + + const viewDoc = (idRow: number) => { + loadRow(idRow) + setMsgDialogFileManager(true) + } + + const viewDocConta = (idRow: number) => { + loadRow(idRow) + setMsgDialogFileManagerConta(true) + } + + const authorizeItem = (id: number) => { + loadRow(id) + setMsgDialog(true) + } + + const authorizeAmount = () => { + const data: DTOAnticiposAutoriza = { + id: IdAnticipo, + idUsuario: UserId, + } + CAnticiposDataService.Autoriza(data) + .then((response) => { + if (response.status == 200) { + dispatch(updateCorresponsalesAnticipos(response.data)) + setMsgDialog(false) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const deleteItem = () => { + CAnticiposDataService.Delete(IdAnticipo) + .then((response) => { + if (response.status == 200) { + dispatch(deleteCorresponsalesAnticipos(IdAnticipo)) + setMsgDialog(false) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + useEffect(() => { + CAnticiposDataService.getAll(props.IDTrafico) + .then((response) => { + dispatch(populateCorresponsalesAnticipos(response.data)) + setFilteredData(mCAnticipos) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, [props.IDTrafico]) + + useEffect(() => { + const result = mCAnticipos.filter((row) => row.id > 0 && row.idTrafico === props.IDTrafico) + }, [mCAnticipos]) + + return ( +
+ + + + { + setConcepto(e.target.value) + }} + /> + + + + + + + + + + + { + const { formattedValue, value } = values + setAnticipo(value) + }} + style={{ + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '150px', + textAlign: 'right', + borderRadius: '10px', + }} + /> + + + { + setMoneda(parseInt(e.target.value)) + }} + > + + + + + + { + setFinanciado(parseInt(e.target.value)) + }} + > + + + + + + + + + + + +
+ p.id !== 0)} + columnDefs={columnDefs} + pagination={true} + paginationAutoPageSize={true} + ref={gridRef} + rowSelection={'single'} + rowMultiSelectWithClick={true} + /* onRowClicked={(e) => getParams(e)} */ + > +
+ +
+
+ { + setShowMsg(false) + }} + > + setMsgDialog(false)} size='lg'> + + + ¿Esta seguro de eliminar ?: ' +

{Concepto}

+ Por el monto de: + + {' '} + {Moneda === 1 ? 'Pesos' : 'Dolares'} + +
+
+ + + + + + +   + + + + + + +
+ setMsgDialog(false)} size='lg'> + + + ¿Esta seguro de autorizar? +

{Concepto}

+ Por el monto de: + + {' '} + {Moneda === 1 ? 'Pesos' : 'Dolares'} + +
+
+ + + + + + +   + + + + + + +
+ setMsgDialogFileManager(false)} size='lg'> + + + + + +   + + + + + + + setMsgDialogFileManagerConta(false)} size='lg'> + + + + + +   + + + + + + +
+ ) +} diff --git a/src/Components/Corresponsales/CatProveedores/CatProveedores.tsx b/src/Components/Corresponsales/CatProveedores/CatProveedores.tsx new file mode 100644 index 0000000..41d7542 --- /dev/null +++ b/src/Components/Corresponsales/CatProveedores/CatProveedores.tsx @@ -0,0 +1,269 @@ +import { RowClickedEvent } from 'ag-grid-community' +import { AgGridReact } from 'ag-grid-react' +import React, { FC, useEffect, useState } from 'react' +import { Alert, Button, Card, Col, Form, Modal, Row } from 'react-bootstrap' +import DataTable from 'react-data-table-component' +import { IconContext } from 'react-icons' +import { FaEraser, FaTimesCircle } from 'react-icons/fa' +import { useDispatch, useSelector } from 'react-redux' +import ICatProveedores from '../../../Interfaces/Catalogos/ICatProveedores' +import ProveedoresDataService from '../../../Services/Catalogos/Proveedores.Services' +import { + addCatProveedores, + deleteCatProveedores, + populateCatProveedores, +} from '../../../store/features/CatProveedores/CatProveedoresSlice' +import { RootState } from '../../../store/store' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import { ControlledInput } from './ControlledInput/ControlledInput' + +interface IProps { + canDelete: boolean + clasificacion: number +} + +export const CatProveedores: FC = (props) => { + const dispatch = useDispatch() + const mProveedores = useSelector((state: RootState) => state.CatProveedores.CatalogoProveedores) + const [DTData, setDTData] = useState([]) + const [Proveedor, setProveedor] = useState('') + const [IDProveedor, setIDProveedor] = useState(0) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [MsgTime, setMsgTime] = useState(3000) + const [DialogTabs, setDialogTabs] = useState(false) + + const columnsProveedores = [ + { + name: 'id', + width: '10%', + selector: (row: ICatProveedores) => row.id, + sortable: true, + }, + { + name: 'Proveedor', + width: '75%', + cell: (row: ICatProveedores) => { + return ( + + ) + }, + }, + { + name: 'Elimina', + cell: (row: ICatProveedores) => ( +
{ + setIDProveedor(row.id) + setProveedor(row.nombre) + setDialogTabs(true) + }} + > + + + +
+ ), + }, + ] + + useEffect(() => { + ProveedoresDataService.getAll(props.clasificacion) + .then((response) => { + //setDTData(response.data) + dispatch(populateCatProveedores(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, []) + + const cleanForm = () => { + setIDProveedor(0) + setProveedor('') + } + + const saveForm = () => { + const data: ICatProveedores = { + id: IDProveedor, + nombre: Proveedor, + clasificacion: props.clasificacion, + } + ProveedoresDataService.Append(data) + .then((response) => { + if (response.status == 200) { + setHeader('Informativo') + setMsg('El proveedor se agrego exitosamente') + setShowMsg(true) + setDialogTabs(false) + if (data.id === 0) dispatch(addCatProveedores(response.data)) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const deleteItem = () => { + ProveedoresDataService.Delete(IDProveedor) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo') + setMsg('El provedor se ha eliminado') + setShowMsg(true) + setDialogTabs(false) + dispatch(deleteCatProveedores(IDProveedor)) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + return ( +
+ + + + + { + cleanForm() + }} + > + + + + + + + + + + {/* setProveedor((v) => (e.target.validity.valid ? e.target.value : v))} + /> */} + { + setProveedor(e.target.value) + }} + /> + + + + + +   + + + 0 + })} + /> + + + { + setShowMsg(false) + }} + /> + { + setDialogTabs(false) + }} + size='sm' + > + + + ¿Esta seguro de eliminar? +
+
{Proveedor}
+
+
+ + + + + + + + + + +
+
+ ) +} diff --git a/src/Components/Corresponsales/CatProveedores/ControlledInput/ControlledInput.tsx b/src/Components/Corresponsales/CatProveedores/ControlledInput/ControlledInput.tsx new file mode 100644 index 0000000..435ef5d --- /dev/null +++ b/src/Components/Corresponsales/CatProveedores/ControlledInput/ControlledInput.tsx @@ -0,0 +1,77 @@ +import React, { FC, useState } from 'react' +import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' +import ProvDataService from '../../../../Services/Catalogos/Proveedores.Services' +import { useDispatch } from 'react-redux' +import ICatProveedores from '../../../../Interfaces/Catalogos/ICatProveedores' +import { updateCatProveedores } from '../../../../store/features/CatProveedores/CatProveedoresSlice' + +interface IProps { + id: number + value: any + disabled?: boolean + mode: number // 1: Number, 2: String + clasificacion: number +} + +export const ControlledInput: FC = (props) => { + const dispatch = useDispatch() + const [id, setid] = useState(props.id) + const [value, setValue] = useState(props.value) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + + const onChange = (event: any) => { + setValue(event.target.value) + } + const handleKeyDown = (event: any) => { + if (event.key === 'Enter') { + if (isNaN(event.target.value) && props.mode === 1) { + alert('Valor no valido!') + return + } + const data: ICatProveedores = { + id: id, + nombre: value, + clasificacion: props.clasificacion, + } + ProvDataService.Append(data) + .then((response) => { + if (response.status == 200) { + dispatch(updateCatProveedores(response.data)) + setHeader('Informativo') + setMsg('La informacion se guardo exitosamente') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + } + return ( + <> + handleKeyDown(e)} + style={{ width: '75%' }} + /> + { + setShowMsg(false) + }} + /> + + ) +} diff --git a/src/Components/Corresponsales/Contenedores/Contenedores.tsx b/src/Components/Corresponsales/Contenedores/Contenedores.tsx new file mode 100644 index 0000000..152a318 --- /dev/null +++ b/src/Components/Corresponsales/Contenedores/Contenedores.tsx @@ -0,0 +1,252 @@ +import React, { FC, useEffect, useState } from 'react' +import { Button, Card, Col, Form, Row } from 'react-bootstrap' +import DataTable from 'react-data-table-component' +import { IconContext } from 'react-icons' +import { FaEraser, FaTimesCircle } from 'react-icons/fa' +import { useDispatch, useSelector } from 'react-redux' +import ICorresponsalContenedores from '../../../Interfaces/Corresponsales/ICorresponsalContenedores' +import CConDataService from '../../../Services/Corresponsalias/Corresponsales.Contenedores.Services' +import { RootState } from '../../../store/store' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import CContDataService from '../../../Services/Corresponsalias/Corresponsales.Contenedores.Services' +import { + addCorresponsalesContenedores, + deleteCorresponsalesContenedores, +} from '../../../store/features/Corresponsales/CorresponsalesContenedoresSlice' +import { ControlledInput } from './ControlledInput/ControlledInput' + +interface IProps { + IDTrafico: number + canDelete: boolean +} + +export const Contenedores: FC = (props) => { + const dispatch = useDispatch() + const mCContenedores = useSelector((state: RootState) => state.CCData.CorresponsalesContenedores) + const [DTData, setDTData] = useState([]) + const [Contenedor, setContenedor] = useState('') + const [IDContenedor, setIDContenedor] = useState(0) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [DialogTabs, setDialogTabs] = useState(false) + + const columnsConcepts = [ + { + name: 'id', + width: '10%', + selector: (row: ICorresponsalContenedores) => row.id, + sortable: true, + }, + { + name: 'Contenedor', + width: '75%', + cell: (row: ICorresponsalContenedores) => { + return ( + + ) + }, + }, + { + name: 'Elimina', + cell: (row: ICorresponsalContenedores) => ( +
{ + setIDContenedor(row.id) + setContenedor(row.contenedor) + setDialogTabs(true) + }} + > + + + +
+ ), + }, + ] + + useEffect(() => { + CConDataService.getAll(props.IDTrafico) + .then((response) => { + setDTData(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, []) + + const saveForm = () => { + const data: ICorresponsalContenedores = { + id: IDContenedor, + contenedor: Contenedor, + idTrafico: props.IDTrafico, + fSemaforo: '', + semaforo: 0, + } + CContDataService.Append(data) + .then((response) => { + if (response.status == 200) { + if (data.id === 0) dispatch(addCorresponsalesContenedores(response.data)) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const deleteItem = () => { + CConDataService.Delete(IDContenedor) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo') + setMsg(response.data.respuesta) + setShowMsg(true) + setDialogTabs(false) + dispatch(deleteCorresponsalesContenedores(IDContenedor)) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const cleanForm = () => { + setContenedor('') + setIDContenedor(0) + } + + return ( +
+ + + + + { + cleanForm() + }} + > + + + + + + + + + + setContenedor((v) => (e.target.validity.valid ? e.target.value : v))} + /> + + + + + +   + + + 0 + })} + /> + + + { + setShowMsg(false) + }} + /> + {/* { + setDialogTabs(false) + }} + size='sm' + > + + + ¿Esta seguro de eliminar? +
+
{Contenedor}
+
+
+ + + + + + + + + + +
*/} +
+ ) +} diff --git a/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx b/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx new file mode 100644 index 0000000..ce96048 --- /dev/null +++ b/src/Components/Corresponsales/Contenedores/ControlledInput/ControlledInput.tsx @@ -0,0 +1,79 @@ +import React, { FC, useState } from 'react' +import ICorresponsalContenedores from '../../../../Interfaces/Corresponsales/ICorresponsalContenedores' +import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' +import CContDataService from '../../../../Services/Corresponsalias/Corresponsales.Contenedores.Services' +import { updateCorresponsalesContenedores } from '../../../../store/features/Corresponsales/CorresponsalesContenedoresSlice' +import { useDispatch } from 'react-redux' + +interface IProps { + id: number + value: any + disabled?: boolean + mode: number // 1: Number, 2: String + IDTrafico: number +} + +export const ControlledInput: FC = (props) => { + const dispatch = useDispatch() + const [id, setid] = useState(props.id) + const [value, setValue] = useState(props.value) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + + const onChange = (event: any) => { + setValue(event.target.value) + } + const handleKeyDown = (event: any) => { + if (event.key === 'Enter') { + if (isNaN(event.target.value) && props.mode === 1) { + alert('Valor no valido!') + return + } + const data: ICorresponsalContenedores = { + id: id, + contenedor: value, + idTrafico: props.IDTrafico, + fSemaforo: '', + semaforo: 0, + } + CContDataService.Append(data) + .then((response) => { + if (response.status == 200) { + dispatch(updateCorresponsalesContenedores(response.data)) + setHeader('Informativo') + setMsg('La informacion se guardo exitosamente') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + } + return ( + <> + handleKeyDown(e)} + style={{ width: '75%' }} + /> + { + setShowMsg(false) + }} + /> + + ) +} diff --git a/src/Components/Corresponsales/Contenedores/SelectContainer.tsx b/src/Components/Corresponsales/Contenedores/SelectContainer.tsx new file mode 100644 index 0000000..9a07f54 --- /dev/null +++ b/src/Components/Corresponsales/Contenedores/SelectContainer.tsx @@ -0,0 +1,326 @@ +import { FC, useEffect, useState } from 'react' +import { useDispatch, useSelector } from 'react-redux' +import { RootState } from '../../../store/store' +import CContDataService from '../../../Services/Corresponsalias/Corresponsales.Contenedores.Services' +import ICorresponsalContenedores from '../../../Interfaces/Corresponsales/ICorresponsalContenedores' +import { IconContext } from 'react-icons' +import { BsFillCalendarCheckFill, BsFillCalendarDayFill, BsFillRecordFill, BsFillXCircleFill } from 'react-icons/bs' +import { + deleteCorresponsalesContenedores, + updateCorresponsalesContenedores, +} from '../../../store/features/Corresponsales/CorresponsalesContenedoresSlice' +import { Alert, Button, Col, Form, Modal, Row } from 'react-bootstrap' +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' +import { isTypeNode } from 'typescript' + +interface IProps { + IDTrafico: number + Editable: boolean +} + +export const SelectContainer: FC = (props) => { + const dispatch = useDispatch() + const [toggleSelect, setToggleSelect] = useState(false) + const mCContenedores = useSelector((state: RootState) => state.CCData.CorresponsalesContenedores) + const [Contenedor, setContenedor] = useState('') + const [IDContenedor, setIDContenedor] = useState(0) + const [Placeholder, setPlaceholder] = useState('') + const [DialogTabs, setDialogTabs] = useState(false) + const [DialogAddDate, setDialogAddDate] = useState(false) + const [FSemaforo, setFSemaforo] = useState() + const [Semaforo, setSemaforo] = useState(0) + + useEffect(() => { + setPlaceholder('(' + mCContenedores.filter((item) => item.id > 0).length + ') Contenedores') + }, [mCContenedores]) + + const loadInfo = (data: ICorresponsalContenedores) => { + setIDContenedor(data.id) + setContenedor(data.contenedor) + } + + const handleKeyDown = (event: any) => { + if (event.key === 'Enter') { + const data: ICorresponsalContenedores = { + id: IDContenedor, + contenedor: Contenedor, + idTrafico: props.IDTrafico, + fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '', + semaforo: Semaforo, + } + CContDataService.Append(data) + .then((response) => { + if (response.status === 200) { + dispatch(updateCorresponsalesContenedores(response.data)) + setContenedor('') + setToggleSelect(true) + } + }) + .catch((e: Error) => { + return + }) + } + } + + const adjustTimeZone = (str: string): string => { + if (str) { + const original: any = new Date(str) + const real = new Date(original - original.getTimezoneOffset() * 60 * 1000) + return real.toISOString() + } else return '' + } + + const updateItem = () => { + const data: ICorresponsalContenedores = { + id: IDContenedor, + contenedor: Contenedor, + idTrafico: props.IDTrafico, + fSemaforo: FSemaforo ? adjustTimeZone(FSemaforo.toISOString()) : '', + semaforo: Semaforo, + } + // console.log(JSON.stringify(data)) + CContDataService.Append(data) + .then((response) => { + if (response.status === 200) { + setIDContenedor(0) + setContenedor('') + setDialogTabs(false) + dispatch(updateCorresponsalesContenedores(response.data)) + return + } + }) + .catch((e: Error) => { + return + }) + } + + const StrtoDate = (str: string): Date | null => { + if (str) { + const original: any = new Date(str) + return original + } else return null + } + + return ( +
+
+
+
+ + + { + setIDContenedor(0) + setContenedor('') + }} + /> + + { + setContenedor(e.target.value) + }} + onKeyDown={(e) => handleKeyDown(e)} + /> + + { + setToggleSelect(!toggleSelect) + }} + /> + +
+
    + {mCContenedores + ? mCContenedores + .map((item, index) => { + return item.id > 0 ? ( +
  • loadInfo(item)}> + { + setDialogTabs(true) + }} + > + + + + + {item.contenedor} + { + setFSemaforo(StrtoDate(item.fSemaforo)) + setSemaforo(item.semaforo) + setDialogAddDate(true) + }} + > +  | {item.fSemaforo} |{' '} + {item.fSemaforo ? ( + item.semaforo === 1 ? ( + + + + ) : ( + + + + ) + ) : ( + '' + )} + + + + + + +
  • + ) : ( + '' + ) + }) + .reverse() + : ''} +
+
+
+
+
+ { + setDialogTabs(false) + }} + size='sm' + > + + + ¿Esta seguro de eliminar? +
+
{Contenedor}
+
+
+ + + + + + + + + + +
+ + { + setDialogTabs(false) + }} + /* size='sm' */ + > + + + + + ¿Esta seguro de agregar fecha al contenedor: {Contenedor}? + + + + + Fecha + + setFSemaforo(date)} + showTimeSelect + dateFormat='MM/dd/yyyy HH:mm:ss' + placeholderText='No definido' + isClearable + /> + + + + + Semaforo + + { + setSemaforo(parseInt(e.target.value)) + }} + value={Semaforo} + className='form-select form-select-sm' + > + + + + + + + + + + + + + + + + + +
+ ) +} diff --git a/src/Components/Corresponsales/CuentasComplementarias/CuentasComplementarias.tsx b/src/Components/Corresponsales/CuentasComplementarias/CuentasComplementarias.tsx new file mode 100644 index 0000000..78f00f5 --- /dev/null +++ b/src/Components/Corresponsales/CuentasComplementarias/CuentasComplementarias.tsx @@ -0,0 +1,569 @@ +import React, { FC, useEffect, useState } from 'react' +import { Alert, Card, Col, FloatingLabel, Form, Modal, Row } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import { BsCloudArrowUpFill, BsFillPlusCircleFill } from 'react-icons/bs' +import FileManager from '../../Utils/FileManager/FileManager' +import CuentasComplementariasDS from '../../../Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services' +import MFileManagerDataService from '../../../Services/Utils/MFileManager.Service' +import ICorresponsalCuentasComplementarias from '../../../Interfaces/Corresponsales/ICorresponsalCuentasComplementarias' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import DataTable from 'react-data-table-component' +import DTOCorresponsalCuentaComplementaria from '../../../DTO/Corresponsales/DTOCuentaComplementaria' +import { SelectEstatus } from './SelectEstatus/SelectEstatus' +import { FcAbout } from 'react-icons/fc' +import DTOLogCorresponsalComplementariaEstatus from '../../../DTO/Corresponsales/DTOLogCorresponsalComplementariaEstatus' +import FileManagerDS from '../../../Services/Utils/FileManager.Services' +import { AiOutlineClose } from 'react-icons/ai' +import { MdCloudUpload, MdOutlineInventory, MdOutlineSave } from 'react-icons/md' +import { useDispatch, useSelector } from 'react-redux' +import { RootState } from '../../../store/store' +import { FiSave } from 'react-icons/fi' +import ICorresponsalCuentaComplementariaStatus from '../../../Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus' +import { updateCorresponsalesCuentasComplementariasEstatus } from '../../../store/features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice' + +interface IProps { + IDTrafico: number + UserId: number +} + +export const CuentasComplementarias: FC = (props) => { + const dispatch = useDispatch() + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const mCCCEstatus = useSelector( + (state: RootState) => state.CCueCompEstatus.CorresponsalesCuentasComplementariasEstatus + ) + const [showModal, setShowModal] = useState(false) + const [showModalLog, setShowModalLog] = useState(false) + const [showModalCatalogo, setShowModalCatalogo] = useState(false) + const [DTData, setDTData] = useState([]) + const [CuentaComplementaria, setCuentaComplementaria] = useState([]) + const [HistorialEstatus, setHistoriaEstatus] = useState([]) + const [IDCuentaComplementaria, setIdCuentaComplementarias] = useState(0) + const [IDPDF, setIDPDF] = useState(0) + const [IDXML, setIDXML] = useState(0) + const [IDEstatus, setIDEstatus] = useState(0) + const [Estatus, setEstatus] = useState('') + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [MsgTime, setMsgTime] = useState(3000) + + const colCuentasComplementarias = [ + { + name: 'id', + width: '60px', + selector: (row: ICorresponsalCuentasComplementarias) => row.id, + sortable: true, + }, + { + name: '', + width: '20px', + cell: (row: ICorresponsalCuentasComplementarias) => { + return row.archivoXML ? ( +
{ + clearFile(row.id, 1, row.idXML) + }} + > + + + +
+ ) : ( +
{ + setPreloader(row.id) + }} + > + + + +
+ ) + }, + }, + { + name: 'XML', + width: '300px', + cell: (row: ICorresponsalCuentasComplementarias) => { + return ( +
{ + getFileContent(row.idXML, 22, row.archivoXML) + }} + > + {row.archivoXML} +
+ ) + }, + }, + { + name: '', + width: '20px', + cell: (row: ICorresponsalCuentasComplementarias) => { + return row.archivoPDF ? ( +
{ + clearFile(row.id, 2, row.idPDF) + }} + > + + + +
+ ) : ( +
{ + setPreloader(row.id) + }} + > + + + +
+ ) + }, + }, + { + name: 'PDF', + width: '300px', + cell: (row: ICorresponsalCuentasComplementarias) => { + return ( +
{ + getFileContent(row.idPDF, 21, row.archivoPDF) + }} + > + {row.archivoPDF} +
+ ) + }, + }, + { + name: 'Estatus', + width: '400px', + cell: (row: ICorresponsalCuentasComplementarias) => { + return + }, + }, + { + name: 'Historico', + width: '110px', + cell: (row: ICorresponsalCuentasComplementarias) => ( +
{ + showHistoricoEstatus(row.id) + }} + > + + + +
+ ), + }, + ] + + const setPreloader = (id: number) => { + setIdCuentaComplementarias(id) + setIDPDF(0) + setIDXML(0) + setShowModal(true) + } + + const clearFile = (IDCuenta: number, witchFile: number, idFile: number) => { + CuentasComplementariasDS.ClearFile(IDCuenta, witchFile) + .then((response) => { + FileManagerDS.DeleteFile(idFile) + .then((response) => { + loadCuentaComplementaria() + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const createCuentaComplementaria = () => { + const data: DTOCorresponsalCuentaComplementaria = { + id: 0, + idTrafico: props.IDTrafico, + idFile: 0, + } + CuentasComplementariasDS.Append(data) + .then((response) => { + // setCuentaComplementaria(response.data) + setIdCuentaComplementarias(response.data.id) + setIDPDF(response.data.idPDF) + setIDXML(response.data.idXML) + setShowModal(true) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const loadCuentaComplementaria = () => { + CuentasComplementariasDS.Get(props.IDTrafico) + .then((response) => { + setDTData(response.data) + setIDPDF(0) + setIDXML(0) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + useEffect(() => { + setIDPDF(0) + setIDXML(0) + }, [IDCuentaComplementaria]) + + useEffect(() => { + loadCuentaComplementaria() + }, []) + + const showHistoricoEstatus = (id: number) => { + CuentasComplementariasDS.GetLogEstatus(id) + .then((response) => { + setHistoriaEstatus(response.data) + setShowModalLog(true) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const updateFile = (idFile: number) => { + if (IDCuentaComplementaria === 0) { + setHeader('Error') + setMsg('Para proceder, es necesario que cree una cuenta complementaria o seleccione una existente') + setShowMsg(true) + return + } + const data: DTOCorresponsalCuentaComplementaria = { + id: IDCuentaComplementaria, + idFile: idFile, + idTrafico: props.IDTrafico, + } + CuentasComplementariasDS.Append(data) + .then((response) => { + loadCuentaComplementaria() + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const getFileContent = (id: number, proceso: number, archivo: string) => { + if (id > 0) { + MFileManagerDataService.getFileContentById(id, proceso) + .then((response: any) => { + if (response.status === 200) { + if (archivo.toLowerCase().endsWith('.pdf')) { + console.log(response.data) + const blob = new Blob([response.data], { type: 'application/pdf' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else if (archivo.toLowerCase().endsWith('.xml')) { + console.log(response.data) + const blob = new Blob([response.data], { type: 'application/xml' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } + } else { + setHeader('Error') + setMsg('No existe ningun archivo asignado') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('A este concepto no se le ha anexado archivo') + setShowMsg(true) + return + }) + } + } + + const saveEstatus = () => { + const data: ICorresponsalCuentaComplementariaStatus = { + id: IDEstatus, + estatus: Estatus, + } + CuentasComplementariasDS.AppendEstatus(data) + .then((response) => { + dispatch(updateCorresponsalesCuentasComplementariasEstatus(response.data)) + setIDEstatus(0) + setEstatus('') + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + return ( +
+ + +
{ + setShowModalCatalogo(true) + }} + title='De un click aqui para agregar abrir el catalogo de conceptos de rechazo' + > + + + +
+ + + +
{ + createCuentaComplementaria() + }} + title='De un click aqui para agregar una nueva cuenta complementaria' + > + + + +
+ +
+ + + + + + + + { + setShowModal(false) + }} + size={'sm'} + dialogClassName={'modal-50w'} + > + + + + + + + + + + + + + { + setShowModalLog(false) + }} + size={'sm'} + dialogClassName={'modal-50w'} + > + + {HistorialEstatus.length > 0 ? ( + + + + + + + {HistorialEstatus + ? HistorialEstatus.map((item, index) => { + return ( + + + + + ) + }) + : ''} +
RegistradoEstatus
{item.fCreacion}{item.sEstatus}
+
+ ) : ( + + No hay informacion al respecto + + )} +
+
+ + { + setShowModalCatalogo(false) + }} + size={'sm'} + dialogClassName={'modal-50w'} + > + + {mCCCEstatus.length > 0 ? ( + <> + + + + + + + + + + { + setEstatus(e.target.value) + }} + /> + + + +
{ + saveEstatus() + }} + > + + + +
+ +
+
+ + + id + Estatus + + + {mCCCEstatus + ? mCCCEstatus + .filter((item) => { + return item.id > 1 + }) + .map((item, index) => { + return ( + { + setIDEstatus(item.id) + setEstatus(item.estatus) + }} + > + {item.id} + {item.estatus} + + + ) + }) + : ''} + + + ) : ( + + No hay informacion al respecto + + )} +
+
+ + { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Corresponsales/CuentasComplementarias/SelectEstatus/SelectEstatus.tsx b/src/Components/Corresponsales/CuentasComplementarias/SelectEstatus/SelectEstatus.tsx new file mode 100644 index 0000000..8df19fe --- /dev/null +++ b/src/Components/Corresponsales/CuentasComplementarias/SelectEstatus/SelectEstatus.tsx @@ -0,0 +1,85 @@ +import React, { FC, useState } from 'react' +import { Form } from 'react-bootstrap' +import { useSelector } from 'react-redux' +import { RootState } from '../../../../store/store' +import CuentasComplementariasDS from '../../../../Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services' +import DTOCuentaComplementariaEstatus from '../../../../DTO/Corresponsales/DTOCuentaComplementariaEstatus' +import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' + +interface IProps { + IDEstatus: number + IDCuenta: number + Enabled: boolean +} + +export const SelectEstatus: FC = (props) => { + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [MsgTime, setMsgTime] = useState(3000) + const mCCCEstatus = useSelector( + (state: RootState) => state.CCueCompEstatus.CorresponsalesCuentasComplementariasEstatus + ) + const [IDEstatus, setIDEstatus] = useState(props.IDEstatus) + + const changeStatus = (nuevoEstatus: number) => { + setIDEstatus(nuevoEstatus) + const data: DTOCuentaComplementariaEstatus = { + id: props.IDCuenta, + estatus: nuevoEstatus, + } + CuentasComplementariasDS.ChangeStatus(data) + .then((response) => { + setHeader('Confirmacion') + setMsg('Se ha cambiado el estatus de la cuenta') + setShowMsg(true) + return + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + return ( +
+ { + changeStatus(parseInt(e.target.value)) + }} + className='form-select form-select-sm' + style={{ width: '350px' }} + disabled={Depto !== 'Contabilidad' || props.Enabled} + value={IDEstatus} + > + {mCCCEstatus + ? mCCCEstatus.map((item, index) => { + return ( + + ) + }) + : ''} + + { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Corresponsales/Guias/SelectGuias.tsx b/src/Components/Corresponsales/Guias/SelectGuias.tsx new file mode 100644 index 0000000..0064a55 --- /dev/null +++ b/src/Components/Corresponsales/Guias/SelectGuias.tsx @@ -0,0 +1,190 @@ +import { FC, useEffect, useState } from 'react' +import { useDispatch, useSelector } from 'react-redux' +import { RootState } from '../../../store/store' +import CGuiasDataService from '../../../Services/Corresponsalias/Corresponsales.Guias.Services' +import ICorresponsalesGuias from '../../../Interfaces/Corresponsales/ICorresponsalesGuias' +import { IconContext } from 'react-icons' +import { BsFillXCircleFill } from 'react-icons/bs' +import { Alert, Button, Col, Modal, Row } from 'react-bootstrap' +import { + deleteCorresponsalesGuias, + updateCorresponsalesGuias, +} from '../../../store/features/Corresponsales/CorresponsalesGuiasSlice' + +interface IProps { + IDTrafico: number + Editable: boolean +} + +export const SelectGuias: FC = (props) => { + const dispatch = useDispatch() + const [toggleSelect, setToggleSelect] = useState(false) + const mCGuias = useSelector((state: RootState) => state.CGuias.CorresponsalesGuias) + const [Guia, setGuia] = useState('') + const [IDGuia, setIDGuia] = useState(0) + const [Placeholder, setPlaceholder] = useState('') + const [DialogTabs, setDialogTabs] = useState(false) + + useEffect(() => { + setPlaceholder('(' + mCGuias.filter((item) => item.id > 0).length + ') Guias') + }, [mCGuias]) + + const loadInfo = (data: ICorresponsalesGuias) => { + setIDGuia(data.id) + setGuia(data.guia) + } + + const handleKeyDown = (event: any) => { + if (event.key === 'Enter') { + const data: ICorresponsalesGuias = { + id: IDGuia, + guia: Guia, + idTrafico: props.IDTrafico, + } + CGuiasDataService.Append(data) + .then((response) => { + if (response.status === 200) { + dispatch(updateCorresponsalesGuias(response.data)) + setGuia('') + setToggleSelect(true) + } + }) + .catch((e: Error) => { + return + }) + } + } + + const deleteItem = () => { + CGuiasDataService.Delete(IDGuia) + .then((response) => { + if (response.status === 200) { + setIDGuia(0) + setGuia('') + setDialogTabs(false) + dispatch(deleteCorresponsalesGuias(IDGuia)) + return + } + }) + .catch((e: Error) => { + return + }) + } + return ( +
+ {' '} +
+
+
+ + + { + setIDGuia(0) + setGuia('') + }} + /> + + { + setGuia(e.target.value) + }} + onKeyDown={(e) => handleKeyDown(e)} + /> + + { + setToggleSelect(!toggleSelect) + }} + /> + +
+
    + {mCGuias + ? mCGuias + .map((item, index) => { + return item.id > 0 ? ( +
  • loadInfo(item)}> + { + setDialogTabs(true) + }} + > + + + + + {item.guia} +
  • + ) : ( + '' + ) + }) + .reverse() + : ''} +
+
+
+
+
+ { + setDialogTabs(false) + }} + size='sm' + > + + + ¿Esta seguro de eliminar? +
+
{Guia}
+
+
+ + + + + + + + + + +
+
+ ) +} diff --git a/src/Components/Corresponsales/PagosTerceros/ControlledInput/ControlledInput.tsx b/src/Components/Corresponsales/PagosTerceros/ControlledInput/ControlledInput.tsx new file mode 100644 index 0000000..d9dc7a6 --- /dev/null +++ b/src/Components/Corresponsales/PagosTerceros/ControlledInput/ControlledInput.tsx @@ -0,0 +1,110 @@ +import React, { FC, useEffect, useState } from 'react' +import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' +import CFac3DataService from '../../../../Services/Corresponsalias/Corresponsales.FacturasTerceros.services' +import { useDispatch, useSelector } from 'react-redux' +import ICorresponsalTerceros from '../../../../Interfaces/Corresponsales/ICorresponsalFacturasTerceros' +import { updateCorresponsalesFacturasTerceros } from '../../../../store/features/Corresponsales/CorresponsalesFacturasTercerosSlice' +import { Form } from 'react-bootstrap' +import { RootState } from '../../../../store/store' + +interface IProps { + row: ICorresponsalTerceros + disabled?: boolean + mode: number // 1: Number, 2: String +} + +export const ControlledInput: FC = (props) => { + const dispatch = useDispatch() + const mProveedores = useSelector((state: RootState) => state.CatProveedores.CatalogoProveedores) + const [id, setid] = useState(props.row.id) + const [value, setValue] = useState(props.row.factura) + const [IDProveedor, setIDProveedor] = useState(props.row.idProveedor) + const [ClasificacionProveedor, setClasificacionProveedor] = useState(1) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + + const onChange = (event: any) => { + setValue(event.target.value) + } + + const handleKeyDown = (event: any) => { + if (event.key === 'Enter') { + if (isNaN(event.target.value) && props.mode === 1) { + alert('Valor no valido!') + return + } + const data: ICorresponsalTerceros = { + id: id, + factura: value, + idTrafico: props.row.idTrafico, + idProveedor: IDProveedor, + } + CFac3DataService.Append(data) + .then((response) => { + if (response.status === 200) { + dispatch(updateCorresponsalesFacturasTerceros(response.data.registro)) + setHeader('Informativo') + setMsg('La informacion se guardo exitosamente') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + } + + useEffect(() => { + console.log('El proveedor es:............................' + JSON.stringify(props.row)) + }, []) + + return ( + <> + handleKeyDown(e)} + style={{ width: '120px' }} + /> +    + { + setIDProveedor(parseInt(f.target.value)) + }} + value={IDProveedor} + className='form-select form-select-sm' + > + {mProveedores + ? mProveedores + .filter(function (row) { + return row.clasificacion === ClasificacionProveedor + }) + .map((p) => { + return ( + + ) + }) + : null} + + { + setShowMsg(false) + }} + /> + + ) +} diff --git a/src/Components/Corresponsales/PagosTerceros/PagosTerceros.tsx b/src/Components/Corresponsales/PagosTerceros/PagosTerceros.tsx new file mode 100644 index 0000000..1a4b8ca --- /dev/null +++ b/src/Components/Corresponsales/PagosTerceros/PagosTerceros.tsx @@ -0,0 +1,365 @@ +import React, { FC, useEffect, useState } from 'react'; +import { Alert, Button, Card, Col, Form, Modal, Row } from 'react-bootstrap'; +import DataTable from 'react-data-table-component'; +import { IconContext } from 'react-icons'; +import { FaEraser, FaTimesCircle } from 'react-icons/fa'; +import { useDispatch, useSelector } from 'react-redux'; +import ICorresponsalTerceros from '../../../Interfaces/Corresponsales/ICorresponsalFacturasTerceros'; +import { RootState } from '../../../store/store'; +import { MsgInformativo } from '../../Utils/Toast/msgInformativo'; +import CFac3DataService from '../../../Services/Corresponsalias/Corresponsales.FacturasTerceros.services'; +import { ControlledInput } from './ControlledInput/ControlledInput'; +import { + addCorresponsalesFacturasTerceros, + deleteCorresponsalesFacturasTerceros, +} from '../../../store/features/Corresponsales/CorresponsalesFacturasTercerosSlice'; +import { CatProveedores } from '../CatProveedores/CatProveedores'; +import { FcManager } from 'react-icons/fc'; +import { resourceUsage } from 'process'; + +interface IProps { + IDTrafico: number; + IDCorresponsal: number; + canDelete: boolean; +} + +export const PagosTerceros: FC = (props) => { + const dispatch = useDispatch(); + const mCFacturas3 = useSelector( + (state: RootState) => state.CF3rosData.CorresponsalesFacturasTerceros + ); + const mProveedores = useSelector( + (state: RootState) => state.CatProveedores.CatalogoProveedores + ); + const [IDProveedor, setIDProveedor] = useState(-1); + const [DTData, setDTData] = useState([]); + const [ShowModal, setShowModal] = useState(false); + const [Factura, setFactura] = useState(''); + const [IDFactura, setIDFactura] = useState(0); + const [header, setHeader] = useState(''); + const [msgColor, setMsgColor] = React.useState('primary'); + const [show, setShowMsg] = useState(false); + const [msg, setMsg] = useState(''); + const [MsgTime, setMsgTime] = useState(4000); + const [DialogTabs, setDialogTabs] = useState(false); + const [msgDialog, setMsgDialog] = useState(false); + const [ClasificacionProveedor, setClasificacionProveedor] = useState(1); + + const columnsFacturas3 = [ + { + name: 'id', + width: '10%', + selector: (row: ICorresponsalTerceros) => row.id, + sortable: true, + }, + { + name: 'Factura', + width: '75%', + cell: (row: ICorresponsalTerceros) => { + return ; + }, + }, + { + name: 'Elimina', + cell: (row: ICorresponsalTerceros) => ( +
{ + setIDFactura(row.id); + setFactura(row.factura); + setDialogTabs(true); + }} + > + + + +
+ ), + }, + ]; + + useEffect(() => { + CFac3DataService.getAll(props.IDTrafico) + .then((response) => { + setDTData(response.data); + }) + .catch((e: Error) => { + setHeader('Error'); + setMsg('Ocurrio un error: ' + e); + setShowMsg(true); + return; + }); + mProveedores.length > 0 + ? setIDProveedor(mProveedores[0].id) + : setIDProveedor(0); + }, []); + + const saveForm = () => { + if (IDProveedor === 0) { + setHeader('Error'); + setMsg('Para poder continuar, por favor, seleccione el proveedor'); + setShowMsg(true); + return false; + } + if (Factura.length === 0) { + setHeader('Error'); + setMsg('Para poder continuar, por favor, proporcione la factura'); + setShowMsg(true); + return false; + } + const data: ICorresponsalTerceros = { + id: IDFactura, + factura: Factura, + idTrafico: props.IDTrafico, + idProveedor: IDProveedor, + }; + CFac3DataService.Append(data) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo'); + setMsg(response.data.respuesta); + setShowMsg(true); + setDialogTabs(false); + if (data.id === 0) + dispatch(addCorresponsalesFacturasTerceros(response.data.registro)); + } + }) + .catch((error: any) => { + if (error.response) { + setHeader('Error: No se permite duplicidad'); + setMsgColor('warning'); + setMsgTime(10000); + setMsg( + error.response.data.respuesta + + ' en la factura: ' + + error.response.data.registro.factura + + ' en el trafico: CG' + + error.response.data.registro.idTrafico + ); + setShowMsg(true); + return; + } + }); + }; + + const deleteItem = () => { + CFac3DataService.Delete(IDFactura) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo'); + setMsg(response.data.respuesta); + setShowMsg(true); + setDialogTabs(false); + dispatch(deleteCorresponsalesFacturasTerceros(IDFactura)); + return; + } + }) + .catch((e: Error) => { + setHeader('Error'); + setMsg('Ocurrio un error: ' + e); + setShowMsg(true); + return; + }); + }; + + const cleanForm = () => { + setFactura(''); + setIDFactura(0); + }; + + return ( +
+ + + + + { + cleanForm(); + }} + > + + + + + + + + + {/* setFactura((v) => (e.target.validity.valid ? e.target.value : v))} + /> */} + { + setFactura(e.target.value); + }} + /> + + + { + setIDProveedor(parseInt(e.target.value)); + }} + className='form-select form-select-sm' + value={IDProveedor} + > + {mProveedores + ? mProveedores + .filter(function (row) { + return ( + row.clasificacion === ClasificacionProveedor || + row.id === 0 + ); + }) + .map((item, index) => { + return ( + + ); + }) + : ''} + + + + + + + + + +   + + + 0 && el.idTrafico === props.IDTrafico; + })} + /> + + + { + setShowMsg(false); + }} + /> + { + setDialogTabs(false); + }} + size='sm' + > + + + ¿Esta seguro de eliminar? +
+
{Factura}
+
+
+ + + + + + + + + + +
+ { + setShowModal(false); + }} + size='sm' + dialogClassName='modal-50w' + > + + + + +
+ ); +}; diff --git a/src/Components/Corresponsales/Partidas/Dialog/DialogBox.tsx b/src/Components/Corresponsales/Partidas/Dialog/DialogBox.tsx new file mode 100644 index 0000000..c50bfc6 --- /dev/null +++ b/src/Components/Corresponsales/Partidas/Dialog/DialogBox.tsx @@ -0,0 +1,308 @@ +import React, { FC, useEffect, useState } from "react"; +import { Button, Card, Col, Container, Form, Row } from "react-bootstrap"; +import * as CurrencyFormat from "react-currency-format"; +import ICorresponsalPartidas from "../../../../Interfaces/Corresponsales/ICorresponsalPedimentoPartidas"; +import { MsgInformativo } from "../../../Utils/Toast/msgInformativo"; +import CPartidasService from "../../../../Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services"; +import { useDispatch, useSelector } from "react-redux"; +import { updateCorresponsalesPartidas } from "../../../../store/features/Corresponsales/CorresponsalesPartidasSlice"; +import { RootState } from "../../../../store/store"; + +interface IProps { + IDTrafico: number; + IDPartida: number; +} + +export const DialogBox: FC = (props) => { + const dispatch = useDispatch(); + const mCFacturas = useSelector( + (state: RootState) => state.CFData.CorresponsalesFacturas + ); + const mCatProveedores = useSelector( + (state: RootState) => state.CatProveedores.CatalogoProveedores + ); + const mCPartidas = useSelector( + (state: RootState) => state.CPartidas.CorresponsalesPartidas + ); + const [Factura, setFactura] = useState(""); + const [IDFactura, setIDFactura] = useState(0); + const [IDPartida, setIDPartida] = useState(0); + const [Proveedor, setProveedor] = useState(""); + const [IDProveedor, setIDProveedor] = useState(0); + const [DescripcionMaterial, setDescripcionMaterial] = useState(""); + const [FraccionArancelaria, setFraccionArancelaria] = useState(""); + const [ValorAduana, setValorAduana] = useState(0); + const [DTA, setDTA] = useState(0); + const [IGI, setIGI] = useState(0); + const [IEPS, setIEPS] = useState(0); + const [header, setHeader] = useState(""); + // const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false); + const [msg, setMsg] = useState(""); + const msgColor = "primary"; + + const saveForm = () => { + const data: ICorresponsalPartidas = { + id: IDPartida, + idTrafico: props.IDTrafico, + partida: 0, + idFactura: IDFactura, + factura: Factura, + proveedor: Proveedor, + descripcionMaterial: DescripcionMaterial, + fraccionArancelaria: FraccionArancelaria, + valorAduana: ValorAduana, + dta: DTA, + igi: IGI, + ieps: IEPS, + activo: 1, + }; + if (Factura.length < 4) { + setHeader("Error"); + setMsg("Proporcione la factura"); + setShowMsg(true); + return; + } + if (Proveedor.length < 4) { + setHeader("Error"); + setMsg("Proporcione el proveedor"); + setShowMsg(true); + return; + } + if (DescripcionMaterial.length < 4) { + setHeader("Error"); + setMsg("Proporcione la descripcion del material"); + setShowMsg(true); + return; + } + if (FraccionArancelaria.length < 4) { + setHeader("Error"); + setMsg("Proporcione la fraccion arancelaria"); + setShowMsg(true); + return; + } + if (ValorAduana === 0) { + setHeader("Error"); + setMsg("Proporcione el valor aduana"); + setShowMsg(true); + return; + } + console.log(JSON.stringify(data)); + CPartidasService.Append(data) + .then((response) => { + dispatch(updateCorresponsalesPartidas(response.data)); + setHeader("Informativo"); + setMsg("El registro se guardado exitosamente!"); + setShowMsg(true); + }) + .catch((e: Error) => { + setHeader("Error"); + setMsg("Ocurrio un error: " + e); + setShowMsg(true); + return; + }); + }; + + useEffect(() => { + const dataFactura = mCFacturas.filter((item) => item.id === IDFactura); + setFactura(dataFactura[0].factura); + setIDProveedor(dataFactura[0].proveedor); + const dataProveedor = mCatProveedores.filter( + (item) => item.id === dataFactura[0].proveedor + ); + setProveedor(dataProveedor[0].nombre); + }, [IDFactura, mCFacturas, mCatProveedores]); + + useEffect(() => { + const data = mCPartidas.filter((item) => item.id === props.IDPartida); + if (data[0]) { + setIDPartida(data[0].id); + setIDFactura(data[0].idFactura); + setFactura(data[0].factura); + setDescripcionMaterial(data[0].descripcionMaterial); + setProveedor(data[0].proveedor); + setDTA(data[0].dta); + setIGI(data[0].igi); + setIEPS(data[0].ieps); + setFraccionArancelaria(data[0].fraccionArancelaria); + setValorAduana(data[0].valorAduana); + } + }, [props.IDPartida, mCPartidas]); + + return ( +
+ + + + Factura + + {/* { + setFactura(e.target.value) + }} + /> */} + { + setIDFactura(parseInt(e.target.value)); + }} + value={IDFactura} + className="form-select form-select-sm" + > + {mCFacturas + ? mCFacturas.map((item, index) => { + return item.idTrafico === props.IDTrafico ? ( + + ) : ( + + ); + }) + : ""} + + + + + + + + + Proveedor + + { + setProveedor(e.target.value); + }} + disabled={true} + /> + + + + Descripcion del material + + { + setDescripcionMaterial(e.target.value); + }} + /> + + + + Fraccion arancelaria + + { + setFraccionArancelaria(e.target.value); + }} + /> + + Valor aduana + + { + const { value } = values; + setValorAduana(value); + }} + /> + + + + + DTA + + + { + const { value } = values; + setDTA(value.length === 0 ? 0 : value); + }} + /> + +   + + IGI + + + { + const { value } = values; + setIGI(value); + }} + /> + +   + + IEPS + + + { + const { value } = values; + setIEPS(value); + }} + /> + + + + + { + setShowMsg(false); + }} + /> +
+ ); +}; diff --git a/src/Components/Corresponsales/Partidas/Partidas.tsx b/src/Components/Corresponsales/Partidas/Partidas.tsx new file mode 100644 index 0000000..163b293 --- /dev/null +++ b/src/Components/Corresponsales/Partidas/Partidas.tsx @@ -0,0 +1,269 @@ +import React, { FC, useState } from 'react' +import { Alert, Button, Card, Col, Modal, Row } from 'react-bootstrap' +import ICorresponsalPartidas from '../../../Interfaces/Corresponsales/ICorresponsalPedimentoPartidas' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import CPartidasService from '../../../Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services' +import { useDispatch, useSelector } from 'react-redux' +import DataTable from 'react-data-table-component' +import { IconContext } from 'react-icons' +import { BsFillPencilFill, BsFillTrashFill } from 'react-icons/bs' +import { RootState } from '../../../store/store' +import { DialogBox } from './Dialog/DialogBox' +import { deleteCorresponsalesPartidas } from '../../../store/features/Corresponsales/CorresponsalesPartidasSlice' + +interface IProps { + IDTrafico: number + canEdit: boolean +} + +export const Partidas: FC = (props) => { + const dispatch = useDispatch() + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const [ShowModal, setShowModal] = useState(false) + const [MsgDialogDelete, setMsgDialogDelete] = useState(false) + const [IDPartida, setIDPartida] = useState(0) + const [Factura, setFactura] = useState('') + const [Descripcion, setDescripcion] = useState('') + const [header, setHeader] = useState('') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + // const [Info, setInfo] = useState() + const mCPartidas = useSelector( + (state: RootState) => state.CPartidas.CorresponsalesPartidas + ) + const msgColor = 'primary' + const dataColPartidas = [ + { + name: 'Partida', + width: '90px', + selector: (row: ICorresponsalPartidas) => row.partida, + sortable: true + }, + { + name: 'Factura', + width: '100px', + selector: (row: ICorresponsalPartidas) => row.factura, + sortable: true + }, + { + name: 'Proveedor', + center: true, + width: '450px', + selector: (row: ICorresponsalPartidas) => row.proveedor + }, + { + name: 'Descripcion de material', + center: true, + width: '450px', + selector: (row: ICorresponsalPartidas) => row.descripcionMaterial + }, + { + name: 'Frac arancelaria', + center: true, + width: '120px', + selector: (row: ICorresponsalPartidas) => row.fraccionArancelaria + }, + { + name: 'Val aduana', + center: true, + width: '100px', + selector: (row: ICorresponsalPartidas) => row.valorAduana + }, + { + name: 'DTA', + center: true, + width: '70px', + selector: (row: ICorresponsalPartidas) => row.dta + }, + { + name: 'IGI', + center: true, + width: '70px', + selector: (row: ICorresponsalPartidas) => row.igi + }, + { + name: 'IEPS', + center: true, + width: '70px', + selector: (row: ICorresponsalPartidas) => row.ieps + }, + { + name: '', + width: '130px', + cell: (row: ICorresponsalPartidas) => ( + + +
{ + loadData(row) + }} + > + + + +
+ +    + +
{ + confirmDelete(row) + }} + > + + + +
+ +
+ ) + } + ] + + const loadData = (row: ICorresponsalPartidas) => { + setIDPartida(row.id) + setShowModal(true) + } + + const confirmDelete = (row: ICorresponsalPartidas) => { + setIDPartida(row.id) + setFactura(row.factura) + setDescripcion(row.descripcionMaterial) + setMsgDialogDelete(true) + } + + const deleteItem = () => { + CPartidasService.Delete(IDPartida) + .then((response) => { + if (response.status === 200) { + dispatch(deleteCorresponsalesPartidas(IDPartida)) + setMsgDialogDelete(false) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + return ( +
+ + + + Partidas + + + + + + { + if (a.idTrafico === props.IDTrafico) { + return a + } + })} + /> + + { + setShowModal(false) + }} + size={'sm'} + dialogClassName={'modal-50w'} + > + +
+ +
+
+
+ setMsgDialogDelete(false)} + size="lg" + > + + +
+ Favor de confirmar +
+
+ ¿Esta seguro de eliminar la factura: {Factura} : {Descripcion}? +
+
+
+ + + + + + +   + + + + + + +
+ { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Corresponsales/ProveedorFactura/ControlledInput/ControlledInput.tsx b/src/Components/Corresponsales/ProveedorFactura/ControlledInput/ControlledInput.tsx new file mode 100644 index 0000000..0c5a0c6 --- /dev/null +++ b/src/Components/Corresponsales/ProveedorFactura/ControlledInput/ControlledInput.tsx @@ -0,0 +1,148 @@ +import React, { FC, useEffect, useState } from 'react'; +import { MsgInformativo } from '../../../Utils/Toast/msgInformativo'; +import { useDispatch, useSelector } from 'react-redux'; +import { updateCorresponsalesFacturas } from '../../../../store/features/Corresponsales/CorresponsalesFacturasSlice'; +import ICorresponsalFacturas from '../../../../Interfaces/Corresponsales/ICorresponsalFacturas'; +import CorFacDataService from '../../../../Services/Corresponsalias/Corresponsales.Facturas.Services'; +import { RootState } from '../../../../store/store'; +import { Form } from 'react-bootstrap'; + +interface IProps { + record: ICorresponsalFacturas; + disabled?: boolean; + mode: number; // 1: Number, 2: String +} + +export const ControlledInput: FC = (props) => { + const dispatch = useDispatch(); + const mProveedores = useSelector( + (state: RootState) => state.CatProveedores.CatalogoProveedores + ); + const [id, setid] = useState(props.record.id); + const [value, setValue] = useState(props.record.factura); + const [IDProveedor, setIDProveedor] = useState(props.record.proveedor); + const [ValorFacturaDls, setValorFacturaDls] = useState( + props.record.valorFacturaDls + ); + const [Pedido, setPedido] = useState(props.record.pedido); + const [header, setHeader] = useState(''); + const [msgColor, setMsgColor] = React.useState('primary'); + const [show, setShowMsg] = useState(false); + const [msg, setMsg] = useState(''); + const [ClasificacionProveedor, setClasificacionProveedor] = useState(2); + + const onChangeFac = (event: any) => { + setValue(event.target.value); + }; + + const onChangeDls = (event: any) => { + setValorFacturaDls(event.target.value); + }; + + const onChangePed = (event: any) => { + setPedido(event.target.value); + }; + + useEffect(() => { + console.log(mProveedores); + }, [mProveedores]); + + const handleKeyDown = (event: any, mode: number) => { + if (event.key === 'Enter') { + if (isNaN(event.target.value) && mode === 1) { + alert('Valor no valido!'); + return; + } + const data: ICorresponsalFacturas = { + id: id, + factura: value, + idTrafico: props.record.idTrafico, + valorFacturaDls: ValorFacturaDls, + proveedor: IDProveedor, + corresponsal: props.record.corresponsal, + pedido: Pedido, + code: 0, + folioGEMCO: '', + }; + CorFacDataService.Append(data) + .then((response) => { + if (response.status == 200) { + dispatch(updateCorresponsalesFacturas(response.data)); + setHeader('Informativo'); + setMsg('La informacion se guardo exitosamente'); + setShowMsg(true); + return; + } + }) + .catch((e: Error) => { + setHeader('Error'); + setMsg('Ocurrio un error: ' + e); + setShowMsg(true); + return; + }); + } + }; + + function changeValue(val: number) { + setIDProveedor(val); + } + return ( + <> + handleKeyDown(e, 2)} + style={{ width: '25%', textAlign: 'right' }} + /> +       + handleKeyDown(e, 1)} + style={{ width: '20%', textAlign: 'right' }} + /> +       + handleKeyDown(e, 2)} + style={{ width: '20%', textAlign: 'right' }} + /> +       + { + changeValue(parseInt(f.target.value)); + }} + value={IDProveedor} + className='form-select form-select-sm' + > + {mProveedores + ? mProveedores + .filter(function (row) { + return row.clasificacion === ClasificacionProveedor; + }) + .map((p) => { + return ( + + ); + }) + : null} + + { + setShowMsg(false); + }} + /> + + ); +}; diff --git a/src/Components/Corresponsales/ProveedorFactura/ProveedorFactura.tsx b/src/Components/Corresponsales/ProveedorFactura/ProveedorFactura.tsx new file mode 100644 index 0000000..29f9056 --- /dev/null +++ b/src/Components/Corresponsales/ProveedorFactura/ProveedorFactura.tsx @@ -0,0 +1,426 @@ +import React, { FC, useEffect, useState } from 'react'; +import { Alert, Button, Card, Col, Form, Modal, Row } from 'react-bootstrap'; +import { IconContext } from 'react-icons'; +import 'react-flexy-table/dist/index.css'; +import FacDataService from '../../../Services/Corresponsalias/Corresponsales.Facturas.Services'; +import { RootState } from '../../../store/store'; +import { useDispatch, useSelector } from 'react-redux'; +import { FcManager } from 'react-icons/fc'; +import ICorresponsalFacturas from '../../../Interfaces/Corresponsales/ICorresponsalFacturas'; +import { + addCorresponsalesFacturas, + deleteCorresponsalesFacturas, + populateCorresponsalesFacturas, +} from '../../../store/features/Corresponsales/CorresponsalesFacturasSlice'; +import '../../../css/react-flexy-table.css'; +import { MsgInformativo } from '../../Utils/Toast/msgInformativo'; +import * as CurrencyFormat from 'react-currency-format'; +import { CatProveedores } from '../CatProveedores/CatProveedores'; +import { FaEraser, FaTimesCircle } from 'react-icons/fa'; +import DataTable from 'react-data-table-component'; +import { ControlledInput } from './ControlledInput/ControlledInput'; + +interface IProps { + IDTrafico: number; + IDCorresponsal: number; + canDelete: boolean; +} + +export const ProveedorFactura: FC = (props) => { + const mCFacturas = useSelector( + (state: RootState) => state.CFData.CorresponsalesFacturas + ); + const mProveedores = useSelector( + (state: RootState) => state.CatProveedores.CatalogoProveedores + ); + const dispatch = useDispatch(); + const [ShowModal, setShowModal] = useState(false); + const [IDFactura, setIDFactura] = useState(0); + const [Factura, setFactura] = useState(''); + const [ValorFacturaDls, setValorFacturaDls] = useState(0); + const [Pedido, setPedido] = useState(''); + const [header, setHeader] = useState(''); + const [show, setShowMsg] = useState(false); + const [msg, setMsg] = useState(''); + const [DialogTabs, setDialogTabs] = useState(false); + const [IDProveedor, setIDProveedor] = useState(0); + const MsgTime = 2000; + const msgColor = 'primary'; + const ClasificacionProveedor = 2; + + const TblHeader: React.FC = () => ( + + + + + + + +
+ Factura + + Valor Dls + + Pedido + + Proveedor +
+ ); + + const columnsFacturas = [ + { + name: 'id', + width: '10%', + selector: (row: ICorresponsalFacturas) => row.id, + sortable: true, + }, + { + name: , + width: '75%', + cell: (row: ICorresponsalFacturas) => { + return ; + }, + }, + { + name: 'Elimina', + cell: (row: ICorresponsalFacturas) => ( +
{ + setIDFactura(row.id); + setFactura(row.factura); + setDialogTabs(true); + }} + > + + + +
+ ), + }, + ]; + + useEffect(() => { + FacDataService.getAll(props.IDTrafico) + .then((response) => { + dispatch(populateCorresponsalesFacturas(response.data)); + }) + .catch((e: Error) => { + setHeader('Error'); + setMsg('Ocurrio un error: ' + e); + setShowMsg(true); + return; + }); + }, [props.IDTrafico, dispatch]); + + const cleanForm = () => { + setFactura(''); + setIDFactura(0); + setIDProveedor(0); + setValorFacturaDls(0); + }; + + const saveForm = () => { + if (Factura.length <= 3) { + setHeader('Error'); + setMsg('Proporcione la factura para poder continuar'); + setShowMsg(true); + setDialogTabs(false); + return false; + } + if (ValorFacturaDls === 0) { + setHeader('Error'); + setMsg('Proporcione el valor en dlls de la factura para poder continuar'); + setShowMsg(true); + setDialogTabs(false); + return false; + } + if (IDProveedor === 0) { + setHeader('Error'); + setMsg('Seleccione un proveedor para poder continuar'); + setShowMsg(true); + setDialogTabs(false); + return false; + } + const data: ICorresponsalFacturas = { + id: 0, + factura: Factura, + idTrafico: props.IDTrafico, + valorFacturaDls: ValorFacturaDls, + proveedor: IDProveedor, + corresponsal: props.IDCorresponsal, + pedido: Pedido, + code: 0, + folioGEMCO: '', + }; + FacDataService.Append(data) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo'); + const respuesta: ICorresponsalFacturas = response.data; + console.log(respuesta); + if (respuesta.code && typeof respuesta.code === 'number') { + const result = respuesta.code; + if (result === 409) + setMsg( + `La factura [${response.data.factura}] de ese proveedor ya se han registrado previamente en el año en curso, lo encuentra en el folio [${response.data.folioGEMCO}]` + ); + else { + setMsg('La factura se agrego exitosamente '); + if (data.id === 0) + dispatch(addCorresponsalesFacturas(response.data)); + } + } + setShowMsg(true); + setDialogTabs(false); + } + }) + .catch((e: Error) => { + setHeader('Error'); + setMsg('Ocurrio un error: ' + e); + setShowMsg(true); + return; + }); + }; + + const deleteItem = () => { + FacDataService.Delete(IDFactura) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo'); + setMsg('La factura se ha eliminado'); + setShowMsg(true); + setDialogTabs(false); + dispatch(deleteCorresponsalesFacturas(IDFactura)); + return; + } + }) + .catch((e: Error) => { + setHeader('Error'); + setMsg('Ocurrio un error: ' + e); + setShowMsg(true); + return; + }); + }; + + return ( +
+ + + + + { + cleanForm(); + }} + > + + + + + + + setFactura((v) => + e.target.validity.valid ? e.target.value : v + ) + } + /> + + + { + const { value } = values; + setValorFacturaDls(value); + }} + style={{ + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '100px', + textAlign: 'right', + borderRadius: '10px', + }} + /> + + + setPedido(e.target.value)} + /> + + + { + setIDProveedor(parseInt(e.target.value)); + }} + className='form-select form-select-sm' + value={IDProveedor} + > + + {mProveedores + ? mProveedores + .filter(function (row) { + return row.clasificacion === ClasificacionProveedor; + }) + .map((item, index) => { + return ( + + ); + }) + : ''} + + + + + + + + + +   + + + 0; + })} + /> + + + { + setShowMsg(false); + }} + /> + { + setDialogTabs(false); + }} + size='sm' + > + + + ¿Esta seguro de eliminar? +
+
{Factura}
+
+
+ + + + + + + + + + +
+ { + setShowModal(false); + }} + size='sm' + dialogClassName='modal-50w' + > + + + + +
+ ); +}; diff --git a/src/Components/Corresponsales/Rectificaciones/Rectificaciones.tsx b/src/Components/Corresponsales/Rectificaciones/Rectificaciones.tsx new file mode 100644 index 0000000..b2768fe --- /dev/null +++ b/src/Components/Corresponsales/Rectificaciones/Rectificaciones.tsx @@ -0,0 +1,180 @@ +import React, { FC, useEffect, useState } from 'react' +import { Alert, Button, Col, Modal, Row } from 'react-bootstrap' +import DataTable from 'react-data-table-component' +import { IconContext } from 'react-icons' +import { FaCopy } from 'react-icons/fa' +import ICorresponsalesRectificaciones from '../../../Interfaces/Corresponsales/ICorresponsalesRectificaciones' +import RectiDataService from '../../../Services/Corresponsalias/Corresponsales.Trafico.Services' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' + +interface IProps { + IDTrafico: number + changeIdTrafico: (newId: number) => void +} + +export const Rectificaciones: FC = (props) => { + const [DTData, setDTData] = useState([]) + const [id, setId] = useState(0) + const [FolioGEMCO, setFolioGEMCO] = useState('') + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [DialogClone, setDialogClone] = useState(false) + const [MsgTime, setMsgTime] = useState(3000) + const dataColumns = [ + { + name: 'id', + left: true, + width: '10%', + selector: (row: ICorresponsalesRectificaciones) => row.id, + cell: (row: ICorresponsalesRectificaciones) => ( +
{ + props.changeIdTrafico(row.id) + }} + > + {row.id} +
+ ), + sortable: true, + }, + { + name: 'Folio', + width: '20%', + selector: (row: ICorresponsalesRectificaciones) => row.folioGemco, + sortable: true, + }, + { + name: 'Creado', + width: '14%', + selector: (row: ICorresponsalesRectificaciones) => row.fechaRegistro.substring(0, 10), + sortable: true, + }, + { + name: 'Prev', + center: true, + width: '20%', + selector: (row: ICorresponsalesRectificaciones) => row.prevRecti, + cell: (row: ICorresponsalesRectificaciones) =>
{row.prevRecti}
, + }, + { + name: 'Next', + center: true, + width: '20%', + selector: (row: ICorresponsalesRectificaciones) => row.nextRecti, + cell: (row: ICorresponsalesRectificaciones) => + row.nextRecti === 0 ? ( +
{ + setId(row.id) + setFolioGEMCO(row.folioGemco) + setDialogClone(true) + }} + > + + + +
+ ) : ( +
{row.nextRecti}
+ ), + }, + ] + + useEffect(() => { + RectiDataService.GetRectificaciones(props.IDTrafico) + .then((response) => { + setDTData(response.data) + console.log(JSON.stringify(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, [props.IDTrafico]) + + const clonItem = () => { + RectiDataService.AddRectificacion(id) + .then((response) => { + if (response.status == 200) { + setHeader('Informativo') + setMsg('La rectificacion se agrego exitosamente') + setShowMsg(true) + setDialogClone(false) + //if (data.id === 0) dispatch(addCorresponsalesFacturas(response.data)) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + return ( +
+ + { + setShowMsg(false) + }} + /> + { + setDialogClone(false) + }} + size='sm' + > + + + ¿Esta seguro de realizar una rectificacion sobre este trafico: [ {FolioGEMCO} ]? + + + + + + + + + + + + + +
+ ) +} diff --git a/src/Components/Corresponsales/Tabulador/Tabulador.tsx b/src/Components/Corresponsales/Tabulador/Tabulador.tsx new file mode 100644 index 0000000..4e98b59 --- /dev/null +++ b/src/Components/Corresponsales/Tabulador/Tabulador.tsx @@ -0,0 +1,314 @@ +import React, { FC, useEffect, useState } from 'react' +import { Alert, Button, Card, Col, Container, Form, Row } from 'react-bootstrap' +import ITabulador from '../../../Interfaces/Catalogos/ITabulador' +import CTabDataService from '../../../Services/Corresponsalias/Corresponsales.Tabuladores.Services' +import CTabPreDataService from '../../../Services/Corresponsalias/Corresponsales.Precuenta.Services' +import CTabDetDataService from '../../../Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices' +import { MsgInformativo } from '../../Utils/Toast/msgInformativo' +import DTOConceptos from '../../../DTO/Utils/DTOConceptos' +import DataTable from 'react-data-table-component' +import 'react-data-table-component-extensions/dist/index.css' +import ITabuladorConceptos from '../../../Interfaces/Catalogos/ITabuladorConceptos' +import { ControlledInput } from '../../Utils/ControlledInput/ControlledInput' + +interface IProps { + IDCliente: number + IDTabulador: number + IDTrafico: number + NombreCliente: string + closeTabulador: (arg: boolean) => void + cambiaPrecuenta: (IDPrecuenta: number) => void +} + +interface IselectedRows { + allSelected: boolean + selectedCount: number + selectedRows: any +} + +export const Tabulador: FC = (props) => { + const [IDTabulador, setIDTabulador] = useState(props.IDTabulador) + const [Concepto, setConcepto] = useState(0) + const [DetalleConceptos, setDetalleConceptos] = useState([]) + const [CatConceptos, setCatConceptos] = useState([]) + const [Tabuladores, setTabuladores] = useState([]) + const [AllTabuladores, setAllTabuladores] = useState([]) + const [Costo, setCosto] = useState('') + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + + const columnsConcepts = [ + { + name: 'id', + width: '10%', + selector: (row: ITabuladorConceptos) => row.id, + sortable: true, + }, + { + name: 'Concepto', + width: '65%', + selector: (row: ITabuladorConceptos) => row.concepto, + sortable: true, + }, + { + name: 'Costo', + width: '15%', + cell: (row: ITabuladorConceptos) => { + return row.activo === 1 ? ( + {}} /> + ) : ( + {}} /> + ) + }, + }, + { + name: 'Activo', + width: '10%', + cell: (row: ITabuladorConceptos) => { + return ( + + { + switchConcept(row.id, 1) + }} + /> + + ) + }, + }, + ] + + const columnsTabs = [ + { + name: 'id', + selector: (row: ITabulador) => row.id, + sortable: true, + }, + { + name: 'Nombre', + width: '70%', + // selector: (row: ITabulador) => row.nombre, + cell: (row: ITabulador) => ( +
{ + setIDTabulador(row.id) + }} + > + {row.nombre} +
+ ), + sortable: true, + }, + ] + + const switchConcept = (id: number, status: number) => { + CTabPreDataService.ChangeStatus(id) + .then((response) => { + if (response.status === 200) { + let tmp = DetalleConceptos + let idx = tmp.findIndex((obj) => obj.id == id) + tmp[idx].activo = status === 1 ? 0 : 1 + setDetalleConceptos(tmp) + setHeader('Confirmacion') + setMsg(response.data.respuesta) + setShowMsg(true) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + // const postCost = (id: number, Cost: number) => {} + + const GetAllTabs = () => { + CTabDataService.GetByCustomer(props.IDCliente) + .then((response) => { + setTabuladores(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + useEffect(() => { + GetAllTabs() + }, []) + + useEffect(() => { + CTabPreDataService.GetAll(0, props.IDTrafico) + .then((response) => { + console.log('conceptos cargados debido a el tabulador guardado ' + JSON.stringify(response.data)) + setDetalleConceptos(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + // console.log(Tabulador) + }, [IDTabulador, props]) + + const filtraTabulador = (e: any) => { + if (e.target.value !== '') { + setTabuladores( + AllTabuladores.filter(function (el) { + return el.nombre.toLocaleLowerCase().includes(e.target.value.toLocaleLowerCase()) + }) + ) + } else { + setTabuladores(AllTabuladores) + } + } + + const saveForm = () => { + // alert(IDTabulador) + CTabPreDataService.Append(IDTabulador, props.IDTrafico) + .then((response) => { + setDetalleConceptos(response.data) + props.cambiaPrecuenta(IDTabulador) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const addConcept = () => { + if (IDTabulador === 0) { + setHeader('Error') + setMsg('Por favor, primero seleccione el tabulador') + setShowMsg(true) + return + } + if (Concepto === 0) { + setHeader('Error') + setMsg('Por favor, primero seleccione el concepto') + setShowMsg(true) + return + } + // postCost(0, 0) + } + + return ( +
+ + + + +
Cliente:
+ + +

{props.NombreCliente}

+ +
+ + +
Tabulador asignado:
+ + + setIDTabulador(parseInt(e.target.value))} + className='form-select form-select-sm' + style={{ fontSize: '15px' }} + > + + {Tabuladores + ? Tabuladores.map((c) => { + return + }) + : null} + + + + + +
+
+ + {/* + + + + + + Tabulador + + + { + filtraTabulador(e) + }} + /> + + + + + + + */} + + + + + + + + + +
+ { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Corresponsales/TraficoCorresponsales.tsx b/src/Components/Corresponsales/TraficoCorresponsales.tsx new file mode 100644 index 0000000..14c7476 --- /dev/null +++ b/src/Components/Corresponsales/TraficoCorresponsales.tsx @@ -0,0 +1,3413 @@ +import React, { FC, useEffect, useState } from 'react' +// Bootstrap +import { + Alert, + Button, + Card, + Col, + Container, + Form, + FormControl, + InputGroup, + Modal, + Row, + Tab, + Tabs +} from 'react-bootstrap' +import { FcBusinessman, FcTimeline } from 'react-icons/fc' +import { HiCurrencyDollar } from 'react-icons/hi' +import { IconContext } from 'react-icons' +import '../../css/generic01.css' + +// Clases +import CCorresponsalesTrafico from '../../Classes/Corresponsales/CCorresponsalesTrafico' + +// Interfaces +import IClientes from '../../Interfaces/Catalogos/IClientes' +import ICorresponsalesTraficoContabilidad from '../../Interfaces/Corresponsales/ICorresponsalTraficoContabilidad' +import ITabulador from '../../Interfaces/Catalogos/ITabulador' +import ICorresponsalRazonRechazo from '../../Interfaces/Corresponsales/ICorresponsalRazonesRechazo' +import ICorresponsalCatTipoDocumento from '../../Interfaces/Corresponsales/ICorresponsalCatTipoDocumento' +import ICorresponsalCatAduanas from '../../Interfaces/Corresponsales/ICorresponsalCatAduanas' +import ICorresponsalCatDestinos from '../../Interfaces/Corresponsales/ICorresponsalCatDestinos' +import ICorresponsalCatTiposEmbarque from '../../Interfaces/Corresponsales/ICorresponsalesCatTiposEmbarque' + +// Redux +import { useDispatch, useSelector } from 'react-redux' +import { populateCatProveedores } from '../../store/features/CatProveedores/CatProveedoresSlice' +import { + addCorresponsalesFacturas, + InitCorresponsalesFacturas +} from '../../store/features/Corresponsales/CorresponsalesFacturasSlice' +import { + addCorresponsalesFacturasTerceros, + InitCorresponsalesFacturasTerceros +} from '../../store/features/Corresponsales/CorresponsalesFacturasTercerosSlice' +import { + addCorresponsalesContenedores, + CorresponsalesContenedoresSlice, + InitCorresponsalesContenedores +} from '../../store/features/Corresponsales/CorresponsalesContenedoresSlice' +import { populateCorresponsalesAnticipos } from '../../store/features/Corresponsales/CorresponsalesAnticiposSlice' +import { RootState } from '../../store/store' +import { populateCatCorresponsales } from '../../store/features/CatCorresponsales/CatCorresponsalesSlice' +import { populateCorresponsalesGuias } from '../../store/features/Corresponsales/CorresponsalesGuiasSlice' +import { populateCorresponsalesPartidas } from '../../store/features/Corresponsales/CorresponsalesPartidasSlice' +import { populateCorresponsalesCuentasComplementariasEstatus } from '../../store/features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice' + +// Services +import CAntDataService from '../../Services/Corresponsalias/Corresponsales.Anticipos.Services' +import CContaDataService from '../../Services/Contabilidad/Contabilidad.Corresponsalias.Services' +import CContDataService from '../../Services/Corresponsalias/Corresponsales.Contenedores.Services' +import CorresponsalesDataService from '../../Services/Catalogos/Corresponsales.Services' +import CFac3erDataService from '../../Services/Corresponsalias/Corresponsales.FacturasTerceros.services' +import CFacDataService from '../../Services/Corresponsalias/Corresponsales.Facturas.Services' +import CGuiasDataService from '../../Services/Corresponsalias/Corresponsales.Guias.Services' +import CTrafDataService from '../../Services/Corresponsalias/Corresponsales.Trafico.Services' +import ClientesDataService from '../../Services/Catalogos/Clientes.Services' +import CTabDataService from '../../Services/Corresponsalias/Corresponsales.Tabuladores.Services' +import ProvDataService from '../../Services/Catalogos/Proveedores.Services' +import CCatTiposDocumentos from '../../Services/Corresponsalias/Corresponsalias.CatTiposDocumentos.Services' +import CPartidasService from '../../Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services' +import CCatAduanasService from '../../Services/Corresponsalias/Corresponsales.CatAduanas.Services' +import CCatDestinosService from '../../Services/Corresponsalias/Corresponsales.CatDestinos.Services' +import CCatTiposEmbarqueService from '../../Services/Corresponsalias/Corresponsales.CatTiposEmbarque.Services' +import CCatMediosEmbarqueService from '../../Services/Corresponsalias/Corresponsales.CatMediosEmbarque.Services' +import CPedimentoService from '../../Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Services' +import DashboardService from '../../Services/Dashboard/Dashboard.Corresponsales.Services' +import CCueCompService from '../../Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services' +import FileManService from '../../Services/Utils/FileManager.Services' + +// Componentes +import * as CurrencyFormat from 'react-currency-format' +/* import Select from 'custom-item-select' */ +import FileManager from '../Utils/FileManager/FileManager' +import { Anticipos } from './Anticipos/Anticipos' +import { CatCorresponsales } from '../Catalogos/CatCorresponsales/CatCorresponsales' +import { Contenedores } from './Contenedores/Contenedores' +import { MsgInformativo } from '../Utils/Toast/msgInformativo' +import { PagosTerceros } from './PagosTerceros/PagosTerceros' +import { ProveedorFactura } from './ProveedorFactura/ProveedorFactura' +import { SelectContainer } from './Contenedores/SelectContainer' +import { SelectGuias } from './Guias/SelectGuias' +import { Tabulador } from './Tabulador/Tabulador' +import { FaRegClone } from 'react-icons/fa' +import { Rectificaciones } from './Rectificaciones/Rectificaciones' +import { BsFillXCircleFill } from 'react-icons/bs' +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' +import { Partidas } from './Partidas/Partidas' +import { MFileManager } from '../Utils/MFileManager/MFileManager' +import ICorresponsalPedimento from '../../Interfaces/Corresponsales/ICorresponsalPedimento' +import ICorresponsalesCatTraficoEstatus from '../../Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus' +import ICorresponsalCatMediosEmbarque from '../../Interfaces/Corresponsales/ICorresponsalCatMediosEmbarque' +import { CuentasComplementarias } from './CuentasComplementarias/CuentasComplementarias' +import DTOTraficoCompleto from '../../DTO/Corresponsales/DTOTraficoCompleto' +import DTORectificacionHistorico from '../../DTO/Corresponsales/DTORectificacionHistorico' + +interface IProps { + IDTrafico: number + onClose: (val: boolean) => void +} + +interface ItemList { + id: number + item: string +} + +interface ItemList { + item: string +} + +interface IAduanas { + id: number + descripcion: string +} + +export default function TraficoCorresponsales (props:IProps) { + const dispatch = useDispatch() + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [Usuario, setUsuario] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const mCorresponsales = useSelector( + (state: RootState) => state.CatCorresponsales.CatCorresponsales + ) + const mCFacturas = useSelector( + (state: RootState) => state.CFData.CorresponsalesFacturas + ) + const mCFTerceros = useSelector( + (state: RootState) => state.CF3rosData.CorresponsalesFacturasTerceros + ) + const mCContenedores = useSelector( + (state: RootState) => state.CCData.CorresponsalesContenedores + ) + const mCAnticipos = useSelector( + (state: RootState) => state.CAnticipos.CorresponsalesAnticipos + ) + const mCCCEstatus = useSelector( + (state: RootState) => + state.CCueCompEstatus.CorresponsalesCuentasComplementariasEstatus + ) + const [ModalSize, setModalSize] = useState('sm') + const [showModal, setShowModal] = useState(false) + const [LoadComponent, setLoadComponent] = useState(0) + const [IDTrafico, setIDTrafico] = useState(props.IDTrafico) + const [IDDetail, setIDDetail] = useState(0) + const [FolioTrafico, setFolioTrafico] = useState('') + const [Proceso, setProceso] = useState(0) + const [IDCliente, setIDCliente] = useState(0) + const [NombreCliente, setNombreCliente] = useState('') + const [Clientes, setClientes] = useState>() + const [CatTiposDocumento, setCatTiposDocumentos] = + useState() + const [ + CatTiposDocumentoInfoCorresponsal, + setCatTiposDocumentosInfoCorresponsal + ] = useState() + const [TipoOperacion, setTipoOperacion] = useState(1) + const [OpEntrada, setOpEntrada] = useState(0) + const [OpSalida, setOpSalida] = useState(0) + const [IDCorresponsal, setIDCorresponsal] = useState(0) + const [Bultos, setBultos] = useState(0) + const [Kilos, setKilos] = useState(0) + const [Estatus, setEstatus] = useState(0) + const [Trafico, setTrafico] = useState('') + const [Aduana, setAduana] = useState(0) + const [Patente, setPatente] = useState(0) + const [Pedimento, setPedimento] = useState(0) + const [ClavePedimento, setClavePedimento] = useState('') + const [FechaPago, setFechaPago] = useState('') + const [TipoCambio, setTipoCambio] = useState(0) + const [ValorAduanaMN, setValorAduanaMN] = useState(0) + const [TotalPagado, setTotalPagado] = useState(0) + const [ValorFacturaMN, setValorFacturaMN] = useState(0) + const [CantidadFracciones, setCantidadFracciones] = useState< + number | undefined + >(0) + const [Buque, setBuque] = useState('') + const [ValorFacturasDls, setValorFacturasDls] = useState( + 0 + ) + const [DescripcionMercancia, setDescripcionMercancia] = useState< + string | undefined + >('') + const [Observaciones, setObservaciones] = useState('') + const [FechaDesaduanamiento, setFechaDesaduanamiento] = + useState() + const [SemafoFiscal, setSemaforoFiscal] = useState(0) + const [NoCuenta, setNoCuenta] = useState('') + const [FechaCuenta, setFechaCuenta] = useState('') + const [Anticipo, setAnticipo] = useState(0) + const [IDTabulador, setIDTabulador] = useState(0) + const [Tabuladores, setTabuladores] = useState([]) + const [header, setHeader] = useState('') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const [DSCatAduanas, setDSCatAduanas] = useState() + const [DSCatDestinos, setDSCatDestinos] = + useState() + const [DSCatMediosEmbarque, setDSCatMediosEmbarque] = + useState() + const [DSCatTiposEmbarque, setDSCatTiposEmbarque] = + useState() + const [LblFacturas, setLblFacturas] = useState('Facturas') + const [LblFacturasTerceros, setLblFacturasTerceros] = useState( + 'Facturas pagos a terceros' + ) + const [LblAnticipos, setLblAnticipos] = useState('Anticipos') + const [StatusTrafico, setStatusTrafico] = useState(1) + const [StatusColor, setStatusColor] = useState('#FFFFFF') + const [PagosaTerceros, setPagosaTerceros] = useState(0) + const [ComentariosRechazo, setComentariosRechazo] = useState('') + const [RechazosTrafico, setRechazosTrafico] = useState< + ICorresponsalRazonRechazo[] + >([]) + const [RechazosContabilidad, setRechazosContabilidad] = useState< + ICorresponsalRazonRechazo[] + >([]) + const [DataCatEstatus, setDataCatEstatus] = useState< + ICorresponsalesCatTraficoEstatus[] + >([]) + const [Aduanas, setAduanas] = useState([ + { id: 440, descripcion: 'CD. ACUNA, COAH.' }, + { id: 810, descripcion: 'ALTAMIRA, TAMPS.' } + ]) + const [IDAduana, setIDAduana] = useState(0) + const [CostoDiario, setCostoDiario] = useState(0) + const [Descripcion, setDescripcion] = useState('') + const [IDDestino, setIDDestino] = useState(0) + const [DiasPedPagado, setDiasPedPagado] = useState(0) + const [Embalaje, setEmbalaje] = useState(0) + const [IDEstatus, setIDEstatus] = useState(0) + const [FAlmacenajeInicioGastos, setFAlmacenajeInicioGastos] = + useState('') + const [FDespacho, setFDespacho] = useState('') + const [FechaETA, setFechaETA] = useState('') + const [FEntrada, setFEntrada] = useState('') + const [FHEntregaPlanta, setFHEntregaPlanta] = useState() + const [FHInstrucciones, setFHInstrucciones] = useState() + const [Fletes, setFletes] = useState(0) + const [FRevalidacionGuia, setFRevalidacionGuia] = useState('') + const [HAWB, setHAWB] = useState('') + const [Incoterm, setIncoterm] = useState('') + const [LineaTransportistaInternacional, setLineaTransportistaInternacional] = + useState('') + const [MAWB, setMAWB] = useState('') + const [MontoUSD, setMontoUSD] = useState(0) + const [NoGuia, setNoGuia] = useState('') + const [Origen, setOrigen] = useState('') + const [Otros, setOtros] = useState(0) + const [Transportista, setTransportista] = useState('') + const [PesoNeto, setPesoNeto] = useState(0) + const [PreferenciaArancelaria, setPreferenciaArancelaria] = useState(0) + const [Seguros, setSeguros] = useState(0) + const [IDTipoEmbarque, setIDTipoEmbarque] = useState(0) + const [TotalPagar, setTotalPagar] = useState(0) + const [ChangePermission, setChangePermission] = useState(false) + const [Ready4NextProcess, setReady4NextProcess] = useState(false) + const [TerminaProceso, setTerminaProceso] = useState(-100) + const [TieneArchivoZIPGEMCO, setTieneArchivoZIPGEMCO] = useState(0) + const [TieneArchivoZIPCorresponsal, setTieneArchivoZIPCorresponsal] = + useState(0) + const [IDEstatusContabilidad, setIDEstatusContabilidad] = useState(0) + const [AduanaH, setAduanaH] = useState('') + const [PatenteH, setPatenteH] = useState('') + const [PedimentoH, setPedimentoH] = useState('') + const [ClavePedimentoH, setClavePedimentoH] = useState('') + const [FechaPagoH, setFechaPagoH] = useState('') + + const FechaRegistro = currentDate() + const msgColor = 'primary' + + const itemsTrafico = [ + { + key: 1, + component: ( +
+ + Confirmado +
+ ) + }, + { + key: 0, + component: ( +
+ + Rechazado +
+ ) + } + ] + + const handleClose = () => setShowModal(false) + + const adjustTimeZone = (str: string): string => { + if (str) { + const original: any = new Date(str) + const real = new Date(original - original.getTimezoneOffset() * 60 * 1000) + return real.toISOString() + } else return '' + } + + const saveForm = () => { + if (IDCliente === 0) { + setHeader('Error') + setMsg('Para continuar seleccion el cliente') + setShowMsg(true) + return + } + if (OpEntrada === 0 || OpSalida === 0) { + setHeader('Error') + setMsg('Para continuar seleccion las operacion es de Entrada y Salida') + setShowMsg(true) + return + } + if (IDCorresponsal === 0) { + setHeader('Error') + setMsg('Para continuar seleccion el corresponsal') + setShowMsg(true) + return + } + let data = new CCorresponsalesTrafico().getEmptyObject() + data.id = IDTrafico + data.idUsuario = UserId + data.idCliente = IDCliente + data.tipoOperacion = TipoOperacion + data.opEntrada = OpEntrada + data.opSalida = OpSalida + data.idCorresponsal = IDCorresponsal + data.bultos = Bultos + data.kilos = Kilos + data.estatus = Estatus + data.trafico = Trafico + data.aduana = Aduana + data.patente = Patente + data.pedimento = Pedimento + data.clave = ClavePedimento + data.fechaPago = FechaPago + data.tipoCambio = TipoCambio + data.valorAduanaMN = ValorAduanaMN + data.totalPagado = TotalPagado + data.valorFacturaMN = ValorFacturaMN + data.cantidadFracciones = CantidadFracciones + data.buque = Buque + data.valorFacturaDls = ValorFacturasDls + data.descripcionMercancia = DescripcionMercancia + data.observaciones = Observaciones + data.fechaDesaduanamiento = FechaDesaduanamiento + ? adjustTimeZone(FechaDesaduanamiento.toISOString()) + : '' + data.semaforoFiscal = SemafoFiscal + data.noCuenta = NoCuenta + data.fechaCuenta = FechaCuenta + data.idTabulador = IDTabulador + CTrafDataService.Append(data) + .then((response) => { + if (response.data.estatusCode === 0) { + if (mCFacturas.length >= 2) { + const Detail: ICorresponsalPedimento = { + id: IDDetail ? IDDetail : 0, + idTrafico: IDTrafico, + aduana: IDAduana, + costoDiario: CostoDiario, + descripcion: Descripcion, + destino: IDDestino, + diasCPPagado: DiasPedPagado, + embalaje: Embalaje, + estatus: IDEstatus, + fAlmacenajeInicioGastos: FAlmacenajeInicioGastos + ? FAlmacenajeInicioGastos + : '', + fDespacho: FDespacho ? FDespacho : '', + fechaETA: FechaETA, + fEntrada: FEntrada ? FEntrada : '', + fhEntregaPlanta: FHEntregaPlanta + ? adjustTimeZone(FHEntregaPlanta.toISOString()) + : '', + fhInstrucciones: FHInstrucciones + ? adjustTimeZone(FHInstrucciones.toISOString()) + : '', + fletes: Fletes, + fRevalidacionGuia: FRevalidacionGuia ? FRevalidacionGuia : '', + hawb: HAWB, + incoterm: Incoterm, + lineaTransportistaInternacional: LineaTransportistaInternacional, + mawb: MAWB, + montoUSA: MontoUSD, + noGuia: NoGuia, + observaciones: Observaciones, + origen: Origen, + otros: Otros, + paqueteriaTransportista: Transportista, + pesoNeto: PesoNeto, + preferenciaArancelaria: PreferenciaArancelaria, + seguros: Seguros, + tipoEmbarque: IDTipoEmbarque, + totalPagar: TotalPagar, + activo: 1 + } + CPedimentoService.Append(Detail) + .then((responseDetail) => { + setHeader('Informativo') + setMsg('La informacion se guardo correctamente') + setShowMsg(true) + if (Ready4NextProcess && TerminaProceso >= 0) saveFinalStep() + return + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e + ' en el detail') + setShowMsg(true) + return + }) + } + setIDTrafico(response.data.id) + setHeader('Informativo') + setMsg('La informacion se guardo correctamente') + setShowMsg(true) + saveFinalStep() + return + } else if (response.data.estatusCode === 409.1) { + setHeader('Error') + setMsg( + 'Ese pedimento ya esta registrado en el trafico: ' + + response.data.folioGemco + ) + setShowMsg(true) + return + } else if (response.data.estatusCode === 409.2) { + setHeader('Error') + setMsg( + 'Esa cuenta de gastos ya esta registrada en el trafico: ' + + response.data.folioGemco + ) + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + function currentDate(): string { + var today = new Date() + var dd = String(today.getDate()).padStart(2, '0') + var mm = String(today.getMonth() + 1).padStart(2, '0') //January is 0! + var yyyy = today.getFullYear() + return yyyy + '-' + mm + '-' + dd + } + + function getCurrentYear(): string { + var today = new Date() + return today.getFullYear().toString() + } + + const LoadEverything = () => { + CorresponsalesDataService.getAll() + .then((response) => { + dispatch(populateCatCorresponsales(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CTrafDataService.GetCorresponsalesTraficoEstatus() + .then((response) => { + setDataCatEstatus(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + + CFacDataService.getAll(IDTrafico) + .then((response) => { + dispatch(InitCorresponsalesFacturas(IDTrafico)) + response.data.forEach((element) => { + dispatch(addCorresponsalesFacturas(element)) + }) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CFac3erDataService.getAll(IDTrafico) + .then((response) => { + dispatch(InitCorresponsalesFacturasTerceros(IDTrafico)) + response.data.forEach((element) => { + dispatch(addCorresponsalesFacturasTerceros(element)) + }) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CContDataService.getAll(IDTrafico) + .then((response) => { + dispatch(InitCorresponsalesContenedores(IDTrafico)) + response.data.forEach((element) => { + dispatch(addCorresponsalesContenedores(element)) + }) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + ClientesDataService.getAllClientes(0) + .then((response) => { + setClientes(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CAntDataService.getAll(IDTrafico) + .then((response) => { + dispatch(populateCorresponsalesAnticipos(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CGuiasDataService.getAll(IDTrafico) + .then((response) => { + dispatch(populateCorresponsalesGuias(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + ProvDataService.getAll(0) + .then((response) => { + dispatch(populateCatProveedores(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CCatTiposDocumentos.getAll(2206, 1) + .then((response) => { + setCatTiposDocumentos(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CCatTiposDocumentos.getAll(2206, 2) + .then((response) => { + setCatTiposDocumentosInfoCorresponsal(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CCueCompService.GetAllEstatus() + .then((response) => { + dispatch( + populateCorresponsalesCuentasComplementariasEstatus(response.data) + ) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CTrafDataService.GetAll(IDTrafico) + .then((response) => { + setFolioTrafico(response.data.folioGemco) + setProceso(response.data.proceso) + setIDCliente(response.data.idCliente) + setIDTabulador(response.data.idTabulador) + setTipoOperacion(response.data.tipoOperacion) + setOpEntrada(response.data.opEntrada) + setOpSalida(response.data.opSalida) + setIDCorresponsal(response.data.idCorresponsal) + setBultos(response.data.bultos) + setKilos(response.data.kilos) + setEstatus(response.data.estatus ? response.data.estatus : 0) + setTrafico(response.data.trafico) + setPedimento(response.data.pedimento) + setClavePedimento(response.data.clave ? response.data.clave : '') + setFechaPago(setDate(response.data.fechaPago)) + setTipoCambio(response.data.tipoCambio) + setValorAduanaMN(response.data.valorAduanaMN) + setTotalPagado(response.data.totalPagado) + setValorFacturaMN(response.data.valorFacturaMN) + setCantidadFracciones(response.data.cantidadFracciones) + setBuque(response.data.buque) + setValorFacturasDls(response.data.valorFacturaDls) + setDescripcionMercancia(response.data.descripcionMercancia) + setObservaciones( + response.data.observaciones ? response.data.observaciones : '' + ) + setFechaDesaduanamiento(StrtoDate(response.data.fechaDesaduanamiento)) + setSemaforoFiscal(response.data.semaforoFiscal) + setNoCuenta(response.data.noCuenta) + setFechaCuenta(setDate(response.data.fechaCuenta)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CContaDataService.Get(IDTrafico, 1) + .then((response) => { + setRechazosTrafico(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CContaDataService.Get(IDTrafico, 2) + .then((response) => { + setRechazosContabilidad(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + loadRectificacionHistorico() + DoesThe2ZipFileExists() + } + + const loadRectificacionHistorico = () => { + CTrafDataService.GetRectificacionHistorico(IDTrafico) + .then((response) => { + if (response.data.id > 0) { + setAduanaH(response.data.aduana.toString()) + setPatenteH(response.data.patente.toString()) + setPedimentoH(response.data.pedimento.toString()) + setClavePedimentoH(response.data.clave) + setFechaPagoH(response.data.fechaPago) + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const DoesThe2ZipFileExists = () => { + if (IDTrafico > 0) { + FileManService.getFileInfoFromProcess(IDTrafico, 2) + .then((response) => { + setTieneArchivoZIPGEMCO( + response.data.nombreArchivo.length > 5 ? 1 : 0 + ) + }) + .catch((e: Error) => { + return + }) + FileManService.getFileInfoFromProcess(IDTrafico, 3) + .then((response) => { + setTieneArchivoZIPCorresponsal( + response.data.nombreArchivo.length > 5 ? 1 : 0 + ) + }) + .catch((e: Error) => { + return + }) + } + } + + useEffect(() => { + if (mCFacturas.length >= 2 && IDTrafico > 0) { + CPartidasService.GetAll(IDTrafico) + .then((response) => { + dispatch(populateCorresponsalesPartidas(response.data)) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CPedimentoService.Get(IDTrafico) + .then((responsed) => { + setIDDetail(responsed.data.id) + setIDAduana(responsed.data.aduana) + setCostoDiario(responsed.data.costoDiario) + setDescripcion(responsed.data.descripcion) + setIDDestino(responsed.data.destino) + setDiasPedPagado(responsed.data.diasCPPagado) + setEmbalaje(responsed.data.embalaje) + setIDEstatus(responsed.data.estatus) + setFAlmacenajeInicioGastos(responsed.data.fAlmacenajeInicioGastos) + setFHInstrucciones(StrtoDate(responsed.data.fhInstrucciones)) + setFHEntregaPlanta(StrtoDate(responsed.data.fhEntregaPlanta)) + setFechaETA(setDate(responsed.data.fechaETA)) + setFletes(responsed.data.fletes) + setFRevalidacionGuia(responsed.data.fRevalidacionGuia) + setHAWB(responsed.data.hawb) + setIncoterm(responsed.data.incoterm) + setLineaTransportistaInternacional( + responsed.data.lineaTransportistaInternacional + ) + setMAWB(responsed.data.mawb) + setMontoUSD(responsed.data.montoUSA) + setNoGuia(responsed.data.noGuia) + setObservaciones(responsed.data.observaciones) + setOrigen(responsed.data.origen) + setOtros(responsed.data.otros) + setTransportista(responsed.data.paqueteriaTransportista) + setPesoNeto(responsed.data.pesoNeto) + setPreferenciaArancelaria(responsed.data.preferenciaArancelaria) + setSeguros(responsed.data.seguros) + setIDTipoEmbarque(responsed.data.tipoEmbarque) + setTotalPagar(responsed.data.totalPagar) + }) + .catch((e: Error) => { + /* setHeader('Error') + setMsg('Ocurrio un error: ' + e + ' en el detail') + setShowMsg(true) */ + return + }) + } + }, [mCFacturas, IDTrafico, dispatch]) + + useEffect(() => { + if (Proceso) { + if (Depto === 'Contabilidad') { + setTerminaProceso(0) + } else if (Depto === 'Corresponsalias' && Proceso <= 1) { + setChangePermission(true) + } else if (Depto === 'Corresponsalias' && Proceso > 1) { + setChangePermission(false) + } else setChangePermission(false) + } + if (IDTrafico === 0) { + setChangePermission(true) + } + }, [Proceso, IDTrafico, Depto, []]) + + useEffect(() => { + LoadEverything() + }, []) + + useEffect(() => { + LoadEverything() + }, [IDTrafico]) + + useEffect(() => { + if ( + IDCorresponsal !== 0 && + Aduana !== 0 && + Patente !== 0 && + Pedimento !== 0 && + FechaPago !== '' && + FechaDesaduanamiento !== null && + NoCuenta !== '' && + TieneArchivoZIPGEMCO && + TieneArchivoZIPCorresponsal + ) { + let tmp = Pedimento?.toString() + if (tmp?.length === 7) { + setStatusTrafico(2) + setStatusColor('readyColor') + setReady4NextProcess(true) + } else { + setStatusColor('pendingColor') + setReady4NextProcess(false) + } + } else { + setStatusColor('pendingColor') + setReady4NextProcess(false) + } + }, [ + IDCorresponsal, + Aduana, + Patente, + Pedimento, + FechaPago, + FechaDesaduanamiento, + NoCuenta, + TieneArchivoZIPGEMCO, + TieneArchivoZIPCorresponsal + ]) + + useEffect(() => { + if (mCorresponsales) { + const result = mCorresponsales.filter( + (item) => item.id === IDCorresponsal + ) + if (result.length) { + setAduana(result[0].aduana) + setPatente(result[0].patente) + } + } + }, [IDCorresponsal, mCorresponsales]) + + const StrtoDate = (str: string): Date | null => { + if (str) { + const original: any = new Date(str) + return original + } else return null + } + + useEffect(() => { + if (FechaPago) { + getTipoCambio(FechaPago) + } + }, [FechaPago]) + + const getTipoCambio = (Fecha: string) => { + DashboardService.getTipoCambio(Fecha) + .then((response) => { + setTipoCambio(response.data) + }) + .catch((e: Error) => { + /* setHeader('Error') + setMsg('Ocurrio un error: no pude traer tipo de cambio para esa fecha') + setShowMsg(true) */ + return + }) + } + + useEffect(() => { + if (IDCliente > 0) { + CTabDataService.GetByCustomer(IDCliente) + .then((response) => { + setTabuladores(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + if (Clientes) { + let tmpArray: ItemList[] = [] + Clientes.forEach((element) => { + if (element.sClave === IDCliente) + tmpArray.push({ id: IDCliente, item: element.sRazonSocial }) + }) + setNombreCliente(tmpArray[0].item) + CCatAduanasService.getAll(IDCliente) + .then((response) => { + setDSCatAduanas(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CCatDestinosService.getAll(IDCliente) + .then((response) => { + setDSCatDestinos(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CCatMediosEmbarqueService.getAll() + .then((response) => { + setDSCatMediosEmbarque(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + CCatTiposEmbarqueService.getAll() + .then((response) => { + setDSCatTiposEmbarque(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + }, [IDCliente]) + + useEffect(() => { + let cont = + mCContenedores.length > 0 + ? mCContenedores.length - 1 + : mCContenedores.length + }, [mCContenedores]) + + useEffect(() => { + let ant = + mCAnticipos.length > 0 ? mCAnticipos.length - 1 : mCAnticipos.length + setLblAnticipos('(' + ant + ') anticipos') + }, [mCAnticipos]) + + useEffect(() => { + let fac3 = mCFTerceros.filter(function (row) { + return row.factura !== '-Seleccione-' && row.idTrafico === IDTrafico + }).length + setLblFacturasTerceros('(' + fac3 + ') Facturas pagos a terceros') + }, [mCFTerceros]) + + useEffect(() => { + let fac = mCFacturas.length > 0 ? mCFacturas.length - 1 : mCFacturas.length + setLblFacturas('(' + fac + ') Facturas ') + let total = 0 + mCFacturas.forEach((element) => { + total += element.idTrafico === IDTrafico ? element.valorFacturaDls : 0 + }) + setValorFacturasDls(total) + }, [mCFacturas, IDTrafico, IDCliente]) + + function calculateDaysBetweenDates(date1: Date, date2: Date) { + var oneDay = 24 * 60 * 60 * 1000 + var date1InMillis = date1.getTime() + var date2InMillis = date2.getTime() + var days = Math.round(Math.abs(date2InMillis - date1InMillis) / oneDay) + return days + } + + useEffect(() => { + if (FechaDesaduanamiento && FAlmacenajeInicioGastos && CostoDiario) { + const dias = calculateDaysBetweenDates( + new Date(FAlmacenajeInicioGastos), + FechaDesaduanamiento + ) + setTotalPagar((dias - 1) * CostoDiario) + } + }, [FechaDesaduanamiento, FAlmacenajeInicioGastos, CostoDiario]) + + function showModalBox(i: number) { + setLoadComponent(i) + if (i === 1) setModalSize('lg') + else setModalSize('sm') + setShowModal(true) + } + + function setDate(fecha: string | undefined): string { + if (!fecha) return '' + else { + var dd = fecha?.substring(3, 5) + var mm = fecha?.substring(0, 2) + var yyyy = fecha?.substring(6, 10) + return yyyy + '-' + mm + '-' + dd + } + } + + function getAduana(id: number): string { + Aduanas.forEach((element) => { + return element.id === id ? element.descripcion : '' + }) + return '' + } + + function openSOIA() { + let id: number = Aduana ? Aduana : 0 + window.open( + `https://aplicacionesc.mat.sat.gob.mx/SOIA_CR_WEB/oia_consultarapd_cep.aspx?&pa=${Patente}&dn=${Pedimento}&s=0&ap=${getCurrentYear()}&pad=${Aduana}&ad=${getAduana( + id + )}` + ) + } + + const saveFinalStep = () => { + console.log(TerminaProceso) + if (TerminaProceso === -100) return false + let data: DTOTraficoCompleto = { + id: 0, + idUsuario: 0, + estatus: 0, + comentarios: '' + } + if (Depto === 'Corresponsalias') { + data.id = IDTrafico + data.idUsuario = UserId + data.estatus = TerminaProceso + data.comentarios = ComentariosRechazo + } else if (Depto === 'Contabilidad') { + let arrStatus = mCCCEstatus.filter((a) => { + if (a.id === IDEstatusContabilidad) { + return a + } + }) + data.id = IDTrafico + data.idUsuario = UserId + data.estatus = 3 + data.comentarios = arrStatus[0].estatus + } + //console.log(JSON.stringify(data)) + CTrafDataService.ValidateComplete(data) + .then((response) => { + if (response.status === 200) { + setHeader('Informativo') + setMsg('La informacion se guardo correctamente') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + let handleColor = (time: Date) => { + return time.getHours() > 12 ? 'text-success' : 'text-error' + } + + const generaRectificacion = () => { + if (Aduana && Patente && Pedimento && ClavePedimento.length>0 && FechaPago) { + const data : DTORectificacionHistorico = { + IdTrafico: IDTrafico, + IdUsuario: UserId + } + CTrafDataService.AppendRectificacionHistorico(data) + .then((response) => { + loadRectificacionHistorico() + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } else { + setHeader('Error') + setMsg('Parea poder generar este proceso es necesario que los siguientes campos tengan informacion: Patente, Aduana, Pedimento, Clave, Fecha pago') + setShowMsg(true) + return + } + } + + return ( +
+ + + + + + DATOS GEMCO + + +
{ + props.onClose(true) + }} + > + + + +
+ +
+
+ + + + + + { + showModalBox(11) + }} + style={{ cursor: 'pointer' }} + > + + + +  Trafico + + + + + + + + + + + Fecha registro + + + + + + Usuario + + + + + + + + Cliente + + + { + setIDCliente(parseInt(e.target.value)) + }} + value={IDCliente} + className="form-select form-select-sm" + > + + {Clientes + ? Clientes.map((c) => { + return ( + + ) + }) + : null} + + + + { + return Depto === 'Corresponsalias' + ? showModalBox(10) + : '' + }} + style={{ cursor: 'pointer' }} + > + + + +  Precuenta + + + + { + setIDTabulador(parseInt(e.target.value)) + }} + value={IDTabulador} + className="form-select form-select-sm" + > + + {Tabuladores + ? Tabuladores.map((t) => { + return ( + + ) + }) + : null} + + + + {ChangePermission ? ( + + ) : ( + '' + )} + + + + + T. Operacion + + + + setTipoOperacion(parseInt(e.target.value)) + } + value={TipoOperacion} + disabled={Depto !== 'Corresponsalias'} + className="form-select form-select-sm" + > + + + + + + setOpEntrada(parseInt(e.target.value))} + value={OpEntrada} + disabled={Depto !== 'Corresponsalias'} + className="form-select form-select-sm" + > + + + + + + + + + setOpSalida(parseInt(e.target.value))} + value={OpSalida} + disabled={Depto !== 'Corresponsalias'} + className="form-select form-select-sm" + > + + + + + + + + + { + return Depto === 'Corresponsalias' + ? showModalBox(1) + : '' + }} + style={{ cursor: 'pointer' }} + > + + + +  Nombre Corresponsal + + + + { + setIDCorresponsal(parseInt(e.target.value)) + }} + className="form-select form-select-sm" + value={IDCorresponsal} + disabled={Depto !== 'Corresponsalias' ? true : false} + > + + {mCorresponsales + ? mCorresponsales.map((item, index) => { + return ( + + ) + }) + : ''} + + + + + + +
+
+ + + + + + + + + + + + + Bultos + + + { + const { value } = values + setBultos(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '15px', + backgroundColor: '#FFFFFF', + border: '1px solid #000000', + width: '70px', + borderRadius: '3px' + } + : { + fontSize: '15px', + backgroundColor: '#FFFFFF', + paddingLeft: '20px', + paddingRight: '5px', + border: '1px solid #000000', + width: '70px', + borderRadius: '3px' + } + } + /> + + + Kilos + + + { + const { value } = values + setKilos(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '15px', + backgroundColor: '#FFFFFF', + border: '1px solid #000000', + width: '100px', + borderRadius: '3px' + } + : { + fontSize: '15px', + backgroundColor: '#FFFFFF', + paddingLeft: '20px', + paddingRight: '5px', + border: '1px solid #000000', + width: '100px', + borderRadius: '3px' + } + } + /> + + + Estatus + + + { + setEstatus(parseInt(e.target.value)) + }} + > + + {DataCatEstatus + ? DataCatEstatus.map((c) => { + return ( + + ) + }) + : null} + + + + + + + Trafico + + + { + setTrafico(e.target.value) + }} + /> + + + Aduana + + + + + + Patente + + + + + + { + openSOIA() + }} + style={{ cursor: 'pointer' }} + > + Pedimento + + + + { + const { value } = values + setPedimento(value.length === 0 ? 0 : value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#FEFDF5', + border: '2px solid #837F5D', + width: '100px', + textAlign: 'right', + borderRadius: '10px' + } + : { + fontSize: '16px', + backgroundColor: '#FEFDF5', + border: '2px solid #837F5D', + width: '100px', + textAlign: 'right', + borderRadius: '10px' + } + } + /> + + + Clave + + + setClavePedimento(e.target.value)} + /> + + + Fec. Pago + + + setFechaPago(e.target.value)} + /> + + + + 0 && PatenteH.length>0 && PedimentoH.length>0 && FechaPagoH.length>0) ? 'visible' : 'hidden' }}> + + + + Aduana + + + + + + Patente + + + + + + + Pedimento + + + + + + + Clave + + + + + + Fec. Pago + + + + + + + + + Tipo cambio + + + + { + const { value } = values + setTipoCambio(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '100px', + textAlign: 'right', + borderRadius: '10px' + } + : { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '100px', + textAlign: 'right', + borderRadius: '10px', + paddingRight: '5px', + paddingLeft: '5px' + } + } + /> + + + + Val Aduana MN + + + + { + const { value } = values + setValorAduanaMN(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '150px', + textAlign: 'right', + borderRadius: '10px' + } + : { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '100px', + textAlign: 'right', + borderRadius: '10px', + paddingRight: '5px', + paddingLeft: '5px' + } + } + /> + + + + Total pagado + + + + { + const { value } = values + setTotalPagado(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '150px', + textAlign: 'right', + borderRadius: '10px' + } + : { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '150px', + textAlign: 'right', + borderRadius: '10px', + paddingRight: '5px', + paddingLeft: '5px' + } + } + /> + + + + Cant fracciones + + + + + + setCantidadFracciones((v) => + e.target.validity.valid + ? parseInt(e.target.value) + : v + ) + } + /> + + + + + + Buque + + + setBuque(e.target.value)} + /> + + + + + + { + showModalBox(2) + }} + style={{ cursor: 'pointer' }} + > + + + +  {LblFacturas} + + + + {}} + className="form-select form-select-sm" + disabled={Depto !== 'Corresponsalias'} + > + {mCFacturas + ? mCFacturas.map((item, index) => { + return item.idTrafico === IDTrafico ? ( + + ) : ( + + ) + }) + : ''} + + + + + Val Fact Dls + + + + { + const { value } = values + setValorFacturasDls(value) + }} + style={ + Depto === 'Corresponsalias' + ? { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '150px', + textAlign: 'right', + borderRadius: '10px' + } + : { + fontSize: '18px', + backgroundColor: '#F5FFED', + border: '2px solid #25D05B', + width: '150px', + textAlign: 'right', + borderRadius: '10px', + paddingRight: '5px', + paddingLeft: '5px' + } + } + /> + + + + + Descripcion de la mercancia: + + + + setDescripcionMercancia(e.target.value) + } + /> + + + Observaciones: + + + setObservaciones(e.target.value)} + /> + + + + + + Fecha de desaduanamiento + + + + + setFechaDesaduanamiento(date) + } + disabled={Depto === 'Contabilidad'} + showTimeSelect + timeClassName={handleColor} + dateFormat="MM/dd/yyyy HH:mm:ss" + placeholderText="No definido" + isClearable + />{' '} + + + + Semaf. fiscal + + + + + setSemaforoFiscal(parseInt(e.target.value)) + } + > + + + + + + { + showModalBox(9) + }} + style={{ cursor: 'pointer' }} + > + + + +  {LblAnticipos} + + + + + setAnticipo(parseInt(e.target.value)) + } + > + {mCAnticipos + ? mCAnticipos.map((item, index) => { + return item.idTrafico === IDTrafico ? ( + + ) : ( + + ) + }) + : ''} + + + + + + No. Cuenta + + + { + setNoCuenta(e.target.value) + }} + /> + + + Fecha Cuenta + + + setFechaCuenta(e.target.value)} + /> + + + { + showModalBox(4) + }} + style={{ cursor: 'pointer' }} + > + + + + {LblFacturasTerceros} + + + + + setPagosaTerceros(parseInt(e.target.value)) + } + > + {mCFTerceros + ? mCFTerceros.map((item, index) => { + return item.idTrafico === IDTrafico ? ( + + ) : ( + + ) + }) + : ''} + + + + + + ZIP Archivo Pedimento + + + + + + + ZIP Archivo Corresponsal Facturas + + + + + + + = 2 ? '0' : '', */ + }} + > + +{/* { + addItemMenu(props.item.id, e) + }} + /> +   + + {props.item.descripcion} + { + setItemMenu(props.item.id) + setDialogNewItemMenu(true) + }} + > + ... + + + + + + + + ) +} + +export const AdmonPerfiles: React.FC = (props) => { + const [sDialog, setsDialog] = React.useState(true) + const [DialogNewProfile, setDialogNewProfile] = React.useState(false) + const [Menu, setMenu] = React.useState() + const [IdPerfil, setIdPerfil] = React.useState(0) + const [Perfiles, setPerfiles] = React.useState() + useEffect(() => { + perfilesMenuServices + .getAllPerfiles() + .then((response) => { + setPerfiles(response.data) + console.log(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + loadPerfil(0) + }, [props.show]) + + function loadPerfil(id: number) { + setMenu([]) + perfilesMenuServices + .getPerfilMenuById(id) + .then((response) => { + setMenu(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + } + + const createProfile = (value: boolean): void => { + alert('crea nuevo perfil') + } + + const CloseModalPerfiles = (show: boolean): void => { + setDialogNewProfile(false) + } + + const onChangePerfil = (e: any): void => { + setIdPerfil(e.currentTarget.value) + loadPerfil(e.currentTarget.value) + } + + return props.show ? ( + <> + + + +
+
Administrador de perfiles
+
+
+ +
+
+
+ +
+
+
+
+
+ +
+
    +
  • + Menu +
      + {Menu?.map((item, index) => + item.padreId === 0 ? ( + + ) : ( + '' + ) + )} +
    +
  • +
+
+
+ + + +
+ + + ) : null +} diff --git a/src/Components/Register/admonPerfiles/nuevoItemMenu/NuevoItemMenu.tsx b/src/Components/Register/admonPerfiles/nuevoItemMenu/NuevoItemMenu.tsx new file mode 100644 index 0000000..aadcc9c --- /dev/null +++ b/src/Components/Register/admonPerfiles/nuevoItemMenu/NuevoItemMenu.tsx @@ -0,0 +1,193 @@ +import React, { FC, useEffect } from 'react' +import { Button, Modal, Toast, ToastContainer } from 'react-bootstrap' +import { propTypes } from 'react-bootstrap/esm/Image' +import { IPerfil } from '../../../../Interfaces/Catalogos/IPerfiles' +import perfilesMenuServices from '../../../../Services/Catalogos/PerfilesMenu.Services' +import DTOPerfilCreate from '../../../../DTO/DTOPerfilCreate' +import IPerfilesMenu from '../../../../Interfaces/IPerfilesMenu' +import IItemMenu from '../../../../Interfaces/Catalogos/IItemMenu' + +interface IProps { + show: boolean + ItemMenu: number + CloseModalPerfiles: (arg: boolean) => void +} + +export const NuevoItemMenu: FC = (props) => { + const [ItemMenu, setItemMenu] = React.useState(props.ItemMenu) + const [descripcion, setDescripcion] = React.useState('') + const [posicion, setPosicion] = React.useState(1) + const [url, setUrl] = React.useState('') + const [MenuItems, setMenuItems] = React.useState() + const [msgError, setMsgError] = React.useState('') + const [msgDialog, setMsgDialog] = React.useState(false) + + useEffect(() => { + console.log('props=' + JSON.stringify(props)) + }, [props]) + + useEffect(() => { + perfilesMenuServices + .getMenu() + .then((response) => { + setMenuItems(response.data) + console.log(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + setItemMenu(props.ItemMenu) + }, [props.show]) + + function validatePerfil() { + var msg = 'Proporcione: ' + if (!descripcion.length) msg += 'la descripcion / ' + if (!url.length) msg += 'la URL' + if (msg != 'Proporcione: ') { + setMsgError(msg) + setMsgDialog(true) + } + const data: IItemMenu = { + id: 0, + padreId: ItemMenu, + posicion: posicion, + descripcion: descripcion, + url: url, + } + + perfilesMenuServices + .createItemMenu(data) + .then((response) => { + if (response.status == 200) + alert('El item de menu se creo existosamente!') + console.log(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + console.log(ItemMenu + ' ' + descripcion + ' ' + posicion + ' ' + url) + } + + const onChangeItem = (e: any): void => { + //value: number = e.currentTarget.value; + setItemMenu(e.currentTarget.value) + } + + return ( + + + Nuevo item de menu + + +
+
+
+ + +
+
+ + { + setDescripcion(e.currentTarget.value) + }} + /> +
+
+ + +
+
+ + { + setUrl(e.target.value) + }} + /> +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ + setMsgDialog(false)} + show={msgDialog} + delay={3000} + bg='dark' + autohide + > + + Error! + + + {msgError} + + + +
+ ) +} diff --git a/src/Components/Register/admonPerfiles/nuevoPerfil/NuevoPerfil.tsx b/src/Components/Register/admonPerfiles/nuevoPerfil/NuevoPerfil.tsx new file mode 100644 index 0000000..a7e17ba --- /dev/null +++ b/src/Components/Register/admonPerfiles/nuevoPerfil/NuevoPerfil.tsx @@ -0,0 +1,125 @@ +import React, { FC, useEffect } from 'react' +import { Button, Modal } from 'react-bootstrap' +import { propTypes } from 'react-bootstrap/esm/Image' +import { IPerfil } from '../../../../Interfaces/Catalogos/IPerfiles' +import perfilesMenuServices from '../../../../Services/Catalogos/PerfilesMenu.Services' +import DTOPerfilCreate from '../../../../DTO/DTOPerfilCreate' + +interface IProps { + show: boolean + CloseModalPerfiles: (arg: boolean) => void + createProfile: (value: true) => void +} + +export const NuevoPerfil: FC = (props) => { + const [IdPerfil, setIdPerfil] = React.useState(0) + const [nombrePerfil, setnombrePerfil] = React.useState('') + const [Perfiles, setPerfiles] = React.useState() + useEffect(() => { + perfilesMenuServices + .getAllPerfiles() + .then((response) => { + setPerfiles(response.data) + console.log(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + }, [props.show]) + + function validatePerfil() { + if (!nombrePerfil.length) alert('Proporcione el nombre del perfil') + const data: DTOPerfilCreate = { + Perfil: nombrePerfil, + IdPerfilClonado: IdPerfil, + } + perfilesMenuServices + .createPerfil(data) + .then((response) => { + if (response.status == 200) alert('El perfil se creo existosamente') + console.log(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + } + + const onChangePerfil = (e: any): void => { + setIdPerfil(e.currentTarget.value) + } + + return ( + + + Nuevo perfil + + +
+
+
+ + +
+
+ + { + setnombrePerfil(e.currentTarget.value) + }} + /> +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ ) +} diff --git a/src/Components/Register/register.tsx b/src/Components/Register/register.tsx new file mode 100644 index 0000000..7b84739 --- /dev/null +++ b/src/Components/Register/register.tsx @@ -0,0 +1,1400 @@ +import * as React from 'react' +import { Formik, Form, Field } from 'formik' +import '../../css/generic01.css' +import * as Yup from 'yup' +import { IRegister } from '../../Interfaces/IRegister' +import { + Accordion, + Button, + Card, + Form as Frm, + Modal, + Tab, + Table, + Tabs, + Toast, + ToastContainer +} from 'react-bootstrap' +import { useEffect, useState } from 'react' +import IPerfilesMenu from '../../Interfaces/IPerfilesMenu' +import { IPerfil } from '../../Interfaces/Catalogos/IPerfiles' +import PerfilesMenuServices from '../../Services/Catalogos/PerfilesMenu.Services' +import ClientesServices from '../../Services/Catalogos/Clientes.Services' +import usuariosServices from '../../Services/Catalogos/Usuarios.Services' +import MenuUsuario from '../MenuUsuario/MenuUsuario' +import IClientes from '../../Interfaces/Catalogos/IClientes' +import DTOUsuarioCliente from '../../DTO/DTOUsuarioCliente' +import ITransportistas from '../../Interfaces/Catalogos/ITransportitas' +import IProveedores from '../../Interfaces/Catalogos/IProveedores' +import DTOasignaClienteProveedor from '../../DTO/DTOasignaClienteProveedor' +import DTOClienteTransportista from '../../DTO/DTOClienteTransportita' +import ITokenInfo from '../../Interfaces/ITokenInfo' +import { UserList } from './UserList/UserList' +import DTOUsuariosShort from '../../DTO/DTOUsuariosShort' +import DTOClonarUsuario from '../../DTO/DTOClonarUsuario' +import { AdmonPerfiles } from './admonPerfiles/AdmonPerfiles' +import { Form as FormCtrl } from 'react-bootstrap' + +interface IProps {} + +const SignupSchema = Yup.object().shape({ + usuario: Yup.string() + .min(6, 'Usuario demasiado corto') + .max(50, 'Usuario demasiado largo') + .required('Requerido'), + nombre: Yup.string() + .min(6, 'Nombre de usuario demasiado corto') + .max(100, 'Nombre de usuario demasiado largo') + .required('Requerido'), + contrasena: Yup.string() + .min(6, 'Contraseña demasiado corta') + .max(50, 'Contraseña demasiado larga'), + correo: Yup.string().email('Correo invalido').required('Requirido') +}) + +export default function Register(props:IProps) { + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [showDialog, setShowDialog] = React.useState(false) + const [modalUserList, setModalUserList] = React.useState(false) + const [modalAdmonPerfiles, setmodalAdmonPerfiles] = React.useState(false) + const [msgDialog, setmsgDialog] = React.useState('') + const [Asignaciones, setAsignacion] = useState(false) + const [IdUsuario, setIdUsuario] = useState(0) + const [Usuario, setUsuario] = useState('') + const [Nombre, setNombre] = useState('') + const [Contrasena, setContrasena] = useState('') + const [Correo, setCorreo] = useState('') + const [TipoUsuario, setTipoUsuario] = useState(2) + const [Activo, setActivo] = useState(1) + const [FechaAlta, setFechaAlta] = useState('') + const [UsuarioAlta, setUsuarioAlta] = useState(0) + const [FechaModifico, setFechaModifico] = useState('') + const [UsuarioModifico, setUsuarioModifico] = useState(0) + const [FechaElimino, setFechaElimino] = useState('') + const [UsuarioElimino, setUsuarioElimino] = useState(0) + const [MotivoElimino, setMotivoelimino] = useState('') + const [IdModulo, setIdModulo] = useState(0) + const [Dept, setDept] = useState(0) + const [TMercancia, setTMercancia] = useState(0) + const [FechaUltimaVisita, setFechaUltimaVisita] = useState('') + const [Visitas, setVisitas] = useState(0) + const [Internos, setInternos] = useState(0) + const [PermisoEspecial, setPermisoEspecial] = useState(0) + const [EstadoConfiguracion, setEstadoConfiguracion] = useState(0) + const [FechaValidacionConf, setFechaValidacionConf] = useState('') + const [RealizoEncuesta, setRealizoEncuesta] = useState('') + const [EncuestaActiva, setEncuestaActiva] = useState(0) + const [FechaLimiteEncuesta, setFechaLimiteEnuesta] = useState('') + const [CodigoAccesoM, setCodigoAccesoM] = useState('') + const [TokenAccesoM, setTokenAccesoM] = useState('') + const [DeviceToken, setDeviceToken] = useState('') + const [IdPerfil, setIdPerfil] = useState(0) + const [user2Clone, setUser2Clone] = React.useState(0) + const [perfiles, setPerfiles] = useState([ + { + id: 0, + perfil: '-SELECCIONE-' + } + ]) + const [clientes, setClientes] = useState([]) + const [transportistas, setTransportistas] = useState([]) + const [proveedores, setProveedores] = useState([]) + const [comboUsuarios, setcomboUsuarios] = useState([]) + const [toastPerfil, setToastPerfil] = useState(false) + const [UsuariosPerfilesMenu, setUsuariosPerfilesMenu] = + useState() + const [perfilActual, setPerfilActual] = useState() + const [showConfirmation, setShowConfirmation] = useState(false) + const [usuarioDestino, setUsuarioDestino] = useState('') + const [Search, setSearch] = useState('') + var initialValues: IRegister = { + id: IdUsuario, + usuario: Usuario, + nombre: Nombre, + contrasena: Contrasena, + correo: Correo, + tipoUsuario: TipoUsuario, + activo: Activo, + fechaAlta: currentDate(), + usuarioAlta: IdUsuario, + fechaModifico: currentDate(), + usuarioModifico: UsuarioModifico, + fechaElimino: FechaElimino, + usuarioElimino: 0, + motivoElimino: MotivoElimino, + idModulo: IdModulo, + dept: Dept, + tmercancia: TMercancia, + fechaUltimaVisita: FechaUltimaVisita, + visitas: Visitas, + internos: Internos, + permisoEspecial: PermisoEspecial, + estadoConfiguracion: EstadoConfiguracion, + fechaValidacionConf: FechaValidacionConf, + realizoEncuesta: RealizoEncuesta, + encuestaActiva: EncuestaActiva, + fechaLimiteEncuesta: FechaLimiteEncuesta, + codigoAccesoM: CodigoAccesoM, + tokenAccesoM: TokenAccesoM, + deviceToken: DeviceToken, + idPerfil: IdPerfil + } + + const initialValuesPerfiles: IPerfil = { + id: IdPerfil, + perfil: '' + } + + function getUsuario() { + const item = localStorage.getItem('tokenInfo') + let Usr = '' + if (item) { + const registro: ITokenInfo = JSON.parse(item) + Usr = registro.Usuario + } + return Usr + } + + useEffect(() => { + if (!isNaN(IdUsuario)) { + PerfilesMenuServices.getAllPerfilesMenu() + .then((response) => { + setUsuariosPerfilesMenu(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + } + }, []) + + useEffect(() => { + if (!isNaN(IdUsuario)) { + PerfilesMenuServices.getAllPerfiles() + .then((response) => { + setPerfiles(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + } + }, []) + + useEffect(() => { + usuariosServices + .getAllUsuariosShort() + .then((response) => { + setcomboUsuarios(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + }, []) + + useEffect(() => { + if (IdUsuario > 0) { + ClientesServices.getUsuariosAsignados(IdUsuario) + .then((response) => { + console.log( + '.........................................................' + + IdUsuario + + ' ' + + JSON.stringify(response.data) + ) + setClientes(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + + PerfilesMenuServices.getAllTransportitas(IdUsuario) + .then((response) => { + setTransportistas(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + + PerfilesMenuServices.getAllProveedores(IdUsuario) + .then((response) => { + setProveedores(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + } + }, [IdUsuario]) + + const handleSelect = (e: any) => { + console.log(e) + setPerfiles(e) + } + + function currentDate(): string { + var today = new Date() + var dd = String(today.getDate()).padStart(2, '0') + var mm = String(today.getMonth() + 1).padStart(2, '0') //January is 0! + var yyyy = today.getFullYear() + return mm + '/' + dd + '/' + yyyy + } + + const validateForm = (values: IRegister) => { + const errors = { usuario: '', nombre: '', contrasena: '', correo: '' } + if (!values.usuario) { + errors.usuario = 'Campo Usuario es requerido' + } else if (values.usuario.length > 50) { + errors.usuario = 'Debe contener 50 caracteres o menos' + } + if (!values.nombre) { + errors.nombre = 'Campo Nombre es requerido' + } else if (values.nombre.length > 100) { + errors.nombre = 'Debe contener 100 caracteres o menos' + } + if (!values.correo) { + errors.correo = 'Campo correo es requerido' + } else if ( + !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.correo) + ) { + errors.correo = 'Correo invalido' + } + console.log(errors) + return errors + } + + function asignaPerfil() {} + + function toggleShowPerfil() { + setToastPerfil(!toastPerfil) + } + + function construyePerfil(values: IPerfil) { + if (UsuariosPerfilesMenu) { + console.log(UsuariosPerfilesMenu) + var opcionesPerfil = UsuariosPerfilesMenu.filter(function (el) { + return el.idPerfil == values.id + }) + setPerfilActual(opcionesPerfil) + } + } + + async function addCliente(id: number, e: any) { + const asignacionUsuarioCliente: DTOUsuarioCliente = { + sClave: id, + IdUsuario: IdUsuario, + agregar: e.currentTarget.checked + } + ClientesServices.create(asignacionUsuarioCliente) + .then((response) => { + loadProveedores() + }) + .catch((e: Error) => { + console.log(e) + }) + } + + async function asignaClienteProveedor( + sClaveCliente: string, + sClave: string, + e: any + ) { + const data: DTOasignaClienteProveedor = { + IdUsuario: IdUsuario, + sClaveCliente: sClaveCliente, + sClave: sClave, + asignado: e.currentTarget.checked + } + console.log('data= ' + JSON.stringify(data)) + ClientesServices.asignaClienteProveedor(data) + .then((response) => { + console.log('Asignacion ' + JSON.stringify(response)) + }) + .catch((e: Error) => { + console.log(e) + }) + } + + async function asignaClienteTransportista(sClave: string, e: any) { + const data: DTOClienteTransportista = { + IdUsuario: IdUsuario, + sClave: sClave, + asignado: e.currentTarget.checked + } + ClientesServices.asignaClienteTransportista(data) + .then((response) => { + console.log('Asignacion ' + JSON.stringify(response)) + }) + .catch((e: Error) => { + console.log(e) + }) + } + + function loadProveedores() { + console.log('Entro a cargar proveedores ') + PerfilesMenuServices.getAllProveedores(1) + .then((response) => { + setProveedores(response.data) + }) + .catch((e: Error) => { + console.log(e) + }) + } + + function createUser(data: IRegister) { + usuariosServices + .create(data) + .then((response) => { + // console.log(JSON.stringify(response)); + if (response.status === 200) { + setmsgDialog('El usuario ha sido guardado existosamente') + setShowDialog(true) + } + }) + .catch((e: Error) => { + // console.log(e); + setmsgDialog('Ocurrio un error: ' + e) + setShowDialog(true) + }) + } + + const CloseModal = (show: boolean): void => { + setModalUserList(false) + } + + const CloseModalAP = (show: boolean): void => { + setmodalAdmonPerfiles(false) + } + + const CloseModalPerfiles = (show: boolean): void => { + //setmodalAdmonPerfiles(false); + } + + function loadAllUserInfo(id: number) {} + + const GetUserInfo = (data: IRegister): void => { + console.log('data from get usuario '+JSON.stringify(data)) + setIdUsuario(data.id) + setUsuario(data.usuario) + setNombre(data.nombre) + setContrasena(data.contrasena) + setCorreo(data.correo) + setIdPerfil(data.idPerfil) + loadAllUserInfo(data.id) + } + + const clonaInformacion = (): void => { + // alert(IdPerfil) + if (IdPerfil == 0) { + setToastPerfil(true) + setmsgDialog('') + return + } else + setShowConfirmation(true) + } + + const ChangeUser2Clone = (e: any): void => { + setUser2Clone(e.target.value) + const usr = comboUsuarios.filter((item) => item.id == e.target.value) + setUsuarioDestino(usr[0].usuario) + } + + const handleClose = () => setShowConfirmation(false) + + const procedeClonacion = () => { + const data: DTOClonarUsuario = { + idUsuarioOrigen: IdUsuario, + idUsuarioDestino: user2Clone + } + usuariosServices + .clonarUsuario(data) + .then((response) => { + if (response.status == 200) { + setToastPerfil(true) + setmsgDialog('Usuario clonado existosamente') + } + }) + .catch((e: Error) => { + console.log(e) + }) + setShowConfirmation(false) + } + + const onChangePerfil = (e: any): void => { + setIdPerfil(e.currentTarget.value) + } + + return ( +
+
+
+ + + { + console.log(values, actions) + createUser(values) + }} + // validate={validateForm} + > + {(formik) => { + const { + errors, + touched, + isValid, + dirty, + values, + handleSubmit + } = formik + return ( +
+ + + + Informacion obligatoria + + +
+
+ + +
+
+ +
+ +
+
+
+
+
+
+
ID
+ +
+
+
+
+ + + {errors.usuario && touched.usuario ? ( +
+ {' '} + + {' '} + * {errors.usuario}{' '} + {' '} +
+ ) : null} +
+
+
+
+
+
+ + + {errors.nombre && touched.nombre ? ( +
+ {' '} + + {' '} + * {errors.nombre}{' '} + {' '} +
+ ) : null} +
+
+
+
+ + + {/* {errors.contrasena && touched.contrasena ? ( +
+ {" "} + + {" "} + * {errors.contrasena}{" "} + {" "} +
+ ) : null} */} +
+
+
+
+
+
+ + + {errors.correo && touched.correo ? ( + + {' '} +
* {errors.correo}
{' '} +
+ ) : null} +
+
+
+
+ + + setTipoUsuario(parseInt(e.target.value)) + } + className="form-select form-select-sm" + > + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+
+ {' '} +
+ + +
+
+
+
+
+
+ + + + +
+
+
+
+ + +
+
+
+
+
+ + + Informacion adicional + + +
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+ {' '} +
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ {' '} +
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ ) + }} +
+
+
+ + + + + Roles + + + + Other stuff + + + + + +
+
+ 0 ? {} : { display: 'none' }}> + +
+
+
+
+
Perfiles
+
+
+ { + console.log({ values, actions }) + construyePerfil(values) + actions.setSubmitting(false) + }} + > +
+
+ + + {perfiles.map((p) => { + return ( + + ) + })} + +
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+
+
+ { + setSearch(e.target.value) + }} + /> +
+
+
+
+ + +
+
+ + + + + + + + + {clientes + .filter((c) => { + if ( + c.sRazonSocial + .toLocaleLowerCase() + .match(Search.toLocaleLowerCase()) + ) { + return c + } + }) + .map((c) => { + return ( + <> + + + + + + ) + })} + +
Cliente
+ { + addCliente(c.sClave, e) + // loadProveedores(); + }} + /> + + {c.sRazonSocial} +
+
+
+
+ +
+
+ + + + + + + + + {transportistas + .filter((t) => { + if ( + t.sRazonSocial + .toLocaleLowerCase() + .match(Search.toLocaleLowerCase()) + ) { + return t + } + }) + .map((t) => { + return ( + <> + + + + + + ) + })} + +
Transportistas
+ { + asignaClienteTransportista( + t.sClave, + e + ) + }} + /> + + {t.sRazonSocial} +
+
+
+
+ +
+
+ + + + + + + + + + {proveedores + .filter((p) => { + if ( + p.sRazonSocial + .toLocaleLowerCase() + .match(Search.toLocaleLowerCase()) + ) { + return p + } + }) + .map((p) => { + return ( + <> + + + + + + + ) + })} + +
ProveedoresDireccion
+ { + /* addCliente(t.sClave); */ + asignaClienteProveedor( + p.sClaveCliente, + p.sClave, + e + ) + }} + /> + + {p.sRazonSocial} + + {p.direccion} +
+
+
+
+
+
+ + + + Error! + + + Seleccione un perfil, para poder continuar... + + + +
+
+
+
+ + setShowDialog(false)} + show={showDialog} + delay={3000} + bg="dark" + autohide + > + + Informacion + + + {msgDialog} + + + + + + Favor de confirmar + + + ¿Esta seguro de que desea clonar la informacion de :
[ {Usuario}{' '} + ] para ... [ {usuarioDestino} ] ? +
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ ) +} diff --git a/src/Components/Reportes/RptCorresponsalesTraficos.tsx b/src/Components/Reportes/RptCorresponsalesTraficos.tsx new file mode 100644 index 0000000..eb6a3cc --- /dev/null +++ b/src/Components/Reportes/RptCorresponsalesTraficos.tsx @@ -0,0 +1,525 @@ +import { RowClickedEvent } from 'ag-grid-community' +import { AgGridReact } from 'ag-grid-react' +import React, { FC, useEffect, useState } from 'react' +import { Button, Card, Form, Modal } from 'react-bootstrap' +import ICorresponsalTrafico from '../../Interfaces/Corresponsales/ICorresponsalTrafico' +import ClientesDataService from '../../Services/Catalogos/Clientes.Services' +import { MsgInformativo } from '../Utils/Toast/msgInformativo' +import IClientes from '../../Interfaces/Catalogos/IClientes' +import { BsPlusLg, BsFileEarmarkExcel, BsSearch, BsFillXCircleFill, BsCheckCircleFill } from 'react-icons/bs' +import * as XLSX from 'xlsx' +import TraficoCorresponsales from '../Corresponsales/TraficoCorresponsales' +import ICatCorresponsales from '../../Interfaces/Catalogos/ICatCorresponsales' +import CorresponsalesDataService from '../../Services/Catalogos/Corresponsales.Services' +import reportesServices from '../../Services/Reportes/reportes.services' +import moment from 'moment' +import DTORptCorresponsalesTraficos from '../../DTO/Corresponsales/DTORptCorresponsalesTraficos' +import { InitCorresponsalesFacturas } from '../../store/features/Corresponsales/CorresponsalesFacturasSlice' +import { InitCorresponsalesFacturasTerceros } from '../../store/features/Corresponsales/CorresponsalesFacturasTercerosSlice' +import { InitCorresponsalesContenedores } from '../../store/features/Corresponsales/CorresponsalesContenedoresSlice' +import { useDispatch } from 'react-redux' +import { IconContext } from 'react-icons' +import { ProgressBar } from './customCells/progressBar' +import { useParams } from 'react-router-dom' +import { FaHandSparkles } from 'react-icons/fa' + +interface IProps {} + +export default function RptCorresponsalesTraficos (props: IProps) { + const { proc, modo } = useParams() + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const queryParams = new URLSearchParams(window.location.search) + const status = queryParams.get('status') + const [StatusAnticipos, setStatusAnticipos] = useState(status ? parseInt(status) : 0) + const dispatch = useDispatch() + const [IDTrafico, setIDTrafico] = useState(0) + const [Data, setData] = useState([]) + const [filteredData, setFilteredData] = useState([]) + const [show, setShowMsg] = useState(false) + const [ShowModal, setShowModal] = useState(false) + const [header, setHeader] = useState('') + const [msg, setMsg] = useState('') + const [Inicio, setInicio] = useState(currentDate(-365)) + const [Fin, setFin] = useState(currentDate(0)) + const [TipoOperacion, setTipoOperacion] = useState(0) + const [Cliente, setCliente] = useState(0) + const [Corresponsal, setCorresponsal] = useState(0) + const [Clientes, setClientes] = useState>() + const [filtro, setFiltro] = useState('') + const gridRef = React.useRef(null) + const [DataCorresponsales, setDataCorresponsales] = useState([]) + const [columnDefs] = useState([ + { field: 'id', headerName: 'id', width: 70, sortable: true, filter: true }, + { + field: 'proceso', + headerName: 'Status', + width: 90, + center: true, + sortable: true, + filter: true, + cellRenderer: ProgressBar, + }, + { + field: 'folio', + headerName: 'Trafico', + width: 140, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + return params.data.folio + }, + }, + { + field: 'fechaRegistro', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + return params.value.substring(0, 10) + }, + }, + { field: 'sUsuario', headerName: 'Usuario', sortable: true, filter: true }, + { + field: 'sCliente', + headerName: 'Cliente', + sortable: true, + filter: true, + }, + { field: 'sTipoOperacion', headerName: 'Tipo operacion', sortable: true, filter: true }, + { field: 'sOpEntrada', headerName: 'Op Entrada', sortable: true, filter: true }, + { field: 'sOpSalida', headerName: 'Op Salida', sortable: true, filter: true }, + { field: 'sCorresponsal', headerName: 'Corresponsal', sortable: true, filter: true }, + { field: 'patente', sortable: true, filter: true }, + { field: 'aduana', sortable: true, filter: true }, + { field: 'pedimento', sortable: true, filter: true }, + { + field: 'fechaPago', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value) return params.value.substring(0, 10) + else return '' + }, + }, + { + field: 'fechaDesaduanamiento', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value) return params.value.substring(0, 10) + else return '' + }, + }, + { + field: 'zipgemco', + headerName: 'Zip GEMCO', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value === 'No') + return ( +
+ + + +
+ ) + else + return ( +
+ + + +
+ ) + }, + }, + { + field: 'zipCorresponsal', + headerName: 'Zip Corresponsal', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value === 'No') + return ( +
+ + + +
+ ) + else + return ( +
+ + + +
+ ) + }, + }, + { field: 'ultimaActualizacion', sortable: true, filter: true }, + ]) + const [msgColor, setMsgColor] = useState('primary') + + function ConvertHexToString(str: string) { + return unescape(str.replace(/\\/g, '%')) + } + + function currentDate(days: number): string { + var today = new Date() + today.setDate(today.getDate() + days) + var dd = String(today.getDate()).padStart(2, '0') + var mm = String(today.getMonth() + 1).padStart(2, '0') + var yyyy = today.getFullYear() + return yyyy + '-' + mm + '-' + dd + } + +/* useEffect(() => { + if (proc && modo) { + if (status) { + setStatusAnticipos(parseInt(status)) + } else setStatusAnticipos(0) + const data: DTORptCorresponsalesTraficos = { + Inicio: '', + Fin: '', + TipoOperacion: 0, + NoCliente: 0, + IdCorresponsal: Corresponsal, + Proceso: proc ? parseInt(proc.replace('proc=','')) : 0, + Modo: modo ? parseInt(modo.replace('modo=','')) : 0, + } + reportesServices + .getRptCorresponsalesTraficos(data) + .then((response) => { + setData(response.data) + setFilteredData(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + }, [proc, modo]) */ + + useEffect(() => { + ClientesDataService.getAllClientes(UserId) + .then((response) => { + setClientes(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + + CorresponsalesDataService.getAll() + .then((response) => { + setDataCorresponsales(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + generaReporte() + }, []) + + function getParams(e: RowClickedEvent) { + AbreTrafico(e.data.id) + } + + function AbreTrafico(id: number) { + dispatch(InitCorresponsalesFacturas(IDTrafico)) + dispatch(InitCorresponsalesFacturasTerceros(IDTrafico)) + dispatch(InitCorresponsalesContenedores(IDTrafico)) + setIDTrafico(id) + setShowModal(true) + } + + const generaReporte = () => { + if (proc && modo) { + const data: DTORptCorresponsalesTraficos = { + Inicio: moment(Inicio).format('YYYY-MM-DD'), + Fin: moment(Fin).format('YYYY-MM-DD'), + TipoOperacion: TipoOperacion, + NoCliente: Cliente, + IdCorresponsal: Corresponsal, + Proceso: proc ? parseInt(proc.replace('proc=','')) : 0, + Modo: modo ? parseInt(modo.replace('modo=','')) : 0, + } + reportesServices + .getRptCorresponsalesTraficos(data) + .then((response) => { + setData(response.data) + setFilteredData(response.data) + console.log(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + } + + const filtraReporte = (e: any) => { + setFiltro(e.target.value) + gridRef.current.api.setQuickFilter(e.target.value) + } + + const downloadExcel = () => { + exportExcel(Data, 'Traficos de corresponsales') + } + + function exportExcel(jsonData: any[], fileName: string): void { + let Heading = [ + [ + { title: 'Aduana Seccion Despacho', style: { font: { sz: '18', bold: true } } }, + 'Patente', + 'Referencia', + 'Pedimento', + 'Fecha Pago', + 'Fecha Entrada Presentacion', + 'Clave Docto', + 'Es rectificacion', + 'Tipo Cambio', + 'Valor Dls', + 'Valor Aduana', + 'Numero Factura', + 'Fecha Factura', + 'Proveedor Factura', + 'Incrementables Fact', + 'Fraccion', + 'Subdiv NICO', + 'Descripcion', + 'Pais Origen', + 'Pais Vendedor', + 'Tasa DTA', + 'Tasa IGI', + 'Numero Parte', + 'Cantidad Comercial', + 'TL Pais', + 'Tipo Tasa', + 'Unidad Comercial', + 'Valor Factura Item', + 'Valor Comercial Ped', + 'Valor Factura Item MN', + ], + ] + const wb = XLSX.utils.book_new() + const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet([]) + XLSX.utils.sheet_add_aoa(ws, Heading) + XLSX.utils.sheet_add_json(ws, jsonData, { origin: 'A2', skipHeader: true }) + XLSX.utils.book_append_sheet(wb, ws, 'Sheet1') + + XLSX.writeFile(wb, fileName + '.xlsx') + var range = XLSX.utils.decode_range(ws['!ref?']) + for (var C = range.s.c; C <= range.e.c; ++C) { + var address = XLSX.utils.encode_col(C) + '1' // <-- first row, column number C + if (!ws[address]) continue + ws[address].v = ws[address].v.toUpperCase() + } + } + + return ( +
+ + +
+
+ setInicio(e.target.value)} + size='sm' + /> +
+
+ setFin(e.target.value)} + size='sm' + /> +
+
+ Tipo oper +
+
+ setTipoOperacion(parseInt(e.target.value))} + className='form-select form-select-sm' + > + + + + +
+
+ Cliente +
+
+ { + setCliente(parseInt(e.target.value)) + }} + className='form-select form-select-sm' + > + + {Clientes + ? Clientes.map((c) => { + return ( + + ) + }) + : null} + +
+
+ +
+
+
+
+ {Depto === 'Corresponsalias' ? ( + + ) : ( + '' + )} +
+
+ { + filtraReporte(e) + }} + /> +
+
+ +
+
Corresponsal
+
+ { + setCorresponsal(parseInt(e.target.value)) + }} + className='form-select form-select-sm' + > + + {DataCorresponsales + ? DataCorresponsales.map((c) => { + return ( + + ) + }) + : null} + +
+
+
+
+
+
+
+ getParams(e)} + > +
+ { + setShowMsg(false) + }} + /> + setShowModal(false)} */ + size='sm' + dialogClassName='modal-90w modal-innerDiv' + disableEscapeKeyDown={true} + > + +
+ +
+
+
+
+ ) +} diff --git a/src/Components/Reportes/RptCorresponsalesTraficosHst.tsx b/src/Components/Reportes/RptCorresponsalesTraficosHst.tsx new file mode 100644 index 0000000..13c6396 --- /dev/null +++ b/src/Components/Reportes/RptCorresponsalesTraficosHst.tsx @@ -0,0 +1,519 @@ +import { RowClickedEvent } from 'ag-grid-community' +import { AgGridReact } from 'ag-grid-react' +import React, { FC, useEffect, useState } from 'react' +import { Button, Card, Form, Modal } from 'react-bootstrap' +import ICorresponsalTrafico from '../../Interfaces/Corresponsales/ICorresponsalTrafico' +import ClientesDataService from '../../Services/Catalogos/Clientes.Services' +import { MsgInformativo } from '../Utils/Toast/msgInformativo' +import IClientes from '../../Interfaces/Catalogos/IClientes' +import { BsPlusLg, BsFileEarmarkExcel, BsSearch, BsFillXCircleFill, BsCheckCircleFill } from 'react-icons/bs' +import * as XLSX from 'xlsx' +import TraficoCorresponsales from '../Corresponsales/TraficoCorresponsales' +import ICatCorresponsales from '../../Interfaces/Catalogos/ICatCorresponsales' +import CorresponsalesDataService from '../../Services/Catalogos/Corresponsales.Services' +import reportesServices from '../../Services/Reportes/reportes.services' +import moment from 'moment' +import DTORptCorresponsalesTraficos from '../../DTO/Corresponsales/DTORptCorresponsalesTraficos' +import { InitCorresponsalesFacturas } from '../../store/features/Corresponsales/CorresponsalesFacturasSlice' +import { InitCorresponsalesFacturasTerceros } from '../../store/features/Corresponsales/CorresponsalesFacturasTercerosSlice' +import { InitCorresponsalesContenedores } from '../../store/features/Corresponsales/CorresponsalesContenedoresSlice' +import { useDispatch } from 'react-redux' +import { IconContext } from 'react-icons' +import { ProgressBar } from './customCells/progressBar' +import { ProcessStatus } from './customCells/ProcessStatus' + +interface IProps {} + +export default function RptCorresponsalesTraficosHst (props: IProps) { + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [Depto, setDepto] = useState(() => { + const stickyValue = window.localStorage.getItem('Departamento') + return stickyValue !== null ? JSON.parse(stickyValue) : '' + }) + const queryParams = new URLSearchParams(window.location.search) + const proc = queryParams.get('proc') + const status = queryParams.get('status') + const Modo = queryParams.get('Modo') + //const [Mode, setMode] = useState(parseInt(window.location.search.replace('?proc=', '0'))) + const [StatusAnticipos, setStatusAnticipos] = useState(status ? parseInt(status) : 0) + const dispatch = useDispatch() + const [IDTrafico, setIDTrafico] = useState(0) + const [Data, setData] = useState([]) + const [filteredData, setFilteredData] = useState([]) + const [show, setShowMsg] = useState(false) + const [ShowModal, setShowModal] = useState(false) + const [header, setHeader] = useState('') + const [msg, setMsg] = useState('') + const [Inicio, setInicio] = useState(currentDate(-365)) + const [Fin, setFin] = useState(currentDate(0)) + const [TipoOperacion, setTipoOperacion] = useState(0) + const [Cliente, setCliente] = useState(0) + const [Corresponsal, setCorresponsal] = useState(0) + const [Clientes, setClientes] = useState>() + const [filtro, setFiltro] = useState('') + const gridRef = React.useRef(null) + const [DataCorresponsales, setDataCorresponsales] = useState([]) + const [columnDefs] = useState([ + { field: 'id', headerName: 'id', width: 70, sortable: true, filter: true }, + { + field: 'proceso', + headerName: 'Status', + width: 90, + center: true, + sortable: true, + filter: true, + cellRenderer: ProcessStatus, + }, + { + field: 'folio', + headerName: 'Folio', + width: 120, + sortable: true, + filter: true, + cellRenderer: (params: any) => { + return params.data.folio + }, + }, + { + field: 'fechaRegistro', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + return params.value.substring(0, 10) + }, + }, + { field: 'sUsuario', headerName: 'Usuario', sortable: true, filter: true }, + { + field: 'sCliente', + headerName: 'Cliente', + sortable: true, + filter: true, + }, + { field: 'sTipoOperacion', headerName: 'Tipo operacion', sortable: true, filter: true }, + { field: 'sOpEntrada', headerName: 'Op Entrada', sortable: true, filter: true }, + { field: 'sOpSalida', headerName: 'Op Salida', sortable: true, filter: true }, + { field: 'sCorresponsal', headerName: 'Corresponsal', sortable: true, filter: true }, + { field: 'patente', sortable: true, filter: true }, + { field: 'aduana', sortable: true, filter: true }, + { field: 'pedimento', sortable: true, filter: true }, + { + field: 'fechaPago', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value) return params.value.substring(0, 10) + else return '' + }, + }, + { + field: 'fechaDesaduanamiento', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value) return params.value.substring(0, 10) + else return '' + }, + }, + { + field: 'zipgemco', + headerName: 'Zip GEMCO', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value === 'No') + return ( +
+ + + +
+ ) + else + return ( +
+ + + +
+ ) + }, + }, + { + field: 'zipCorresponsal', + headerName: 'Zip Corresponsal', + sortable: true, + filter: true, + cellRenderer: (params: any) => { + if (params.value === 'No') + return ( +
+ + + +
+ ) + else + return ( +
+ + + +
+ ) + }, + }, + { field: 'ultimaActualizacion', sortable: true, filter: true }, + ]) + const [msgColor, setMsgColor] = useState('primary') + + function ConvertHexToString(str: string) { + return unescape(str.replace(/\\/g, '%')) + } + + function currentDate(days: number): string { + var today = new Date() + today.setDate(today.getDate() + days) + var dd = String(today.getDate()).padStart(2, '0') + var mm = String(today.getMonth() + 1).padStart(2, '0') + var yyyy = today.getFullYear() + return yyyy + '-' + mm + '-' + dd + } + + useEffect(() => { + // if (proc) setMode(parseInt(proc)) + if (status) { + setStatusAnticipos(parseInt(status)) + } else setStatusAnticipos(0) + const data: DTORptCorresponsalesTraficos = { + Inicio: '', + Fin: '', + TipoOperacion: 0, + NoCliente: 0, + IdCorresponsal: Corresponsal, + Proceso: proc ? parseInt(proc) : 0, + Modo: Modo ? parseInt(Modo) : 0, + } + reportesServices + .getRptCorresponsalesTraficos(data) + .then((response) => { + setData(response.data) + setFilteredData(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, [proc, status]) + + useEffect(() => { + ClientesDataService.getAllClientes(UserId) + .then((response) => { + setClientes(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + + CorresponsalesDataService.getAll() + .then((response) => { + setDataCorresponsales(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + }, []) + + function getParams(e: RowClickedEvent) { + AbreTrafico(e.data.id) + } + + function AbreTrafico(id: number) { + dispatch(InitCorresponsalesFacturas(IDTrafico)) + dispatch(InitCorresponsalesFacturasTerceros(IDTrafico)) + dispatch(InitCorresponsalesContenedores(IDTrafico)) + setIDTrafico(id) + setShowModal(true) + } + + const generaReporte = () => { + const data: DTORptCorresponsalesTraficos = { + Inicio: moment(Inicio).format('YYYY-MM-DD'), + Fin: moment(Fin).format('YYYY-MM-DD'), + TipoOperacion: TipoOperacion, + NoCliente: Cliente, + IdCorresponsal: Corresponsal, + Proceso: proc ? parseInt(proc) : 0, + Modo: Modo ? parseInt(Modo) : 0, + } + reportesServices + .getRptCorresponsalesTraficos(data) + .then((response) => { + setData(response.data) + setFilteredData(response.data) + console.log(response.data) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + + const filtraReporte = (e: any) => { + setFiltro(e.target.value) + gridRef.current.api.setQuickFilter(e.target.value) + } + + const downloadExcel = () => { + exportExcel(Data, 'Traficos de corresponsales') + } + + function exportExcel(jsonData: any[], fileName: string): void { + let Heading = [ + [ + { title: 'Aduana Seccion Despacho', style: { font: { sz: '18', bold: true } } }, + 'Patente', + 'Referencia', + 'Pedimento', + 'Fecha Pago', + 'Fecha Entrada Presentacion', + 'Clave Docto', + 'Es rectificacion', + 'Tipo Cambio', + 'Valor Dls', + 'Valor Aduana', + 'Numero Factura', + 'Fecha Factura', + 'Proveedor Factura', + 'Incrementables Fact', + 'Fraccion', + 'Subdiv NICO', + 'Descripcion', + 'Pais Origen', + 'Pais Vendedor', + 'Tasa DTA', + 'Tasa IGI', + 'Numero Parte', + 'Cantidad Comercial', + 'TL Pais', + 'Tipo Tasa', + 'Unidad Comercial', + 'Valor Factura Item', + 'Valor Comercial Ped', + 'Valor Factura Item MN', + ], + ] + const wb = XLSX.utils.book_new() + const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet([]) + XLSX.utils.sheet_add_aoa(ws, Heading) + XLSX.utils.sheet_add_json(ws, jsonData, { origin: 'A2', skipHeader: true }) + XLSX.utils.book_append_sheet(wb, ws, 'Sheet1') + + XLSX.writeFile(wb, fileName + '.xlsx') + var range = XLSX.utils.decode_range(ws['!ref?']) + for (var C = range.s.c; C <= range.e.c; ++C) { + var address = XLSX.utils.encode_col(C) + '1' // <-- first row, column number C + if (!ws[address]) continue + ws[address].v = ws[address].v.toUpperCase() + } + } + + return ( +
+ + +
+
+ setInicio(e.target.value)} + size='sm' + /> +
+
+ setFin(e.target.value)} + size='sm' + /> +
+
+ Tipo oper +
+
+ setTipoOperacion(parseInt(e.target.value))} + className='form-select form-select-sm' + > + + + + +
+
+ Cliente +
+
+ { + setCliente(parseInt(e.target.value)) + }} + className='form-select form-select-sm' + > + + {Clientes + ? Clientes.map((c) => { + return ( + + ) + }) + : null} + +
+
+ +
+
+
+
+ {Depto === 'Corresponsalias' ? ( + + ) : ( + '' + )} +
+
+ { + filtraReporte(e) + }} + /> +
+
+ +
+
Corresponsal
+
+ { + setCorresponsal(parseInt(e.target.value)) + }} + className='form-select form-select-sm' + > + + {DataCorresponsales + ? DataCorresponsales.map((c) => { + return ( + + ) + }) + : null} + +
+
+
+
+
+
+
+ getParams(e)} + > +
+ { + setShowMsg(false) + }} + /> + setShowModal(false)} */ + size='sm' + dialogClassName='modal-90w modal-innerDiv' + disableEscapeKeyDown={true} + > + +
+ +
+
+
+
+ ) +} diff --git a/src/Components/Reportes/customCells/ProcessStatus.tsx b/src/Components/Reportes/customCells/ProcessStatus.tsx new file mode 100644 index 0000000..4c39bfd --- /dev/null +++ b/src/Components/Reportes/customCells/ProcessStatus.tsx @@ -0,0 +1,36 @@ +import { ICellRendererParams } from 'ag-grid-community' +import { FC, useEffect, useState } from 'react' +import { ProgressBar } from 'react-bootstrap' + +interface IProps { + value: number +} + +export const ProcessStatus: FC = (props: ICellRendererParams) => { + const [Proceso1, setProceso1] = useState(props.value >= 2 ? 100 : 0) + // const [Proceso2, setProceso2] = useState(props.value >= 3 ? 100 : 0) + // const [Proceso3, setProceso3] = useState(props.value >= 4 ? 100 : 0) + const [Color, setColor] = useState('progress-bar bg-CORRESPONSAL_NORMAL') + + useEffect(() => { + if (props.data.proceso === 0) setColor('progress-bar bg-RECHAZOS_PARA_CORRESPONSAL') + if (props.data.proceso === 1) { + if (props.data.rechazado > 0) setColor('progress-bar bg-RECHAZOS_POR_CONTABILIDAD') + else setColor('progress-bar bg-CORRESPONSAL_NORMAL') + } + }, [props]) + + return ( +
+ + = 0 ? 'primary' : 'light'} now={23} key={1} /> + + = 1 ? 'success' : 'light'} now={23} key={3} /> + + = 2 ? 'warning' : 'light'} now={24} key={5} /> + + + +
+ ) +} diff --git a/src/Components/Reportes/customCells/progressBar.tsx b/src/Components/Reportes/customCells/progressBar.tsx new file mode 100644 index 0000000..34ca050 --- /dev/null +++ b/src/Components/Reportes/customCells/progressBar.tsx @@ -0,0 +1,31 @@ +import { ICellRendererParams } from 'ag-grid-community' +import { FC, useEffect, useState } from 'react' + +interface IProps { + value: number +} + +export const ProgressBar: FC = (props: ICellRendererParams) => { + const [Proceso1, setProceso1] = useState(props.value >= 2 ? 100 : 0) + // const [Proceso2, setProceso2] = useState(props.value >= 3 ? 100 : 0) + // const [Proceso3, setProceso3] = useState(props.value >= 4 ? 100 : 0) + const [Color, setColor] = useState('progress-bar bg-CORRESPONSAL_NORMAL') + + useEffect(() => { + if (props.data.proceso === 0) setColor('progress-bar bg-RECHAZOS_PARA_CORRESPONSAL') + if (props.data.proceso === 1) { + if (props.data.rechazado > 0) setColor('progress-bar bg-RECHAZOS_POR_CONTABILIDAD') + else setColor('progress-bar bg-CORRESPONSAL_NORMAL') + } + }, [props]) + + return ( +
+
+
+
+
+
+
+ ) +} diff --git a/src/Components/Reportes/customCells/verPDF.tsx b/src/Components/Reportes/customCells/verPDF.tsx new file mode 100644 index 0000000..a3a47da --- /dev/null +++ b/src/Components/Reportes/customCells/verPDF.tsx @@ -0,0 +1,18 @@ +import React, { FC } from 'react' +import { Button } from 'react-bootstrap' + +interface IProps {} + +export const verPDF: FC = (props) => { + const showPDF = () => {} + + return ( +
+ + + +
+ ) +} diff --git a/src/Components/Submenu/Submenu.tsx b/src/Components/Submenu/Submenu.tsx new file mode 100644 index 0000000..05a60b8 --- /dev/null +++ b/src/Components/Submenu/Submenu.tsx @@ -0,0 +1,62 @@ +import * as React from 'react' +import { NavDropdown } from 'react-bootstrap' +import ItemMenu from '../../Interfaces/Catalogos/IItemMenu' + +interface ISubmenuProps { + submenu: ItemMenu[] + descripcion: string + allItems: ItemMenu[] +} + +const Submenu: React.FunctionComponent = (props) => { + const esPadre = (ItemSubmenu: ItemMenu, allItems: ItemMenu[]) => { + var arrHijos = allItems.filter(function (item) { + return ItemSubmenu.id === item.padreId + }) + if (arrHijos.length) return true + else return false + } + + return ( +
+ { + <> + + {props.submenu.map((item, index) => { + return !esPadre(item, props.allItems) ? ( + <> + + {item.descripcion} + + + ) : ( + <> + + {props.allItems + .filter(function (row) { + return row.padreId === item.id + }) + .map((row, index) => { + return ( + + {row.descripcion} + + ) + })} + + + ) + })} + + + } +
+ ) +} + +export default Submenu diff --git a/src/Components/Utils/ControlledInput/ControlledInput.tsx b/src/Components/Utils/ControlledInput/ControlledInput.tsx new file mode 100644 index 0000000..65dac89 --- /dev/null +++ b/src/Components/Utils/ControlledInput/ControlledInput.tsx @@ -0,0 +1,51 @@ +import React, { FC, useState } from 'react' +import { MsgInformativo } from '../Toast/msgInformativo' + +interface IProps { + id: number + value: number + disabled?: boolean + postCost: (id: number, value: number) => void +} + +export const ControlledInput: FC = (props) => { + const [id, setid] = useState(props.id) + const [value, setValue] = useState(props.value) + const [header, setHeader] = useState('') + const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + + const onChange = (event: any) => { + setValue(event.target.value) + } + const handleKeyDown = (event: any) => { + if (event.key === 'Enter') { + if (isNaN(event.target.value)) { + alert('Valor no valido!') + return + } + props.postCost(id, event.target.value) + } + } + return ( + <> + handleKeyDown(e)} + style={{ width: '70px' }} + /> + { + setShowMsg(false) + }} + /> + + ) +} diff --git a/src/Components/Utils/FileManager/FileManager.tsx b/src/Components/Utils/FileManager/FileManager.tsx new file mode 100644 index 0000000..bcfb699 --- /dev/null +++ b/src/Components/Utils/FileManager/FileManager.tsx @@ -0,0 +1,245 @@ +import axios from 'axios' +import React, { FC, useCallback, useEffect, useState } from 'react' +import { useDropzone } from 'react-dropzone' +import '../../../css/generic01.css' +import FileManagerDataService from '../../../Services/Utils/FileManager.Services' +import { TargetURL } from '../../../Constants/TargetURL' +import { Alert, Col, Container, Row } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import { BsFillXCircleFill } from 'react-icons/bs' +import IFileManager from '../../../Interfaces/Utils/IFileManager' +import { MsgInformativo } from '../Toast/msgInformativo' + +interface IProps { + IDProcess: number + IDUser: number + IdFile: number + FileName: string + Prefijo?: string + Leyenda: string + canDelete: boolean + FileType: string[] + width: number + height: number + onDelete?: (val: boolean) => void + setBackgroundColor?: number + onAppendFM: (idFile: number) => void +} + +export const FileManager: FC = (props) => { + const [Archivo, setArchivo] = useState() + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + // const [BackgroundColor, setBackgroundColor] = useState('#000000') + const [header, setHeader] = useState('') + //const [msgColor, setMsgColor] = React.useState('primary') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const URL = new TargetURL() + const msgColor = 'primary' + + const onDrop = useCallback( + (acceptedFiles: any) => { + acceptedFiles.forEach((file: File) => { + /* if (!file.name.toLowerCase().endsWith(props.FileType)) { + return false + } */ + var ext = file.name.substr(file.name.lastIndexOf('.') + 1) + if (!props.FileType.includes(ext)) { + return false + } + const reader = new FileReader() + reader.onabort = () => console.log('file reading was aborted') + reader.onerror = () => console.log('file reading has failed') + reader.onload = () => { + // Do whatever you want with the file contents + const binaryStr = reader.result + console.log(binaryStr) + if (binaryStr) { + const formData = new FormData() + formData.append('name', file.name) + formData.append('file', file) + axios + .post( + URL.get() + + `/FileManager/AppendFileByProcess?IdUsuario=${props.IDUser}&Proceso=${props.IDProcess}&Tags=${props.IdFile}&crud=1`, + formData + ) + .then((res) => { + if (res.data.id > 0) { + setArchivo(res.data) + props.onAppendFM(res.data.id) + } else { + setHeader('Error') + setMsg('No se guardo el archivo, favor de verificar que no este vacio') + setShowMsg(true) + return + } + }) + .catch((err) => alert('File Upload Error ' + err)) + console.log(JSON.stringify(file)) + } + } + reader.readAsArrayBuffer(file) + // } + }) + }, + [props] + ) + const { getRootProps, getInputProps } = useDropzone({ onDrop }) + + useEffect(() => { + if (props.IdFile > 0) { + FileManagerDataService.getFileInfoFromProcess(props.IdFile, props.IDProcess) + .then((response) => { + setArchivo(response.data) + //console.log(JSON.stringify(response.data) + ' ' + props.IdFile) + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error: ' + e) + setShowMsg(true) + return + }) + } + }, [props]) + + const getFileContent = () => { + /* let Empty: IFileManager = { + id: 0, + idUsuario: props.IDUser, + proceso: props.IDProcess, + nombreArchivo: '', + fechaRegistro: '', + tags: '', + size: 0, + } */ + FileManagerDataService.getFileContent(props.IdFile, props.IDProcess) + .then((response: any) => { + if (response.status === 200) { + if (Archivo?.nombreArchivo.toLowerCase().endsWith('.pdf')) { + console.log(response.data) + const blob = new Blob([response.data], { type: 'application/pdf' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else if (Archivo?.nombreArchivo.toLowerCase().endsWith('.pdf')) { + console.log(response.data) + const blob = new Blob([response.data], { type: 'application/pdf' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else { + const url = window.URL.createObjectURL(new Blob([response.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', Archivo?.nombreArchivo ? Archivo?.nombreArchivo : 'Archivo.zip') + document.body.appendChild(link) + link.click() + } + } else { + setHeader('Error') + setMsg('A este concepto no se le ha anexado archivo') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('A este concepto no se le ha anexado archivo') + setShowMsg(true) + return + }) + } + + const deleteFile = () => { + let id = Archivo?.id ? Archivo?.id : 0 + FileManagerDataService.DeleteFile(id) + .then((response: any) => { + if (response.status === 200) { + setArchivo({ id: 0, idUsuario: 0, proceso: 0, nombreArchivo: '', fechaRegistro: '', tags: '', size: 0 }) + setHeader('Informativo') + setMsg(response.data.respuesta) + setShowMsg(true) + } else { + setHeader('Error') + setMsg('Algo sucedio, no se pudo eliminar el archivo!') + setShowMsg(true) + return + } + }) + .catch((e: Error) => {}) + } + + const getRGB = (color: number) => { + const base = 255 - color * 1 + // const baseR = 255 - base * 0 + const baseG = 255 - base * 2 + // const baseB = 255 - base * 5 + // const R = baseR.toString(16) + const G = baseG.toString(16) + // const B = baseB.toString(16) + const newBackcolor = '#F1' + G.padStart(2, '0').replace('-', '').substring(0, 2) + 'FE' + return newBackcolor.replace('-', '').substring(0, 7) + } + + return ( + <> +
+
+ +

{!Archivo?.nombreArchivo ? props.Leyenda : ''}

+
+
+ + {Archivo?.nombreArchivo ? ( + + + + {props.Prefijo ? props.Prefijo : 'Archivo'} :   + { + getFileContent() + }} + > + {Archivo?.nombreArchivo} + + + + + { + deleteFile() + }} + style={{ cursor: 'pointer' }} + /> + + + + + ) : ( + '' + )} + + { + setShowMsg(false) + }} + > + + ) +} + +export default FileManager diff --git a/src/Components/Utils/MFileManager/MFileManager.tsx b/src/Components/Utils/MFileManager/MFileManager.tsx new file mode 100644 index 0000000..7013488 --- /dev/null +++ b/src/Components/Utils/MFileManager/MFileManager.tsx @@ -0,0 +1,335 @@ +import React, { FC, useEffect, useState } from 'react' +import MFileManagerDS from '../../../Services/Utils/MFileManager.Service' +import IFileManager from '../../../Interfaces/Utils/IFileManager' +import { Alert, Button, Card, Col, ListGroup, Modal, Row } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import { BsFillXCircleFill } from 'react-icons/bs' +import { MsgInformativo } from '../Toast/msgInformativo' +import { TargetURL } from '../../../Constants/TargetURL' + +interface IProps { + IDTrafico: number + Proceso: number + Leyenda?: string + showPreview: number + canEdit: boolean +} + +export const MFileManager: FC = (props) => { + const [UserId, setUserId] = useState(() => { + const stickyValue = window.localStorage.getItem('UserId') + return stickyValue !== null ? JSON.parse(stickyValue) : 0 + }) + const [IDTrafico, setIDTrafico] = useState(props.IDTrafico ? props.IDTrafico : 0) + const [Proceso, setProceso] = useState(props.Proceso ? props.Proceso : 0) + const [ListaArchivos, setListaArchivos] = useState() + const [NombreArchivo, setNombreArchivo] = useState('') + const [MsgDialogDelete, setMsgDialogDelete] = useState(false) + const [IDArchivo, setIDArchivo] = useState(0) + const [header, setHeader] = useState('') + const [show, setShowMsg] = useState(false) + const [msg, setMsg] = useState('') + const URL = new TargetURL() + const msgColor = 'primary' + + const selectedFiles = (selectorFiles: any) => { + var formData = new FormData() + for (let i = 0; i < selectorFiles.files.length; i++) { + formData.append('FileList', selectorFiles.files[i]) + } + MFileManagerDS.Append(formData, IDTrafico, Proceso, UserId) + .then((response) => { + setListaArchivos(response.data) + }) + .catch((e: Error) => { + alert('Ocurrio un error: ' + e) + return + }) + return false + } + + useEffect(() => { + setIDTrafico(props.IDTrafico) + setProceso(props.Proceso) + MFileManagerDS.Get(props.IDTrafico, props.Proceso) + .then((response) => { + setListaArchivos(response.data) + }) + .catch((e: Error) => { + alert('Ocurrio un error: ' + e) + return + }) + }, [props.IDTrafico, props.Proceso]) + + const confirmDelete = (row: IFileManager) => { + setIDArchivo(row.id) + setNombreArchivo(row.nombreArchivo) + setMsgDialogDelete(true) + } + + const deleteItem = () => { + MFileManagerDS.DeleteFile(IDArchivo) + .then((response) => { + var arrArchivos = ListaArchivos!.filter(function (el) { + return el.id !== IDArchivo + }) + setListaArchivos(arrArchivos) + setHeader('Informtivo') + setMsg(response.data.respuesta) + setMsgDialogDelete(false) + setShowMsg(false) + return + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('Ocurrio un error, no se elimino el archivo') + setMsgDialogDelete(false) + setShowMsg(false) + return + }) + return false + } + + const getFileContent = (row: IFileManager) => { + MFileManagerDS.getFileContentById(row.id, row.proceso) + .then((response: any) => { + if (response.status === 200) { + if (row.nombreArchivo.toLowerCase().endsWith('.pdf')) { + // console.log(response.data) + const blob = new Blob([response.data], { type: 'application/pdf' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else if ( + row.nombreArchivo.toLowerCase().endsWith('.png') || + row.nombreArchivo.toLowerCase().endsWith('.jpg') + ) { + const blob = new Blob([response.data], { type: 'image/png' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else if (row.nombreArchivo.toLowerCase().endsWith('.xlsx')) { + const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else if ( + row.nombreArchivo.toLowerCase().endsWith('.xls')) { + const blob = new Blob([response.data], { type: 'application/vnd.ms-excel' }) + const url = window.URL.createObjectURL(blob) + window.open(url) + } else { + const url = window.URL.createObjectURL(new Blob([response.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', NombreArchivo ? NombreArchivo : 'Archivo.zip') + document.body.appendChild(link) + link.click() + } + } else { + setHeader('Error') + setMsg('A este concepto no se le ha anexado PDF') + setShowMsg(true) + return + } + }) + .catch((e: Error) => { + setHeader('Error') + setMsg('A este concepto no se le ha anexado PDF') + setShowMsg(true) + return + }) + } + + return ( +
+
+ + + + {props.Leyenda ? props.Leyenda : ''}    + {props.canEdit ? ( + selectedFiles(e.target)} /> + ) : ( + '' + )} + + {ListaArchivos && props.showPreview === 1 ? ( +
+ + {ListaArchivos + ? ListaArchivos.map((rec) => { + return ( + + + + + + + {'Imagen'} { + getFileContent(rec) + }} + /> + + + + { + confirmDelete(rec) + }} + style={{ cursor: 'pointer' }} + /> + + + + + +   + + + {rec.nombreArchivo} + + + + + ) + }) + : ''} + +
+ ) : ListaArchivos && props.showPreview === 2 ? ( +
+ + {ListaArchivos + ? ListaArchivos.map((rec) => { + return ( + + + + + + {rec.nombreArchivo} + + + { + confirmDelete(rec) + }} + style={{ cursor: 'pointer' }} + /> + + + + + + + + ) + }) + : ''} + +
+ ) : ListaArchivos && props.showPreview === 3 ? ( +
+ {ListaArchivos + ? ListaArchivos.map((rec) => { + return ( + + + + + { + getFileContent(rec) + }} + > + {rec.nombreArchivo} + + + + + + { + confirmDelete(rec) + }} + style={{ cursor: 'pointer' }} + /> + + + + + + + ) + }) + : ''} +
+ ) : ( + '' + )} +
+
+ setMsgDialogDelete(false)} size='lg'> + +
+ Favor de confirmar + +   + + + ¿Esta seguro de eliminar el archivo:
+
{NombreArchivo}? +
+
+
+ + + + + + +   + + + + + + +
+ { + setShowMsg(false) + }} + /> +
+ ) +} diff --git a/src/Components/Utils/Toast/msgInformativo.tsx b/src/Components/Utils/Toast/msgInformativo.tsx new file mode 100644 index 0000000..ca41a64 --- /dev/null +++ b/src/Components/Utils/Toast/msgInformativo.tsx @@ -0,0 +1,51 @@ +import React, { FC } from 'react' +import { Toast, ToastContainer } from 'react-bootstrap' +import { IconContext } from 'react-icons' +import { BsFillExclamationSquareFill, BsXOctagonFill } from 'react-icons/bs' + +interface IProps { + show: boolean + msg: string + header: string + msgColor: string + time?: number + closeToast: (arg: boolean) => void +} + +export const MsgInformativo: FC = (props) => { + return ( +
+ + { + props.closeToast(false) + }} + > + + + {props.header.toString().includes('Error') ? ( + + + + ) : null} + {props.header.toString().includes('Informativo') ? ( + + + + ) : null} +   + {props.header} + + + +
{props.msg}
+
+
+
+
+ ) +} diff --git a/src/Components/asignacionPerfil/asignacionPerfil.tsx b/src/Components/asignacionPerfil/asignacionPerfil.tsx new file mode 100644 index 0000000..86f1f8b --- /dev/null +++ b/src/Components/asignacionPerfil/asignacionPerfil.tsx @@ -0,0 +1,43 @@ +import React, { FC, useState } from 'react' +import '../../css/login.css' +import DropdownButton from 'react-bootstrap/DropdownButton' +import Dropdown from 'react-bootstrap/Dropdown' + +interface IProps {} + +const AsignacionPerfil: FC = (props) => { + const [value, setValue] = useState('') + const handleSelect = (e: any) => { + console.log(e) + setValue(e) + } + return ( +
+
+
+
+
+
+

Register

+
+ + + option-1 + option-2 + option 3 + + some link + +
+
+
+
+
+
+
+ ) +} + +export default AsignacionPerfil diff --git a/src/Components/registerPermisoClientes/registerPermisoClientes.tsx b/src/Components/registerPermisoClientes/registerPermisoClientes.tsx new file mode 100644 index 0000000..64b000e --- /dev/null +++ b/src/Components/registerPermisoClientes/registerPermisoClientes.tsx @@ -0,0 +1,127 @@ +import * as React from 'react' +import { Formik, FormikHelpers, FormikProps, Form, Field, useField, FieldProps, ErrorMessage } from 'formik' +import * as Yup from 'yup' +import { IregistroPermisoClientes } from '../../Interfaces/registroPermisoClientes' +import '../../css/login.css' + +interface IProps {} + +const SignupSchema = Yup.object().shape({ + ModuloCliente: Yup.string().required('Requerido'), + IoE: Yup.string().required('Requerido'), +}) + +export default function RegisterPermisoClientes(props: IProps) { + const initialValues: IregistroPermisoClientes = { + id: 1, + IdUsuario: 1, + ModuloCliente: 0, + IoE: 0, + Aduana: 0, + Patente: 0, + } + + const validateForm = (values: IregistroPermisoClientes) => { + const errors = { ModuloCliente: '', IoE: '', Aduana: '', Patente: '' } + // console.log(errors); + if (!values.ModuloCliente) { + errors.ModuloCliente = 'Campo requerido' + } else if (values.ModuloCliente == 0) { + errors.ModuloCliente = 'Debe seleccionar el modulo' + } + if (!values.IoE) { + errors.IoE = 'Campo requerido' + } else if (values.IoE == 0) { + errors.IoE = 'Debe seleccionar si es Importacion e Exportacion' + } + return errors + } + + return ( +
+
+
+
+
+ { + console.log(values) + }} + validate={validateForm} + > + {(formik) => { + const { errors, touched, isValid, dirty, handleSubmit } = formik + return ( +
+

Permisos

+
+ + +
+
+ + +
+
+ + + {errors.ModuloCliente && touched.ModuloCliente ? ( +
+ {' '} + * {errors.ModuloCliente} {' '} +
+ ) : null} +
+
+ + + {errors.IoE && touched.IoE ? ( +
+ {' '} + * {errors.IoE} {' '} +
+ ) : null} +
+
+ + +
+
+ + +
+
+ +
+ ) + }} +
+
+
+
+
+
+ ) +} diff --git a/src/Components/resetCredentials/resetCredentials.tsx b/src/Components/resetCredentials/resetCredentials.tsx new file mode 100644 index 0000000..d98b5d4 --- /dev/null +++ b/src/Components/resetCredentials/resetCredentials.tsx @@ -0,0 +1,99 @@ +import React, { FC } from 'react' +import { Button, Form, Toast, ToastContainer } from 'react-bootstrap' +import { MsgInformativo } from '../Utils/Toast/msgInformativo' +import DTOUsuario from '../../DTO/DTOUsuario' +import usuariosServices from '../../Services/Catalogos/Usuarios.Services' + +interface IProps {} + +export default function ResetCredentials(props: IProps) { + const [header, setHerader] = React.useState('Error!') + const [msgColor, setMsgColor] = React.useState('Primary') + const [showMsg, setShowMsg] = React.useState(false) + const [msg, setMsg] = React.useState('') + const [usuario, setUsuario] = React.useState('') + const [contrasena, setContrasena] = React.useState('') + const [confirmaContrasena, setConfirmaContrasena] = React.useState('') + + const validaFormulario = () => { + if (contrasena != confirmaContrasena) { + setMsg('Contrasena no coincide con su confirmacion!') + setShowMsg(true) + return + } + + const data: DTOUsuario = { + Usuario: usuario, + Contrasena: contrasena, + } + + usuariosServices + .resetPassword(data) + .then((response) => { + if (response.status == 200) alert('La contrasena se reseteo exisosamente') + if (response.status == 204) alert('Usuario no existe') + + console.log(response.data) + }) + .catch((e: Error) => { + console.log(e) + //alert(e); + let message = e.message + setMsg(message) + if (message.includes('400')) setMsg('Usuario no encontrado') + setShowMsg(true) + }) + } + + const closeToast = (show: boolean): void => { + setShowMsg(false) + } + + return ( +
+ {' '} +
+
+
+
+
+
+

Olvido su contraseña

+ + Usuario + setUsuario(e.currentTarget.value)} /> + + + Nueva contraseña + setContrasena(e.currentTarget.value)} + /> + + + Confirme su nueva contraseña + setConfirmaContrasena(e.currentTarget.value)} + /> + + +
+
+
+
+
+ +
+
+ ) +} diff --git a/src/Constants/TargetURL.ts b/src/Constants/TargetURL.ts new file mode 100644 index 0000000..7765ec9 --- /dev/null +++ b/src/Constants/TargetURL.ts @@ -0,0 +1,11 @@ +export class TargetURL { + get() { + /* return !process.env.NODE_ENV || process.env.NODE_ENV === 'development' + ? 'https://gemcousa.solutions/GEMCOBackend/api' + 'https://localhost:5001/api' + : "http://reportes.gemcousa.com:5000/api"; + 'https://www.gemcousa.mx/GEMCOBackend/api' + 'https://gemcousa.solutions/GEMCOBackend/api' */ + return process.env.REACT_APP_API + } +} diff --git a/src/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.ts b/src/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.ts new file mode 100644 index 0000000..025060e --- /dev/null +++ b/src/DTO/Clientes/CasaCuervo/DTO325AduanasPedidos.ts @@ -0,0 +1,4 @@ +export default interface DTO325AduanasPedidos { + id: number, + value: string +} \ No newline at end of file diff --git a/src/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.ts b/src/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.ts new file mode 100644 index 0000000..76af402 --- /dev/null +++ b/src/DTO/Clientes/CasaCuervo/DTO325UpdateFromWeb.ts @@ -0,0 +1,14 @@ +export default interface DTO325UpdateFromWeb { + id: number, + ComentarioGEMCO: string, + FechaCompromiso: string, + FechaCruce: string, + Factura: string, + MedidaCaja: string, + Sello1: string, + Sello2: string, + UUID: string, + Trafico: string, + Pedimento: string, + Patente: string +} \ No newline at end of file diff --git a/src/DTO/Clientes/CasaCuervo/DTORptPedidos.ts b/src/DTO/Clientes/CasaCuervo/DTORptPedidos.ts new file mode 100644 index 0000000..bc0d68e --- /dev/null +++ b/src/DTO/Clientes/CasaCuervo/DTORptPedidos.ts @@ -0,0 +1,5 @@ +export default interface DTORptPedidos { + Inicio: string, + Fin: string, + Aduana: string +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOAnticiposAutoriza.ts b/src/DTO/Corresponsales/DTOAnticiposAutoriza.ts new file mode 100644 index 0000000..af4f7b1 --- /dev/null +++ b/src/DTO/Corresponsales/DTOAnticiposAutoriza.ts @@ -0,0 +1,4 @@ +export default interface DTOAnticiposAutoriza { + id: number, + idUsuario: number +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOCorresponsalFacturaProveedor.ts b/src/DTO/Corresponsales/DTOCorresponsalFacturaProveedor.ts new file mode 100644 index 0000000..952d241 --- /dev/null +++ b/src/DTO/Corresponsales/DTOCorresponsalFacturaProveedor.ts @@ -0,0 +1,7 @@ +export default interface DTOCorresponsalFacturaProveedor { + id: number; + proveedor: string; + factura: string; + trafico: number; + valorFacturaDls: number; +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOCorresponsalFacturasTerceros.ts b/src/DTO/Corresponsales/DTOCorresponsalFacturasTerceros.ts new file mode 100644 index 0000000..3486038 --- /dev/null +++ b/src/DTO/Corresponsales/DTOCorresponsalFacturasTerceros.ts @@ -0,0 +1,6 @@ +import ICorresponsalTerceros from "../../Interfaces/Corresponsales/ICorresponsalFacturasTerceros"; + +export default interface DTOCorresponsalFacturasTerceros { + registro: ICorresponsalTerceros, + respuesta: string +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOCorresponsalTrafico.ts b/src/DTO/Corresponsales/DTOCorresponsalTrafico.ts new file mode 100644 index 0000000..adffc39 --- /dev/null +++ b/src/DTO/Corresponsales/DTOCorresponsalTrafico.ts @@ -0,0 +1,40 @@ +export default interface DTOCorresponsalTrafico { + id: number + fechaRegistro?: string + idUsuario: number + sUsuario?: string + idCliente: number + sCliente?: string + tipoOperacion: number + sTipoOperacion?: string + tipoEmbarque: number + sTipoEmbarque?: string + idCorresponsal: number + sCorresponsal?: string + bultos?: number + kilos?: number + estatus?: number + sEstatus?: string + trafico?: string + aduana?: number + patente?: number + pedimento?: number + clave?: string + fechaPago?: string + tipoCambio?: number + valorAduanaMN?: number + totalPagado?: number + valorFacturaMN?: number + cantidadFracciones?: number + buque?: string + valorFacturaDls?: number + descripcionMercancia?: string + observaciones?: string + fechaDesaduanamiento?: string + semaforoFiscal?: number + noCuenta?: string + fechaCuenta?: string + tipoMercancia?: number + ultimaActualizacion?: string + activo?: number +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOCuentaComplementaria.ts b/src/DTO/Corresponsales/DTOCuentaComplementaria.ts new file mode 100644 index 0000000..0dfdceb --- /dev/null +++ b/src/DTO/Corresponsales/DTOCuentaComplementaria.ts @@ -0,0 +1,5 @@ +export default interface DTOCorresponsalCuentaComplementaria { + id: number, + idTrafico: number, + idFile: number +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOCuentaComplementariaEstatus.ts b/src/DTO/Corresponsales/DTOCuentaComplementariaEstatus.ts new file mode 100644 index 0000000..9002613 --- /dev/null +++ b/src/DTO/Corresponsales/DTOCuentaComplementariaEstatus.ts @@ -0,0 +1,4 @@ +export default interface DTOCuentaComplementariaEstatus { + id: number, + estatus: number +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOItems.ts b/src/DTO/Corresponsales/DTOItems.ts new file mode 100644 index 0000000..208e047 --- /dev/null +++ b/src/DTO/Corresponsales/DTOItems.ts @@ -0,0 +1,4 @@ +export default interface DTOItems { + id: number; + item: string; +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOLogCorresponsalComplementariaEstatus.ts b/src/DTO/Corresponsales/DTOLogCorresponsalComplementariaEstatus.ts new file mode 100644 index 0000000..682605b --- /dev/null +++ b/src/DTO/Corresponsales/DTOLogCorresponsalComplementariaEstatus.ts @@ -0,0 +1,5 @@ +export default interface DTOLogCorresponsalComplementariaEstatus { + estatus: number, + fCreacion: string, + sEstatus: string +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTORectificacionHistorico.ts b/src/DTO/Corresponsales/DTORectificacionHistorico.ts new file mode 100644 index 0000000..f3f629e --- /dev/null +++ b/src/DTO/Corresponsales/DTORectificacionHistorico.ts @@ -0,0 +1,4 @@ +export default interface DTORectificacionHistorico { + IdTrafico: number, + IdUsuario: number +} diff --git a/src/DTO/Corresponsales/DTORptCorresponsalesTraficos.ts b/src/DTO/Corresponsales/DTORptCorresponsalesTraficos.ts new file mode 100644 index 0000000..8c3537d --- /dev/null +++ b/src/DTO/Corresponsales/DTORptCorresponsalesTraficos.ts @@ -0,0 +1,9 @@ +export default interface DTORptCorresponsalesTraficos { + Inicio: string; + Fin: string; + TipoOperacion: number; + NoCliente: number; + IdCorresponsal: number; + Proceso: number; + Modo: number; +} \ No newline at end of file diff --git a/src/DTO/Corresponsales/DTOTraficoCompleto.ts b/src/DTO/Corresponsales/DTOTraficoCompleto.ts new file mode 100644 index 0000000..248aa86 --- /dev/null +++ b/src/DTO/Corresponsales/DTOTraficoCompleto.ts @@ -0,0 +1,6 @@ +export default interface DTOTraficoCompleto { + id: number, + idUsuario: number, + estatus: number, + comentarios: string +} \ No newline at end of file diff --git a/src/DTO/DTOAEPeriodo.ts b/src/DTO/DTOAEPeriodo.ts new file mode 100644 index 0000000..b56b347 --- /dev/null +++ b/src/DTO/DTOAEPeriodo.ts @@ -0,0 +1,7 @@ +export default interface DTOAEPeriodo { + Anio: number; + Mes: number; + NoCliente: number; + TipoOperacion: number; + Referencias?: string[]; +} \ No newline at end of file diff --git a/src/DTO/DTOClienteTransportita.ts b/src/DTO/DTOClienteTransportita.ts new file mode 100644 index 0000000..6a63695 --- /dev/null +++ b/src/DTO/DTOClienteTransportita.ts @@ -0,0 +1,5 @@ +export default interface DTOClienteTransportista { + IdUsuario:number; + sClave: string; + asignado: boolean; +} \ No newline at end of file diff --git a/src/DTO/DTOClonarUsuario.ts b/src/DTO/DTOClonarUsuario.ts new file mode 100644 index 0000000..37a0191 --- /dev/null +++ b/src/DTO/DTOClonarUsuario.ts @@ -0,0 +1,4 @@ +export default interface DTOClonarUsuario { + idUsuarioOrigen: number; + idUsuarioDestino: number; +} \ No newline at end of file diff --git a/src/DTO/DTOItemMenuPerfil.ts b/src/DTO/DTOItemMenuPerfil.ts new file mode 100644 index 0000000..7ab6ee0 --- /dev/null +++ b/src/DTO/DTOItemMenuPerfil.ts @@ -0,0 +1,5 @@ +export default interface DTPItemMenuPerfil { + IdPerfil: number; + itemMenu: number; + asignado: boolean; +} \ No newline at end of file diff --git a/src/DTO/DTOPerfilCreate.ts b/src/DTO/DTOPerfilCreate.ts new file mode 100644 index 0000000..fd4cd25 --- /dev/null +++ b/src/DTO/DTOPerfilCreate.ts @@ -0,0 +1,4 @@ +export default interface DTOPerfilCreate { + Perfil: string; + IdPerfilClonado: number; +} \ No newline at end of file diff --git a/src/DTO/DTOReporte.ts b/src/DTO/DTOReporte.ts new file mode 100644 index 0000000..360d17c --- /dev/null +++ b/src/DTO/DTOReporte.ts @@ -0,0 +1,7 @@ +export default interface DTOReporte { + Inicio: string; + Fin: string; + TipoOperacion: number; + NoCliente: number; + IdUsuario: number; +} diff --git a/src/DTO/DTOUsuario.ts b/src/DTO/DTOUsuario.ts new file mode 100644 index 0000000..6edb089 --- /dev/null +++ b/src/DTO/DTOUsuario.ts @@ -0,0 +1,4 @@ +export default interface DTOUsuario { + Usuario: string; + Contrasena : string; +} \ No newline at end of file diff --git a/src/DTO/DTOUsuarioCliente.ts b/src/DTO/DTOUsuarioCliente.ts new file mode 100644 index 0000000..3e1deae --- /dev/null +++ b/src/DTO/DTOUsuarioCliente.ts @@ -0,0 +1,5 @@ +export default interface IDTOUsuarioCliente { + sClave: number; + IdUsuario: number; + agregar: boolean; +} \ No newline at end of file diff --git a/src/DTO/DTOUsuariosShort.ts b/src/DTO/DTOUsuariosShort.ts new file mode 100644 index 0000000..1d3bf61 --- /dev/null +++ b/src/DTO/DTOUsuariosShort.ts @@ -0,0 +1,4 @@ +export default interface DTOUsuariosShort { + id: number; + usuario: string; +} \ No newline at end of file diff --git a/src/DTO/DTOasignaClienteProveedor.ts b/src/DTO/DTOasignaClienteProveedor.ts new file mode 100644 index 0000000..1a9ea16 --- /dev/null +++ b/src/DTO/DTOasignaClienteProveedor.ts @@ -0,0 +1,6 @@ +export default interface DTOasignaClienteProveedor { + IdUsuario: number; + sClaveCliente: string; + sClave: string; + asignado: boolean; +} \ No newline at end of file diff --git a/src/DTO/DTOgetArchivosPorReferencia.ts b/src/DTO/DTOgetArchivosPorReferencia.ts new file mode 100644 index 0000000..eb546eb --- /dev/null +++ b/src/DTO/DTOgetArchivosPorReferencia.ts @@ -0,0 +1,8 @@ +export default interface DTOgetArchivosPorReferencia { + Referencia: string + PedimentoLargo: string + NoCliente: number + IdUsuario: number + Archivo: string + Archivos: string[] + } \ No newline at end of file diff --git a/src/DTO/DTOgetThesePedimentos.ts b/src/DTO/DTOgetThesePedimentos.ts new file mode 100644 index 0000000..86fa892 --- /dev/null +++ b/src/DTO/DTOgetThesePedimentos.ts @@ -0,0 +1,8 @@ +export default interface DTOgetThesePedimentos { + Inicio: string; + Fin: string; + NoCliente: number; + IdUsuario: number; + TipoOperacion: number; + Pedimentos: string[]; + } \ No newline at end of file diff --git a/src/DTO/DTOid.ts b/src/DTO/DTOid.ts new file mode 100644 index 0000000..37d4e24 --- /dev/null +++ b/src/DTO/DTOid.ts @@ -0,0 +1,3 @@ +export default interface DTOid { + id: number +} \ No newline at end of file diff --git a/src/DTO/Facturacion/Anexo/DTOAnexoFacturacionAlen.ts b/src/DTO/Facturacion/Anexo/DTOAnexoFacturacionAlen.ts new file mode 100644 index 0000000..534a511 --- /dev/null +++ b/src/DTO/Facturacion/Anexo/DTOAnexoFacturacionAlen.ts @@ -0,0 +1,7 @@ +export default interface DTOAnexoFacturacionAlen { + sReferencia: string + nHonorarios: number + nValidacion: number + nPrevalidacion: number + nCoordinacion: number +} diff --git a/src/DTO/Facturacion/Anexo/DTOAnexoFacturacionMission.ts b/src/DTO/Facturacion/Anexo/DTOAnexoFacturacionMission.ts new file mode 100644 index 0000000..d4b748d --- /dev/null +++ b/src/DTO/Facturacion/Anexo/DTOAnexoFacturacionMission.ts @@ -0,0 +1,8 @@ +export default interface DTOAnexoFacturacionMission { + sReferencia: string, + cordCruce: number, + cordFlete: number, + nServicio: number, + nContraprestacion: number, + nHonorario: number +} \ No newline at end of file diff --git a/src/DTO/Utils/DTOConceptos.ts b/src/DTO/Utils/DTOConceptos.ts new file mode 100644 index 0000000..fcbcab3 --- /dev/null +++ b/src/DTO/Utils/DTOConceptos.ts @@ -0,0 +1,4 @@ +export default interface DTOConceptos { + id: number, + concepto: string +} \ No newline at end of file diff --git a/src/DTO/Utils/Notificaciones/DTONotificacionesContactoGrupo.ts b/src/DTO/Utils/Notificaciones/DTONotificacionesContactoGrupo.ts new file mode 100644 index 0000000..27d253a --- /dev/null +++ b/src/DTO/Utils/Notificaciones/DTONotificacionesContactoGrupo.ts @@ -0,0 +1,5 @@ +export default interface DTONotificacionesContactoGrupo { + idgrupo: number, + accion: number, + contactos: number[] +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/ICatCorresponsales.ts b/src/Interfaces/Catalogos/ICatCorresponsales.ts new file mode 100644 index 0000000..807c2ec --- /dev/null +++ b/src/Interfaces/Catalogos/ICatCorresponsales.ts @@ -0,0 +1,7 @@ +export default interface ICatCorresponsales { + id: number; + nombre: string; + patente: number, + aduana: number; + correos: string +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/ICatProveedores.ts b/src/Interfaces/Catalogos/ICatProveedores.ts new file mode 100644 index 0000000..82611d2 --- /dev/null +++ b/src/Interfaces/Catalogos/ICatProveedores.ts @@ -0,0 +1,5 @@ +export default interface ICatProveedores { + id: number; + nombre: string; + clasificacion: number; +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/IClientes.ts b/src/Interfaces/Catalogos/IClientes.ts new file mode 100644 index 0000000..abc33d1 --- /dev/null +++ b/src/Interfaces/Catalogos/IClientes.ts @@ -0,0 +1,5 @@ +export default interface IClientes { + sClave: number; + agrupado: number; + sRazonSocial : string; +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/IItemMenu.ts b/src/Interfaces/Catalogos/IItemMenu.ts new file mode 100644 index 0000000..d883a47 --- /dev/null +++ b/src/Interfaces/Catalogos/IItemMenu.ts @@ -0,0 +1,7 @@ +export default interface ItemMenuData { + id: number; + padreId: number; + posicion: number; + descripcion: string; + url: string; +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/IPerfiles.ts b/src/Interfaces/Catalogos/IPerfiles.ts new file mode 100644 index 0000000..1d610ee --- /dev/null +++ b/src/Interfaces/Catalogos/IPerfiles.ts @@ -0,0 +1,4 @@ +export interface IPerfil { + id: number; + perfil: string; +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/IProveedores.ts b/src/Interfaces/Catalogos/IProveedores.ts new file mode 100644 index 0000000..44f21c3 --- /dev/null +++ b/src/Interfaces/Catalogos/IProveedores.ts @@ -0,0 +1,8 @@ +export default interface IProveedores { + idUsuario: number; + sClaveCliente: string; + sClave: string; + sRazonSocial: string; + direccion: string; + asignado: number; +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/ITabulador.ts b/src/Interfaces/Catalogos/ITabulador.ts new file mode 100644 index 0000000..7761093 --- /dev/null +++ b/src/Interfaces/Catalogos/ITabulador.ts @@ -0,0 +1,5 @@ +export default interface ITabulador { + id: number, + idCliente: number + nombre: string +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/ITabuladorConceptos.ts b/src/Interfaces/Catalogos/ITabuladorConceptos.ts new file mode 100644 index 0000000..53c6939 --- /dev/null +++ b/src/Interfaces/Catalogos/ITabuladorConceptos.ts @@ -0,0 +1,8 @@ +export default interface ITabuladorConceptos { + id: number, + idTabulador: number, + idConcepto: number, + concepto: string, + costo: number, + activo: number +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/ITransportitas.ts b/src/Interfaces/Catalogos/ITransportitas.ts new file mode 100644 index 0000000..93ba75d --- /dev/null +++ b/src/Interfaces/Catalogos/ITransportitas.ts @@ -0,0 +1,7 @@ +export default interface ITransportistas { + id: number; + IdUsuario: number; + sClave: string; + sRazonSocial: string; + asignado : number; +} \ No newline at end of file diff --git a/src/Interfaces/Catalogos/IUsuarios.ts b/src/Interfaces/Catalogos/IUsuarios.ts new file mode 100644 index 0000000..6f64020 --- /dev/null +++ b/src/Interfaces/Catalogos/IUsuarios.ts @@ -0,0 +1,11 @@ +export default interface IUsuarios { + id: number; + Usuario: string; + Nombre: string; + Contrasena: string; + Correo: string; + TipoUsuario : number; + Activo: number; + FechaAlta: string; + UsuarioAlta: string; +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalAnticipos.ts b/src/Interfaces/Corresponsales/ICorresponsalAnticipos.ts new file mode 100644 index 0000000..b3e5773 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalAnticipos.ts @@ -0,0 +1,15 @@ +export default interface ICorresponsalAnticipos { + id: number, + idTrafico: number, + anticipo: number, + moneda: number, + concepto: string, + solicita?: number, + ssolicita?: string, + fhSolicita?: string, + autoriza?: number, + sAutoriza?: string, + fhAutoriza?: string, + financiado: number, + activo?: boolean +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalCatAduanas.ts b/src/Interfaces/Corresponsales/ICorresponsalCatAduanas.ts new file mode 100644 index 0000000..11e0ae5 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalCatAduanas.ts @@ -0,0 +1,6 @@ +export default interface ICorresponsalCatAduanas { + claveAduana: number, + cliente: number, + abreviatura: string, + aduana: string +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalCatDestinos.ts b/src/Interfaces/Corresponsales/ICorresponsalCatDestinos.ts new file mode 100644 index 0000000..5466688 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalCatDestinos.ts @@ -0,0 +1,5 @@ +export default interface ICatDestinos { + id: number, + cliente: number, + destino: string +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalCatMediosEmbarque.ts b/src/Interfaces/Corresponsales/ICorresponsalCatMediosEmbarque.ts new file mode 100644 index 0000000..315adc9 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalCatMediosEmbarque.ts @@ -0,0 +1,4 @@ +export default interface ICorresponsalCatMediosEmbarque { + id: number, + descripcion: string, +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalCatTipoDocumento.ts b/src/Interfaces/Corresponsales/ICorresponsalCatTipoDocumento.ts new file mode 100644 index 0000000..b67107e --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalCatTipoDocumento.ts @@ -0,0 +1,7 @@ +export default interface ICorresponsalCatTipoDocumento { + id: number, + cliente: number, + descripcion: string, + tipocaptura: number, + proceso: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts b/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts new file mode 100644 index 0000000..03e0e91 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalContenedores.ts @@ -0,0 +1,8 @@ +export default interface ICorresponsalContenedores { + id: number, + contenedor: string, + idTrafico: number, + fSemaforo: string, + semaforo: number, + activo?: boolean +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus.ts b/src/Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus.ts new file mode 100644 index 0000000..9e59f7a --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus.ts @@ -0,0 +1,4 @@ +export default interface ICorresponsalCuentaComplementariaStatus { + id: number, + estatus: string +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalCuentasComplementarias.ts b/src/Interfaces/Corresponsales/ICorresponsalCuentasComplementarias.ts new file mode 100644 index 0000000..70d48ea --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalCuentasComplementarias.ts @@ -0,0 +1,9 @@ +export default interface ICorresponsalCuentasComplementarias { + id: number, + idTrafico: number, + idXML: number, + archivoXML: string, + idPDF : number, + archivoPDF: string, + estatus: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalFacturas.ts b/src/Interfaces/Corresponsales/ICorresponsalFacturas.ts new file mode 100644 index 0000000..7e51e4e --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalFacturas.ts @@ -0,0 +1,12 @@ +export default interface ICorresponsalFacturas { + id: number; + factura: string; + idTrafico: number; + valorFacturaDls: number; + proveedor: number; + corresponsal?: number; + pedido: string; + activo?: boolean; + code: number; + folioGEMCO: string; +} diff --git a/src/Interfaces/Corresponsales/ICorresponsalFacturasTerceros.ts b/src/Interfaces/Corresponsales/ICorresponsalFacturasTerceros.ts new file mode 100644 index 0000000..6da9e52 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalFacturasTerceros.ts @@ -0,0 +1,7 @@ +export default interface ICorresponsalTerceros { + id: number, + factura: string, + idProveedor: number, + idTrafico: number, + activo?: boolean +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalPedimento.ts b/src/Interfaces/Corresponsales/ICorresponsalPedimento.ts new file mode 100644 index 0000000..3d792be --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalPedimento.ts @@ -0,0 +1,35 @@ +export default interface ICorresponsalPedimento { + id : number, + idTrafico : number, + aduana : number, + costoDiario : number, + descripcion : string, + destino : number, + diasCPPagado : number, + embalaje : number, + estatus : number, + fAlmacenajeInicioGastos : string, + fDespacho : string, + fechaETA : string | undefined, + fEntrada : string, + fhEntregaPlanta : string, + fhInstrucciones : string, + fletes : number, + fRevalidacionGuia : string, + hawb : string, + incoterm : string, + lineaTransportistaInternacional : string, + mawb : string, + montoUSA : number, + noGuia : string, + observaciones : string, + origen : string, + otros : number, + paqueteriaTransportista : string, + pesoNeto : number, + preferenciaArancelaria : number, + seguros : number, + tipoEmbarque : number, + totalPagar : number, + activo: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalPedimentoPartidas.ts b/src/Interfaces/Corresponsales/ICorresponsalPedimentoPartidas.ts new file mode 100644 index 0000000..85af5b3 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalPedimentoPartidas.ts @@ -0,0 +1,15 @@ +export default interface ICorresponsalPartidas { + id: number, + idTrafico: number, + partida: number, + idFactura: number, + factura: string, + proveedor: string, + descripcionMaterial: string, + fraccionArancelaria: string, + valorAduana: number, + dta: number, + igi: number, + ieps: number, + activo: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalRazonesRechazo.ts b/src/Interfaces/Corresponsales/ICorresponsalRazonesRechazo.ts new file mode 100644 index 0000000..19be291 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalRazonesRechazo.ts @@ -0,0 +1,3 @@ +export default interface ICorresponsalRazonRechazo { + razones: string +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalRectificacionHistorico.ts b/src/Interfaces/Corresponsales/ICorresponsalRectificacionHistorico.ts new file mode 100644 index 0000000..0b330c3 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalRectificacionHistorico.ts @@ -0,0 +1,12 @@ +export default interface ICorresponsalRectificacionHistorico { + id: number + usuario: number + idTrafico: number + aduana: number + patente: number + pedimento: number + clave: string + fechaPago: string + fhCreacion: string + activo: number +} diff --git a/src/Interfaces/Corresponsales/ICorresponsalTrafico.ts b/src/Interfaces/Corresponsales/ICorresponsalTrafico.ts new file mode 100644 index 0000000..d070beb --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalTrafico.ts @@ -0,0 +1,43 @@ +export default interface ICorresponsalTrafico { + id: number + folioGemco: string + fechaRegistro?: string + idUsuario: number + idCliente: number + tipoOperacion: number + opEntrada: number + opSalida: number + idCorresponsal: number + bultos?: number + kilos?: number + estatus?: number + trafico?: string + aduana?: number + patente?: number + pedimento?: number + clave?: string + fechaPago?: string + tipoCambio?: number + valorAduanaMN?: number + totalPagado?: number + valorFacturaMN?: number + cantidadFracciones?: number + buque?: string + valorFacturaDls?: number + descripcionMercancia?: string + observaciones?: string + fechaDesaduanamiento: string + semaforoFiscal?: number + noCuenta?: string + fechaCuenta?: string + tipoMercancia?: number + ultimaActualizacion?: string + zipgemco?: string + zipCorresponsales?: string + proceso: number + rechazado: number, + idTabulador: number, + noRecti: number, + estatusCode: number, + activo?: number +} diff --git a/src/Interfaces/Corresponsales/ICorresponsalTraficoContabilidad.ts b/src/Interfaces/Corresponsales/ICorresponsalTraficoContabilidad.ts new file mode 100644 index 0000000..a45cec2 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalTraficoContabilidad.ts @@ -0,0 +1,9 @@ +export default interface ICorresponsalesTraficoContabilidad { + id: number, + idUsuario: number, + idTrafico: number, + statusProceso: number, + fechaRegistro: string, + razonRechazo: string + tipo: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalesCatTiposEmbarque.ts b/src/Interfaces/Corresponsales/ICorresponsalesCatTiposEmbarque.ts new file mode 100644 index 0000000..a3e0099 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalesCatTiposEmbarque.ts @@ -0,0 +1,5 @@ +export default interface ICorresponsalCatTiposEmbarque { + id: number, + cliente: number, + descripcion: string +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus.ts b/src/Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus.ts new file mode 100644 index 0000000..84aa882 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus.ts @@ -0,0 +1,5 @@ +export default interface ICorresponsalesCatTraficoEstatus { + id: number, + estatus: string, + activo: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalesGuias.ts b/src/Interfaces/Corresponsales/ICorresponsalesGuias.ts new file mode 100644 index 0000000..97fcf52 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalesGuias.ts @@ -0,0 +1,6 @@ +export default interface ICorresponsalGuias { + id: number, + guia: string, + idTrafico: number, + activo?: boolean +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalesRectificaciones.ts b/src/Interfaces/Corresponsales/ICorresponsalesRectificaciones.ts new file mode 100644 index 0000000..074ee82 --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalesRectificaciones.ts @@ -0,0 +1,8 @@ +export default interface ICorresponsalesRectificaciones { + id: number, + folioGemco: string, + fechaRegistro: string, + prevRecti: number, + nextRecti: number, + noRecti: number +} \ No newline at end of file diff --git a/src/Interfaces/Corresponsales/ICorresponsalesZips.ts b/src/Interfaces/Corresponsales/ICorresponsalesZips.ts new file mode 100644 index 0000000..47d8aeb --- /dev/null +++ b/src/Interfaces/Corresponsales/ICorresponsalesZips.ts @@ -0,0 +1,10 @@ +export default interface ICorresponsalesZips { + id: number; + idUsuario: number; + idTrafico: number; + archivo: string; + registro: string; + clasificacion: number; + mode: number; + activo: boolean; +} \ No newline at end of file diff --git a/src/Interfaces/Dashboard/DashboardCorresponsales.ts b/src/Interfaces/Dashboard/DashboardCorresponsales.ts new file mode 100644 index 0000000..372549d --- /dev/null +++ b/src/Interfaces/Dashboard/DashboardCorresponsales.ts @@ -0,0 +1,4 @@ +export default interface DashboardCorresponsales { + total: number, + descripcion: string +} \ No newline at end of file diff --git a/src/Interfaces/Facturacion/Anexo/IAnexoFacturacionAlen.ts b/src/Interfaces/Facturacion/Anexo/IAnexoFacturacionAlen.ts new file mode 100644 index 0000000..a99b153 --- /dev/null +++ b/src/Interfaces/Facturacion/Anexo/IAnexoFacturacionAlen.ts @@ -0,0 +1,22 @@ +import { string } from 'yup' + +export default interface IAnexoFacturacionAlen { + sReferencia: string + remesa: number + entrega: string + sNumero: string + dFecha: string + sEDocument: string + valorFactura: number + sPedimento: string + cruce: string + semaforo: string + fechaCtaCorresponsal: string + honorarios: number + maniobras: number + validacion: number + prevalidacion: number + coordinacion: number + iva: number + totalMN: number +} diff --git a/src/Interfaces/Facturacion/Anexo/IAnexoFacturacionMission.ts b/src/Interfaces/Facturacion/Anexo/IAnexoFacturacionMission.ts new file mode 100644 index 0000000..35b96fc --- /dev/null +++ b/src/Interfaces/Facturacion/Anexo/IAnexoFacturacionMission.ts @@ -0,0 +1,15 @@ +export default interface IAnexoFacturacionMission { + sRemesa: number + sNumPedimento: string + sReferencia: string + transportista: string + numCaja: string + contraprestacion: number + cruce: number + flete: number + otrosServicios: number + totComp: number + honorarios: number + iva: number + total: number +} diff --git a/src/Interfaces/Facturacion/Anexo/IConsolidadosSinCerrar.ts b/src/Interfaces/Facturacion/Anexo/IConsolidadosSinCerrar.ts new file mode 100644 index 0000000..4cdea18 --- /dev/null +++ b/src/Interfaces/Facturacion/Anexo/IConsolidadosSinCerrar.ts @@ -0,0 +1,5 @@ +export default interface IConsolidadosSinCerrar { + trafico: string, + cliente: string, + fechaApertura: string +} \ No newline at end of file diff --git a/src/Interfaces/IArchivoElectronico.ts b/src/Interfaces/IArchivoElectronico.ts new file mode 100644 index 0000000..a469a38 --- /dev/null +++ b/src/Interfaces/IArchivoElectronico.ts @@ -0,0 +1,7 @@ +export default interface IArchivoElectronico { + Referencia: string; + PedimentoLargo: string; + NoCliente: number; + IdUsuario: number; + Archivo: string; +} \ No newline at end of file diff --git a/src/Interfaces/IDashboardTotal.ts b/src/Interfaces/IDashboardTotal.ts new file mode 100644 index 0000000..feee989 --- /dev/null +++ b/src/Interfaces/IDashboardTotal.ts @@ -0,0 +1,3 @@ +export default interface IDashboardTotal { + total: number +} \ No newline at end of file diff --git a/src/Interfaces/IFotosBodega.ts b/src/Interfaces/IFotosBodega.ts new file mode 100644 index 0000000..6d28bbc --- /dev/null +++ b/src/Interfaces/IFotosBodega.ts @@ -0,0 +1,11 @@ +export default interface IFotosBodega { + id: number; + nombre: string | null; + registrado: string | null; + proceso : number | null; + referencia: string | null; + creado: string | null; + usuario: string | null; + comentarios: string | null; + activo: number | null; +} \ No newline at end of file diff --git a/src/Interfaces/IPerfilesMenu.tsx b/src/Interfaces/IPerfilesMenu.tsx new file mode 100644 index 0000000..e74ccfd --- /dev/null +++ b/src/Interfaces/IPerfilesMenu.tsx @@ -0,0 +1,12 @@ +export default interface IPerfilesMenu { + id: number; + idPerfil: number; + itemMenu: number; + perfil: string; + descripcion: string; + padreId: number; + posicion: number; + url: string; + habilitado: number; + agrupado: number; +} diff --git a/src/Interfaces/IRegister.tsx b/src/Interfaces/IRegister.tsx new file mode 100644 index 0000000..ff3e744 --- /dev/null +++ b/src/Interfaces/IRegister.tsx @@ -0,0 +1,32 @@ +export interface IRegister { + id: number; + usuario: string; + nombre: string; + contrasena: string; + correo: string; + tipoUsuario: number; + activo: number; + fechaAlta: string; + usuarioAlta: number; + fechaModifico: string; + usuarioModifico: number; + fechaElimino: string; + usuarioElimino: number; + motivoElimino: string; + idModulo: number; + dept: number; + tmercancia: number; + fechaUltimaVisita: string; + visitas: number; + internos: number; + permisoEspecial: number; + estadoConfiguracion: number; + fechaValidacionConf: string; + realizoEncuesta: string; + encuestaActiva: number; + fechaLimiteEncuesta: string; + codigoAccesoM: string; + tokenAccesoM: string; + deviceToken: string; + idPerfil: number; +} diff --git a/src/Interfaces/IRespuesta.ts b/src/Interfaces/IRespuesta.ts new file mode 100644 index 0000000..9a423b1 --- /dev/null +++ b/src/Interfaces/IRespuesta.ts @@ -0,0 +1,3 @@ +export default interface IRespuesta { + respuesta: string +} \ No newline at end of file diff --git a/src/Interfaces/ITokenInfo.ts b/src/Interfaces/ITokenInfo.ts new file mode 100644 index 0000000..1ae6c8a --- /dev/null +++ b/src/Interfaces/ITokenInfo.ts @@ -0,0 +1,12 @@ +import { SpawnSyncOptionsWithBufferEncoding } from "child_process"; + +export default interface ITokenInfo { + UserId: string; + Usuario: string; + aud: string; + exp: number; + iat: string; + iss: string; + jti: string; + sub: string; +} \ No newline at end of file diff --git a/src/Interfaces/IjwtStructure.ts b/src/Interfaces/IjwtStructure.ts new file mode 100644 index 0000000..e356b0d --- /dev/null +++ b/src/Interfaces/IjwtStructure.ts @@ -0,0 +1,10 @@ +export default interface IjwtStructure { + sub: string; + jti: string; + iat: string; + UserId: number; + Usuario: string; + Departamento: string; + UserType: number, + Perfil: string +} \ No newline at end of file diff --git a/src/Interfaces/Ilogin.ts b/src/Interfaces/Ilogin.ts new file mode 100644 index 0000000..da88e08 --- /dev/null +++ b/src/Interfaces/Ilogin.ts @@ -0,0 +1,4 @@ +export default interface ILogin { + Usuario: string; + Contrasena: string; +} diff --git a/src/Interfaces/Reportes/IRptArchivoElectronicoOficial.ts b/src/Interfaces/Reportes/IRptArchivoElectronicoOficial.ts new file mode 100644 index 0000000..5e65574 --- /dev/null +++ b/src/Interfaces/Reportes/IRptArchivoElectronicoOficial.ts @@ -0,0 +1,7 @@ +export default interface IRpArchivoElectronicoOficial { + referencia: string + aduana: number + patente: number + pedimento: number + fechaPago: string + } \ No newline at end of file diff --git a/src/Interfaces/Reportes/IRptBattery.ts b/src/Interfaces/Reportes/IRptBattery.ts new file mode 100644 index 0000000..3a38f29 --- /dev/null +++ b/src/Interfaces/Reportes/IRptBattery.ts @@ -0,0 +1,7 @@ +export default interface IRptBattery { + trailer: string + entryDT: string + idPallete: string + weight: number + status: number +} \ No newline at end of file diff --git a/src/Interfaces/Reportes/IRptOperaciones.ts b/src/Interfaces/Reportes/IRptOperaciones.ts new file mode 100644 index 0000000..6ba05e5 --- /dev/null +++ b/src/Interfaces/Reportes/IRptOperaciones.ts @@ -0,0 +1,19 @@ +export default interface RptOperaciones { + noCliente: number; + trafico: string; + fechaAltaTrafico: string; + fechaRecepcionFactura: string; + patioNuevoLaredo: string; + numeroCaja: string; + referencia: string; + pedimento: string; + factura: string; + uuid: string; + pedido:string; + fechaPagoPedimento: string; + descripcionMercancia: string; + fechaEnvioDODA: string; + fechaModulacion: string; + resultadoModulacion: string; + observaciones: string; +} \ No newline at end of file diff --git a/src/Interfaces/Reportes/IRptOperacionesConsolidadas.ts b/src/Interfaces/Reportes/IRptOperacionesConsolidadas.ts new file mode 100644 index 0000000..b6cbd18 --- /dev/null +++ b/src/Interfaces/Reportes/IRptOperacionesConsolidadas.ts @@ -0,0 +1,32 @@ +export default interface IRptOperacionesConsolidadas { + sReferencia: string, + sPedimento: string, + sClave: string, + fechaPago: string, + nTipoCambio: number, + nPesoBruto: number, + paisVendedor: string, + paisOrigen: string, + numFacturas: string, + factura: string, + valorFactura: number, + fraccion: string, + descripcion: string, + nClave: string, + cantFacturas: number, + valorAduana: number, + incrementables: number, + adValorem: number, + dta: number, + iva: number, + efectivo: number, + total: number, + destino: number, + cruce: string, + remitente: string, + caja: string, + valorComercial: number, + aduana: number, + patente: number, + incotern: string +} \ No newline at end of file diff --git a/src/Interfaces/Reportes/IRptOperacionesDiarias.ts b/src/Interfaces/Reportes/IRptOperacionesDiarias.ts new file mode 100644 index 0000000..b1e8a70 --- /dev/null +++ b/src/Interfaces/Reportes/IRptOperacionesDiarias.ts @@ -0,0 +1,16 @@ +export default interface IRptOperacionesDiarias { + sReferencia : string, + remesa : number, + aduana : number, + sNumPedido : string, + recidoFact : string, + sTransporte : string, + sInfoTransp : string, + previo : string, + sNumeroLargo : string, + dFechaFirmaBanco : string, + dFechaFinPrimSel : string, + nPrimeraSel : string, + sNumPedimento : string, + sObservaciones : string +} \ No newline at end of file diff --git a/src/Interfaces/Reportes/IRptPedimentosConsolidados.ts b/src/Interfaces/Reportes/IRptPedimentosConsolidados.ts new file mode 100644 index 0000000..ca6cf86 --- /dev/null +++ b/src/Interfaces/Reportes/IRptPedimentosConsolidados.ts @@ -0,0 +1,37 @@ +export default interface IRptPedimentosConsolidados { + numeroDeReferencia : string; + pedimento: number; + fechaPago : string; + valorDolares : number; + valorAduana : number; + claveCliente : number; + cliente : string; + claveImex : number; + imex : string; + numeroDeRemesa : number; + fechaDeRemesa : string; + fechaDeEntrada : string; + pesoBruto : number; + cantBL : number; + pesoGuias : number; + pesoMercancia : number; + totalBruto : number; + eDocument : string; + observacion : string; + numeroDeFactura : string; + valorDolaresFact : number; + cantidadFactura : number; + patente : number; + operacion : string; + tipoDeTransporte : string; + fechaDeCruce : string; + aduanaSeccion : number; + fechaPrimeraSeleccion : string; + primeraSeleccion : string; + descripcionDeMercancia : string; + descripcionDelContenedor : string; + tipoContenedor : string; + numeroDelContenedor : string; + umt : string; + cantidadTarifa : number; +} \ No newline at end of file diff --git a/src/Interfaces/Reportes/IRptPedimentosPagados.tsx b/src/Interfaces/Reportes/IRptPedimentosPagados.tsx new file mode 100644 index 0000000..e92afb1 --- /dev/null +++ b/src/Interfaces/Reportes/IRptPedimentosPagados.tsx @@ -0,0 +1,50 @@ +export interface IRptPedimentosPagados { + referencia: string + pedimentoLargo: string + aduanaSeccionEntrada: string + aduanaSeccionDespacho: string + clavePedimento: string + regimen: string + tipoOperacionDesc: string + fechaEntradaPresentacion: string + fechadePago: string + pesoBruto: number + tipodeCambiodePedimento: number + valorFacturaME: number + valorFacturaDolares: number + valorFacturaMonedaNacional: number + valorAduana: number + embalajes: number + fletes: number + seguros: number + otros: number + decrementables: number + fletesFactura: number + segurosFactura: number + embalajesFactura: number + otrosFactura: number + importeDTAFP1: number + importeDTAFP2: number + importeADV1: number + aDVFP1: number + importeADV2: number + aDVFP2: number + importeIVA1: number + iVAFP1: number + importeIVA2: number + iVAFP2: number + importeCC: number + importePRV: number + ivaprv: number + totalPagado: number + fechaprimeraSeleccion: string + primeraSeleccion: string + contenedores: string + tipoContenedor: string + facturas: string + pedidos: string + numIntegracionDODA: string + numTransaccionDODA: string + lineaCaptura: string + covesFactura: string +} diff --git a/src/Interfaces/Reportes/IRptPedimentosPagadosImpuestos.ts b/src/Interfaces/Reportes/IRptPedimentosPagadosImpuestos.ts new file mode 100644 index 0000000..a482a88 --- /dev/null +++ b/src/Interfaces/Reportes/IRptPedimentosPagadosImpuestos.ts @@ -0,0 +1,29 @@ +export interface IRptPedimentosPagadosImpuestos { + referencia: string, + pedimentoLargo: string, + aduanaSeccionEntrada: string, + aduanaSeccionDespacho: string, + clavePedimento: string, + regimen: string, + fechadePago: string, + tipodeCambiodePedimento: string, + valorFacturaME: string, + valorFacturaDolares: number, + valorFacturaMonedaNacional: number, + valorAduana: number, + embalajes: number, + fletes: number, + seguros: number, + otros: number, + importeDTAFP1: number, + importeDTAFP2: number, + importeIGI: number, + importeIVA: number, + importeCC: number, + importePRV: number, + ivaprv: number, + totalFPEfectivo: number, + totalFPOtros: number, + totalPagado: number, + lineaCaptura: string + } \ No newline at end of file diff --git a/src/Interfaces/Reportes/RptDetalleAnexo24.tsx b/src/Interfaces/Reportes/RptDetalleAnexo24.tsx new file mode 100644 index 0000000..82a3785 --- /dev/null +++ b/src/Interfaces/Reportes/RptDetalleAnexo24.tsx @@ -0,0 +1,53 @@ +export interface IRptDetalleAnexo24 { + // id: number; + aduanaSeccionDespacho: string + patente: number + referencia: string + pedimento: string + fechaPago: string + fechaEntradaPresentacion: string + claveDocto: string + esRectificacion: string + tipoCambio: number + valorDls: number + valorAduana: number + numeroFactura: string + fechaFactura: string + proveedorFactura: string + incrementablesFact: string + fraccion: number + subdivNICO: string + descripcion: string + paisOrigen: string + paisVendedor: string + //paisComprador: string + //prevFraccion: string + tasaDTA: string + tadaIGI: string + /*tasaiva: string + tasaCC: string + valorDTA: string + valorIGI: string + valorIVA: string + valorCC: string + vAduanaFracc: string + vDlsFracc: string*/ + numeroParte: string + cantidadComercial: string + tlPais: string + tipoTasa: string + unidadComercial: string + //secuencial: number + valorFacturaItem: number + valorComercialPed: number + valorFacturaItemMn: number + /*totalIncrementables: number + referenciaIdSeuPAtAduana: number + referenciaIdCliente: number + referenciaIdImpExp: number + tipo_Operacion: number + pedimentoNumero: number + pedimentosPagados: number + referenciaFechaApertura: string + pedimentoFechaPago: string*/ +} diff --git a/src/Interfaces/Reportes/RptOperacionesRemesa.tsx b/src/Interfaces/Reportes/RptOperacionesRemesa.tsx new file mode 100644 index 0000000..dda5af3 --- /dev/null +++ b/src/Interfaces/Reportes/RptOperacionesRemesa.tsx @@ -0,0 +1,99 @@ +export interface IRptOperacionesRemesa { + vinculacion: string; + vin: string; + valorDolares: number; + valorComercialUSDFactura: number; + valorComercialUSD: number; + valorComercialMNFactura: number; + valorAduana: number; + umt: string; + umc: string; + totalBultos: string; + tLC: string; + tipoOperación: string; + tipoOperacion: string; + tipodeCambio: string; + taxid: string; + seguros: string; + regimen: string; + referenciaIdSucPAtAduana: number; + referenciaIdImpExp: number; + referenciaIdCliente: number; + referenciaFechaApertura: string; + referencia: string; + rec: string; + proveedor: string; + prosec: string; + preva: string; + precioUnitario: string; + pesoBruto: string; + pedimentosPagados: string; + pedimentoNumero: string; + pedimentoFechaPago: string; + patente: string; + paisVendedor: string; + paisOrigen: string; + pagoennoEfectivo: string; + pagoenEfectivo: string; + otros: string; + observaciones: string; + numPedimento: string; + numAduana: string; + mult: string; + monedaFactura: string; + mercancía: string; + iva: string; + isan: string; + incrementablesUSD: string; + incrementablesMN: string; + incoterm: string; + impuestos: string; + impotros: string; + igi: string; + ieps: string; + id: number; + guías: string; + fueConsolidado: string; + fraccion: string; + formaPagoREC: string; + formaPagoPREVA: string; + formaPagoOTROS: string; + formaPagoMULT: string; + formaPagoIVA: string; + formaPagoISAN: string; + formaPagoIGI: string; + formaPagoIEPS: string; + formaPagoDTI: string; + formaPagoDTA: string; + formaPagoCNT: string; + formaPagoCC: string; + fletes: string; + firmaElectronica: string; + fechaPago: string; + fechaFactura: string; + fechaEntrada: string; + fechadeRevalidacion: string; + fechadePrevio: string; + fechadeDesaduanamiento: string; + factura: string; + factorMonedaExtranjera: string; + embalajes: string; + ejecutivo: string; + dti: string; + dta: string; + direccionProveedor: string; + descripcion: string; + contenedores: string; + cnt: string; + cliente: string; + clave: string; + cc: string; + cantidadUMT: number; + cantidadUMC: number; + cantidaddeUnidades: number; + bPagado: string; + anticipo: number; + agente: string; + r1PedimentoOriginal: string; + r1ClaveAnterior: string; +} diff --git a/src/Interfaces/Utils/IFileManager.ts b/src/Interfaces/Utils/IFileManager.ts new file mode 100644 index 0000000..5186c25 --- /dev/null +++ b/src/Interfaces/Utils/IFileManager.ts @@ -0,0 +1,9 @@ +export default interface IFileManager { + id: number, + idUsuario: number, + proceso: number, + nombreArchivo: string, + fechaRegistro: string, + tags: string, + size: number, +} \ No newline at end of file diff --git a/src/Interfaces/Utils/INotificacionesConceptos.ts b/src/Interfaces/Utils/INotificacionesConceptos.ts new file mode 100644 index 0000000..2562a86 --- /dev/null +++ b/src/Interfaces/Utils/INotificacionesConceptos.ts @@ -0,0 +1,5 @@ +export default interface INotificacionesConceptos { + id: number, + concepto: string, + activo: number +} \ No newline at end of file diff --git a/src/Interfaces/Utils/INotificacionesContactos.ts b/src/Interfaces/Utils/INotificacionesContactos.ts new file mode 100644 index 0000000..1417613 --- /dev/null +++ b/src/Interfaces/Utils/INotificacionesContactos.ts @@ -0,0 +1,9 @@ +export default interface INotificacionesContactos { + id: number + nombre: string + puesto: string + pais: string + celular: string + empresa: string + activo: number +} diff --git a/src/Interfaces/Utils/INotificacionesContactosGrupos.ts b/src/Interfaces/Utils/INotificacionesContactosGrupos.ts new file mode 100644 index 0000000..de5209b --- /dev/null +++ b/src/Interfaces/Utils/INotificacionesContactosGrupos.ts @@ -0,0 +1,5 @@ +export default interface INotificacionesContactosGrupos { + id: number + IdContacto: number + IdGrupo: number +} diff --git a/src/Interfaces/Utils/INotificacionesGrupos.ts b/src/Interfaces/Utils/INotificacionesGrupos.ts new file mode 100644 index 0000000..66ec55a --- /dev/null +++ b/src/Interfaces/Utils/INotificacionesGrupos.ts @@ -0,0 +1,5 @@ +export default interface INotificacionesGrupos { + id: number + grupo: string + activo?: number +} diff --git a/src/Interfaces/Utils/INotificacionesLog.ts b/src/Interfaces/Utils/INotificacionesLog.ts new file mode 100644 index 0000000..384f6e1 --- /dev/null +++ b/src/Interfaces/Utils/INotificacionesLog.ts @@ -0,0 +1,7 @@ +export default interface INotificacionesLog { + id: number, + envia: string, + concepto: string, + contactos: string, + fhCreacion: string +} \ No newline at end of file diff --git a/src/Interfaces/registroPermisoClientes.tsx b/src/Interfaces/registroPermisoClientes.tsx new file mode 100644 index 0000000..f7e6e1e --- /dev/null +++ b/src/Interfaces/registroPermisoClientes.tsx @@ -0,0 +1,8 @@ +export interface IregistroPermisoClientes { + id: number; + IdUsuario: number; + ModuloCliente: number; + IoE: number; + Aduana: number; + Patente: number; +} diff --git a/src/Interfaces/token.ts b/src/Interfaces/token.ts new file mode 100644 index 0000000..7b39d28 --- /dev/null +++ b/src/Interfaces/token.ts @@ -0,0 +1,3 @@ +export default interface token { + token: string; +} \ No newline at end of file diff --git a/src/Services/Auth/Auth.Service.ts b/src/Services/Auth/Auth.Service.ts new file mode 100644 index 0000000..19b62cb --- /dev/null +++ b/src/Services/Auth/Auth.Service.ts @@ -0,0 +1,39 @@ +import http from "../common/http-common"; +import ILogin from "../../Interfaces/Ilogin" +import ItemMenuData from "../../Interfaces/Catalogos/IItemMenu"; +import Token from '../../Interfaces/token' + +class authDataService { + /** + * + */ + constructor() { + // super(); + type token = string; + type returnData = [ItemMenuData[], Token] + } + + /*getAll() { + return http.get>("/tutorials"); + } + get(id: string) { + return http.get(`/tutorials/${id}`); + }*/ + create(data: ILogin) { + return http.post<[ItemMenuData[], Token]>("/Auth", data); + } + /* + update(data: ITutorialData, id: any) { + return http.put(`/tutorials/${id}`, data); + } + delete(id: any) { + return http.delete(`/tutorials/${id}`); + } + deleteAll() { + return http.delete(`/tutorials`); + } + findByTitle(title: string) { + return http.get>(`/tutorials?title=${title}`); + }*/ +} +export default new authDataService(); \ No newline at end of file diff --git a/src/Services/Catalogos/ArchivoElectronico.Services.ts b/src/Services/Catalogos/ArchivoElectronico.Services.ts new file mode 100644 index 0000000..b24b781 --- /dev/null +++ b/src/Services/Catalogos/ArchivoElectronico.Services.ts @@ -0,0 +1,60 @@ +import DTOAEPeriodo from "../../DTO/DTOAEPeriodo"; +import DTOgetArchivosPorReferencia from "../../DTO/DTOgetArchivosPorReferencia"; +import DTOgetThesePedimentos from "../../DTO/DTOgetThesePedimentos"; +import IArchivoElectronico from "../../Interfaces/IArchivoElectronico"; +import IFotosBodega from "../../Interfaces/IFotosBodega"; +import IRpArchivoElectronicoOficial from "../../Interfaces/Reportes/IRptArchivoElectronicoOficial"; +import http from "../common/http-common"; + + +class ArchivoElectronicoDataService { + getFile(data: IArchivoElectronico) { + return http.get(`/ArchivoElectronico/getFile`, { params: data }) + } + getFileList(data: IArchivoElectronico) { + return http.get(`/ArchivoElectronico/getFileList`, { params: data }) + } + getInfoPicturesFromWarehouse(data: IFotosBodega) { + return http.get>(`/ArchivoElectronico/getLogFotosBodega?Referencia=${data.referencia}`); + } + getPictureContent(Archivo : string) { + return http.get>(`/ArchivoElectronico/getPictureContent?Nombre=${Archivo}`); + } + getTheseReferencesByPeriod(data : DTOAEPeriodo) { + return http.post("/ArchivoElectronico/downloadReferencesByPeriod", data, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + getTheseFilesByReferences(data : DTOgetArchivosPorReferencia) { + return http.post("/ArchivoElectronico/getFilesByReference", data, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + getThesePDFs(data : DTOgetThesePedimentos) { + return http.post("/ArchivoElectronico/downloadPDFs", data, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + getPDF(data: IArchivoElectronico) { + return http.get(`/ArchivoElectronico/getFile?Referencia=${data.Referencia}&PedimentoLargo=${data.PedimentoLargo}&NoCliente=${data.NoCliente}&IdUsuario=${data.IdUsuario}`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + } + export default new ArchivoElectronicoDataService(); \ No newline at end of file diff --git a/src/Services/Catalogos/Clientes.Services.ts b/src/Services/Catalogos/Clientes.Services.ts new file mode 100644 index 0000000..4aeadd9 --- /dev/null +++ b/src/Services/Catalogos/Clientes.Services.ts @@ -0,0 +1,35 @@ +import http from "../common/http-common"; +import IClientes from "../../Interfaces/Catalogos/IClientes"; +import { IPerfil } from "../../Interfaces/Catalogos/IPerfiles"; +import ITransportistas from '../../Interfaces/Catalogos/ITransportitas' +import DTOUsuarioCliente from '../../DTO/DTOUsuarioCliente' +import DTOasignaClienteProveedor from "../../DTO/DTOasignaClienteProveedor"; +import DTOClienteTransportista from "../../DTO/DTOClienteTransportita"; +import { IRegister } from "../../Interfaces/IRegister"; + + +class ClientesDataService { + /** + * + */ + constructor() { + type returnData = [IClientes[]] + } + + getAllClientes(id:number) { + return http.get(`/Clientes/getAllClientes?id=${id}`); + } + getUsuariosAsignados(id: number) { + return http.get(`/Clientes/getClientesAsignados?id=${id}`); + } + create(data: DTOUsuarioCliente) { + return http.post("/Clientes/addCliente", data); + } + asignaClienteProveedor(data:DTOasignaClienteProveedor) { + return http.post("/Clientes/asignaClienteProveedor", data); + } + asignaClienteTransportista(data:DTOClienteTransportista) { + return http.post("/Clientes/asignaClienteTransportista", data); + } +} +export default new ClientesDataService(); \ No newline at end of file diff --git a/src/Services/Catalogos/Corresponsales.Services.ts b/src/Services/Catalogos/Corresponsales.Services.ts new file mode 100644 index 0000000..d86653e --- /dev/null +++ b/src/Services/Catalogos/Corresponsales.Services.ts @@ -0,0 +1,43 @@ +import http from "../common/http-common"; +import ICatCorresponsales from '../../Interfaces/Catalogos/ICatCorresponsales' +import ICorresponsalFacturas from "../../Interfaces/Corresponsales/ICorresponsalFacturas"; +import ICorresponsalesZips from "../../Interfaces/Corresponsales/ICorresponsalesZips"; + + +class CorresponsalesDataService { + // Catalogo de Corresponsales + getAll() { + return http.get(`/Catalogos/Corresponsales/getAll`); + } + getAllFormated() { + return http.get(`/Catalogos/Corresponsales/getAllFormated`); + } + Append(data: ICatCorresponsales) { + return http.post("/Catalogos/Corresponsales/Append", data); + } + Delete(id: number) { + return http.delete(`/Catalogos/Corresponsales/Delete/${id}`); + } + + /* // Corresponales: Archivos ZIP + CorresponsalesZipLog(data: ICorresponsalesZips) { + return http.post("/Corresponsales/CorresponsalesZipLog", data); + } + getCorresponsalesZipFiles(idTrafico: number) { + return http.get(`/Corresponsales/getCorresponsalesZipFiles?idTrafico=${idTrafico}`); + } + getZIPContent(data : ICorresponsalesZips) { + return http.get(`/Corresponsales/getCorresponsalesZipFileContent?Archivo=${data.archivo}`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + DeleteCorresponsalesZipFile(id: number) { + return http.delete(`/Corresponsales/DeleteCorresponsalesZipFile/${id}`); + } */ + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Catalogos/PerfilesMenu.Services.ts b/src/Services/Catalogos/PerfilesMenu.Services.ts new file mode 100644 index 0000000..6f3d70b --- /dev/null +++ b/src/Services/Catalogos/PerfilesMenu.Services.ts @@ -0,0 +1,51 @@ +import http from '../common/http-common' +import ILogin from '../../Interfaces/Ilogin' +import ItemMenuData from '../../Interfaces/Catalogos/IItemMenu' +import IPerfilesMenu from '../../Interfaces/IPerfilesMenu' +import { IPerfil } from '../../Interfaces/Catalogos/IPerfiles' +import ITransportista from '../../Interfaces/Catalogos/ITransportitas' +import IProveedores from '../../Interfaces/Catalogos/IProveedores' +import DTOPerfilCreate from '../../DTO/DTOPerfilCreate' +import DTOItemMenuPerfil from '../../DTO/DTOItemMenuPerfil' +import IItemMenu from '../../Interfaces/Catalogos/IItemMenu' +//import DTOasignaClienteProveedor from '../DTO/DTOasignaClienteProveedor' + +class PerfilesMenuService { + /** + * + */ + constructor() { + // super(); + type token = string + type returnData = [IPerfilesMenu[]] + } + + getAllPerfiles() { + return http.get('/Perfiles/getPerfiles') + } + getMenu() { + return http.get('/Perfiles/getMenu') + } + getPerfilMenuById(id: number) { + return http.get(`/Perfiles/getPerfilMenuById?id=${id}`) + } + getAllPerfilesMenu() { + return http.get('/Perfiles/getAllPerfilesMenu') + } + getAllTransportitas(id: number) { + return http.get(`/Perfiles/getAllTransportistas?id=${id}`) + } + getAllProveedores(id: number) { + return http.get(`/Perfiles/getAllProveedores/?id=${id}`) + } + createItemMenu(data: IItemMenu) { + return http.post<[IItemMenu]>('/Perfiles/createItemMenu', data) + } + createPerfil(data: DTOPerfilCreate) { + return http.post<[DTOPerfilCreate[]]>('/Perfiles/createPerfil', data) + } + toggleItemMenu(data: DTOItemMenuPerfil) { + return http.post<[DTOItemMenuPerfil[]]>('/Perfiles/asignaItemMenu', data) + } +} +export default new PerfilesMenuService() diff --git a/src/Services/Catalogos/Proveedores.Services.ts b/src/Services/Catalogos/Proveedores.Services.ts new file mode 100644 index 0000000..f73888d --- /dev/null +++ b/src/Services/Catalogos/Proveedores.Services.ts @@ -0,0 +1,18 @@ +import http from "../common/http-common"; +import ICatProveedores from "../../Interfaces/Catalogos/ICatProveedores"; + + +class ProveedoresDataService { + + getAll(Clasificacion: number) { + return http.get(`/Catalogos/Corresponsales/Proveedores/getAll?Clasificacion=${Clasificacion}`); + } + Append(data: ICatProveedores) { + return http.post("/Catalogos/Corresponsales/Proveedores/Append", data); + } + Delete(id: number) { + return http.delete(`/Catalogos/Corresponsales/Proveedores/Delete/${id}`); + } + +} +export default new ProveedoresDataService(); \ No newline at end of file diff --git a/src/Services/Catalogos/Usuarios.Services.ts b/src/Services/Catalogos/Usuarios.Services.ts new file mode 100644 index 0000000..ed0559c --- /dev/null +++ b/src/Services/Catalogos/Usuarios.Services.ts @@ -0,0 +1,49 @@ +import http from "../common/http-common"; +import { IRegister } from "../../Interfaces/IRegister"; +import DTOUsuariosShort from "../../DTO/DTOUsuariosShort"; +import DTOClonarUsuario from "../../DTO/DTOClonarUsuario"; +import DTOUsuario from "../../DTO/DTOUsuario"; + + +class usuariosService { + constructor() { + } + validate() { + return http.get("/Auth/validate"); + } + getAllUsuarios() { + return http.get("/Usuarios/getAllUsuarios"); + } + getAllUsuariosShort() { + return http.get("/Usuarios/getAllUsuariosShort"); + } + create(data: IRegister) { + return http.post<[IRegister[]]>("/Usuarios/createUser", data); + } + clonarUsuario(data: DTOClonarUsuario) { + return http.post<[DTOClonarUsuario[]]>("/Usuarios/clonarUsuario", data); + } + resetPassword(data: DTOUsuario) { + return http.post("/Usuarios/resetPassword", data); + } + + /* get(id: string) { + return http.get(`/tutorials/${id}`); + } + create(data: ILogin) { + return http.post<[ItemMenuData[]]>("/Auth", data); + } + update(data: ITutorialData, id: any) { + return http.put(`/tutorials/${id}`, data); + } + delete(id: any) { + return http.delete(`/tutorials/${id}`); + } + deleteAll() { + return http.delete(`/tutorials`); + } + findByTitle(title: string) { + return http.get>(`/tutorials?title=${title}`); + }*/ +} +export default new usuariosService(); \ No newline at end of file diff --git a/src/Services/Contabilidad/Contabilidad.Corresponsalias.Services.ts b/src/Services/Contabilidad/Contabilidad.Corresponsalias.Services.ts new file mode 100644 index 0000000..39ab5de --- /dev/null +++ b/src/Services/Contabilidad/Contabilidad.Corresponsalias.Services.ts @@ -0,0 +1,18 @@ +import http from '../common/http-common' +import ICorresponsalesTraficoContabilidad from '../../Interfaces/Corresponsales/ICorresponsalTraficoContabilidad' +import ICorresponsalRazonRechazo from '../../Interfaces/Corresponsales/ICorresponsalRazonesRechazo' + +class Contabilidad_Corresponsales_DataService { + Get(idTrafico: number, tipo: number) { + return http.get( + `/Contabilidad/Corresponsales/ContabilidadTrafico/Get?idTrafico=${idTrafico}&tipo=${tipo}` + ) + } + Append(data: ICorresponsalesTraficoContabilidad) { + return http.post( + '/Contabilidad/Corresponsales/ContabilidadTrafico/Validacion', + data + ) + } +} +export default new Contabilidad_Corresponsales_DataService() diff --git a/src/Services/Corresponsalias/Corresponsales.Anticipos.Services.ts b/src/Services/Corresponsalias/Corresponsales.Anticipos.Services.ts new file mode 100644 index 0000000..6948adf --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Anticipos.Services.ts @@ -0,0 +1,22 @@ +import http from "../common/http-common"; +import ICorresponsalAnticipos from "../../Interfaces/Corresponsales/ICorresponsalAnticipos"; +import DTOAnticiposAutoriza from "../../DTO/Corresponsales/DTOAnticiposAutoriza"; + +class CorresponsalesDataService { + + Append(data: ICorresponsalAnticipos) { + return http.post("/Corresponsalias/Anticipos/Append", data); + } + getAll(idTrafico: number) { + return http.get(`/Corresponsalias/Anticipos/get?idTrafico=${idTrafico}`); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/Anticipos/Delete/${id}`); + } + Autoriza(data: DTOAnticiposAutoriza) { + return http.post("/Corresponsalias/Anticipos/Autoriza", data); + } + + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.CatAduanas.Services.ts b/src/Services/Corresponsalias/Corresponsales.CatAduanas.Services.ts new file mode 100644 index 0000000..e98d437 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.CatAduanas.Services.ts @@ -0,0 +1,11 @@ +import http from "../common/http-common"; +import ICorresponsalCatAduanas from "../../Interfaces/Corresponsales/ICorresponsalCatAduanas"; + +class CorresponsalesDataService { + + getAll(idCliente: number) { + return http.get(`/Corresponsalias/CatAduanas/GetAll?idCliente=${idCliente}`); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.CatDestinos.Services.ts b/src/Services/Corresponsalias/Corresponsales.CatDestinos.Services.ts new file mode 100644 index 0000000..a67c1be --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.CatDestinos.Services.ts @@ -0,0 +1,11 @@ +import http from "../common/http-common"; +import ICorresponsalCatDestinos from "../../Interfaces/Corresponsales/ICorresponsalCatDestinos"; + +class CorresponsalesDataService { + + getAll(idCliente: number) { + return http.get(`/Corresponsalias/CatDestinos/GetAll?idCliente=${idCliente}`); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.CatMediosEmbarque.Services.ts b/src/Services/Corresponsalias/Corresponsales.CatMediosEmbarque.Services.ts new file mode 100644 index 0000000..7e05bd2 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.CatMediosEmbarque.Services.ts @@ -0,0 +1,11 @@ +import http from "../common/http-common"; +import ICorresponsalCatMediosEmbarque from "../../Interfaces/Corresponsales/ICorresponsalCatMediosEmbarque"; + +class CorresponsalesDataService { + + getAll() { + return http.get(`/Corresponsalias/CatMediosEmbarques/GetAll`); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.CatTiposEmbarque.Services.ts b/src/Services/Corresponsalias/Corresponsales.CatTiposEmbarque.Services.ts new file mode 100644 index 0000000..354a23b --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.CatTiposEmbarque.Services.ts @@ -0,0 +1,11 @@ +import http from "../common/http-common"; +import ICorresponsalCatTiposEmbarque from "../../Interfaces/Corresponsales/ICorresponsalesCatTiposEmbarque"; + +class CorresponsalesDataService { + + getAll() { + return http.get(`/Corresponsalias/CatTiposEmbarque/GetAll`); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Contenedores.Services.ts b/src/Services/Corresponsalias/Corresponsales.Contenedores.Services.ts new file mode 100644 index 0000000..d37462f --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Contenedores.Services.ts @@ -0,0 +1,16 @@ +import http from "../common/http-common"; +import ICorresponsalContenedores from "../../Interfaces/Corresponsales/ICorresponsalContenedores"; +import IRespuesta from "../../Interfaces/IRespuesta"; + +class CorresponsalesDataService { + getAll(idTrafico: number) { + return http.get(`/Corresponsalias/Contenedores/getAll?idTrafico=${idTrafico}`); + } + Append(data: ICorresponsalContenedores) { + return http.post("/Corresponsalias/Contenedores/Append", data); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/Contenedores/Delete/${id}`); + } +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services.ts b/src/Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services.ts new file mode 100644 index 0000000..30896cb --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.CuentasComplementarias.Services.ts @@ -0,0 +1,36 @@ +import http from "../common/http-common"; +import ICorresponsalCuentasComplementarias from "../../Interfaces/Corresponsales/ICorresponsalCuentasComplementarias"; +import ICorresponsalCuentasComplementariasEstatus from "../../Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus"; +import DTOCorresponsalCuentaComplementaria from "../../DTO/Corresponsales/DTOCuentaComplementaria"; +import DTOCuentaComplementariaEstatus from "../../DTO/Corresponsales/DTOCuentaComplementariaEstatus"; +import DTOLogCorresponsalComplementariaEstatus from "../../DTO/Corresponsales/DTOLogCorresponsalComplementariaEstatus"; + +class CorresponsalesDataService { + url = '/Corresponsalias/CuentasComplementarias/' + + Append(data: DTOCorresponsalCuentaComplementaria) { + return http.post(this.url+"Append", data); + } + Get(idTrafico: number) { + return http.get(this.url+`Get?idTrafico=${idTrafico}`); + } + AppendEstatus(data: ICorresponsalCuentasComplementariasEstatus) { + return http.post(this.url+"AppendEstatus", data); + } + GetAllEstatus() { + return http.get(this.url+`GetEstatus`); + } + /* Delete(id: number) { + return http.delete(`/Corresponsalias/Anticipos/Delete/${id}`); + } */ + ChangeStatus(data: DTOCuentaComplementariaEstatus) { + return http.post(this.url+"ChangeEstatus", data); + } + GetLogEstatus(id: number) { + return http.get(this.url+`GetLogEstatus?id=${id}`); + } + ClearFile(idCuenta: number, witchFile: number) { + return http.put(this.url+`ClearFile/${idCuenta}/${witchFile}`); + } +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Facturas.Services.ts b/src/Services/Corresponsalias/Corresponsales.Facturas.Services.ts new file mode 100644 index 0000000..f112cb3 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Facturas.Services.ts @@ -0,0 +1,16 @@ +import http from "../common/http-common"; +import ICorresponsalFacturas from "../../Interfaces/Corresponsales/ICorresponsalFacturas"; +import IRespuesta from "../../Interfaces/IRespuesta"; + +class Corresponsales_Facturas_DataService { + getAll(idTrafico: number) { + return http.get(`/Corresponsalias/Facturas/getAll/?idTrafico=${idTrafico}`); + } + Append(data: ICorresponsalFacturas) { + return http.post("/Corresponsalias/Facturas/Append", data); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/Facturas/Delete/${id}`); + } +} +export default new Corresponsales_Facturas_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.FacturasTerceros.services.ts b/src/Services/Corresponsalias/Corresponsales.FacturasTerceros.services.ts new file mode 100644 index 0000000..e6b58a0 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.FacturasTerceros.services.ts @@ -0,0 +1,17 @@ +import http from "../common/http-common"; +import ICorresponsalFacturasTerceros from "../../Interfaces/Corresponsales/ICorresponsalFacturasTerceros"; +import IRespuesta from "../../Interfaces/IRespuesta"; +import DTOCorresponsalFacturasTerceros from "../../DTO/Corresponsales/DTOCorresponsalFacturasTerceros"; + +class Corresponsales_FacturasTerceros_DataService { + getAll(idTrafico: number) { + return http.get(`/Corresponsalias/FacturasTerceros/getAll?idTrafico=${idTrafico}`); + } + Append(data: ICorresponsalFacturasTerceros) { + return http.post("/Corresponsalias/FacturasTerceros/Append", data); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/FacturasTerceros/Delete/${id}`); + } +} +export default new Corresponsales_FacturasTerceros_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Guias.Services.ts b/src/Services/Corresponsalias/Corresponsales.Guias.Services.ts new file mode 100644 index 0000000..af92617 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Guias.Services.ts @@ -0,0 +1,16 @@ +import http from "../common/http-common"; +import ICorresponsalesGuias from "../../Interfaces/Corresponsales/ICorresponsalesGuias"; +import IRespuesta from "../../Interfaces/IRespuesta"; + +class CorresponsalesGuiasDataService { + getAll(idTrafico: number) { + return http.get(`/Corresponsalias/Guias/getAll?idTrafico=${idTrafico}`); + } + Append(data: ICorresponsalesGuias) { + return http.post("/Corresponsalias/Guias/Append", data); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/Guias/Delete/${id}`); + } +} +export default new CorresponsalesGuiasDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Precuenta.Services.ts b/src/Services/Corresponsalias/Corresponsales.Precuenta.Services.ts new file mode 100644 index 0000000..3eff6ac --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Precuenta.Services.ts @@ -0,0 +1,16 @@ +import http from "../common/http-common"; +import IRespuesta from "../../Interfaces/IRespuesta"; +import ITabuladorConceptos from "../../Interfaces/Catalogos/ITabuladorConceptos"; + +class Corresponsales_Precuenta_DataService { + GetAll(id: number, IdTrafico: number) { + return http.get(`/Corresponsalias/Precuenta/getAll?id=${id}&idTrafico=${IdTrafico}`); + } + ChangeStatus(id: number) { + return http.delete(`/Corresponsalias/Precuenta/ChangeStatus/${id}`); + } + Append(id: number, IdTrafico: number) { + return http.put(`/Corresponsalias/Precuenta/Append/${id}/${IdTrafico}`); + } +} +export default new Corresponsales_Precuenta_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices.ts b/src/Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices.ts new file mode 100644 index 0000000..1527a15 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices.ts @@ -0,0 +1,20 @@ +import http from "../common/http-common"; +import IRespuesta from "../../Interfaces/IRespuesta"; +import DTOConceptos from "../../DTO/Utils/DTOConceptos"; +import ITabuladorConceptos from "../../Interfaces/Catalogos/ITabuladorConceptos"; + +class Corresponsales_Tabuladores_Detalles_DataService { + GetDetailByIdTab(id: number) { + return http.get(`/Catalogos/TabuladorDetalle/getDetailByIdTab?id=${id}`); + } + Append(data: ITabuladorConceptos) { + return http.post("/Catalogos/TabuladorDetalle/Append", data); + } + Delete(id: number) { + return http.delete(`/Catalogos/TabuladorDetalle/Delete/${id}`); + } + getAllConcepts() { + return http.get(`/Catalogos/TabuladorDetalle/Conceptos/getAllConcepts`); + } +} +export default new Corresponsales_Tabuladores_Detalles_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Tabuladores.Services.ts b/src/Services/Corresponsalias/Corresponsales.Tabuladores.Services.ts new file mode 100644 index 0000000..a0473c9 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Tabuladores.Services.ts @@ -0,0 +1,23 @@ +import http from "../common/http-common"; +import ITabulador from "../../Interfaces/Catalogos/ITabulador"; +import IRespuesta from "../../Interfaces/IRespuesta"; + + +class Corresponsales_Tabuladores_DataService { + Get(id: number) { + return http.get(`/Catalogos/Tabulador/get?id=${id}`); + } + GetAll() { + return http.get(`/Catalogos/Tabulador/getAll?id=0&IdCliente=0`); + } + GetByCustomer(IdCliente: number) { + return http.get(`/Catalogos/Tabulador/getAll?IdCliente=${IdCliente}`); + } + Append(data: ITabulador) { + return http.post("/Catalogos/Tabulador/Append", data); + } + Delete(id: number) { + return http.delete(`/Catalogos/Tabulador/Delete/${id}`); + } +} +export default new Corresponsales_Tabuladores_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services.ts b/src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services.ts new file mode 100644 index 0000000..d76cf6c --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Partidas.Services.ts @@ -0,0 +1,18 @@ +import http from "../common/http-common"; +import ICorresponsalPartidas from "../../Interfaces/Corresponsales/ICorresponsalPedimentoPartidas"; +import IRespuesta from "../../Interfaces/IRespuesta"; + +class CorresponsalesDataService { + + Append(data: ICorresponsalPartidas) { + return http.post("/Corresponsalias/PedimentoPartida/Append", data); + } + GetAll(idTrafico: number) { + return http.get(`/Corresponsalias/PedimentoPartida/GetAll?idTrafico=${idTrafico}`); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/PedimentoPartida/Delete/${id}`); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Services.ts b/src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Services.ts new file mode 100644 index 0000000..e1fee98 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Trafico.Pedimento.Services.ts @@ -0,0 +1,17 @@ +import http from "../common/http-common"; +import ICorresponsalPedimento from "../../Interfaces/Corresponsales/ICorresponsalPedimento"; + +class CorresponsalesDataService { + + Append(data: ICorresponsalPedimento) { + return http.post("/Corresponsalias/Pedimento/Append", data); + } + Get(idTrafico: number) { + return http.get(`/Corresponsalias/Pedimento/Get?IdTrafico=${idTrafico}`); + } + Delete(id: number) { + return http.delete(`/Corresponsalias/Pedimento/Delete/${id}`); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts b/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts new file mode 100644 index 0000000..75b3649 --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsales.Trafico.Services.ts @@ -0,0 +1,36 @@ +import http from "../common/http-common"; +import ICorresponsalTrafico from "../../Interfaces/Corresponsales/ICorresponsalTrafico"; +import ICorresponsalesRectificaciones from "../../Interfaces/Corresponsales/ICorresponsalesRectificaciones"; +import ICorresponsalesCatTraficoEstatus from "../../Interfaces/Corresponsales/ICorresponsalesCatTraficoEstatus"; +import DTOTraficoCompleto from "../../DTO/Corresponsales/DTOTraficoCompleto"; +import IRespuesta from "../../Interfaces/IRespuesta"; +import ICorresponsalRectificacionHistorico from "../../Interfaces/Corresponsales/ICorresponsalRectificacionHistorico"; +import DTORectificacionHistorico from "../../DTO/Corresponsales/DTORectificacionHistorico"; + +class Corresponsales_Trafico_DataService { + GetAll(id: number) { + return http.get(`/Corresponsalias/Traficos/Get?id=${id}`); + } + Append(data: ICorresponsalTrafico) { + return http.post("/Corresponsalias/Traficos/Append", data); + } + GetRectificaciones(id: number) { + return http.get(`/Corresponsalias/Traficos/GetRectificaciones?id=${id}`); + } + AddRectificacion(id: number) { + return http.put(`/Corresponsalias/Traficos/AddRectificacion/${id}`); + } + GetCorresponsalesTraficoEstatus() { + return http.get(`/Corresponsalias/Traficos/GetCorTraficoEstatus`); + } + ValidateComplete(data: DTOTraficoCompleto) { + return http.put(`/Corresponsalias/Traficos/ValidateComplete/${data.id}`,data); + } + AppendRectificacionHistorico(data: DTORectificacionHistorico) { + return http.post(`Corresponsalias/Traficos/Rectificacion/Historico/Append`,data); + } + GetRectificacionHistorico(IdTrafico: number) { + return http.get(`Corresponsalias/Traficos/Rectificacion/Historico/Get?IdTrafico=${IdTrafico}`); + } +} +export default new Corresponsales_Trafico_DataService(); \ No newline at end of file diff --git a/src/Services/Corresponsalias/Corresponsalias.CatTiposDocumentos.Services.ts b/src/Services/Corresponsalias/Corresponsalias.CatTiposDocumentos.Services.ts new file mode 100644 index 0000000..abf396b --- /dev/null +++ b/src/Services/Corresponsalias/Corresponsalias.CatTiposDocumentos.Services.ts @@ -0,0 +1,10 @@ +import http from "../common/http-common"; +import ICorresponsalCatTipoDocumento from "../../Interfaces/Corresponsales/ICorresponsalCatTipoDocumento"; + +class CorresponsalesDataService { + getAll(Cliente: number, Clasificacion: number) { + return http.get(`/Corresponsalias/CatTiposDocumento/Get?cliente=${Cliente}&clasificacion=${Clasificacion}`); + } +} + +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/Dashboard/Dashboard.Clasificacion.Services.ts b/src/Services/Dashboard/Dashboard.Clasificacion.Services.ts new file mode 100644 index 0000000..08bdd6b --- /dev/null +++ b/src/Services/Dashboard/Dashboard.Clasificacion.Services.ts @@ -0,0 +1,9 @@ +import http from "../common/http-common"; +import IDashboardTotal from "../../Interfaces/IDashboardTotal"; + +class Dashboard$Clasificacion$DataService { + DashboardInvoices(Mode: number) { + return http.get(`/AmazonInvoice/DashboardInvoices?Mode=${Mode}`); + } +} +export default new Dashboard$Clasificacion$DataService(); \ No newline at end of file diff --git a/src/Services/Dashboard/Dashboard.Contabilidad.Service.ts b/src/Services/Dashboard/Dashboard.Contabilidad.Service.ts new file mode 100644 index 0000000..149f96e --- /dev/null +++ b/src/Services/Dashboard/Dashboard.Contabilidad.Service.ts @@ -0,0 +1,15 @@ +import http from "../common/http-common"; +import IDashboardTotal from "../../Interfaces/IDashboardTotal"; + +class Dashboard_Contabilidad_DataService { + getTotalTraficosPendientesAutorizar(mode: number) { + return http.get(`/Corresponsalias/Traficos/getTotal?mode=${mode}`); + } + getTotalAnticiposPendientes() { + return http.get(`/Corresponsalias/Anticipos/getPendientesAutorizar`); + } + getTotalCuentasComplementariasPedientes() { + return http.get(`/Corresponsalias/CuentasComplementarias/GetPendientes`); + } +} +export default new Dashboard_Contabilidad_DataService(); \ No newline at end of file diff --git a/src/Services/Dashboard/Dashboard.Corresponsales.Services.ts b/src/Services/Dashboard/Dashboard.Corresponsales.Services.ts new file mode 100644 index 0000000..41235da --- /dev/null +++ b/src/Services/Dashboard/Dashboard.Corresponsales.Services.ts @@ -0,0 +1,12 @@ +import http from "../common/http-common"; +import DashboardCorresponsales from "../../Interfaces/Dashboard/DashboardCorresponsales"; + +class Dashboard_Corresponsales_DataService { + getCorresponsales() { + return http.get(`/Dashboard/Corresponsales/Get`); + } + getTipoCambio(Fecha: string) { + return http.get(`/Dashboard/Corresponsales/GetTipoCambio?Fecha=${Fecha}`); + } +} +export default new Dashboard_Corresponsales_DataService(); \ No newline at end of file diff --git a/src/Services/Facturacion/Anexo/Anexo.Facturacion.Services.ts b/src/Services/Facturacion/Anexo/Anexo.Facturacion.Services.ts new file mode 100644 index 0000000..cc15dec --- /dev/null +++ b/src/Services/Facturacion/Anexo/Anexo.Facturacion.Services.ts @@ -0,0 +1,21 @@ +import http from '../../common/http-common' +import IAnexoFacturacionMission from '../../../Interfaces/Facturacion/Anexo/IAnexoFacturacionMission' +import DTOAnexoFacturacionMission from '../../../DTO/Facturacion/Anexo/DTOAnexoFacturacionMission' +import IAnexoFacturacionAlen from '../../../Interfaces/Facturacion/Anexo/IAnexoFacturacionAlen' +import DTOAnexoFacturacionAlen from '../../../DTO/Facturacion/Anexo/DTOAnexoFacturacionAlen' + +class AnexoFacturacionDataService { + GetMission(data: DTOAnexoFacturacionMission) { + return http.post( + `/AnexoFacturacion/GetRptAnexoFacturacionMission`, + data + ) + } + GetAlen(data: DTOAnexoFacturacionAlen) { + return http.post( + `/AnexoFacturacion/GetRptAnexoFacturacionAlen`, + data + ) + } +} +export default new AnexoFacturacionDataService() diff --git a/src/Services/Operaciones/Operaciones.Services.ts b/src/Services/Operaciones/Operaciones.Services.ts new file mode 100644 index 0000000..6a89488 --- /dev/null +++ b/src/Services/Operaciones/Operaciones.Services.ts @@ -0,0 +1,12 @@ +import http from '../common/http-common' +import IConsolidadosSinCerrar from '../../Interfaces/Facturacion/Anexo/IConsolidadosSinCerrar' +import DTOAnexoFacturacionMission from '../../DTO/Facturacion/Anexo/DTOAnexoFacturacionMission' + +class OperacionesDataService { + Get() { + return http.post( + `/AnexoFacturacion/GetRptConsolidadosSinCerrar` + ) + } +} +export default new OperacionesDataService() diff --git a/src/Services/Reportes/reportes.services.ts b/src/Services/Reportes/reportes.services.ts new file mode 100644 index 0000000..8b8894c --- /dev/null +++ b/src/Services/Reportes/reportes.services.ts @@ -0,0 +1,71 @@ +import http from "../common/http-common"; +import { IRptPedimentosPagados } from "../../Interfaces/Reportes/IRptPedimentosPagados"; +import { IRptPedimentosPagadosImpuestos } from "../../Interfaces/Reportes/IRptPedimentosPagadosImpuestos"; +import { IRptDetalleAnexo24 } from "../../Interfaces/Reportes/RptDetalleAnexo24"; +import { IRptOperacionesRemesa } from "../../Interfaces/Reportes/RptOperacionesRemesa"; +import IRptBattery from "../../Interfaces/Reportes/IRptBattery"; +import DTOReporte from "../../DTO/DTOReporte"; +import DTOAEPeriodo from "../../DTO/DTOAEPeriodo"; +import IRpArchivoElectronicoOficial from "../../Interfaces/Reportes/IRptArchivoElectronicoOficial"; +import IRptPedimentosConsolidados from "../../Interfaces/Reportes/IRptPedimentosConsolidados"; +import DTOCorresponsalTrafico from "../../DTO/Corresponsales/DTOCorresponsalTrafico"; +import DTORptCorresponsalesTraficos from "../../DTO/Corresponsales/DTORptCorresponsalesTraficos"; +import ICorresponsalTrafico from "../../Interfaces/Corresponsales/ICorresponsalTrafico"; +import IRptOperaciones from "../../Interfaces/Reportes/IRptOperaciones"; +import IRptOperacionesConsolidadas from "../../Interfaces/Reportes/IRptOperacionesConsolidadas"; +import IRptOperacionesDiarias from "../../Interfaces/Reportes/IRptOperacionesDiarias"; + +class reportsDataService { + getRptPedimentosPagados(data: DTOReporte) { + return http.post>("/reportes/RptPedimentosPagados", data); + } + getRptPedimentosPagadosImpuestos(data: DTOReporte) { + return http.post>("/reportes/RptPedimentosPagadosImpuestos", data); + } + getRptDetalleAnexo24(data: DTOReporte) { + return http.post>("/reportes/RptDetalleAnexo24", data); + } + getRptOperacionesRemesa() { + return http.get>("/reportes/RptOperacionesRemesa"); + } + getRptPedimentosConsolidados(data : DTOReporte) { + return http.post>(`/reportes/RptPedimentosConsolidados`, data); + } + getRptBattery(data: DTOReporte) { + return http.get>(`/Battery/getWarehouseReport?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}`); + } + getRptArchivoElectronicoOficial(data : DTOAEPeriodo) { + return http.get>(`/ArchivoElectronico/RptArchivoElectronicoOficial?Anio=${data.Anio}&Mes=${data.Mes}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}`); + } + getRptCorresponsalesTraficos(data: DTORptCorresponsalesTraficos) { + return http.get(`/reportes/RptCorresponsalesTraficos?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}&IdCorresponsal=${data.IdCorresponsal}&Proceso=${data.Proceso}&Modo=${data.Modo}`); + } + getRptOperaciones(data: DTOReporte) { + return http.get(`/reportes/RptOperaciones?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}`); + } + getRptOperacionesConsolidadadas(data: DTOReporte) { + return http.get(`/reportes/RptOperacionesConsolidadas?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}`); + } + GenerateRptControlDocumentosClientes() { + return http.get(`/reportes/RptGenerateControlDocumentosClientes`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + GetRptControlDocumentosClientes() { + return http.get(`/reportes/RptGetCtrlDocumentosClientes`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + getRptOperacionesDiarias(data: DTOReporte) { + return http.get(`/reportes/RptOperacionesDiarias?Inicio=${data.Inicio}&Fin=${data.Fin}&TipoOperacion=${data.TipoOperacion}&NoCliente=${data.NoCliente}`); + } + } + export default new reportsDataService(); \ No newline at end of file diff --git a/src/Services/Utils/FileManager.Services.ts b/src/Services/Utils/FileManager.Services.ts new file mode 100644 index 0000000..f857d66 --- /dev/null +++ b/src/Services/Utils/FileManager.Services.ts @@ -0,0 +1,27 @@ +import http from "../common/http-common"; +import IRespuesta from "../../Interfaces/IRespuesta"; +import IFileManager from "../../Interfaces/Utils/IFileManager"; + +class FileManagerDataService { + + getFileContent(id: number, Proceso: number) { + return http.get(`/FileManager/getFile?id=${id}&proceso=${Proceso}`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } + getFileInfoFromProcess(id: number, proc: number) { + return http.get(`/FileManager/GetFileInfoByProcess?id=${id}&Proceso=${proc}`); + } + getFileInfoById(id: number) { + return http.get(`/FileManager/GetFileInfoById?id=${id}`); + } + DeleteFile(id: number) { + return http.delete(`/FileManager/DeleteById/${id}`); + } + +} +export default new FileManagerDataService(); \ No newline at end of file diff --git a/src/Services/Utils/MFileManager.Service.ts b/src/Services/Utils/MFileManager.Service.ts new file mode 100644 index 0000000..9bb0038 --- /dev/null +++ b/src/Services/Utils/MFileManager.Service.ts @@ -0,0 +1,26 @@ +import http from "../common/http-common"; +import IRespuesta from "../../Interfaces/IRespuesta"; +import IFileManager from "../../Interfaces/Utils/IFileManager"; + +class MFileManagerDataService { + + Append(formData: any, IDTrafico: number, Proceso: number, Usuario: number) { + return http.post(`/Utils/MFileManager/Append?Tags=${IDTrafico}&Proceso=${Proceso}&Usuario=${Usuario}`, formData) + } + DeleteFile(id: number) { + return http.delete(`/FileManager/DeleteById/${id}`); + } + Get(IDTrafico: number, Proceso: number) { + return http.get(`/Utils/MFileManager/GetFilesFromLog?Tags=${IDTrafico}&Proceso=${Proceso}`) + } + getFileContentById(id: number, Proceso: number) { + return http.get(`/Utils/MFileManager/GetFileContentById?id=${id}&Proceso=${Proceso}`, {responseType: 'arraybuffer'}) + .then(function (response) { + return response + }) + .catch(function (error) { + console.log(error) + }) + } +} +export default new MFileManagerDataService(); \ No newline at end of file diff --git a/src/Services/Utils/Notificaciones/Notificaciones.Services.ts b/src/Services/Utils/Notificaciones/Notificaciones.Services.ts new file mode 100644 index 0000000..aad245a --- /dev/null +++ b/src/Services/Utils/Notificaciones/Notificaciones.Services.ts @@ -0,0 +1,43 @@ +import http from "../../common/http-common"; +import INotificacionesContactos from "../../../Interfaces/Utils/INotificacionesContactos"; +import INotificacionesGrupos from "../../../Interfaces/Utils/INotificacionesGrupos"; +import INotificacionesContactosGrupos from "../../../Interfaces/Utils/INotificacionesContactosGrupos"; +import DTONotificacionesContactoGrupo from "../../../DTO/Utils/Notificaciones/DTONotificacionesContactoGrupo"; +import INotificacionesConceptos from "../../../Interfaces/Utils/INotificacionesConceptos"; +import { consumers } from "stream"; +import INotificacionesLog from "../../../Interfaces/Utils/INotificacionesLog"; + +class CorresponsalesDataService { + SendWhattsapp(IdUsuario: number, Concepto: string, IdGrupo: number) { + return http.get(`/Notificaciones/SendWhattsapp?IdUsuario=${IdUsuario}&Concepto=${Concepto}&IdGrupo=${IdGrupo}`); + } + Log$Get() { + return http.get(`/Notificaciones/Log/Get`); + } + ContactosAppend(data: INotificacionesContactos) { + return http.post(`/Notificaciones/Contacto/Append`, data); + } + ContactosGet() { + return http.get(`/Notificaciones/Contacto/Get`); + } + GruposAppend(data: INotificacionesGrupos) { + return http.post(`/Notificaciones/Grupos/Append`, data); + } + GruposGet() { + return http.get(`/Notificaciones/Grupos/Get`); + } + AsignacionContactosGrupos(data: DTONotificacionesContactoGrupo) { + return http.post(`/Notificaciones/Asignacion/Contactos/Grupos`, data); + } + ContactosdelGrupoGet(IdGrupo: number) { + return http.get(`/Notificaciones/ContactosdelGrupo/Get?idGrupo=${IdGrupo}`); + } + Conceptos$Get() { + return http.get(`/Notificaciones/Catalogo/Conceptos/Get`); + } + Conceptos$Append(data: INotificacionesConceptos) { + return http.post(`/Notificaciones/Catalogo/Conceptos/Append`, data); + } + +} +export default new CorresponsalesDataService(); \ No newline at end of file diff --git a/src/Services/common/http-common.ts b/src/Services/common/http-common.ts new file mode 100644 index 0000000..4679c04 --- /dev/null +++ b/src/Services/common/http-common.ts @@ -0,0 +1,77 @@ +import axios from 'axios' +import { TargetURL } from '../../Constants/TargetURL' +const token = localStorage.getItem('token') +const URL = new TargetURL() + +const instance = axios.create({ + baseURL: URL.get(), + headers: { + 'Content-type': 'application/json', + Authorization: token ? `Bearer ${token}` : '', + }, +}) + +instance.interceptors.response.use( + function (response) { + /* if (process.env.NODE_ENV === 'development') + console.log('log: ' + JSON.stringify(response)) */ + return response + }, + function (error) { + if ( + window.location.href.indexOf('login') > 0 || + window.location.href.indexOf('reset') > 0 + ) { + return Promise.reject(error) + } else if (401 === error.response.status) { + /* localStorage.clear();*/ + window.location.href = '/#/login' + } else if ( + 409 === error.response.status && + error.response.data.respuesta.indexOf('factura') + ) { + //console.log(JSON.stringify(error.response)) + if (error.response.data.registro.factura) { + error.response.data.registro.id === -1 + ? alert( + error.response.data.respuesta + + ' en la factura: ' + + error.response.data.registro.factura + + ' en el trafico: CG' + + error.response.data.registro.idTrafico + ) + : alert(error.response.data.respuesta + ' en TRADE') + } + } else { + return Promise.reject(error) + } + } +) + +/* instance.interceptors.request.use( + function (config) { + if (process.env.NODE_ENV === 'development') + console.log('log: ' + JSON.stringify(config)) + return config + }, + function (error) { + return Promise.reject(error) + } +) */ + +instance.interceptors.request.use( + (config) => { + let token = window.localStorage.getItem('token') + if (token) { + config.headers!!.Authorization = `Bearer ${token}` + } else { + config.headers!!.Authorization = `` + } + return config + }, + (error) => { + return Promise.reject(error) + } +) + +export default instance diff --git a/src/css/autoComplete.css b/src/css/autoComplete.css new file mode 100644 index 0000000..3849e27 --- /dev/null +++ b/src/css/autoComplete.css @@ -0,0 +1,54 @@ +.mainDiv { + /* padding-top: 50px; */ + font-family: sans-serif; + text-align: left; + /*width: 300px;*/ + /*margin: 0 auto;*/ +} + +.typeahead-form-group { + position: relative; + z-index: 1000; +} + +.typeahead-form-group1 { + position: relative; + z-index: 999; +} + +.typeahead-form-group2 { + position: relative; + z-index: 998; +} + +.typeahead-form-group3 { + position: relative; + z-index: 998; +} + +.typeahead-list-group4 { + position: absolute; + width: 100%; + top: 38px; + left: 0; +} + +.typeahead-list-group-item { + /* padding: 0.3rem 1.3rem; */ + background-color: rgb(228, 243, 240); +} + +.typeahead-list-group-item:hover { + cursor: pointer; + background: #2d4ddc; + color: #fff; +} + +.textBoxViaje { + z-index: 100; +} + +.textField { + margin-right: 0px !important; + padding-right: 0px; +} \ No newline at end of file diff --git a/src/css/development-home.css b/src/css/development-home.css new file mode 100644 index 0000000..666aac8 --- /dev/null +++ b/src/css/development-home.css @@ -0,0 +1,60 @@ +/*** FONDO PARA SITIO WEB ***/ +body { + background-image: linear-gradient(to right, #F7FFF1, #EFFFE2, #EFFFE2, white, white, white, #EFFFE2, #EFFFE2, #F7FFF1); +} + +/*** COLOR DE TEXTO PARA ETIQUETAS EN FORMS, ENCABEZADOS DE FORMS Y BOTON DE ACCORDIONS ***/ +#login-box h3, .navbar-nav a.dropdown-item:hover, .form-group .label, .form-group label { + color: #0a58ca !important; +} + +/*** DISEÑO PARA FORM DEL LOGIN ***/ +#login-box { + margin: 0 auto; + border-radius: 15px !important; + border: none; +} + +/*** ACOMODO SUPERIOR PARA LOS DIV.CONTAINER'S EN SITIO WEB ***/ +div.App > div.container { + margin-top: 30px !important; +} + +/*** ESTILOS PARA LA BARRA DEL MENU ***/ +.custom-theme { + background-image: linear-gradient(to bottom, #4a9d06,#5cb90f,#7fda35) !important; + color: white; +} +.navbar-brand, .navbar-nav .dropdown-toggle.nav-link, .navbar-collapse .btn-outline-success, #basic-navbar-nav a.nav-link, .navbar-toggler-icon { + color: white; +} + +/* .dropdown-toggle2 { + color: black !important; + background-color: #c8ced3 !important; +} */ +#secondlevel { + color: black !important; + padding: 0.25rem 1rem; + /* background-color: #c8ced3 !important; */ +} + +/* #secondlevel a:link { color: #000000 !important; } +#secondlevel a:visited { color: #000000 !important; } +#secondlevel a:hover { color: #000000 !important; } +#secondlevel a:active { color: #000000 !important; } */ + +/*** ESTILO DE LETRA PARA ELEMENTOS DE ACCORDION ***/ +.accordion-button.collapsed { + background-image: linear-gradient(to bottom, #c7c7c7, #c7c7c7, #e9e9e9, #f3f3f3) !important; +} +.accordion-button:not(.collapsed) { + background-image: linear-gradient(to bottom, #8fcafd, #bedaff, #e5eefb); + font-size: 13pt; +} + +@media all and (min-width: 480px) { + #login-box { + border: 3px outset #ddd !important; + } +} \ No newline at end of file diff --git a/src/css/generalStyles.css b/src/css/generalStyles.css new file mode 100644 index 0000000..720ebbf --- /dev/null +++ b/src/css/generalStyles.css @@ -0,0 +1,29 @@ +.tripHeader { + font-size: large; + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; +} + +.tripField { + font-size:15px; + font-weight: normal; + font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif +} + +.rowSplit { + padding-top: '5px' +} + +.divTipoCatalogo { + height: 200px; + overflow-y: scroll; +} + +.DetailHeader { + width: 50px; + background-color: #CAF9F7; + color:blue; +} + +.DetailData { + font-weight: normal; +} diff --git a/src/css/generic01.css b/src/css/generic01.css new file mode 100644 index 0000000..dd7f1e7 --- /dev/null +++ b/src/css/generic01.css @@ -0,0 +1,296 @@ +@media print { + .areaImprimible { + visibility: hidden + } + } + + .labelSize13px { + font-size: 13px; + padding: 5px 5px 5px 5px; + } + + .modal-50w { + width: 50%; + max-width: none !important; + } + + .modal-70w { + width: 70%; + max-width: none !important; + } + + .modal-90w { + width: 90%; + /* max-height: 90% !important; */ + max-height: 'calc(100vh - 50px)' !important; + } + + .modal-innerDiv { + /* height: 95%; */ + max-height: 'calc(100vh - 50px)' !important; + } + + .react-bootstrap-table { + height: 250px !important; + overflow-y: scroll; + } + + .dropzone { + background-color: #D2F9FC; + border: 1px dashed hsl(234, 96%, 33%); + padding: 8% 5% 10% 10%; + border-radius: 10px; + width: 450px; + height: 100px; + } + + .dropzoneFileManager { + background-color: #D2F9FC; + border: 1px dashed hsl(234, 96%, 33%); + /* padding: 3% 5% 5% 10%; + */ border-radius: 10px; + width: 750px; + /* height: 150px; */ + padding-top: 1em; + text-align: center; + } + + .moneyField { background-color: #F5FFED; } + + th, + td { + text-align: left; + } + + tr:nth-child(odd) { background-color: #f5f5f5; } + + .hideDiv { + visibility: 'hidden'; + height: '0px'; + width: '0px'; + } + + .hideRow { + height: 0px; + visibility: hidden; + } + + .showRow { + padding-top: 5px; + } + + .showDiv { + height: '100px'; + overflow: auto; + } + + .userModal { + width: 50vw; + height: 50vw; + max-width: 50vw; + max-height: 50vw; + overflow: scroll; + } + + .userModal2 { + width: 1000px; + height: 1000px; + overflow: scroll; + } + .readyColor { background-color: #D4D6D2; } + .pendingColor { background-color: #FFFFFF; } + + .hideEverything { + visibility: 'hidden'; + display: 'none'; + background-color: #000000; + } + + .showEverything { + visibility: 'visible' + } + + .customPadding { + padding-bottom: '5px'; + padding-top: '15px'; + } + + .heightZero { + height: 0px; + } + + .myFlexyTable { + width: 2000px; + overflow: scroll; + } + + .myFlexyTable tr { + height: 10px; + } + + .formatNumber { + font-size: 20; + } + + input.numbersOnly { + font-size: '15px'; + background-color: '#F5FFED'; + border: '1px solid #f00'; + } + + .parent { + position: relative; + margin-top: 0px; + z-index: 1; + } + + .child { + position: absolute; + margin-top: 30px; + width: 400px; + height: 150px; + background: rgb(245, 248, 248); + border-radius: 5px 5px 5px 5px; + padding: 2px; + border-style: outset; + overflow: auto; + } + + .cleanLi { + list-style-type: none; + padding-left: 10px; + font-family: Verdana, Geneva, Tahoma, sans-serif; + font-size: 12px; + cursor: pointer; + } + + /* li:hover { + color: rgb(195, 221, 238); + background-color: rgb(11, 138, 222); + font-style: italic; + font-family: cursive; + font-size: 15px; + padding-left: 0px; + } */ + + .sorroundImage { + border: 1px solid #CED4DA; + } + + .genericSelect { + padding-left: 3px; + font-size: 13px; + font-style: italic; + font-family: cursive; + } + + .bg-RECHAZOS_PARA_CORRESPONSAL { + background-color: #EB984E !important; + } + + .bg-CORRESPONSAL_NORMAL { + background-color: #ABEB4E !important; + } + + .bg-RECHAZOS_POR_CONTABILIDAD { + background-color: #ff0000 !important; + } + + .btn-uploadExcel { + color: #e9f0e6; + background-color: rgb(16, 101, 101); + border-color: #5bc2c2 + } + + .btn-uploadExcelCorresponsal { + color: #a3e488; + background-color: rgb(29, 151, 72); + border-color: #5bc2c2 + } + + .btn-uploadPDF { + color: #dedfc5; + background-color: rgb(199, 66, 66); + border-color: #f40707 + } + + .rdtPicker { + display: none; + position: absolute; + width: 250px; + padding: 4px; + margin-top: 1px; + z-index: 99999 !important; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + border: 1px solid #f9f9f9; + } + .react-datepicker-wrapper, + .react-datepicker__input-container, + .react-datepicker__input-container input { + display: block; + width: 100%; + } + .genericinput { + width: 125px; + } + + .divPerfiles { + height: 550px; + overflow: auto; + background-color: #000000; + } + + .tableAvisoCruce { + font-family: Verdana; + font-size: 14px; + border: 1px solid #000000; + background-color: #ffffff; + width: 1000px; + } + + .tableAvisoCruce, + td, + th { + border: 1px solid black; + height: 25px; + } + + .tableAvisoCruceHeader { + background-color: #756d6d; + font-weight: bold; + text-align: center; + } + .tableAvisoCrucefNormal { + font-weight: normal; + } + .tableAvisoCruceHyF { + text-align: center; + border: 1px solid white; + } + + .allScreen { + background-color: #FFFFFF; + height: 1330px; + } + + .tdAvisoCruceWordWrap { + word-break: break-all; + } + + .textareaCR { + white-space: pre-wrap; + word-wrap: break-word; + } + + .colAlignRight { + text-align: right; + } + + .blueCardBorder { + border-color: #1D6DC2; + } + + .dashboardComponentFont { + font-family: 'Kanit'; + } \ No newline at end of file diff --git a/src/css/heineken.css b/src/css/heineken.css new file mode 100644 index 0000000..286be33 --- /dev/null +++ b/src/css/heineken.css @@ -0,0 +1,101 @@ +body { + width: 100% !important; + font-family: Verdana, 'Flamenco', serif; +} + +h1 { + color: #fff; + font-weight: normal; + font-size: 1rem; + text-align: center; +} + +/*_________________ Accordion +________________________________________*/ +.accordion { + position: relative; + margin: 60px auto; + width: 250px; +} + +[id*="open-accordion"], +[id*="close-accordion"] { + background: #153f8e; + border-bottom: 1px solid #fff; + line-height: 40px; + height: 40px; + display: block; + margin: 0 auto; + position: relative; + width: 99%; +} + +[id*="close-accordion"] { + display: none; +} + +.accordion a { + color: #d8f0ef; + font-size: 1em; + font-weight: normal; + padding-left: 2%; + text-decoration: none; + text-shadow: none; + background-color: #153f8e; +} + +[id*="open-accordion"]:after, +[id*="close-accordion"]:after { +/* content: ""; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px solid rgba(255, 255, 255, 0.6);*/ + position: absolute; + right: 5px; + top: 15px; + z-index: 999; + transform: rotate(-90deg); + -webkit-transform: rotate(-90deg); +} + +.target-fix { + display: block; + top: 0; + left: 0; + position: fixed; +} + +.accordion-content { + color: #000000; + background: #153f8e; + height: 0; + margin: -1px auto 0; + /* padding: 0 2.5%; */ + position: relative; + overflow: hidden; + width: 90%; + transition: all 0.1s ease; + -webkit-transition: all 0.1s ease; + -moz-transition: all 0.1s ease; +} + +.accordion span:target~.accordion-content { + display: block; + height: auto; + padding-bottom: 25px; + padding-top: 10px; +} + +.accordion span:target~[id*="close-accordion"] { + display: block; +} + +.accordion span:target~[id*="open-accordion"] { + display: none; +} + +.accordion span:target~[id*="close-accordion"]:after { + border-top: 10px solid #333; + transform: rotate(0deg); + -webkit-transform: rotate(0deg); +} \ No newline at end of file diff --git a/src/css/heineken1.css b/src/css/heineken1.css new file mode 100644 index 0000000..496738f --- /dev/null +++ b/src/css/heineken1.css @@ -0,0 +1,91 @@ +* { + margin: 0; + padding: 0; + font-family: sans-serif; + font-size: 13px; + list-style: none; + text-decoration: none; +} + +body {} + +.middle { + position: absolute; + top: 50%; +/* left: 50%; */ + transform: translate(-50%, -50%); +} + +.menu { + width: 200px; + border-radius: 8px; + overflow: hidden; +} + +.item { + border-top: 1px solid #2980b9; + overflow: hidden; +} + +/* .btn { + display: block; + padding: 16px 20px; + background: #3498db; + color: white; + position: relative; +} */ + +/* .btn:before { + content: ""; + position: absolute; + width: 14px; + height: 14px; + background-color: #3498db; + left: 20px; + bottom: -7px; + transform: rotate(45deg); +} */ + +.btn i { + margin-right: 10px; +} + +.smenu { + background: #333; + overflow: hidden; + transition: max-height 0.3s; + max-height: 0; +} + +.smenu a { + display: block; + padding: 16px 26px; + color: #fff; + font-size: 13px; + /* margin: 4px 0; */ + position: relative; +} + +.smenu a:before { + content: ""; + position: absolute; + width: 4px; + height: 100%; + background: #3498db; + left: 0; + top: 0; + transition: 0.3s; + opacity: 0; +} + +.smenu a:hover:before { + opacity: 1; +} + +.item:target .smenu { + max-height: 15em; +} + +.card { + height: 100%; +} \ No newline at end of file diff --git a/src/css/home.css b/src/css/home.css new file mode 100644 index 0000000..1dcbefa --- /dev/null +++ b/src/css/home.css @@ -0,0 +1,60 @@ +/*** FONDO PARA SITIO WEB ***/ +body { + background-image: linear-gradient(to right, rgb(215,215,215), rgb(245,245,245), rgb(245,245,245), white, white, white, rgb(245,245,245), rgb(245,245,245), rgb(215,215,215)); +} + +/*** COLOR DE TEXTO PARA ETIQUETAS EN FORMS, ENCABEZADOS DE FORMS Y BOTON DE ACCORDIONS ***/ +#login-box h3, .navbar-nav a.dropdown-item:hover, .form-group .label, .form-group label { + color: #0a58ca !important; +} + +/*** DISEÑO PARA FORM DEL LOGIN ***/ +#login-box { + margin: 0 auto; + border-radius: 15px !important; + border: none; +} + +/*** ACOMODO SUPERIOR PARA LOS DIV.CONTAINER'S EN SITIO WEB ***/ +div.App > div.container { + margin-top: 30px !important; +} + +/*** ESTILOS PARA LA BARRA DEL MENU ***/ +.custom-theme { + background-image: linear-gradient(to bottom, rgb(0, 75, 187),rgb(0, 113, 219),rgb(64, 150, 248)) !important; + color: white; +} +.navbar-brand, .navbar-nav .dropdown-toggle.nav-link, .navbar-collapse .btn-outline-success, #basic-navbar-nav a.nav-link, .navbar-toggler-icon { + color: white; +} + +/* .dropdown-toggle2 { + color: black !important; + background-color: #c8ced3 !important; +} */ +#secondlevel { + color: black !important; + padding: 0.25rem 1rem; + /* background-color: #c8ced3 !important; */ +} + +/* #secondlevel a:link { color: #000000 !important; } +#secondlevel a:visited { color: #000000 !important; } +#secondlevel a:hover { color: #000000 !important; } +#secondlevel a:active { color: #000000 !important; } */ + +/*** ESTILO DE LETRA PARA ELEMENTOS DE ACCORDION ***/ +.accordion-button.collapsed { + background-image: linear-gradient(to bottom, #c7c7c7, #c7c7c7, #e9e9e9, #f3f3f3) !important; +} +.accordion-button:not(.collapsed) { + background-image: linear-gradient(to bottom, #8fcafd, #bedaff, #e5eefb); + font-size: 13pt; +} + +@media all and (min-width: 480px) { + #login-box { + border: 3px outset #ddd !important; + } +} \ No newline at end of file diff --git a/src/css/imageModal.css b/src/css/imageModal.css new file mode 100644 index 0000000..a994f72 --- /dev/null +++ b/src/css/imageModal.css @@ -0,0 +1,4 @@ +.image-modal { + width: 90vw; + max-width: 90vw; +} \ No newline at end of file diff --git a/src/css/login.css b/src/css/login.css new file mode 100644 index 0000000..7ce5317 --- /dev/null +++ b/src/css/login.css @@ -0,0 +1,44 @@ +@media all and (min-width: 480px) { + .Login { + padding: 60px 0; + } + + .Login form { + margin: 0 auto; + max-width: 320px; + } + + #login .container #login-row #login-column #login-box { + margin-top: 120px; + max-width: 320px; + /* height: 560px; */ + border: 1px solid #9c9c9c; + background-color: #eaeaea; + } + #login .container #login-row #login-column #login-box #login-form { + padding: 20px; + } + #login + .container + #login-row + #login-column + #login-box + #login-form + #register-link { + margin-top: -85px; + } + .table-wrapper { + max-height: 400px; + overflow: auto; + display: inline-block; + } + .table-earnings { + background: #f3f5f6; + } + .control-label { + text-align: left !important; /* !important added for priority in SO snippet. */ + } + .right-label { + text-align: right !important; /* !important added for priority in SO snippet. */ + } +} diff --git a/src/css/masterDetail.css b/src/css/masterDetail.css new file mode 100644 index 0000000..52c2fc3 --- /dev/null +++ b/src/css/masterDetail.css @@ -0,0 +1,203 @@ +.MDTable { + width: 1800px !important; + font-size: .7em !important; + font-family: Arial, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif; + background-color: #ffffff; +} + +.MDHeaderSticky { + position: 'sticky'; + top: '0' +} + +/* .MDTable th, */ +.MDTable td { + padding: 5px 0px 0px 0px; + border: none; + /* padding-top: 5px; */ + background-color: #ebecfa; +} + +.MDTable tr { + background-color: #dddcdc; +} + +.MDTable thead tr th { + /* text-shadow: 1px 1px 1px #ccc; */ + font-size: 1em; + background-color: #255dde; + color: #FFFFFF; + height: 25px; + text-align: center !important; +} + +.MDTable tbody tr td { + border-top: solid 1px #c8cacd; + /* border-bottom: solid 1px #092a84; */ + font-size: 1em !important; + background-color: #FFFFFF; + /* height: 25px; */ +} + +.MDTable tbody tr:nth-of-type(even) { + background-color: #c2bfbf; +} + +.MDTable tbody tr:nth-of-type(odd) { + background-color: #c0bdbd; +} + +.MDcontainer { + width: 100%; + height: 500px; + overflow: auto; +} + +.totalLabel { + color: #f4a005; + font-size: larger; + font-weight: bold; + background-color: #ffffff; + text-shadow: 1px 1px 1px rgb(246, 218, 6); + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif +} + +.masterSelected { + color: #000000; + border-top: solid 4px #8b73e2; + border-right: solid 1px #8b73e2; + border-left: solid 1px #8b73e2; + text-align: center !important; +} + +.normalSelected { + color: #000000; + border-top: none; + border-bottom: none; + text-align: center !important; +} + +.masterSelected2 { + color: #000000; + border-bottom: solid 3px #8b73e2; + border-right: solid 1px #8b73e2; + border-left: solid 1px #8b73e2; + text-align: center !important; +} + +.normalSelected2 { + color: #000000; + border-top: none; + border-bottom: none; + text-align: center !important; +} + +.zui-table { + border: solid 1px #DDEEEE; + border-collapse: collapse; + border-spacing: 5px; + font: normal 11px Arial, sans-serif; +} + +.zui-table thead tr th { + background-color: #DDEFEF; + border: solid 1px #DDEEEE; + color: #336B6B; + padding: 5px 5px 5px 15px; + text-align: center; + text-shadow: 1px 1px 1px #fff; +} + +.zui-table tbody td { + border: solid 1px #DDEEEE; + color: #333; + padding: 0px; + text-shadow: 1px 1px 1px #fff; + padding: 0px 0px 0px 15px; + border-bottom: none; + border-top: none; +} + +.zui-table-rounded { + border: none; +} + +.zui-table-rounded thead th { + background-color: #70c1cf; + border: none; + text-shadow: 1px 1px 1px #ccc; + color: #333; +} + +.zui-table-rounded thead th:first-child { + border-radius: 10px 0 0 0; +} + +.zui-table-rounded thead th:last-child { + border-radius: 0 10px 0 0; +} + +.zui-table-rounded tbody tr td { + border: none; + border-top: solid 1px #09840f; + background-color: #ffffff; + border-bottom: none; +} + +.zui-table-rounded tbody tr:last-child td:first-child { + border-radius: 0 0 0 10px; +} + +.zui-table-rounded tbody tr:last-child td:last-child { + border-radius: 0 0 10px 0; +} + +.parent { + position: relative; + margin-top: 0px; + z-index: 1; +} + +.child { + position: absolute; + margin-top: 30px; + width: 350px; + height: 150px; + background: rgb(245, 248, 248); + border-radius: 5px 5px 5px 5px; + padding: 2px; + border-style: outset; + overflow-y: scroll; +} + +.cleanLi { + list-style-type: none; + padding-left: 10px; + font-family: Verdana, Geneva, Tahoma, sans-serif; + font-size: 12px; + cursor: pointer; +} + +.divAutocomplete { + z-index: 1000; + position: relative; + height: 100px; + overflow: auto; + /* display: block; + + position: relative; */ + display: inline-block; +} +.modal-90w { + width: 90%; + max-width: none !important; + max-height: none !important; +} + +.childTable table thead tr:first-child{ + border-radius:10px 0 0 10px; + } + +.childTable table thead tr:last-child{ + border-radius:0 10px 10px 0; +} diff --git a/src/css/menu.css b/src/css/menu.css new file mode 100644 index 0000000..34ebe95 --- /dev/null +++ b/src/css/menu.css @@ -0,0 +1,48 @@ +* { + margin: 0; + padding: 0; + list-style: none; +} +ul li { + margin-left: 15px; + position: relative; + padding-left: 5px; +} +ul li::before { + content: " "; + position: absolute; + width: 1px; + background-color: #000; + top: 5px; + bottom: -12px; + left: -10px; +} +body > ul > li:first-child::before { + top: 12px; +} +ul li:not(:first-child):last-child::before { + display: none; +} +ul li:only-child::before { + display: list-item; + content: " "; + position: absolute; + width: 1px; + background-color: #000; + top: 5px; + bottom: 7px; + height: 7px; + left: -10px; +} +ul li::after { + content: " "; + position: absolute; + left: -10px; + width: 10px; + height: 1px; + background-color: #000; + top: 12px; +} +li:last-child::before { + display: none; +} diff --git a/src/css/menu2.css b/src/css/menu2.css new file mode 100644 index 0000000..bcf8d42 --- /dev/null +++ b/src/css/menu2.css @@ -0,0 +1,68 @@ +.tree li { + margin: 0px 0; + + list-style-type: none; + position: relative; + padding: 20px 5px 0px 5px; +} + +.tree li::before { + content: ""; + position: absolute; + top: 0; + width: 1px; + height: 100%; + right: auto; + left: -20px; + border-left: 1px solid #ccc; + bottom: 50px; +} +.tree li::after { + content: ""; + position: absolute; + top: 30px; + width: 25px; + height: 20px; + right: auto; + left: -20px; + border-top: 1px solid #ccc; +} +.tree li a { + display: inline-block; + border: 1px solid #ccc; + padding: 5px 10px; + text-decoration: none; + color: #666; + font-family: arial, verdana, tahoma; + font-size: 11px; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; +} + +/*Remove connectors before root*/ +.tree > ul > li::before, +.tree > ul > li::after { + border: 0; +} +/*Remove connectors after last child*/ +.tree li:last-child::before { + height: 30px; +} + +/*Time for some hover effects*/ +/*We will apply the hover effect the the lineage of the element also*/ +.tree li a:hover, +.tree li a:hover + ul li a { + background: #c8e4f8; + color: #000; + border: 1px solid #94a0b4; +} +/*Connector styles on hover*/ +.tree li a:hover + ul li::after, +.tree li a:hover + ul li::before, +.tree li a:hover + ul::before, +.tree li a:hover + ul ul::before { + border-color: #94a0b4; +} + diff --git a/src/css/printableArea.css b/src/css/printableArea.css new file mode 100644 index 0000000..8613e2a --- /dev/null +++ b/src/css/printableArea.css @@ -0,0 +1,24 @@ +.printableDiv { + background-color: #ffffff; + width: 100%; + height: calc(100vh); + border: none !important; + border-radius: 5px; + margin: auto; + text-align: center; +} + +table { + background-color: #ffffff; + border: none !important; + display: inline-table; +} + +.noneBorder { + border-top: 2 px solid #ffffff !important; + border-bottom: 2 px solid #ffffff !important; +} + + td:nth-child(odd) { + background-color: #ffffff; + } \ No newline at end of file diff --git a/src/css/production-home.css b/src/css/production-home.css new file mode 100644 index 0000000..1dcbefa --- /dev/null +++ b/src/css/production-home.css @@ -0,0 +1,60 @@ +/*** FONDO PARA SITIO WEB ***/ +body { + background-image: linear-gradient(to right, rgb(215,215,215), rgb(245,245,245), rgb(245,245,245), white, white, white, rgb(245,245,245), rgb(245,245,245), rgb(215,215,215)); +} + +/*** COLOR DE TEXTO PARA ETIQUETAS EN FORMS, ENCABEZADOS DE FORMS Y BOTON DE ACCORDIONS ***/ +#login-box h3, .navbar-nav a.dropdown-item:hover, .form-group .label, .form-group label { + color: #0a58ca !important; +} + +/*** DISEÑO PARA FORM DEL LOGIN ***/ +#login-box { + margin: 0 auto; + border-radius: 15px !important; + border: none; +} + +/*** ACOMODO SUPERIOR PARA LOS DIV.CONTAINER'S EN SITIO WEB ***/ +div.App > div.container { + margin-top: 30px !important; +} + +/*** ESTILOS PARA LA BARRA DEL MENU ***/ +.custom-theme { + background-image: linear-gradient(to bottom, rgb(0, 75, 187),rgb(0, 113, 219),rgb(64, 150, 248)) !important; + color: white; +} +.navbar-brand, .navbar-nav .dropdown-toggle.nav-link, .navbar-collapse .btn-outline-success, #basic-navbar-nav a.nav-link, .navbar-toggler-icon { + color: white; +} + +/* .dropdown-toggle2 { + color: black !important; + background-color: #c8ced3 !important; +} */ +#secondlevel { + color: black !important; + padding: 0.25rem 1rem; + /* background-color: #c8ced3 !important; */ +} + +/* #secondlevel a:link { color: #000000 !important; } +#secondlevel a:visited { color: #000000 !important; } +#secondlevel a:hover { color: #000000 !important; } +#secondlevel a:active { color: #000000 !important; } */ + +/*** ESTILO DE LETRA PARA ELEMENTOS DE ACCORDION ***/ +.accordion-button.collapsed { + background-image: linear-gradient(to bottom, #c7c7c7, #c7c7c7, #e9e9e9, #f3f3f3) !important; +} +.accordion-button:not(.collapsed) { + background-image: linear-gradient(to bottom, #8fcafd, #bedaff, #e5eefb); + font-size: 13pt; +} + +@media all and (min-width: 480px) { + #login-box { + border: 3px outset #ddd !important; + } +} \ No newline at end of file diff --git a/src/css/qa-home.css b/src/css/qa-home.css new file mode 100644 index 0000000..2312969 --- /dev/null +++ b/src/css/qa-home.css @@ -0,0 +1,60 @@ +/*** FONDO PARA SITIO WEB ***/ +body { + background-image: url("../images/QA.png"), linear-gradient(to right, #FFFEE2, #FFFED5, #FFFED5, white, white, white, #FFFED5, #FFFED5, #FFFEE2); +} + +/*** COLOR DE TEXTO PARA ETIQUETAS EN FORMS, ENCABEZADOS DE FORMS Y BOTON DE ACCORDIONS ***/ +#login-box h3, .navbar-nav a.dropdown-item:hover, .form-group .label, .form-group label { + color: #0a58ca !important; +} + +/*** DISEÑO PARA FORM DEL LOGIN ***/ +#login-box { + margin: 0 auto; + border-radius: 15px !important; + border: none; +} + +/*** ACOMODO SUPERIOR PARA LOS DIV.CONTAINER'S EN SITIO WEB ***/ +div.App > div.container { + margin-top: 30px !important; +} + +/*** ESTILOS PARA LA BARRA DEL MENU ***/ +.custom-theme { + background-image: linear-gradient(to bottom, #da6907,#cf7d34,#f0a35f) !important; + color: white; +} +.navbar-brand, .navbar-nav .dropdown-toggle.nav-link, .navbar-collapse .btn-outline-success, #basic-navbar-nav a.nav-link, .navbar-toggler-icon { + color: white; +} + +/* .dropdown-toggle2 { + color: black !important; + background-color: #c8ced3 !important; +} */ +#secondlevel { + color: black !important; + padding: 0.25rem 1rem; + /* background-color: #c8ced3 !important; */ +} + +/* #secondlevel a:link { color: #000000 !important; } +#secondlevel a:visited { color: #000000 !important; } +#secondlevel a:hover { color: #000000 !important; } +#secondlevel a:active { color: #000000 !important; } */ + +/*** ESTILO DE LETRA PARA ELEMENTOS DE ACCORDION ***/ +.accordion-button.collapsed { + background-image: linear-gradient(to bottom, #c7c7c7, #c7c7c7, #e9e9e9, #f3f3f3) !important; +} +.accordion-button:not(.collapsed) { + background-image: linear-gradient(to bottom, #8fcafd, #bedaff, #e5eefb); + font-size: 13pt; +} + +@media all and (min-width: 480px) { + #login-box { + border: 3px outset #ddd !important; + } +} \ No newline at end of file diff --git a/src/css/react-flexy-table.css b/src/css/react-flexy-table.css new file mode 100644 index 0000000..5151614 --- /dev/null +++ b/src/css/react-flexy-table.css @@ -0,0 +1,5 @@ +:root { + --rft-main-color: #2191DF; + --rft-button-color: #2191DF; + --rft-even-row-color: #f3f3f3; +} \ No newline at end of file diff --git a/src/css/register.css b/src/css/register.css new file mode 100644 index 0000000..420fd41 --- /dev/null +++ b/src/css/register.css @@ -0,0 +1,5 @@ +.divPerfiles { + display: block; + overflow: auto; + background-color: #000000; +} \ No newline at end of file diff --git a/src/css/zincinternacional.css b/src/css/zincinternacional.css new file mode 100644 index 0000000..bc31fcd --- /dev/null +++ b/src/css/zincinternacional.css @@ -0,0 +1,115 @@ +.MDTable { + width: 3500px; + font-size: 0.8em; + font-family: Verdana, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif; + background-color: #ffffff; + } + + .MDHeaderSticky { + position: 'sticky'; + top: '0' + } + + .MDTable th, + .MDTable td { + padding: 0px 0px 0px 0px; + border: none; + /* padding-top: 5px; */ + background-color: #ebecfa; + } + .MDTable tr { + background-color: #dddcdc; + } + + .MDTable thead tr th { + /* text-shadow: 1px 1px 1px #ccc; */ + font-size: 1.1em; + background-color: #255dde; + color: #FFFFFF; + height: 30px; + } + + .MDTable tbody tr td { + border-top: solid 1px #c8cacd; + /* border-bottom: solid 1px #092a84; */ + font-size: 1.2em; + background-color: #FFFFFF; + /* height: 25px; */ + } + + .MDTable tbody tr:nth-of-type(even) { + background-color: #c2bfbf; + } + + .MDTable tbody tr:nth-of-type(odd) { + background-color: #c0bdbd; + } + + .MDcontainer { + width: 100%; + height: 600px; + overflow: auto; + } + +.zui-table { + border: solid 1px #DDEEEE; + border-collapse: collapse; + border-spacing: 0; + font: normal 11px Arial, sans-serif; +} + +.zui-table thead tr th { + background-color: #DDEFEF; + border: solid 1px #DDEEEE; + color: #336B6B; + padding: 5px; + text-align: left; + text-shadow: 1px 1px 1px #fff; +} + +.zui-table tbody td { + border: dotted 1px #DDEEEE; + color: #333; + padding: 0px; + text-shadow: 1px 1px 1px #fff; + border-bottom: none; + border-top: none; +} + +.zui-table-rounded { + border: none; +} + +.zui-table-rounded thead th { + background-color: #CFAD70; + border: none; + text-shadow: 1px 1px 1px #ccc; + color: #333; +} + +.zui-table-rounded thead th:first-child { + border-radius: 10px 0 0 0; +} + +.zui-table-rounded thead th:last-child { + border-radius: 0 10px 0 0; +} + +.zui-table-rounded tbody tr td { + border: none; + border-top: dotted 1px #09840f; + background-color: #EED592; + border-bottom: none; +} + +.zui-table-rounded tbody tr:last-child td:first-child { + border-radius: 0 0 0 10px; +} + +.zui-table-rounded tbody tr:last-child td:last-child { + border-radius: 0 0 10px 0; +} + +.zui-table-min { + height: 0px; +} \ No newline at end of file diff --git a/src/images/AvisoCruceFooter.png b/src/images/AvisoCruceFooter.png new file mode 100644 index 0000000000000000000000000000000000000000..312997217ca01168bbf77d289cbb4d81102ad3e9 GIT binary patch literal 22328 zcmbTeWmsEH)bCx~Deevdg1Z;j;6aKNm*QTuxH}=Zdy!JKXmNLUiaQi5TI9|Byw`I+ zo)2fPi-aLzXYV~TYt~x7|4OumngSL&8Tz|-@352AvnQ)S4D+~J!yvkt|gz(h*mhVQb@8Ih?=gFNmA3g8U#|ZJ#aV_ICA9WcQ47TtWHTj zYH(I&_T;BBA2O4<&zAkpDOuHfD&Fo5W&XGITX97f40SY3zTP>xE4z z;<4Qu-dRytxa}O*U^7J}rU5E$zpw6e0s?){qYb~z3_>_y)`VEe2Kh-5({+8zl zfFje4eQnQIn|#PfLb!bl=({d`Pb$j)3eui!wBNU1blwd6xIg_pCN}o&d0u__`{cGa zoQxTkE9&L6Qolb$9e8#jdh|9SxY_b>RGb)R&=v62St>G7;&r+BqU%jOR(x^$YKVHX z$$sfDKk&Ee}EzP-F&p{~&QWsqeL6fL`4?bX)mmG0MBY1s@}A27^m}vLh;I@P(T6W*ByGNpb_*;B_FYXC~4_tZW zQzr{meK_9dO-mZs#;}3JK{l!t(566G;c>JMn#dO9Wn?53CmCiEFubmc__dS+q**1= zT?=iqTIK9~fZuFM9?CE)A4;U2D&|(~K3{9jF6qjbT6eO(!|a3~4mpNDB)^IQ=>GneAW{Dn*wM14ZVcN}bQw zV{v3Mw<+I$bXym5DD^4dJ5wh`32ddR(YR)i8ht_(Et8b%ZKcv!E6z8C-YTB61% z(nFspX3qJNfs14KS)-~eANzN=9e+dqeKgaum}!e1)K?tqa55MF>ZwIZABR6Ja(i8f zT`zbwWgyY=_K?tjl^ zZVIIhv6UdtKoL1G9Qz%fWVzd|y0$@mAMV%b17jpUK(&C#90G(|2ARx0~-T$U}{da)|?y>ZhOxo0$$b!Z_z7or_atUBm|1W4Bc zebI|*7fSgdHgGA_KY@o*LTIq>#3Y)6OXS z)I;gLe3JVs9iO3TZFY4gu1TKs6qwy~-&Yf6r1ggfZJ8k9IPN1w#%SM9Z>r#bX7qZo zk(AO$OMRu<5xa!FZYJNEY%DhU2jf~&pKpn%%Ix6;Q=#!GR;5hGeIzj<8W4a~cP)xmrHA6EJFfJ1m zlXPoQgQ)D1xY8ST^7Ygss-RC=L**L{t472eTu1qz?PVeAALxFvV*cGkK9vBmW?j5d z1EXLAIyzBAgJOlzC>MfT-Ux!NLp-VON0_zkVIH7XZ@h$bXmJqKNh{uQA*b&-7)bKh zY9T!07spv;+|1Ny<<6@tQS?gBfdrd-x1(?;diN+S1&)%P1VXF@vfoq6_7ueuvG+Fr zMTsXGh%AJOnlWbV6yN4`X3bk4hS*l1h+NtP@*??aXRpvt+b6H>w-$ko!duVw!p7=9dB z(Vs!#1$Yt&XfV;ytO6wv7=bnz#2l77pR#K{f>!zcu1SpzxO&o7LJ`zVP`-y>qxVGS z2y=^=(r4Iq1=P1XpPSl}bLyg@T)Ws-{3Ovy5BNd^tf-AiF0bcQXAff;mmF(V8aYzz zQy!6jS1ww$2X#jUQv}HrZMciR>k`Jcpykxx5L;w7Y>=IZv`v!ANX&8N7o>~MB{C+| zLP@F($tz+Zj!CzUM6c)~GxsvL^IrXKz6%0?R1E7RXEk|`CeUUn97hkSu|JO2Rjgyv zn0PN&v6Y6ie?28w#uYL13=9N7Xxz&8{_!c&X;Xi5#I{kYta$;GCqSeqnI(nGBPszR zP>oFyO3<%;JPnTeB+UwMvs)VKbLjhDBY*EVE)cyT&j0?AqLLmcfa=jlPR$dl0%D3? z2wqW9oR@5_-oY34j#a+~Adk{(DOU)#@@k&Vnp^upyWknVk0xA>x)HJa^fTODa-}$= zOkjuiy7)CC>F?@F;xjhr8@QZnUd@;bjfW0kwqIz|b&4O8CNuyqpw1j8I4xS}?$c#m$19GrJ)e5L^eQ}4-DV9u2=tSU4Aq3r*V)Wz7!0UTk7U^nhqUS=?b z!zMYR5iI|P8-?(yf~ZAlJxfcbraJTmvt;%`S18G6#~B$tgJGlkh^?;3(CLsnJiOOk zJ}c~FIVnDE?Ay+_Lz;g4!mSdX5{DhfihOkJ-Ef&&&;uj94~~o;zN{agqh*S}rP9?1 z$pf2XYOMb|v45lvcu4Le5Wvao;&;RE%;4x;!gJ~UG zXR#ddyHr|!?}(m=o7C5~XoEKgbW0AKvW~H@ObK-OUaC+Cd@wtz35E2u#gb6jK|fd= zN?f<1KG{Pzq?_xDBqAzrQ@FzqQZgkZempi{QyEi4nx0J(2W9R$h#3Yg6bW2OM$!Rv zXk|wWwGaX`7>0ZnYCero%ElD)sX-y@r#Zc)6lF&J-tq_EkK0NZG7#_M++O~bGW@B? z4Ee@Umvl8ZzXuy$8aku_qRX^gX)$ptC&X7&AdqPU)x(SZ8G>II5^Y<|WfqZhcJTwT z+07|XOA5%>+SpHWNW_b%)B(sw8>mQwoXpF-|1eK}wQS)HMDa+w%>0g=wwnavOM=vE zf73P#XRP?MTCv5|0F={(7pfZfKL_Ixe60#A+XJT8Q{T{WH-txnXQ@Vn1peOhGQ$i< z7oN0f<<$uLxhe*QC$nv$7BWicM>v$eI3`m}nUn7%!uE+KHFR3&OmM=ik4XyF2LRq@j+AQ6uTng*7 zQ2);Zomxn)$*7a>)LX*^GYlphf}yg}LO&I;;wn!~T?ryH>~^Y+Vw@1Y(ihWEr!Jrq7p};EVcMFd_R|c7dYFIT znAd)up-bUP{Xt?u%rU4x^3K0j)yYO6RM;{rh;{m=^WUH1a;)(oLZrcZlhMETbA?1N zyVP%{B_FU^{O27@21)o(7DBWa>qYETtImT(%6ysgqGEVSs^kIw*Guf0RqvN30^~6>Mwviju;w;a4QG;kV~h!38M2?WU6Rcd|e< zROi$jpm~fRssQ%qWC-)2G|l*+uwrlKDAI;j{rmAyX~uj;4M`0Om4t&aoiZ7gK1mR| zNy6>0?D;yt=Un-v*@RF=)Oi!OL2pE%X*}2Yjvp2%Dlue!b7E&PM*mb&a$}G?A3`!4 zm<2_&Y5Xc&X%xx3-aF;*`3pQ7pylvM`7$^x;~NFcy8`~`+8(z^6*tQ2vx>6?9x7=gx>3}mh2HR(fQq+Zi$=`4 z>%_Ty9Z)C36CO$$=lVetbW#?seR5&LB?wfCPvyY{+6L4#Sjh#?9ms(gIam|}O@b$Q z0!=geHN0|A&Tv=2Sqr{1Gs8b~bWU);=+AQ?j#2sOMCmxjviQUN1z;aS0-lM4>&UFy z{WLvJ!n_qDclYnyf|E|>b`DUuj$G9Q9U$K7aLWj#ifg&?rShU9#j7?$w#Y1bdKp_{ zIs9@W7CNq3?i*9z7s@6{;DubOUKpB z5&Z6e4G`|2k(IK`m>&wYMD{6^TuCS`7QRHJ9g0Rv!=b@!PIAIbfND40B&Sw4=h)5# z(q%CGp|j7f*9jchP7wW5+o;r{_(GuTZlIVp5DC9mK`6&1_wK!q&Qw)^NXTWGw6JID z%2#_Y5j%ovaI$r9OqejXrp_eyxUH>Cs;zK8ixYRGfO)OE;8ReO+j_t!_kvIDxr~eU zF3=A#82kNocL_HKi9)-P(cD?69CFqXD@c`F9yEW#?X7ir{+=SrHJY&1$81pj64Kbe##%g?u`L$bB2m021P859bI*HO+oE7E0mItf))YwMzuEi5CmMb8>O-AuOi_0$od8bq|uq3 zjoP7m6ovu&sUOi15PX6k{SDXXzc#v;xrj17EnR-ylVdB=QTT`MFP3n3%gn84tnuUEKB7Jm_XwAzN8j_@xY~Ti?6!_N%cP6*>A& z?-~E5LYQ$smze( z=HI?m5GOS9e(vTNLkTy;e*Yy-RY8l?q00k6&OOeirI$*LsVm z${#NHr6s7Vldu$I+>~pvcuYCF3g!wQP}nctE#%TtIQsP+%+0l(f)7d_!3plFgd#!- zE1w$R+(&gR@%%0XdDcCtgw+UmPP2?WsT7rJi=F^4JmhaXe=<;5qC$1ih5cqj!Y6I- zSQo8jT<6MM#th|m1ShryDkfQ$AV$=sOec@9nTfEb|5@13{jY&?e9AHsOTvfMYV5p4 z@T{Ji^^{&(-8#;#oUk%aLx0=ij!s3md;N?duGR+~L>)v9NWihP!_1$!=A=CatIg9#N8}4(b#T z=FCk9FfndCvY?He)->`($GtxCILoFY^I*JcI%WazJjs`1&QXhBs7rJJxRDukf(~)p zd%kmim}~AG>R#KHqnELzF*96R>kekc1V7hp!QFz9{3Shha*uO>aMA zTSwTCnt?=TsRw$j9U+TlNO9vcIzlxf-m~wI%^8XHqf+>KgP$?3)KZd}JiNwCsDy}h z)4H45kJAro^ivEKZi=f~J3y7yhpuzh71808GGfm|!nO4Hk#MrmotMGFwsm+{F0jOC}v*JbvkU zaeIz_3d-vIWWyviH5I58=d;vk4Mfbxy)3&=YV>-_6ZZ{5pj@58fOQB*W41o2f zFTkzyvSg3$buS&Qsh!Zb#x&2qJZ>EC$1<0wbuvU{A8v_xk7!6Q0d1T&@Gy~zXR_v{ zpJNjGRd-5EF(Du#3iui&6nGuTz}ZWpR^t=%{Oy~j0XJH8-ieteqG`~%yEHo>IOQ=| zvhfd16w-mFe;T`C+52ATd^-oQf{or0m!V4mWWasFcycEy0B1wIC&^oJ6wDd_aV7C6xz9rNMuqS=cXGnfFa`;p=KSkh&=-CgL?54u6M% z8Id~OM%W8cv+kpH9t5_);-5*{#&B(lmsB@a^EgYz!s=3nlD5L|Aix4WpsvT!4WVR| z4dz1cqO3LYb>dO;^cSf`!9^xze;}Gw0I@ofRt<=aFXmxVNEY`k>uuEY|KaJ9O*Jqw zE2jc-JRggo(Qrf?umhxe8?>y|QXnk3NBsgx>=4idPx&35hM9RoN)xpYAjc;ma51Y# zy&N|*w_liixme(;<9jq}_Kc*U1ZA^bWGJX?WfH`e8-yX_1ABe8|EB!zp9u zSel$C@_^zv$a~p#^~q|0p{zFm;mUz7Ti-sr3@iFLPn!5f=Gl}u0JJsF*|DdBsXQgA zRz|6ygHL2#t@I#;Mzs_RZ-F)5+0Fc-Y@C_&K32k=hzJGU{4t8T*6J(rzNqA1UlR@M z*bd&V@&LDut?KW|SoK4gb^2_h$SWzf?(uR5DuM_W-}86)Yf|C-JT#~+5`!NJgcIjI zZt3obYjycNEp!&)jlXY9vLK#1i=di+=nrRpPiGk9ATs~EPo6wc>F478sVQD=Q@Y~9 zH&VQQ_J-wRjaB-5#kPkq1eD`w#f(rqSPI8Q$!6`4PI*bU(8C~xhJ5wMr*Sk>i+mmlv(JvIwpo@*%ljEDiB4}ovQ#a){tf^oCEOD?sm($XO7Lv z4Chw*yJFf>7Z6c8nv8%T$RjpfG3dRq6WGpyu|Fr2!aL>p-J;td&a$tY%f@WB*nt!lw^DSnuB=l zg`th9r}~1@*y9M*i*hMT(sgo>LvdZ0_&L%SyRIBe?lmzs&Va>9&(aR!%MR64JB^^J zXwi7Z9ReO=7wt*xG(-52Sa9ZsW~Imkt^fXK63KSY*x&VyBfE4CN&p3c5P4;VXR5o? z{j^u|VXImxnZfffJ@Y$6+b-S}3z%C|B93sSkD0u}@mP0;=0opM)3P!rStM6?>Dtxy z`FuWn?V)xVa;9k z|8xS0pQm4z`fe7eRX;!E{{LqOyYy}6VE4nxUyldb|B*@Y=c}IAdn0A^hq!{Wpx5QENUJbHodsJe9I!C<`QZw7DZYpt;tyL07bvAuA5FgA z4y0~&`W?@f&QU)7`}41Hy;I^w5Hln{@bxi8U7XZEoP2&W$Q0G`xO>*Rq3BfXIz^|9 z%zt5V$s};%I@l5a>c=0>A0BfigUR#?%Nl`W1s^)^fBU`cl0x75hUKWe0#RFd?_Thk z)b;{@a|h|*ccJ3{t-GJ9d3G|4M^GL&>U_Oi`lFn^LS*s$cfN)xV0B8fj!Em-VQVY< zQ+#UXEnaWd1rvfOi^;4t+Rs)ih(Z8QK-v$)xk5I|z-yT^G0ziiZnlo=G<|Xx7(5e$ z-{6X@LWv;c9KbY;GD9-BHsQZ&tqy-r@tNxG^Gv|Q<+fP(4h6ADZG&1E9OBY4CST}? zaJfG1rBDd0ayUDVOOr z-OOS|jAKr0+;(Jh74w|C*xG=NI}oCYvcYGq*mm{ST_<3!B?3#%k?g@wZOLDa^9@&s z_}DM!l4{r9q`X=x2gRhZ3WUD;M}jvaC2a;hi0j8MYc1%#8>ve6)9`CW}Ra#lppr7D9ItlEJy30 zIZa_C1in;KPyd@c8c_>-N@(5BzPM=fft!2O#($?jX4WK(2MU5bz$H} z`K=7byc18>#`J^5kPbgd`q)WB9IQ;zlE%vRxtpKI*Er7V{6mAWf9975-8FDoQn|{M zlze7~;m(OH{#&XuyZzDB#1D7NKd}veI`~|}#2A6EK35n^o8G(eJ(~+S-#uV398A{a zaSRT)$Znf- z)lQ3{1bsIi$^JE`cJ`Y?PHKnW9V<KqAC=3mciWBd{wQf>yuoRsP0*(E;sZ{<0+o-f-w97f3^{NAbHU7P-1_Fr z0x-(#=VLDh=lr26)}LA48!qpcr(5Z?;*fMIm?%eVUogUPqmA(XK~`j&{L2cBv%O81 zxQaB3@kE$)J1i!5XYZVafqlKf@FpZ zH6Pkuwo2T+{%8vEyZ9xDa6bH{dZ(0h;e(D52{3z>mL#x>x8ruvP|^6`Xxmz|^T)4l z>ux+=u8JZ-K2X!rIodjyd3yk9n1|w769~psV~7V{4G_mxv~iCoNzKCb>Y-NIbF3uz z2=z1Y=LQ|_QX}kg!~-nHO$&P~^Qw)1iO2}C%*(yHG3rmUROx;<`020`q$arGk%Gp% z_(v%6<$wY;8LnFVVT}r@p0HiR$^b>J`KbwXT8==bqq%uz zo+}l)x-nHa&~XjNnR|HFXLEiKDb;yk&nsn`o3i5{ljL%DbX|;wII*dqqf{t{R54*g zp=`s)PAsn~SB*)(c7vophJ1EYN0Q4*m$x7+O*aW>Eo;W;ztdLF^D5-X`~usGHbUM$ z{%ZYf$}$QB$uI1ok^Y@>A&wa1T(GWYTq!mu;8{~1jyn5&# zFwvmsOR&trrsMfZ>q3Rrn01`R`k%}K>ASA;w{S&{q|DssP4amu;2r9xtDZE~()XKg z*o!OHN9VN~RQN(TLX-q+mK^l)WKmp^7$?5kU)U4eA`PbtekS2p*Kqrs_eyOsO=gEF z)p+6y$yvLc9FO?z&o_u_d+D97Pkep+Cw|KoBWzl^H}K6InNdi~0cU#-@2H?0b94}+ z;wZ-#LwD(XQuJbPO1hGPZTPcJvc#t<0r+65r|g)`#&Wd-j7m()(7Qcginl45%mMKY zC*X=cRc!(JV0(>vljMc(EzyxO9aGB^yR&aPvRJejNtX4Y}c28EF%vQIMN%tXF; zEfq6Q%+=TkjIE{&Hf8QuxA5h;6KNW^Pm5|GyEEsu$70kKQ|Vl($AlmAAPUbSp|;T; zBh!L~SaVa7!aj06E2-6#|S- z(AMmsZ+(}$JQ80|FkysYg(kwGB(Wfj4y;9LxE0K$jsuIrggSTjUi(Hv=-O<}2aOd^ zI7r!YpXBEL^t&4H6C2eXIkz2^V@pse6N{XTYz}Mhn)W3( z!Pm1Ga(hLQHM8=*?AVr&%A|+Vf{}Cu(Mv~heE5D1D)ty<{h5TgofJGR@#gy-9Lp%^ zI6E`(I`jI=S3%e)TGqk!OEb4lvV^J}s%+!;V|qx>fiZC^JW!|O_T*|`0}ebt!I{Oy ziU90Qd8%TXt@xZ3<9i=r*KHrVuZ8)?GmKXSs22Nr;sVlO2b?SOwR5ERka$SHUJqQr z4;>mKOhW`J`6CHebT71t=$V}7i)gpta#yBdNZKd8Ay=DeAEPNICJT8G78>X=RPlmu`lhg(1Q#J*JD@10WWR7wb9F8v9$p)sFEmIr0943E58E5rLz(;@uty0A39Un|| zKv^K8+ruoKD&5o+bpY61lQ)nkWey*+vE3MmrsxpOrRTaN#crK_&g>p~BHS$rl8!R> zWQw8SostDc*B@EUxaG`e$bsyjw3xdxL}?zBib_e!Fl7Z_SHCXjAXH8Pj*M8GzxQN6 z=n$@btB4K|9$K>X?I8w#)>xyYM9HDyXgJ8w!^M0*-aIH6idf3@0R@cr0Jl$4RzJUv z@mIT-tDiPG%|0DsSK6eahn+|UOOjd`6XJ-*_I784!2W}ZNZ0aCODIDdY)TYY%Fw^9 z=?NoIAxDu|EwZ3ckggP$3X$m8?fV*-?0{6y0JqOST=|wW6@5Hz4c<;v z&irJg6rA{e&M{5`c4O2&Q*jx>vhUcMq{|eP*2JYC0urn0T1G4YG)Bq@gvh?`77xaY zVwlG&ji1mgLO+%t*$2?d*(PNpnG33d;6J)o*pWK+XdkAtR5na2esh59?F;^Vfc1~e z&y)=S_o+3!0;ba|We@?<%%)h@NgWH+xzq&%XfZzyJ1Lpj){QMX1bzY9j!Dz-!NOZ1 z6YSOGQQjm-LA^e62Y8B*1Io%T6cA7&epMCpR|6;XaKh;2#7-HW;3z<6k3i)tk}C@Y3P!|*MDXp`?BL*+kzh=t0k z;+OqI7Yksf0M?rW4Jw1Wi(~gR;km470Hu*`6y7peAHiOrLaF4JfA`tKEBo5+KP#L> z?3diDQ|w@4Tx$ecF2?Zdr?skS-rZA@c~EG}@-JErw*~VouC~OP*TVeho8fUekel2n z{^4>|g#%Zjoub3w(kL5Ffqx86XmQemM7SjCa<{VoQHM<&O<5E%2`ot;0iLz3?qN}$ zXEKt4iHy(zZtvQyLTLv~!~1$F!YfFG>Uu%i1T6XLuye4Y(c6&s`@APPFwpkRDpAjD z#y8Od7#$pgYSEuQ)N!)+sVLCMj1ABuU>gF{7?0Acf4X1vV74lam`*HZa6wWoiF;yo z@gyn<+R4K{78~RPR=|sB#HY^NR?z0Av+4KJuJA-a-_ugu@#jkV?afGnK*q<>RfR;q zu}c`lDTLknYd#q&QlCjHBj`~5Ru&{tR?^T@5oh!d&dFs4Ebti<3Q=w03nZFg_Z*)h z?ym*pZ%8oy$@kn6iA2#l4b|uuUWX|{^p09U`n6tEwL>1+Q4;c?5ZSF@hyqgF`*X_Y z1U}abY9q9o+M#cV$Xg6dG#U0MIPN<&-FNQKV_v$1CatwNhc^vt!<>a?KjmG~e%aqd*oa(B~#a|z0$|Q3+43? zG^+i+SOZWDPj<3IWJT^yG>g|(H(a8S{%o|TA_;`cc!OriTL>iyQuWCyY9jrRvL_}l z3*_UCtB789nEPjI_?hiVGMyPzOn z#1s8HKph$RGmD&#%#!sNfxYQ{vRBa7#ttcyd=+ge$dX+f255R@jwC^0Lz65>s7uLs z8te4Q7QAZZ{)bKA&Xq~YGi=lUmf#A@4-CKmywm+a=b;!vfhd4`3Phzy)2$PPjPjl- zOc4AP<`Awx?N4`@4aRh|VA>d}4VX$osgf*YM`(ND_YNT|0jiDCq^V`RzX!VvL^xE5 zq@bl8X0opxza9`KL3o(Rx8a=l0%esFi1-2OnG9ceST-1S_2`US#`HzgAl5B6lcN8= z*60OGAE=vKG<|X@7FTJai?H0%1FhC;(ca40PMdgW{}%hstqO`^qbmBf{|CnAeisn3 zl8DtoRZ<{nX;Q1XIH7FAu|rMDN~vla7dc<`*J$O%9~GzImJ_YfOSe`-c4eAN`!vE3l^44vP5fPzmIpLEq%AIlJ|ZY9DDEyFQu@Q6NOF5mSUoBH?K9+BcsFef)A7qfungq$ z^~;O`b?Qc8B<(Y4a>b`(iuw47 zoO{kiJd+WS9OmO)BRhPLC)7NcB|trfMmLkfn*b29u>D$+mxh?EqX_X0j~8)i$($%l z4Cmk!?rl<3>Vy;)suCbojdP+bxYT7c0%&J9jV<+!KD@i$lRUeyF-6OB)gG}Y|Csja zvjY3l^)Fp1wq*E^sSs&X+Js(owFY}Bl)D@M58GJ1FeUebFest-U9&eMLsY3N8$e5a zM0Eg(^IQU*Q z+ZKBI>CndFXgY*BMDCHJa{F+hV*yQ2{Yo-@s}RL@a?hGI#h)}EwV}Th%1Y0~ve=p5 zE)dwrl$AW+^|^9l=!a+!6}Z;P^PZ9A*9SA~$QUyIp zczk79n3e`OP_%&l7gvAJ^+Ot@gPo)CfUlHUWmXvFO?H{h7c~c(ta_9TsAhINg;w_* zo@B64KDEl9`7fplqU%PBmX9c;uvW&D%)9ri6yKkLAyug!a64cvT1;mKj_$gUff2kk zWno7eKs;fm>!LaoA{{hdpZZbGduKyr>>VfL~JKm1;7n~BLT2NGWtgl2;i#CkugDK zZ4r)o!icov!!L{NR%~BYJMEVFU7j8Aoy3AM&(|m4(oj67zHJh@C@C1``|XSyr0tDU z!uYc+3p_%woIYZ-Tcj-=($9)OJxa`y5=5^UtjhSWN_uAlZ=Drmj84iQcK5FV2)W}& zXG2NUPyLdTI$Ssr3;6`YtF(8cDLPNLZSP5@oiyO>FiRK~cVbR{;8IT5p2-4jX~dNj z2bdMY&)2dLcjI9WsxmYi34`eGAiFWeRIzwoAyluV+~;gexL>nuz;6Q)egX0kCLvNw z5#x^zt%DK>L9(VbA_CzR6!Wc5tAFyVhU`L)h`vTXGozlwxV!cW&!Dq00bya~ovhoZ=!{rKNqh z)P6nok;Q1290l;HE}eKgRQsWqkCe6(-L)DvgHI0>1%xe1-Zs28H~zJaApzB=U0S|j zm005S&v~^uD;^mta2;;N@oCWVxOb_bB=hU!7{NSn%l9_E{ciXyQpSTqvPWpZv?cx_ z1G|KEVj+caE&T0$sL$UarDPU{{A{SU49Qe}VY8w>t~(FApB+qb@kpsA##>_nC$I0d z3P-Vwtvp^FMBp1ca0Z@D!U6t`h3>`shb6<4EE7Dr%87qZrUXnEdc`%X3bep{sXzOY z`|!a&@+hg_^S>hht}bCoh%YU9)cn*+p1)%O9H}BprrzFor2^V|2?a?v32JMuQ5=es z>+z&Pwl4V*>nvvZfFo~073IIm2`&jgo=zb<5mPn+m^>q*S`gsl`812QB4x-YnY0K%(t#oxXmzv6!uX7}0qbgPsCXYcE^g^` z=}ml}KS)WAh~1$KrhPv239bbYphalv|+v`7|?~Uya;s36iW=s#kR<#G5D!(uD|u%_Ye^5 z+&QxuV2cgl{F~bL+m(|1Ya+HH=cVsX%^X3z16Fye#U2-0Q?Po#9YW{h;K@AR9l@9s zBu98Vziqs zRGd`d41vKYqN8dU{gZlXyx$G)n8Q!fZFy_cAkrficcMblNgy*a>i6RZHEfpB>l)cP zAuJW;@DmITr7}{3i__F|3;Hr3+rnH%+sb|30 z;Zw(+LC7)+TM{MHHQ zKnpY~vqx@;?QBO(Sa?fS@e{<=%`TxC8ThZ}lO~aO!ri?3`hvOicDi-h$v;mVG=Dry z;+!$7mr(4q6iqqQ9gbPcW63}$M0s$LZy}^5&n`Xq>nSFKu(GyILn^vn(2yJFO)*WY z^~LQFUXA{~<`W_h`#@r)BSj~ z7GyY^c@ze-q^^auUbH#mC<(HQq$8{d4`7S1Do0A- z_5i2aWjjhZZ_`wr3$j5@9{ScoWl@_4+Pd)s7j41D=h~9bD8uGjnMXT`L@$u1Mo6NU%@C+ z8g?Q`E1YF$CXblo&mI}u2HHwUGstriyW`Ku1>W-X zg&O3f%anrF+Hkr{hghhM9S5a7nAifD;Bxlb$XST%w~Qs_Zk@z&Hp~5mZ<2C6ET!)( zDu@=w8%L_2_7Rm`r=s%==S0L$d%rCkAmKm#!*tswDExC;~@wX^mPr!R`J;6O~G+v(wcW6h!q`jwMkVGC44+g;PS`Y0P zsvXb?rD~~54NZ@qF~hNvm+Cgxx?4^_uhPm?VO55t#^sYXB~7hAgQ{D+z|Twt1VzA% znNqi#bZg*Zw6;MPb`G=hp|%C_ZVCZn?uTKW%v&t^p&#=~__P@*=hRwMY{$D!d4N$Q!XUl`} zo1yj^a=?uNcZ?_#w4x7`)a4=Q@eoU>fRHq z2E8W#v~%j_`SIq7{P*pND-4V)v|WI)iP-d#E*77jPJc9y`|H!EEY^Jb2a5=Q!3u~) zei$^_>E8>s!1AVD0lySrMZP<*!p`;H>-{lD%eU8;{eRLu2^n?P6IoAVLDl9B%IO>v zlEvd4umbj;=KgaSLWJSTGAv{7?Qot3tTuj}&a!z7J2^8^~JpEUAj%VzIvN`YF@vrI*#ym4lojV^7 zN;4%KYVLVhg#dIivGVRM1%u(A<3-O12 z*e5MdSb_Z<@03{amD>__BsQh*^VN_^RVQYSPS`Q568v;QX^<(;yLUNY8ForAV8_7r zV$c~11&j-<8+!=({yl2*JXOj25noF0xmAj}+3ZXmzVW}`I?$I-dIJOid-pe}87EC# zANFCq>*)2U;j{`g0?SD!7v2&N<%@bHv>CvLNEX;?)`!gE2pf-mzsqu^5t!SYQ}bE` zNI4p~_F_a16v7>rihohPj~qDZB9Y?Zv6w4UebNZ#GqDw%iskIgFswxsy`BH#3#++i z{aC|L9hmoM*gVeloc!m9f<~Q~q-dJ+Z<~(N*p>egWWXK*rN_&mC9_oCTX2=9=(%4}PU#^rBt&W;ZIY4-qf;a%HA0Y- z4wb>22nZu2baakJ5JaibAu>V)#<}@D=k=WP&v~8a`~UX(e((Ff;=ZoW^(Ng%*vWMv zlxlSj9_XI2?5wWesC(gu7VzJgRP>;GA_#{Q9_I&-Mnp03Ng(@6PBbsznK67BK&Fx} ztnytQ)vm)|TA2mx1=hUXVqG}Q<=4;8_M)G4^nyWG8-?GUK!8E&Q4I)IH9$MG_G21m z7)=Do1qO?HzxDTbi@_=1Zs&3zLGru$LAsI;KOa|GG(7bLi?Ut1ds0F9R^C#%|H$iY zD*7_R{?zf2HT%i;;gQJwf$~P``(;+SQ~2yj#~&=+Feb8<^MAu6TJjl4VnRSN^7zaW zSSk&{(|e$yiU-vrK^{oJbYtjWlAOsFII+slw%@Jlz?GT!R2m$5*qq&`z69F~@f3Mx zrJ}!!;)XGXrlku&Djm9}6u7$vFbhD?(k2*Na_G4oW8wvBIz?dzzwk(4FY^i5d<9S2 z78C=jzIyxjTn8M^RtL(TfJtzF^`}>lI8Fy14@eA4wcd*s=53KYPO>DxrO?lI`(GQ3 zOBH(!Za>`#R|F-nS~A6KTB-93z1gJtWu2}=xAf{j(12keAeZtib?b!tRLFnkqCnFW z9Mn8vA-XT1GivBFZ4knE}e5 zXW%8$B`lxq{qV<7fj*Y&MKkEJ&ToLkC}4%lRu_KPfMi-f4kwQghXG3iAS71jW@{Jo zl&oxk-#TG%3>Ij2m?S$B8DK-ECR+diFapJ=_9KhEn5@Nj} zq#Q->BIH0Qc3UVhSs3U&YG)paUmI!#uIefx7=SQ%FCKqvB}k(@&4y;e5&@Rj+9f7BB|6oQKKs zQdeR9H&9CpS-W1wA#esf`R^*Qu77A7Uk)ZnOLwmH*F79D9IF062mEv)b_Lnm<#^(j z0@uOWUL}DQuID&pUwhD|E}W@YOj){9HWmhy4?Lh}OJ|{rRc^Tf{$lvRs^{%&OoVFArmA zrVRcOr-?KHE!PnMoERSBYZ;K#VAl@G2ftJg)^OlV+-X4W&!^vtVw_K)?PDx>$*T-h zFlD?-ejmsws0%g={!_s<_{?hrsb6soKFdR3BZ0UqoE)O!u`+@^RNWwdX#p4y(nMo$6kNHf>;NxSCJR|=Rk~RfANsKSl{de@GRs7)zgxvcJ80I zU=IN%%}oZ-lP#*k>zz$NURFld3M&qKc?g^gc=eqiWp(hmEl5h)Ml$1eBe<|W{GvNw zT=vE5VE4QGVt*gQ^qR+IUe%BWJYG)p%|pZlMryxqiR?%Ti%N2D_^lO4!32_fSayx; z_gx^@p{w1z0oKT1n>_Agq^I?HvzhLl$5(*?r#e9 zjzpDxu~>ST|3*$cZv4&%TfuNp6f~z8FT?G^7@ja@uiX1GIkkyAKA6&y=CX&_QC?g4 zot;_Yz-ut=rwSDbR7hbc@1Q?Ni{mHTXnBUQk(TU~%EjFXT=upd&&4!!E4oAUea8pn zr&xngp3IA_{SqtbI%)Pl1`6DBlag;V%1!D-)v^5M50QyceuU?gw5&sO1#WBKHyGx1 z&ZPBX2=9NcJoM!CxpCy~+C$P48)!*C$!`(XvVXqD*x^T=ubJ4J1UjClKRp8D7-okg z2Q(AyB+HH#vL~y6WK{=_6OygIO_ybVS*T~Ip~GMX_lzHIg{7kFAh<8PMfPz2DMt4F z0GmE`27;xWpO~3-Rb4FGD&(yzg78SZf7YGaT~q{Fd#OtCO3c^X&fq+Icdlu>8WgRf zWGjPID<3f#I-FMvSS#?LEC6i!+&BOBo-i{U^H_VeAxxkv2g@#Z7s-LK01$AIH1-h zYe`s4-W97}yJ_;#fu;N8r@=%Is&gFY$7f`N0sD#0PNxeYUT|;4l%Tgt_Eyte0*bm#n?yprj@J-OKSZ-E9ZDwXQqM^nQ;~9}uP*;e?0v zekJ9OA9+ldrzeI?&g>|Az4H!}7rc;__WTjW+my@Y~67 zdlQ={=b+@QFWO-|IuylJ(&;4J`he2B%J~&r>D-}I_pa}*Z1JOtncozu0Mf#JL1D_p z50f;{9QJp_B)Nkl=iGP;|8C#aa_{WDkQu*Fr^!w)5&|m}c;fcrQO@_!=pl?Ci(hxa zP&#L6+Gtc2Eq3zKY>;vJXZm7GVgz~Rfr{8>Sji`BC8I!_QEl;8dvT$=H@wYczYYc1 zJM~~o+y7$wps#ae^mRuw3?Xo{7*T4Y4LtDIYPzs7(%{*0NdwLK=!mE1wIoK%tP>>q zbPlC*xSN<}2`@U?t%GI=a`;>686JrO10dr+Ph}aWnSLEHs=z~MEQVIqlWLr?3_&hh z_RP9Q++v#DNHp_1^71Vc2XG@>@yl-rFlIan;#q08^8v$Wa4x0 z#VAusk4fjHKh0qHFl5R{w&&s^G@7|B-o3ynR4Cmf=R11k3rs`zCx~~_sB|zB^Tezu z>)si2y;h-*{HO1-n%KNFb~Fe?qcLaIE-p8!HsoTallVDa^`nd4riDXYqW8Z?bR*@n!PSA(|m|=8Pe@Gz09V!VTFz{Us$k= z&Xo^;v9Rgp|N3(9lC)z(pTGHP|Dn!#x_CtMos5rtiJ%@gdczNGrCAG~zp(z-4bf=x%THlM&dg38=v?C5xRa}+%QcfB zo8>ihzR{ZjDuNO5tYZ*}QP;zn$HY_OKof(K#$Z^Bpe4Lsh-tT2oYIxy8jE@3(lp!| zHVvkwAKCMsE;Wy4jHZ=N6n>F>>sgIlWD^0$yql3tfd~Wav86fFs8?e8csyBk)SGgW~+KXan(I7_wi+WnSI>E%L^Ww?$lA6vLHy5fT6-{G(PZ))3cMJ}-#fRoa!QPQ8Yk(w{cP zO=Kk0&+$BYrc7cTp(A%y8FSd;!m`=gH&LOit~ROrika{S?~&Y8T=H&&vKWf2IOl{( zN@|b${2X~uF;6g@hN+ce66opp8K(1UVZy7Zw@NpvCF%W7^VoWpv+Px=_Hu6*VENwA z_MiMo7gKfM#Rb<$K6894(1MeMkbFv1A6z56c_9hT^Z&8NhX%rsULpRz`KH; zrwizR#Fm$*Zm(Q+VWu5<_54k=2TUV3HzZ`|>wO@2pS*ESTKa729hTo7!s0*?jY$40)tib4BRZluJZak!?vI+h?C;mM;}0>o~h z+iT-EK>j0v{&n#;EW0rIrjMRr?qr=*ns=vm_wx;#7BHu0*q3D2ARbBJw(e3kmkW9e zdSTMGP$s(5c8w3Hb;OlZJ{MI9C})bF7mjlUcsY4-e0f7!@|HzDE7cD{S2Ph6WCn_! zb`?083`r1j3?qBnGeNtA&n(rZ+mvV~m6lw6PveamP9N01Y5Ah0ZgX}h6!WXkby4(qKCh?$ApOrT_PZaABCvu8uOL+6xDWrY4bHO-?MnRY6hKAQl zrn_D_1@8q2?%_4=7Uayp71^_PuXNz%(;lO?x$ug}e+-iPeg2;Lb^ZOjsU!9snVhBS z?`PhZ(-wVONo&#keZL7<>q-XMCyWjH2}m}w^sDad`AA(neXFy`ap9CnzutHhu)j$) z2*ia^Q}B5>4HK*}r{e8~kH*XLRG(OZ(-+?|aVjDryO|NG!+m!^Nr6`n&cAnI<|Vgc zMaa=#Gu<=F#8bjHgYVq41cf|1v2oZ1&+@=Mw-eGw2sIQ^FKRLr8gFlW4$QZ_{(7TX z&Lr7muyZTx@w2QBmIZ!o56d2)wN=e%{h8UM$XTl=AZ`DtHSy|%)08MsZVa&ux_-DK zK*%?|qNtBloKvrN0j=#k`LtewRH6iAH#%KNOn?2iTC#;qj~e?SHe1uzZe2}x3xgQ} z(?uCNaON6qzji$z&`gU_fA*dohMW9J1BU&tG#9hQ()OEzMjb2;x?_{Djwo+31Db;I z>x@zbBdkZ6HU|vA5A5xg8wL;Pk9uih(h+h4?*z@- zA{bx#oH$LeY0IqsQc5Xmhm9cQE?2;-9K|sn`cG_pV8W2Y9)bzaiw;c`+ zFLAAj#y4`@nq?b4lXdP&@pjzZ+cMCp(TD_;fy{&qN#is$ekhv4jf$>JszcC|J@Ajz z5dNgx#-s)|nNj8m??JZ+e7*t(|;y=yqQsrJT`;W`v0_6*!4JqrHg qTETx#hy9=W!vFD`oXzj<$9&Y9C`BT9M;Xv=Pr)?}G)mPUh5Z*H-|(3L literal 0 HcmV?d00001 diff --git a/src/images/AvisoCruceHeader.png b/src/images/AvisoCruceHeader.png new file mode 100644 index 0000000000000000000000000000000000000000..d66dce4a94443eaa9ab28ad03d94818a53af4ff6 GIT binary patch literal 67221 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
    1etz!a?ELin+>PlDt0EMD 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 P00000NkvXXu0mjfk=ddW literal 0 HcmV?d00001 diff --git a/src/images/GEMCO_logo_min.png b/src/images/GEMCO_logo_min.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad3ccd1ddc4368022c817b83a1cb61e0a1bf8cf GIT binary patch literal 32402 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 *kMNwH=zDJ^XotB>Qd_j}caBQ*{hV2qIsN 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%0DAXFq26~H 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%0DJ+~6XYoVDFaYf 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 z zFsu}z{JA<{n5q;p41+HcO7`AYbES6*rqx8PNO3lqfo@uXBsnQ}F)r4~hD>2mrf3){ z$l?>3uFagp8Z%(I38uRgp?sG*sF-3PfKC#*6lw)f7^fhMVacBm=X8E5(~)P_P&qJ) z8V(cwqbO%RJ+!wIM0HKcbCg|4Wd2=@QUYZ}^B2&8#1zsmMc{Vj6~PIhDCP0d1Yarc zIh5IDN#!dfVNOebHUb1db-I-AZ1luLnM*O15h^nJi|L?Z3QfM3!YUa8ilHQ>6N&9m zG7qOfI@MGcics+^(zq!~bo3>oETJj7I&!I>4B!^xMhMfjn|26C|TU zNjwg>M^zvUc@nF)Hvu4<=$X@iRp#Meu~pS=F3E7zFGU9)Q kWdv)}gBcn973mYpdI~yAZJ3A)_2Nx$NHy0NVH#dfdhZlq4I*p*9u#k|5u&{`Th?uCTn3$NjxVVIb#M!fF&z(DW{``3?7AqwwDJ3O!;WQU6 zNS{VpT1G}jR#sL{PEKB4UO_=YQBhGzNl95*Sw%(V;>C-XPIKuJ?$RYy98OJ5OSrtTyEXEl?|?Q`dj zkB^U^udkn<-`%@+0|Ekq0t17Cf`WsCL+;%R2?@D>|2~mO3=Itp3kwTBO?Y_3X(A#b zPZJp#b(*NC=+i_;$DAf6CiXP3v2mw~i;ItsPe@2eOiWBpP9~8^DJdzbsi|pcY3b?d z85tRwnVH$y**Q5md3kyH`S}H>DJUpBO<`ftX^M)-ry-Mzi;EvTcu-neT2@w8US3{N zQBhf0Syfe4Q(awGSJzNq-_X#|*x1xES_d@ z@ztNc{`7c#n%A$FPP4T1=FOY8Z{NN<&AWHYr&(TJInBz->gwv++S>a1`o_k_`}glR zH#fJowzjvocXoDmcXvO0_^`LPx4*yt@#DvXgM-7v!=s}kz<>6^dkldh0eb-6-_(Yh zS54Ga@tRWSuwdZn^GW>aIsf!;0)SHhuMwO&jpTuFID?q=SYz=}G>Ts@U#F>LB%bwx z>(W@$gVAJ+dK{;2bLn`Rh)K2ecyrlg7WVo?zHUqTlRWu5J4@p&70-%r;YcpM*2OnQX6n-9cEJDA4by zf79dtY3I#kN5i{EL@+hCL1*L2Pz-~(?Nn#e+9-)%ztEsdYL+k|72Wc|Kfl?Ltj=O0 zn{;Q@bx13oPDLW`*3b*weTsxt>+Z|2>kZ{~CwJVIh>NlBRf2pa{rZ17zkZVcZErou z_vL#VB_Elspi$E^Ho=NpvkQk5SDvTAU$6%&dr89euYz1YZ*NEGzv=7ndU3Ee$@S=s z(wCp?2;tY*yzNcK`y)o9Z-ThWObon zxi(taBIU}LW1T8S@^7Y;QcCIBS92?mr0tRtnZH%3jW{jdD0~p5bG=UCIH%aFhcBJ3 zG3~_vCTV#8^ZO^|43E41w?Q}T)f8!@D3 zoz^6p%JxzIi)?(oSXQ6`!-Lm?G`TfrBrR?YJ?-9Vm=JoS_$qrp5A8Sk@Bxw z8^Vy8@y<_#dMYQLXr@WucK*qCYcKk<^W_TzM$cM3C%*{x)W!!$aqynExsuO2cufjY z(@vvgVgJfDKEBljD=tk(>2}SGlYJvyrT2EZ=OXKeq07%`{SCCcqxnmb1vN5Dywz%- zSEX)syWYPoEN$?(EHh5{eQ1Ri*XwSv(u7KBo^y_)rH?cYA2>|}kk*~4eqnV!q#MTy zlm@f?P+LjuaCi$dopawc=#YA#JtDCh&FMm3iQ4t%`l-;en@KiYP}N__OJra{FqRqg+)Ez zNM*#A1o-G#dhd9SS}0f9(1pcdn4hQq^-s2?$PpC{whYWN8a=K{>(NYfA=|NvKUNrN zx*l-Z&77VsHA#EfA+k_nowuiRWY?Dvlr*v7Vtk!MFWcZwe`|y<;=2}0$Seug3*myU zVt&@Wj{v2ZZe?!{MIMBqhS%4HWOVe;wx6L*H5a;IrCH~QGr`=;FK?+FBe|p0(#F=E zm6LU^D8v}&Z&P&8o=;<+mUlf3sFBuDR6C58;G4^apM4K~gM)irM9U13ugLiM=!tqz z>vTwu$?KstEVx_pUM)HQsArkJQO?h`h7(l>L}{`7dWMK4F5ToxIF2be`pg?8UR-QD@%Z})Z|Q}y8xn})K8d%Vs#q+T zcSF*JL)x#irs|0B#a6z^?enbijtS@3Cm<@qnE19?qZXZ>BSW;#6n>HrxYpKnRc@=8 z{zb327FkF3MsGUTPLC@m)5Lr&GrrzmC&y7C)y&pElO;(dMyyeHF3{VwIL2p)N6%sY zNnt7DZXRXV=~mp;+-_igoo}74{p&%ce$&z~$|AyMIx&`b(+=Sk=#S+St5x z;l8G>h(_S^MWorovatpOWc7So$=&df&S7@w2lQ-+bg|XLJs$c=`^c4&>Oj z)!w|kYxz2Nt}di4==!}~+aD({CCA!|sElbiO92aGhF_~qi2V*752#14wYR1fgz;tj zPg+cWZtd9HWu#eoW%6DPVftk9>WPQt8isM`>0@-soBcqlTq>MwOXuG0 zkFH8RTqe`9j}{BUc!*Zx{;d8FP5LA6C#zG5Vmbyh3O-&i4FG6_cE@ z*6bme21_~OUBJ;ak}bxqoY0x0KQ|PJq4Z>j?!pconGmx7%=r+AR|Ae(Bjv=*3$S0$ zqC%x-9|3r2%jZ4z@IVC@cy9gcH;tF7TaiUUbU%scyV@Z~R?mW8x)H%jB#qByl=CRv ztG|D6HUj8HrhYjF|Na@4rM_8a7f+A>{j+|P2y?_l59)K%G7&F*7e4?$zw?Nzjs%*l zxIg&vt~nX`TNqVF0)5mb)|&;IADE75BSr0jbl>kW;lagZHwL;Kr|<~|+-770%n1u`{){Rss7n+UajAjfie z_f4QVjt21^u7(QN8}rW;_E{441j$DxY=&^!M=qHmuVC(4cKXL|M%u|knWu?*V?fEq zdsU-!HhA!{T$I-+(1ApRNYZ$aBCp2)uMnf18DT8sD3+~gq6>-=asXz+#X!b@x_&XB z6+`dJ2-Ze8$pux3g*aA*i2^*cTu@n!5aY`GQQu>!2Ixxr!A!)UgAO3=%{aIujR}TW zD-tG3^dnUwZBU?u@8KSRcv>Khc4G`Q8>9eBfFFj13J0?GyN|(5LmKaTvfNFIK7CcN z(eDY=O@3D}L}on5Ll%SCVf~)+W($(z?ys{pZwW8`Ky2O_w3}8 z&g7p9$&~NO05%dxfdsK2!2(F|91^mNM6*buJ0_vnQs@;@7%ftm15#LXQrNpvI2Tj6 zk5e#gsrVGyq794nn~cZlY&k}#5fY+s8IjjWL1=7ATH^t9C?Fjk;Bvqij|ZR+(h$?` zpcEL81V9h~2vXv$IjF1!kPZt_+GdQfPm^a$hoGr0#-=efhS+?9Lh(Q*6i{(I&5kYe zngYt4Efd|CF|?L(Ni_4(7GpdXaLEFAQxxTa1<+0dkkbHbHW`nu%pHU`!0y1J6FO?35J1 zN@B}Q)kUumAV@p_Nl3Hb2GEfJ(CJu&5sfMV@Do8sb{8QIJP<1|g~cpDcadN}bp}2Y zO)78!0N|DYDzeH*V-Xw)7(NDbzXAYW0pQ30L<)?SL}pMVKcojh@ehC`L~3YWJ_0>K z0$EgL`fjH)kpWcpv9LpGP6B`qkXdVyg$n>A%cHK?r|Gk2+TY3&Btj9yf*3X`s)IEB zK+y>zP);=SJ^^C4UFsVE;B3^Bu_!a^E~UbQ6YynhI|zl72TD7r4@59ke<>5WMCMfy z<=RPJ{W$o3btczNv8O^QABo3*I^Fj;F9JzU%q{RHmAi?SJ5^^264EpR0kn;owF&?e zdsH$mD^agXzZ$@64_t_?NCDoh2g7Q2rtzyiYjKpU_3DM9Qh>3U$NwtQ+hL)dhk*`WuBbV9-WP^DTo1O6c z%lDBk6;L7+%!`~?ER`gn7W;wka*JaEs4Tjwj>1~eWI(hVO0K6o8GHIiTc^$r+GM0- zZ>&XNYHrt5(B(DUs0JvKP!YtY_T1C=lh(Ao-ZKCYCXUKE$^0&cx&mlfh|9bc*Y^9U z>BUKOOl1{xx-A3SMn$NmI&5}T=>F`i&308zE!kz#rpX zOn894ILZW{$wUBbo1-!i=`lIYmZIguKe{0^X_TB^5%DUheH0j7)s$P263|V}i!kfy z0U6P#S=OoIQGvoGzmDq+^IAJz)2ZX@(bIqwZDhnm=VEu6n(Lz*-90L|%6^KYzOa!U z-B6R0rL!Dt4))zB$t<(DM^Gc$0@tiF$|#pyfGLtpMF6D71HT0h_=-2OqOR8U*JG9* zl}=<@xDC?=p(3z=l*Kj!-D<=^A0!3A&N)OHNKdhNNRxul3rxGYt1yyVtcFE7kgE-k zGh|2*Z!+?F_oMCCbeD)tbmVkOCBEG)wrW_ccaKbS5;p`Ye)M&*?LuwkiVrG^T;=$a zwKcHs764s6-Lm)NA)FV+kGIs!?BvhApwxC&#vu>k;`>@<%FX3m#9L*D$QQFMw zvRtu|p`eE0;1LUDRPppgbv#Oe_|V;LJh^6!dH}qW4;XMqNue6ussJU7*>VB;rI-f& z>Islnv2PVXzF&pUzG9J$ipFa4oBmY7R2$fc_APP>=77L)J}mvg>g1kngQZ(Jn89$( zV(J<%>2+CT!8r0L00k_{>1U?yX9!<#Ur++A63q;B2Fmec7!;Z@vhyTbd8UKr(b(&@ zJ$y&)cC{T7vS4C_ZI3mJ6Ud4Ig$RSLo_%qD6sTcB$BP-;vjRV{ptb3Lv6#XVu|WNY~}QJNT+_Te)m z@;H;0LIOnJd(KG^U2A+1vzNA?3wYo<9JL66u27{SGw1HjATeN8LK))nIujx`T)sj{{tOUd*;!8=u zWrMC-BWr*%4#{x)WxGvgn?%?ChpD~-WtHXP8$0Pb2xXd{r%3})ARu4r;+piiHSHYF z2s~)$VOD=EneG6>_!Z7dC<#^=zC@HY$EWw7P9xT+``C32i6;07_*H0nzXG6D4&{Mb zL*m|K8Pfof`9NYjiW8tw3jhK78>hgmm^D@m1USEJaF*>wKk~d9bsdhH0mQ%4I=vZ4 z;R`l2-6kNcr@77?JN~2DDNkiB!gI8~ClF|(= z0YzNNspJwry@m~2fDCEpXbgEURm7lN47UXSa!sy5!PMBp(+W!E{{<|Rie?qbU zhF_n;>;H&c|A|@uL974Z)PE4_zlW#)4V(UhN*5LV4UGN^iLR}!{R2k-L8AX5`uqoX ze*7=Q`48Ou2W$QdX#RsT{|#dP3t#>hu>2>c{1>472TJ}=apcnjga0f^{=eksPFc6< ze}Q#hPRR0pFW`IOy`WYCqbL&j+4xFkF;UD$G2OWGfk@i9f^Hv%=c&5U#%0x8V&mGD z9mX;{Or=+wtl0|0ejK7LTb&j?N*TYNHL3BINo^LtX0+7HB6`U5g9SVCFua3VRwBh? zwJL$Ov71OtI0juRtOwQj8sbrJJYbI-Hm%1yq?L^nAiVyziF1DJ(xhefj z$V1Kz#tBz)h4boI@X_$q2;x>s#q!;-ux@sx9<0JkIP zb3!7S#KzIEm-kc#1<$#ijy4Wwbs2#G~!%?RF?)+vb+$z9;qv)9c+3-V8F zttH4PF1(0)_{MxjNYasYJ(cZ*w^-+WUB#+K1zxQr_OkQ10KahL&D<1vl~jQ^%gopf zl7OZ~4v|UlhESS;v;VU8mwO6EB60SJik!<*mD&%EezAIv_y2*itVzMbI@ z#(3C`YQ^o0xTs;P8#F0WYk7V9RiiuuQIL1`wbdnTbrbWfrQzYy;GwM=_}mW18_-LV-oosj}eUftM#$RqJ9ZqqTdp|0Bb_N#cn`>?#ok&1i_W%F+Ss2)$*C3(%eO@BNB!&& zo99*hxB?&WcO6Kcp6tZsiP5jDXWy(pe!peo{g{;;O{d6KlI3x-U72P0c&9W-KaJyx zM9MII>r0Oxd!3v0Kla-$slr}Lb*cVf7-sSOc{nEA@bhSNj?#14O=95Z=jUb(Kk1!H zkGen4-~FiaNk2hyPRNAt``7W-XyGUQnTn5;Z~Fecb8PP)d0zT%J@%aP>!)4OC4=;7 zwO=RNxYf%81To%77MMAXBC~>Yy)e$6I^7RDS4=I%3kHjS?-O)U6}q!*56mLNa`H=p z`Fe{!^ZBPbqVP25FkwF+f_=uEr0qfi6Y>Yy z3ZuF%EAv9>JBhHb{y=yoj#?)^k41|RO6_i+%pqS2Lt22&>G0jTE+W7u(;uoKW(;N} z^&^)3G1^Fz+p%1v)Ml9!pQrV{p$x=or9f%z?t% zYgDM^&PQea_Ld2Oa41np!Dz)kY#;DTm>26pf z_{)hvn6f>P#XpRNaU)tlqM0n-=5%h;VvM~uRHyB14348Md>l!y0|2YG z2`LE@B5x-RGs?pOAomkMUM>@mK6_AA)(FZ}%2;W^R1MQxhAQT+Gs?39EO_wO`c8a- zu^Q%4 zBeC!6d~>BuKa$-$n%jN3__66abp56%0>{$U{bmm&fP+OZtWX79z2&FBZ5oeN13f9I zwRlwX8YC2X1!315|rm**lOudH%Si3bhBBwzFwS>-j$IYtH2dNP>K-^id@zmO* zw^zY;52jdaU)hHn9|6ai#yLFVR=BS(G{E|CIHuKTmJjs9Q%n3*#Gva;KTZ#Q>IqB| zt1vDD^4Rjy2IUOiJ52a~KtFK<7ewogRH`MC%^z<-Q;GC)5Mu2Wx|Xc-KOhO%RVs|U zyNV0|)Dt4WcwXl)j_Q{)IKh4hwJj>t5c^);!ye>%Syx1hWTk7jFexgFLpZ)dX+B>D zT55gbQzdSbta-1y;H1r_bd=M?PUW3sIQ#$6x}r&c)EFJEb837v(zpKgD&~N zZ0zZ~&tZRj4g>e%AE5#C9WW?mHB*y)m);T`P7L!qfZsiroXLB6SuZw3`iO~}pI{N< zOI=lOc0uy}JFoJKtIo3=1fTCEO1{%(xP9*UIaTl?Lw}3xVtMCdJC7AW{%e)e@4)9) z6zhX9z}x+Dw?_}znGF5IIvXQ~Lhi@gca)$xaq?{IYl z@1CXP@iixXe!DCG?fxC`WRaqGlH5D<8yBZ&CWw@-Mfyg zMz5aN3{hHWwjW8Xh|68i#BNU3U1mxB;nTM8vQanB&nl+DWWK`J3}zj8!LmHYXpQda z(gl|?xA8(Dk6gtY51*w(2~Ktexo^}BQD!fS1zvDHn0u6^d6E_I<=ac&w2NXpZC^e; zx!ZBJH0I~MFWb<~H-1qXj_J;G0kEPFf6=XZf3+7Q*}*jLWqHjs7KJ#82?{QDermwc zm9U|Lie)eLHn~*~LFSt!o*G_!HX+D!9b_vEazxid5T^4c!ehjjQG|;**6vn)2Gqf* z|JV1zAldTr^nhaot5tjoIh&DWZ9BdoU?~)7AD@+iAoF3RWXO>W^wBFO?g}n%32!cI zuHXG_8sls#;XP)-n^LNf5p&pNv3z}NTbnui-sM4_*t@`PC(F0@7PD0OLOQm};Cl;i z1RcCxr_EBFM0ctx%d1^)J0@=I)KD59i|y97_K8(qj$1a0uJ4(jscCq0Bv#un1k?Y} zGWd+w=JWiTY=byL%nW&OLhuPov!SyWYAgF^GncclUc{ z=e@-BqkO18K70@3GkN&^E42sL$>ZUMM-VG&f&sbJ>R|B2(;8!58f}`}TpdD z1*)*$#g86labfY*UGHz;9^n{?&JI5ExPaFFglj_&f9mHzM=)hlGmXDlxS6cMR>4yS z|Gu(T=+74Q+DQi!`d!jPH40wTccQ9ss8D~^hcxh;D<+IZh$&VULg)95zX09a*pwYJ z2p1&cpi1fR z^*9j$-guN|sdu(=1P+Dqj+G@pOIF2%tAlv;ZbqeM6&v(}*j?c6-bUabcXZ^g>uT`F zwD6vz=#(m`1`JpWVPKH12rewu4rx(UK8rY;h|5tx3EFgdG!gQKATIDXmql z7$lpRqMyFvq07a^;K4fI^uD+}pdlT?Tt&x*LHu$H_b@VP#2IQ`g=W!nfO~D^Z*n&;4zGT}WU*3IT}%<7 zy58&b9MXfRBR|L<+X`)tCfrehgE+z*k!1R-2(4TqD|O)2;e-Ke^UqrLAaO`UEW|Y0 zH58tn&fj%3WM?6MZP!tbw?F^3fH*chpXO!TV;LRPb2n{jANy|Es(o|2Jd&CVvCle! zNJ}VrS8*iAtEJ;++CoVCW+~SPLkz=Ht$?&sp9P`&x2|#+N3Rhc!%S42!57sI4wvYD>a3i+VMM-bo-y zk>wvSR}LBwm5qdk{CdtO;*i~0^kN_H451WmdGjtqb3`nLupV%Vh(F1iI(@lE;;>mE za*3qN7*N@k7|Y<%yB>>Q8D|r$(_g1~A+0ow5(How`0c^yBmt!IhC~5Z7zFyL6{Osc zEef)JMAr6Wdy3sMS2tcR}(bHp=H#_PN|wZ1hr+d zgqKY4dB<>zc;*FhbbG*g#~4PMHqh8LMDfQ!+xS-CbhVRDl^2(jd5r>WVV@7aoIro$ zkvzX6-senm@UF?OC7&%`4nk8vf9IP5e;P`))5s+>U}*R)``54PKgl1bPe^ZP-?wY% z(%6c9$7eHD;s7^52iDZee723D2n-+;E^QA{?IbjNF;O<+^)=9Tm~hrU?4xXhyjpmX z-bgs-ovII?pVJgkv+ZTC{jZ($e-YCEjg9`lZ$dvE&;KLG{IAFJ z|3@?b4<_`#70myEA^miG{x=HwKW9iktwjHurrZD1pXPM>zVT0u-jSJn8wir4#jV{_ADVZ#(rv@#6RIZMz+9Oq=j*28wq3&JA=0c0X0| zxzq5vhjQol+ZPNjhtuPCR3hI73K;b~>k#Jldl9^mVi4PQ|6K>A>FfB*cej!X9OuQ} z8_8PSC_X#C9FQwniHX>>al}|wIQdVAvHNYUL}Q{vN}>WXTvlU6CT>g!Mzn5?-xoDr zkL3%enRQGI$Aatu4+9sTqLz1g-Vi7fcFxm(a` zZ>g}6o~4W^OUDITyidO*+ZC7DJbbi~7nhB25^!Tz;LlK-KnRm83SG(zO<`3x;}iP* z`EmjZw>QYD%yE2K{^w4dOT6jS#$!EfyDCz>DGCKPO+LAmuE)^BYah9usCND zMMjFR+`7hRN31X{se4_}ceZUJD^;p`E64wp&UmeqCVd58R<+ZFa1fgwzOE}*>{c62 zHlWy`B0Y2jMsJQ$gK`k^gCqq$B$Z=Hw((?cXw zA=KnX4PAf#mEmrhOEVE159!zWAC_mjdbWj^<{C4z>)=A6JmEA_5Ci}iuS1YN9PYk` zogy%YW7ZM;jAwpSH|En@I_cR+pMKu(f-etDQv*WXwFtG!nv>_{mNcf|s&Ttdx>v;o zszvKo)xbPdXPc)rKh_w{(p-4*dGbnnF-bIKOHZc8BuGIgTd2+v3{eld9ZDGsI#WR8 z;F6q$OzOAP)=z!_^~siabSV1PD@B)%f_S1i_TOfMX}!U&4P06%_3!v7Q8b6f7{j&v z#Lmf`iw+*D6UGTGPx=kHj(WHZJZn;X-Ae6%z6^2y!9y%==%}}Vg z8&fnhEm|`lv`fA=6sV-__B}-5V~VMnjz2H3ej+C!R(W~Ii|{Z@c{l%@j+?-rAYR;;UD z=82BLIcy&jAHg#-tsj~zNYWu;AOe-e%%VDBI_r(MIHrmwOGikU)JEH6{%iCqv*6yy z+DN?9$}}GqtPXVmTP^V+WHFGi;Z>UF)clkMXmo5$m@}US{}N14Herhwf@XaMV(1*K zKTD>Cb^*CRRcg{MkuhY&I?ow>49{eGw%L?uyHB<{Yt1uTFh8?qE?5QPZuaGgiY!Nm*cu|p|&1}AO{gR zKT6xcyP4XR(c#JyF=jb)BT4>pROtRSm&@*2hfo;ha1h#CHA3x^gmDmY#!yW(p5xr( zt%%V`g?$&3@LET7U+4YE?5}{7UXF$$!eQSnhG-)g{7M)rS0ICOw7K%#Ma!{xTHNa+nchLY|E-R`mEJ5h{BTgKK@614=Y-Ou zzK*Y$ev~-nQeaZzs_A$b7Nd2Ti%1thmQ)#a$MqM%Eh1T_5LZ*mpYY#rOUYLby%w7u z>h>bNQs(TYTphDUebN(GH8^_KC`mdiyNsd%N2um}w9sIbBs;$sQqWy~h^cZ|5Vi?m zUzA$^QWLJRzfwqg9$%}*SRNy!<=hB}+HgQoD8qOOPK8l_4y*}K~PKZfeBMgSf5x#k6A{8n#N3IO1EG3Y+Wo`&04>L zuW@Lf$s>+Bn50i^ias9NGQ@;}-ZZ`F?tK7&coU?MyYhW3*Wes}=8He1rl>W_#_8$% zMD3O!l54}X+&E9pjf5`9=Ve}zr1Qz>)u?$(iznaq z!eVcGBk46->vWj2VN3aI&$TRg)5p|$tR=LZ-aF+Mm)%L!zBU$p)qfP_Fw9VCJw;m| zfZQsL6}BYG3B>!`pJ#Fg3|r03|)@EyX(7g2_WjNL5-sim+48k5!B((@@GrC;Q+KyQzNiHiq?S|hl76n z{Mp)#3vJ@>Fnh`Gkb%P7n`-`@=(fP^^&W*?3B8o_03NLqC3@RV_indf4N6tu7quz$ z6=o9jwzE)lHBQuIzK@onQ-687iN7VUkP(j6yr|+67o%2s?rB&H&(l;6a<4aGm~-K* zDgKV$68fHI2(#Fpe0oBt;7)<^mJ7Q@+ziglP|-H&|<(e=3C zzO3S89f1YP=C8yh!SI+*`E&Zx9E8_%EFu?P4g5kqxXa`pL!+TokO_@RK0JHuANk5Y*1nyEe6;txw_Y9<-}wI z_bhvPChe;>(Q}>|ON|3XH=L4puN79PS!0-&Y=h-r|5J&b$C|7#XHVj1Rub){Q_`Wysd2jI^Au$y=olMb57 zJOtx~oK%D3qM6o5udpAu;8(*G%YYo&EH-52A*h+V6v~GPk{&kVC4zhikq|Gi+U8~U zMt^&Glvbmz^Std%5mXiq#N8h`I2Q#@fnHtE=OqL6w4*^yP6 zED6(zfepab@wZus3L;oYczFy&6|Rd5*CoT#J7e<~Vhg{=l3C+Q;_AQ0HL}Jx%g48x$G7{(cV@?TcgFWF#4|Oq+;gzX^GC9f{v>HrVL=5W(d8&0 z7!QDA0UV79J}yW`Jb>!ddd4P}xFkYP&2a4LxnAP!g#;iV5kLU0`$ts}L1Ssk=Npr1 zSpT)G)d3`w0ryXpE5iRr($(KxApW0k5C8S~$seo3f4w*Sw;RL%>mBXiJwiDxXn#?! zPM3iH-`>@~Spxo-cJ_C6fB&&+_TO`aa=Hxte|oL@=lp)BWzFipudHeD#6t6!(sBe) zv+SauVzx!EIEn@+YR)q-(u3(F2+PYv0KK6(@0Y8$QWl2d*8^$ifIv_m>6n|9q>i02 zCegXg8&svwt7%|3V+?Z7Z%pQy@R$3v&77eD>rL)YhI>p8R^Kt1)yS9tkDhU!WX21* zR4t9siiarPj0zteyvdIr_;FKkeSwFqy*8abzAxwj<(X|G20g8{ICp*3_VZO1#-@?@ zXu!7c(&t6mATdj^gjn$OxbPC_OzRAVdzP7C2-OLWso_c()%$ z=+g7($QS!lT`18l8!jHabK6h^01d!=*5Qj~^)At?%^#e|0XH4#WcZekis%&fVy+h*@dAM8 z5Z0@DY-TY;RjO0l1?nd3aH@yZ(v^%CP$0haw{o~b7$=wnVq&TYa5!-&5$Z5F1ZGT# z8)%}dT-MO7Zr+io3FfrKi>6P-6@~B^&1zon-nV22fk^<(I*KocjY(hh9&B5t^p zLuGKZrDm3T7gvaP%x+useVoGQ@4J2W)+1knn3@fv{>~t)`!cqN0f3(6zt_mFg9)K& zc6}If;PnwVdf2nVpZ($P44>Mt{DJ!;T9Sq^qF@jNp*jEa09NXu=b^=TX}9HBKevxw z8{f@uhw3&zg$^c2T>W8e$b!`HCK;34A7FHqGbzHKDL-3U)vh;t&UB#>Ml5jDn9$rA z2`m8Snw^j59s9kKHxVV|biG1eJ*4!BkJD|Q z0~}qTGz1LgTDpCAsLYaYi}fmQWq2EpAGoIW#rs3svv}#@IHAM}=Y=)oVdLkCr^S45;S2&Lx6A6s*h+U zK8E4_L5#Jd$l-t|z7z`BUQJmN=hjron~odU?-l4{v3KOdEpwhczu7^D?}yEssQZ_(PFTv(%2%Eib^MObPI%<*yRqPWQfEx=9~7ngDDndh`orbD=Vm=v7z)yFW~ z2(@F}dsRvRA%npIy2f`)fS0Zmmc@vVa9-AqBd9t&013Vb6eTH}V?%6Pd3e`4B5>#k z!gcqu$N8p%QTbtBE!9G*MAGDzaun33aYIen0VJBLmwasqmyJxN63+J~StZ!<9^0cN zyPFfDDdL=3PHdvL=_2SaTILb**NMQ-lKj`mxNh5+r;!8Wn8%Dxv>RQ$g41^_Kj}G9 z9gju}J4X1m4%5MzRwFzVmvt}k4Qif0ieVxoInZ)3LA?(;{T_dcst_pEJmdH*QE1je zwFNG|-%@f}41zq}WONF<1EBeUsbo@!)PFWUtzv8sg^z=OLb?oS_djD|x9l!fEGj0c zzTnG+-*OcSy9yEcqCmBbtB@^$`T9OJrxi41X=WdD@=J-glZg?s)HT1vn!yK3XVfI) zLcv>t!AX1l%v!D~EC7@2O^r~aW7OD2Mp8)8ms*Bv69YUajS01myxNsz?Cus228~Jz z5CWOL$|1kf$Rs*+<9eVO9GBR@B4Oha+0!dPYRBY`ZAnv4N+x?G`b7sY?TgSyVcGU0ZQc5^+1(!+!Bi#^DSz8B9I?#Q!iWjIbH>qR z1I^O9c6rd+VspafB>8%^puYHbf}De~y#+E>gl>G-?u6|wZ@Ne=pPZI%-2u^gJ7W2S ze(K#*`fn{m1)EycGxA&+tn24FV32>DJDkbkn>&x^_HO^+S@PZaDDv zOJHKNS%3z&XOtcHRL3L0z9eJ)6iU+7BJjqO1v4@rG;c<}oRv_XbXj79@xsSmxI$#$ zefEb*dvfBpQ5nUN2wdlrKYx6k6W8}-_G00F5N4nsGCQ?z{ZLC9B~d&N0{&3cV3y3Ayi zaIRb%^-lM<&m&;4Uk241H;|9<2B0n=nd3B(9>BA6UP+c1?-?!S+#Y57+eo z?TOj4dlF~>7oSqS%q!7z$JY7{M`7Q>Cug$LMZEjK1%2>J@ujU-l!i#J|ys_2Sj9%0-P^zbJGm#+dq}9y!Is zw zre07K%3v4d&WZ&J06YYY#Mp^g9qMf~CqLo*OC9u#Cc}Ag|ZY7xz?`GK;TnhZRtk+ORKwKw- z^RyYOK;YGb$W7*0+zf2{tD%avL9PqWguoS%Z;^Pse{l?h4@tRD$H9;kQ}vypM#QW9 zQ(TidqmR8Jqo!>rB)$XAm`jFTZG`CJ6LfJA%NN`p-=g&Y@3;JOy4Bx(*3r`tnb2gPH!c-_H1D&BIO4Wbq=y9)-`lhUyrc;lm&T>%tJF1Jd-S z_S+|ix_G zAcDn)!kAsKp1*(@hF;f=3R+0iK{ua1xbzls*q>SZUdOP*~M5UQTx2T z7G^@DONWBvtY+tM(yoNZR>_z)f<0z;zf)~EzF0t$WdHHuqW5x9A3!KI;?W++TB34^ z-rbHJqd{sM9MQt73(>WVYSUs23=VtP;z~zNJfMrx<+F5C8N$vWajt6NN z(LQQd8}IqkmvlVo+zuxv1#bFUs*1k9uH7HTTF_n)wDo|6cbMn0?`qFS|G8U{?;1W$ z;NUJ(g(Ti~@%usO66zEx^$N2`c%iu~$<-MFsG^p4viZ+YENka4QJz;bq>p0)#=u+< z9jc2oVFYNg)sK+7f?Q)CoiZi{I5`KY4igQ1y40-lR!a0YL!~0TBTky`v~qR6ML% zGi%oDy=Tv!bKaTveb0R3L%#g4Tvy1G-}Bt}rmOIywWIquUMd~{LL1JXwj5i-hCh+Y z!0`-@n{f*d_Hz#27j#Vt`<~8$Kw+N98@D79hkb-MZ>qoqkfgNi*`&;qz(tK4RC=DA z2a~~y5+h&YmB&lT-wXFkgNLC02?b{oH@a2Rc1UdJmeuJ7NLaUTr+DKy5o7}+#xW^0 zZuHthp-eiB0?R2B(-m_Eh)V# z)>PCYA?l}U^FvSKe7TdDt9Y-4=t9qoGQs-mt5QS6dTF}Emo`~+QByjUbkl|2ZCFGr z1yW&IDiwG>{uVx%t1q_j49Zc?+;LHvl-GZit?!@D$3>wfve1@z1_Q|q=RTlb5Tc;- z%l;VVcs0|pEU-(DPncGS%rXs0$J@6d^|^M0pq5rXKU=O~x^rrxcdL>dsHR;065U70--wu`IP`Sk>! zG`|C+fII#nDsnnMc3X4=s#b$|$m?SwCm&7gxw58$ z=x)c~NUt<)5Mn<%yPEUC7~#1IWNIGEGQ5GvHnS7IC{hh#N-}B!!)xqy06OvOm#^Cr zoi_^A&&vy1!t%xJYSj-CYZ|4dyMSgLLv0*goI83^_h-uB zA6`i)q=tAAZu4zP36!;TVO80EXpz@cf=>oG`6WdJb*Fag!1O8xD;R}$@~d*F`u)9I zB243p72Efy)uKE$A>*nYjQsh5K0Y@->RrFDj2~QX->*8KH0)x{PEp(UQOD;QH+`CY zN|TB**6S4s{0e&*AHYe^SO@v#+g7@t*^F{h1~HLuQ>(4}utx7&NB1kz%6zzVZjrhR z*_vXq{HVNnJ|RpZrhUR)9k6dsOqDttpFV^cQ+K{u?_4X_@zO~D(yhd8;mrD;$lex^aTEtCUyE$6BV~DRrSD<# z;-cgGi~YT>;6^RwZ3aKdk5w!9l9_?fiAME#_Ehs<=r>9-PfF+$y6nyzAJUgrms!PI zxYMq7Hys_vDTjOzR=7`DJt4}Ga%II-R)tr$swR8mGQr+k@o}tJNA5k?#6!uVj0@jQ_)EK}8Xfh$l`jk>cQkLS8QA(&s9YXQ>&%Mdw4@8+Ykt zDAbs7y6}WIu|>x37S`k#or<{QpIb);%$^|I?PiLC($~KyC{F$&-j(8;3o*?aX;GkA zgxo({S!O@GdRKotof2S0YteCqLo{HvLuSRodeBFmZJpOvR)8`nM5OnVE0BDwWJXgM zs@(GxP^Hw$8_}aX7_U+IQYSBZq7agk@`*?2tjS}xSGT}U;gauI$$&XKeUAi0EZ=ue z-ziMPY?w??|7{4eM7=^_`h#3={#RnB;&BCsdc%@|1EeK8!w~!=%QI-_R9|G8fJvBv)jxwpDm!Z1ec`uVfy^7hi-0ubltVQBABS{QA`Scx(Ahwa`LCiUzM^!=>|JZ-u*54-*m%ixaJ^g>PllT7! zJoXQA>>tg%i+j)SIpkl#u>bip&))#R{?%CKg82G3moooFJ-q*(W6uT2_CNe;{(spE zE|P}BZ%JdZ->fj>aL!3!MilpNIkHo{BJ$#zQt0OXK>|yFb-+J!WbM+*Qn`_M3Py2# zLVwgilAQGK99e|1JmcbcZF+4qDYVC5=ASsSq==~-J?&x>6ja7xx$zG!II`@wg?-Lm z*S-RQtt}B399cWeT^W>5z907EBZFcIsj|(cr6-y}!h3HSeH^Q46@}yQU9B!zaOSR` zJ%@KJD4{g%5dZG>t$2j)_U<_2zFWav%$$-z?{N_{(oW_4d5;G^P33fk(>vrf^=r(- zuP+`d4S?j!33`ur%2#*R#x2^&8XaSDwiaKWv(CS5m)&^rw(S5vCD`}9t`M1`P+Z`3 z`@J&LjXC7j!(XN5+!mY`3G*9s*Gn#yU|}UcHcIqT@y&BKN~vx<;YC-T(o-@$(i8@_6I@Og`3|eJ{Nd1cO86#TiwYC+pPtq zvJ75}TF4|gTYzi!HT>@&MTS9UbX{)~6}P*IC~ZiS|oEb$ek{B}#i8Q7Zr z{4}@qi*L$`mnJu>;Ay;MRMAa=o4MzSjk&LYGAY>Y^m@V+(tvDsW4qK`?dW~uHDjbY znQUILNb_UsemG@5gtC%DEi7ID+rm4-TrjO>^^CgDHJBrBVNb)l6P-kd0`WD~y0m@P zM3eM5@nZ3$v=!ZNdz)Q+Ko9TaA+QfBu-lA$M9*}_7{uFI8@#;?`n?7ny}w42^Ep3f z_n;*D0vX0E@H{aQsH;sk@QX^=X1Ofm`SHd^JgYg>9W#UZvJ4ZGo zDhFXZoTwW_?GY>>>HMifW4c%>*^x=jNVHqy(X4II-q9OJCe#>U@Fm`#f>(3!bGIpP+&hrl;9{re)QNJz)FNS>f3SJ^`O`OmKjC;XER4p%Ba=fPA z-_~;6B0@kJ9-oxfc{UUAE9!_M#71#-Q3!~?rbu}$DA`b1zjW89XXm$V{d?Wiu z=BDraLvDsZa?z2!yIRgZ_CF3@#`+9$K5rWWl25u_3nPP@K2D>W^N@_#=Es)+pdW%r z&QEteI0r!+)h~^xE|&f0KeL`mKGu}-L93mgzKVhzSEsU&&_ExE^%8_ z%85!ANx@eGzj+R)Ducvo5Am`}6QsMa$$>Rc4NnA>LsS{8Tzgo=x+UJSZyDBd8ZC*s z7w1S-&iqVUGXalE9ILR8P zMu?6Y>ykrNg)aZZhXMX&#!b&EZqHX!Q z&a`ox$5r{M8E6@-Xi#U-EAqmcOorFwh}gP*%;I4yLqh3DxdoKf7|-dKY;meCN7)+p z(D-%B%}RY{bsn9_iGWJ{Pf_JebgVri3Yzr3-u)-{JV(`GN_L`{#=SVbt9gJdI;ZoY z>u!2BkBsFKrC~!#8)FMI&K>!>T|hp9DAc&(sB1){iEBhuzSi5h#SS;)V)A?;(>Np5 z*pk@%`r9}2MGtz-qZ<*{Epgg8+0gaMAwfd#1Nnxu{FzG)q9?%*?%{!br?2b1Ub>{9 zOWyPmB@IR9*0&n;f647j+_44dIN}##!oE-Xih z9#oeg-zcOh?eP8kM@pLkM5 zNyRF7kkQ!;H9*W;@N%LlVES)^2_rt8KovVu`g95#MZDXkW%JL0Z^pxqh|m3>-(91; zZQ=4M+BFQJq>o7W#!L6~^Yy7)uZNq;hP`O^3jy*gejh9++)BP`vevt;X$C*L57H>H z+g-&E0|vweb~#_57c$wAkKF?g?+6J(jEO?0Q)@2wYXh`W9-U-8G4R>7}=A(qIuu`ha)AFIn^b$U-YK>r!g#ryzH}AMfdl z&H6~D0@_Jc-Q)KLCWlN18516+eV@&mfA(I?Z}`fmn?jzn=IB8o4+>W~N|(1`$6s=} zC_niWhfW_GTB^QG`MlUVK(kwES5*Ga3;0T9fr32O^UW=oCJFmYqM=yr`EcOA{K-OI z>t3MOV;h@z+psq**gId^p>2>trC5j8PHS;yI};|bz3^O{o>ukcm*cZH z(MbW6F}(BQ7A<4n-rbCsdiWvlNBdMZ$5IaN{i<)W)6{dd;Lpx>d%do`tbmCcg0^bc{dgIsQbCzhxMN4$-4=WyXJW%t)?q0?Ymhq3UNpjD@HL(LUy&LdGW zWlfrop)%mewF#~7x+BG52OIC-8h6}UzIX2j&&Q&;@y|bc>+`}Bn~O(YDX5HFgt)JJ zo?Aq!Ge%X&M$vaVfGux}NoO=$3m93AcNB)^qodbf-*pLwns<0; zb;UrXy?r+6?1EjcDaNuI#VQbDFO|ju0%OBQpyp3Oo5P@t{g_;gCA4vp!tjE(bxKHK zj!RRF%dm{g3XaRkiOc&3J9+N96AvizC%Nks!6U6ils-g!@R&SpFjVRS5K08-2P`YZ zmpcMTF1mMcBF^T7GG_2ZFcCR-;tX?qDFgt36OllOSep||y1+tF3Y;l`OYo%XKUeXj z{)JlbUonyT!{zZeMIQel{Omv5!~1K6$M18g-^?9;rRbj74IT%{$Ccp{=vujH&r}Nc7gTbL^jz4yzxJ~K8#5o#0=p8b=XW@znUl!*OgDOgOWPaW}};&+)g@84jB?;AyxcV1+q!&_Y)L#?S;{5RYcENq-I{`AYt3$Hs# z)<3_Y7v5A+GhK0v?N~Erc4p)>d{Bp_!Gu|?mvx620n{=q$Yi+h`_+PZ_fwm?UhYi~ z?VQgxh7y5-hUH0Yo?VLY!J{^Q2Hr~TuJZ1v(SgTHc2YYX?`V(`!G4Us#yU1_WxXY4 zMjMw{d0l2Iu^{h1a9gT<#a_9@D6+T3renI+dw5pH73w?v z*rCRNeh%AX6b0!oJB1uzQRXN;9jL#`)ed?n$RSz+pL#-L9p!6ma<5%swIswvfpEM0 zqMiq0M!^AO{9TUEiuD?ym`np~2%N4x(HU2s92hlF14EY(yXbfOTu-u8gJ5vy#UZ-W zWM#AQn3|;c(z0t9g4@S9BaFbTTgf;CLC)ssv(x$@UKarFIh$dPc*8M?;mHcWwbL=4 z#)<)Rf2xQF>lw4L7|kA6GINy$KKE*y&?Fk>Rn1%yi$#25Y;sU$|K8O5TtaVv9NphT z7dPN7c*B0ydy5H@4E%AM{Dt#=6gal2{b_bkK*J(XLy?_nh%P&)?Kh)x(X*j2K7^=bH z)@*eJRU$s|b^+{DE-{j0B=m8V#Xittba<%7F=(fKsInt!Tf>q&=K^B|^RzP;N|4!W znp5Nwi}^@__=*8i(t9zJdOfckZeiy4_%?0u`1|d0QMB{}WQSF)d?0jpgNdIH9ksjW zK&y5v43^mL)#dE)Dg?*nmP1L`{bwDlT(5;SYYJkM2T2f(7IS5@x z;|m{Q=k0G+|mOn$(bM_wFFpv=d z%fM)nb_07-=;%l{xx>D611Z>FH+9FMeG1ea#Tf69GvxG>ob$UQxR5h(A~{iRd^5R= zsGJ7ln;6~<>nU#Zq%fPrm-vZ=l6;Uc_;ULq?ptpuNMsTS^KRj;5mu*UCJf8#zSMR@ zfdpK+A4>H|yTQ-{$IHPGm5VlBY0t{KrW`_zca=stIBJ_D_fY~19Z$J1_OthJkFNFC zFo4P+pNKC=@btcKHr3i2)B}vVXDhF}Fyb33WRx|q-@n>aTco`N`>`c0v_r;4T&yfk z2JZ;$Y`5(dmcrXPuhK|#^_P2#NU5+K@Om^4kcC~73R+Ywff-c~q zU4vvAn~YIDEQJ`j^GM?35k3I0{srkwVQeZX^st=!^(Ot8)YNHB8I_JB5N19$oz-(# zDV12OZ*xW>$Pb9wFd}75lX_Kjc33U-Lf9}fU9$*yRHI!eLLZ}>Z&-7=7M-}Qo9h#O zK!U8ZjNXPhZsm)q%GEpW-K6X9X1x?9*Wey5LhoM1-d1(gC}9V*312bqT9Bjgt2D6N zJ2UV0jiq#3^RUeIQTPZ)Hs7w?-pI={8lvf_+h|dDb+ZL zJ?R>uZepPrd$+E9(mkm`AuJ3fY#TebOkE-f&_Lh8se&NeW1ry4Ms{k!ojse>5*DTP z;O)GVhwDe)Vc(iRtRt8EHVQw7t=&_^So1z!Gq@c^JWjrQ?gu*wm&6>@FMj=6+D>Fg z60!Ey?ps;*;AtYSips!y@Ux)))1S>)z?jpLa&Z3{^&LWXubvr|^B{w(R6JAIhjZ^V zI$YG}Xu$Y&Rtx6*tl$;`OW#L`!rT+gWHXOe>I&>R^N_N4Gj4}X%S=0XQRcXp{>cc89< zekIovmSp{uAQ}5@a7~P(wjwK?U)77il^?F81r>irql>yq{`>~RsYZXo=Xl!h zk_@lEl+qfw%RE1U5Nm;2&b4Sf?oxi2q}-4lYEgA3Z#(mxQB!uaaSFrDkKpt5je-2I)0%W=Ob*Sp1C)ToflY9d{e z2j0HgGpZ85j)Hv1r-BmEsxys|J&04laqQh|&#=20;r#Bwd9${Kj*&Yj zQ4>cv$&pZ=xo~;+h~^H=(khmj;G?r?YdaEHb7C9phBwL%QnZYs2YFlpq5a&$mS59- z6^aZ}M4vGQWK2?U;)HSKQQ)}K*rdP8Xry%ivRV44+T6bZMgK$g!~ZS9+h6Do|Drbc zXVKwb=c7LqhktE0{EhJTF9?bMknr}8DhvPpO!PPJR(}xQ{=mEaSxxw_Uc$c{i2gfk za~Jl;e=t7$&w1IuSDRD3lgh!)hH{^Ca)SB7*k9ABM^=h-}xm5`_s z%!_<#2nd}@QT4KzO0pIb)mHNYC}s_`8}o-zmT4w3I!edaniYGO-D+gnsIy2F2fHUK zAJxytm7@t9Htj_5Xtx#Rg4Qgrx1zoWqPE6wKD_`M9)jh&Na{X5HX##Z?7GqKQ~(4@ zO5})8C32|vv>Tnhid%W6MSqPkhk`nuiq2SXq^rE{+RG9zFyx9-Iu!*>#&e`!1xE^& zne02Kx>#wxrIT^DoCs681-5ro-nttcm9Ze5rttAm0hTOT!s+~3$D`mGueEob-^qX$ z6~U9M43TuHDpyXZsNHd%?7fH|0}i{c4xzA;eZt+LE62r-m$juFLu)jcrtgC7tLJEF z)N1U>INGJ1u&=EYnQ2&Vjj-RQ>x0lmuEYs5#|g@JV#prV0_dW7Bsy?G(#l$VK39x} zc*7*N1qh(NqhMZAJ0pC#!^O|#7J}R})fImHn@bf=42J6(X%-SEL=Z#c4GX{-H5n>S z_iG1+gZ|6wkDlf82#1_8BX||+)sfpfcjlO_cVyW8(KRRcB+W4anbnx0G{zF559-$z z9xOWFiehmkPBQ|RIb=%&eki}<$~{;?Z8m0J6JN{2U33ofUzkj>6TSH1*Rw+egRhOa zRhw~-1q)1e((Om4P)+5PHv;WS3rpxymQw1jxAZUzJptDtFvW)p#SiXzmEO!}!Kc>c zK9*6L6ySs0bs>WVcR?OlV|pz)_$*5rNg6Lzh}ZOsilUk-jisLTJ!-mmL+*u@NER`U zMD2G{CU@X_D}Cqqk%yWt_mQPt7uN*eu48&0R!b@G1jevMEhGoqQ469RWE@S8g76H{ z8G1T_&^N>2w-SUUQYRm8sa=j|Laz3aK=o7${g@+vpm3R=1EWL{+HILN>Uy8qkLJ)? zg?=3GA601GmbI@HdPb3~;ig_1EKM@wlKr#&d>&=$q;;2fud6kVF#-JmVaOg@)c}s> z>6pK}V{i(C*oDaQzeTPo<7w=^id!v zt+Cnyo3A>sUPNZeCHk%wpzY=Le!cHWZ|x*|rG5%rPe7wH##T`U<+lm`VsyEfXlMiUBa9AaB}e;}^3pu+&bJ*85mSxFXbH*(l6K z9s4<>o5WT0Rc3l+2IEDEpVz*{}>WV!0}c|;FD$o+gSQe#qT&m^GKix)Jjl}(E9>5x(J zT8^LOa{QZzH?=GWp=VX2SY~IMOK=Pr&5cv7spl^C!HMmFrd?+bO3kRZ(b10G)yUP0 z=|8K|Gf|Y@r%M&+SEBRr+ph_m2ug#MGFuT5)Pp)XHw(*~HXP36T@r_NYF@&Q*F%)$qbRuuxHhr-tow|Nyb8ZxsRDx79<_i)K;Tz;EGJ{nMs}fQq6$7E|qUR)x_vu z&hTPO^rh2l+<G)&8s` zu~ZpYc=yVVv!2rPmI#@)Gg}Yi^7)xkSO1>U0+)a*Web&`{OdftJg=bgd&)zGQqnJZ zg+{W?!Jl@PeR%l!`uDeQbCWtaNhTUJ+~-GBle&h4IKS}f*^V$2cMacV|8jM_qp>^( zKXR^R_%$v6$ExtPZzJmCU$c6DtVtz*L#W-MP@nrjmyxBUF4F>nz5TIq&#`NQcJQE> z?dJw||I;Lc@jp|`s~hSLOh#RkKoCBtTvRO5!2&OdEY zt1NNc4@88iK4h#4TRO6Sf33^zAatY8cS{e>h*$F)$I;nd-WY8s!?o42A#=E-X#bX zLc`vEKkuE^IzM^!o$yJeXej$+|D)Gq!dj5xk36lG?^njdCxyb#4;3QUsK0=A+QNQD z#X6r01)sSEti17kb`p3`DB!|Lb++M0)dj%?`3uL~h0Z~;xx-x)D9D2`#VHiUQc+Bb zSbj^aU@%rV2P@iz6`#XOoMNSzaWaay%a%C#V4PwOPPq%GI)_s`#le~JNJTtqlkSh! z-344h`od^4O?3RsPnhQ>VG%D{N_;qZ&cgp>gfE>2`7Jk(tmT&`73)nwK?kz)G#H3 zCYj5a_V4y~8miaBq_NqO8a_Ttl^J8d+1vR=wx5zfFT`UYQRhMGe3c7(dtLiXA{D9} z_@abZBu4 z?edWsx#$I?@^XGlla0|=yI%m1(~+cIw#k7PKRROm^sw4i!*%rZ7g5>rV8;ll`N}y}tXPB0X9(c=n^s(@ey)rC)Q-;nF_G*GiYvi-RAqvh$Pi zxgp)qTk(2Gn|XVcwW=X3o(gW9?_9oXzC)BYuL%P)M%XXxB_t7^?cNsiz@ePjL?rFcI)5Uv))0`>zPTQLh;+e4=&&L;HUVu%x)wIPX8hF#ISeDJ;jL5_DTiW%`y^0 zw4u?*NVdCzA?CrtEVHoAh7@*AaqZBpq^m`6>N=AfArGml4T?A*4-8<-)Z#3rERYn3ESI-Ry~Z02NWQe?k=E( zrG{>neY3{0_j01iPmC&PnXQ=@D?0F_m-r)N58fe0xI2F#yuH_PkPn7V@ZBj%KiAgx z2yVqkn8N{*UeWiYS{7X7U5gPMVFWJsLlVK%IGY^$|Ba1bIY`*hH89+ zQu-bEVS?F{yGr8}`JvoJWwZ0TOdoZN~Y)2Z9VrS*j-Bv zOaYRd23<`0QbFsCyCl)cmcX9l_~eU}&aIn%NP$^PF(?f`?UpZ^NH%x?H0tOTQlKpY zJ1%DPzOV1beZz}t9<0>|H?=Ov2Y2!Vpg+XZ=t^ObDd3+U!^L8 zIt~$dYS6XMm-esf!HdMRyH(XC2C`7>m5>cw)XZ=_^!@oEPT^?unigb&-%YrhB~j=x zO=DZEwkm;d*L5i5lOa%~xvFlz_L|q%gR%&1S4|lsaXp65mWItmGSJWz^h}h6FN%wd z^3Kb!uYM55XpyVbrBm0Sp96A2Ee%MKgLuXvFvt;tZ>^~h(G&)K@x|*&kC}!aW2*Rh zh`A&;8fBdT30Gc^ByS2zNf>?xIDltGq;5@Bee%nXs3D;ekRdoP9bQATLcYz3s1?%; zQA(w=7?lfEklr!Anl$HT^^oP&fOR`9?|}9XsSWd$RC3DI?|Rkpj&IBh2Hc5P=r|aT zq8PZvn_a0dX?~vs(U=cGm}RUGr2M3*G(+I4(&y9^fooO*6fnF zr4g-S9j-jsPG=R(Oc&g+4j#dTY9p!@Q-C55c&Vk*XP=^K1&#xRY^p)t8l%eggIRCN zp1o&df^Cj{fg`}^eS1WaF`H^530d53&RM%6fCOJ(sV~svPRwo?Gq;4>2>X1uu%DDx z$EnAhTbpki*6~n&qNv#JmWd0iHO=kxb``r3kupuWago!9zhEPR`u&)0q8MUf?K@(; z0~q_MOO>zqFbQp$aoI^h%^M6pCe$q}(T5nz!}3(D6S)kwf=AGUWx!!Z5u!B{T=UAf z0>X70GAgJdAa=p!p9HW3Gh5mhwYMxMoCl4SUo30^^@T&=buXJZDnz$U@c=B zo|U~`&%XG4ttOM@$uGGW+qd6^FfdEJ5L47GHQU-cnCw)Uorr?gTk+0SJ1en1H39M6->Tl%#;3Y&XGp$ zsu;!=@5!sW7k$5-tt&;p06^`oh-0BKNHOUfH`RX5eZ+6wVRG5|$%a8kPvV}zRW1~5 z;w3BU(qKB3FzRY&Nn<9ay!~b7LH#!kZ{YiF;7fOqtnV7rTr`B$EMG=J`8h}RO@AzJ zlASu0-bz86BB|`PRam;h>BDCG`6SR7$Vj3tCOEw7szk%I@VX7_0gF+(xy)BMaQB{aSIcyKv@2i);AJvtf>RE9GCeYBGoLLP|r8b>Bx0pHVf0MB0MjMjHclBG| zJjoJe^6rNE)iVc$+h4-Z-;vijd{n9I-!LXsvvi7dko)=Ril$0r#Lo=u$&X#)?{B%n zCXq0`1d6fulB z7-nq@n6_8fU9mm{e5_)O86hrr1cKX) z3jxK)cg5X1#a)2$z<1*9MhFD$I0r&}+z3IqCc1JnCTk?VpoWl2h`$fI2f~CtVNNI{ z+>4xxhr1_GVd6uD<3=~{g}BGLfD$REZfh#W#kmtk=MrBD$0*e#k_;q1o{Px@B?wt2 ztp_J95~9CcL^tMW(Gh~ki09``NGTjAa+)lqjU~FUw=1PcTBdv>#C*4eR8FQ;Lcp{v zsgU^;h*Bzp$Zz&`s7@+dZ3^W-+1q)Q()g{?1Vhq7OGR;FW zEps!iyEAR)Gwr`+Il@k+^L&(jE@6Jh>&q?~0lfsglrj(mum75iko0FTH*PUB1 zpNpHv^o?XxrT{=GL^KzbMk1^p3z+_b59RnTV2x!aAsFVVb`4Dy0 z=3BCWX(2=;a3Z1q+`M`7?+BTG2MYd0k?~?|c7YZAKZ(5;W3#`hbNw?`@FMyCZRkZ))9>N8wY9bF z|8Hc$3!&7XBjNv?zyEIdrP6Tm#R*U{D&(S^*mZsjzYGRj1Jf0i&jqc%HY0V~s$S$n ztx|QSzv`q5!EFS2Wa+D?%C!x)^?~iRCMD|k1Pd=FXM-~O#ka!KDiU7bcdXSt>weHs z(d_WQudYz9b2+=iJ74~rap!%9nDG7e*KarOFFgT%*=PT8S%-5d<-4fs zyDp#A=Qo8+ytkR#HgH9(8g!S^T#Fm>yRFr7M`As=lx7HNXWz=IQ4wdWvzLVFbYIk_ zHwcOdgUBhM{M;WQWtv+H3~WbJd(}MwR})opNgi2s=}5x{&u=qFIz5S|ggT~R3|poy zBuo#|RWAiM2cRtie%5R zz;KZ$!zcnkobGmn*M)M^xPJC%JS*WyE@^rM;^ zWEh%Ibm?a!5obd9WnXBax7^YuN|JrlEtm0Z>m%8D?k#Kd#freaCg0a^$lZs|e3dLZ zyhC@rqGe1O(rEtZn=7Hr993sijpUD~f;nqfCH&gkipqNm9?~W7ZwK!*Rw;_{;{%ob zaYc<2?w2~&3KcXuN#fX=8uuxXY^ax642|j$c%KhxbH;fUA$-CMjTz=2-fjg5>dt&N z|0NGYkqkanne*d~2Qsxuwi)nU%!-Az}ll2f}SaTuG+)+;8S$UuNdk2HqWd$!Vk zzjL5Y?_t)0Y_Rq88D}`QK!C7|syibB*vBdz8eV)prv*MnY?F5 zwWTJ^|N29<%Q_Tv!Z+8)Wlek#ZP#g6N6(Xvd9CfZa#8+rJy4^i{z}P5cfIOOR}JKE ztA73w^y){Qtq{r&KUqC)_nB#cI*E;6_hn~{9&ZZVrs&NiSql~$LCzNDpXP`6M)PuO ze(L1vmT2!VX<$0knBJ2R5ln*(Io{pr+S6YvEmgZ59PcH$8b{e2bm?F~QgeUqE9p&O zcQt?doYrTGpA%NkNoz4JZwAhE?4fm0k>5X&r|oJjP}RP4QIC)sAZ_1}qk6arq(ftV z!VhZiY+XZas(`{-haX}3xq;eg9J#O{%#rvc_Zcp|x}m%ocX~~ZDixOld(-V{L_{j^ zqeR5tRPFJ%r$Kc%b5g4oT$f9V_xUH*S7hu_F|@oWIwLlVtp;4{;hK+_xQ#ZK=>xz7 zboc7$4ju|MenM_fejAiq6kg|+qSMT6>}O+JInD>1@tWe!bzgi^WnL(lw;u<)?f_-& z7aC?rF#Dbghn1|v>EkN|8{jaGrPbIv>Q%hD7`~tA+k^X7+d!Ti5?y^BuxLLKna)0* z!-O|ZJ3;eu>Ik0C0`*8~nbODb9UU0DOcE#%7Ztt$Cti1Vw9#xX9ql&Wg0j+i;q@$wQZp%H4&^nF3buEZ>jMG4di26uRQUeB4pWw?j=x`xki{ z6xXgji`RA4MDyPDjb))PSg~8j)`)Hm+^+o31 zoW+96ZcO9nC0vzx0PsjDZ^QloDX`h>h4(Bem)wZkXBNxEcys!CPwjbag~7*bx^&|6 zRJP4NvI;|qm96Pwq_$F~(K8q_06OaSvmGMh;1u^t&nkBX(K%DWAf6W{{2xE8XkvEx zYBA?jf?SuE#~O3L29$!~Od}-f*JjZb*OANp%^6hYwrB+=CcGBrsP!T-S^o z3&#fgF=T~EutE)*xq-O`&8|#7fXAFSx@cW*C$KFU#hLouG7%$))HFLaUdDg}3sB@y z?owI4i$GrCU4(xc7C^8VUJ)SbY^eUQoHjc)(eOo`d42fNr9f`%oId@dckw!5M1hO? z*U!m#`xg^321o|+zF6XYv)GC^W5+|XSE6steK|_FK~CX!jbuAr$kCGfU7x^vB9U6k zip642Rz$&Cf@45O2u~S78h?~9rVY7JK@cQdvu06_hQr(H7L(s|64{69n@h zz(!-`0TR%_UFyNDsavcy)vL1VDK1Vnm=^AankS6G&UO5r0NVP5A+EL1QShnbATW-E zK^{JCvl2>t4Xb^>zTsxEX4xZL(TP8Bq!rk76TgYL_UOG3i@P=%T(z8wk-sxZ;>c=!^F8H^Ug$vHRe{t0|Jn2sk85OWmsq(b6*3+n*-U0Tr5{@-yZ`Y0Pzy?m;vwt zljTZGWbqW})f=K^4Pp*57BY9+s11{1Ba&aw?hL{Ji7PA)Cn5dWZlfnm4f}vE8(t(n z0JY}3DFY!})se@mEDaDKi}uaILqPZ&p0eh!#|qZPrDW9H;pjk|O@AawD{e@`x8jH; z4vpi`BI1i8-3wwVBf<`on)10bm-!G2ZQ4L9ftocUWOE+QW|0BXqAiPMBh=EP~m#2L%P+2F*voWzB$L~i;& zH6~U6C5!#nbtV4-@bNdv?ti4PiwO2N!`HudCI3pd^?#VT{(NmL{LgnKf5&|Mp1FQM zIR0hbJ4U!5z|0@ufNa$B!e zq)A;LD^N;J(N$6OTP{#1Tr?)(P75@UZ))dF0eZB~u2*V$tnHdZYoT8DOnIkIz(lG|=V!~#kho7rdO17q`$NAm z+UxI|R6I-7941LntaeUKe(FxM5}kbGDbLj_q9_8o6d6ZnM;6lMJNBB1D^tgqUwe;N zv&8)yRnIctt7;s1a)uoL+89n_LInGk;Kw(fdwuCu{<8a09G+Y<=}WN79Bl9Wa!}K% zQpl!PomO9xa`5r)C+QW90`~IYgN^6;l4;rxpJ?|#eDmSvej!;A>I12Hu|~NzCO_gd zv)TdbbovI3S#Sbz@#Hnjb2*bESDyycu>yD^G*z8Tk;RZXdkiyKwQ~^H`U7r_Y{eW0 z{L4%WJd>CpNl73vjj$unJ1Yx5+W`C~gkj~#y)0uw+Cno0q_NDK`UyJ9ra`f=$*&&1 z@BSg~CFvc3EV7$hWl>t*IwJ{>E`^wAiWB%G%oFX|F}hYFEy!Y&PEl zf+ugHmc<=m%}KFw&yEqffoklQcSV+O#w~|LXj(5-klf4>$=(kSsVO{n5II9LzsNk@ z%&3sb=By(gsNT-cp|h;^xNlXB$}kn&;e$09)=>m%JZ0Vxa2z~)T}__(r6eOr#vb3SGF*L7R(n4dh1{~qlRg3iaTo*n5{Z`K$V})1m`!s6-SpKx0Zsn99 z`*ofI>m67TwAQG;w@VrPK97uk$iA7yb?##*%`*n0BqPC8lKywf)wiDlA84;u_7^=} zdNgz_mcoWm4QicWp!6JS689MY@~}VR2fF%jUSB&z@bkFem>H18A0ff?er-_pDt^;y zo42Ao#6UgK!P4Y{&p((mm=mC`jXO=@m?+#me3imlsxePqc;)i>BT}*UfQGpUENQDC z+tOj98EfJRJdfx^rW?f?kACZ{Jft;ohpp(_I|e4qmu2LWuz-b{pG-1F5XlRKf4TBQ zzfKJ_;0*E7JLGfaypA_yEiOW|ZYP)gBcI>Q3-6RVDH>MWHm{;4lWhtp)?qI1@rQ2M z_)E3;?&)O}!OynIIvz*DWAB@w2-xjD#L5Dv+t=rvYhi|yTp8MaDjT#v8m%`UsV#hN zv-k)Gs`ZPk(&32nC!&~mel^|?UpHnBY!ym*Y^TTL(rL1sK^T4hf}(qc=cbtUG09SvSUo_7N-VbrN!CTuS*M_@FE z&$h}O0hBil_TIHgosy=*vTG6`TVt=EdS5&oCDNMZYn)WYVrI(Wjzi{r{^0aiZSrpX zll5jz88rh8btdpKgE0u!=UbaceZHYqykIqx)7%K^CgEC)XH?lANKPPqi>~i%<{CXxv?A5*G5U zvi2{lqCEK}q#a`1>+3&L6>(84lO327b!=8{!4Q+N3|H#!Lh%wP@PLr4*;f73^MNbG zp5_!c97%W0k~MkWRGu0RQ7U=tmmd$k=e{h{2CKTMpD8LQo>+EWLo_i~iIkN8xItG} zu>n3!gi{3O4A#BdAeQMT?ryyao4%BC(^Wqe6^yV-9cw{oF2yh;$W@7GuB!>`W7uIi z_PE!EHzJn*R{%-_wfxQ)M#l(j=$rl~YVg`DQ}m4;Xd=Bv@rXJng1a%f#3Qso1u9^H z3T5yk6S{^VLGmzzd8_YqAs~)31JG4&u;jx)i~fq=sV# zqEKwQjKTyGaI+jG0D>OqxY=SE#R)8oUPsn60w(w}w&_xaeRg}25-@=l5;<_OX*)0A@#f*u_rvv#0&-Y!|!P$<6>4q?efk-{e!vR=1mM3p^l88P=_5b! zoM(UNhhKdL6u<<|M-X<<0ls&C*hhWWH+}rqf9hv_h$jIPS9yr+*IE zdfR7xes=&FpmKO81DIET$)|xE$bJsEf7}Or0sw#kI1numeJF^1E!cS&Xn+j}e4|$Y z9}s^lR|ExEf5+E>IjDUJxPuIM05A}Pb9DhUXoDtbgs+Ey>4$^%cX$UNZceBL3BY$c zsDQ)=d*t_f>PLMEAOJ?-gax4m3{Ze*h=XP*eC9WLEEszNkOXXK5MFQqD2b3biII4Tn23o0V2J^+i6CG}ig*yAa0O5h b1*Uk4rdW!ph>EP(imv#IsaT3@6c7MAHCHwR literal 0 HcmV?d00001 diff --git a/src/images/search01.png b/src/images/search01.png new file mode 100644 index 0000000000000000000000000000000000000000..a65df2f53cb87078a1cf8b93daad3cb1cb644f24 GIT binary patch literal 786 zcmV+t1MU2YP)W@)31A~XL_cqx+kQ6 z_%1Wuf4w*L`c+jAP^wg^390F%lMIl@#HQZ^<+Vo>ob)x>csF`FfHr^ji7uapYU2PDHznOZ6!4+m5{} z8c>7uI`(cu*j|6Yv|Zb0QFu+;I-fNWi zuw(CvmLS|gekBVXdS5`8z;TDZRnoosv?I^82sd=nqE|ZdwQ4oYNh>%S?#$>n8_|8x znT&p^q!%1%sU1!Fw3CO*>l56TWum5%2WnuM_5)~ab(XSuqdbKB$nktU59U0e19(NY zq4pU;y3Kh+4>6iS_}QjdC8x8imLQ}P!{i9LglM1FWpgU_naqrIqV_zJkT(yz z$U94LwUDxtwIrzdgO+PvlKFWgA(CU@UUC=F1AiQug%hy1$`_XFb4? - - -); +function PageNotFound() { + return ( +

    +

    Sorry, no matching page

    +
    + ) +} + +ReactDOM.render( + + + + + }> + }> + } /> + } /> + } /> + } /> + } /> + + } + /> + } + /> + } /> + } + /> + } + /> + } /> + } /> + + + + + , + document.getElementById('root') +) + +reportWebVitals() -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/src/store/features/CatCorresponsales/CatCorresponsalesSlice.ts b/src/store/features/CatCorresponsales/CatCorresponsalesSlice.ts new file mode 100644 index 0000000..aadf219 --- /dev/null +++ b/src/store/features/CatCorresponsales/CatCorresponsalesSlice.ts @@ -0,0 +1,42 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICatCorresponsales from '../../../Interfaces/Catalogos/ICatCorresponsales'; +const CatCorresponsales: ICatCorresponsales[] = [{id:0, nombre:'-Seleccione-', patente:0, aduana:0, correos:''}] +const initialState = { CatCorresponsales } + +export const CatCorresponsalesSlice = createSlice({ + name: 'CatCorresponsales', + initialState: initialState, + reducers: { + populateCatCorresponsales : (state, action: PayloadAction) => { + state.CatCorresponsales = [] + state.CatCorresponsales.push(... action.payload) + }, + addCatCorresponsales : (state, action: PayloadAction) => { + var Existe = state.CatCorresponsales.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CatCorresponsales.push(action.payload) + }, + updateCatCorresponsales : (state, action: PayloadAction) => { + const i = state.CatCorresponsales.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CatCorresponsales[i] = action.payload; + else state.CatCorresponsales.push(action.payload); + + }, + deleteCatCorresponsales : (state, action: PayloadAction) => { + const newArr = state.CatCorresponsales.filter(data => data.id != action.payload); + state.CatCorresponsales=newArr + }, + InitCatCorresponsales : (state, action: PayloadAction) => { + state.CatCorresponsales.splice(0,state.CatCorresponsales.length-1) + // state.CatCorresponsales = [{id:0, factura:'-Seleccione-', idTrafico:0, valorFacturaDls:0, proveedor:0}] + }, + }, +}) + +export const { addCatCorresponsales, + populateCatCorresponsales, + updateCatCorresponsales, + deleteCatCorresponsales, + InitCatCorresponsales } = CatCorresponsalesSlice.actions; +export default CatCorresponsalesSlice.reducer; diff --git a/src/store/features/CatProveedores/CatProveedoresSlice.ts b/src/store/features/CatProveedores/CatProveedoresSlice.ts new file mode 100644 index 0000000..bd068c7 --- /dev/null +++ b/src/store/features/CatProveedores/CatProveedoresSlice.ts @@ -0,0 +1,33 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICatProveedores from '../../../Interfaces/Catalogos/ICatProveedores'; +const CatalogoProveedores: ICatProveedores[] = [{id:0, nombre:'- Seleccione proveedor -', clasificacion:0}] +const initialState = { CatalogoProveedores } + +export const CatProveedoresSlice = createSlice({ + name: 'CatProveedores', + initialState: initialState, + reducers: { + populateCatProveedores : (state, action: PayloadAction) => { + state.CatalogoProveedores=[{id:0, nombre:'- Seleccione proveedor -', clasificacion:0}] + state.CatalogoProveedores.push(...action.payload) + }, + addCatProveedores : (state, action: PayloadAction) => { + var Existe = state.CatalogoProveedores.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CatalogoProveedores.push(action.payload) + }, + updateCatProveedores : (state, action: PayloadAction) => { + const i = state.CatalogoProveedores.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CatalogoProveedores[i] = action.payload; + else state.CatalogoProveedores.push(action.payload); + }, + deleteCatProveedores : (state, action: PayloadAction) => { + const newArr = state.CatalogoProveedores.filter(data => data.id != action.payload); + state.CatalogoProveedores=newArr + }, + }, +}) + +export const { addCatProveedores, populateCatProveedores, updateCatProveedores, deleteCatProveedores } = CatProveedoresSlice.actions; +export default CatProveedoresSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesAnticiposSlice.ts b/src/store/features/Corresponsales/CorresponsalesAnticiposSlice.ts new file mode 100644 index 0000000..dda6011 --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesAnticiposSlice.ts @@ -0,0 +1,62 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalAnticipos from '../../../Interfaces/Corresponsales/ICorresponsalAnticipos'; +const CorresponsalesAnticipos: ICorresponsalAnticipos[] = + [{ id: 0, + idTrafico: 0, + anticipo: 0, + moneda: 0, + concepto: '', + solicita: 0, + fhSolicita: '', + autoriza: 0, + fhAutoriza: '', + financiado:0, + activo: false}] +const initialState = { CorresponsalesAnticipos } + +export const CorresponsalesAnticiposSlice = createSlice({ + name: 'CorresponsalesAnticipos', + initialState: initialState, + reducers: { + populateCorresponsalesAnticipos : (state, action: PayloadAction) => { + state.CorresponsalesAnticipos = [{ id: 0, idTrafico: 0, anticipo: 0, moneda: 0, concepto: '-Seleccione-', solicita: 0, fhSolicita: '', autoriza: 0, fhAutoriza: '', financiado: 0, activo: false}] + state.CorresponsalesAnticipos.push(... action.payload) + }, + addCorresponsalesAnticipos : (state, action: PayloadAction) => { + var Existe = state.CorresponsalesAnticipos.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CorresponsalesAnticipos.push(action.payload) + }, + updateCorresponsalesAnticipos : (state, action: PayloadAction) => { + const i = state.CorresponsalesAnticipos.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesAnticipos[i] = action.payload; + else state.CorresponsalesAnticipos.push(action.payload); + }, + deleteCorresponsalesAnticipos : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesAnticipos.filter(data => data.id != action.payload); + state.CorresponsalesAnticipos=newArr + }, + InitCorresponsalesAnticipos : (state, action: PayloadAction) => { + state.CorresponsalesAnticipos=[{ + id: 0, + idTrafico: 0, + anticipo: 0, + moneda: 0, + concepto: '-Seleccione-', + solicita: 0, + fhSolicita: '', + autoriza: 0, + fhAutoriza: '', + financiado: 0, + activo: false}] + }, + }, +}) + +export const { addCorresponsalesAnticipos, + populateCorresponsalesAnticipos, + updateCorresponsalesAnticipos, + deleteCorresponsalesAnticipos, + InitCorresponsalesAnticipos } = CorresponsalesAnticiposSlice.actions; +export default CorresponsalesAnticiposSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts b/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts new file mode 100644 index 0000000..1ada465 --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesContenedoresSlice.ts @@ -0,0 +1,39 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalContenedores from '../../../Interfaces/Corresponsales/ICorresponsalContenedores'; +const CorresponsalesContenedores: ICorresponsalContenedores[] = [{id:0, contenedor:'-Seleccione-', idTrafico:0, fSemaforo:'', semaforo:0}] +const initialState = { CorresponsalesContenedores } + +export const CorresponsalesContenedoresSlice = createSlice({ + name: 'CorresponsalesContenedores', + initialState: initialState, + reducers: { + populateCorresponsalesContenedores : (state, action: PayloadAction) => { + }, + addCorresponsalesContenedores : (state, action: PayloadAction) => { + var Existe = state.CorresponsalesContenedores.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CorresponsalesContenedores.push(action.payload) + }, + updateCorresponsalesContenedores : (state, action: PayloadAction) => { + const i = state.CorresponsalesContenedores.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesContenedores[i] = action.payload; + else state.CorresponsalesContenedores.push(action.payload); + }, + deleteCorresponsalesContenedores : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesContenedores.filter(data => data.id != action.payload); + state.CorresponsalesContenedores=newArr + }, + InitCorresponsalesContenedores : (state, action: PayloadAction) => { + //state.CorresponsalesContenedores.splice(0,state.CorresponsalesContenedores.length-1) + state.CorresponsalesContenedores=[{id:0, contenedor:'-Seleccione-', idTrafico:0, fSemaforo:'', semaforo:0}] + }, + }, +}) + +export const { addCorresponsalesContenedores, + populateCorresponsalesContenedores, + updateCorresponsalesContenedores, + deleteCorresponsalesContenedores, + InitCorresponsalesContenedores } = CorresponsalesContenedoresSlice.actions; +export default CorresponsalesContenedoresSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice.ts b/src/store/features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice.ts new file mode 100644 index 0000000..e087a6d --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice.ts @@ -0,0 +1,44 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalCuentaComplementariaEstatus from '../../../Interfaces/Corresponsales/ICorresponsalCuentaComplementariaEstatus'; +const CorresponsalesCuentasComplementariasEstatus: ICorresponsalCuentaComplementariaEstatus[] = +[{id:0, estatus:'-Seleccione-'}] +const initialState = { CorresponsalesCuentasComplementariasEstatus } + +export const CorresponsalesCuentasComplementariasEstatusSlice = createSlice({ + name: 'CorresponsalesCuentasComplementariasEstatus', + initialState: initialState, + reducers: { + populateCorresponsalesCuentasComplementariasEstatus : (state, action: PayloadAction) => { + state.CorresponsalesCuentasComplementariasEstatus = [] + state.CorresponsalesCuentasComplementariasEstatus.push(... action.payload) + }, + addCorresponsalesCuentasComplementariasEstatus : (state, action: PayloadAction) => { + var Existe = state.CorresponsalesCuentasComplementariasEstatus.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CorresponsalesCuentasComplementariasEstatus.push(action.payload) + }, + updateCorresponsalesCuentasComplementariasEstatus : (state, action: PayloadAction) => { + console.log('informacion pasada al store: '+JSON.stringify(action.payload)) + const i = state.CorresponsalesCuentasComplementariasEstatus.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesCuentasComplementariasEstatus[i] = action.payload; + else state.CorresponsalesCuentasComplementariasEstatus.push(action.payload); + console.log('valor de i:'+i) + console.log(JSON.stringify(state.CorresponsalesCuentasComplementariasEstatus)) + }, + deleteCorresponsalesCuentasComplementariasEstatus : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesCuentasComplementariasEstatus.filter(data => data.id != action.payload); + state.CorresponsalesCuentasComplementariasEstatus=newArr + }, + InitCorresponsalesCuentasComplementariasEstatus : (state, action: PayloadAction) => { + state.CorresponsalesCuentasComplementariasEstatus=[{id:0, estatus:'-Seleccione-'}] + }, + }, +}) + +export const { addCorresponsalesCuentasComplementariasEstatus, + populateCorresponsalesCuentasComplementariasEstatus, + updateCorresponsalesCuentasComplementariasEstatus, + deleteCorresponsalesCuentasComplementariasEstatus, + InitCorresponsalesCuentasComplementariasEstatus } = CorresponsalesCuentasComplementariasEstatusSlice.actions; +export default CorresponsalesCuentasComplementariasEstatusSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesFacturasSlice.ts b/src/store/features/Corresponsales/CorresponsalesFacturasSlice.ts new file mode 100644 index 0000000..6bdc00e --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesFacturasSlice.ts @@ -0,0 +1,89 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; +import ICorresponsalFacturas from '../../../Interfaces/Corresponsales/ICorresponsalFacturas'; +const CorresponsalesFacturas: ICorresponsalFacturas[] = [ + { + id: 0, + factura: '-Seleccione-', + idTrafico: 0, + valorFacturaDls: 0, + proveedor: 0, + pedido: '', + code: 0, + folioGEMCO: '', + }, +]; +const initialState = { CorresponsalesFacturas }; + +export const CorresponsalesFacturasSlice = createSlice({ + name: 'CorresponsalesFacturas', + initialState: initialState, + reducers: { + populateCorresponsalesFacturas: ( + state, + action: PayloadAction + ) => { + state.CorresponsalesFacturas = [ + { + id: 0, + factura: '-Seleccione-', + idTrafico: 0, + valorFacturaDls: 0, + proveedor: 0, + pedido: '', + code: 0, + folioGEMCO: '', + }, + ]; + state.CorresponsalesFacturas.push(...action.payload); + }, + addCorresponsalesFacturas: ( + state, + action: PayloadAction + ) => { + var Existe = state.CorresponsalesFacturas.find(function (item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CorresponsalesFacturas.push(action.payload); + }, + updateCorresponsalesFacturas: ( + state, + action: PayloadAction + ) => { + const i = state.CorresponsalesFacturas.findIndex( + (_element) => _element.id === action.payload.id + ); + if (i > -1) state.CorresponsalesFacturas[i] = action.payload; + else state.CorresponsalesFacturas.push(action.payload); + }, + deleteCorresponsalesFacturas: (state, action: PayloadAction) => { + const newArr = state.CorresponsalesFacturas.filter( + (data) => data.id != action.payload + ); + state.CorresponsalesFacturas = newArr; + }, + InitCorresponsalesFacturas: (state, action: PayloadAction) => { + // state.CorresponsalesFacturas.splice(0,state.CorresponsalesFacturas.length-1) + state.CorresponsalesFacturas = [ + { + id: 0, + factura: '-Seleccione-', + idTrafico: 0, + valorFacturaDls: 0, + proveedor: 0, + pedido: '', + code: 0, + folioGEMCO: '', + }, + ]; + }, + }, +}); + +export const { + addCorresponsalesFacturas, + populateCorresponsalesFacturas, + updateCorresponsalesFacturas, + deleteCorresponsalesFacturas, + InitCorresponsalesFacturas, +} = CorresponsalesFacturasSlice.actions; +export default CorresponsalesFacturasSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesFacturasTercerosSlice.ts b/src/store/features/Corresponsales/CorresponsalesFacturasTercerosSlice.ts new file mode 100644 index 0000000..6992ced --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesFacturasTercerosSlice.ts @@ -0,0 +1,40 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalFacturasTerceros from '../../../Interfaces/Corresponsales/ICorresponsalFacturasTerceros'; +const CorresponsalesFacturasTerceros: ICorresponsalFacturasTerceros[] = [{id:0, factura:'-Seleccione-', idProveedor:0, idTrafico:0}] +const initialState = { CorresponsalesFacturasTerceros } + +export const CorresponsalesFacturasTercerosSlice = createSlice({ + name: 'CorresponsalesFacturasTerceros', + initialState: initialState, + reducers: { + populateCorresponsalesFacturasTerceros : (state, action: PayloadAction) => { + state.CorresponsalesFacturasTerceros = [{id:0, factura:'-Seleccione-', idProveedor:0, idTrafico:0}] + state.CorresponsalesFacturasTerceros.push(...action.payload) + }, + addCorresponsalesFacturasTerceros : (state, action: PayloadAction) => { + var Existe = state.CorresponsalesFacturasTerceros.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CorresponsalesFacturasTerceros.push(action.payload) + }, + updateCorresponsalesFacturasTerceros : (state, action: PayloadAction) => { + const i = state.CorresponsalesFacturasTerceros.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesFacturasTerceros[i] = action.payload; + else state.CorresponsalesFacturasTerceros.push(action.payload); + }, + deleteCorresponsalesFacturasTerceros : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesFacturasTerceros.filter(data => data.id != action.payload); + state.CorresponsalesFacturasTerceros=newArr + }, + InitCorresponsalesFacturasTerceros : (state, action: PayloadAction) => { + state.CorresponsalesFacturasTerceros.splice(0,state.CorresponsalesFacturasTerceros.length-1) + }, + }, +}) + +export const { addCorresponsalesFacturasTerceros, + populateCorresponsalesFacturasTerceros, + updateCorresponsalesFacturasTerceros, + deleteCorresponsalesFacturasTerceros, + InitCorresponsalesFacturasTerceros } = CorresponsalesFacturasTercerosSlice.actions; +export default CorresponsalesFacturasTercerosSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesGuiasSlice.ts b/src/store/features/Corresponsales/CorresponsalesGuiasSlice.ts new file mode 100644 index 0000000..7bf167c --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesGuiasSlice.ts @@ -0,0 +1,34 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalesGuias from '../../../Interfaces/Corresponsales/ICorresponsalesGuias'; +const CorresponsalesGuias: ICorresponsalesGuias[] = [{id:0, guia:'-Seleccione-', idTrafico:0}] +const initialState = { CorresponsalesGuias } + +export const CorresponsalesGuiasSlice = createSlice({ + name: 'CorresponsalesGuias', + initialState: initialState, + reducers: { + populateCorresponsalesGuias : (state, action: PayloadAction) => { + state.CorresponsalesGuias=[{id:0, guia:'-Seleccione-', idTrafico:0}] + state.CorresponsalesGuias.push(... action.payload) + }, + updateCorresponsalesGuias : (state, action: PayloadAction) => { + const i = state.CorresponsalesGuias.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesGuias[i] = action.payload; + else state.CorresponsalesGuias.push(action.payload); + }, + deleteCorresponsalesGuias : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesGuias.filter(data => data.id != action.payload); + state.CorresponsalesGuias=newArr + }, + InitCorresponsalesGuias : (state, action: PayloadAction) => { + state.CorresponsalesGuias=[{id:0, guia:'-Seleccione-', idTrafico:0}] + }, + }, +}) + +export const { + populateCorresponsalesGuias, + updateCorresponsalesGuias, + deleteCorresponsalesGuias, + InitCorresponsalesGuias } = CorresponsalesGuiasSlice.actions; +export default CorresponsalesGuiasSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesPartidasSlice.ts b/src/store/features/Corresponsales/CorresponsalesPartidasSlice.ts new file mode 100644 index 0000000..03a10f9 --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesPartidasSlice.ts @@ -0,0 +1,36 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalesPartidas from '../../../Interfaces/Corresponsales/ICorresponsalPedimentoPartidas'; +const CorresponsalesPartidas: ICorresponsalesPartidas[] = [{id:0, idTrafico:0, partida:0, idFactura:0, factura:'', proveedor:'', descripcionMaterial:'', fraccionArancelaria:'', valorAduana:0, dta:0, igi:0, ieps:0, activo:0}] +const initialState = { CorresponsalesPartidas } + +export const CorresponsalesPartidasSlice = createSlice({ + name: 'CorresponsalesPartidas', + initialState: initialState, + reducers: { + populateCorresponsalesPartidas : (state, action: PayloadAction) => { + state.CorresponsalesPartidas=CorresponsalesPartidas + // state.CorresponsalesPartidas.push(... action.payload) + state.CorresponsalesPartidas=action.payload + }, + updateCorresponsalesPartidas : (state, action: PayloadAction) => { + console.log('action.payload='+action.payload); + const i = state.CorresponsalesPartidas.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesPartidas[i] = action.payload; + else state.CorresponsalesPartidas.push(action.payload); + }, + deleteCorresponsalesPartidas : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesPartidas.filter(data => data.id !== action.payload); + state.CorresponsalesPartidas=newArr + }, + InitCorresponsalesPartidas : (state, action: PayloadAction) => { + state.CorresponsalesPartidas=CorresponsalesPartidas + }, + }, +}) + +export const { + populateCorresponsalesPartidas, + updateCorresponsalesPartidas, + deleteCorresponsalesPartidas, + InitCorresponsalesPartidas } = CorresponsalesPartidasSlice.actions; +export default CorresponsalesPartidasSlice.reducer; diff --git a/src/store/features/Corresponsales/CorresponsalesTraficoSlice.ts b/src/store/features/Corresponsales/CorresponsalesTraficoSlice.ts new file mode 100644 index 0000000..0b5fd6a --- /dev/null +++ b/src/store/features/Corresponsales/CorresponsalesTraficoSlice.ts @@ -0,0 +1,73 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import ICorresponsalTrafico from '../../../Interfaces/Corresponsales/ICorresponsalTrafico'; +const CorresponsalesTrafico: ICorresponsalTrafico[] = [{ + id: 0, + folioGemco: '', + fechaRegistro: '', + idUsuario: 0, + idCliente: 0, + tipoOperacion: 0, + opEntrada: 0, + opSalida: 0, + idCorresponsal: 0, + bultos: 0, + kilos: 0, + estatus: 0, + trafico: '', + aduana: 0, + patente: 0, + pedimento: 0, + clave: '', + fechaPago: '', + tipoCambio: 0, + valorAduanaMN: 0, + totalPagado: 0, + valorFacturaMN: 0, + cantidadFracciones: 0, + buque: '', + valorFacturaDls: 0, + descripcionMercancia: '', + observaciones: '', + fechaDesaduanamiento: '', + semaforoFiscal: 0, + noCuenta: '', + fechaCuenta: '', + tipoMercancia: 0, + ultimaActualizacion: '', + zipgemco:'', + zipCorresponsales:'', + proceso:0, + rechazado:0, + idTabulador:0, + noRecti:0, + estatusCode:0, + activo: 0, +}] +const initialState = { CorresponsalesTrafico } + +export const CorresponsalesTraficoSlice = createSlice({ + name: 'CorresponsalesTrafico', + initialState: initialState, + reducers: { + populateCorresponsalesTrafico : (state, action: PayloadAction) => { + }, + addCorresponsalesTrafico : (state, action: PayloadAction) => { + var Existe = state.CorresponsalesTrafico.find(function(item) { + return item.id === action.payload.id; + }); + if (!Existe) state.CorresponsalesTrafico.push(action.payload) + }, + updateCorresponsalesTrafico : (state, action: PayloadAction) => { + const i = state.CorresponsalesTrafico.findIndex(_element => _element.id === action.payload.id); + if (i > -1) state.CorresponsalesTrafico[i] = action.payload; + else state.CorresponsalesTrafico.push(action.payload); + }, + deleteCorresponsalesTrafico : (state, action: PayloadAction) => { + const newArr = state.CorresponsalesTrafico.filter(data => data.id != action.payload.id); + state.CorresponsalesTrafico=newArr + }, + }, +}) + +export const { addCorresponsalesTrafico, populateCorresponsalesTrafico, updateCorresponsalesTrafico, deleteCorresponsalesTrafico } = CorresponsalesTraficoSlice.actions; +export default CorresponsalesTraficoSlice.reducer; diff --git a/src/store/features/Reportes/ArchivoElectronico.ts b/src/store/features/Reportes/ArchivoElectronico.ts new file mode 100644 index 0000000..5ed3577 --- /dev/null +++ b/src/store/features/Reportes/ArchivoElectronico.ts @@ -0,0 +1,26 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import IArchivoElectronico from '../../../Interfaces/IArchivoElectronico'; +import type { RootState } from '../../store' + +const initialState = { + Referencia: '', + Pedimento: '', + NoCliente: 0 +} + +export const ArchivoElectronicoSlice = createSlice({ + name: 'ArchivoElectronico', + initialState, + reducers: { + setArchivoElectronico: (state, action: PayloadAction) => { + console.log('Cambio de valor: '+JSON.stringify(action)); + state.Referencia = action.payload.Referencia; + state.Pedimento = action.payload.PedimentoLargo; + state.NoCliente = action.payload.NoCliente; + } + }, +}) + +export const { setArchivoElectronico } = ArchivoElectronicoSlice.actions; +//export const selectuserStatus = (state: RootState) => state.userStatus.value +export default ArchivoElectronicoSlice.reducer; diff --git a/src/store/features/userStatusSlice/userStatusSlice.ts b/src/store/features/userStatusSlice/userStatusSlice.ts new file mode 100644 index 0000000..60c6223 --- /dev/null +++ b/src/store/features/userStatusSlice/userStatusSlice.ts @@ -0,0 +1,20 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import type { RootState } from '../../store' + +const initialState = { + value: false +} + +export const userStatusSlice = createSlice({ + name: 'userStatus', + initialState, + reducers: { + logued: (state, action: PayloadAction) => { + state.value = action.payload; + } + }, +}) + +export const { logued } = userStatusSlice.actions; +export const selectuserStatus = (state: RootState) => state.userStatus.value +export default userStatusSlice.reducer; diff --git a/src/store/hooks.ts b/src/store/hooks.ts new file mode 100644 index 0000000..f36eb5d --- /dev/null +++ b/src/store/hooks.ts @@ -0,0 +1,6 @@ +import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux' +import type { RootState, AppDispatch } from './store' + +// Use throughout your app instead of plain `useDispatch` and `useSelector` +export const useAppDispatch = () => useDispatch() +export const useAppSelector: TypedUseSelectorHook = useSelector \ No newline at end of file diff --git a/src/store/store.ts b/src/store/store.ts new file mode 100644 index 0000000..6f61208 --- /dev/null +++ b/src/store/store.ts @@ -0,0 +1,32 @@ +import { configureStore } from '@reduxjs/toolkit' +import userStatusReducer from './features/userStatusSlice/userStatusSlice' +import ArchivoElectronicoSlice from './features/Reportes/ArchivoElectronico' +import CatProveedoresSlice from './features/CatProveedores/CatProveedoresSlice' +import CatCorresponsalesSlice from './features/CatCorresponsales/CatCorresponsalesSlice' +import CorresponsalesFacturasSlice from './features/Corresponsales/CorresponsalesFacturasSlice' +import CorresponsalesFacturasTercerosSlice from './features/Corresponsales/CorresponsalesFacturasTercerosSlice' +import CorresponsalesContenedoresSlice from './features/Corresponsales/CorresponsalesContenedoresSlice' +import CorresponsalesAnticipos from './features/Corresponsales/CorresponsalesAnticiposSlice' +import CorresponsalesGuiasSlice from './features/Corresponsales/CorresponsalesGuiasSlice' +import CorresponsalesPartidasSlice from './features/Corresponsales/CorresponsalesPartidasSlice' +import CorresponsalesCuentasComplementariasEstatusSlice from './features/Corresponsales/CorresponsalesCuentasComplementariasEstatusSlice' + + +export const store = configureStore({ + reducer: { + userStatus: userStatusReducer, + ArchivoElectronico: ArchivoElectronicoSlice, + CatProveedores: CatProveedoresSlice, + CatCorresponsales: CatCorresponsalesSlice, + CFData: CorresponsalesFacturasSlice, + CF3rosData: CorresponsalesFacturasTercerosSlice, + CCData : CorresponsalesContenedoresSlice, + CAnticipos: CorresponsalesAnticipos, + CGuias: CorresponsalesGuiasSlice, + CPartidas: CorresponsalesPartidasSlice, + CCueCompEstatus : CorresponsalesCuentasComplementariasEstatusSlice + } +}) + +export type RootState = ReturnType +export type AppDispatch = typeof store.dispatch \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..868a4a0 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,10077 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.0.1": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" + integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@apideck/better-ajv-errors@^0.3.1": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" + integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== + dependencies: + json-schema "^0.4.0" + jsonpointer "^5.0.0" + leven "^3.1.0" + +"@babel/cli@^7.21.0": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.21.5.tgz#a685a5b50b785f2edfbf6e042c1265c653547d9d" + integrity sha512-TOKytQ9uQW9c4np8F+P7ZfPINy5Kv+pizDIUwSVH8X5zHgYHV4AA8HE5LA450xXeu4jEfmUckTYvv1I4S26M/g== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + commander "^4.0.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.2.0" + make-dir "^2.1.0" + slash "^2.0.0" + optionalDependencies: + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" + chokidar "^3.4.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.8.3": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": + version "7.21.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" + integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== + +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.21.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" + integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helpers" "^7.21.5" + "@babel/parser" "^7.21.8" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/eslint-parser@^7.16.3": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz#59fb6fc4f3b017ab86987c076226ceef7b2b2ef2" + integrity sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.21.5", "@babel/generator@^7.7.2": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" + integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== + dependencies: + "@babel/types" "^7.21.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" + integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" + integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" + integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + semver "^6.3.0" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" + integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + semver "^6.3.0" + +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" + integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" + integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" + integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" + integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-member-expression-to-functions" "^7.21.5" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" + integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" + integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" + +"@babel/plugin-external-helpers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.18.6.tgz#58f2a6eca8ad05bc130de8cec569c43dc19b6deb" + integrity sha512-wNqc87qjLvsD1PIMQBzLn1bMuTlGzqLzM/1VGQ22Wm51cbCWS9k71ydp5iZS4hjwQNuTWSn/xbZkkusNENwtZg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-async-generator-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" + integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.16.4": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63" + integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/plugin-syntax-decorators" "^7.21.0" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" + integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78" + integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.18.6": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" + integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" + integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-async-to-generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" + integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-flow" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-systemjs@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" + integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" + integrity sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" + integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx-development@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" + integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.18.6" + +"@babel/plugin-transform-react-jsx@^7.18.6": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz#bd98f3b429688243e4fa131fe1cbb2ef31ce6f38" + integrity sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/types" "^7.21.5" + +"@babel/plugin-transform-react-pure-annotations@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" + integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.16.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" + integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== + dependencies: + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-plugin-utils" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typescript@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" + integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" + +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.20.2": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" + integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" + "@babel/plugin-proposal-async-generator-functions" "^7.20.7" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.21.0" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.21.0" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-to-generator" "^7.20.7" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.21.5" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.20.11" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.21.3" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.20.7" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.21.5" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" + integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-react-display-name" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/plugin-transform-react-jsx-development" "^7.18.6" + "@babel/plugin-transform-react-pure-annotations" "^7.18.6" + +"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.21.0": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz#68292c884b0e26070b4d66b202072d391358395f" + integrity sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-typescript" "^7.21.3" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" + integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.20.5", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.5", "@babel/traverse@^7.7.2": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" + integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.5" + "@babel/types" "^7.21.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" + integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@csstools/normalize.css@*": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" + integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@emotion/unitless@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec" + integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/expect-utils@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" + integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== + dependencies: + jest-get-type "^29.4.3" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== + dependencies: + "@sinclair/typebox" "^0.25.16" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== + dependencies: + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== + dependencies: + "@jest/schemas" "^29.4.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.3.tgz#8108265659d4c33e72ffe14e33d6cc5eb59f2fda" + integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": + version "0.5.10" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" + integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== + dependencies: + ansi-html-community "^0.0.8" + common-path-prefix "^3.0.0" + core-js-pure "^3.23.3" + error-stack-parser "^2.0.6" + find-up "^5.0.0" + html-entities "^2.1.0" + loader-utils "^2.0.4" + schema-utils "^3.0.0" + source-map "^0.7.3" + +"@popperjs/core@^2.11.6", "@popperjs/core@^2.9.2": + version "2.11.7" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.7.tgz#ccab5c8f7dc557a52ca3288c10075c9ccd37fff7" + integrity sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw== + +"@react-aria/ssr@^3.5.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.6.0.tgz#e5d52bd1686ff229f68f806cf94ee29dd9f54fb7" + integrity sha512-OFiYQdv+Yk7AO7IsQu/fAEPijbeTwrrEYvdNoJ3sblBBedD5j5fBTNWrUPNVlwC4XWWnWTCMaRIVsJujsFiWXg== + dependencies: + "@swc/helpers" "^0.4.14" + +"@reduxjs/toolkit@^1.9.5": + version "1.9.5" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.5.tgz#d3987849c24189ca483baa7aa59386c8e52077c4" + integrity sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ== + dependencies: + immer "^9.0.21" + redux "^4.2.1" + redux-thunk "^2.4.2" + reselect "^4.1.8" + +"@remix-run/router@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.6.1.tgz#3a3a408481a3796f45223a549c2571517bc8af2d" + integrity sha512-YUkWj+xs0oOzBe74OgErsuR3wVn+efrFhXBWrit50kOiED+pvQe2r6MWY0iJMQU/mSVKxvNzL4ZaYvjdX+G7ZA== + +"@restart/hooks@^0.4.9": + version "0.4.9" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.9.tgz#ad858fb39d99e252cccce19416adc18fc3f18fcb" + integrity sha512-3BekqcwB6Umeya+16XPooARn4qEPW6vNvwYnlofIYe6h9qG1/VeD7UvShCWx11eFz5ELYmwIEshz+MkPX3wjcQ== + dependencies: + dequal "^2.0.2" + +"@restart/ui@^1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.3.tgz#8063f5b5e0131d41db2cefe148b20cb08a208e76" + integrity sha512-7HM5aiSWvJBWr+FghZj/n3PSuH2kUrOPiu/D92aIv1zTL8IBwFoQ3oz/f76svoN5v2PKaP6pQbg6vTcIiSffzg== + dependencies: + "@babel/runtime" "^7.21.0" + "@popperjs/core" "^2.11.6" + "@react-aria/ssr" "^3.5.0" + "@restart/hooks" "^0.4.9" + "@types/warning" "^3.0.0" + dequal "^2.0.3" + dom-helpers "^5.2.0" + uncontrollable "^7.2.1" + warning "^4.0.3" + +"@rollup/plugin-babel@^5.2.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rushstack/eslint-patch@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + +"@sinclair/typebox@^0.24.1": + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" + integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== + dependencies: + ejs "^3.1.6" + json5 "^2.2.0" + magic-string "^0.25.0" + string.prototype.matchall "^4.0.6" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@swc/helpers@^0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + +"@testing-library/dom@^8.5.0": + version "8.20.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6" + integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "^5.0.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.4.4" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^5.16.5": + version "5.16.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" + integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== + dependencies: + "@adobe/css-tools" "^4.0.1" + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^13.4.0": + version "13.4.0" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-13.4.0.tgz#6a31e3bf5951615593ad984e96b9e5e2d9380966" + integrity sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^8.5.0" + "@types/react-dom" "^18.0.0" + +"@testing-library/user-event@^13.5.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" + integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== + dependencies: + "@babel/runtime" "^7.12.5" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/aria-query@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" + integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.18.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.5.tgz#c107216842905afafd3b6e774f6f935da6f5db80" + integrity sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/bootstrap@^5.2.6": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@types/bootstrap/-/bootstrap-5.2.6.tgz#e861b3aa1f4a1434da0bf50fbaa372b6f7e64d2f" + integrity sha512-BlAc3YATdasbHoxMoBWODrSF6qwQO/E9X8wVxCCSa6rWjnaZfpkr2N6pUMCY6jj2+wf0muUtLySbvU9etX6YqA== + dependencies: + "@popperjs/core" "^2.9.2" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" + integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": + version "8.37.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.37.0.tgz#29cebc6c2a3ac7fea7113207bf5a828fdf4d7ef1" + integrity sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" + integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + dependencies: + "@types/node" "*" + +"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-proxy@^1.17.8": + version "1.17.11" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" + integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "29.5.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.1.tgz#83c818aa9a87da27d6da85d3378e5a34d2f31a47" + integrity sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^27.5.2": + version "27.5.2" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" + integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== + dependencies: + jest-matcher-utils "^27.0.0" + pretty-format "^27.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/node@*": + version "20.1.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.5.tgz#e94b604c67fc408f215fcbf3bd84d4743bf7f710" + integrity sha512-IvGD1CD/nego63ySR7vrAKEX3AJTcmrAN2kn+/sDNLi1Ff5kBzDeEdqWDplK+0HAEoLYej137Sk0cUU8OLOlMg== + +"@types/node@^16.18.30": + version "16.18.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.30.tgz#4a2c426370712a10c630a55ba086c55c17ca54e0" + integrity sha512-Kmp/wBZk19Dn7uRiol8kF8agnf8m0+TU9qIwyfPmXglVxMlmiIz0VQSMw5oFgwhmD2aKTlfBIO5FtsVj3y7hKQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.1.5": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" + integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.4": + version "18.2.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.4.tgz#13f25bfbf4e404d26f62ac6e406591451acba9e0" + integrity sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.5": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.2.6": + version "18.2.6" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571" + integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/send@*": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" + integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" + integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/styled-components@^5.1.26": + version "5.1.26" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" + integrity sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw== + dependencies: + "@types/hoist-non-react-statics" "*" + "@types/react" "*" + csstype "^3.0.2" + +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" + integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== + dependencies: + "@types/jest" "*" + +"@types/trusted-types@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" + integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + +"@types/use-sync-external-store@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43" + integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== + +"@types/warning@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" + integrity sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA== + +"@types/ws@^8.5.1": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^16.0.0": + version "16.0.5" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" + integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.5.0": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz#a350faef1baa1e961698240f922d8de1761a9e2b" + integrity sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.59.6" + "@typescript-eslint/type-utils" "5.59.6" + "@typescript-eslint/utils" "5.59.6" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@^5.0.0": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.6.tgz#9f4d81700dcea51a107658a44992ba1e4d8b4320" + integrity sha512-UIVfEaaHggOuhgqdpFlFQ7IN9UFMCiBR/N7uPBUyUlwNdJzYfAu9m4wbOj0b59oI/HSPW1N63Q7lsvfwTQY13w== + dependencies: + "@typescript-eslint/utils" "5.59.6" + +"@typescript-eslint/parser@^5.5.0": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.6.tgz#bd36f71f5a529f828e20b627078d3ed6738dbb40" + integrity sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA== + dependencies: + "@typescript-eslint/scope-manager" "5.59.6" + "@typescript-eslint/types" "5.59.6" + "@typescript-eslint/typescript-estree" "5.59.6" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.59.6": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz#d43a3687aa4433868527cfe797eb267c6be35f19" + integrity sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ== + dependencies: + "@typescript-eslint/types" "5.59.6" + "@typescript-eslint/visitor-keys" "5.59.6" + +"@typescript-eslint/type-utils@5.59.6": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz#37c51d2ae36127d8b81f32a0a4d2efae19277c48" + integrity sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ== + dependencies: + "@typescript-eslint/typescript-estree" "5.59.6" + "@typescript-eslint/utils" "5.59.6" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.59.6": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.6.tgz#5a6557a772af044afe890d77c6a07e8c23c2460b" + integrity sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA== + +"@typescript-eslint/typescript-estree@5.59.6": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz#2fb80522687bd3825504925ea7e1b8de7bb6251b" + integrity sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA== + dependencies: + "@typescript-eslint/types" "5.59.6" + "@typescript-eslint/visitor-keys" "5.59.6" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.59.6", "@typescript-eslint/utils@^5.58.0": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.6.tgz#82960fe23788113fc3b1f9d4663d6773b7907839" + integrity sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.59.6" + "@typescript-eslint/types" "5.59.6" + "@typescript-eslint/typescript-estree" "5.59.6" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.59.6": + version "5.59.6" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz#673fccabf28943847d0c8e9e8d008e3ada7be6bb" + integrity sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q== + dependencies: + "@typescript-eslint/types" "5.59.6" + eslint-visitor-keys "^3.3.0" + +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-import-assertions@^1.7.6: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +adjust-sourcemap-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" + integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +adler-32@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" + integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== + +ag-grid-community@^29.3.5: + version "29.3.5" + resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-29.3.5.tgz#16897896d10fa3ecac79279aad50d3aaa17c5f33" + integrity sha512-LxUo21f2/CH31ACEs1C7Q/ggGGI1fQPSTB4aY5OThmM+lBkygZ7QszBE8jpfgWOIjvjdtcdIeQbmbjkHeMsA7A== + +ag-grid-react@^29.3.5: + version "29.3.5" + resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-29.3.5.tgz#0eae8934d372c7751e98789542fc663aee0ad6ad" + integrity sha512-Eg0GJ8hEBuxdVaN5g+qITOzhw0MGL9avL0Oaajr+p7QRtq2pIFHLZSknWsCBzUTjidiu75WZMKwlZjtGEuafdQ== + dependencies: + prop-types "^15.8.1" + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apexcharts@^3.40.0: + version "3.40.0" + resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.40.0.tgz#9eccb50e38f12ddaeb6803ec781fb26e161853e3" + integrity sha512-dSi3BUfCJkFd67uFp+xffrJVd3lDT7AAUUyRp0qPYiglJ76CeZLddVhM3FAk1P9GCzf8VewqGYUPCYQvXm+b9A== + dependencies: + svg.draggable.js "^2.2.2" + svg.easing.js "^2.0.0" + svg.filter.js "^2.0.2" + svg.pathmorphing.js "^0.1.3" + svg.resize.js "^1.4.3" + svg.select.js "^3.0.1" + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.0.0, aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +attr-accept@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" + integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== + +autoprefixer@^10.4.13: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axe-core@^4.6.2: + version "4.7.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.1.tgz#04392c9ccb3d7d7c5d2f8684f148d56d3442f33d" + integrity sha512-sCXXUhA+cljomZ3ZAwb8i1p3oOlkABzPy08ZDAoGcYuvtBPlQ1Ytde129ArXyHWDhfeewq7rlx9F+cUx2SSlkg== + +axios@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" + integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + +babel-jest@^27.4.2, babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-loader@^8.2.3: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-named-asset-import@^0.3.8: + version "0.3.8" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" + integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== + +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" + +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + +babel-plugin-transform-react-remove-prop-types@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-react-app@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" + integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== + dependencies: + "@babel/core" "^7.16.0" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-decorators" "^7.16.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-transform-flow-strip-types" "^7.16.0" + "@babel/plugin-transform-react-display-name" "^7.16.0" + "@babel/plugin-transform-runtime" "^7.16.4" + "@babel/preset-env" "^7.16.4" + "@babel/preset-react" "^7.16.0" + "@babel/preset-typescript" "^7.16.0" + "@babel/runtime" "^7.16.3" + babel-plugin-macros "^3.1.0" + babel-plugin-transform-react-remove-prop-types "^0.4.24" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bfj@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" + integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + dependencies: + bluebird "^3.5.5" + check-types "^11.1.1" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.1.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" + integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== + dependencies: + array-flatten "^2.1.2" + dns-equal "^1.0.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boostrap@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/boostrap/-/boostrap-2.0.0.tgz#f0a5256bc379c5da540564389e48e85e9ccff9fc" + integrity sha512-JEeFMOweKeGXEM9rt95eaVISOkluG9aKcl0jQCETOVH9jynCZxuBZe2oWgcWJpj5wqYWZl625SnW7OgHT2Ineg== + +bootstrap@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.2.3.tgz#54739f4414de121b9785c5da3c87b37ff008322b" + integrity sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + dependencies: + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0, camelcase@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: + version "1.0.30001487" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001487.tgz#d882d1a34d89c11aea53b8cdc791931bdab5fe1b" + integrity sha512-83564Z3yWGqXsh2vaH/mhXfEM0wX+NlBCm1jYHOb97TrTWJEmPTccZgeLTPBUUb0PNVo+oomb7wkimZBIERClA== + +case-sensitive-paths-webpack-plugin@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + +cfb@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" + integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== + dependencies: + adler-32 "~1.3.0" + crc-32 "~1.2.0" + +chalk@^2.0.0, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +char-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" + integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== + +check-types@^11.1.1: + version "11.2.2" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" + integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== + +chokidar@^3.4.0, chokidar@^3.4.2, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +classnames@^2.2.6, classnames@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clean-css@^5.2.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" + integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + dependencies: + source-map "~0.6.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0, commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +confusing-browser-globals@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +core-js-compat@^3.25.1: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" + integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== + dependencies: + browserslist "^4.21.5" + +core-js-pure@^3.23.3: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.2.tgz#005a82551f4af3250dcfb46ed360fad32ced114e" + integrity sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg== + +core-js@^3.19.2: + version "3.30.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" + integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crc-32@~1.2.0, crc-32@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-declaration-sorter@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" + integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^6.5.1: + version "6.7.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" + integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.19" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.3.8" + +css-minimizer-webpack-plugin@^3.2.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f" + integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== + dependencies: + cssnano "^5.0.6" + jest-worker "^27.0.2" + postcss "^8.3.5" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-to-react-native@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssdb@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" + integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.2.14: + version "5.2.14" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" + integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.1" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.4" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.2" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.0.6: + version "5.1.15" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" + integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== + dependencies: + cssnano-preset-default "^5.2.14" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.0.2, csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +date-fns@^2.24.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +debug@2.6.9, debug@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^2.0.5: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" + integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.0" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.2, dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^5.2.2: + version "5.6.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" + integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.6: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.4.284: + version "1.4.396" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.396.tgz#3d3664eb58d86376fbe2fece3705f68ca197205c" + integrity sha512-pqKTdqp/c5vsrc0xUPYXTDBo9ixZuGY8es4ZOjjd6HD6bFYbu5QA09VoW3fkY4LF1T0zYk86lN6bZnNlBuOpdQ== + +emittery@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +enhanced-resolve@^5.14.0: + version "5.14.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4" + integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +env-cmd@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/env-cmd/-/env-cmd-10.1.0.tgz#c7f5d3b550c9519f137fdac4dd8fb6866a8c8c4b" + integrity sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA== + dependencies: + commander "^4.0.0" + cross-spawn "^7.0.0" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-module-lexer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" + integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-react-app@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" + integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== + dependencies: + "@babel/core" "^7.16.0" + "@babel/eslint-parser" "^7.16.3" + "@rushstack/eslint-patch" "^1.1.0" + "@typescript-eslint/eslint-plugin" "^5.5.0" + "@typescript-eslint/parser" "^5.5.0" + babel-preset-react-app "^10.0.1" + confusing-browser-globals "^1.0.11" + eslint-plugin-flowtype "^8.0.3" + eslint-plugin-import "^2.25.3" + eslint-plugin-jest "^25.3.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.27.1" + eslint-plugin-react-hooks "^4.3.0" + eslint-plugin-testing-library "^5.0.1" + +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-module-utils@^2.7.4: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-flowtype@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912" + integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ== + dependencies: + lodash "^4.17.21" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.25.3: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jest@^25.3.0: + version "25.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== + dependencies: + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + ast-types-flow "^0.0.7" + axe-core "^4.6.2" + axobject-query "^3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + semver "^6.3.0" + +eslint-plugin-react-hooks@^4.3.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react@^7.27.1: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" + +eslint-plugin-testing-library@^5.0.1: + version "5.11.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.0.tgz#0bad7668e216e20dd12f8c3652ca353009163121" + integrity sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q== + dependencies: + "@typescript-eslint/utils" "^5.58.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint-webpack-plugin@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" + integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== + dependencies: + "@types/eslint" "^7.29.0 || ^8.4.1" + jest-worker "^28.0.2" + micromatch "^4.0.5" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + +eslint@^8.3.0: + version "8.40.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4" + integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.40.0" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +expect@^29.0.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" + integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== + dependencies: + "@jest/expect-utils" "^29.5.0" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" + +express@^4.17.3: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-selector@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.6.0.tgz#fa0a8d9007b829504db4d07dd4de0310b65287dc" + integrity sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw== + dependencies: + tslib "^2.4.0" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +follow-redirects@^1.0.0, follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formik@^2.2.9: + version "2.2.9" + resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.9.tgz#8594ba9c5e2e5cf1f42c5704128e119fc46232d0" + integrity sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA== + dependencies: + deepmerge "^2.1.1" + hoist-non-react-statics "^3.3.0" + lodash "^4.17.21" + lodash-es "^4.17.21" + react-fast-compare "^2.0.1" + tiny-warning "^1.0.2" + tslib "^1.10.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +harmony-reflect@^1.4.6: + version "1.6.2" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^2.1.0, html-entities@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-webpack-plugin@^5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz#826838e31b427f5f7f30971f8d8fa2422dfa6763" + integrity sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +identity-obj-proxy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== + dependencies: + harmony-reflect "^1.4.6" + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +immer@^9.0.21, immer@^9.0.7: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jake@^10.8.5: + version "10.8.6" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.6.tgz#227a96786a1e035214e0ba84b482d6223d41ef04" + integrity sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-diff@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" + integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" + integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== + dependencies: + chalk "^4.0.0" + jest-diff "^29.5.0" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-message-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" + integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.5.0" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.5.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-regex-util@^28.0.0: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^27.4.2, jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== + dependencies: + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watch-typeahead@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz#b4a6826dfb9c9420da2f7bc900de59dad11266a9" + integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^28.0.0" + jest-watcher "^28.0.0" + slash "^4.0.0" + string-length "^5.0.1" + strip-ansi "^7.0.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-watcher@^28.0.0: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== + dependencies: + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^28.1.3" + string-length "^4.0.1" + +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^28.0.2: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^27.4.3: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" + import-local "^3.0.2" + jest-cli "^27.5.1" + +jiti@^1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd" + integrity sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg== + +js-sdsl@^4.1.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + dependencies: + array-includes "^3.1.5" + object.assign "^4.1.3" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + dependencies: + language-subtag-registry "~0.3.2" + +launch-editor@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" + integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.7.3" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0, loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.1.2, memfs@^3.4.3: + version "3.5.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.5.1.tgz#f0cd1e2bfaef58f6fe09bfb9c2288f07fea099ec" + integrity sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA== + dependencies: + fs-monkey "^1.0.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@^2.4.5: + version "2.7.5" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz#afbb344977659ec0f1f6e050c7aea456b121cfc5" + integrity sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ== + dependencies: + schema-utils "^4.0.0" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +moment@^2.29.4: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +nwsapi@^2.2.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" + integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" + +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.values@^1.1.0, object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.1, pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-browser-comments@^4: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz#bcfc86134df5807f5d3c0eefa191d42136b5e72a" + integrity sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg== + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" + integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + dependencies: + lilconfig "^2.0.5" + yaml "^2.1.1" + +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" + +postcss-merge-rules@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" + integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== + dependencies: + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz#464692676b52792a06b06880a176279216540dd7" + integrity sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA== + dependencies: + "@csstools/normalize.css" "*" + postcss-browser-comments "^4" + sanitize.css "*" + +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== + +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.0.1: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" + integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^7.0.35: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.23, postcss@^8.4.4: + version "8.4.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" + integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^29.0.0, pretty-format@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" + integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== + dependencies: + "@jest/schemas" "^29.4.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + +prompts@^2.0.1, prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types-extra@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" + integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== + dependencies: + react-is "^16.3.2" + warning "^4.0.0" + +prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-expr@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.5.tgz#278bdb15308ae16af3e3b9640024524f4dc02cb4" + integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-apexcharts@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/react-apexcharts/-/react-apexcharts-1.4.0.tgz#e3619104b34750da67a2ca80289dc87085c2aa27" + integrity sha512-DrcMV4aAMrUG+n6412yzyATWEyCDWlpPBBhVbpzBC4PDeuYU6iF84SmExbck+jx5MUm4U5PM3/T307Mc3kzc9Q== + dependencies: + prop-types "^15.5.7" + +react-app-polyfill@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7" + integrity sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w== + dependencies: + core-js "^3.19.2" + object-assign "^4.1.1" + promise "^8.1.0" + raf "^3.4.1" + regenerator-runtime "^0.13.9" + whatwg-fetch "^3.6.2" + +react-bootstrap@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.7.4.tgz#db95ecdcdfae9619de14511b5e9923bf95daf73d" + integrity sha512-EPKPwhfbxsKsNBhJBitJwqul9fvmlYWSft6jWE2EpqhEyjhqIqNihvQo2onE5XtS+QHOavUSNmA+8Lnv5YeAyg== + dependencies: + "@babel/runtime" "^7.21.0" + "@restart/hooks" "^0.4.9" + "@restart/ui" "^1.6.3" + "@types/react-transition-group" "^4.4.5" + classnames "^2.3.2" + dom-helpers "^5.2.1" + invariant "^2.2.4" + prop-types "^15.8.1" + prop-types-extra "^1.1.0" + react-transition-group "^4.4.5" + uncontrollable "^7.2.1" + warning "^4.0.3" + +react-currency-format@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/react-currency-format/-/react-currency-format-1.1.0.tgz#efef7f18045fc09a987de270b144f5eec8801dab" + integrity sha512-WWrEOIp/3GbDSk1wlhFXaBc7IHGT3IwL306DHbGP3GVr4YFa0iS5hHPbKjHa0haruGL4Ly+WG4/5jBHpUtgqZg== + dependencies: + prop-types "^15.6.0" + +react-data-table-component-extensions@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/react-data-table-component-extensions/-/react-data-table-component-extensions-1.6.0.tgz#3d2c607300513274ab7800e67c00571a3c3a354f" + integrity sha512-AfaZj21Hx7VCwGugGVInrGgxa5PmBfhgQFSe55piYmgM05tJcegZfm6RjbnMT96CM0dWrC2ky5Mh7n0RZun6DQ== + dependencies: + react "^16.9.0" + +react-data-table-component@^7.5.3: + version "7.5.3" + resolved "https://registry.yarnpkg.com/react-data-table-component/-/react-data-table-component-7.5.3.tgz#a008b4c281574cc1a81315e2c1b34107b5d18fe0" + integrity sha512-JhatRTgThAAa1HobPaPmkNPsjLT6+fnMIdtcXRCy+0bSYN7XJnTgob9Qyi4bjHh/8tMPTHtxZCV/TKiPwRvFMA== + dependencies: + deepmerge "^4.2.2" + +react-datepicker@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-4.11.0.tgz#40e73b4729a284ed206fdb322b8e84eb566e11a3" + integrity sha512-50n93o7mQwBEhg05tbopjFKgs8qgi8VBCAOMC4VqrKut72eAjESc/wXS/k5hRtnP0oe2FCGw7MJuIwh37wuXOw== + dependencies: + "@popperjs/core" "^2.9.2" + classnames "^2.2.6" + date-fns "^2.24.0" + prop-types "^15.7.2" + react-onclickoutside "^6.12.2" + react-popper "^2.3.0" + +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-dropzone@^14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.2.3.tgz#0acab68308fda2d54d1273a1e626264e13d4e84b" + integrity sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug== + dependencies: + attr-accept "^2.2.2" + file-selector "^0.6.0" + prop-types "^15.8.1" + +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-fast-compare@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-fast-compare@^3.0.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.1.tgz#53933d9e14f364281d6cba24bfed7a4afb808b5f" + integrity sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg== + +react-flexy-table@^1.8.11: + version "1.8.11" + resolved "https://registry.yarnpkg.com/react-flexy-table/-/react-flexy-table-1.8.11.tgz#c9a1c00ff06a2afdcacdddb990fe7a16ef1b667c" + integrity sha512-/3rBki6JDaa8gvRUqlJPoL9nC/sGnxX8YApT+QIStOXYTZ4jE0o5WOVd45hT+UU5D//xB+OSCVl6KyZAsT+1cQ== + +react-icons@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.8.0.tgz#621e900caa23b912f737e41be57f27f6b2bff445" + integrity sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg== + +react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-onclickoutside@^6.12.2: + version "6.13.0" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz#e165ea4e5157f3da94f4376a3ab3e22a565f4ffc" + integrity sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A== + +react-popper@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" + integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + +react-redux@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.5.tgz#e5fb8331993a019b8aaf2e167a93d10af469c7bd" + integrity sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw== + dependencies: + "@babel/runtime" "^7.12.1" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/use-sync-external-store" "^0.0.3" + hoist-non-react-statics "^3.3.2" + react-is "^18.0.0" + use-sync-external-store "^1.0.0" + +react-refresh@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" + integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== + +react-router-dom@^6.11.1: + version "6.11.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.11.1.tgz#af226bae950deb437208a606a47cf5c2d72c55dc" + integrity sha512-dPC2MhoPeTQ1YUOt5uIK376SMNWbwUxYRWk2ZmTT4fZfwlOvabF8uduRKKJIyfkCZvMgiF0GSCQckmkGGijIrg== + dependencies: + "@remix-run/router" "1.6.1" + react-router "6.11.1" + +react-router@6.11.1: + version "6.11.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.11.1.tgz#6e58458c03e16834dda2b433c6adb9e7c2b1d7a8" + integrity sha512-OZINSdjJ2WgvAi7hgNLazrEV8SGn6xrKA+MkJe9wVDMZ3zQ6fdJocUjpCUCI0cNrelWjcvon0S/QK/j0NzL3KA== + dependencies: + "@remix-run/router" "1.6.1" + +react-scripts@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003" + integrity sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ== + dependencies: + "@babel/core" "^7.16.0" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" + "@svgr/webpack" "^5.5.0" + babel-jest "^27.4.2" + babel-loader "^8.2.3" + babel-plugin-named-asset-import "^0.3.8" + babel-preset-react-app "^10.0.1" + bfj "^7.0.2" + browserslist "^4.18.1" + camelcase "^6.2.1" + case-sensitive-paths-webpack-plugin "^2.4.0" + css-loader "^6.5.1" + css-minimizer-webpack-plugin "^3.2.0" + dotenv "^10.0.0" + dotenv-expand "^5.1.0" + eslint "^8.3.0" + eslint-config-react-app "^7.0.1" + eslint-webpack-plugin "^3.1.1" + file-loader "^6.2.0" + fs-extra "^10.0.0" + html-webpack-plugin "^5.5.0" + identity-obj-proxy "^3.0.0" + jest "^27.4.3" + jest-resolve "^27.4.2" + jest-watch-typeahead "^1.0.0" + mini-css-extract-plugin "^2.4.5" + postcss "^8.4.4" + postcss-flexbugs-fixes "^5.0.2" + postcss-loader "^6.2.1" + postcss-normalize "^10.0.1" + postcss-preset-env "^7.0.1" + prompts "^2.4.2" + react-app-polyfill "^3.0.0" + react-dev-utils "^12.0.1" + react-refresh "^0.11.0" + resolve "^1.20.0" + resolve-url-loader "^4.0.0" + sass-loader "^12.3.0" + semver "^7.3.5" + source-map-loader "^3.0.0" + style-loader "^3.3.1" + tailwindcss "^3.0.2" + terser-webpack-plugin "^5.2.5" + webpack "^5.64.4" + webpack-dev-server "^4.6.0" + webpack-manifest-plugin "^4.0.2" + workbox-webpack-plugin "^6.4.1" + optionalDependencies: + fsevents "^2.3.2" + +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^16.9.0: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redux-thunk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" + integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== + +redux@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +reselect@^4.1.8: + version "4.1.8" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" + integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" + integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA== + dependencies: + adjust-sourcemap-loader "^4.0.0" + convert-source-map "^1.7.0" + loader-utils "^2.0.0" + postcss "^7.0.35" + source-map "0.6.1" + +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== + +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.2: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup@^2.43.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize.css@*: + version "13.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" + integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA== + +sass-loader@^12.3.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" + integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.1.tgz#eb2d042df8b01f4b5c276a2dfd41ba0faab72e8d" + integrity sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + dependencies: + node-forge "^1" + +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-loader@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee" + integrity sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg== + dependencies: + abab "^2.0.5" + iconv-lite "^0.6.3" + source-map-js "^1.0.1" + +source-map-support@^0.5.6, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssf@~0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" + integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== + dependencies: + frac "~1.1.2" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-length@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" + integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== + dependencies: + char-regex "^2.0.0" + strip-ansi "^7.0.1" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.2.tgz#eaebca714d9e462c19aa1e3599057bc363924899" + integrity sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw== + +styled-components@^6.0.0-rc.1: + version "6.0.0-rc.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.0-rc.1.tgz#e7d7c9f8301df7e4877c1c6a1c02bfbd7f64bc07" + integrity sha512-v+VqSeqCQboUqSxTxIW/wmBYB0BGDBV30tTMWcUaicapSy0VYNmZanOcFCxyfbViY/Bk2h+VKURMytx2jaTrwA== + dependencies: + "@babel/cli" "^7.21.0" + "@babel/core" "^7.21.0" + "@babel/helper-module-imports" "^7.18.6" + "@babel/plugin-external-helpers" "^7.18.6" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@babel/traverse" "^7.21.2" + "@emotion/unitless" "^0.8.0" + css-to-react-native "^3.2.0" + shallowequal "^1.1.0" + stylis "^4.2.0" + tslib "^2.5.0" + +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +stylis@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +sucrase@^3.32.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.32.0.tgz#c4a95e0f1e18b6847127258a75cf360bc568d4a7" + integrity sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svg.draggable.js@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba" + integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw== + dependencies: + svg.js "^2.0.1" + +svg.easing.js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12" + integrity sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA== + dependencies: + svg.js ">=2.3.x" + +svg.filter.js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203" + integrity sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw== + dependencies: + svg.js "^2.2.5" + +svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d" + integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA== + +svg.pathmorphing.js@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65" + integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww== + dependencies: + svg.js "^2.4.0" + +svg.resize.js@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332" + integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw== + dependencies: + svg.js "^2.6.5" + svg.select.js "^2.1.2" + +svg.select.js@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73" + integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ== + dependencies: + svg.js "^2.2.5" + +svg.select.js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917" + integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw== + dependencies: + svg.js "^2.6.5" + +svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tailwindcss@^3.0.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.2.tgz#2f9e35d715fdf0bbf674d90147a0684d7054a2d3" + integrity sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.12" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.18.2" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: + version "5.3.8" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.8.tgz#415e03d2508f7de63d59eca85c5d102838f06610" + integrity sha512-WiHL3ElchZMsK27P8uIUh4604IgJyAW47LVXGbEoB21DbQcZ+OuMpGjVYnEUaqcWM6dO8uS2qUbA7LSCWqvsbg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" + +terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: + version "5.17.4" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.4.tgz#b0c2d94897dfeba43213ed5f90ed117270a2c696" + integrity sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throat@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" + integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-case@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03" + integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q== + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + +tough-cookie@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +tsconfig-paths@^3.14.1: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.10.0, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3, tslib@^2.4.0, tslib@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uncontrollable@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" + integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== + dependencies: + "@babel/runtime" "^7.6.3" + "@types/react" ">=16.9.11" + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.0.10: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +use-sync-external-store@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +warning@^4.0.0, warning@^4.0.2, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-vitals@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" + integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.6.0: + version "4.15.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.0.tgz#87ba9006eca53c551607ea0d663f4ae88be7af21" + integrity sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.1" + ws "^8.13.0" + +webpack-manifest-plugin@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f" + integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow== + dependencies: + tapable "^2.0.0" + webpack-sources "^2.2.0" + +webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.64.4: + version "5.82.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.82.1.tgz#8f38c78e53467556e8a89054ebd3ef6e9f67dbab" + integrity sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.14.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +word@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" + integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== + +workbox-background-sync@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" + integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g== + dependencies: + idb "^7.0.1" + workbox-core "6.5.4" + +workbox-broadcast-update@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66" + integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw== + dependencies: + workbox-core "6.5.4" + +workbox-build@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389" + integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "6.5.4" + workbox-broadcast-update "6.5.4" + workbox-cacheable-response "6.5.4" + workbox-core "6.5.4" + workbox-expiration "6.5.4" + workbox-google-analytics "6.5.4" + workbox-navigation-preload "6.5.4" + workbox-precaching "6.5.4" + workbox-range-requests "6.5.4" + workbox-recipes "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" + workbox-streams "6.5.4" + workbox-sw "6.5.4" + workbox-window "6.5.4" + +workbox-cacheable-response@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137" + integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug== + dependencies: + workbox-core "6.5.4" + +workbox-core@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba" + integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q== + +workbox-expiration@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539" + integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ== + dependencies: + idb "^7.0.1" + workbox-core "6.5.4" + +workbox-google-analytics@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d" + integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg== + dependencies: + workbox-background-sync "6.5.4" + workbox-core "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" + +workbox-navigation-preload@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212" + integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng== + dependencies: + workbox-core "6.5.4" + +workbox-precaching@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72" + integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg== + dependencies: + workbox-core "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" + +workbox-range-requests@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399" + integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg== + dependencies: + workbox-core "6.5.4" + +workbox-recipes@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb" + integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA== + dependencies: + workbox-cacheable-response "6.5.4" + workbox-core "6.5.4" + workbox-expiration "6.5.4" + workbox-precaching "6.5.4" + workbox-routing "6.5.4" + workbox-strategies "6.5.4" + +workbox-routing@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da" + integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg== + dependencies: + workbox-core "6.5.4" + +workbox-strategies@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d" + integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw== + dependencies: + workbox-core "6.5.4" + +workbox-streams@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69" + integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg== + dependencies: + workbox-core "6.5.4" + workbox-routing "6.5.4" + +workbox-sw@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736" + integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA== + +workbox-webpack-plugin@^6.4.1: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7" + integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg== + dependencies: + fast-json-stable-stringify "^2.1.0" + pretty-bytes "^5.4.1" + upath "^1.2.0" + webpack-sources "^1.4.3" + workbox-build "6.5.4" + +workbox-window@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91" + integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "6.5.4" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +xlsx@^0.18.5: + version "0.18.5" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" + integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== + dependencies: + adler-32 "~1.3.0" + cfb "~1.2.1" + codepage "~1.15.0" + crc-32 "~1.2.1" + ssf "~0.11.2" + wmf "~1.0.1" + word "~0.3.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" + integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yup@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yup/-/yup-1.1.1.tgz#49dbcf5ae7693ed0a36ed08a9e9de0a09ac18e6b" + integrity sha512-KfCGHdAErqFZWA5tZf7upSUnGKuTOnsI3hUsLr7fgVtx+DK04NPV01A68/FslI4t3s/ZWpvXJmgXhd7q6ICnag== + dependencies: + property-expr "^2.0.5" + tiny-case "^1.0.3" + toposort "^2.0.2" + type-fest "^2.19.0"