@orbe-agro/client-core-prod 5.6.136 → 5.6.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@ecme/assets/styles/app.css +81 -16
- package/dist/@ecme/assets/styles/components/_orbe-loader.css +85 -0
- package/dist/@ecme/assets/styles/components/index.css +77 -0
- package/dist/@ecme/assets/styles/tailwind/index.css +3 -15
- package/dist/@ecme/components/index.js +58 -54
- package/dist/@ecme/components/index.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.js +25 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.js.map +1 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.js +22 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.js.map +1 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.js +22 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.js.map +1 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.js +25 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.js.map +1 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.js +25 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.js.map +1 -0
- package/dist/@ecme/components/shared/Loading.js +3 -4
- package/dist/@ecme/components/shared/Loading.js.map +1 -1
- package/dist/@ecme/components/shared/index.js +6 -4
- package/dist/@ecme/components/shared/index.js.map +1 -1
- package/dist/@ecme/components/shared/loaders/GlobalLoading.js +2 -5
- package/dist/@ecme/components/shared/loaders/GlobalLoading.js.map +1 -1
- package/dist/@ecme/components/shared/loaders/OrbeLoader.js +28 -0
- package/dist/@ecme/components/shared/loaders/OrbeLoader.js.map +1 -0
- package/dist/@ecme/components/template/Footer.js +1 -1
- package/dist/@ecme/components/template/Header.stories.js +42 -0
- package/dist/@ecme/components/template/Header.stories.js.map +1 -0
- package/dist/@ecme/components/template/Search.js +32 -2
- package/dist/@ecme/components/template/Search.js.map +1 -1
- package/dist/@ecme/components/template/Search.stories.js +61 -0
- package/dist/@ecme/components/template/Search.stories.js.map +1 -0
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.js +10 -241
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.js.map +1 -1
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.js +3 -17
- package/dist/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.js.map +1 -1
- package/dist/@ecme/components/ui/UploadCustom/UploadCustom.js +134 -0
- package/dist/@ecme/components/ui/UploadCustom/UploadCustom.js.map +1 -0
- package/dist/@ecme/components/ui/UploadCustom/index.js +6 -0
- package/dist/@ecme/components/ui/UploadCustom/index.js.map +1 -0
- package/dist/@ecme/components/ui/index.js +5 -2
- package/dist/@ecme/components/ui/index.js.map +1 -1
- package/dist/@ecme/index.js +139 -132
- package/dist/@ecme/index.js.map +1 -1
- package/dist/@ecme/locales/index.js +4 -1
- package/dist/@ecme/locales/index.js.map +1 -1
- package/dist/@ecme/locales/initAll.js +26 -0
- package/dist/@ecme/locales/initAll.js.map +1 -0
- package/dist/@ecme/locales/lang/en/common.js +43 -0
- package/dist/@ecme/locales/lang/en/common.js.map +1 -1
- package/dist/@ecme/locales/lang/en/index.js +3 -1
- package/dist/@ecme/locales/lang/en/index.js.map +1 -1
- package/dist/@ecme/locales/lang/ptBR/common.js +43 -0
- package/dist/@ecme/locales/lang/ptBR/common.js.map +1 -1
- package/dist/@ecme/locales/lang/ptBR/index.js +3 -1
- package/dist/@ecme/locales/lang/ptBR/index.js.map +1 -1
- package/dist/@ecme/locales/lang/ptBR/nav.js +307 -4
- package/dist/@ecme/locales/lang/ptBR/nav.js.map +1 -1
- package/dist/@ecme/services/ApiServiceJ.js +26 -0
- package/dist/@ecme/services/ApiServiceJ.js.map +1 -0
- package/dist/@ecme/views/auth/lang/index.js +2 -2
- package/dist/@ecme/views/auth/lang/index.js.map +1 -1
- package/dist/@types/@ecme/components/shared/index.d.ts +1 -0
- package/dist/@types/@ecme/components/shared/index.d.ts.map +1 -1
- package/dist/@types/@ecme/components/shared/loaders/GlobalLoading.d.ts.map +1 -1
- package/dist/@types/@ecme/components/shared/loaders/OrbeLoader.d.ts +8 -0
- package/dist/@types/@ecme/components/shared/loaders/OrbeLoader.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/Search.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.d.ts +0 -8
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.d.ts.map +1 -1
- package/dist/@types/@ecme/components/ui/UploadCustom/UploadCustom.d.ts +15 -0
- package/dist/@types/@ecme/components/ui/UploadCustom/UploadCustom.d.ts.map +1 -0
- package/dist/@types/@ecme/components/ui/UploadCustom/index.d.ts +5 -0
- package/dist/@types/@ecme/components/ui/UploadCustom/index.d.ts.map +1 -0
- package/dist/@types/@ecme/components/ui/index.d.ts +2 -0
- package/dist/@types/@ecme/components/ui/index.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/index.d.ts +1 -0
- package/dist/@types/@ecme/locales/index.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/initAll.d.ts +3 -0
- package/dist/@types/@ecme/locales/initAll.d.ts.map +1 -0
- package/dist/@types/@ecme/locales/lang/en/common.d.ts +43 -0
- package/dist/@types/@ecme/locales/lang/en/common.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/lang/en/index.d.ts +98 -0
- package/dist/@types/@ecme/locales/lang/en/index.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/lang/ptBR/common.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/lang/ptBR/index.d.ts +98 -0
- package/dist/@types/@ecme/locales/lang/ptBR/index.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/lang/ptBR/nav.d.ts.map +1 -1
- package/dist/@types/@ecme/services/ApiServiceJ.d.ts +8 -0
- package/dist/@types/@ecme/services/ApiServiceJ.d.ts.map +1 -0
- package/dist/@types/base/@types/api/request/juridico/termos/termo.d.ts +54 -0
- package/dist/@types/base/@types/api/request/juridico/termos/termo.d.ts.map +1 -0
- package/dist/@types/base/@types/api/request/juridico/termos/types.d.ts +102 -0
- package/dist/@types/base/@types/api/request/juridico/termos/types.d.ts.map +1 -0
- package/dist/@types/base/@types/api/response/bayer/TFindAllRetencaoResponse.d.ts +2 -2
- package/dist/@types/base/@types/api/response/bayer/TFindAllRetencaoResponse.d.ts.map +1 -1
- package/dist/@types/base/@types/models/ativos/anexoComponente.d.ts +1 -0
- package/dist/@types/base/@types/models/ativos/anexoComponente.d.ts.map +1 -1
- package/dist/@types/base/@types/models/ativos/documentacao.d.ts +4 -3
- package/dist/@types/base/@types/models/ativos/documentacao.d.ts.map +1 -1
- package/dist/@types/base/@types/models/ativos/sistemaOperacional.d.ts +3 -3
- package/dist/@types/base/@types/models/ativos/sistemaOperacional.d.ts.map +1 -1
- package/dist/@types/base/@types/models/ativos/software.d.ts +7 -7
- package/dist/@types/base/@types/models/ativos/software.d.ts.map +1 -1
- package/dist/@types/base/@types/models/ativos/versaoMSOffice.d.ts +4 -4
- package/dist/@types/base/@types/models/ativos/versaoMSOffice.d.ts.map +1 -1
- package/dist/@types/base/@types/models/performance/index.d.ts +1 -0
- package/dist/@types/base/@types/models/performance/index.d.ts.map +1 -1
- package/dist/@types/base/@types/models/performance/ppr.d.ts +22 -0
- package/dist/@types/base/@types/models/performance/ppr.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.d.ts +2 -0
- package/dist/@types/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/ativos/ativos.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/ativos/ativos.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/ativos/config/modelo.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/ativos/config/modelo.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/bayer/bayer.d.ts +1 -0
- package/dist/@types/base/configs/endpoints.config/bayer/bayer.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/bayer/config/retencaoBayer.d.ts +1 -0
- package/dist/@types/base/configs/endpoints.config/bayer/config/retencaoBayer.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +14 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.d.ts +16 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/compras/config/requisicaoCompra.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/compras/config/requisicaoCompra.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/dm/config/businessPartner.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/dm/config/businessPartner.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/dm/dm.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/dm/dm.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +33 -0
- package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/performance/config/ppr.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/performance/config/ppr.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/performance/performance.d.ts +6 -0
- package/dist/@types/base/configs/endpoints.config/performance/performance.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/config/ppr.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/config/ppr.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/performance/performance.submenu.d.ts.map +1 -1
- package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts +2 -0
- package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/ativos/modelo/ModeloService.d.ts +4 -0
- package/dist/@types/base/services/modules/ativos/modelo/ModeloService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/bayer/retencaoBayerService.d.ts +1 -0
- package/dist/@types/base/services/modules/bayer/retencaoBayerService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/centralNfe/index.d.ts +1 -0
- package/dist/@types/base/services/modules/centralNfe/index.d.ts.map +1 -1
- package/dist/@types/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.d.ts +7 -0
- package/dist/@types/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.d.ts +1 -0
- package/dist/@types/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/dm/businessPartner/BusinessPartnerService.d.ts +1 -0
- package/dist/@types/base/services/modules/dm/businessPartner/BusinessPartnerService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/juridico/JuridicoService.d.ts +4 -0
- package/dist/@types/base/services/modules/juridico/JuridicoService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/juridico/docusignService.d.ts +32 -0
- package/dist/@types/base/services/modules/juridico/docusignService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/juridico/municipiosService.d.ts +4 -0
- package/dist/@types/base/services/modules/juridico/municipiosService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/juridico/termosService.d.ts +28 -0
- package/dist/@types/base/services/modules/juridico/termosService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/performance/PerformanceService.d.ts +5 -0
- package/dist/@types/base/services/modules/performance/PerformanceService.d.ts.map +1 -1
- package/dist/base/@types/api/request/juridico/termos/termo.js +2 -0
- package/dist/base/@types/api/request/juridico/termos/termo.js.map +1 -0
- package/dist/base/@types/api/request/juridico/termos/types.js +48 -0
- package/dist/base/@types/api/request/juridico/termos/types.js.map +1 -0
- package/dist/base/@types/models/performance/index.js +1 -0
- package/dist/base/@types/models/performance/index.js.map +1 -1
- package/dist/base/@types/models/performance/ppr.js +2 -0
- package/dist/base/@types/models/performance/ppr.js.map +1 -0
- package/dist/base/assets/logo/orbe-agro/orbe-agro-logo-min.svg.js +5 -0
- package/dist/base/assets/logo/orbe-agro/orbe-agro-logo-min.svg.js.map +1 -0
- package/dist/base/assets/styles/init.css +81 -16
- package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js +3 -1
- package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/ativos/config/modelo.js +2 -1
- package/dist/base/configs/endpoints.config/ativos/config/modelo.js.map +1 -1
- package/dist/base/configs/endpoints.config/bayer/config/retencaoBayer.js +2 -1
- package/dist/base/configs/endpoints.config/bayer/config/retencaoBayer.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js +3 -1
- package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.js +10 -0
- package/dist/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.js.map +1 -0
- package/dist/base/configs/endpoints.config/compras/config/requisicaoCompra.js +2 -1
- package/dist/base/configs/endpoints.config/compras/config/requisicaoCompra.js.map +1 -1
- package/dist/base/configs/endpoints.config/dm/config/businessPartner.js +2 -1
- package/dist/base/configs/endpoints.config/dm/config/businessPartner.js.map +1 -1
- package/dist/base/configs/endpoints.config/performance/config/ppr.js +10 -0
- package/dist/base/configs/endpoints.config/performance/config/ppr.js.map +1 -0
- package/dist/base/configs/endpoints.config/performance/performance.js +3 -1
- package/dist/base/configs/endpoints.config/performance/performance.js.map +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js +2 -0
- package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.js +16 -0
- package/dist/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.js +17 -0
- package/dist/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.js +25 -0
- package/dist/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/performance/config/ppr.submenu.js +19 -0
- package/dist/base/configs/navigation.config/submenu/performance/config/ppr.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/performance/performance.submenu.js +4 -8
- package/dist/base/configs/navigation.config/submenu/performance/performance.submenu.js.map +1 -1
- package/dist/base/index.js +13 -5
- package/dist/base/locales/index.js +2 -2
- package/dist/base/locales/index.js.map +1 -1
- package/dist/base/services/index.js +13 -5
- package/dist/base/services/modules/HubFiscal/NfeService.js +15 -0
- package/dist/base/services/modules/HubFiscal/NfeService.js.map +1 -1
- package/dist/base/services/modules/ativos/index.js +2 -1
- package/dist/base/services/modules/ativos/modelo/ModeloService.js +8 -0
- package/dist/base/services/modules/ativos/modelo/ModeloService.js.map +1 -1
- package/dist/base/services/modules/bayer/index.js +2 -1
- package/dist/base/services/modules/bayer/retencaoBayerService.js +7 -0
- package/dist/base/services/modules/bayer/retencaoBayerService.js.map +1 -1
- package/dist/base/services/modules/centralNfe/index.js +4 -0
- package/dist/base/services/modules/centralNfe/index.js.map +1 -1
- package/dist/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.js +31 -0
- package/dist/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.js.map +1 -0
- package/dist/base/services/modules/compras/index.js +2 -1
- package/dist/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.js +8 -0
- package/dist/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.js.map +1 -1
- package/dist/base/services/modules/dm/businessPartner/BusinessPartnerService.js +9 -0
- package/dist/base/services/modules/dm/businessPartner/BusinessPartnerService.js.map +1 -1
- package/dist/base/services/modules/dm/index.js +2 -1
- package/dist/base/services/modules/index.js +11 -4
- package/dist/base/services/modules/juridico/JuridicoService.js +48 -0
- package/dist/base/services/modules/juridico/JuridicoService.js.map +1 -0
- package/dist/base/services/modules/juridico/docusignService.js +112 -0
- package/dist/base/services/modules/juridico/docusignService.js.map +1 -0
- package/dist/base/services/modules/juridico/municipiosService.js +42 -0
- package/dist/base/services/modules/juridico/municipiosService.js.map +1 -0
- package/dist/base/services/modules/juridico/termosService.js +108 -0
- package/dist/base/services/modules/juridico/termosService.js.map +1 -0
- package/dist/base/services/modules/performance/PerformanceService.js +31 -0
- package/dist/base/services/modules/performance/PerformanceService.js.map +1 -1
- package/dist/base/services/modules/performance/index.js +5 -1
- package/lib/@ecme/assets/styles/components/_orbe-loader.css +84 -0
- package/lib/@ecme/assets/styles/components/index.css +1 -0
- package/lib/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.tsx +38 -0
- package/lib/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.tsx +35 -0
- package/lib/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.tsx +35 -0
- package/lib/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.tsx +38 -0
- package/lib/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.tsx +38 -0
- package/lib/@ecme/components/shared/Loading.tsx +3 -3
- package/lib/@ecme/components/shared/index.tsx +1 -0
- package/lib/@ecme/components/shared/loaders/GlobalLoading.tsx +2 -4
- package/lib/@ecme/components/shared/loaders/OrbeLoader.tsx +37 -0
- package/lib/@ecme/components/template/Header.stories.tsx +46 -0
- package/lib/@ecme/components/template/Search.stories.tsx +79 -0
- package/lib/@ecme/components/template/Search.tsx +41 -14
- package/lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx +13 -252
- package/lib/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.tsx +3 -25
- package/lib/@ecme/components/ui/UploadCustom/UploadCustom.tsx +169 -0
- package/lib/@ecme/components/ui/UploadCustom/index.tsx +6 -0
- package/lib/@ecme/components/ui/index.ts +2 -0
- package/lib/@ecme/locales/index.ts +4 -0
- package/lib/@ecme/locales/initAll.ts +25 -0
- package/lib/@ecme/locales/lang/en/common.ts +43 -0
- package/lib/@ecme/locales/lang/en/index.ts +2 -0
- package/lib/@ecme/locales/lang/ptBR/common.ts +44 -1
- package/lib/@ecme/locales/lang/ptBR/index.ts +2 -0
- package/lib/@ecme/locales/lang/ptBR/nav.ts +308 -5
- package/lib/@ecme/services/ApiServiceJ.ts +30 -0
- package/lib/@ecme/views/auth/lang/index.ts +2 -2
- package/lib/base/@types/api/request/juridico/termos/termo.ts +53 -0
- package/lib/base/@types/api/request/juridico/termos/types.ts +112 -0
- package/lib/base/@types/api/response/bayer/TFindAllRetencaoResponse.ts +2 -2
- package/lib/base/@types/models/ativos/anexoComponente.ts +1 -0
- package/lib/base/@types/models/ativos/documentacao.ts +4 -3
- package/lib/base/@types/models/ativos/sistemaOperacional.ts +3 -3
- package/lib/base/@types/models/ativos/software.ts +7 -7
- package/lib/base/@types/models/ativos/versaoMSOffice.ts +4 -4
- package/lib/base/@types/models/performance/index.ts +6 -5
- package/lib/base/@types/models/performance/ppr.ts +24 -0
- package/lib/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.ts +3 -1
- package/lib/base/configs/endpoints.config/ativos/config/modelo.ts +1 -0
- package/lib/base/configs/endpoints.config/bayer/config/retencaoBayer.ts +1 -0
- package/lib/base/configs/endpoints.config/centralNfe/centralNfe.ts +3 -1
- package/lib/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.ts +9 -0
- package/lib/base/configs/endpoints.config/compras/config/requisicaoCompra.ts +2 -1
- package/lib/base/configs/endpoints.config/dm/config/businessPartner.ts +2 -1
- package/lib/base/configs/endpoints.config/performance/config/ppr.ts +8 -0
- package/lib/base/configs/endpoints.config/performance/performance.ts +3 -1
- package/lib/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.ts +2 -0
- package/lib/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.ts +16 -0
- package/lib/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.ts +17 -0
- package/lib/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.ts +25 -0
- package/lib/base/configs/navigation.config/submenu/performance/config/ppr.submenu.ts +19 -0
- package/lib/base/configs/navigation.config/submenu/performance/performance.submenu.ts +4 -8
- package/lib/base/locales/index.ts +2 -2
- package/lib/base/services/modules/HubFiscal/NfeService.ts +15 -0
- package/lib/base/services/modules/ativos/modelo/ModeloService.ts +8 -0
- package/lib/base/services/modules/bayer/retencaoBayerService.ts +7 -0
- package/lib/base/services/modules/centralNfe/index.ts +2 -1
- package/lib/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.ts +32 -0
- package/lib/base/services/modules/compras/requisicaoCompra/RequisicaoCompraService.ts +8 -0
- package/lib/base/services/modules/dm/businessPartner/BusinessPartnerService.ts +9 -1
- package/lib/base/services/modules/juridico/JuridicoService.ts +52 -0
- package/lib/base/services/modules/juridico/docusignService.ts +154 -0
- package/lib/base/services/modules/juridico/municipiosService.ts +46 -0
- package/lib/base/services/modules/juridico/termosService.ts +118 -0
- package/lib/base/services/modules/performance/PerformanceService.ts +32 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopBarClassic.stories.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport TopBarClassic from './TopBarClassic'\n\nconst meta = {\n title: '@ecme/Layouts/PostLogin/TopBarClassic',\n component: TopBarClassic,\n parameters: {\n layout: 'fullscreen',\n },\n tags: ['autodocs'],\n decorators: [\n (Story) => (\n <BrowserRouter>\n <Story />\n </BrowserRouter>\n ),\n ],\n} satisfies Meta<typeof TopBarClassic>\n\nexport default meta\n\ntype TStory = StoryObj<typeof meta>\n\nexport const Default: TStory = {\n args: {\n pageTitle: 'Dashboard',\n },\n render: (args) => (\n <TopBarClassic {...args}>\n <div className=\"p-4\">\n <div className=\"rounded border border-gray-200 p-4\">\n Conteudo da pagina\n </div>\n </div>\n </TopBarClassic>\n ),\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,OAAO;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,IACR,QAAQ;AAAA,EAAA;AAAA,EAEZ,MAAM,CAAC,UAAU;AAAA,EACjB,YAAY;AAAA,IACR,CAAC,UACG,oBAAC,eAAA,EACG,UAAA,oBAAC,SAAM,EAAA,CACX;AAAA,EAAA;AAGZ;AAMO,MAAM,UAAkB;AAAA,EAC3B,MAAM;AAAA,IACF,WAAW;AAAA,EAAA;AAAA,EAEf,QAAQ,CAAC,SACL,oBAAC,eAAA,EAAe,GAAG,MACf,UAAA,oBAAC,OAAA,EAAI,WAAU,OACX,UAAA,oBAAC,OAAA,EAAI,WAAU,sCAAqC,UAAA,sBAEpD,GACJ,EAAA,CACJ;AAER;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import "
|
|
2
|
+
import OrbeLoader from "./loaders/OrbeLoader.js";
|
|
3
3
|
import classNames from "classnames";
|
|
4
|
-
import Spinner from "../ui/Spinner/Spinner.js";
|
|
5
4
|
const DefaultLoading = (props) => {
|
|
6
5
|
const {
|
|
7
6
|
loading,
|
|
@@ -18,7 +17,7 @@ const DefaultLoading = (props) => {
|
|
|
18
17
|
!customLoader && "flex items-center justify-center h-full",
|
|
19
18
|
className
|
|
20
19
|
),
|
|
21
|
-
children: customLoader ? /* @__PURE__ */ jsx(Fragment, { children: customLoader }) : /* @__PURE__ */ jsx(
|
|
20
|
+
children: customLoader ? /* @__PURE__ */ jsx(Fragment, { children: customLoader }) : /* @__PURE__ */ jsx(OrbeLoader, {})
|
|
22
21
|
}
|
|
23
22
|
) : /* @__PURE__ */ jsx(Fragment, { children });
|
|
24
23
|
};
|
|
@@ -34,7 +33,7 @@ const CoveredLoading = (props) => {
|
|
|
34
33
|
return /* @__PURE__ */ jsxs(Component, { className: classNames(loading ? "relative" : "", className), children: [
|
|
35
34
|
children,
|
|
36
35
|
loading && /* @__PURE__ */ jsx("div", { className: "w-full h-full bg-white dark:bg-gray-800 dark:bg-opacity-60 bg-opacity-50 absolute inset-0" }),
|
|
37
|
-
loading && /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 z-10", children: customLoader ? /* @__PURE__ */ jsx(Fragment, { children: customLoader }) : /* @__PURE__ */ jsx(
|
|
36
|
+
loading && /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 z-10", children: customLoader ? /* @__PURE__ */ jsx(Fragment, { children: customLoader }) : /* @__PURE__ */ jsx(OrbeLoader, {}) })
|
|
38
37
|
] });
|
|
39
38
|
};
|
|
40
39
|
const Loading = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.js","sources":["../../../../lib/@ecme/components/shared/Loading.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Loading.js","sources":["../../../../lib/@ecme/components/shared/Loading.tsx"],"sourcesContent":["import OrbeLoader from './loaders/OrbeLoader'\nimport classNames from 'classnames'\nimport type { CommonProps } from '@/@types/common'\nimport type { ElementType, ReactNode } from 'react'\n\ninterface BaseLoadingProps extends CommonProps {\n asElement?: ElementType\n customLoader?: ReactNode\n loading: boolean\n spinnerClass?: string\n}\n\ninterface LoadingProps extends BaseLoadingProps {\n type?: 'default' | 'cover'\n}\n\nconst DefaultLoading = (props: BaseLoadingProps) => {\n const {\n loading,\n children,\n spinnerClass,\n className,\n asElement: Component = 'div',\n customLoader,\n } = props\n\n return loading ? (\n <Component\n className={classNames(\n !customLoader && 'flex items-center justify-center h-full',\n className,\n )}\n >\n {customLoader ? (\n <>{customLoader}</>\n ) : (\n <OrbeLoader />\n )}\n </Component>\n ) : (\n <>{children}</>\n )\n}\n\nconst CoveredLoading = (props: BaseLoadingProps) => {\n const {\n loading,\n children,\n spinnerClass,\n className,\n asElement: Component = 'div',\n customLoader,\n } = props\n\n return (\n <Component className={classNames(loading ? 'relative' : '', className)}>\n {children}\n {loading && (\n <div className=\"w-full h-full bg-white dark:bg-gray-800 dark:bg-opacity-60 bg-opacity-50 absolute inset-0\" />\n )}\n {loading && (\n <div className=\"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 z-10\">\n {customLoader ? (\n <>{customLoader}</>\n ) : (\n <OrbeLoader />\n )}\n </div>\n )}\n </Component>\n )\n}\n\nconst Loading = ({\n type = 'default',\n loading = false,\n asElement = 'div',\n ...rest\n}: LoadingProps) => {\n switch (type) {\n case 'default':\n return (\n <DefaultLoading\n loading={loading}\n asElement={asElement}\n {...rest}\n />\n )\n case 'cover':\n return (\n <CoveredLoading\n loading={loading}\n asElement={asElement}\n {...rest}\n />\n )\n default:\n return (\n <DefaultLoading\n loading={loading}\n asElement={asElement}\n {...rest}\n />\n )\n }\n}\n\nexport default Loading\n"],"names":[],"mappings":";;;AAgBA,MAAM,iBAAiB,CAAC,UAA4B;AAChD,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,YAAY;AAAA,IACvB;AAAA,EAAA,IACA;AAEJ,SAAO,UACH;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,QACP,CAAC,gBAAgB;AAAA,QACjB;AAAA,MAAA;AAAA,MAGH,UAAA,eACG,oBAAA,UAAA,EAAG,UAAA,cAAa,wBAEf,YAAA,CAAA,CAAW;AAAA,IAAA;AAAA,EAAA,oCAIjB,UAAS;AAEpB;AAEA,MAAM,iBAAiB,CAAC,UAA4B;AAChD,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,YAAY;AAAA,IACvB;AAAA,EAAA,IACA;AAEJ,SACI,qBAAC,aAAU,WAAW,WAAW,UAAU,aAAa,IAAI,SAAS,GAChE,UAAA;AAAA,IAAA;AAAA,IACA,WACG,oBAAC,OAAA,EAAI,WAAU,4FAAA,CAA4F;AAAA,IAE9G,WACG,oBAAC,OAAA,EAAI,WAAU,8EACV,UAAA,eACG,oBAAA,UAAA,EAAG,UAAA,aAAA,CAAa,IAEhB,oBAAC,YAAA,CAAA,CAAW,EAAA,CAEpB;AAAA,EAAA,GAER;AAER;AAEA,MAAM,UAAU,CAAC;AAAA,EACb,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,GAAG;AACP,MAAoB;AAChB,UAAQ,MAAA;AAAA,IACJ,KAAK;AACD,aACI;AAAA,QAAC;AAAA,QAAA;AAAA,UACG;AAAA,UACA;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAGhB,KAAK;AACD,aACI;AAAA,QAAC;AAAA,QAAA;AAAA,UACG;AAAA,UACA;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAGhB;AACI,aACI;AAAA,QAAC;AAAA,QAAA;AAAA,UACG;AAAA,UACA;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,EACR;AAGhB;"}
|
|
@@ -33,9 +33,10 @@ import { default as default28 } from "./ToggleDrawer.js";
|
|
|
33
33
|
import { default as default29 } from "./UsersAvatarGroup.js";
|
|
34
34
|
import { default as default30 } from "./loaders/TableRowSkeleton.js";
|
|
35
35
|
import { default as default31 } from "./loaders/TextBlockSkeleton.js";
|
|
36
|
-
import { default as default32 } from "./
|
|
36
|
+
import { default as default32 } from "./loaders/OrbeLoader.js";
|
|
37
|
+
import { default as default33 } from "./GanttChart/GanttChart.js";
|
|
37
38
|
import { Masonry } from "./Masonry/Masonry.js";
|
|
38
|
-
import { default as
|
|
39
|
+
import { default as default34 } from "./RichTextEditor/RichTextEditor.js";
|
|
39
40
|
export {
|
|
40
41
|
default2 as AbbreviateNumber,
|
|
41
42
|
default3 as ActionLink,
|
|
@@ -52,7 +53,7 @@ export {
|
|
|
52
53
|
DataTable,
|
|
53
54
|
default14 as DebounceInput,
|
|
54
55
|
default15 as DoubleSidedImage,
|
|
55
|
-
|
|
56
|
+
default33 as GanttChart,
|
|
56
57
|
default16 as GrowShrinkValue,
|
|
57
58
|
default17 as IconText,
|
|
58
59
|
default18 as ImageGallery,
|
|
@@ -60,11 +61,12 @@ export {
|
|
|
60
61
|
default19 as MetricCard,
|
|
61
62
|
default20 as NavToggle,
|
|
62
63
|
default21 as NumericInput,
|
|
64
|
+
default32 as OrbeLoader,
|
|
63
65
|
default22 as OtpInput,
|
|
64
66
|
default23 as PasswordInput,
|
|
65
67
|
PatternInput,
|
|
66
68
|
default24 as PresetSegmentItemOption,
|
|
67
|
-
|
|
69
|
+
default34 as RichTextEditor,
|
|
68
70
|
default25 as StickyFooter,
|
|
69
71
|
default26 as StrictModeDroppable,
|
|
70
72
|
default27 as SyntaxHighlighter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import "../../ui/index.js";
|
|
3
2
|
import "../../../store/index.js";
|
|
4
3
|
import "../../../../base/store/index.js";
|
|
4
|
+
import OrbeLoader from "./OrbeLoader.js";
|
|
5
5
|
import { useThemeStore } from "../../../store/themeStore.js";
|
|
6
6
|
import { useLoadingConfigStore, getCurrentMicrofrontendId } from "../../../../base/store/loadingConfigStore.js";
|
|
7
|
-
import Spinner from "../../ui/Spinner/Spinner.js";
|
|
8
7
|
const GlobalLoading = () => {
|
|
9
8
|
const { loading } = useThemeStore();
|
|
10
9
|
const globalLoadingEnabled = useLoadingConfigStore((state) => {
|
|
@@ -20,9 +19,7 @@ const GlobalLoading = () => {
|
|
|
20
19
|
pointerEvents: "all",
|
|
21
20
|
userSelect: "none"
|
|
22
21
|
},
|
|
23
|
-
|
|
24
|
-
"aria-label": "Carregando...",
|
|
25
|
-
children: /* @__PURE__ */ jsx(Spinner, {})
|
|
22
|
+
children: /* @__PURE__ */ jsx(OrbeLoader, {})
|
|
26
23
|
}
|
|
27
24
|
);
|
|
28
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalLoading.js","sources":["../../../../../lib/@ecme/components/shared/loaders/GlobalLoading.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"GlobalLoading.js","sources":["../../../../../lib/@ecme/components/shared/loaders/GlobalLoading.tsx"],"sourcesContent":["import { useThemeStore } from \"@/store\";\nimport { useLoadingConfigStore, getCurrentMicrofrontendId } from \"@base/store\";\nimport OrbeLoader from \"./OrbeLoader\";\n\nconst GlobalLoading = () => {\n const { loading } = useThemeStore();\n \n const globalLoadingEnabled = useLoadingConfigStore((state) => {\n const microfrontendId = getCurrentMicrofrontendId();\n return state.microfrontendConfigs[microfrontendId] ?? true;\n });\n\n if (!loading || !globalLoadingEnabled) return null;\n\n return (\n <div\n className=\"fixed inset-0 z-[9999] flex items-center justify-center bg-black bg-opacity-50\"\n style={{\n pointerEvents: \"all\",\n userSelect: \"none\",\n }}\n >\n <OrbeLoader />\n </div>\n );\n};\n\nexport default GlobalLoading;\n"],"names":[],"mappings":";;;;;;AAIA,MAAM,gBAAgB,MAAM;AAC1B,QAAM,EAAE,QAAA,IAAY,cAAA;AAEpB,QAAM,uBAAuB,sBAAsB,CAAC,UAAU;AAC5D,UAAM,kBAAkB,0BAAA;AACxB,WAAO,MAAM,qBAAqB,eAAe,KAAK;AAAA,EACxD,CAAC;AAED,MAAI,CAAC,WAAW,CAAC,qBAAsB,QAAO;AAE9C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO;AAAA,QACL,eAAe;AAAA,QACf,YAAY;AAAA,MAAA;AAAA,MAGd,8BAAC,YAAA,CAAA,CAAW;AAAA,IAAA;AAAA,EAAA;AAGlB;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { useThemeStore } from "../../../store/themeStore.js";
|
|
4
|
+
import { THEME_ENUM } from "../../../constants/theme.constant.js";
|
|
5
|
+
import OrbeMin from "../../../../base/assets/logo/orbe-agro/orbe-agro-logo-min.svg.js";
|
|
6
|
+
import OrbeMinGray from "../../../../base/assets/logo/orbe-agro/orbe-agro-logo-min-gray.svg.js";
|
|
7
|
+
import OrbeMinWhite from "../../../../base/assets/logo/orbe-agro/orbe-agro-logo-min-white.svg.js";
|
|
8
|
+
const { MODE_DARK } = THEME_ENUM;
|
|
9
|
+
const OrbeLoader = ({ muted = false, className }) => {
|
|
10
|
+
const mode = useThemeStore((state) => state.mode);
|
|
11
|
+
const logoSrc = muted ? OrbeMinGray : mode === MODE_DARK ? OrbeMinWhite : OrbeMin;
|
|
12
|
+
return /* @__PURE__ */ jsxs(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
className: classNames("orbe-loader", muted && "is-muted", className),
|
|
16
|
+
role: "status",
|
|
17
|
+
"aria-label": "Carregando",
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx("img", { className: "orbe-loader__logo", src: logoSrc, alt: "" }),
|
|
20
|
+
/* @__PURE__ */ jsx("span", { className: "orbe-loader__orbit" })
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
export {
|
|
26
|
+
OrbeLoader as default
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=OrbeLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrbeLoader.js","sources":["../../../../../lib/@ecme/components/shared/loaders/OrbeLoader.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useThemeStore } from '@/store/themeStore'\nimport { THEME_ENUM } from '@/constants/theme.constant'\nimport OrbeMin from '@base/assets/logo/orbe-agro/orbe-agro-logo-min.svg'\nimport OrbeMinGray from '@base/assets/logo/orbe-agro/orbe-agro-logo-min-gray.svg'\nimport OrbeMinWhite from '@base/assets/logo/orbe-agro/orbe-agro-logo-min-white.svg'\nimport type { CommonProps } from '@/@types/common'\n\nconst { MODE_DARK } = THEME_ENUM\n\ninterface OrbeLoaderProps extends CommonProps {\n /** Quando true, aplica o estilo neutro/desabilitado */\n muted?: boolean\n}\n\nconst OrbeLoader = ({ muted = false, className }: OrbeLoaderProps) => {\n const mode = useThemeStore((state) => state.mode)\n\n const logoSrc = muted\n ? OrbeMinGray\n : mode === MODE_DARK\n ? OrbeMinWhite\n : OrbeMin\n\n return (\n <div\n className={classNames('orbe-loader', muted && 'is-muted', className)}\n role=\"status\"\n aria-label=\"Carregando\"\n >\n <img className=\"orbe-loader__logo\" src={logoSrc} alt=\"\" />\n <span className=\"orbe-loader__orbit\" />\n </div>\n )\n}\n\nexport default OrbeLoader"],"names":[],"mappings":";;;;;;;AAQA,MAAM,EAAE,cAAc;AAOtB,MAAM,aAAa,CAAC,EAAE,QAAQ,OAAO,gBAAiC;AACpE,QAAM,OAAO,cAAc,CAAC,UAAU,MAAM,IAAI;AAEhD,QAAM,UAAU,QACZ,cACA,SAAS,YACP,eACA;AAEN,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,WAAW,eAAe,SAAS,YAAY,SAAS;AAAA,MACnE,MAAK;AAAA,MACL,cAAW;AAAA,MAEX,UAAA;AAAA,QAAA,oBAAC,SAAI,WAAU,qBAAoB,KAAK,SAAS,KAAI,IAAG;AAAA,QACxD,oBAAC,QAAA,EAAK,WAAU,qBAAA,CAAqB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG3C;"}
|
|
@@ -3,7 +3,7 @@ import Container from "../shared/Container.js";
|
|
|
3
3
|
import classNames from "../../utils/classNames.js";
|
|
4
4
|
import { APP_NAME } from "../../constants/app.constant.js";
|
|
5
5
|
import { PAGE_CONTAINER_GUTTER_X } from "../../constants/theme.constant.js";
|
|
6
|
-
const version = true ? "5.6.
|
|
6
|
+
const version = true ? "5.6.155" : "0.0.0";
|
|
7
7
|
const FooterContent = () => {
|
|
8
8
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-auto items-center justify-between", children: [
|
|
9
9
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import Header from "./Header.js";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: "@ecme/Template/Header",
|
|
5
|
+
component: Header,
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: "fullscreen"
|
|
8
|
+
},
|
|
9
|
+
tags: ["autodocs"],
|
|
10
|
+
argTypes: {
|
|
11
|
+
container: {
|
|
12
|
+
control: "boolean"
|
|
13
|
+
},
|
|
14
|
+
className: {
|
|
15
|
+
control: "text"
|
|
16
|
+
},
|
|
17
|
+
wrapperClass: {
|
|
18
|
+
control: "text"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const Default = {
|
|
23
|
+
args: {
|
|
24
|
+
container: false,
|
|
25
|
+
className: "",
|
|
26
|
+
wrapperClass: ""
|
|
27
|
+
},
|
|
28
|
+
render: (args) => /* @__PURE__ */ jsx(
|
|
29
|
+
Header,
|
|
30
|
+
{
|
|
31
|
+
...args,
|
|
32
|
+
headerStart: /* @__PURE__ */ jsx("div", { className: "px-4 text-sm font-semibold", children: "Minha Marca" }),
|
|
33
|
+
headerMiddle: /* @__PURE__ */ jsx("div", { className: "text-sm", children: "Área central" }),
|
|
34
|
+
headerEnd: /* @__PURE__ */ jsx("div", { className: "px-4 text-sm text-gray-600", children: "Usuário" })
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
};
|
|
38
|
+
export {
|
|
39
|
+
Default,
|
|
40
|
+
meta as default
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=Header.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.stories.js","sources":["../../../../lib/@ecme/components/template/Header.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport Header from './Header'\n\nconst meta = {\n title: '@ecme/Template/Header',\n component: Header,\n parameters: {\n layout: 'fullscreen',\n },\n tags: ['autodocs'],\n argTypes: {\n container: {\n control: 'boolean',\n },\n className: {\n control: 'text',\n },\n wrapperClass: {\n control: 'text',\n },\n },\n} satisfies Meta<typeof Header>\n\nexport default meta\n\ntype TStory = StoryObj<typeof meta>\n\nexport const Default: TStory = {\n args: {\n container: false,\n className: '',\n wrapperClass: '',\n },\n render: (args) => (\n <Header\n {...args}\n headerStart={\n <div className=\"px-4 text-sm font-semibold\">Minha Marca</div>\n }\n headerMiddle={<div className=\"text-sm\">Área central</div>}\n headerEnd={\n <div className=\"px-4 text-sm text-gray-600\">Usuário</div>\n }\n />\n ),\n}\n"],"names":[],"mappings":";;AAGA,MAAM,OAAO;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,IACR,QAAQ;AAAA,EAAA;AAAA,EAEZ,MAAM,CAAC,UAAU;AAAA,EACjB,UAAU;AAAA,IACN,WAAW;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,IAEb,WAAW;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,IAEb,cAAc;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACb;AAER;AAMO,MAAM,UAAkB;AAAA,EAC3B,MAAM;AAAA,IACF,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,EAAA;AAAA,EAElB,QAAQ,CAAC,SACL;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,aACI,oBAAC,OAAA,EAAI,WAAU,8BAA6B,UAAA,eAAW;AAAA,MAE3D,cAAc,oBAAC,OAAA,EAAI,WAAU,WAAU,UAAA,gBAAY;AAAA,MACnD,WACI,oBAAC,OAAA,EAAI,WAAU,8BAA6B,UAAA,UAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAInE;"}
|
|
@@ -4,6 +4,7 @@ import "../ui/Dialog/index.js";
|
|
|
4
4
|
import "../ui/ScrollBar/index.js";
|
|
5
5
|
import navigationConfig from "../../configs/navigation.config/index.js";
|
|
6
6
|
import { NAV_ITEM_TYPE_ITEM } from "../../constants/navigation.constant.js";
|
|
7
|
+
import { useSessionUser } from "../../store/authStore.js";
|
|
7
8
|
import classNames from "../../utils/classNames.js";
|
|
8
9
|
import withHeaderItem from "../../utils/hoc/withHeaderItem.js";
|
|
9
10
|
import debounce from "lodash/debounce";
|
|
@@ -18,6 +19,30 @@ import Dialog from "../ui/Dialog/Dialog.js";
|
|
|
18
19
|
import Button from "../ui/Button/Button.js";
|
|
19
20
|
import Spinner from "../ui/Spinner/Spinner.js";
|
|
20
21
|
import ScrollBar from "../ui/ScrollBar/ScrollBar.js";
|
|
22
|
+
const filterNavigationByAuthority = (navTree, userAuthority) => {
|
|
23
|
+
return navTree.reduce((acc, nav) => {
|
|
24
|
+
if (nav.excludeWhenHasPaths && nav.excludeWhenHasPaths.length > 0) {
|
|
25
|
+
const shouldExclude = nav.excludeWhenHasPaths.some(
|
|
26
|
+
(path) => userAuthority.includes(path)
|
|
27
|
+
);
|
|
28
|
+
if (shouldExclude) {
|
|
29
|
+
return acc;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (nav.subMenu && nav.subMenu.length > 0) {
|
|
33
|
+
const filteredSubMenu = filterNavigationByAuthority(
|
|
34
|
+
nav.subMenu,
|
|
35
|
+
userAuthority
|
|
36
|
+
);
|
|
37
|
+
if (filteredSubMenu.length > 0) {
|
|
38
|
+
acc.push({ ...nav, subMenu: filteredSubMenu });
|
|
39
|
+
}
|
|
40
|
+
} else if (nav.path && userAuthority.includes(nav.path) || !nav.path) {
|
|
41
|
+
acc.push(nav);
|
|
42
|
+
}
|
|
43
|
+
return acc;
|
|
44
|
+
}, []);
|
|
45
|
+
};
|
|
21
46
|
const ListItem = (props) => {
|
|
22
47
|
const { icon, label, url = "", keyWord, onNavigate, breadcrumbs } = props;
|
|
23
48
|
const makeBreadcrumbs = (breadcrumbs2) => {
|
|
@@ -53,6 +78,7 @@ const _Search = ({ className }) => {
|
|
|
53
78
|
const [searchDialogOpen, setSearchDialogOpen] = useState(false);
|
|
54
79
|
const [searchResult, setSearchResult] = useState([]);
|
|
55
80
|
const [noResult, setNoResult] = useState(false);
|
|
81
|
+
const userAuthority = useSessionUser((state) => state.user.authority);
|
|
56
82
|
const inputRef = useRef(null);
|
|
57
83
|
const handleReset = () => {
|
|
58
84
|
setNoResult(false);
|
|
@@ -69,6 +95,10 @@ const _Search = ({ className }) => {
|
|
|
69
95
|
const { t } = useTranslation();
|
|
70
96
|
const flatNavTree = useMemo(() => {
|
|
71
97
|
const arr = [];
|
|
98
|
+
const filteredNavigationTree = filterNavigationByAuthority(
|
|
99
|
+
navigationConfig,
|
|
100
|
+
userAuthority || []
|
|
101
|
+
);
|
|
72
102
|
const makeflat = (item, parents) => {
|
|
73
103
|
if (Array.isArray(item.subMenu) && item.subMenu.length > 0) {
|
|
74
104
|
item.subMenu.forEach(
|
|
@@ -77,11 +107,11 @@ const _Search = ({ className }) => {
|
|
|
77
107
|
}
|
|
78
108
|
arr.push({ ...item, parents });
|
|
79
109
|
};
|
|
80
|
-
|
|
110
|
+
filteredNavigationTree.forEach(function f(item) {
|
|
81
111
|
makeflat(item, [t(item.translateKey)]);
|
|
82
112
|
});
|
|
83
113
|
return arr;
|
|
84
|
-
}, [
|
|
114
|
+
}, [userAuthority, t]);
|
|
85
115
|
const filterNavigationTreeFlat = (text, tree) => {
|
|
86
116
|
const results = tree.filter(
|
|
87
117
|
(item) => item.type === NAV_ITEM_TYPE_ITEM && item.parents.join().toUpperCase().includes(text.toUpperCase())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sources":["../../../../lib/@ecme/components/template/Search.tsx"],"sourcesContent":["import { NavigationTree } from '@/@types/navigation'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport navigationIcon from '@/configs/navigation-icon.config'\nimport navigationConfig from '@/configs/navigation.config'\nimport { NAV_ITEM_TYPE_ITEM } from '@/constants/navigation.constant'\nimport {\n GUIDE_PREFIX_PATH,\n UI_COMPONENTS_PREFIX_PATH,\n} from '@/constants/route.constant'\nimport classNames from '@/utils/classNames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport {\n filterDeep,\n findDeep,\n findPathDeep,\n findValueDeep,\n} from 'deepdash-es/standalone'\nimport { flatten, flattenDeep } from 'lodash'\nimport debounce from 'lodash/debounce'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport Highlighter from 'react-highlight-words'\nimport { useTranslation } from 'react-i18next'\nimport { HiChevronRight, HiOutlineSearch } from 'react-icons/hi'\nimport { PiMagnifyingGlassDuotone } from 'react-icons/pi'\nimport { Link } from 'react-router-dom'\nimport { Spinner } from '../ui'\n\ntype SearchData = {\n key: string\n path: string\n title: string\n icon: string\n category: string\n categoryTitle: string\n breadcrumbs: string[]\n}\n\ntype SearchResult = {\n title: string\n data: SearchData[]\n}\n\nconst ListItem = (props: {\n icon: string\n label: string\n url: string\n isLast?: boolean\n keyWord: string\n breadcrumbs: string[]\n onNavigate: () => void\n}) => {\n const { icon, label, url = '', keyWord, onNavigate, breadcrumbs } = props\n\n const makeBreadcrumbs = (breadcrumbs: string[]) => {\n return breadcrumbs.join(' / ')\n }\n\n return (\n <Link to={url} onClick={onNavigate}>\n <div\n className={classNames(\n 'flex items-center justify-between rounded-xl p-3 cursor-pointer user-select',\n 'hover:bg-gray-100 dark:hover:bg-gray-700',\n )}\n >\n <div className=\"flex items-center gap-2\">\n {/* <div\n className={classNames(\n 'rounded-lg border-2 border-gray-200 shadow-sm text-xl group-hover:shadow h-10 w-10 flex items-center justify-center bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100',\n )}\n >\n {icon && navigationIcon[icon]}\n </div> */}\n <div className=\"text-gray-900 dark:text-gray-300\">\n <Highlighter\n autoEscape\n highlightClassName={classNames(\n 'text-primary',\n 'underline bg-transparent font-semibold dark:text-white',\n )}\n searchWords={[keyWord]}\n textToHighlight={makeBreadcrumbs(breadcrumbs)}\n />\n </div>\n </div>\n <HiChevronRight className=\"text-lg\" />\n </div>\n </Link>\n )\n}\n\ntype NavigationTreeFlat = NavigationTree & { parents: string[] }\n\nconst _Search = ({ className }: { className?: string }) => {\n const [loading, setLoading] = useState(false)\n const [searchDialogOpen, setSearchDialogOpen] = useState(false)\n const [searchResult, setSearchResult] = useState<SearchResult[]>([])\n const [noResult, setNoResult] = useState(false)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleReset = () => {\n setNoResult(false)\n setSearchResult([])\n }\n\n const handleSearchOpen = () => {\n setSearchDialogOpen(true)\n }\n\n const handleSearchClose = () => {\n setSearchDialogOpen(false)\n handleReset()\n }\n\n const debounceFn = debounce(handleDebounceFn, 750)\n\n const { t } = useTranslation()\n\n const flatNavTree = useMemo(() => {\n const arr: NavigationTreeFlat[] = []\n\n const makeflat = (item: NavigationTree, parents: string[]) => {\n if (Array.isArray(item.subMenu) && item.subMenu.length > 0) {\n item.subMenu.forEach((item) =>\n makeflat(item, [...parents, t(item.translateKey)]),\n )\n }\n arr.push({ ...item, parents })\n }\n\n navigationConfig.forEach(function f(item) {\n makeflat(item, [t(item.translateKey)])\n })\n return arr\n }, [navigationConfig, t])\n\n const filterNavigationTreeFlat = (\n text: string,\n tree: NavigationTreeFlat[],\n ): NavigationTreeFlat[] => {\n const results = tree.filter(\n (item) =>\n item.type === NAV_ITEM_TYPE_ITEM &&\n item.parents.join().toUpperCase().includes(text.toUpperCase()),\n )\n\n return results\n }\n\n function navTreeFlatToSearchResult(\n tree: NavigationTreeFlat[],\n ): SearchResult[] {\n const navTreeSearchResult: SearchResult = {\n title: t('base.layout.search.results.navTree'),\n data: [],\n }\n tree.forEach((item) => {\n navTreeSearchResult.data.push({\n category: item.path,\n categoryTitle: item.title,\n icon: item.icon,\n key: item.key,\n path: item.path,\n title: t(item.translateKey, item.title),\n breadcrumbs: item.parents,\n })\n })\n return [navTreeSearchResult]\n }\n\n async function handleDebounceFn(query: string) {\n if (!query) {\n setLoading(false)\n setSearchResult([])\n return\n }\n\n if (noResult) {\n setNoResult(false)\n }\n\n const res = await filterNavigationTreeFlat(query, flatNavTree)\n\n if (res) {\n if (res.length === 0) {\n setNoResult(true)\n setSearchResult([])\n } else {\n setSearchResult(navTreeFlatToSearchResult(res))\n }\n }\n\n setLoading(false)\n }\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setLoading(true)\n debounceFn(e.target.value)\n }\n\n useEffect(() => {\n if (searchDialogOpen) {\n const timeout = setTimeout(() => inputRef.current?.focus(), 100)\n return () => {\n clearTimeout(timeout)\n }\n }\n }, [searchDialogOpen])\n\n const handleNavigate = () => {\n handleSearchClose()\n }\n\n return (\n <>\n <div\n className={classNames(className, 'text-2xl')}\n onClick={handleSearchOpen}\n >\n <PiMagnifyingGlassDuotone />\n </div>\n <Dialog\n contentClassName=\"p-0\"\n isOpen={searchDialogOpen}\n closable={false}\n onRequestClose={handleSearchClose}\n >\n <div>\n <div className=\"flex items-center justify-between border-b border-gray-200 px-4 dark:border-gray-600\">\n <div className=\"flex items-center\">\n <HiOutlineSearch className=\"text-xl\" />\n <input\n ref={inputRef}\n className=\"block w-full bg-transparent p-4 text-base text-gray-900 outline-none ring-0 dark:text-gray-100\"\n placeholder={t('common.input.placeholder.search')}\n onChange={handleSearch}\n />\n </div>\n <Button size=\"xs\" onClick={handleSearchClose}>\n Esc\n </Button>\n </div>\n <div className=\"px-5 py-6\">\n {loading ? (\n <div\n className={classNames(\n 'flex items-center justify-center',\n )}\n >\n <Spinner size={40} />\n </div>\n ) : (\n <>\n <ScrollBar className=\"max-h-[350px] overflow-y-auto\">\n {searchResult.map((result) => (\n <div\n key={result.title}\n className=\"mb-4\"\n >\n <h6 className=\"mb-3\">\n {result.title}\n </h6>\n {result.data.map((data, index) => (\n <ListItem\n key={data.title + index}\n icon={data.icon}\n breadcrumbs={\n data.breadcrumbs\n }\n label={data.title}\n url={data.path}\n keyWord={\n inputRef.current\n ?.value || ''\n }\n onNavigate={handleNavigate}\n />\n ))}\n </div>\n ))}\n {searchResult.length === 0 && noResult && (\n <div className=\"my-10 text-center text-lg\">\n <span className=\"pr-1\">\n {t(\n 'common.status.noResultsFor',\n )}\n </span>\n <span className=\"heading-text\">\n {`'`}\n {inputRef.current?.value}\n {`'`}\n </span>\n </div>\n )}\n </ScrollBar>\n </>\n )}\n </div>\n </div>\n </Dialog>\n </>\n )\n}\n\nconst Search = withHeaderItem(_Search)\n\nexport default Search\n"],"names":["breadcrumbs","item"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../../../lib/@ecme/components/template/Search.tsx"],"sourcesContent":["import { NavigationTree } from '@/@types/navigation'\nimport Button from '@/components/ui/Button'\nimport Dialog from '@/components/ui/Dialog'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport navigationConfig from '@/configs/navigation.config'\nimport { NAV_ITEM_TYPE_ITEM } from '@/constants/navigation.constant'\nimport { useSessionUser } from '@/store/authStore'\nimport classNames from '@/utils/classNames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport debounce from 'lodash/debounce'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport Highlighter from 'react-highlight-words'\nimport { useTranslation } from 'react-i18next'\nimport { HiChevronRight, HiOutlineSearch } from 'react-icons/hi'\nimport { PiMagnifyingGlassDuotone } from 'react-icons/pi'\nimport { Link } from 'react-router-dom'\nimport { Spinner } from '../ui'\n\ntype SearchData = {\n key: string\n path: string\n title: string\n icon: string\n category: string\n categoryTitle: string\n breadcrumbs: string[]\n}\n\ntype SearchResult = {\n title: string\n data: SearchData[]\n}\n\nconst filterNavigationByAuthority = (\n navTree: NavigationTree[],\n userAuthority: string[],\n): NavigationTree[] => {\n return navTree.reduce((acc: NavigationTree[], nav) => {\n if (nav.excludeWhenHasPaths && nav.excludeWhenHasPaths.length > 0) {\n const shouldExclude = nav.excludeWhenHasPaths.some((path) =>\n userAuthority.includes(path),\n )\n\n if (shouldExclude) {\n return acc\n }\n }\n\n if (nav.subMenu && nav.subMenu.length > 0) {\n const filteredSubMenu = filterNavigationByAuthority(\n nav.subMenu,\n userAuthority,\n )\n\n if (filteredSubMenu.length > 0) {\n acc.push({ ...nav, subMenu: filteredSubMenu })\n }\n } else if ((nav.path && userAuthority.includes(nav.path)) || !nav.path) {\n acc.push(nav)\n }\n\n return acc\n }, [])\n}\n\nconst ListItem = (props: {\n icon: string\n label: string\n url: string\n isLast?: boolean\n keyWord: string\n breadcrumbs: string[]\n onNavigate: () => void\n}) => {\n const { icon, label, url = '', keyWord, onNavigate, breadcrumbs } = props\n\n const makeBreadcrumbs = (breadcrumbs: string[]) => {\n return breadcrumbs.join(' / ')\n }\n\n return (\n <Link to={url} onClick={onNavigate}>\n <div\n className={classNames(\n 'flex items-center justify-between rounded-xl p-3 cursor-pointer user-select',\n 'hover:bg-gray-100 dark:hover:bg-gray-700',\n )}\n >\n <div className=\"flex items-center gap-2\">\n {/* <div\n className={classNames(\n 'rounded-lg border-2 border-gray-200 shadow-sm text-xl group-hover:shadow h-10 w-10 flex items-center justify-center bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100',\n )}\n >\n {icon && navigationIcon[icon]}\n </div> */}\n <div className=\"text-gray-900 dark:text-gray-300\">\n <Highlighter\n autoEscape\n highlightClassName={classNames(\n 'text-primary',\n 'underline bg-transparent font-semibold dark:text-white',\n )}\n searchWords={[keyWord]}\n textToHighlight={makeBreadcrumbs(breadcrumbs)}\n />\n </div>\n </div>\n <HiChevronRight className=\"text-lg\" />\n </div>\n </Link>\n )\n}\n\ntype NavigationTreeFlat = NavigationTree & { parents: string[] }\n\nconst _Search = ({ className }: { className?: string }) => {\n const [loading, setLoading] = useState(false)\n const [searchDialogOpen, setSearchDialogOpen] = useState(false)\n const [searchResult, setSearchResult] = useState<SearchResult[]>([])\n const [noResult, setNoResult] = useState(false)\n const userAuthority = useSessionUser((state) => state.user.authority)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleReset = () => {\n setNoResult(false)\n setSearchResult([])\n }\n\n const handleSearchOpen = () => {\n setSearchDialogOpen(true)\n }\n\n const handleSearchClose = () => {\n setSearchDialogOpen(false)\n handleReset()\n }\n\n const debounceFn = debounce(handleDebounceFn, 750)\n\n const { t } = useTranslation()\n\n const flatNavTree = useMemo(() => {\n const arr: NavigationTreeFlat[] = []\n const filteredNavigationTree = filterNavigationByAuthority(\n navigationConfig,\n userAuthority || [],\n )\n\n const makeflat = (item: NavigationTree, parents: string[]) => {\n if (Array.isArray(item.subMenu) && item.subMenu.length > 0) {\n item.subMenu.forEach((item) =>\n makeflat(item, [...parents, t(item.translateKey)]),\n )\n }\n arr.push({ ...item, parents })\n }\n\n filteredNavigationTree.forEach(function f(item) {\n makeflat(item, [t(item.translateKey)])\n })\n\n return arr\n }, [userAuthority, t])\n\n const filterNavigationTreeFlat = (\n text: string,\n tree: NavigationTreeFlat[],\n ): NavigationTreeFlat[] => {\n const results = tree.filter(\n (item) =>\n item.type === NAV_ITEM_TYPE_ITEM &&\n item.parents.join().toUpperCase().includes(text.toUpperCase()),\n )\n\n return results\n }\n\n function navTreeFlatToSearchResult(\n tree: NavigationTreeFlat[],\n ): SearchResult[] {\n const navTreeSearchResult: SearchResult = {\n title: t('base.layout.search.results.navTree'),\n data: [],\n }\n tree.forEach((item) => {\n navTreeSearchResult.data.push({\n category: item.path,\n categoryTitle: item.title,\n icon: item.icon,\n key: item.key,\n path: item.path,\n title: t(item.translateKey, item.title),\n breadcrumbs: item.parents,\n })\n })\n return [navTreeSearchResult]\n }\n\n async function handleDebounceFn(query: string) {\n if (!query) {\n setLoading(false)\n setSearchResult([])\n return\n }\n\n if (noResult) {\n setNoResult(false)\n }\n\n const res = await filterNavigationTreeFlat(query, flatNavTree)\n\n if (res) {\n if (res.length === 0) {\n setNoResult(true)\n setSearchResult([])\n } else {\n setSearchResult(navTreeFlatToSearchResult(res))\n }\n }\n\n setLoading(false)\n }\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setLoading(true)\n debounceFn(e.target.value)\n }\n\n useEffect(() => {\n if (searchDialogOpen) {\n const timeout = setTimeout(() => inputRef.current?.focus(), 100)\n return () => {\n clearTimeout(timeout)\n }\n }\n }, [searchDialogOpen])\n\n const handleNavigate = () => {\n handleSearchClose()\n }\n\n return (\n <>\n <div\n className={classNames(className, 'text-2xl')}\n onClick={handleSearchOpen}\n >\n <PiMagnifyingGlassDuotone />\n </div>\n <Dialog\n contentClassName=\"p-0\"\n isOpen={searchDialogOpen}\n closable={false}\n onRequestClose={handleSearchClose}\n >\n <div>\n <div className=\"flex items-center justify-between border-b border-gray-200 px-4 dark:border-gray-600\">\n <div className=\"flex items-center\">\n <HiOutlineSearch className=\"text-xl\" />\n <input\n ref={inputRef}\n className=\"block w-full bg-transparent p-4 text-base text-gray-900 outline-none ring-0 dark:text-gray-100\"\n placeholder={t('common.input.placeholder.search')}\n onChange={handleSearch}\n />\n </div>\n <Button size=\"xs\" onClick={handleSearchClose}>\n Esc\n </Button>\n </div>\n <div className=\"px-5 py-6\">\n {loading ? (\n <div\n className={classNames(\n 'flex items-center justify-center',\n )}\n >\n <Spinner size={40} />\n </div>\n ) : (\n <>\n <ScrollBar className=\"max-h-[350px] overflow-y-auto\">\n {searchResult.map((result) => (\n <div\n key={result.title}\n className=\"mb-4\"\n >\n <h6 className=\"mb-3\">\n {result.title}\n </h6>\n {result.data.map((data, index) => (\n <ListItem\n key={data.title + index}\n icon={data.icon}\n breadcrumbs={\n data.breadcrumbs\n }\n label={data.title}\n url={data.path}\n keyWord={\n inputRef.current\n ?.value || ''\n }\n onNavigate={handleNavigate}\n />\n ))}\n </div>\n ))}\n {searchResult.length === 0 && noResult && (\n <div className=\"my-10 text-center text-lg\">\n <span className=\"pr-1\">\n {t(\n 'common.status.noResultsFor',\n )}\n </span>\n <span className=\"heading-text\">\n {`'`}\n {inputRef.current?.value}\n {`'`}\n </span>\n </div>\n )}\n </ScrollBar>\n </>\n )}\n </div>\n </div>\n </Dialog>\n </>\n )\n}\n\nconst Search = withHeaderItem(_Search)\n\nexport default Search\n"],"names":["breadcrumbs","item"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,8BAA8B,CAChC,SACA,kBACmB;AACnB,SAAO,QAAQ,OAAO,CAAC,KAAuB,QAAQ;AAClD,QAAI,IAAI,uBAAuB,IAAI,oBAAoB,SAAS,GAAG;AAC/D,YAAM,gBAAgB,IAAI,oBAAoB;AAAA,QAAK,CAAC,SAChD,cAAc,SAAS,IAAI;AAAA,MAAA;AAG/B,UAAI,eAAe;AACf,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,QAAI,IAAI,WAAW,IAAI,QAAQ,SAAS,GAAG;AACvC,YAAM,kBAAkB;AAAA,QACpB,IAAI;AAAA,QACJ;AAAA,MAAA;AAGJ,UAAI,gBAAgB,SAAS,GAAG;AAC5B,YAAI,KAAK,EAAE,GAAG,KAAK,SAAS,iBAAiB;AAAA,MACjD;AAAA,IACJ,WAAY,IAAI,QAAQ,cAAc,SAAS,IAAI,IAAI,KAAM,CAAC,IAAI,MAAM;AACpE,UAAI,KAAK,GAAG;AAAA,IAChB;AAEA,WAAO;AAAA,EACX,GAAG,CAAA,CAAE;AACT;AAEA,MAAM,WAAW,CAAC,UAQZ;AACF,QAAM,EAAE,MAAM,OAAO,MAAM,IAAI,SAAS,YAAY,gBAAgB;AAEpE,QAAM,kBAAkB,CAACA,iBAA0B;AAC/C,WAAOA,aAAY,KAAK,KAAK;AAAA,EACjC;AAEA,SACI,oBAAC,MAAA,EAAK,IAAI,KAAK,SAAS,YACpB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MAAA;AAAA,MAGJ,UAAA;AAAA,QAAA,oBAAC,SAAI,WAAU,2BAQX,UAAA,oBAAC,OAAA,EAAI,WAAU,oCACX,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,YAAU;AAAA,YACV,oBAAoB;AAAA,cAChB;AAAA,cACA;AAAA,YAAA;AAAA,YAEJ,aAAa,CAAC,OAAO;AAAA,YACrB,iBAAiB,gBAAgB,WAAW;AAAA,UAAA;AAAA,QAAA,GAEpD,EAAA,CACJ;AAAA,QACA,oBAAC,gBAAA,EAAe,WAAU,UAAA,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAE5C;AAER;AAIA,MAAM,UAAU,CAAC,EAAE,gBAAwC;AACvD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,KAAK;AAC9D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAyB,CAAA,CAAE;AACnE,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,KAAK,SAAS;AAEpE,QAAM,WAAW,OAAyB,IAAI;AAE9C,QAAM,cAAc,MAAM;AACtB,gBAAY,KAAK;AACjB,oBAAgB,CAAA,CAAE;AAAA,EACtB;AAEA,QAAM,mBAAmB,MAAM;AAC3B,wBAAoB,IAAI;AAAA,EAC5B;AAEA,QAAM,oBAAoB,MAAM;AAC5B,wBAAoB,KAAK;AACzB,gBAAA;AAAA,EACJ;AAEA,QAAM,aAAa,SAAS,kBAAkB,GAAG;AAEjD,QAAM,EAAE,EAAA,IAAM,eAAA;AAEd,QAAM,cAAc,QAAQ,MAAM;AAC9B,UAAM,MAA4B,CAAA;AAClC,UAAM,yBAAyB;AAAA,MAC3B;AAAA,MACA,iBAAiB,CAAA;AAAA,IAAC;AAGtB,UAAM,WAAW,CAAC,MAAsB,YAAsB;AAC1D,UAAI,MAAM,QAAQ,KAAK,OAAO,KAAK,KAAK,QAAQ,SAAS,GAAG;AACxD,aAAK,QAAQ;AAAA,UAAQ,CAACC,UAClB,SAASA,OAAM,CAAC,GAAG,SAAS,EAAEA,MAAK,YAAY,CAAC,CAAC;AAAA,QAAA;AAAA,MAEzD;AACA,UAAI,KAAK,EAAE,GAAG,MAAM,SAAS;AAAA,IACjC;AAEA,2BAAuB,QAAQ,SAAS,EAAE,MAAM;AAC5C,eAAS,MAAM,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;AAAA,IACzC,CAAC;AAED,WAAO;AAAA,EACX,GAAG,CAAC,eAAe,CAAC,CAAC;AAErB,QAAM,2BAA2B,CAC7B,MACA,SACuB;AACvB,UAAM,UAAU,KAAK;AAAA,MACjB,CAAC,SACG,KAAK,SAAS,sBACd,KAAK,QAAQ,KAAA,EAAO,YAAA,EAAc,SAAS,KAAK,aAAa;AAAA,IAAA;AAGrE,WAAO;AAAA,EACX;AAEA,WAAS,0BACL,MACc;AACd,UAAM,sBAAoC;AAAA,MACtC,OAAO,EAAE,oCAAoC;AAAA,MAC7C,MAAM,CAAA;AAAA,IAAC;AAEX,SAAK,QAAQ,CAAC,SAAS;AACnB,0BAAoB,KAAK,KAAK;AAAA,QAC1B,UAAU,KAAK;AAAA,QACf,eAAe,KAAK;AAAA,QACpB,MAAM,KAAK;AAAA,QACX,KAAK,KAAK;AAAA,QACV,MAAM,KAAK;AAAA,QACX,OAAO,EAAE,KAAK,cAAc,KAAK,KAAK;AAAA,QACtC,aAAa,KAAK;AAAA,MAAA,CACrB;AAAA,IACL,CAAC;AACD,WAAO,CAAC,mBAAmB;AAAA,EAC/B;AAEA,iBAAe,iBAAiB,OAAe;AAC3C,QAAI,CAAC,OAAO;AACR,iBAAW,KAAK;AAChB,sBAAgB,CAAA,CAAE;AAClB;AAAA,IACJ;AAEA,QAAI,UAAU;AACV,kBAAY,KAAK;AAAA,IACrB;AAEA,UAAM,MAAM,MAAM,yBAAyB,OAAO,WAAW;AAE7D,QAAI,KAAK;AACL,UAAI,IAAI,WAAW,GAAG;AAClB,oBAAY,IAAI;AAChB,wBAAgB,CAAA,CAAE;AAAA,MACtB,OAAO;AACH,wBAAgB,0BAA0B,GAAG,CAAC;AAAA,MAClD;AAAA,IACJ;AAEA,eAAW,KAAK;AAAA,EACpB;AAEA,QAAM,eAAe,CAAC,MAA2C;AAC7D,eAAW,IAAI;AACf,eAAW,EAAE,OAAO,KAAK;AAAA,EAC7B;AAEA,YAAU,MAAM;AACZ,QAAI,kBAAkB;AAClB,YAAM,UAAU,WAAW,MAAM,SAAS,SAAS,MAAA,GAAS,GAAG;AAC/D,aAAO,MAAM;AACT,qBAAa,OAAO;AAAA,MACxB;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,iBAAiB,MAAM;AACzB,sBAAA;AAAA,EACJ;AAEA,SACI,qBAAA,UAAA,EACI,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,WAAW,WAAW,UAAU;AAAA,QAC3C,SAAS;AAAA,QAET,8BAAC,0BAAA,CAAA,CAAyB;AAAA,MAAA;AAAA,IAAA;AAAA,IAE9B;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,kBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,gBAAgB;AAAA,QAEhB,+BAAC,OAAA,EACG,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,wFACX,UAAA;AAAA,YAAA,qBAAC,OAAA,EAAI,WAAU,qBACX,UAAA;AAAA,cAAA,oBAAC,iBAAA,EAAgB,WAAU,UAAA,CAAU;AAAA,cACrC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,KAAK;AAAA,kBACL,WAAU;AAAA,kBACV,aAAa,EAAE,iCAAiC;AAAA,kBAChD,UAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,YACd,GACJ;AAAA,gCACC,QAAA,EAAO,MAAK,MAAK,SAAS,mBAAmB,UAAA,MAAA,CAE9C;AAAA,UAAA,GACJ;AAAA,UACA,oBAAC,OAAA,EAAI,WAAU,aACV,UAAA,UACG;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAW;AAAA,gBACP;AAAA,cAAA;AAAA,cAGJ,UAAA,oBAAC,SAAA,EAAQ,MAAM,GAAA,CAAI;AAAA,YAAA;AAAA,UAAA,IAGvB,oBAAA,UAAA,EACI,UAAA,qBAAC,WAAA,EAAU,WAAU,iCAChB,UAAA;AAAA,YAAA,aAAa,IAAI,CAAC,WACf;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEG,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,oBAAC,MAAA,EAAG,WAAU,QACT,UAAA,OAAO,OACZ;AAAA,kBACC,OAAO,KAAK,IAAI,CAAC,MAAM,UACpB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEG,MAAM,KAAK;AAAA,sBACX,aACI,KAAK;AAAA,sBAET,OAAO,KAAK;AAAA,sBACZ,KAAK,KAAK;AAAA,sBACV,SACI,SAAS,SACH,SAAS;AAAA,sBAEnB,YAAY;AAAA,oBAAA;AAAA,oBAXP,KAAK,QAAQ;AAAA,kBAAA,CAazB;AAAA,gBAAA;AAAA,cAAA;AAAA,cArBI,OAAO;AAAA,YAAA,CAuBnB;AAAA,YACA,aAAa,WAAW,KAAK,YAC1B,qBAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,cAAA,oBAAC,QAAA,EAAK,WAAU,QACX,UAAA;AAAA,gBACG;AAAA,cAAA,GAER;AAAA,cACA,qBAAC,QAAA,EAAK,WAAU,gBACX,UAAA;AAAA,gBAAA;AAAA,gBACA,SAAS,SAAS;AAAA,gBAClB;AAAA,cAAA,EAAA,CACL;AAAA,YAAA,EAAA,CACJ;AAAA,UAAA,EAAA,CAER,GACJ,EAAA,CAER;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACJ;AAER;AAEA,MAAM,SAAS,eAAe,OAAO;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import { BrowserRouter } from "react-router-dom";
|
|
4
|
+
import navigationConfig from "../../configs/navigation.config/index.js";
|
|
5
|
+
import { useSessionUser } from "../../store/authStore.js";
|
|
6
|
+
import Search from "./Search.js";
|
|
7
|
+
const collectAuthorityPaths = (navTree) => {
|
|
8
|
+
return navTree.reduce((acc, node) => {
|
|
9
|
+
if (node.path) {
|
|
10
|
+
acc.push(node.path);
|
|
11
|
+
}
|
|
12
|
+
if (node.subMenu?.length) {
|
|
13
|
+
acc.push(...collectAuthorityPaths(node.subMenu));
|
|
14
|
+
}
|
|
15
|
+
return acc;
|
|
16
|
+
}, []);
|
|
17
|
+
};
|
|
18
|
+
const allAuthority = Array.from(new Set(collectAuthorityPaths(navigationConfig)));
|
|
19
|
+
const WithSimulatedAuthorities = ({
|
|
20
|
+
children
|
|
21
|
+
}) => {
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const previousUser = useSessionUser.getState().user;
|
|
24
|
+
useSessionUser.setState({
|
|
25
|
+
user: {
|
|
26
|
+
...previousUser,
|
|
27
|
+
authority: allAuthority
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return () => {
|
|
31
|
+
useSessionUser.setState({ user: previousUser });
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
35
|
+
};
|
|
36
|
+
const meta = {
|
|
37
|
+
title: "@ecme/Template/Search",
|
|
38
|
+
component: Search,
|
|
39
|
+
parameters: {
|
|
40
|
+
layout: "padded"
|
|
41
|
+
},
|
|
42
|
+
tags: ["autodocs"],
|
|
43
|
+
decorators: [
|
|
44
|
+
(Story) => /* @__PURE__ */ jsx(BrowserRouter, { children: /* @__PURE__ */ jsx(WithSimulatedAuthorities, { children: /* @__PURE__ */ jsx(Story, {}) }) })
|
|
45
|
+
],
|
|
46
|
+
argTypes: {
|
|
47
|
+
className: {
|
|
48
|
+
control: "text"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const Default = {
|
|
53
|
+
args: {
|
|
54
|
+
className: ""
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
export {
|
|
58
|
+
Default,
|
|
59
|
+
meta as default
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=Search.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Search.stories.js","sources":["../../../../lib/@ecme/components/template/Search.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { useEffect } from 'react'\nimport { BrowserRouter } from 'react-router-dom'\nimport navigationConfig from '@/configs/navigation.config'\nimport type { NavigationTree } from '@/@types/navigation'\nimport { useSessionUser } from '@/store/authStore'\nimport Search from './Search'\n\nconst collectAuthorityPaths = (navTree: NavigationTree[]): string[] => {\n return navTree.reduce((acc: string[], node) => {\n if (node.path) {\n acc.push(node.path)\n }\n\n if (node.subMenu?.length) {\n acc.push(...collectAuthorityPaths(node.subMenu))\n }\n\n return acc\n }, [])\n}\n\nconst allAuthority = Array.from(new Set(collectAuthorityPaths(navigationConfig)))\n\nconst WithSimulatedAuthorities = ({\n children,\n}: {\n children: React.ReactNode\n}) => {\n useEffect(() => {\n const previousUser = useSessionUser.getState().user\n\n useSessionUser.setState({\n user: {\n ...previousUser,\n authority: allAuthority,\n },\n })\n\n return () => {\n useSessionUser.setState({ user: previousUser })\n }\n }, [])\n\n return <>{children}</>\n}\n\nconst meta = {\n title: '@ecme/Template/Search',\n component: Search,\n parameters: {\n layout: 'padded',\n },\n tags: ['autodocs'],\n decorators: [\n (Story) => (\n <BrowserRouter>\n <WithSimulatedAuthorities>\n <Story />\n </WithSimulatedAuthorities>\n </BrowserRouter>\n ),\n ],\n argTypes: {\n className: {\n control: 'text',\n },\n },\n} satisfies Meta<typeof Search>\n\nexport default meta\n\ntype TStory = StoryObj<typeof meta>\n\nexport const Default: TStory = {\n args: {\n className: '',\n },\n}\n"],"names":[],"mappings":";;;;;;AAQA,MAAM,wBAAwB,CAAC,YAAwC;AACnE,SAAO,QAAQ,OAAO,CAAC,KAAe,SAAS;AAC3C,QAAI,KAAK,MAAM;AACX,UAAI,KAAK,KAAK,IAAI;AAAA,IACtB;AAEA,QAAI,KAAK,SAAS,QAAQ;AACtB,UAAI,KAAK,GAAG,sBAAsB,KAAK,OAAO,CAAC;AAAA,IACnD;AAEA,WAAO;AAAA,EACX,GAAG,CAAA,CAAE;AACT;AAEA,MAAM,eAAe,MAAM,KAAK,IAAI,IAAI,sBAAsB,gBAAgB,CAAC,CAAC;AAEhF,MAAM,2BAA2B,CAAC;AAAA,EAC9B;AACJ,MAEM;AACF,YAAU,MAAM;AACZ,UAAM,eAAe,eAAe,SAAA,EAAW;AAE/C,mBAAe,SAAS;AAAA,MACpB,MAAM;AAAA,QACF,GAAG;AAAA,QACH,WAAW;AAAA,MAAA;AAAA,IACf,CACH;AAED,WAAO,MAAM;AACT,qBAAe,SAAS,EAAE,MAAM,aAAA,CAAc;AAAA,IAClD;AAAA,EACJ,GAAG,CAAA,CAAE;AAEL,yCAAU,UAAS;AACvB;AAEA,MAAM,OAAO;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,IACR,QAAQ;AAAA,EAAA;AAAA,EAEZ,MAAM,CAAC,UAAU;AAAA,EACjB,YAAY;AAAA,IACR,CAAC,UACG,oBAAC,eAAA,EACG,8BAAC,0BAAA,EACG,UAAA,oBAAC,OAAA,CAAA,CAAM,EAAA,CACX,EAAA,CACJ;AAAA,EAAA;AAAA,EAGR,UAAU;AAAA,IACN,WAAW;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,EACb;AAER;AAMO,MAAM,UAAkB;AAAA,EAC3B,MAAM;AAAA,IACF,WAAW;AAAA,EAAA;AAEnB;"}
|