@orbe-agro/client-core-prod 5.6.135 → 5.6.137

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.
Files changed (270) hide show
  1. package/dist/@ecme/assets/styles/app.css +3 -15
  2. package/dist/@ecme/assets/styles/tailwind/index.css +3 -15
  3. package/dist/@ecme/components/index.js +8 -6
  4. package/dist/@ecme/components/index.js.map +1 -1
  5. package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.js +25 -0
  6. package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.js.map +1 -0
  7. package/dist/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.js +22 -0
  8. package/dist/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.js.map +1 -0
  9. package/dist/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.js +22 -0
  10. package/dist/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.js.map +1 -0
  11. package/dist/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.js +25 -0
  12. package/dist/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.js.map +1 -0
  13. package/dist/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.js +25 -0
  14. package/dist/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.js.map +1 -0
  15. package/dist/@ecme/components/template/Footer.js +1 -1
  16. package/dist/@ecme/components/template/Header.stories.js +42 -0
  17. package/dist/@ecme/components/template/Header.stories.js.map +1 -0
  18. package/dist/@ecme/components/template/Search.js +32 -2
  19. package/dist/@ecme/components/template/Search.js.map +1 -1
  20. package/dist/@ecme/components/template/Search.stories.js +61 -0
  21. package/dist/@ecme/components/template/Search.stories.js.map +1 -0
  22. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.js +10 -241
  23. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.js.map +1 -1
  24. package/dist/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.js +3 -17
  25. package/dist/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.js.map +1 -1
  26. package/dist/@ecme/components/ui/UploadCustom/UploadCustom.js +134 -0
  27. package/dist/@ecme/components/ui/UploadCustom/UploadCustom.js.map +1 -0
  28. package/dist/@ecme/components/ui/UploadCustom/index.js +6 -0
  29. package/dist/@ecme/components/ui/UploadCustom/index.js.map +1 -0
  30. package/dist/@ecme/components/ui/index.js +5 -2
  31. package/dist/@ecme/components/ui/index.js.map +1 -1
  32. package/dist/@ecme/index.js +79 -74
  33. package/dist/@ecme/index.js.map +1 -1
  34. package/dist/@ecme/locales/index.js +4 -1
  35. package/dist/@ecme/locales/index.js.map +1 -1
  36. package/dist/@ecme/locales/initAll.js +26 -0
  37. package/dist/@ecme/locales/initAll.js.map +1 -0
  38. package/dist/@ecme/locales/lang/en/common.js +43 -0
  39. package/dist/@ecme/locales/lang/en/common.js.map +1 -1
  40. package/dist/@ecme/locales/lang/en/index.js +3 -1
  41. package/dist/@ecme/locales/lang/en/index.js.map +1 -1
  42. package/dist/@ecme/locales/lang/ptBR/common.js +43 -0
  43. package/dist/@ecme/locales/lang/ptBR/common.js.map +1 -1
  44. package/dist/@ecme/locales/lang/ptBR/index.js +3 -1
  45. package/dist/@ecme/locales/lang/ptBR/index.js.map +1 -1
  46. package/dist/@ecme/locales/lang/ptBR/nav.js +307 -4
  47. package/dist/@ecme/locales/lang/ptBR/nav.js.map +1 -1
  48. package/dist/@ecme/services/ApiServiceJ.js +26 -0
  49. package/dist/@ecme/services/ApiServiceJ.js.map +1 -0
  50. package/dist/@ecme/views/auth/lang/index.js +2 -2
  51. package/dist/@ecme/views/auth/lang/index.js.map +1 -1
  52. package/dist/@types/@ecme/components/template/Search.d.ts.map +1 -1
  53. package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.d.ts +0 -8
  54. package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.d.ts.map +1 -1
  55. package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.d.ts.map +1 -1
  56. package/dist/@types/@ecme/components/ui/UploadCustom/UploadCustom.d.ts +15 -0
  57. package/dist/@types/@ecme/components/ui/UploadCustom/UploadCustom.d.ts.map +1 -0
  58. package/dist/@types/@ecme/components/ui/UploadCustom/index.d.ts +5 -0
  59. package/dist/@types/@ecme/components/ui/UploadCustom/index.d.ts.map +1 -0
  60. package/dist/@types/@ecme/components/ui/index.d.ts +2 -0
  61. package/dist/@types/@ecme/components/ui/index.d.ts.map +1 -1
  62. package/dist/@types/@ecme/locales/index.d.ts +1 -0
  63. package/dist/@types/@ecme/locales/index.d.ts.map +1 -1
  64. package/dist/@types/@ecme/locales/initAll.d.ts +3 -0
  65. package/dist/@types/@ecme/locales/initAll.d.ts.map +1 -0
  66. package/dist/@types/@ecme/locales/lang/en/common.d.ts +43 -0
  67. package/dist/@types/@ecme/locales/lang/en/common.d.ts.map +1 -1
  68. package/dist/@types/@ecme/locales/lang/en/index.d.ts +98 -0
  69. package/dist/@types/@ecme/locales/lang/en/index.d.ts.map +1 -1
  70. package/dist/@types/@ecme/locales/lang/ptBR/common.d.ts.map +1 -1
  71. package/dist/@types/@ecme/locales/lang/ptBR/index.d.ts +98 -0
  72. package/dist/@types/@ecme/locales/lang/ptBR/index.d.ts.map +1 -1
  73. package/dist/@types/@ecme/locales/lang/ptBR/nav.d.ts.map +1 -1
  74. package/dist/@types/@ecme/services/ApiServiceJ.d.ts +8 -0
  75. package/dist/@types/@ecme/services/ApiServiceJ.d.ts.map +1 -0
  76. package/dist/@types/base/@types/api/request/juridico/termos/termo.d.ts +54 -0
  77. package/dist/@types/base/@types/api/request/juridico/termos/termo.d.ts.map +1 -0
  78. package/dist/@types/base/@types/api/request/juridico/termos/types.d.ts +102 -0
  79. package/dist/@types/base/@types/api/request/juridico/termos/types.d.ts.map +1 -0
  80. package/dist/@types/base/@types/api/response/bayer/TFindAllRetencaoResponse.d.ts +2 -2
  81. package/dist/@types/base/@types/api/response/bayer/TFindAllRetencaoResponse.d.ts.map +1 -1
  82. package/dist/@types/base/@types/models/ativos/anexoComponente.d.ts +1 -0
  83. package/dist/@types/base/@types/models/ativos/anexoComponente.d.ts.map +1 -1
  84. package/dist/@types/base/@types/models/ativos/documentacao.d.ts +4 -3
  85. package/dist/@types/base/@types/models/ativos/documentacao.d.ts.map +1 -1
  86. package/dist/@types/base/@types/models/ativos/sistemaOperacional.d.ts +3 -3
  87. package/dist/@types/base/@types/models/ativos/sistemaOperacional.d.ts.map +1 -1
  88. package/dist/@types/base/@types/models/ativos/software.d.ts +7 -7
  89. package/dist/@types/base/@types/models/ativos/software.d.ts.map +1 -1
  90. package/dist/@types/base/@types/models/ativos/versaoMSOffice.d.ts +4 -4
  91. package/dist/@types/base/@types/models/ativos/versaoMSOffice.d.ts.map +1 -1
  92. package/dist/@types/base/@types/models/performance/index.d.ts +1 -0
  93. package/dist/@types/base/@types/models/performance/index.d.ts.map +1 -1
  94. package/dist/@types/base/@types/models/performance/ppr.d.ts +22 -0
  95. package/dist/@types/base/@types/models/performance/ppr.d.ts.map +1 -0
  96. package/dist/@types/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.d.ts +2 -0
  97. package/dist/@types/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.d.ts.map +1 -1
  98. package/dist/@types/base/configs/endpoints.config/ativos/ativos.d.ts +4 -0
  99. package/dist/@types/base/configs/endpoints.config/ativos/ativos.d.ts.map +1 -1
  100. package/dist/@types/base/configs/endpoints.config/ativos/config/modelo.d.ts +4 -0
  101. package/dist/@types/base/configs/endpoints.config/ativos/config/modelo.d.ts.map +1 -1
  102. package/dist/@types/base/configs/endpoints.config/bayer/bayer.d.ts +1 -0
  103. package/dist/@types/base/configs/endpoints.config/bayer/bayer.d.ts.map +1 -1
  104. package/dist/@types/base/configs/endpoints.config/bayer/config/retencaoBayer.d.ts +1 -0
  105. package/dist/@types/base/configs/endpoints.config/bayer/config/retencaoBayer.d.ts.map +1 -1
  106. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +14 -0
  107. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
  108. package/dist/@types/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.d.ts +16 -0
  109. package/dist/@types/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.d.ts.map +1 -0
  110. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +25 -0
  111. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  112. package/dist/@types/base/configs/endpoints.config/performance/config/ppr.d.ts +8 -0
  113. package/dist/@types/base/configs/endpoints.config/performance/config/ppr.d.ts.map +1 -0
  114. package/dist/@types/base/configs/endpoints.config/performance/performance.d.ts +6 -0
  115. package/dist/@types/base/configs/endpoints.config/performance/performance.d.ts.map +1 -1
  116. package/dist/@types/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.d.ts.map +1 -1
  117. package/dist/@types/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.d.ts +4 -0
  118. package/dist/@types/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.d.ts.map +1 -0
  119. package/dist/@types/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.d.ts +4 -0
  120. package/dist/@types/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.d.ts.map +1 -0
  121. package/dist/@types/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.d.ts +4 -0
  122. package/dist/@types/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.d.ts.map +1 -0
  123. package/dist/@types/base/configs/navigation.config/submenu/performance/config/ppr.submenu.d.ts +4 -0
  124. package/dist/@types/base/configs/navigation.config/submenu/performance/config/ppr.submenu.d.ts.map +1 -0
  125. package/dist/@types/base/configs/navigation.config/submenu/performance/performance.submenu.d.ts.map +1 -1
  126. package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts +2 -0
  127. package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts.map +1 -1
  128. package/dist/@types/base/services/modules/ativos/modelo/ModeloService.d.ts +4 -0
  129. package/dist/@types/base/services/modules/ativos/modelo/ModeloService.d.ts.map +1 -1
  130. package/dist/@types/base/services/modules/bayer/retencaoBayerService.d.ts +1 -0
  131. package/dist/@types/base/services/modules/bayer/retencaoBayerService.d.ts.map +1 -1
  132. package/dist/@types/base/services/modules/centralNfe/index.d.ts +1 -0
  133. package/dist/@types/base/services/modules/centralNfe/index.d.ts.map +1 -1
  134. package/dist/@types/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.d.ts +7 -0
  135. package/dist/@types/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.d.ts.map +1 -0
  136. package/dist/@types/base/services/modules/insumos/comissaoVenda/ComissaoVendaService.d.ts +1 -1
  137. package/dist/@types/base/services/modules/insumos/comissaoVenda/ComissaoVendaService.d.ts.map +1 -1
  138. package/dist/@types/base/services/modules/juridico/JuridicoService.d.ts +4 -0
  139. package/dist/@types/base/services/modules/juridico/JuridicoService.d.ts.map +1 -0
  140. package/dist/@types/base/services/modules/juridico/docusignService.d.ts +32 -0
  141. package/dist/@types/base/services/modules/juridico/docusignService.d.ts.map +1 -0
  142. package/dist/@types/base/services/modules/juridico/municipiosService.d.ts +4 -0
  143. package/dist/@types/base/services/modules/juridico/municipiosService.d.ts.map +1 -0
  144. package/dist/@types/base/services/modules/juridico/termosService.d.ts +28 -0
  145. package/dist/@types/base/services/modules/juridico/termosService.d.ts.map +1 -0
  146. package/dist/@types/base/services/modules/performance/PerformanceService.d.ts +5 -0
  147. package/dist/@types/base/services/modules/performance/PerformanceService.d.ts.map +1 -1
  148. package/dist/base/@types/api/request/juridico/termos/termo.js +2 -0
  149. package/dist/base/@types/api/request/juridico/termos/termo.js.map +1 -0
  150. package/dist/base/@types/api/request/juridico/termos/types.js +48 -0
  151. package/dist/base/@types/api/request/juridico/termos/types.js.map +1 -0
  152. package/dist/base/@types/models/performance/index.js +1 -0
  153. package/dist/base/@types/models/performance/index.js.map +1 -1
  154. package/dist/base/@types/models/performance/ppr.js +2 -0
  155. package/dist/base/@types/models/performance/ppr.js.map +1 -0
  156. package/dist/base/assets/styles/init.css +3 -15
  157. package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js +3 -1
  158. package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js.map +1 -1
  159. package/dist/base/configs/endpoints.config/ativos/config/modelo.js +2 -1
  160. package/dist/base/configs/endpoints.config/ativos/config/modelo.js.map +1 -1
  161. package/dist/base/configs/endpoints.config/bayer/config/retencaoBayer.js +2 -1
  162. package/dist/base/configs/endpoints.config/bayer/config/retencaoBayer.js.map +1 -1
  163. package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js +3 -1
  164. package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js.map +1 -1
  165. package/dist/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.js +10 -0
  166. package/dist/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.js.map +1 -0
  167. package/dist/base/configs/endpoints.config/performance/config/ppr.js +10 -0
  168. package/dist/base/configs/endpoints.config/performance/config/ppr.js.map +1 -0
  169. package/dist/base/configs/endpoints.config/performance/performance.js +3 -1
  170. package/dist/base/configs/endpoints.config/performance/performance.js.map +1 -1
  171. package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js +2 -0
  172. package/dist/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.js.map +1 -1
  173. package/dist/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.js +16 -0
  174. package/dist/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.js.map +1 -0
  175. package/dist/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.js +17 -0
  176. package/dist/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.js.map +1 -0
  177. package/dist/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.js +25 -0
  178. package/dist/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.js.map +1 -0
  179. package/dist/base/configs/navigation.config/submenu/performance/config/ppr.submenu.js +19 -0
  180. package/dist/base/configs/navigation.config/submenu/performance/config/ppr.submenu.js.map +1 -0
  181. package/dist/base/configs/navigation.config/submenu/performance/performance.submenu.js +4 -8
  182. package/dist/base/configs/navigation.config/submenu/performance/performance.submenu.js.map +1 -1
  183. package/dist/base/index.js +9 -3
  184. package/dist/base/locales/index.js +2 -2
  185. package/dist/base/locales/index.js.map +1 -1
  186. package/dist/base/services/index.js +9 -3
  187. package/dist/base/services/modules/HubFiscal/NfeService.js +15 -0
  188. package/dist/base/services/modules/HubFiscal/NfeService.js.map +1 -1
  189. package/dist/base/services/modules/ativos/index.js +2 -1
  190. package/dist/base/services/modules/ativos/modelo/ModeloService.js +8 -0
  191. package/dist/base/services/modules/ativos/modelo/ModeloService.js.map +1 -1
  192. package/dist/base/services/modules/bayer/index.js +2 -1
  193. package/dist/base/services/modules/bayer/retencaoBayerService.js +7 -0
  194. package/dist/base/services/modules/bayer/retencaoBayerService.js.map +1 -1
  195. package/dist/base/services/modules/centralNfe/index.js +4 -0
  196. package/dist/base/services/modules/centralNfe/index.js.map +1 -1
  197. package/dist/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.js +31 -0
  198. package/dist/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.js.map +1 -0
  199. package/dist/base/services/modules/index.js +7 -2
  200. package/dist/base/services/modules/insumos/comissaoVenda/ComissaoVendaService.js +2 -2
  201. package/dist/base/services/modules/insumos/comissaoVenda/ComissaoVendaService.js.map +1 -1
  202. package/dist/base/services/modules/juridico/JuridicoService.js +48 -0
  203. package/dist/base/services/modules/juridico/JuridicoService.js.map +1 -0
  204. package/dist/base/services/modules/juridico/docusignService.js +112 -0
  205. package/dist/base/services/modules/juridico/docusignService.js.map +1 -0
  206. package/dist/base/services/modules/juridico/municipiosService.js +42 -0
  207. package/dist/base/services/modules/juridico/municipiosService.js.map +1 -0
  208. package/dist/base/services/modules/juridico/termosService.js +108 -0
  209. package/dist/base/services/modules/juridico/termosService.js.map +1 -0
  210. package/dist/base/services/modules/performance/PerformanceService.js +31 -0
  211. package/dist/base/services/modules/performance/PerformanceService.js.map +1 -1
  212. package/dist/base/services/modules/performance/index.js +5 -1
  213. package/lib/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.tsx +38 -0
  214. package/lib/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.tsx +35 -0
  215. package/lib/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.tsx +35 -0
  216. package/lib/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.tsx +38 -0
  217. package/lib/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.tsx +38 -0
  218. package/lib/@ecme/components/template/Header.stories.tsx +46 -0
  219. package/lib/@ecme/components/template/Search.stories.tsx +79 -0
  220. package/lib/@ecme/components/template/Search.tsx +41 -14
  221. package/lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx +13 -252
  222. package/lib/@ecme/components/template/VerticalMenuContent/VerticalSingleMenuItem.tsx +3 -25
  223. package/lib/@ecme/components/ui/UploadCustom/UploadCustom.tsx +169 -0
  224. package/lib/@ecme/components/ui/UploadCustom/index.tsx +6 -0
  225. package/lib/@ecme/components/ui/index.ts +2 -0
  226. package/lib/@ecme/locales/index.ts +4 -0
  227. package/lib/@ecme/locales/initAll.ts +25 -0
  228. package/lib/@ecme/locales/lang/en/common.ts +43 -0
  229. package/lib/@ecme/locales/lang/en/index.ts +2 -0
  230. package/lib/@ecme/locales/lang/ptBR/common.ts +44 -1
  231. package/lib/@ecme/locales/lang/ptBR/index.ts +2 -0
  232. package/lib/@ecme/locales/lang/ptBR/nav.ts +308 -5
  233. package/lib/@ecme/services/ApiServiceJ.ts +30 -0
  234. package/lib/@ecme/views/auth/lang/index.ts +2 -2
  235. package/lib/base/@types/api/request/juridico/termos/termo.ts +53 -0
  236. package/lib/base/@types/api/request/juridico/termos/types.ts +112 -0
  237. package/lib/base/@types/api/response/bayer/TFindAllRetencaoResponse.ts +2 -2
  238. package/lib/base/@types/models/ativos/anexoComponente.ts +1 -0
  239. package/lib/base/@types/models/ativos/documentacao.ts +4 -3
  240. package/lib/base/@types/models/ativos/sistemaOperacional.ts +3 -3
  241. package/lib/base/@types/models/ativos/software.ts +7 -7
  242. package/lib/base/@types/models/ativos/versaoMSOffice.ts +4 -4
  243. package/lib/base/@types/models/performance/index.ts +6 -5
  244. package/lib/base/@types/models/performance/ppr.ts +24 -0
  245. package/lib/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.ts +3 -1
  246. package/lib/base/configs/endpoints.config/ativos/config/modelo.ts +1 -0
  247. package/lib/base/configs/endpoints.config/bayer/config/retencaoBayer.ts +1 -0
  248. package/lib/base/configs/endpoints.config/centralNfe/centralNfe.ts +3 -1
  249. package/lib/base/configs/endpoints.config/centralNfe/config/recepcaoFisica.ts +9 -0
  250. package/lib/base/configs/endpoints.config/performance/config/ppr.ts +8 -0
  251. package/lib/base/configs/endpoints.config/performance/performance.ts +3 -1
  252. package/lib/base/configs/navigation.config/modules.submenu/centralNfe/submenu.centralNfe.ts +2 -0
  253. package/lib/base/configs/navigation.config/submenu/centralNfe/config/recepcaoFisica.submenu.ts +16 -0
  254. package/lib/base/configs/navigation.config/submenu/performance/config/aberturaAnoPpr.submenu.ts +17 -0
  255. package/lib/base/configs/navigation.config/submenu/performance/config/avaliacoes.submenu.ts +25 -0
  256. package/lib/base/configs/navigation.config/submenu/performance/config/ppr.submenu.ts +19 -0
  257. package/lib/base/configs/navigation.config/submenu/performance/performance.submenu.ts +4 -8
  258. package/lib/base/locales/index.ts +2 -2
  259. package/lib/base/services/modules/HubFiscal/NfeService.ts +15 -0
  260. package/lib/base/services/modules/ativos/modelo/ModeloService.ts +8 -0
  261. package/lib/base/services/modules/bayer/retencaoBayerService.ts +7 -0
  262. package/lib/base/services/modules/centralNfe/index.ts +2 -1
  263. package/lib/base/services/modules/centralNfe/recepcaoFisica/RecepcaoFisicaService.ts +32 -0
  264. package/lib/base/services/modules/insumos/comissaoVenda/ComissaoVendaService.ts +2 -2
  265. package/lib/base/services/modules/juridico/JuridicoService.ts +52 -0
  266. package/lib/base/services/modules/juridico/docusignService.ts +154 -0
  267. package/lib/base/services/modules/juridico/municipiosService.ts +46 -0
  268. package/lib/base/services/modules/juridico/termosService.ts +118 -0
  269. package/lib/base/services/modules/performance/PerformanceService.ts +32 -0
  270. package/package.json +1 -1
@@ -4493,9 +4493,6 @@ hr:is(.dark *){
4493
4493
  .-left-2{
4494
4494
  left: -0.5rem;
4495
4495
  }
4496
- .-left-3{
4497
- left: -0.75rem;
4498
- }
4499
4496
  .-right-2{
4500
4497
  right: -0.5rem;
4501
4498
  }
@@ -4556,9 +4553,6 @@ hr:is(.dark *){
4556
4553
  .z-10{
4557
4554
  z-index: 10;
4558
4555
  }
4559
- .z-20{
4560
- z-index: 20;
4561
- }
4562
4556
  .z-30{
4563
4557
  z-index: 30;
4564
4558
  }
@@ -5275,9 +5269,6 @@ hr:is(.dark *){
5275
5269
  .min-w-\[330px\]{
5276
5270
  min-width: 330px;
5277
5271
  }
5278
- .min-w-\[calc\(100\%\+1\.5rem\)\]{
5279
- min-width: calc(100% + 1.5rem);
5280
- }
5281
5272
  .min-w-full{
5282
5273
  min-width: 100%;
5283
5274
  }
@@ -5624,6 +5615,9 @@ hr:is(.dark *){
5624
5615
  .text-clip{
5625
5616
  text-overflow: clip;
5626
5617
  }
5618
+ .whitespace-normal{
5619
+ white-space: normal;
5620
+ }
5627
5621
  .whitespace-nowrap{
5628
5622
  white-space: nowrap;
5629
5623
  }
@@ -7096,9 +7090,6 @@ hr:is(.dark *){
7096
7090
  .active\:bg-gray-100:active{
7097
7091
  background-color: var(--gray-100);
7098
7092
  }
7099
- .group\/item:hover .group-hover\/item\:block{
7100
- display: block;
7101
- }
7102
7093
  .group:hover .group-hover\:block{
7103
7094
  display: block;
7104
7095
  }
@@ -7143,9 +7134,6 @@ hr:is(.dark *){
7143
7134
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
7144
7135
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
7145
7136
  }
7146
- .group\/item:focus-visible .group-focus-visible\/item\:block{
7147
- display: block;
7148
- }
7149
7137
  .group.active .group-\[\.active\]\:bg-white{
7150
7138
  --tw-bg-opacity: 1;
7151
7139
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
@@ -1165,9 +1165,6 @@ video {
1165
1165
  .-left-2 {
1166
1166
  left: -0.5rem;
1167
1167
  }
1168
- .-left-3 {
1169
- left: -0.75rem;
1170
- }
1171
1168
  .-right-2 {
1172
1169
  right: -0.5rem;
1173
1170
  }
@@ -1228,9 +1225,6 @@ video {
1228
1225
  .z-10 {
1229
1226
  z-index: 10;
1230
1227
  }
1231
- .z-20 {
1232
- z-index: 20;
1233
- }
1234
1228
  .z-30 {
1235
1229
  z-index: 30;
1236
1230
  }
@@ -1947,9 +1941,6 @@ video {
1947
1941
  .min-w-\[330px\] {
1948
1942
  min-width: 330px;
1949
1943
  }
1950
- .min-w-\[calc\(100\%\+1\.5rem\)\] {
1951
- min-width: calc(100% + 1.5rem);
1952
- }
1953
1944
  .min-w-full {
1954
1945
  min-width: 100%;
1955
1946
  }
@@ -2298,6 +2289,9 @@ video {
2298
2289
  .text-clip {
2299
2290
  text-overflow: clip;
2300
2291
  }
2292
+ .whitespace-normal {
2293
+ white-space: normal;
2294
+ }
2301
2295
  .whitespace-nowrap {
2302
2296
  white-space: nowrap;
2303
2297
  }
@@ -3770,9 +3764,6 @@ video {
3770
3764
  .active\:bg-gray-100:active {
3771
3765
  background-color: var(--gray-100);
3772
3766
  }
3773
- .group\/item:hover .group-hover\/item\:block {
3774
- display: block;
3775
- }
3776
3767
  .group:hover .group-hover\:block {
3777
3768
  display: block;
3778
3769
  }
@@ -3817,9 +3808,6 @@ video {
3817
3808
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
3818
3809
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
3819
3810
  }
3820
- .group\/item:focus-visible .group-focus-visible\/item\:block {
3821
- display: block;
3822
- }
3823
3811
  .group.active .group-\[\.active\]\:bg-white {
3824
3812
  --tw-bg-opacity: 1;
3825
3813
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
@@ -94,9 +94,10 @@ import { Timeline } from "./ui/Timeline/index.js";
94
94
  import { default as default73 } from "./shared/ToggleDrawer.js";
95
95
  import { default as default74 } from "./ui/Tooltip/Tooltip.js";
96
96
  import { default as default75 } from "./ui/Upload/Upload.js";
97
- import { default as default76 } from "./shared/UsersAvatarGroup.js";
98
- import { default as default77 } from "./ui/hooks/index.js";
99
- import { default as default78 } from "./ui/toast/toast.js";
97
+ import { default as default76 } from "./ui/UploadCustom/UploadCustom.js";
98
+ import { default as default77 } from "./shared/UsersAvatarGroup.js";
99
+ import { default as default78 } from "./ui/hooks/index.js";
100
+ import { default as default79 } from "./ui/toast/toast.js";
100
101
  export {
101
102
  default5 as AbbreviateNumber,
102
103
  default6 as ActionLink,
@@ -189,8 +190,9 @@ export {
189
190
  default73 as ToggleDrawer,
190
191
  default74 as Tooltip,
191
192
  default75 as Upload,
192
- default76 as UsersAvatarGroup,
193
- default77 as hooks,
194
- default78 as toast
193
+ default76 as UploadCustom,
194
+ default77 as UsersAvatarGroup,
195
+ default78 as hooks,
196
+ default79 as toast
195
197
  };
196
198
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { BrowserRouter } from "react-router-dom";
3
+ import CollapsibleSide from "./CollapsibleSide.js";
4
+ const meta = {
5
+ title: "@ecme/Layouts/PostLogin/CollapsibleSide",
6
+ component: CollapsibleSide,
7
+ parameters: {
8
+ layout: "fullscreen"
9
+ },
10
+ tags: ["autodocs"],
11
+ decorators: [
12
+ (Story) => /* @__PURE__ */ jsx(BrowserRouter, { children: /* @__PURE__ */ jsx(Story, {}) })
13
+ ]
14
+ };
15
+ const Default = {
16
+ args: {
17
+ pageTitle: "Dashboard"
18
+ },
19
+ render: (args) => /* @__PURE__ */ jsx(CollapsibleSide, { ...args, children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx("div", { className: "rounded border border-gray-200 p-4", children: "Conteudo da pagina" }) }) })
20
+ };
21
+ export {
22
+ Default,
23
+ meta as default
24
+ };
25
+ //# sourceMappingURL=CollapsibleSide.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleSide.stories.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport CollapsibleSide from './CollapsibleSide'\n\nconst meta = {\n title: '@ecme/Layouts/PostLogin/CollapsibleSide',\n component: CollapsibleSide,\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 CollapsibleSide>\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 <CollapsibleSide {...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 </CollapsibleSide>\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,iBAAA,EAAiB,GAAG,MACjB,UAAA,oBAAC,OAAA,EAAI,WAAU,OACX,UAAA,oBAAC,OAAA,EAAI,WAAU,sCAAqC,UAAA,sBAEpD,GACJ,EAAA,CACJ;AAER;"}
@@ -0,0 +1,22 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { BrowserRouter } from "react-router-dom";
3
+ import ContentOverlay from "./ContentOverlay.js";
4
+ const meta = {
5
+ title: "@ecme/Layouts/PostLogin/ContentOverlay",
6
+ component: ContentOverlay,
7
+ parameters: {
8
+ layout: "fullscreen"
9
+ },
10
+ tags: ["autodocs"],
11
+ decorators: [
12
+ (Story) => /* @__PURE__ */ jsx(BrowserRouter, { children: /* @__PURE__ */ jsx(Story, {}) })
13
+ ]
14
+ };
15
+ const Default = {
16
+ render: () => /* @__PURE__ */ jsx(ContentOverlay, { children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx("div", { className: "rounded border border-gray-200 bg-white p-4 dark:bg-gray-900", children: "Conteudo da pagina" }) }) })
17
+ };
18
+ export {
19
+ Default,
20
+ meta as default
21
+ };
22
+ //# sourceMappingURL=ContentOverlay.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentOverlay.stories.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport ContentOverlay from './ContentOverlay'\n\nconst meta = {\n title: '@ecme/Layouts/PostLogin/ContentOverlay',\n component: ContentOverlay,\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 ContentOverlay>\n\nexport default meta\n\ntype TStory = StoryObj<typeof meta>\n\nexport const Default: TStory = {\n render: () => (\n <ContentOverlay>\n <div className=\"p-4\">\n <div className=\"rounded border border-gray-200 bg-white p-4 dark:bg-gray-900\">\n Conteudo da pagina\n </div>\n </div>\n </ContentOverlay>\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,QAAQ,MACJ,oBAAC,gBAAA,EACG,8BAAC,OAAA,EAAI,WAAU,OACX,UAAA,oBAAC,OAAA,EAAI,WAAU,gEAA+D,UAAA,sBAE9E,GACJ,EAAA,CACJ;AAER;"}
@@ -0,0 +1,22 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { BrowserRouter } from "react-router-dom";
3
+ import FrameLessSide from "./FrameLessSide.js";
4
+ const meta = {
5
+ title: "@ecme/Layouts/PostLogin/FrameLessSide",
6
+ component: FrameLessSide,
7
+ parameters: {
8
+ layout: "fullscreen"
9
+ },
10
+ tags: ["autodocs"],
11
+ decorators: [
12
+ (Story) => /* @__PURE__ */ jsx(BrowserRouter, { children: /* @__PURE__ */ jsx(Story, {}) })
13
+ ]
14
+ };
15
+ const Default = {
16
+ render: () => /* @__PURE__ */ jsx(FrameLessSide, { children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx("div", { className: "rounded border border-gray-200 bg-white p-4 dark:bg-gray-900", children: "Conteudo da pagina" }) }) })
17
+ };
18
+ export {
19
+ Default,
20
+ meta as default
21
+ };
22
+ //# sourceMappingURL=FrameLessSide.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameLessSide.stories.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport FrameLessSide from './FrameLessSide'\n\nconst meta = {\n title: '@ecme/Layouts/PostLogin/FrameLessSide',\n component: FrameLessSide,\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 FrameLessSide>\n\nexport default meta\n\ntype TStory = StoryObj<typeof meta>\n\nexport const Default: TStory = {\n render: () => (\n <FrameLessSide>\n <div className=\"p-4\">\n <div className=\"rounded border border-gray-200 bg-white p-4 dark:bg-gray-900\">\n Conteudo da pagina\n </div>\n </div>\n </FrameLessSide>\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,QAAQ,MACJ,oBAAC,eAAA,EACG,8BAAC,OAAA,EAAI,WAAU,OACX,UAAA,oBAAC,OAAA,EAAI,WAAU,gEAA+D,UAAA,sBAE9E,GACJ,EAAA,CACJ;AAER;"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { BrowserRouter } from "react-router-dom";
3
+ import StackedSide from "./StackedSide.js";
4
+ const meta = {
5
+ title: "@ecme/Layouts/PostLogin/StackedSide",
6
+ component: StackedSide,
7
+ parameters: {
8
+ layout: "fullscreen"
9
+ },
10
+ tags: ["autodocs"],
11
+ decorators: [
12
+ (Story) => /* @__PURE__ */ jsx(BrowserRouter, { children: /* @__PURE__ */ jsx(Story, {}) })
13
+ ]
14
+ };
15
+ const Default = {
16
+ args: {
17
+ pageTitle: "Dashboard"
18
+ },
19
+ render: (args) => /* @__PURE__ */ jsx(StackedSide, { ...args, children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx("div", { className: "rounded border border-gray-200 p-4", children: "Conteudo da pagina" }) }) })
20
+ };
21
+ export {
22
+ Default,
23
+ meta as default
24
+ };
25
+ //# sourceMappingURL=StackedSide.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackedSide.stories.js","sources":["../../../../../../lib/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport StackedSide from './StackedSide'\n\nconst meta = {\n title: '@ecme/Layouts/PostLogin/StackedSide',\n component: StackedSide,\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 StackedSide>\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 <StackedSide {...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 </StackedSide>\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,aAAA,EAAa,GAAG,MACb,UAAA,oBAAC,OAAA,EAAI,WAAU,OACX,UAAA,oBAAC,OAAA,EAAI,WAAU,sCAAqC,UAAA,sBAEpD,GACJ,EAAA,CACJ;AAER;"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { BrowserRouter } from "react-router-dom";
3
+ import TopBarClassic from "./TopBarClassic.js";
4
+ const meta = {
5
+ title: "@ecme/Layouts/PostLogin/TopBarClassic",
6
+ component: TopBarClassic,
7
+ parameters: {
8
+ layout: "fullscreen"
9
+ },
10
+ tags: ["autodocs"],
11
+ decorators: [
12
+ (Story) => /* @__PURE__ */ jsx(BrowserRouter, { children: /* @__PURE__ */ jsx(Story, {}) })
13
+ ]
14
+ };
15
+ const Default = {
16
+ args: {
17
+ pageTitle: "Dashboard"
18
+ },
19
+ render: (args) => /* @__PURE__ */ jsx(TopBarClassic, { ...args, children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx("div", { className: "rounded border border-gray-200 p-4", children: "Conteudo da pagina" }) }) })
20
+ };
21
+ export {
22
+ Default,
23
+ meta as default
24
+ };
25
+ //# sourceMappingURL=TopBarClassic.stories.js.map
@@ -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;"}
@@ -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.135" : "0.0.0";
6
+ const version = true ? "5.6.137" : "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
- navigationConfig.forEach(function f(item) {
110
+ filteredNavigationTree.forEach(function f(item) {
81
111
  makeflat(item, [t(item.translateKey)]);
82
112
  });
83
113
  return arr;
84
- }, [navigationConfig, t]);
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":"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"}
@@ -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;"}