lib-common-angular 0.0.9 → 0.0.11

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 (452) hide show
  1. package/.editorconfig +16 -0
  2. package/.eslintrc.json +36 -0
  3. package/.github/CODEOWNERS +1 -0
  4. package/.github/workflows/publish.yml +108 -0
  5. package/.gitmodules +4 -0
  6. package/.postcssrc.json +5 -0
  7. package/Dockerfile +42 -0
  8. package/Jenkinsfile +162 -0
  9. package/README.md +134 -0
  10. package/angular.json +133 -0
  11. package/eslint-rules/.ignore-logs-max-lines.js +30 -0
  12. package/lib-core-dtos/.github/workflows/validate-raml.yml +58 -0
  13. package/lib-core-dtos/.husky/pre-commit +4 -0
  14. package/lib-core-dtos/README.md +2 -0
  15. package/lib-core-dtos/api.raml +63 -0
  16. package/lib-core-dtos/componentes-common-lib-angular/Menu/menuConfig.raml +83 -0
  17. package/lib-core-dtos/componentes-common-lib-angular/Menu/menuEvent.raml +42 -0
  18. package/lib-core-dtos/componentes-common-lib-angular/Menu/menuItem.raml +107 -0
  19. package/lib-core-dtos/componentes-common-lib-angular/tabla1/column.DTO.raml +48 -0
  20. package/lib-core-dtos/componentes-common-lib-angular/tabla1/dynamicField.DTO.raml +54 -0
  21. package/lib-core-dtos/componentes-common-lib-angular/tabla1/excelExportConfig.DTO.raml +58 -0
  22. package/lib-core-dtos/componentes-common-lib-angular/tabla1/exportColumn.raml +23 -0
  23. package/lib-core-dtos/componentes-common-lib-angular/tabla1/fieldType.DTO.raml +20 -0
  24. package/lib-core-dtos/mcs-bussines-n/auth/loginDTO.raml +11 -0
  25. package/lib-core-dtos/mcs-bussines-n/bussines/businessDTO.raml +102 -0
  26. package/lib-core-dtos/mcs-bussines-n/bussines/businessModuleDTO.raml +35 -0
  27. package/lib-core-dtos/mcs-bussines-n/bussines/coloresDTO.raml +30 -0
  28. package/lib-core-dtos/mcs-bussines-n/bussines/componentesDTO.raml +72 -0
  29. package/lib-core-dtos/mcs-bussines-n/bussines/dising-imagenDTO.raml +22 -0
  30. package/lib-core-dtos/mcs-bussines-n/bussines/disingDTO.raml +28 -0
  31. package/lib-core-dtos/mcs-bussines-n/bussines/imagenDTO.raml +30 -0
  32. package/lib-core-dtos/mcs-bussines-n/bussines/mediosPagosDTO.raml +15 -0
  33. package/lib-core-dtos/mcs-bussines-n/bussines/menuActive.raml +26 -0
  34. package/lib-core-dtos/mcs-bussines-n/bussines/menuDTO.raml +64 -0
  35. package/lib-core-dtos/mcs-bussines-n/bussines/moduloDTO.raml +25 -0
  36. package/lib-core-dtos/mcs-bussines-n/bussines/modulosComponentesDTO.raml +31 -0
  37. package/lib-core-dtos/mcs-bussines-n/bussines/plantillaDTO.raml +47 -0
  38. package/lib-core-dtos/mcs-bussines-n/bussines/sliderDTO.raml +41 -0
  39. package/lib-core-dtos/mcs-bussines-n/bussines/trabajosDTO.raml +60 -0
  40. package/lib-core-dtos/mcs-bussines-n/productos/carrito/carritoDTO.raml +68 -0
  41. package/lib-core-dtos/mcs-bussines-n/productos/carrito/carritoItemDTO.raml +26 -0
  42. package/lib-core-dtos/mcs-bussines-n/productos/categorias/categoriaDTO.raml +29 -0
  43. package/lib-core-dtos/mcs-bussines-n/productos/categorias/tipoCategoriaDTO.raml +13 -0
  44. package/lib-core-dtos/mcs-bussines-n/productos/monedaDTO.raml +29 -0
  45. package/lib-core-dtos/mcs-bussines-n/productos/pedidoproductos/pedido.raml +77 -0
  46. package/lib-core-dtos/mcs-bussines-n/productos/pedidoproductos/pedidoProducto.raml +28 -0
  47. package/lib-core-dtos/mcs-bussines-n/productos/productoDTO.raml +103 -0
  48. package/lib-core-dtos/mcs-bussines-n/request/create.bussinesRq.DTO.raml +19 -0
  49. package/lib-core-dtos/mcs-usuarios-Sp/request/registerUserDTO.raml +37 -0
  50. package/lib-core-dtos/mcs-usuarios-Sp/users/addresDTO.raml +29 -0
  51. package/lib-core-dtos/mcs-usuarios-Sp/users/cityDTO.raml +13 -0
  52. package/lib-core-dtos/mcs-usuarios-Sp/users/countryDTO.raml +34 -0
  53. package/lib-core-dtos/mcs-usuarios-Sp/users/datesUserDTO.raml +71 -0
  54. package/lib-core-dtos/mcs-usuarios-Sp/users/keycloakBuilderDTO.raml +18 -0
  55. package/lib-core-dtos/mcs-usuarios-Sp/users/loginDTO.raml +13 -0
  56. package/lib-core-dtos/mcs-usuarios-Sp/users/phoneDTO.raml +36 -0
  57. package/lib-core-dtos/mcs-usuarios-Sp/users/propertyTypeDTO.raml +18 -0
  58. package/lib-core-dtos/package.json +26 -0
  59. package/lib-core-dtos/scripts/generate-typescript.js +615 -0
  60. package/lib-core-dtos/scripts/validate-raml.js +154 -0
  61. package/lib-core-dtos/utils/queryParams.raml +43 -0
  62. package/package.json +8 -31
  63. package/projects/lib-common-angular/README.md +0 -0
  64. package/projects/lib-common-angular/lib.routes.ts +32 -0
  65. package/projects/lib-common-angular/ng-package.json +23 -0
  66. package/projects/lib-common-angular/package.json +13 -0
  67. package/projects/lib-common-angular/src/lib/common-lib.component.ts +16 -0
  68. package/projects/lib-common-angular/src/lib/common-lib.service.spec.ts +16 -0
  69. package/projects/lib-common-angular/src/lib/common-lib.service.ts +9 -0
  70. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/body/body.component.css +12 -0
  71. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/body/body.component.html +9 -0
  72. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/body/body.component.spec.ts +23 -0
  73. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/body/body.component.ts +21 -0
  74. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/button-call1/button-call1.component.css +0 -0
  75. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/button-call1/button-call1.component.html +5 -0
  76. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/button-call1/button-call1.component.spec.ts +23 -0
  77. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/button-call1/button-call1.component.ts +20 -0
  78. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/layout-services1/layout-services1.component.css +0 -0
  79. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/layout-services1/layout-services1.component.html +21 -0
  80. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/layout-services1/layout-services1.component.spec.ts +23 -0
  81. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/layout-services1/layout-services1.component.ts +40 -0
  82. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/link1/link1.component.html +6 -0
  83. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/link1/link1.component.scss +0 -0
  84. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/link1/link1.component.spec.ts +24 -0
  85. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/link1/link1.component.ts +79 -0
  86. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/contenido-nav/contenido-nav.component.html +40 -0
  87. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/contenido-nav/contenido-nav.component.scss +0 -0
  88. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/contenido-nav/contenido-nav.component.spec.ts +24 -0
  89. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/contenido-nav/contenido-nav.component.ts +54 -0
  90. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/footer1/footer1.component.css +0 -0
  91. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/footer1/footer1.component.html +55 -0
  92. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/footer1/footer1.component.spec.ts +23 -0
  93. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/footer1/footer1.component.ts +23 -0
  94. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/gallery-section1/gallery-section1.component.css +0 -0
  95. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/gallery-section1/gallery-section1.component.html +14 -0
  96. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/gallery-section1/gallery-section1.component.spec.ts +23 -0
  97. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/gallery-section1/gallery-section1.component.ts +38 -0
  98. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/nav1/nav1.component.css +0 -0
  99. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/nav1/nav1.component.html +24 -0
  100. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/nav1/nav1.component.spec.ts +23 -0
  101. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/nav1/nav1.component.ts +56 -0
  102. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/services-section1/services-section1.component.css +0 -0
  103. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/services-section1/services-section1.component.html +23 -0
  104. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/services-section1/services-section1.component.spec.ts +23 -0
  105. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/services-section1/services-section1.component.ts +27 -0
  106. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/slider1/slider1.component.css +0 -0
  107. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/slider1/slider1.component.html +58 -0
  108. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/slider1/slider1.component.spec.ts +23 -0
  109. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/slider1/slider1.component.ts +51 -0
  110. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component.css +0 -0
  111. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component.html +13 -0
  112. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component.spec.ts +23 -0
  113. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component.ts +79 -0
  114. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/footer/footer.component.css +24 -0
  115. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/footer/footer.component.html +4 -0
  116. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/footer/footer.component.spec.ts +23 -0
  117. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/footer/footer.component.ts +12 -0
  118. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/about-bg.png +0 -0
  119. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/about.png +0 -0
  120. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/client.jpg +0 -0
  121. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/envelope-blue.png +0 -0
  122. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/envelope-white.png +0 -0
  123. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/g-1.png +0 -0
  124. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/g-2.png +0 -0
  125. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/g-3.png +0 -0
  126. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/g-4.png +0 -0
  127. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/g-5.png +0 -0
  128. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/hero.jpg +0 -0
  129. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/location-blue.png +0 -0
  130. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/location-white.png +0 -0
  131. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/logo.png +0 -0
  132. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/menu.png +0 -0
  133. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/next.png +0 -0
  134. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/prev.png +0 -0
  135. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/s-1.png +0 -0
  136. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/s-2.png +0 -0
  137. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/s-3.png +0 -0
  138. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/search-icon.png +0 -0
  139. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/slider-img.png +0 -0
  140. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/telephone-blue.png +0 -0
  141. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/telephone-white.png +0 -0
  142. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/imagenes/tool.png +0 -0
  143. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/menu/menu.component.css +3 -0
  144. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/menu/menu.component.html +23 -0
  145. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/menu/menu.component.spec.ts +23 -0
  146. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/menu/menu.component.ts +18 -0
  147. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/about2/about2.component.css +0 -0
  148. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/about2/about2.component.html +1 -0
  149. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/about2/about2.component.spec.ts +23 -0
  150. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/about2/about2.component.ts +12 -0
  151. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/footer2/footer2.component.css +0 -0
  152. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/footer2/footer2.component.html +1 -0
  153. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/footer2/footer2.component.spec.ts +23 -0
  154. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/footer2/footer2.component.ts +12 -0
  155. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/gallery2/gallery2.component.css +0 -0
  156. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/gallery2/gallery2.component.html +1 -0
  157. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/gallery2/gallery2.component.spec.ts +23 -0
  158. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/gallery2/gallery2.component.ts +12 -0
  159. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/header2/header2.component.css +39 -0
  160. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/header2/header2.component.html +30 -0
  161. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/header2/header2.component.spec.ts +23 -0
  162. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/header2/header2.component.ts +13 -0
  163. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/index2/index2.component.css +0 -0
  164. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/index2/index2.component.html +2 -0
  165. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/index2/index2.component.spec.ts +23 -0
  166. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/index2/index2.component.ts +15 -0
  167. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/services2/services2.component.css +0 -0
  168. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/services2/services2.component.html +1 -0
  169. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/services2/services2.component.spec.ts +23 -0
  170. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/services2/services2.component.ts +12 -0
  171. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/slider2/slider2.component.css +0 -0
  172. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/slider2/slider2.component.html +1 -0
  173. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/slider2/slider2.component.spec.ts +23 -0
  174. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/slider2/slider2.component.ts +12 -0
  175. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/atoms/dynamic-menu1/dynamic-menu1.component.html +56 -0
  176. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/atoms/dynamic-menu1/dynamic-menu1.component.scss +192 -0
  177. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/atoms/dynamic-menu1/dynamic-menu1.component.ts +239 -0
  178. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/dashboard3-menu.config.ts +389 -0
  179. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/daskboard3.ts +143 -0
  180. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.configurator.ts +445 -0
  181. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.floatingconfigurator.ts +29 -0
  182. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.footer.ts +11 -0
  183. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.menuitem.ts +170 -0
  184. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.topbar.ts +92 -0
  185. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component.html +110 -0
  186. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component.scss +221 -0
  187. package/projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component.ts +189 -0
  188. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login.html +19 -0
  189. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login.scss +12 -0
  190. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login.spec.ts +23 -0
  191. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login.ts +13 -0
  192. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1.html +21 -0
  193. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1.scss +19 -0
  194. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1.spec.ts +23 -0
  195. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1.ts +24 -0
  196. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1.html +17 -0
  197. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1.scss +15 -0
  198. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1.spec.ts +23 -0
  199. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1.ts +18 -0
  200. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1.html +21 -0
  201. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1.scss +16 -0
  202. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1.spec.ts +23 -0
  203. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1.ts +12 -0
  204. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1.html +4 -0
  205. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1.scss +0 -0
  206. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1.spec.ts +23 -0
  207. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1.ts +13 -0
  208. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1.html +5 -0
  209. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1.scss +6 -0
  210. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1.spec.ts +23 -0
  211. package/projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1.ts +11 -0
  212. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1.html +9 -0
  213. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1.scss +27 -0
  214. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1.spec.ts +23 -0
  215. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1.ts +20 -0
  216. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/cart/cart.component.html +34 -0
  217. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/cart/cart.component.ts +23 -0
  218. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1.html +25 -0
  219. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1.scss +19 -0
  220. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1.spec.ts +23 -0
  221. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1.ts +23 -0
  222. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1.css +0 -0
  223. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1.html +19 -0
  224. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1.spec.ts +23 -0
  225. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1.ts +19 -0
  226. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/header-ecommerce1/header-ecommerce1.html +168 -0
  227. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/header-ecommerce1/header-ecommerce1.scss +287 -0
  228. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/header-ecommerce1/header-ecommerce1.ts +421 -0
  229. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1.css +39 -0
  230. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1.html +29 -0
  231. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1.ts +25 -0
  232. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1.html +36 -0
  233. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1.scss +39 -0
  234. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1.spec.ts +23 -0
  235. package/projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1.ts +72 -0
  236. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/ecommerce1.html +50 -0
  237. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/ecommerce1.scss +276 -0
  238. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/ecommerce1.ts +341 -0
  239. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1.html +77 -0
  240. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1.scss +63 -0
  241. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1.spec.ts +23 -0
  242. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1.ts +160 -0
  243. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1.html +11 -0
  244. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1.scss +20 -0
  245. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1.spec.ts +23 -0
  246. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1.ts +18 -0
  247. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/product-detail-lib/product-detail-lib.html +20 -0
  248. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/product-detail-lib/product-detail-lib.scss +20 -0
  249. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/product-detail-lib/product-detail-lib.ts +190 -0
  250. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1.html +11 -0
  251. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1.scss +29 -0
  252. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1.ts +16 -0
  253. package/projects/lib-common-angular/src/lib/componentes/landingPages/pages/page1.html +913 -0
  254. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component.html +9 -0
  255. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component.scss +34 -0
  256. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component.ts +33 -0
  257. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component.html +9 -0
  258. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component.scss +34 -0
  259. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component.ts +32 -0
  260. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-actions-row1/button-actions-row1.component.html +17 -0
  261. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-actions-row1/button-actions-row1.component.scss +9 -0
  262. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-actions-row1/button-actions-row1.component.ts +45 -0
  263. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1.html +40 -0
  264. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1.scss +0 -0
  265. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1.spec.ts +23 -0
  266. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1.ts +60 -0
  267. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add1/button-add1.component.html +11 -0
  268. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add1/button-add1.component.scss +40 -0
  269. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add1/button-add1.component.ts +36 -0
  270. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-card-view1/button-card-view1.component.html +1 -0
  271. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-card-view1/button-card-view1.component.scss +0 -0
  272. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-card-view1/button-card-view1.component.ts +24 -0
  273. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-delete1/button-delete1.component.html +11 -0
  274. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-delete1/button-delete1.component.scss +0 -0
  275. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-delete1/button-delete1.component.ts +35 -0
  276. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-options-table/button-options-table.component.html +9 -0
  277. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-options-table/button-options-table.component.scss +0 -0
  278. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-options-table/button-options-table.component.ts +90 -0
  279. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-table-view1/button-table-view1.component.html +1 -0
  280. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-table-view1/button-table-view1.component.scss +0 -0
  281. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/button-table-view1/button-table-view1.component.ts +25 -0
  282. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/loading-zigma/loading-zigma.html +37 -0
  283. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/loading-zigma/loading-zigma.scss +346 -0
  284. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/loading-zigma/loading-zigma.ts +11 -0
  285. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/menu-item1/menu-item1.component.html +103 -0
  286. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/menu-item1/menu-item1.component.scss +176 -0
  287. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/menu-item1/menu-item1.component.ts +117 -0
  288. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/paginator-pg/paginator-pg.component.ts +46 -0
  289. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/paginator-pg/paginator-pg.html +26 -0
  290. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/paginator-pg/paginator-pg.scss +0 -0
  291. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/select-input1/select-input1.component.css +8 -0
  292. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/select-input1/select-input1.component.html +8 -0
  293. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/select-input1/select-input1.component.spec.ts +23 -0
  294. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/select-input1/select-input1.component.ts +37 -0
  295. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card.css +0 -0
  296. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card.html +10 -0
  297. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card.spec.ts +23 -0
  298. package/projects/lib-common-angular/src/lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card.ts +44 -0
  299. package/projects/lib-common-angular/src/lib/componentes/shared/interfaces/dynamic-field.interface.ts +86 -0
  300. package/projects/lib-common-angular/src/lib/componentes/shared/interfaces/menu.interface.ts +98 -0
  301. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component.html +132 -0
  302. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component.scss +47 -0
  303. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component.ts +199 -0
  304. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/grid1/grid1.component.html +95 -0
  305. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/grid1/grid1.component.scss +40 -0
  306. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/grid1/grid1.component.ts +124 -0
  307. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/inflatable-customizer/customizer.component.html +53 -0
  308. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/inflatable-customizer/customizer.component.scss +26 -0
  309. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/inflatable-customizer/customizer.component.ts +104 -0
  310. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/product-dialog1/product-dialog1.component.html +112 -0
  311. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/product-dialog1/product-dialog1.component.scss +0 -0
  312. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/product-dialog1/product-dialog1.component.ts +87 -0
  313. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component.html +118 -0
  314. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component.scss +42 -0
  315. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component.spec.ts +23 -0
  316. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component.ts +202 -0
  317. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component.html +134 -0
  318. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component.scss +184 -0
  319. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component.spec.ts +23 -0
  320. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component.ts +113 -0
  321. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons.html +7 -0
  322. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons.scss +0 -0
  323. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons.spec.ts +23 -0
  324. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons.ts +22 -0
  325. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos.html +9 -0
  326. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos.scss +41 -0
  327. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos.spec.ts +23 -0
  328. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos.ts +34 -0
  329. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/tabla1/tabla1.component.html +63 -0
  330. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/tabla1/tabla1.component.scss +0 -0
  331. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/tabla1/tabla1.component.ts +128 -0
  332. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/tool-bar1/tool-bar1.component.html +29 -0
  333. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/tool-bar1/tool-bar1.component.scss +0 -0
  334. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/tool-bar1/tool-bar1.component.ts +63 -0
  335. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/view-buttons-container1/view-buttons-container1.component.html +16 -0
  336. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/view-buttons-container1/view-buttons-container1.component.scss +0 -0
  337. package/projects/lib-common-angular/src/lib/componentes/shared/molecules/view-buttons-container1/view-buttons-container1.component.ts +52 -0
  338. package/projects/lib-common-angular/src/lib/componentes/shared/pages/crud/crud.component.html +53 -0
  339. package/projects/lib-common-angular/src/lib/componentes/shared/pages/crud/crud.component.scss +0 -0
  340. package/projects/lib-common-angular/src/lib/componentes/shared/pages/crud/crud.component.ts +256 -0
  341. package/projects/lib-common-angular/src/lib/componentes/shared/pages/crud/doc/crud-doc.component.ts +131 -0
  342. package/projects/lib-common-angular/src/lib/componentes/shared/pages/notfound/notfound.ts +74 -0
  343. package/projects/lib-common-angular/src/lib/componentes/shared/routes/componentes.routes.ts +13 -0
  344. package/projects/lib-common-angular/src/lib/componentes/shared/routes/ecomerce1.routes.ts +17 -0
  345. package/projects/lib-common-angular/src/lib/componentes/shared/routes/pages.routes.ts +19 -0
  346. package/projects/lib-common-angular/src/lib/componentes/shared/services/categorias-productos.service.ts +74 -0
  347. package/projects/lib-common-angular/src/lib/componentes/shared/services/component-services.service.ts +21 -0
  348. package/projects/lib-common-angular/src/lib/componentes/shared/services/dynamic-field.service.ts +204 -0
  349. package/projects/lib-common-angular/src/lib/componentes/shared/services/dynamic-menu.service.ts +439 -0
  350. package/projects/lib-common-angular/src/lib/componentes/shared/services/excel-export.service.ts +83 -0
  351. package/projects/lib-common-angular/src/lib/componentes/shared/services/generic-crud.service/generic-crud.service.ts +79 -0
  352. package/projects/lib-common-angular/src/lib/componentes/shared/services/layout.service.ts +179 -0
  353. package/projects/lib-common-angular/src/lib/componentes/shared/services/meta-data.service.ts/meta-data.service.ts +37 -0
  354. package/projects/lib-common-angular/src/lib/componentes/shared/services/pdf-export.service.ts +0 -0
  355. package/projects/lib-common-angular/src/lib/componentes/shared/services/product.service.ts +1962 -0
  356. package/projects/lib-common-angular/src/lib/componentes/shared/terminal/terminal.html +10 -0
  357. package/projects/lib-common-angular/src/lib/componentes/shared/terminal/terminal.scss +0 -0
  358. package/projects/lib-common-angular/src/lib/componentes/shared/terminal/terminal.ts +27 -0
  359. package/projects/lib-common-angular/src/lib/config/JuliaoSystemCrudHttpService.d.ts +48 -0
  360. package/projects/lib-common-angular/src/lib/config/JuliaoSystemCrudHttpService.ts +121 -0
  361. package/projects/lib-common-angular/src/lib/config/index.ts +0 -0
  362. package/projects/lib-common-angular/src/lib/config/lib-config.module.ts +18 -0
  363. package/projects/lib-common-angular/src/lib/config/lib-config.service.ts +50 -0
  364. package/projects/lib-common-angular/src/lib/lib-common-angular.module.ts +14 -0
  365. package/projects/lib-common-angular/src/lib/modulos/core.lib.module.ts +66 -0
  366. package/projects/lib-common-angular/src/lib/modulos/primeg.module.ts +103 -0
  367. package/projects/lib-common-angular/src/public-api.ts +122 -0
  368. package/projects/lib-common-angular/tsconfig.lib.json +15 -0
  369. package/projects/lib-common-angular/tsconfig.lib.prod.json +11 -0
  370. package/projects/lib-common-angular/tsconfig.spec.json +15 -0
  371. package/projects/lib-common-angular-demo/public/assets/demo/code.scss +17 -0
  372. package/projects/lib-common-angular-demo/public/assets/demo/demo.scss +2 -0
  373. package/projects/lib-common-angular-demo/public/assets/demo/flags/flags.scss +1 -0
  374. package/projects/lib-common-angular-demo/public/assets/demo/flags/flags_responsive.png +0 -0
  375. package/projects/lib-common-angular-demo/public/assets/layout/_core.scss +24 -0
  376. package/projects/lib-common-angular-demo/public/assets/layout/_footer.scss +8 -0
  377. package/projects/lib-common-angular-demo/public/assets/layout/_main.scss +13 -0
  378. package/projects/lib-common-angular-demo/public/assets/layout/_menu.scss +160 -0
  379. package/projects/lib-common-angular-demo/public/assets/layout/_mixins.scss +15 -0
  380. package/projects/lib-common-angular-demo/public/assets/layout/_preloading.scss +47 -0
  381. package/projects/lib-common-angular-demo/public/assets/layout/_responsive.scss +110 -0
  382. package/projects/lib-common-angular-demo/public/assets/layout/_topbar.scss +160 -0
  383. package/projects/lib-common-angular-demo/public/assets/layout/_typography.scss +68 -0
  384. package/projects/lib-common-angular-demo/public/assets/layout/_utils.scss +25 -0
  385. package/projects/lib-common-angular-demo/public/assets/layout/layout.scss +13 -0
  386. package/projects/lib-common-angular-demo/public/assets/layout/variables/_common.scss +20 -0
  387. package/projects/lib-common-angular-demo/public/assets/layout/variables/_dark.scss +5 -0
  388. package/projects/lib-common-angular-demo/public/assets/layout/variables/_light.scss +5 -0
  389. package/projects/lib-common-angular-demo/public/favicon.ico +0 -0
  390. package/projects/lib-common-angular-demo/src/app/app.component.html +1 -0
  391. package/projects/lib-common-angular-demo/src/app/app.component.scss +0 -0
  392. package/projects/lib-common-angular-demo/src/app/app.component.ts +12 -0
  393. package/projects/lib-common-angular-demo/src/app/app.config.server.ts +12 -0
  394. package/projects/lib-common-angular-demo/src/app/app.config.ts +22 -0
  395. package/projects/lib-common-angular-demo/src/app/app.routes.server.ts +8 -0
  396. package/projects/lib-common-angular-demo/src/app/app.routes.ts +86 -0
  397. package/projects/lib-common-angular-demo/src/app/componentes/crud/crud.component.html +43 -0
  398. package/projects/lib-common-angular-demo/src/app/componentes/crud/crud.component.scss +0 -0
  399. package/projects/lib-common-angular-demo/src/app/componentes/crud/crud.component.spec.ts +23 -0
  400. package/projects/lib-common-angular-demo/src/app/componentes/crud/crud.component.ts +243 -0
  401. package/projects/lib-common-angular-demo/src/app/componentes/menu-navigation/menu-demo-visual.component.ts +76 -0
  402. package/projects/lib-common-angular-demo/src/app/componentes/menu-navigation/menu-navigation.component.html +60 -0
  403. package/projects/lib-common-angular-demo/src/app/componentes/menu-navigation/menu-navigation.component.scss +63 -0
  404. package/projects/lib-common-angular-demo/src/app/componentes/menu-navigation/menu-navigation.component.ts +452 -0
  405. package/projects/lib-common-angular-demo/src/app/componentes/shared/card-carrito-demo/card-carrito-demo.html +15 -0
  406. package/projects/lib-common-angular-demo/src/app/componentes/shared/card-carrito-demo/card-carrito-demo.scss +0 -0
  407. package/projects/lib-common-angular-demo/src/app/componentes/shared/card-carrito-demo/card-carrito-demo.ts +21 -0
  408. package/projects/lib-common-angular-demo/src/app/componentes/shared/detalle-carrito-demo/detalle-carrito-demo.html +3 -0
  409. package/projects/lib-common-angular-demo/src/app/componentes/shared/detalle-carrito-demo/detalle-carrito-demo.scss +0 -0
  410. package/projects/lib-common-angular-demo/src/app/componentes/shared/detalle-carrito-demo/detalle-carrito-demo.spec.ts +23 -0
  411. package/projects/lib-common-angular-demo/src/app/componentes/shared/detalle-carrito-demo/detalle-carrito-demo.ts +22 -0
  412. package/projects/lib-common-angular-demo/src/app/componentes.routes.ts +14 -0
  413. package/projects/lib-common-angular-demo/src/app/core/services/component-services.service.ts +22 -0
  414. package/projects/lib-common-angular-demo/src/app/core/services/layout.service.ts +180 -0
  415. package/projects/lib-common-angular-demo/src/app/core/services/product.service.ts +1324 -0
  416. package/projects/lib-common-angular-demo/src/app/doc/crud/crud-doc-page.component.html +20 -0
  417. package/projects/lib-common-angular-demo/src/app/doc/crud/crud-doc-page.component.ts +67 -0
  418. package/projects/lib-common-angular-demo/src/app/doc.routes.ts +5 -0
  419. package/projects/lib-common-angular-demo/src/app/menu-configs.ts +336 -0
  420. package/projects/lib-common-angular-demo/src/app/ngxs-config.module.ts +0 -0
  421. package/projects/lib-common-angular-demo/src/app/pages/ecommerce1-demo/ecommerce1-demo.html +11 -0
  422. package/projects/lib-common-angular-demo/src/app/pages/ecommerce1-demo/ecommerce1-demo.scss +0 -0
  423. package/projects/lib-common-angular-demo/src/app/pages/ecommerce1-demo/ecommerce1-demo.spec.ts +23 -0
  424. package/projects/lib-common-angular-demo/src/app/pages/ecommerce1-demo/ecommerce1-demo.ts +102 -0
  425. package/projects/lib-common-angular-demo/src/app/pages.routes.ts +11 -0
  426. package/projects/lib-common-angular-demo/src/index.html +13 -0
  427. package/projects/lib-common-angular-demo/src/main.server.ts +7 -0
  428. package/projects/lib-common-angular-demo/src/main.ts +47 -0
  429. package/projects/lib-common-angular-demo/src/server.ts +66 -0
  430. package/projects/lib-common-angular-demo/src/styles.scss +5 -0
  431. package/projects/lib-common-angular-demo/tsconfig.app.json +19 -0
  432. package/projects/lib-common-angular-demo/tsconfig.spec.json +15 -0
  433. package/theme/_funtions.scss +62 -0
  434. package/theme/componentes/varthemes.scss +16 -0
  435. package/theme/variables.scss +240 -0
  436. package/tsconfig.json +35 -0
  437. package/fesm2022/lib-common-angular.mjs +0 -9409
  438. package/fesm2022/lib-common-angular.mjs.map +0 -1
  439. package/index.d.ts +0 -1866
  440. /package/{src → projects/lib-common-angular/src}/lib/assets/i18n/de.json +0 -0
  441. /package/{src → projects/lib-common-angular/src}/lib/assets/i18n/en.json +0 -0
  442. /package/{src → projects/lib-common-angular/src}/lib/assets/i18n/es.json +0 -0
  443. /package/{src → projects/lib-common-angular/src}/lib/assets/i18n/pt.json +0 -0
  444. /package/{src → projects/lib-common-angular/src}/lib/assets/imagenes/bannerInflables.png +0 -0
  445. /package/{src → projects/lib-common-angular/src}/lib/assets/state/business.state.ts +0 -0
  446. /package/{src → projects/lib-common-angular/src}/lib/assets/state/categorias-productos.state.ts +0 -0
  447. /package/{src → projects/lib-common-angular/src}/lib/assets/state/currency.state.ts +0 -0
  448. /package/{src → projects/lib-common-angular/src}/lib/assets/state/productos.state.ts +0 -0
  449. /package/{src → projects/lib-common-angular/src}/lib/assets/state/state-generic/generic-crud.actions.ts +0 -0
  450. /package/{src → projects/lib-common-angular/src}/lib/assets/state/state-generic/generic-crud.state.ts +0 -0
  451. /package/{src → projects/lib-common-angular/src}/lib/assets/state/usuarios.actions.ts +0 -0
  452. /package/{src → projects/lib-common-angular/src}/lib/styles/global-styles.scss +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"lib-common-angular.mjs","sources":["../../../projects/lib-common-angular/src/lib/common-lib.service.ts","../../../projects/lib-common-angular/src/lib/common-lib.component.ts","../../../projects/lib-common-angular/src/lib/modulos/primeg.module.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-actions-row1/button-actions-row1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-actions-row1/button-actions-row1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/services/dynamic-field.service.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/tabla1/tabla1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/tabla1/tabla1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/grid1/grid1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/grid1/grid1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-options-table/button-options-table.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-options-table/button-options-table.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add1/button-add1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add1/button-add1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-delete1/button-delete1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-delete1/button-delete1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-table-view1/button-table-view1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-table-view1/button-table-view1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-card-view1/button-card-view1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-card-view1/button-card-view1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/view-buttons-container1/view-buttons-container1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/view-buttons-container1/view-buttons-container1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/tool-bar1/tool-bar1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/tool-bar1/tool-bar1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/services/excel-export.service.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/pages/crud/crud.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/pages/crud/crud.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/pages/crud/doc/crud-doc.component.ts","../../../projects/lib-common-angular/src/lib/modulos/core.lib.module.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/select-input1/select-input1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/select-input1/select-input1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/header2/header2.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/header2/header2.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/index2/index2.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard2/index2/index2.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/interfaces/dynamic-field.interface.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/product-dialog1/product-dialog1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/product-dialog1/product-dialog1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/pages/notfound/notfound.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/inflatable-customizer/customizer.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/inflatable-customizer/customizer.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/interfaces/menu.interface.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/menu-item1/menu-item1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/menu-item1/menu-item1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/services/dynamic-menu.service.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/atoms/dynamic-menu1/dynamic-menu1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/atoms/dynamic-menu1/dynamic-menu1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/services/layout.service.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.configurator.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.topbar.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/moleculas/app.footer.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/dashboard3-menu.config.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard3/daskboard3.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/contenido-nav/contenido-nav.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/contenido-nav/contenido-nav.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/nav1/nav1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/nav1/nav1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/slider1/slider1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/slider1/slider1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/footer1/footer1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/footer1/footer1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/services/component-services.service.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/layout-services1/layout-services1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/atoms/layout-services1/layout-services1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/services-section1/services-section1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/services-section1/services-section1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/gallery-section1/gallery-section1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/molecules/gallery-section1/gallery-section1.component.html","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons.html","../../../projects/lib-common-angular/src/lib/config/JuliaoSystemCrudHttpService.ts","../../../projects/lib-common-angular/src/lib/config/lib-config.service.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/services/product.service.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component.html","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos.html","../../../projects/lib-common-angular/src/lib/componentes/shared/terminal/terminal.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/terminal/terminal.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/loading-zigma/loading-zigma.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/loading-zigma/loading-zigma.html","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/paginator-pg/paginator-pg.component.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/atoms/paginator-pg/paginator-pg.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/header-ecommerce1/header-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/header-ecommerce1/header-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1.html","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1.html","../../../projects/lib-common-angular/src/lib/assets/state/state-generic/generic-crud.actions.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/services/meta-data.service.ts/meta-data.service.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/services/generic-crud.service/generic-crud.service.ts","../../../projects/lib-common-angular/src/lib/assets/state/state-generic/generic-crud.state.ts","../../../projects/lib-common-angular/src/lib/assets/state/productos.state.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/product-detail-lib/product-detail-lib.ts","../../../projects/lib-common-angular/src/lib/componentes/landingPages/pages/ecommerce1/product-detail-lib/product-detail-lib.html","../../../projects/lib-common-angular/src/lib/config/lib-config.module.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/services/categorias-productos.service.ts","../../../projects/lib-common-angular/src/lib/assets/state/currency.state.ts","../../../projects/lib-common-angular/src/lib/assets/state/business.state.ts","../../../projects/lib-common-angular/src/lib/assets/state/usuarios.actions.ts","../../../projects/lib-common-angular/src/lib/assets/state/categorias-productos.state.ts","../../../projects/lib-common-angular/src/lib/componentes/shared/routes/ecomerce1.routes.ts","../../../projects/lib-common-angular/src/public-api.ts","../../../projects/lib-common-angular/src/lib-common-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonLibService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-common-lib',\n standalone: true,\n imports: [],\n template: `\n <p>\n common-lib works!\n </p>\n `,\n styles: ``\n})\nexport class CommonLibComponent {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { EditorModule } from 'primeng/editor';\nimport { MenuModule } from 'primeng/menu';\nimport { TableModule } from 'primeng/table';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { PasswordModule } from 'primeng/password';\nimport { RippleModule } from 'primeng/ripple';\nimport { ToastModule } from 'primeng/toast';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { RatingModule } from 'primeng/rating';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TextareaModule } from 'primeng/textarea';\nimport { SelectModule } from 'primeng/select';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DialogModule } from 'primeng/dialog';\nimport { CardModule } from 'primeng/card';\nimport { TagModule } from 'primeng/tag';\nimport { InputIconModule } from 'primeng/inputicon';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { TieredMenuModule } from 'primeng/tieredmenu';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { DataViewModule } from 'primeng/dataview';\nimport { ImageModule } from 'primeng/image';\nimport { StepperModule } from 'primeng/stepper';\nimport { MessageService } from 'primeng/api';\nimport { DrawerModule } from 'primeng/drawer';\n@NgModule({\n declarations: [],\n providers: [MessageService],\n imports: [\n CommonModule,\n ImageModule,\n ButtonModule,\n CardModule,\n AutoCompleteModule,\n CascadeSelectModule,\n CheckboxModule,\n EditorModule,\n MenuModule,\n TableModule,\n PaginatorModule,\n InputTextModule,\n PasswordModule,\n RippleModule,\n ToastModule,\n ToolbarModule,\n RatingModule,\n TextareaModule,\n SelectModule,\n RadioButtonModule,\n InputNumberModule,\n DialogModule,\n TagModule,\n InputIconModule,\n IconFieldModule,\n ConfirmDialogModule,\n TieredMenuModule,\n FileUploadModule,\n DataViewModule,\n StepperModule,\n DrawerModule,\n ],\n exports:[\n ButtonModule,\n CardModule,\n AutoCompleteModule,\n CascadeSelectModule,\n CheckboxModule,\n EditorModule,\n MenuModule,\n TableModule,\n PaginatorModule,\n InputTextModule,\n PasswordModule,\n RippleModule,\n ToastModule,\n ToolbarModule,\n RatingModule,\n TextareaModule,\n SelectModule,\n RadioButtonModule,\n InputNumberModule,\n DialogModule,\n TagModule,\n InputIconModule,\n IconFieldModule,\n ConfirmDialogModule,\n TieredMenuModule,\n FileUploadModule,\n DataViewModule,\n ImageModule,\n StepperModule,\n DrawerModule,\n ]\n})\nexport class PrimegModule { }\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { FormsModule } from '@angular/forms';\nimport { MenuItem } from 'primeng/api';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-button-actions-row1',\n standalone: true,\n imports: [PrimegModule, FormsModule],\n templateUrl: './button-actions-row1.component.html',\n styleUrl: './button-actions-row1.component.scss'\n})\nexport class ButtonActionsRow1Component implements OnInit {\n\n componente: ComponentesDTO = {\n id: 24,\n nombreComponente: 'lib-button-actions-row1',\n version: '1.0',\n };\n\n @Input() item: Record<string, unknown> = {};\n @Input() disabled: boolean = false;\n \n @Output() edit = new EventEmitter<Record<string, unknown>>();\n \n items: MenuItem[] = [];\n\n ngOnInit() {\n this.buildMenuItems();\n }\n\n buildMenuItems() {\n this.items = [];\n this.addEditAction();\n }\n\n private addEditAction() {\n this.items.push({\n label: 'Edit',\n icon: 'pi pi-pencil',\n command: () => this.edit.emit(this.item)\n });\n }\n}\n","<div class=\"actions-dropdown\">\n <p-button \n icon=\"pi pi-ellipsis-v\" \n [text]=\"true\"\n [rounded]=\"true\"\n [disabled]=\"disabled\"\n size=\"small\"\n (click)=\"menu.toggle($event)\" \n aria-label=\"Row actions\"\n />\n <p-tieredmenu \n #menu \n [model]=\"items\" \n [popup]=\"true\"\n appendTo=\"body\"\n />\n</div>\n","import { Injectable } from '@angular/core';\nimport { DynamicField } from '../interfaces/dynamic-field.interface';\nimport { FieldType } from '@juliaosistem/core-dtos';\nexport interface GenerateFieldsConfig {\n data: Record<string, unknown>[];\n fieldTypeConfig?: Record<string, FieldType>;\n fieldLabels?: Record<string, string>;\n fieldOrder?: string[];\n excludeFields?: string[];\n getValueFn?: (item: any, key: string) => any; // permite getter personalizado\n\n}\n\nexport interface CreateFieldConfig {\n key: string;\n index: number;\n data: Record<string, unknown>[];\n fieldTypeConfig: Record<string, FieldType>;\n fieldLabels: Record<string, string>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicFieldService {\n\n /**\n * Genera campos dinámicos basados en los datos de entrada\n */\n generateFieldsFromData(config: GenerateFieldsConfig): DynamicField[] {\n const {\n data,\n fieldTypeConfig = {},\n fieldLabels = {},\n fieldOrder = [],\n excludeFields = ['id']\n } = config;\n\n if (!data || data.length === 0) return [];\n\n // Obtener todas las claves únicas de los objetos\n const allKeys = this.getAllUniqueKeys(data, excludeFields);\n \n // Filtrar campos excluidos y determinar orden\n const orderedKeys = this.getOrderedKeys(allKeys, fieldOrder);\n\n // Generar campos dinámicos\n return orderedKeys.map((key, index) => \n this.createDynamicField({\n key,\n index,\n data,\n fieldTypeConfig,\n fieldLabels\n })\n );\n \n }\n\n /**\n * Obtiene todas las claves únicas de los datos, excluyendo campos especificados\n */\n private getAllUniqueKeys(data: Record<string, unknown>[], excludeFields: string[]): string[] {\n const allKeys = new Set<string>();\n data.forEach(item => {\n Object.keys(item).forEach(key => allKeys.add(key));\n });\n return Array.from(allKeys).filter(key => !excludeFields.includes(key));\n }\n\n /**\n * Ordena las claves según el orden especificado o alfabéticamente\n */\n private getOrderedKeys(availableKeys: string[], fieldOrder: string[]): string[] {\n return fieldOrder.length > 0 \n ? fieldOrder.filter(key => availableKeys.includes(key))\n : availableKeys.sort();\n }\n\n /**\n * Crea un campo dinámico individual\n */\n private createDynamicField(config: CreateFieldConfig): DynamicField {\n const { key, index, data, fieldTypeConfig, fieldLabels } = config;\n const fieldType = fieldTypeConfig[key] || this.detectFieldType(data, key);\n const label = fieldLabels[key] || this.formatLabel(key);\n\n return {\n key,\n label,\n type: fieldType,\n value: null, // Se asignará dinámicamente por cada fila\n order: index\n };\n }\n\n /**\n * Auto-detecta el tipo de campo basado en los datos\n */\n detectFieldType(data: Record<string, unknown>[], key: string): FieldType {\n const sampleValue = data.find(item => item[key] !== null && item[key] !== undefined)?.[key];\n \n if (sampleValue === undefined || sampleValue === null) {\n return 'text';\n }\n\n if (typeof sampleValue === 'boolean') {\n return 'checkbox';\n }\n\n if (typeof sampleValue === 'number') {\n return 'number';\n }\n\n if (typeof sampleValue === 'string') {\n // Detectar si es una URL de imagen\n if (sampleValue.match(/\\.(jpg|jpeg|png|gif|webp)$/i)) {\n return 'img';\n }\n \n // Por defecto, text\n return 'text';\n }\n\n return 'text';\n }\n\n /**\n * Formatea una etiqueta desde el nombre del campo\n */\n formatLabel(key: string): string {\n return key\n .replace(/([A-Z])/g, ' $1') // Separar camelCase\n .replace(/[_-]/g, ' ') // Reemplazar guiones y guiones bajos\n .replace(/\\b\\w/g, l => l.toUpperCase()) // Capitalizar palabras\n .trim();\n }\n\n /**\n * Formatea el valor de un campo dinámico para mostrar\n */\n formatDynamicFieldValue(field: DynamicField, value: unknown): string {\n if (value == null) return '-';\n return String(value);\n }\n\n /**\n * Obtiene la URL de imagen para un campo\n */\n getImageUrl(field: DynamicField, value: unknown): string {\n if (!value) return '/assets/images/placeholder.png';\n \n const strValue = String(value);\n \n // Si ya es una URL completa (http/https), devolverla\n if (strValue.startsWith('http://') || strValue.startsWith('https://')) {\n return strValue;\n }\n \n // Si es una ruta local que empieza con /, devolverla (assets, etc.)\n if (strValue.startsWith('/')) {\n return strValue;\n }\n \n // Si es un blob URL (archivo subido), devolverlo\n if (strValue.startsWith('blob:')) {\n return strValue;\n }\n \n // Si es solo nombre de archivo, asumir que está en assets/images\n if (strValue.includes('.')) {\n return `/assets/images/${strValue}`;\n }\n \n // Fallback: devolver valor como está\n return strValue;\n }\n\n /**\n * Obtiene el texto alternativo para una imagen\n */\n getImageAltText(field: DynamicField, item: Record<string, unknown>): string {\n return String(item['name'] || 'Image');\n }\n\n /**\n * Genera un ID único para nuevos elementos\n */\n generateId(): string {\n let id = '';\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < 5; i++) {\n id += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return id;\n }\n\n /**\n * Busca el índice de un elemento por ID\n */\n findIndexById(data: Record<string, unknown>[], id: string): number {\n return data.findIndex((item) => item['id'] === id);\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { FormsModule } from '@angular/forms';\nimport { DynamicField } from '../../interfaces/dynamic-field.interface';\nimport { FieldType } from '@juliaosistem/core-dtos';\nimport { DynamicFieldService } from '../../services/dynamic-field.service';\nimport { ButtonActionsRow1Component } from '../../atoms/button-actions-row1/button-actions-row1.component';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-tabla1',\n standalone: true,\n templateUrl: './tabla1.component.html',\n styleUrl: './tabla1.component.scss',\n imports: [CommonModule, TableModule, PrimegModule, FormsModule, ButtonActionsRow1Component],\n})\nexport class Tabla1Component implements OnInit {\n @Input() data: Record<string, unknown>[] = [];\n @Input() selectedItems!: Record<string, unknown>[] | null;\n @Output() selectedItemsChange = new EventEmitter<Record<string, unknown>[] | null>();\n @Input() fieldTypeConfig: Record<string, FieldType> = {}; // Tipos por campo\n @Input() fieldLabels: Record<string, string> = {}; // Etiquetas personalizadas\n @Input() fieldOrder: string[] = []; // Orden de columnas\n @Input() excludeFields: string[] = ['id']; // Campos a excluir\n@Input() fieldSelectOptions: Record<string, { label: string; value: string | number | boolean }[]> = {};\n @Input() displayFields: DynamicField[] = []; // Campos para mostrar\n\n @Input() showDefaultHeader: boolean = true; // Mostrar encabezado por defecto\n @Input() showDefaultBody: boolean = true; // Mostrar cuerpo por defecto\n\n // Propiedades del paginador\n @Input() rows: number = 10; // Filas por página\n @Input() paginator: boolean = true; // Habilitar paginador\n @Input() rowsPerPageOptions: number[] = [10, 20, 30]; // Opciones de filas por página\n @Input() showCurrentPageReport: boolean = true; // Mostrar reporte de página\n\n @Output() editItem = new EventEmitter<Record<string, unknown>>();\n \n fields: DynamicField[] = []; // Campos dinámicos generados\n\n componente: ComponentesDTO = {\n id: 17,\n nombreComponente: 'lib-tabla1',\n version: '1.0'\n };\n \n constructor(\n private dynamicFieldService: DynamicFieldService\n ) {}\n\n ngOnInit() {\n this.initFields();\n }\n\n initFields() {\n // Inicializar campos dinámicos si no se han generado y no se pasan desde el padre\n if (this.fields.length === 0 && this.displayFields.length === 0) {\n this.fields = this.dynamicFieldService.generateFieldsFromData({\n data: this.data,\n fieldTypeConfig: this.fieldTypeConfig,\n fieldLabels: this.fieldLabels,\n fieldOrder: this.fieldOrder,\n excludeFields: this.excludeFields\n });\n this.displayFields = [...this.fields];\n }\n }\n\n // ✅ Métodos de renderizado - delegan al servicio\n formatDynamicFieldValue(field: DynamicField, value: unknown): string {\n return this.dynamicFieldService.formatDynamicFieldValue(field, value);\n }\n\n getImageUrl(field: DynamicField, value: unknown): string {\n return this.dynamicFieldService.getImageUrl(field, value);\n }\n\n getImageAltText(field: DynamicField, item: Record<string, unknown>): string {\n return this.dynamicFieldService.getImageAltText(field, item);\n }\n\n // ✅ Eventos que se emiten al componente padre\n onEditItem(item: Record<string, unknown>) {\n this.editItem.emit(item);\n }\n\n // ✅ Método para capturar cambios de selección de PrimeNG\n onSelectionChange(newSelection: Record<string, unknown>[] | null) {\n this.selectedItems = newSelection;\n this.selectedItemsChange.emit(newSelection);\n }\n\n // ✅ Obtener valores anidados como \"cliente.direccion.ciudad\" o \"precios[0].monto\"\n// ✅ Devuelve valor de campo, soportando anidados tipo \"precios[0].precio\"\ngetValue(item: Record<string, any>, field: DynamicField) {\n if (!field || !field.key) return undefined;\n\n // Primero intenta acceso directo\n if (item[field.key] !== undefined) return item[field.key];\n\n // Si no existe, usa getNestedValue\n return this.getNestedValue(item, field.key);\n}\n\n// Obtener valor anidado\ngetNestedValue(item: Record<string, any>, path: string): any {\n if (!path) return undefined;\n return path\n .replace(/\\[(\\d+)]/g, '.$1') // \"precios[0]\" → \"precios.0\"\n .split('.')\n .reduce((acc, part) => acc?.[part], item);\n}\n\ngetFieldValue(item: Record<string, any>, key: string) {\n if (!key) return undefined;\n\n // Primero intento acceso directo\n if (item[key] !== undefined) return item[key];\n\n // Si no existe, uso path anidado\n return key\n .replace(/\\[(\\d+)]/g, '.$1') // \"precios[0]\" → \"precios.0\"\n .split('.')\n .reduce((acc, part) => acc?.[part], item);\n}\n}\n","<p-table\n #dt\n [value]=\"data\"\n [rows]=\"rows\"\n [paginator]=\"paginator\"\n [globalFilterFields]=\"['name']\"\n [tableStyle]=\"{ 'min-width': '75rem' }\"\n [selection]=\"selectedItems\"\n (selectionChange)=\"onSelectionChange($event)\"\n [rowHover]=\"true\"\n dataKey=\"id\"\n currentPageReportTemplate=\"Showing {first} to {last} of {totalRecords} items\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n>\n <ng-template #header>\n <tr *ngIf=\"showDefaultHeader\">\n <th style=\"width: 3rem\"><p-tableHeaderCheckbox /></th>\n <th style=\"width: 8rem\">Actions</th>\n <th *ngFor=\"let field of displayFields\" style=\"min-width: 12rem\">\n {{ field.label }}\n </th>\n </tr>\n </ng-template>\n\n <ng-template #body let-item>\n <tr *ngIf=\"showDefaultBody\">\n <td style=\"width: 3rem\"><p-tableCheckbox [value]=\"item\" /></td>\n <td style=\"width: 8rem\">\n <div class=\"flex gap-2 items-center\">\n <lib-button-actions-row1 [item]=\"item\" (edit)=\"onEditItem($event)\">\n </lib-button-actions-row1>\n </div>\n </td>\n <td *ngFor=\"let field of displayFields\">\n <ng-container [ngSwitch]=\"field.type\">\n <img\n *ngSwitchCase=\"'img'\"\n [src]=\"getImageUrl(field, getValue(item, field))\"\n [alt]=\"getImageAltText(field, item)\"\n style=\"width: 64px\"\n class=\"rounded\"\n />\n\n <span *ngSwitchCase=\"'checkbox'\" class=\"flex items-center gap-2\">\n <i\n [class]=\"\n getValue(item, field)\n ? 'pi pi-check-circle text-green-500'\n : 'pi pi-times-circle text-red-500'\n \"\n ></i>\n <span>{{ getValue(item, field) ? 'Yes' : 'No' }}</span>\n </span>\n\n <span *ngSwitchDefault>\n {{ formatDynamicFieldValue(field, getValue(item, field)) }}\n </span>\n </ng-container>\n </td>\n </tr>\n </ng-template>\n</p-table>\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { DynamicField } from '../../interfaces/dynamic-field.interface';\nimport { FieldType } from '@juliaosistem/core-dtos';\nimport { DynamicFieldService } from '../../services/dynamic-field.service';\nimport { ButtonActionsRow1Component } from '../../atoms/button-actions-row1/button-actions-row1.component';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-grid1',\n standalone: true,\n imports: [CommonModule, FormsModule, PrimegModule, ButtonActionsRow1Component],\n templateUrl: './grid1.component.html',\n styleUrl: './grid1.component.scss',\n})\nexport class Grid1Component implements OnInit {\n layout: 'list' | 'grid' = 'grid';\n\n @Input() data: Record<string, unknown>[] = [];\n @Input() selectedItems!: Record<string, unknown>[] | null;\n @Output() selectedItemsChange = new EventEmitter<Record<string, unknown>[] | null>();\n @Input() fieldTypeConfig: Record<string, FieldType> = {}; // Tipos por campo\n @Input() fieldLabels: Record<string, string> = {}; // Etiquetas personalizadas\n @Input() fieldOrder: string[] = []; // Orden de columnas\n @Input() excludeFields: string[] = ['id']; // Campos a excluir\n@Input() fieldSelectOptions: Record<string, { label: string; value: string | number | boolean }[]> = {};\n @Input() displayFields: DynamicField[] = []; // Campos para mostrar\n\n @Input() showDefaultGrid: boolean = true; // Mostrar grid por defecto\n\n // Propiedades del paginador\n @Input() rows: number = 10; // Filas por página\n @Input() paginator: boolean = true; // Habilitar paginador\n @Input() rowsPerPageOptions: number[] = [10, 20, 30]; // Opciones de filas por página\n @Input() showCurrentPageReport: boolean = true; // Mostrar reporte de página\n\n @Output() editItem = new EventEmitter<Record<string, unknown>>();\n \n fields: DynamicField[] = []; // Campos dinámicos generados\n\n componente: ComponentesDTO = {\n id: 19,\n nombreComponente: 'lib-grid1',\n version: '1.0'\n };\n\n constructor(\n private dynamicFieldService: DynamicFieldService\n ) {}\n\n ngOnInit() {\n this.initFields();\n\n // Filtrar displayFields según excludeFields\n if (this.displayFields?.length) {\n this.displayFields = this.displayFields.filter(\n f => !this.excludeFields.includes(f.key)\n );\n }\n }\n\n initFields() {\n // Inicializar campos dinámicos si no se han generado y no se pasan desde el padre\n if (this.fields.length === 0 && this.displayFields.length === 0) {\n this.fields = this.dynamicFieldService.generateFieldsFromData({\n data: this.data,\n fieldTypeConfig: this.fieldTypeConfig,\n fieldLabels: this.fieldLabels,\n fieldOrder: this.fieldOrder,\n excludeFields: this.excludeFields\n });\n this.displayFields = [...this.fields];\n }\n }\n\n // ✅ Métodos de renderizado - delegan al servicio\n formatDynamicFieldValue(field: DynamicField, value: unknown): string {\n return this.dynamicFieldService.formatDynamicFieldValue(field, value);\n }\n\n getImageUrl(field: DynamicField, value: unknown): string {\n return this.dynamicFieldService.getImageUrl(field, value);\n }\n\n getImageAltText(field: DynamicField, item: Record<string, unknown>): string {\n return this.dynamicFieldService.getImageAltText(field, item);\n }\n\n // ✅ Eventos que se emiten al componente padre\n onEditItem(item: Record<string, unknown>) {\n this.editItem.emit(item);\n }\n\n // ✅ Métodos para manejo de selección\n onSelectionChange(selectedItems: Record<string, unknown>[] | null) {\n this.selectedItems = selectedItems;\n this.selectedItemsChange.emit(selectedItems);\n }\n\n isItemSelected(item: Record<string, unknown>): boolean {\n if (!this.selectedItems) return false;\n return this.selectedItems.some(selected => selected['id'] === item['id']);\n }\n\n toggleItemSelection(item: Record<string, unknown>, event: { checked: boolean }) {\n if (!this.selectedItems) {\n this.selectedItems = [];\n }\n\n const isSelected = this.isItemSelected(item);\n \n if (event.checked && !isSelected) {\n // Agregar item a la selección\n this.selectedItems = [...this.selectedItems, item];\n } else if (!event.checked && isSelected) {\n // Remover item de la selección\n this.selectedItems = this.selectedItems.filter(selected => selected['id'] !== item['id']);\n }\n\n this.selectedItemsChange.emit(this.selectedItems);\n }\n}\n","<p-dataview \n #dv \n [value]=\"data\" \n [layout]=\"layout\"\n [rows]=\"rows\"\n [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n currentPageReportTemplate=\"Mostrando {first} a {last} de {totalRecords} ítems\"\n>\n <ng-template #grid let-items>\n @if (showDefaultGrid) {\n <!-- Grid layout for displaying items -->\n <div class=\"grid gap-4\" style=\"grid-template-columns: repeat(auto-fill, minmax(288px, 1fr)); max-width: 100%;\">\n @for (item of items; track item['id']) {\n <div \n [class]=\"'border rounded-lg p-4 shadow-sm hover:shadow-md transition-all duration-200 bg-white cursor-pointer ' + (isItemSelected(item) ? 'border-green-500 border-2 shadow-lg ring-2 ring-green-200' : 'border-gray-200')\" \n style=\"max-width: 672px; justify-self: start;\"\n (click)=\"toggleItemSelection(item, { checked: !isItemSelected(item) })\">\n <!-- Contenido dinámico de cada card -->\n <div class=\"flex flex-col gap-3 h-full\">\n @for (field of displayFields; track field.key) {\n <div class=\"field-item\">\n @switch (field.type) {\n @case ('img') {\n <!-- Imagen -->\n <div class=\"w-full mb-3\">\n <img \n [src]=\"getImageUrl(field, item[field.key])\" \n [alt]=\"getImageAltText(field, item)\"\n class=\"w-full h-48 object-cover rounded border\" \n style=\"aspect-ratio: 16/9;\" />\n </div>\n }\n @case ('checkbox') {\n <!-- Campo booleano -->\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"font-medium text-gray-600\">{{ field.label }}:</span>\n <span class=\"flex items-center gap-1\">\n <i [class]=\"item[field.key] ? 'pi pi-check-circle text-green-500' : 'pi pi-times-circle text-red-500'\"></i>\n <span>{{ item[field.key] ? 'Yes' : 'No' }}</span>\n </span>\n </div>\n }\n @case ('number') {\n <!-- Campo numérico -->\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"font-medium text-gray-600\">{{ field.label }}:</span>\n <span>{{ formatDynamicFieldValue(field, item[field.key]) }}</span>\n </div>\n }\n @case ('select') {\n <!-- Campo select -->\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"font-medium text-gray-600\">{{ field.label }}:</span>\n <span>{{ formatDynamicFieldValue(field, item[field.key]) }}</span>\n </div>\n }\n @default {\n <!-- Campo de texto -->\n <div class=\"flex items-center gap-2 text-sm\">\n <span class=\"font-medium text-gray-600\">{{ field.label }}:</span>\n <span>{{ formatDynamicFieldValue(field, item[field.key]) }}</span>\n </div>\n }\n }\n </div>\n }\n \n <!-- Botones de acción -->\n <div class=\"flex justify-between items-center mt-auto pt-3 border-t border-gray-100\">\n <!-- Botón de acciones unificado a la izquierda -->\n <div class=\"flex gap-2 items-center\">\n <lib-button-actions-row1 \n [item]=\"item\" \n (edit)=\"onEditItem($event)\"\n (click)=\"$event.stopPropagation()\">\n </lib-button-actions-row1>\n </div>\n \n <!-- Checkbox de selección a la derecha -->\n <p-checkbox \n [ngModel]=\"isItemSelected(item)\"\n (ngModelChange)=\"toggleItemSelection(item, { checked: $event })\"\n [binary]=\"true\"\n (click)=\"$event.stopPropagation()\">\n </p-checkbox>\n </div>\n </div>\n </div>\n }\n </div>\n }\n </ng-template>\n</p-dataview>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { FormsModule } from '@angular/forms';\nimport { MenuItem } from 'primeng/api';\nimport { Menu } from 'primeng/menu';\nimport { TablaDataSharedDTO } from 'juliaositembackenexpress/dist/api/dtos/componentes-common-lib-angular/tablaDataSharedDTO';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-button-options-table',\n imports: [PrimegModule, FormsModule],\n templateUrl: './button-options-table.component.html',\n styleUrl: './button-options-table.component.scss',\n standalone: true,\n})\nexport class ButtonOptionsTableComponent implements OnInit {\n\n componente: ComponentesDTO = {\n id: 8,\n nombreComponente: 'lib-button-options-table',\n version: '1.0',\n };\n\n @Input() isAdd: boolean = true; \n @Input() isDelete: boolean = true;\n @Input() isExportExcel: boolean = true;\n @Input() selectedItem: unknown; // Producto seleccionado\n \n @Output() onAdd = new EventEmitter<void>();\n @Output() onDelete = new EventEmitter<void>();\n @Output() onExportExcel = new EventEmitter<void>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() tablaDataSharedDTO!: TablaDataSharedDTO<Menu, any>;\n \n items: MenuItem[]=[];\n\n ngOnInit() {\n\n this.addButtons()\n \n }\n\n addButtons() {\n this.addAddButton();\n this.addButtonExportExcelOrPdf();\n this.addDeleteButton();\n }\n\n\n addButtonExportExcelOrPdf(){\n if (this.isExportExcel) {\n this.items.push({ separator: true });\n this.items.push({\n label: 'Export',\n icon: 'pi pi-download',\n items: [\n \n ...(this.isExportExcel ? [{ \n label: 'Export to Excel', \n icon: 'pi pi-file-excel',\n command: () => this.onExportExcel.emit()\n }] : [])\n ].filter(Boolean)\n });\n }}\n\n \n \n \n addAddButton(){\n if(this.isAdd) {this.items.push({ \n label: 'Add', \n icon: 'pi pi-plus',\n command: () => this.onAdd.emit() \n });}\n }\n\n addDeleteButton() {\n if (this.isDelete){\n this.items.push({ \n label: 'Delete Selected', \n icon: 'pi pi-trash',\n command: () => { \n this.onDelete.emit(); // Solo emitir el evento, sin parámetros\n } });\n }\n}\n \n}\n","<div class=\"\">\n <p-button \n icon=\"pi pi-ellipsis-v\" \n [text]=\"true\"\n [rounded]=\"true\"\n (click)=\"menu.toggle($event)\" \n />\n <p-tieredmenu #menu [model]=\"items\" [popup]=\"true\" />\n</div>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n@Component({\n selector: 'lib-button-add1',\n standalone: true,\n imports: [PrimegModule],\n templateUrl: './button-add1.component.html',\n styleUrl: './button-add1.component.scss'\n})\nexport class ButtonAdd1Component {\n\n componente: ComponentesDTO = {\n id: 9,\n nombreComponente: 'lib-button-add1',\n version: '1.0',\n };\n\n @Input() label: string = 'Add';\n @Input() icon: string = 'pi pi-plus';\n @Input() disabled: boolean = false;\n @Input() size: 'small' | 'large' | undefined = undefined;\n @Input() outlined: boolean = false;\n @Input() rounded: boolean = false;\n @Input() severity: 'success' | 'info' | 'warn' | 'danger' | 'help' | 'primary' | 'secondary' | 'contrast' | undefined = 'success';\n @Input() tooltip: string = 'Add new item';\n @Input() loading: boolean = false;\n \n @Output() add = new EventEmitter<void>();\n\n onAdd() {\n if (!this.disabled && !this.loading) {\n this.add.emit();\n }\n }\n}\n","<p-button \n [label]=\"label\" \n [icon]=\"icon\" \n [size]=\"size\"\n [rounded]=\"rounded\" \n [outlined]=\"outlined\" \n [disabled]=\"disabled\"\n [loading]=\"loading\"\n [severity]=\"severity\" \n [title]=\"tooltip\"\n (click)=\"onAdd()\" />\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-button-delete1',\n standalone: true,\n imports: [PrimegModule],\n templateUrl: './button-delete1.component.html',\n styleUrl: './button-delete1.component.scss'\n})\nexport class ButtonDelete1Component {\n\n componente: ComponentesDTO = {\n id: 22,\n nombreComponente: 'lib-button-delete1',\n version: '1.0',\n };\n\n @Input() label: string = 'Delete';\n @Input() icon: string = 'pi pi-trash';\n @Input() disabled: boolean = false;\n @Input() size: 'small' | 'large' | undefined = undefined;\n @Input() outlined: boolean = false;\n @Input() rounded: boolean = false;\n @Input() severity: 'success' | 'info' | 'warn' | 'danger' | 'help' | 'primary' | 'secondary' | 'contrast' | undefined = 'danger';\n @Input() tooltip: string = 'Delete selected items';\n @Input() loading: boolean = false;\n \n @Output() delete = new EventEmitter<void>();\n\n onDelete(): void {\n this.delete.emit();\n }\n}\n","<p-button \n [label]=\"label\" \n [icon]=\"icon\" \n [size]=\"size\"\n [rounded]=\"rounded\" \n [outlined]=\"outlined\" \n [disabled]=\"disabled\"\n [loading]=\"loading\"\n [severity]=\"severity\" \n [title]=\"tooltip\"\n (click)=\"onDelete()\" />\n","import { Component } from '@angular/core';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { grid, list } from 'ionicons/icons';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-button-table-view1',\n standalone: true,\n imports: [IonIcon],\n templateUrl: './button-table-view1.component.html',\n styleUrl: './button-table-view1.component.scss'\n})\nexport class ButtonTableView1Component {\n\n componente: ComponentesDTO = {\n id: 12,\n nombreComponente: 'lib-button-table-view1',\n version: '1.0',\n };\n\n constructor() {\n addIcons({ grid, list });\n }\n}\n","<ion-icon name=\"list\" size=\"large\"></ion-icon>\n","import { Component } from '@angular/core';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { grid, apps } from 'ionicons/icons';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n@Component({\n selector: 'lib-button-card-view1',\n standalone: true,\n imports: [IonIcon],\n templateUrl: './button-card-view1.component.html',\n styleUrl: './button-card-view1.component.scss'\n})\nexport class ButtonCardView1Component {\n\n componente: ComponentesDTO = {\n id: 10,\n nombreComponente: 'lib-button-card-view1',\n version: '1.0',\n };\n\n constructor() {\n addIcons({ grid, apps });\n }\n}\n","<ion-icon name=\"grid\" size=\"large\"></ion-icon>\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonTableView1Component } from '../../atoms/button-table-view1/button-table-view1.component';\nimport { ButtonCardView1Component } from '../../atoms/button-card-view1/button-card-view1.component';\nimport { FormsModule } from '@angular/forms';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-view-buttons-container1',\n standalone: true,\n imports: [\n CommonModule,\n SelectButtonModule,\n ButtonTableView1Component,\n ButtonCardView1Component,\n FormsModule,\n ],\n templateUrl: './view-buttons-container1.component.html',\n styleUrl: './view-buttons-container1.component.scss',\n})\nexport class ViewButtonsContainer1Component {\n // Input para recibir el valor actual desde el componente padre\n @Input() currentView: 'table' | 'grid' = 'table';\n \n // Output para emitir cuando cambia la vista\n @Output() viewChange = new EventEmitter<'table' | 'grid'>();\n\n componente: ComponentesDTO = {\n id: 20,\n nombreComponente: 'lib-view-buttons-container1',\n version: '1.0'\n };\n\n stateOptions = [\n { label: 'Table View', value: 'table' },\n { label: 'Card View', value: 'grid' },\n ];\n\n // Getter/Setter para sincronizar con currentView\n get value(): string {\n return this.currentView;\n }\n\n set value(newValue: string) {\n if (newValue === 'table' || newValue === 'grid') {\n this.currentView = newValue;\n this.viewChange.emit(newValue);\n }\n }\n}\n","<p-selectbutton\n [(ngModel)]=\"value\"\n [options]=\"stateOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [allowEmpty]=\"false\"\n>\n <ng-template pTemplate=\"item\" let-item>\n <span *ngIf=\"item.value === 'table'\">\n <lib-button-table-view1></lib-button-table-view1>\n </span>\n <span *ngIf=\"item.value === 'grid'\">\n <lib-button-card-view1></lib-button-card-view1>\n </span>\n </ng-template>\n</p-selectbutton>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonOptionsTableComponent } from '../../atoms/button-options-table/button-options-table.component';\nimport { ButtonAdd1Component } from '../../atoms/button-add1/button-add1.component';\nimport { ButtonDelete1Component } from '../../atoms/button-delete1/button-delete1.component';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ViewButtonsContainer1Component } from '../view-buttons-container1/view-buttons-container1.component';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-tool-bar1',\n imports: [\n CommonModule,\n ButtonOptionsTableComponent,\n ButtonAdd1Component,\n ButtonDelete1Component,\n PrimegModule,\n ViewButtonsContainer1Component\n ],\n templateUrl: './tool-bar1.component.html',\n styleUrl: './tool-bar1.component.scss',\n standalone: true\n \n})\nexport class ToolBar1Component {\n @Input() currentView: 'table' | 'grid' = 'table';\n @Input() showAddButton: boolean = true;\n @Input() selectedItems: Record<string, unknown>[] = [];\n @Input() showDropdownAddButton: boolean = true;\n @Input() showDropdownDeleteButton: boolean = false;\n\n @Output() viewChange = new EventEmitter<'table' | 'grid'>();\n @Output() newItem = new EventEmitter<void>();\n @Output() deleteSelected = new EventEmitter<void>();\n @Output() exportToExcel = new EventEmitter<void>();\n\n componente: ComponentesDTO = {\n id: 16,\n nombreComponente: 'lib-tool-bar1',\n version: '1.0'\n };\n\n // ✅ Getter para determinar si mostrar el botón delete\n get shouldShowDeleteButton(): boolean {\n return this.selectedItems.length > 0;\n }\n\n onViewChange(newView: 'table' | 'grid'): void {\n this.viewChange.emit(newView);\n }\n \n onNewItem(): void {\n this.newItem.emit();\n }\n\n onDeleteSelected(): void {\n this.deleteSelected.emit();\n }\n\n onExportToExcel(): void {\n this.exportToExcel.emit();\n }\n}\n","<p-toolbar styleClass=\"mb-6\">\n <ng-template #start>\n <div class=\"flex items-center gap-2\">\n <lib-button-options-table \n [isAdd]=\"showDropdownAddButton\"\n (onAdd)=\"onNewItem()\"\n [isDelete]=\"showDropdownDeleteButton\"\n (onDelete)=\"onDeleteSelected()\"\n (onExportExcel)=\"onExportToExcel()\">\n </lib-button-options-table>\n <lib-button-add1 \n *ngIf=\"showAddButton\"\n (add)=\"onNewItem()\">\n </lib-button-add1>\n <lib-button-delete1 \n *ngIf=\"shouldShowDeleteButton\"\n (delete)=\"onDeleteSelected()\">\n </lib-button-delete1>\n </div>\n </ng-template>\n\n <ng-template #end>\n <lib-view-buttons-container1 \n [currentView]=\"currentView\" \n (viewChange)=\"onViewChange($event)\" />\n </ng-template>\n</p-toolbar>\n\n\n","import { Injectable } from '@angular/core';\nimport { MessageService } from 'primeng/api';\n\nimport { ExcelExportConfig } from '@juliaosistem/core-dtos'; // Assuming you have a model for the config\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExcelExportService {\n\n constructor(private messageService: MessageService) {}\n\n async exportToExcel(config: ExcelExportConfig): Promise<void> {\n if (!config.data?.length) {\n this.messageService.add({\n severity: 'warn',\n summary: 'No Data',\n detail: 'No data available to export',\n life: 3000,\n });\n return;\n }\n\n await this.performExcelExport(config);\n }\n\n private async performExcelExport(config: ExcelExportConfig): Promise<void> {\n try {\n const XLSX = await import('xlsx');\n const exportData = this.prepareDataForExport(config);\n const ws = XLSX.utils.json_to_sheet(exportData);\n const wb = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, ws, 'Data');\n \n const fileName = this.generateFileName(config.fileName);\n XLSX.writeFile(wb, fileName);\n \n this.messageService.add({\n severity: 'success',\n summary: 'Export Successful',\n detail: `Data exported to ${fileName}`,\n life: 3000,\n });\n } catch {\n this.messageService.add({\n severity: 'error',\n summary: 'Export Failed',\n detail: 'Could not load Excel export library',\n life: 3000,\n });\n }\n }\n\n private prepareDataForExport(config: ExcelExportConfig): Record<string, unknown>[] {\n return config.data.map(item => {\n const exportItem: Record<string, unknown> = {};\n const fields = config.fieldOrder.length ? config.fieldOrder : \n Object.keys(item).filter(key => !config.excludeFields.includes(key));\n \n fields.forEach(field => {\n const label = config.fieldLabels[field] || field;\n const value = item[field];\n exportItem[label] = this.formatValue(value);\n });\n \n return exportItem;\n });\n }\n\n private formatValue(value: unknown): string | number | boolean | null {\n if (value === null || value === undefined) return null;\n if (typeof value === 'boolean' || typeof value === 'number') return value;\n if (Array.isArray(value)) return value.join(', ');\n if (typeof value === 'object') return JSON.stringify(value);\n if (value instanceof Date) return value.toLocaleDateString();\n return String(value);\n }\n\n private generateFileName(customFileName?: string): string {\n const dateSuffix = new Date().toISOString().split('T')[0];\n return `${customFileName || 'export'}_${dateSuffix}.xlsx`;\n }\n}\n","// En crud.ts - Agregar las propiedades para el sistema dinámico\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { ConfirmationService, MessageService } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { Tabla1Component } from '../../molecules/tabla1/tabla1.component';\nimport { Grid1Component } from '../../molecules/grid1/grid1.component';\nimport { ToolBar1Component } from '../../molecules/tool-bar1/tool-bar1.component';\n\n// ✅ Importar los tipos del sistema dinámico\nimport { FieldType, DynamicField } from '@juliaosistem/core-dtos';\nimport { DynamicFieldService } from '../../services/dynamic-field.service';\nimport { ExcelExportService } from '../../services/excel-export.service';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-crud',\n standalone: true,\n imports: [\n CommonModule,\n TableModule,\n FormsModule,\n PrimegModule,\n ToolBar1Component,\n Tabla1Component,\n Grid1Component\n ],\n templateUrl: './crud.component.html',\n providers: [MessageService, ConfirmationService]\n})\nexport class Crud implements OnInit {\n @Input() showDialog: boolean = false;\n @Input() submitted: boolean = false;\n @Input() loaded: boolean = false;\n @Input() tableType: 'table' | 'grid' = 'table';\n @Input() data: Record<string, unknown>[] = [];\n @Input() fieldTypeConfig: Record<string, FieldType> = {}; // Configuración de tipos de campo\n @Input() fieldLabels: Record<string, string> = {}; // Etiquetas personal\n @Input() fieldOrder: string[] = []; // Orden de columnas\n @Input() excludeFields: string[] = ['id']; // Campos a excluir\n@Input() fieldSelectOptions: Record<string, { label: string; value: string | number | boolean }[]> = {};\n\n // Propiedades del paginador\n @Input() rows: number = 10; // Filas por página\n @Input() paginator: boolean = true; // Habilitar paginador\n @Input() rowsPerPageOptions: number[] = [10, 20, 30]; // Opciones de filas por página\n @Input() showCurrentPageReport: boolean = true; // Mostrar reporte de página\n\n // ✅ EVENTOS PARA COMUNICACIÓN CON EL PADRE\n @Output() dataChange = new EventEmitter<Record<string, unknown>[]>();\n @Output() editItemRequest = new EventEmitter<Record<string, unknown>>();\n @Output() newItemRequest = new EventEmitter<void>();\n @Output() itemSaved = new EventEmitter<Record<string, unknown>>();\n @Output() dialogCanceled = new EventEmitter<void>();\n @Input() displayFields: DynamicField[] = []; \n@Output() deleteItemRequest = new EventEmitter<Record<string, unknown>>();\n\n // ✅ Propiedades para el manejo del CRUD\n currentItem: Record<string, unknown> = {};\n selectedItems: Record<string, unknown>[] = [];\n fields: DynamicField[] = [];\n\n componente: ComponentesDTO = {\n id: 21,\n nombreComponente: 'lib-crud',\n version: '1.0'\n };\n\n constructor(\n private messageService: MessageService,\n private confirmationService: ConfirmationService,\n private dynamicFieldService: DynamicFieldService,\n private excelExportService: ExcelExportService\n ) {}\n\n ngOnInit() {\n this.initFields();\n }\ninitFields() {\n // Inicializar campos dinámicos si no se han generado\n if (this.fields.length === 0) {\n this.fields = this.dynamicFieldService.generateFieldsFromData({\n data: this.data,\n fieldTypeConfig: this.fieldTypeConfig,\n fieldLabels: this.fieldLabels,\n fieldOrder: this.fieldOrder,\n excludeFields: this.excludeFields\n });\n this.displayFields = [...this.fields];\n }\n\n // 🔹 Filtrar displayFields según excludeFields siempre\n if (this.displayFields?.length) {\n this.displayFields = this.displayFields.filter(\n f => !this.excludeFields.includes(f.key)\n );\n }\n}\n\n // ✅ Método para abrir el diálogo de edición\n editItem(item: Record<string, unknown>) {\n this.editItemRequest.emit(item);\n }\n\n // ✅ Método para crear un nuevo item\n openNew() {\n this.newItemRequest.emit();\n }\n\n // ✅ Manejar cuando se guarda un item desde el diálogo\n onItemSaved(savedItem: Record<string, unknown>) {\n this.currentItem = { ...savedItem };\n\n if (this.currentItem['id']) {\n this.updateExistingItem();\n } else {\n this.createNewItem();\n }\n this.finalizeItemSave();\n this.itemSaved.emit(this.currentItem);\n }\n\n // ✅ Manejar cuando se cancela el diálogo\n onDialogCanceled() {\n this.currentItem = {};\n this.dialogCanceled.emit();\n }\n\n // ✅ Eliminar item con confirmación\ndeleteItem(item: Record<string, unknown>) {\n const itemName = String(item['name'] || 'this item');\n this.confirmationService.confirm({\n message: 'Are you sure you want to delete ' + itemName + '?',\n header: 'Confirm',\n icon: 'pi pi-exclamation-triangle',\n accept: () => {\n this.executeItemsDeletion([item], 1);\n this.deleteItemRequest.emit(item); // ✅ ahora sí llega al padre\n },\n });\n}\n\n // ✅ Eliminar elementos seleccionados con confirmación\ndeleteSelectedItems() {\n if (!this.selectedItems || this.selectedItems.length === 0) {\n this.messageService.add({\n severity: 'warn',\n summary: 'Warning',\n detail: 'No items selected',\n life: 3000,\n });\n return;\n }\n\n const selectedCount = this.selectedItems.length;\n const itemsToDelete = [...this.selectedItems]; // Copia para emitir\n this.confirmationService.confirm({\n message: `Are you sure you want to delete ${selectedCount} selected item${selectedCount > 1 ? 's' : ''}?`,\n header: 'Confirm Deletion',\n icon: 'pi pi-exclamation-triangle',\n accept: () => {\n this.executeItemsDeletion(itemsToDelete, selectedCount);\n // Emitir al componente padre\n itemsToDelete.forEach(item => this.deleteItemRequest.emit(item));\n },\n });\n}\n\n\n private executeItemsDeletion(itemsToDelete: Record<string, unknown>[], count: number) {\n const idsToDelete = itemsToDelete.map(item => item['id']);\n this.data = this.data.filter(item => !idsToDelete.includes(item['id']));\n this.selectedItems = [];\n this.dataChange.emit([...this.data]);\n this.messageService.add({\n severity: 'success',\n summary: 'Successful',\n detail: `${count} item${count > 1 ? 's' : ''} deleted`,\n life: 3000,\n });\n }\n\n // ✅ Métodos privados para actualizar y crear items\n private updateExistingItem() {\n if (!this.currentItem['id']) return;\n \n const index = this.dynamicFieldService.findIndexById(this.data, String(this.currentItem['id']));\n if (index !== -1) {\n this.data[index] = { ...this.currentItem };\n\n this.messageService.add({\n severity: 'success',\n summary: 'Successful',\n detail: 'Item Updated',\n life: 3000,\n });\n }\n }\n\n private createNewItem() {\n this.currentItem['id'] = this.dynamicFieldService.generateId();\n this.data.push({ ...this.currentItem });\n\n this.messageService.add({\n severity: 'success',\n summary: 'Successful',\n detail: 'Item Created',\n life: 3000,\n });\n }\n\n // ✅ Método público para procesar el guardado desde el componente padre\n public processItemSave(savedItem: Record<string, unknown>) {\n this.currentItem = { ...savedItem };\n\n if (this.currentItem['id']) {\n this.updateExistingItem();\n } else {\n this.createNewItem();\n }\n this.finalizeItemSave();\n }\n\n // ✅ Método público para establecer el item actual desde el componente padre\n public setCurrentItem(item: Record<string, unknown>) {\n this.currentItem = { ...item };\n }\n\n private finalizeItemSave() {\n this.data = [...this.data];\n this.dataChange.emit([...this.data]); // ✅ Emitir cambios\n this.currentItem = {};\n }\n\n onViewChange(newView: 'table' | 'grid'): void {\n this.tableType = newView;\n }\n\n // ✅ Debug: Método para detectar cambios en selectedItems\n onSelectedItemsChange(newSelection: Record<string, unknown>[] | null) {\n this.selectedItems = newSelection || [];\n }\n\n // ✅ Método para exportar a Excel\n exportToExcel(): void {\n this.excelExportService.exportToExcel({\n data: this.data,\n fieldOrder: this.fieldOrder,\n fieldLabels: this.fieldLabels,\n excludeFields: this.excludeFields,\n });\n }\n}","<!-- En crud.component.html -->\n<div class=\"card\">\n <!-- Toolbar para cambiar vista -->\n <lib-tool-bar1 \n (viewChange)=\"onViewChange($event)\"\n [currentView]=\"tableType\"\n [selectedItems]=\"selectedItems\"\n (newItem)=\"openNew()\"\n (deleteSelected)=\"deleteSelectedItems()\"\n (exportToExcel)=\"exportToExcel()\">\n </lib-tool-bar1>\n\n <!-- Vista de tabla con sistema dinámico -->\n <lib-tabla1 \n *ngIf=\"tableType === 'table'\"\n [data]=\"data\"\n [selectedItems]=\"selectedItems\"\n (selectedItemsChange)=\"onSelectedItemsChange($event)\"\n [fieldTypeConfig]=\"fieldTypeConfig\"\n [fieldLabels]=\"fieldLabels\"\n [fieldOrder]=\"fieldOrder\"\n [excludeFields]=\"excludeFields\"\n [fieldSelectOptions]=\"fieldSelectOptions\"\n [displayFields]=\"displayFields\"\n [rows]=\"rows\"\n [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n (editItem)=\"editItem($event)\">\n </lib-tabla1>\n\n <!-- Vista de grid -->\n <lib-grid1 \n *ngIf=\"tableType === 'grid'\"\n [data]=\"data\"\n [selectedItems]=\"selectedItems\"\n (selectedItemsChange)=\"onSelectedItemsChange($event)\"\n [fieldTypeConfig]=\"fieldTypeConfig\"\n [fieldLabels]=\"fieldLabels\"\n [fieldOrder]=\"fieldOrder\"\n [excludeFields]=\"excludeFields\"\n [fieldSelectOptions]=\"fieldSelectOptions\"\n [displayFields]=\"displayFields\"\n [rows]=\"rows\"\n [paginator]=\"paginator\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n [showCurrentPageReport]=\"showCurrentPageReport\"\n (editItem)=\"editItem($event)\">\n </lib-grid1>\n\n <!-- Diálogo de confirmación -->\n <p-confirmDialog></p-confirmDialog>\n</div>","import {\n Component,\n Input,\n Type,\n ViewChild,\n ViewContainerRef,\n AfterViewInit\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface DocProp {\n name: string;\n type?: string;\n description?: string;\n}\n\n@Component({\n selector: 'lib-crud-doc',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div class=\"doc-container\">\n\n <!-- Header -->\n <header>\n <h2> {{ title }}</h2>\n <p>{{ description }}</p>\n </header>\n\n <!-- Inputs -->\n <section *ngIf=\"inputsDocs?.length\">\n <h3>Inputs</h3>\n <table class=\"doc-table\">\n <thead>\n <tr>\n <th>Propiedad</th>\n <th>Tipo</th>\n <th>Descripción</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let input of inputsDocs\">\n <td><code>{{ input.name }}</code></td>\n <td><code>{{ input.type || 'any' }}</code></td>\n <td>{{ input.description }}</td>\n </tr>\n </tbody>\n </table>\n </section>\n\n <!-- Outputs -->\n <section *ngIf=\"outputsDocs?.length\">\n <h3>Outputs</h3>\n <table class=\"doc-table\">\n <thead>\n <tr>\n <th>Evento</th>\n <th>Tipo</th>\n <th>Descripción</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let output of outputsDocs\">\n <td><code>{{ output.name }}</code></td>\n <td><code>{{ output.type }}</code></td>\n <td>{{ output.description }}</td>\n </tr>\n </tbody>\n </table>\n </section>\n\n <!-- Ejemplo de uso -->\n <section *ngIf=\"exampleCode\">\n <h3>Ejemplo de uso</h3>\n <pre><code>{{ exampleCode }}</code></pre>\n </section>\n\n <!-- Demo interactiva -->\n <section>\n <h3>Demo interactiva</h3>\n <ng-template #demoContainer></ng-template>\n </section>\n\n </div>\n `,\n styles: [`\n .doc-container { padding: 20px; background: #fafafa; border-radius: 8px; border: 1px solid #ddd; font-family: sans-serif; }\n h2, h3 { margin-top: 16px; margin-bottom: 8px; }\n h2 { font-size: 1.5rem; }\n h3 { font-size: 1.25rem; }\n .doc-table { width: 100%; border-collapse: collapse; margin-bottom: 16px; }\n .doc-table th, .doc-table td { border: 1px solid #ddd; padding: 6px 10px; text-align: left; }\n .doc-table th { background: #f1f1f1; }\n pre { background: #272822; color: #f8f8f2; padding: 12px; border-radius: 6px; overflow-x: auto; }\n `]\n})\nexport class CrudDocComponent implements AfterViewInit {\n /** Componente que se mostrará en el demo interactivo */\n @Input({ required: true }) component!: Type<any>;\n\n /** Información de la documentación */\n @Input() title = '';\n @Input() description = '';\n @Input() exampleCode = '';\n @Input() inputsDocs: DocProp[] = [];\n @Input() outputsDocs: DocProp[] = [];\n\n /** Inputs y outputs para el demo dinámico */\n @Input() demoInputs: Record<string, any> = {};\n @Input() demoOutputs: Record<string, (value?: any) => void> = {};\n\n @ViewChild('demoContainer', { read: ViewContainerRef, static: true })\n container!: ViewContainerRef;\n\n ngAfterViewInit(): void {\n if (!this.component) return;\n\n const cmpRef = this.container.createComponent(this.component);\n\n // Asignar inputs dinámicos\n Object.entries(this.demoInputs).forEach(([key, value]) => {\n cmpRef.setInput(key, value);\n });\n\n // Suscribirse a outputs dinámicos\n Object.entries(this.demoOutputs).forEach(([key, handler]) => {\n const emitter = (cmpRef.instance as any)[key];\n if (emitter?.subscribe) emitter.subscribe(handler);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatListModule } from '@angular/material/list';\n\nimport { MatCardModule } from '@angular/material/card';\nimport { NgxsModule } from '@ngxs/store';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport { NgxsReduxDevtoolsPluginModule } from '@ngxs/devtools-plugin';\nimport { NgxsLoggerPluginModule } from '@ngxs/logger-plugin';\nimport { HttpClient } from \"@angular/common/http\";\n\n\nexport function createTranslateLoader() {\n return new TranslateHttpLoader();\n}\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: createTranslateLoader,\n deps: [HttpClient]\n }\n }),\n ],exports:[\n \n //FormsModule,\n // CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n NgxsModule,\n NgxsReduxDevtoolsPluginModule,\n NgxsLoggerPluginModule,\n MatTableModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n MatIconModule,\n MatGridListModule,\n MatPaginatorModule,\n MatSidenavModule,\n MatToolbarModule,\n MatListModule,\n MatCardModule,\n // BrowserAnimationsModule,\n ]\n \n})\nexport class CoreModuleLib { }\n","import { Component, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CoreModuleLib } from '../../../../modulos/core.lib.module';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-select-input1',\n standalone: true,\n imports: [CoreModuleLib,IonicModule,FormsModule,CommonModule],\n templateUrl: './select-input1.component.html',\n styleUrl: './select-input1.component.css'\n})\nexport class SelectInput1Component {\n\n componente: ComponentesDTO = {\n id: 13,\n nombreComponente: 'lib-select-input1',\n version: '1.0',\n };\n\n seleccionada:string =\"\";\n\n @Input()\n lenguages :string[] =[]\n\n constructor(private translate: TranslateService,\n ){}\n\n cambiaLang(event:string){\n this.translate.use(event);\n \n }\n\n}\n","<div class=\"input-group mb-3\">\n <ion-select placeholder=\"{{'lenguage'| translate}}\" [(ngModel)]=\"seleccionada\" (ionChange)=cambiaLang(seleccionada) >\n <ion-select-option *ngFor=\"let i of lenguages\" [value]=\"i\">{{i}}\n </ion-select-option>\n </ion-select>\n\n</div>\n\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-button-action-edit1',\n standalone: true,\n imports: [PrimegModule],\n templateUrl: './button-action-edit1.component.html',\n styleUrls: ['./button-action-edit1.component.scss']\n})\nexport class ButtonActionEdit1Component {\n @Input() item: Record<string, unknown> = {};\n @Input() disabled: boolean = false;\n @Input() size: 'small' | 'large' | undefined = undefined;\n @Input() outlined: boolean = true;\n @Input() rounded: boolean = true;\n \n @Output() edit = new EventEmitter<Record<string, unknown>>();\n\ncomponente: ComponentesDTO = {\n id: 14,\n nombreComponente: 'lib-button-action-edit1',\n version: '1.0'\n };\n\n onEdit() {\n if (!this.disabled) {\n this.edit.emit(this.item);\n }\n }\n}\n","<p-button \n icon=\"pi pi-pencil\" \n [size]=\"size\"\n [rounded]=\"rounded\" \n [outlined]=\"outlined\" \n [disabled]=\"disabled\"\n severity=\"info\" \n [title]=\"'Edit item'\"\n (click)=\"onEdit()\" />\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-button-action-delete1',\n standalone: true,\n imports: [PrimegModule],\n templateUrl: './button-action-delete1.component.html',\n styleUrl: './button-action-delete1.component.scss'\n})\nexport class ButtonActionDelete1Component {\n\n componente: ComponentesDTO = {\n id: 15,\n nombreComponente: 'lib-button-action-delete1',\n version: '1.0'\n };\n\n @Input() item: Record<string, unknown> = {};\n @Input() disabled: boolean = false;\n @Input() size: 'small' | 'large' | undefined = undefined;\n @Input() outlined: boolean = true;\n @Input() rounded: boolean = true;\n \n @Output() delete = new EventEmitter<Record<string, unknown>>();\n\n onDelete() {\n if (!this.disabled) {\n this.delete.emit(this.item);\n }\n }\n}\n","<p-button \n icon=\"pi pi-trash\" \n [size]=\"size\"\n [rounded]=\"rounded\" \n [outlined]=\"outlined\" \n [disabled]=\"disabled\"\n severity=\"danger\" \n [title]=\"'Delete item'\"\n (click)=\"onDelete()\" />\n","import { Component } from '@angular/core';\nimport { CoreModuleLib } from '../../../../modulos/core.lib.module';\n\n@Component({\n selector: 'lib-header2',\n standalone: true,\n imports: [CoreModuleLib],\n templateUrl: './header2.component.html',\n styleUrl: './header2.component.css'\n})\nexport class Header2Component {\n\n}\n","<header class=\"header_section\">\n <div class=\"container-fluid\">\n <mat-toolbar color=\"primary\">\n <a mat-button routerLink=\"/index\">\n <img src=\"assets/images/logo.png\" alt=\"\" style=\"height: 40px;\">\n <span style=\"color: #F25D27; margin-left: 10px;\">\n Dog Paradice\n </span>\n </a>\n <span class=\"spacer\"></span>\n <button mat-icon-button class=\"example-icon\" aria-label=\"Toggle sidenav\" (click)=\"sidenav.toggle()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n \n <mat-sidenav-container class=\"example-container\">\n <mat-sidenav #sidenav mode=\"side\" opened>\n <mat-nav-list>\n <a mat-list-item routerLink=\"/index\">Lare</a>\n <a mat-list-item routerLink=\"/service\">Serviços</a>\n <a mat-list-item href=\"https://w.app/DOGPARADICE\" target=\"_blank\">Contato</a>\n </mat-nav-list>\n </mat-sidenav>\n <mat-sidenav-content>\n <!-- This is where your main content goes -->\n </mat-sidenav-content>\n </mat-sidenav-container>\n </div>\n </header>\n \n","import { Component } from '@angular/core';\nimport { Header2Component } from '../header2/header2.component';\nimport { CoreModuleLib } from '../../../../modulos/core.lib.module';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'lib-index2',\n standalone: true,\n imports: [Header2Component, CoreModuleLib,RouterOutlet],\n templateUrl: './index2.component.html',\n styleUrl: './index2.component.css'\n})\nexport class Index2Component {\n\n}\n","<lib-header2></lib-header2>\n<router-outlet></router-outlet>","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormBuilder, FormGroup } from '@angular/forms';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { DynamicField } from '../../interfaces/dynamic-field.interface';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-crud-dialog1',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, PrimegModule],\n templateUrl: './crud-dialog1.component.html',\n styleUrl: './crud-dialog1.component.scss',\n})\nexport class CrudDialog1Component implements OnChanges {\n onSubmit() {\n throw new Error('Method not implemented.');\n }\n @Input() visible: boolean = false;\n @Input() displayFields: DynamicField[] = [];\n @Input() currentItem: Record<string, unknown> = {};\n @Input() fieldSelectOptions: Record<string, { label: string; value: string | number | boolean }[]> = {};\n @Input() isDefaultContent: boolean = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() body: TemplateRef<any> | undefined;\n\n @Output() visibleChange = new EventEmitter<boolean>();\n @Output() save = new EventEmitter<Record<string, unknown>>();\n @Output() cancel = new EventEmitter<void>();\n @Output() triggerSave = new EventEmitter<void>(); // Nuevo evento para templates personalizados\n\n itemForm: FormGroup;\n\n componente: ComponentesDTO = {\n id: 18,\n nombreComponente: 'lib-crud-dialog1',\n version: '1.0',\n };\n\n /**\n * Archivos seleccionados\n */\n selectedFiles: Record<string, File> = {};\n\n constructor(private fb: FormBuilder) {\n this.itemForm = this.fb.group({});\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['currentItem'] && this.currentItem) {\n this.updateForm();\n }\n }\n\n private updateForm() {\n const formControls: Record<string, unknown> = {};\n\n this.displayFields.forEach((field) => {\n const initialValue = this.getInitialValue(field);\n const currentValue = this.currentItem[field.key] ?? initialValue;\n\n formControls[field.key] = [currentValue];\n });\n\n this.itemForm = this.fb.group(formControls);\n }\n\n /**\n * Obtiene el valor inicial basado en el tipo de campo\n */\n private getInitialValue(\n field: DynamicField,\n ): string | number | boolean | null {\n switch (field.type) {\n case 'checkbox':\n return false;\n case 'number':\n return 0;\n case 'select':\n return null;\n case 'img':\n case 'file':\n return '';\n default:\n return '';\n }\n }\n\n /**\n * Maneja la selección de archivos desde p-fileUpload\n */\n onFileSelect(event: { files: File[] }, fieldKey: string): void {\n const file = event.files[0] as File;\n\n if (file) {\n // Guardar archivo\n this.selectedFiles[fieldKey] = file;\n // Actualizar el formulario\n this.itemForm.get(fieldKey)?.setValue(file.name);\n }\n }\n\n /**\n * Remueve un archivo seleccionado\n */\n onFileRemove(fieldKey: string): void {\n delete this.selectedFiles[fieldKey];\n this.itemForm.get(fieldKey)?.setValue('');\n }\n\n /**\n * Obtiene el archivo seleccionado para un campo\n */\n getSelectedFile(fieldKey: string): File | null {\n return this.selectedFiles[fieldKey] || null;\n }\n\n // ✅ Obtener opciones para campos de tipo select\ngetSelectOptions(fieldKey: string): { label: string; value: string | number | boolean }[] {\n return this.fieldSelectOptions[fieldKey] || [];\n}\n\n\n hideDialog() {\n this.visible = false;\n this.visibleChange.emit(false);\n this.cancel.emit();\n\n // ✅ Limpiar archivos seleccionados\n this.selectedFiles = {};\n }\n\n saveItem() {\n // Si hay un template personalizado, delegar el guardado al template\n if (this.body) {\n this.triggerSave.emit();\n return;\n }\n\n // Lógica original para formularios por defecto\n const formValue = this.itemForm.value;\n\n // ✅ Preservar el ID si existe (para edición)\n if (this.currentItem['id']) {\n formValue['id'] = this.currentItem['id'];\n }\n\n// Procesar archivos seleccionados antes de guardar\n/**\n * Si es imagen → crea URL temporal (Blob) para vista previa.\n * Si es PDF/Excel → guarda nombre, pero conserva el File real en selectedFiles.\n */\n Object.entries(this.selectedFiles).forEach(([key, file]) => {\n if (!file) return;\n formValue[key] = file.type.startsWith('image/')\n ? URL.createObjectURL(file)\n : file.name;\n });\n\n // ✅ Agregar archivos originales al payload para procesamiento posterior\n if (Object.keys(this.selectedFiles).length > 0) {\n formValue['_files'] = this.selectedFiles;\n }\n\n this.save.emit(formValue);\n this.hideDialog();\n }\n\n onDialogHide() {\n // ✅ Solo limpiar archivos y resetear estado interno sin emitir eventos\n // Esto evita el bucle infinito con el two-way binding\n this.selectedFiles = {};\n\n // ✅ Solo emitir cancel si el diálogo se cerró sin guardar\n if (this.visible) {\n this.cancel.emit();\n }\n }\n\n onVisibilityChange(visible: boolean) {\n // ✅ Manejar el cambio de visibilidad desde PrimeNG\n this.visible = visible;\n this.visibleChange.emit(visible);\n\n if (!visible) {\n // ✅ Limpiar archivos cuando se cierra el diálogo\n this.selectedFiles = {};\n this.cancel.emit();\n }\n }\n}\n","<!-- Diálogo de edición CRUD -->\n<p-dialog\n [visible]=\"visible\"\n [modal]=\"true\"\n [style]=\"{ width: '450px' }\"\n header=\"Item Details\"\n styleClass=\"p-fluid\"\n [dismissableMask]=\"true\"\n (onHide)=\"onDialogHide()\"\n (visibleChange)=\"onVisibilityChange($event)\"\n>\n <ng-template #content>\n <ng-container *ngTemplateOutlet=\"body || defaultbody\"> </ng-container>\n </ng-template>\n <ng-template #defaultbody>\n <form [formGroup]=\"itemForm\">\n @for (field of displayFields; track field.key) {\n <div class=\"field\">\n <label [for]=\"field.key\">\n {{ field.label }}\n </label>\n\n @switch (field.type) {\n @case (\"text\") {\n <input\n pInputText\n [id]=\"field.key\"\n [formControlName]=\"field.key\"\n [placeholder]=\"'Enter ' + field.label\"\n />\n }\n @case (\"number\") {\n <p-inputNumber\n [id]=\"field.key\"\n [formControlName]=\"field.key\"\n mode=\"decimal\"\n [placeholder]=\"'Enter ' + field.label\"\n />\n }\n @case (\"checkbox\") {\n <p-checkbox\n [id]=\"field.key\"\n [formControlName]=\"field.key\"\n [binary]=\"true\"\n class=\"flex align-items-center gap-2\"\n />\n }\n @case (\"select\") {\n <p-select\n [id]=\"field.key\"\n [formControlName]=\"field.key\"\n [options]=\"getSelectOptions(field.key)\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [placeholder]=\"'Select ' + field.label\"\n [showClear]=\"true\"\n />\n }\n @case (\"img\") {\n <!-- ✅ FileUpload de PrimeNG para imágenes -->\n <div class=\"file-upload-container\">\n <p-fileUpload\n [multiple]=\"false\"\n [accept]=\"field.accept || 'image/*'\"\n [maxFileSize]=\"field.maxFileSize || 5242880\"\n [showUploadButton]=\"false\"\n [showCancelButton]=\"false\"\n [chooseLabel]=\"'Choose ' + field.label\"\n [chooseIcon]=\"'pi pi-upload'\"\n [auto]=\"false\"\n (onSelect)=\"onFileSelect($event, field.key)\"\n (onRemove)=\"onFileRemove(field.key)\"\n styleClass=\"w-full\"\n >\n </p-fileUpload>\n </div>\n }\n @case (\"file\") {\n <!-- FileUpload de PrimeNG para PDF, Excel, etc. -->\n <div class=\"file-upload-container\">\n <p-fileUpload\n [multiple]=\"false\"\n [accept]=\"field.accept || '.pdf,.xls,.xlsx'\"\n [maxFileSize]=\"field.maxFileSize || 10485760\"\n [showUploadButton]=\"false\"\n [showCancelButton]=\"false\"\n [chooseLabel]=\"'Seleccionar ' + field.label\"\n [chooseIcon]=\"'pi pi-upload'\"\n [auto]=\"false\"\n (onSelect)=\"onFileSelect($event, field.key)\"\n (onRemove)=\"onFileRemove(field.key)\"\n styleClass=\"w-full\"\n ></p-fileUpload>\n\n <!-- Mostrar nombre del archivo seleccionado -->\n @if (itemForm.get(field.key)?.value) {\n <small class=\"text-gray-500\">\n Archivo: {{ itemForm.get(field.key)?.value }}\n </small>\n }\n </div>\n }\n\n @default {\n <input\n pInputText\n [id]=\"field.key\"\n [formControlName]=\"field.key\"\n [placeholder]=\"'Enter ' + field.label\"\n />\n }\n }\n </div>\n }\n </form>\n </ng-template>\n\n <ng-template #footer>\n <p-button\n label=\"Cancel\"\n icon=\"pi pi-times\"\n [text]=\"true\"\n (click)=\"hideDialog()\"\n />\n <p-button\n label=\"Save\"\n icon=\"pi pi-check\"\n [text]=\"true\"\n (click)=\"saveItem()\"\n />\n </ng-template>\n</p-dialog>\n","import { DynamicField } from '@juliaosistem/core-dtos';\n\nexport class DynamicEntity {\n id?: string;\n name?: string;\n fields: DynamicField[] = [];\n \n constructor(data?: Partial<DynamicEntity>) {\n if (data) {\n Object.assign(this, data);\n }\n }\n\n // Agregar un campo\n addField(field: DynamicField): void {\n this.fields.push(field);\n }\n\n // Obtener campo por clave\n getField(key: string): DynamicField | undefined {\n return this.fields.find(field => field.key === key);\n }\n\n // Obtener valor de un campo\n getFieldValue<T = unknown>(key: string): T | undefined {\n const field = this.getField(key);\n return field?.value as T;\n }\n\n // Establecer valor de un campo\n setFieldValue(key: string, value: unknown): void {\n const field = this.getField(key);\n if (field) {\n field.value = value;\n }\n }\n\n // Obtener campos ordenados\n getOrderedFields(): DynamicField[] {\n return this.fields.sort((a, b) => (a.order || 0) - (b.order || 0));\n }\n\n // Convertir a objeto plano para APIs\n toPlainObject(): Record<string, unknown> {\n const obj: Record<string, unknown> = {};\n if (this.id) obj['id'] = this.id;\n if (this.name) obj['name'] = this.name;\n \n this.fields.forEach(field => {\n obj[field.key] = field.value;\n });\n \n return obj;\n }\n\n // Crear desde objeto plano\n static fromPlainObject(data: Record<string, unknown>, fieldDefinitions: Omit<DynamicField, 'value'>[]): DynamicEntity {\n const entity = new DynamicEntity({\n id: data['id'] as string,\n name: data['name'] as string\n });\n\n fieldDefinitions.forEach(def => {\n entity.addField({\n ...def,\n value: data[def.key]\n });\n });\n\n return entity;\n }\n\n // Método auxiliar simplificado para crear definiciones básicas\n static createBasicFieldDefinitions(): Omit<DynamicField, 'value'>[] {\n return [\n { key: 'name', type: 'text', label: 'Name', order: 1 },\n { key: 'category', type: 'text', label: 'Category', order: 2 },\n { key: 'price', type: 'number', label: 'Price', order: 3 },\n { key: 'image', type: 'img', label: 'Image', order: 4 },\n ];\n }\n}\nexport {\n DynamicField // Agregar un campo\n};\n\n","import { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-product-dialog1',\n imports: [CommonModule, FormsModule, PrimegModule],\n templateUrl: './product-dialog1.component.html',\n styleUrls: ['./product-dialog1.component.scss']\n})\nexport class ProductDialog1Component implements OnInit, OnChanges {\n \n @Input() productDialog: boolean = false;\n @Input() product: Record<string, unknown> = {};\n @Input() statuses: string[] = [];\n @Input() triggerSave?: EventEmitter<void>;\n \n @Output() productDialogChange = new EventEmitter<boolean>();\n @Output() onSave = new EventEmitter<Record<string, unknown>>();\n @Output() onCancel = new EventEmitter<void>();\n\n componente: ComponentesDTO = {\n id: 23,\n nombreComponente: 'lib-product-dialog1',\n version: '1.0'\n };\n\n submitted: boolean = false;\n originalProduct: Record<string, unknown> = {};\n\n ngOnInit() {\n // Crear una copia del producto para evitar modificar el original\n if (this.product) {\n this.originalProduct = { ...this.product };\n }\n\n // Suscribirse al triggerSave si está disponible\n if (this.triggerSave) {\n this.triggerSave.subscribe(() => {\n this.saveProduct();\n });\n }\n }\n\n ngOnChanges() {\n // Cuando se abre el dialog, crear una copia del producto\n if (this.productDialog && this.product) {\n this.originalProduct = { ...this.product };\n }\n\n // Suscribirse al triggerSave si cambia\n if (this.triggerSave) {\n this.triggerSave.subscribe(() => {\n this.saveProduct();\n });\n }\n }\n\n hideDialog() {\n this.productDialog = false;\n this.productDialogChange.emit(false);\n this.submitted = false;\n \n // Restaurar el producto original si se cancela\n if (this.originalProduct) {\n Object.assign(this.product, this.originalProduct);\n }\n \n this.onCancel.emit();\n }\n\n saveProduct() {\n this.submitted = true;\n \n if (this.product['name'] && typeof this.product['name'] === 'string' && this.product['name'].trim()) {\n // Emitir el producto modificado\n this.onSave.emit(this.product);\n \n // Cerrar el dialog\n this.productDialog = false;\n this.productDialogChange.emit(false);\n this.submitted = false;\n }\n }\n}\n","\n <div class=\"flex flex-col gap-6\">\n @if (product['image']) {\n <img\n [src]=\"product['image']\"\n [alt]=\"product['image']\"\n class=\"block m-auto pb-4\"\n />\n }\n <div>\n <label for=\"name\" class=\"block font-bold mb-3\">Name</label>\n <input\n type=\"text\"\n pInputText\n id=\"name\"\n [(ngModel)]=\"product['name']\"\n required\n autofocus\n fluid\n />\n @if (submitted && !product['name']) {\n <small class=\"text-red-500\">Name is required.</small>\n }\n </div>\n <div>\n <label for=\"description\" class=\"block font-bold mb-3\"\n >Description</label\n >\n <textarea\n id=\"description\"\n pTextarea\n [(ngModel)]=\"product['description']\"\n required\n rows=\"3\"\n cols=\"20\"\n fluid\n ></textarea>\n </div>\n\n <div>\n <label for=\"inventoryStatus\" class=\"block font-bold mb-3\"\n >Inventory Status</label\n >\n <p-select\n [(ngModel)]=\"product['inventoryStatus']\"\n inputId=\"inventoryStatus\"\n [options]=\"statuses\"\n placeholder=\"Select a Status\"\n fluid\n />\n </div>\n\n <div>\n <span class=\"block font-bold mb-4\">Category</span>\n <div class=\"grid grid-cols-12 gap-4\">\n <div class=\"flex items-center gap-2 col-span-6\">\n <p-radiobutton\n id=\"category1\"\n name=\"category\"\n value=\"Accessories\"\n [(ngModel)]=\"product['category']\"\n />\n <label for=\"category1\">Accessories</label>\n </div>\n <div class=\"flex items-center gap-2 col-span-6\">\n <p-radiobutton\n id=\"category2\"\n name=\"category\"\n value=\"Clothing\"\n [(ngModel)]=\"product['category']\"\n />\n <label for=\"category2\">Clothing</label>\n </div>\n <div class=\"flex items-center gap-2 col-span-6\">\n <p-radiobutton\n id=\"category3\"\n name=\"category\"\n value=\"Electronics\"\n [(ngModel)]=\"product['category']\"\n />\n <label for=\"category3\">Electronics</label>\n </div>\n <div class=\"flex items-center gap-2 col-span-6\">\n <p-radiobutton\n id=\"category4\"\n name=\"category\"\n value=\"Fitness\"\n [(ngModel)]=\"product['category']\"\n />\n <label for=\"category4\">Fitness</label>\n </div>\n </div>\n </div>\n\n <div class=\"grid grid-cols-12 gap-4\">\n <div class=\"col-span-6\">\n <label for=\"price\" class=\"block font-bold mb-3\">Price</label>\n <p-inputnumber\n id=\"price\"\n [(ngModel)]=\"product['price']\"\n mode=\"currency\"\n currency=\"USD\"\n locale=\"en-US\"\n fluid\n />\n </div>\n <div class=\"col-span-6\">\n <label for=\"quantity\" class=\"block font-bold mb-3\">Quantity</label>\n <p-inputnumber id=\"quantity\" [(ngModel)]=\"product['quantity']\" fluid />\n </div>\n </div>\n </div>","import { Component } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'app-notfound',\n standalone: true,\n imports: [RouterModule, ButtonModule],\n template: ` \n <div class=\"flex items-center justify-center min-h-screen overflow-hidden\">\n <div class=\"flex flex-col items-center justify-center\">\n <svg width=\"54\" height=\"40\" viewBox=\"0 0 54 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"mb-8 w-32 shrink-0\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M17.1637 19.2467C17.1566 19.4033 17.1529 19.561 17.1529 19.7194C17.1529 25.3503 21.7203 29.915 27.3546 29.915C32.9887 29.915 37.5561 25.3503 37.5561 19.7194C37.5561 19.5572 37.5524 19.3959 37.5449 19.2355C38.5617 19.0801 39.5759 18.9013 40.5867 18.6994L40.6926 18.6782C40.7191 19.0218 40.7326 19.369 40.7326 19.7194C40.7326 27.1036 34.743 33.0896 27.3546 33.0896C19.966 33.0896 13.9765 27.1036 13.9765 19.7194C13.9765 19.374 13.9896 19.0316 14.0154 18.6927L14.0486 18.6994C15.0837 18.9062 16.1223 19.0886 17.1637 19.2467ZM33.3284 11.4538C31.6493 10.2396 29.5855 9.52381 27.3546 9.52381C25.1195 9.52381 23.0524 10.2421 21.3717 11.4603C20.0078 11.3232 18.6475 11.1387 17.2933 10.907C19.7453 8.11308 23.3438 6.34921 27.3546 6.34921C31.36 6.34921 34.9543 8.10844 37.4061 10.896C36.0521 11.1292 34.692 11.3152 33.3284 11.4538ZM43.826 18.0518C43.881 18.6003 43.9091 19.1566 43.9091 19.7194C43.9091 28.8568 36.4973 36.2642 27.3546 36.2642C18.2117 36.2642 10.8 28.8568 10.8 19.7194C10.8 19.1615 10.8276 18.61 10.8816 18.0663L7.75383 17.4411C7.66775 18.1886 7.62354 18.9488 7.62354 19.7194C7.62354 30.6102 16.4574 39.4388 27.3546 39.4388C38.2517 39.4388 47.0855 30.6102 47.0855 19.7194C47.0855 18.9439 47.0407 18.1789 46.9536 17.4267L43.826 18.0518ZM44.2613 9.54743L40.9084 10.2176C37.9134 5.95821 32.9593 3.1746 27.3546 3.1746C21.7442 3.1746 16.7856 5.96385 13.7915 10.2305L10.4399 9.56057C13.892 3.83178 20.1756 0 27.3546 0C34.5281 0 40.8075 3.82591 44.2613 9.54743Z\"\n fill=\"var(--primary-color)\"\n />\n <mask id=\"mask0_1413_1551\" style=\"mask-type: alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"8\" width=\"54\" height=\"11\">\n <path d=\"M27 18.3652C10.5114 19.1944 0 8.88892 0 8.88892C0 8.88892 16.5176 14.5866 27 14.5866C37.4824 14.5866 54 8.88892 54 8.88892C54 8.88892 43.4886 17.5361 27 18.3652Z\" fill=\"var(--primary-color)\" />\n </mask>\n <g mask=\"url(#mask0_1413_1551)\">\n <path\n d=\"M-4.673e-05 8.88887L3.73084 -1.91434L-8.00806 17.0473L-4.673e-05 8.88887ZM27 18.3652L26.4253 6.95109L27 18.3652ZM54 8.88887L61.2673 17.7127L50.2691 -1.91434L54 8.88887ZM-4.673e-05 8.88887C-8.00806 17.0473 -8.00469 17.0505 -8.00132 17.0538C-8.00018 17.055 -7.99675 17.0583 -7.9944 17.0607C-7.98963 17.0653 -7.98474 17.0701 -7.97966 17.075C-7.96949 17.0849 -7.95863 17.0955 -7.94707 17.1066C-7.92401 17.129 -7.89809 17.1539 -7.86944 17.1812C-7.8122 17.236 -7.74377 17.3005 -7.66436 17.3743C-7.50567 17.5218 -7.30269 17.7063 -7.05645 17.9221C-6.56467 18.3532 -5.89662 18.9125 -5.06089 19.5534C-3.39603 20.83 -1.02575 22.4605 1.98012 24.0457C7.97874 27.2091 16.7723 30.3226 27.5746 29.7793L26.4253 6.95109C20.7391 7.23699 16.0326 5.61231 12.6534 3.83024C10.9703 2.94267 9.68222 2.04866 8.86091 1.41888C8.45356 1.10653 8.17155 0.867278 8.0241 0.738027C7.95072 0.673671 7.91178 0.637576 7.90841 0.634492C7.90682 0.63298 7.91419 0.639805 7.93071 0.65557C7.93897 0.663455 7.94952 0.673589 7.96235 0.686039C7.96883 0.692262 7.97582 0.699075 7.98338 0.706471C7.98719 0.710167 7.99113 0.714014 7.99526 0.718014C7.99729 0.720008 8.00047 0.723119 8.00148 0.724116C8.00466 0.727265 8.00796 0.730446 -4.673e-05 8.88887ZM27.5746 29.7793C37.6904 29.2706 45.9416 26.3684 51.6602 23.6054C54.5296 22.2191 56.8064 20.8465 58.4186 19.7784C59.2265 19.2431 59.873 18.7805 60.3494 18.4257C60.5878 18.2482 60.7841 18.0971 60.9374 17.977C61.014 17.9169 61.0799 17.8645 61.1349 17.8203C61.1624 17.7981 61.1872 17.7781 61.2093 17.7602C61.2203 17.7512 61.2307 17.7427 61.2403 17.7348C61.2452 17.7308 61.2499 17.727 61.2544 17.7233C61.2566 17.7215 61.2598 17.7188 61.261 17.7179C61.2642 17.7153 61.2673 17.7127 54 8.88887C46.7326 0.0650536 46.7357 0.0625219 46.7387 0.0600241C46.7397 0.0592345 46.7427 0.0567658 46.7446 0.0551857C46.7485 0.0520238 46.7521 0.0489887 46.7557 0.0460799C46.7628 0.0402623 46.7694 0.0349487 46.7753 0.0301318C46.7871 0.0204986 46.7966 0.0128495 46.8037 0.00712562C46.818 -0.00431848 46.8228 -0.00808311 46.8184 -0.00463784C46.8096 0.00228345 46.764 0.0378652 46.6828 0.0983779C46.5199 0.219675 46.2165 0.439161 45.7812 0.727519C44.9072 1.30663 43.5257 2.14765 41.7061 3.02677C38.0469 4.79468 32.7981 6.63058 26.4253 6.95109L27.5746 29.7793ZM54 8.88887C50.2691 -1.91433 50.27 -1.91467 50.271 -1.91498C50.2712 -1.91506 50.272 -1.91535 50.2724 -1.9155C50.2733 -1.91581 50.274 -1.91602 50.2743 -1.91616C50.2752 -1.91643 50.275 -1.91636 50.2738 -1.91595C50.2714 -1.91515 50.2652 -1.91302 50.2552 -1.9096C50.2351 -1.90276 50.1999 -1.89078 50.1503 -1.874C50.0509 -1.84043 49.8938 -1.78773 49.6844 -1.71863C49.2652 -1.58031 48.6387 -1.377 47.8481 -1.13035C46.2609 -0.635237 44.0427 0.0249875 41.5325 0.6823C36.215 2.07471 30.6736 3.15796 27 3.15796V26.0151C33.8087 26.0151 41.7672 24.2495 47.3292 22.7931C50.2586 22.026 52.825 21.2618 54.6625 20.6886C55.5842 20.4011 56.33 20.1593 56.8551 19.986C57.1178 19.8993 57.3258 19.8296 57.4735 19.7797C57.5474 19.7548 57.6062 19.7348 57.6493 19.72C57.6709 19.7127 57.6885 19.7066 57.7021 19.7019C57.7089 19.6996 57.7147 19.6976 57.7195 19.696C57.7219 19.6952 57.7241 19.6944 57.726 19.6938C57.7269 19.6934 57.7281 19.693 57.7286 19.6929C57.7298 19.6924 57.7309 19.692 54 8.88887ZM27 3.15796C23.3263 3.15796 17.7849 2.07471 12.4674 0.6823C9.95717 0.0249875 7.73904 -0.635237 6.15184 -1.13035C5.36118 -1.377 4.73467 -1.58031 4.3155 -1.71863C4.10609 -1.78773 3.94899 -1.84043 3.84961 -1.874C3.79994 -1.89078 3.76474 -1.90276 3.74471 -1.9096C3.73469 -1.91302 3.72848 -1.91515 3.72613 -1.91595C3.72496 -1.91636 3.72476 -1.91643 3.72554 -1.91616C3.72593 -1.91602 3.72657 -1.91581 3.72745 -1.9155C3.72789 -1.91535 3.72874 -1.91506 3.72896 -1.91498C3.72987 -1.91467 3.73084 -1.91433 -4.673e-05 8.88887C-3.73093 19.692 -3.72983 19.6924 -3.72868 19.6929C-3.72821 19.693 -3.72698 19.6934 -3.72603 19.6938C-3.72415 19.6944 -3.72201 19.6952 -3.71961 19.696C-3.71482 19.6976 -3.70901 19.6996 -3.7022 19.7019C-3.68858 19.7066 -3.67095 19.7127 -3.6494 19.72C-3.60629 19.7348 -3.54745 19.7548 -3.47359 19.7797C-3.32589 19.8296 -3.11788 19.8993 -2.85516 19.986C-2.33008 20.1593 -1.58425 20.4011 -0.662589 20.6886C1.17485 21.2618 3.74125 22.026 6.67073 22.7931C12.2327 24.2495 20.1913 26.0151 27 26.0151V3.15796Z\"\n fill=\"var(--primary-color)\"\n />\n </g>\n </svg>\n <div style=\"border-radius: 56px; padding: 0.3rem; background: linear-gradient(180deg, color-mix(in srgb, var(--primary-color), transparent 60%) 10%, var(--surface-ground) 30%)\">\n <div class=\"w-full bg-surface-0 dark:bg-surface-900 py-20 px-8 sm:px-20 flex flex-col items-center\" style=\"border-radius: 53px\">\n <span class=\"text-primary font-bold text-3xl\">404</span>\n <h1 class=\"text-surface-900 dark:text-surface-0 font-bold text-3xl lg:text-5xl mb-2\">Not Found</h1>\n <div class=\"text-surface-600 dark:text-surface-200 mb-8\">Requested resource is not available.</div>\n <a routerLink=\"/\" class=\"w-full flex items-center py-8 border-surface-300 dark:border-surface-500 border-b\">\n <span class=\"flex justify-center items-center border-2 border-primary text-primary rounded-border\" style=\"height: 3.5rem; width: 3.5rem\">\n <i class=\"pi pi-fw pi-table !text-2xl\"></i>\n </span>\n <span class=\"ml-6 flex flex-col\">\n <span class=\"text-surface-900 dark:text-surface-0 lg:text-xl font-medium mb-0 block\">Frequently Asked Questions</span>\n <span class=\"text-surface-600 dark:text-surface-200 lg:text-xl\">Ultricies mi quis hendrerit dolor.</span>\n </span>\n </a>\n <a routerLink=\"/\" class=\"w-full flex items-center py-8 border-surface-300 dark:border-surface-500 border-b\">\n <span class=\"flex justify-center items-center border-2 border-primary text-primary rounded-border\" style=\"height: 3.5rem; width: 3.5rem\">\n <i class=\"pi pi-fw pi-question-circle !text-2xl\"></i>\n </span>\n <span class=\"ml-6 flex flex-col\">\n <span class=\"text-surface-900 dark:text-surface-0 lg:text-xl font-medium mb-0\">Solution Center</span>\n <span class=\"text-surface-600 dark:text-surface-200 lg:text-xl\">Phasellus faucibus scelerisque eleifend.</span>\n </span>\n </a>\n <a routerLink=\"/\" class=\"w-full flex items-center mb-8 py-8 border-surface-300 dark:border-surface-500 border-b\">\n <span class=\"flex justify-center items-center border-2 border-primary text-primary rounded-border\" style=\"height: 3.5rem; width: 3.5rem\">\n <i class=\"pi pi-fw pi-unlock !text-2xl\"></i>\n </span>\n <span class=\"ml-6 flex flex-col\">\n <span class=\"text-surface-900 dark:text-surface-0 lg:text-xl font-medium mb-0\">Permission Manager</span>\n <span class=\"text-surface-600 dark:text-surface-200 lg:text-xl\">Accumsan in nisl nisi scelerisque</span>\n </span>\n </a>\n <p-button label=\"Go to Dashboard\" routerLink=\"/\" />\n </div>\n </div>\n </div>\n </div>`\n})\nexport class Notfound {\n componente: ComponentesDTO = {\n id: 22,\n nombreComponente: 'app-notfound',\n version: '1.0'\n };\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\n\n// MODELOS\nexport interface Inflatable {\n id: number;\n name: string;\n parts: number; // cantidad de partes para colorear\n basePrice: number;\n}\n\nexport interface Accessory {\n id: string;\n name: string;\n price: number;\n requiresText?: boolean;\n customText?: string;\n}\n\nexport interface Project {\n id: number;\n product: Inflatable;\n partColors: { [key: number]: string }; // índice de parte -> color\n accessories: Accessory[];\n totalPrice: number;\n}\n\n@Component({\n selector: 'lib-customizer',\n standalone: true,\n imports: [CommonModule, FormsModule, PrimegModule, ButtonModule, CheckboxModule],\n templateUrl: './customizer.component.html',\n styleUrls: ['./customizer.component.scss']\n})\nexport class CustomizerComponent {\n @Input() project!: Project;\n @Output() save = new EventEmitter<Project>();\n\n selectedColor!: string;\n selectedPart!: number;\n\n\n\n ///datos de pruebas\n COLORS = [\n { name: 'Rojo Fuego', hex: '#EF4444' },\n { name: 'Azul Cielo', hex: '#3B82F6' },\n { name: 'Verde Lima', hex: '#84CC16' },\n { name: 'Amarillo Sol', hex: '#EAB308' },\n { name: 'Morado Real', hex: '#A855F7' },\n { name: 'Naranja Vivo', hex: '#F97316' },\n { name: 'Rosa Chicle', hex: '#EC4899' },\n { name: 'Negro Clásico', hex: '#1F2937' },\n ];\n\n ///datos de pruebas\n\n ACCESSORIES: Accessory[] = [\n { id: 'malla_puerta', name: 'Malla en puerta', price: 50000 },\n { id: 'mallas_laterales', name: 'Mallas laterales', price: 120000 },\n { id: 'colchon_anterior', name: 'Colchón anterior', price: 350000 },\n { id: 'cremallera_adicional', name: 'Cremallera adicional', price: 45000 },\n { id: 'otro', name: 'Otros (Especificar)', price: 0, requiresText: true }\n ];\n\n selectPart(index: number) {\n this.selectedPart = index;\n this.selectedColor = this.project.partColors[index] || '';\n }\n\n applyColor() {\n if (this.selectedPart != null && this.selectedColor) {\n this.project.partColors[this.selectedPart] = this.selectedColor;\n this.updatePrice();\n }\n }\n\n toggleAccessory(acc: Accessory) {\n const exists = this.project.accessories.find(a => a.id === acc.id);\n if (exists) {\n this.project.accessories = this.project.accessories.filter(a => a.id !== acc.id);\n } else {\n this.project.accessories.push({ ...acc });\n }\n this.updatePrice();\n }\n\n isAccessorySelected(acc: Accessory) {\n return !!this.project.accessories.find(a => a.id === acc.id);\n }\n\n updatePrice() {\n const accTotal = this.project.accessories.reduce((sum, a) => sum + a.price, 0);\n this.project.totalPrice = this.project.product.basePrice + accTotal;\n }\n\n saveProject() {\n this.save.emit(this.project);\n }\n}\n","<div class=\"p-4 bg-white rounded-xl shadow-md space-y-4\">\n\n <!-- Selector de partes -->\n <div class=\"space-y-2\">\n <label class=\"font-semibold\">Selecciona la parte a colorear:</label>\n <div class=\"grid grid-cols-4 gap-2\">\n @for (part of [].constructor(project.product.parts); track $index; let i = $index) {\n <button type=\"button\"\n pButton\n label=\"Parte {{i + 1}}\"\n class=\"w-full\"\n [class.p-button-info]=\"selectedPart === i\"\n (click)=\"selectPart(i)\">\n </button>\n }\n </div>\n </div>\n\n <!-- Select de colores -->\n <div class=\"space-y-2\">\n <label class=\"font-semibold\">Elige un color:</label>\n <select [(ngModel)]=\"selectedColor\" class=\"w-full border rounded-lg p-2\">\n @for (c of COLORS; track c.hex) {\n <option [value]=\"c.hex\">{{ c.name }}</option>\n }\n </select>\n <button pButton type=\"button\" label=\"Aplicar color\" icon=\"pi pi-check\" class=\"mt-2\" (click)=\"applyColor()\"></button>\n </div>\n\n <!-- Accesorios (usando checkbox nativo) -->\n <div class=\"space-y-2\">\n <label class=\"font-semibold\">Accesorios:</label>\n @for (acc of ACCESSORIES; track acc.id) {\n <div class=\"flex items-center gap-2\">\n <input type=\"checkbox\"\n [checked]=\"isAccessorySelected(acc)\"\n (change)=\"toggleAccessory(acc)\"\n id=\"{{acc.id}}\">\n <label for=\"{{acc.id}}\">{{ acc.name }}</label>\n <span class=\"ml-2 text-sm text-gray-500\" *ngIf=\"acc.price > 0\">+{{acc.price | currency:'COP':'symbol':'1.0-0'}}</span>\n </div>\n }\n </div>\n\n <!-- Total -->\n <div class=\"p-3 bg-gray-100 rounded-lg flex justify-between items-center font-bold\">\n <span>Total</span>\n <span>{{ project.totalPrice | currency:'COP':'symbol':'1.0-0' }}</span>\n </div>\n\n <!-- Guardar -->\n <button pButton type=\"button\" label=\"Guardar Personalización\" class=\"w-full p-button-success\" (click)=\"saveProject()\"></button>\n</div>\n","\nimport {MenuItem,MenuConfig} from '@juliaosistem/core-dtos';\n\n\n// Interfaz para el servicio de menú\nexport interface MenuService {\n getMenuConfig(menuId: string): Promise<MenuConfig>;\n updateMenuConfig(menuId: string, config: MenuConfig): Promise<void>;\n getMenuItems(menuId: string): Promise<MenuItem[]>;\n addMenuItem(menuId: string, item: MenuItem): Promise<void>;\n removeMenuItem(menuId: string, itemId: string): Promise<void>;\n updateMenuItem(menuId: string, itemId: string, item: Partial<MenuItem>): Promise<void>;\n}\n\n// Clase para manejar la lógica del menú\nexport class MenuManager {\n private config: MenuConfig;\n\n constructor(config: MenuConfig) {\n this.config = config;\n }\n\n // Obtener elementos visibles\n getVisibleItems(): MenuItem[] {\n return this.filterVisibleItems(this.config.items);\n }\n\n // Filtrar elementos visibles recursivamente\n private filterVisibleItems(items: MenuItem[]): MenuItem[] {\n return items\n .filter(item => item.visible !== false)\n .map(item => ({\n ...item,\n items: item.items ? this.filterVisibleItems(item.items) : undefined\n }));\n }\n\n // Obtener elementos ordenados\n getOrderedItems(): MenuItem[] {\n return this.sortItems(this.getVisibleItems());\n }\n\n // Ordenar elementos recursivamente\n private sortItems(items: MenuItem[]): MenuItem[] {\n return items\n .sort((a, b) => (a.order || 0) - (b.order || 0))\n .map(item => ({\n ...item,\n items: item.items ? this.sortItems(item.items) : undefined\n }));\n }\n\n // Buscar elemento por ID\n findItemById(itemId: string): MenuItem | null {\n return this.findItemRecursive(this.config.items, itemId);\n }\n\n // Búsqueda recursiva de elementos\n private findItemRecursive(items: MenuItem[], itemId: string): MenuItem | null {\n for (const item of items) {\n if (item.id === itemId) {\n return item;\n }\n if (item.items) {\n const found = this.findItemRecursive(item.items, itemId);\n if (found) return found;\n }\n }\n return null;\n }\n\n // Verificar permisos de un elemento\n hasPermission(item: MenuItem, userPermissions: string[]): boolean {\n if (!item.permissions || item.permissions.length === 0) {\n return true;\n }\n return item.permissions.some(permission => userPermissions.includes(permission));\n }\n\n // Filtrar elementos por permisos\n filterByPermissions(userPermissions: string[]): MenuItem[] {\n return this.filterItemsByPermissions(this.config.items, userPermissions);\n }\n\n // Filtrado recursivo por permisos\n private filterItemsByPermissions(items: MenuItem[], userPermissions: string[]): MenuItem[] {\n return items\n .filter(item => this.hasPermission(item, userPermissions))\n .map(item => ({\n ...item,\n items: item.items ? this.filterItemsByPermissions(item.items, userPermissions) : undefined\n }));\n }\n} \n\nexport {\n MenuItem,\n MenuConfig,}","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MenuItem, MenuEvent } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'app-menu-item1',\n standalone: true,\n imports: [CommonModule, RouterModule],\n templateUrl: './menu-item1.component.html',\n styleUrls: ['./menu-item1.component.scss']\n})\nexport class MenuItem1Component implements OnInit {\n @Input() item!: MenuItem;\n @Input() showIcons: boolean = true;\n @Input() showBadges: boolean = true;\n @Input() collapsed: boolean = false;\n @Input() depth: number = 0;\n @Input() maxDepth: number = 3;\n @Input() activeItemId?: string;\n @Input() isItemExpanded: boolean = false;\n @Input() expandedItems?: Set<string>; // Para acceder al Set de items expandidos\n\n @Output() menuEvent = new EventEmitter<MenuEvent>();\n\n hasSubItems = false;\n\n ngOnInit() {\n this.hasSubItems = !!(this.item.items && this.item.items.length > 0);\n }\n\n getItemClasses(): string {\n const classes = ['menu-item'];\n \n if (this.item.disabled) {\n classes.push('menu-item-disabled');\n }\n \n if (this.activeItemId === this.item.id) {\n classes.push('menu-item-active');\n }\n \n if (this.item.class) {\n classes.push(this.item.class);\n }\n \n return classes.join(' ');\n }\n\n getLinkClasses(): string {\n const classes = [];\n \n if (this.item.disabled) {\n classes.push('menu-link-disabled');\n }\n \n return classes.join(' ');\n }\n\n getBadgeClasses(): string {\n const classes = ['badge'];\n \n if (this.item.badgeClass) {\n classes.push(this.item.badgeClass);\n } else {\n classes.push('badge-primary');\n }\n \n return classes.join(' ');\n }\n\n onItemClick(event: Event) {\n if (this.item.disabled) {\n return;\n }\n\n // Prevenir propagación del evento para evitar múltiples clicks\n event.stopPropagation();\n\n this.menuEvent.emit({\n type: 'click',\n item: this.item,\n event: event\n });\n }\n\n onItemHover(event: Event) {\n if (this.item.disabled) {\n return;\n }\n\n this.menuEvent.emit({\n type: 'hover',\n item: this.item,\n event: event\n });\n }\n\n onItemLeave(event: Event) {\n // Opcional: emitir evento de salida del hover\n if (this.item.disabled) {\n // eslint-disable-next-line no-console\n console.log('Elemento de menú deshabilitado', event);\n return;\n }\n }\n\n onSubMenuEvent(event: MenuEvent) {\n // Propagar eventos de submenús hacia arriba\n this.menuEvent.emit(event);\n }\n\n // Método para verificar si un subitem está expandido\n isSubItemExpanded(itemId: string): boolean {\n return this.expandedItems?.has(itemId) ?? false;\n }\n} ","@if (!item.separator) {\n <li \n [class]=\"getItemClasses()\"\n [style]=\"item.style\"\n (click)=\"onItemClick($event)\"\n (mouseenter)=\"onItemHover($event)\"\n (mouseleave)=\"onItemLeave($event)\"\n >\n <!-- Enlace interno -->\n @if (item.routerLink && !item.disabled) {\n <a \n [routerLink]=\"item.routerLink\"\n [class]=\"getLinkClasses()\"\n [attr.aria-label]=\"item.label\"\n class=\"menu-link\"\n >\n @if (showIcons && item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n <span class=\"menu-label\">{{ item.label }}</span>\n @if (showBadges && item.badge) {\n <span [class]=\"getBadgeClasses()\">\n {{ item.badge }}\n </span>\n }\n @if (hasSubItems) {\n <i class=\"pi pi-angle-right submenu-icon\"></i>\n }\n </a>\n }\n\n <!-- Enlace externo -->\n @if (item.url && !item.disabled) {\n <a \n [href]=\"item.url\"\n [target]=\"item.target || '_self'\"\n [class]=\"getLinkClasses()\"\n [attr.aria-label]=\"item.label\"\n class=\"menu-link\"\n >\n @if (showIcons && item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n <span class=\"menu-label\">{{ item.label }}</span>\n @if (showBadges && item.badge) {\n <span [class]=\"getBadgeClasses()\">\n {{ item.badge }}\n </span>\n }\n @if (hasSubItems) {\n <i class=\"pi pi-angle-right submenu-icon\"></i>\n }\n </a>\n }\n\n <!-- Elemento sin enlace -->\n @if (!item.routerLink && !item.url) {\n <span \n [class]=\"getLinkClasses()\"\n [attr.aria-label]=\"item.label\"\n class=\"menu-link\"\n >\n @if (showIcons && item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n <span class=\"menu-label\">{{ item.label }}</span>\n @if (showBadges && item.badge) {\n <span [class]=\"getBadgeClasses()\">\n {{ item.badge }}\n </span>\n }\n @if (hasSubItems) {\n <i class=\"pi pi-angle-right submenu-icon\"></i>\n }\n </span>\n }\n\n <!-- Submenús -->\n @if (hasSubItems && isItemExpanded) {\n <ul class=\"submenu\">\n @for (subItem of item.items; track $index) {\n <app-menu-item1\n [item]=\"subItem\"\n [showIcons]=\"showIcons\"\n [showBadges]=\"showBadges\"\n [collapsed]=\"collapsed\"\n [isItemExpanded]=\"isSubItemExpanded(subItem.id)\"\n [expandedItems]=\"expandedItems\"\n [depth]=\"depth + 1\"\n [maxDepth]=\"maxDepth\"\n [activeItemId]=\"activeItemId\"\n (menuEvent)=\"onSubMenuEvent($event)\"\n ></app-menu-item1>\n }\n </ul>\n }\n </li>\n}\n\n<!-- Separador -->\n@if (item.separator) {\n <li class=\"menu-separator\"></li>\n}","import { Injectable } from '@angular/core';\n// import { HttpClient } from '@angular/common/http';\n// import { Observable, of, throwError } from 'rxjs';\n// import { catchError, map, tap } from 'rxjs/operators';\nimport { MenuConfig, MenuItem, MenuService } from '../interfaces/menu.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicMenuService implements MenuService {\n // private readonly API_BASE_URL = '/api/menus';\n private menuCache = new Map<string, MenuConfig>();\n\n constructor(\n // private http: HttpClient\n ) {}\n\n // Obtener configuración del menú\n async getMenuConfig(menuId: string): Promise<MenuConfig> {\n // Verificar cache primero\n if (this.menuCache.has(menuId)) {\n return this.menuCache.get(menuId)!;\n }\n\n // Comentado: Petición HTTP real\n // try {\n // const config = await this.http.get<MenuConfig>(`${this.API_BASE_URL}/${menuId}`).toPromise();\n // if (config) {\n // this.menuCache.set(menuId, config);\n // return config;\n // }\n // throw new Error('Configuración de menú no encontrada');\n // } catch (error) {\n // // Si falla la API, usar configuración por defecto\n // return this.getDefaultMenuConfig(menuId);\n // }\n\n // Data estática para desarrollo\n const config = this.getDefaultMenuConfig(menuId);\n this.menuCache.set(menuId, config);\n return config;\n }\n\n // Actualizar configuración del menú\n async updateMenuConfig(menuId: string, config: MenuConfig): Promise<void> {\n // Comentado: Petición HTTP real\n // try {\n // await this.http.put(`${this.API_BASE_URL}/${menuId}`, config).toPromise();\n // this.menuCache.set(menuId, config);\n // } catch (error) {\n // throw new Error('Error al actualizar configuración del menú');\n // }\n\n // Data estática para desarrollo\n this.menuCache.set(menuId, config);\n console.log(`Configuración actualizada para menú: ${menuId}`, config);\n }\n\n // Obtener elementos del menú\n async getMenuItems(menuId: string): Promise<MenuItem[]> {\n const config = await this.getMenuConfig(menuId);\n return config.items;\n }\n\n // Agregar elemento al menú\n async addMenuItem(menuId: string, item: MenuItem): Promise<void> {\n // Comentado: Petición HTTP real\n // try {\n // const config = await this.getMenuConfig(menuId);\n // config.items.push(item);\n // await this.updateMenuConfig(menuId, config);\n // } catch (error) {\n // throw new Error('Error al agregar elemento del menú');\n // }\n\n // Data estática para desarrollo\n try {\n const config = await this.getMenuConfig(menuId);\n config.items.push(item);\n await this.updateMenuConfig(menuId, config);\n console.log(`Elemento agregado al menú: ${menuId}`, item);\n } catch (error) {\n console.error(error);\n throw new Error('Error al agregar elemento del menú');\n }\n }\n\n // Eliminar elemento del menú\n async removeMenuItem(menuId: string, itemId: string): Promise<void> {\n // Comentado: Petición HTTP real\n // try {\n // const config = await this.getMenuConfig(menuId);\n // config.items = this.removeItemRecursive(config.items, itemId);\n // await this.updateMenuConfig(menuId, config);\n // } catch (error) {\n // throw new Error('Error al eliminar elemento del menú');\n // }\n\n // Data estática para desarrollo\n try {\n const config = await this.getMenuConfig(menuId);\n config.items = this.removeItemRecursive(config.items, itemId);\n await this.updateMenuConfig(menuId, config);\n console.log(`Elemento eliminado del menú: ${menuId}, itemId: ${itemId}`);\n } catch (error) {\n console.error(error);\n throw new Error('Error al eliminar elemento del menú');\n }\n }\n\n // Actualizar elemento del menú\n async updateMenuItem(menuId: string, itemId: string, updates: Partial<MenuItem>): Promise<void> {\n // Comentado: Petición HTTP real\n // try {\n // const config = await this.getMenuConfig(menuId);\n // this.updateItemRecursive(config.items, itemId, updates);\n // await this.updateMenuConfig(menuId, config);\n // } catch (error) {\n // throw new Error('Error al actualizar elemento del menú');\n // }\n\n // Data estática para desarrollo\n try {\n const config = await this.getMenuConfig(menuId);\n this.updateItemRecursive(config.items, itemId, updates);\n await this.updateMenuConfig(menuId, config);\n console.log(`Elemento actualizado en menú: ${menuId}, itemId: ${itemId}`, updates);\n } catch (error) {\n console.error(error);\n throw new Error('Error al actualizar elemento del menú');\n }\n }\n\n // Limpiar cache\n clearCache(menuId?: string): void {\n if (menuId) {\n this.menuCache.delete(menuId);\n } else {\n this.menuCache.clear();\n }\n console.log('Cache limpiado', menuId ? `para menú: ${menuId}` : 'completamente');\n }\n\n // Obtener configuración por defecto\n // eslint-disable-next-line max-lines-per-function\n private getDefaultMenuConfig(menuId: string): MenuConfig {\n const defaultConfigs: Record<string, MenuConfig> = {\n 'main-menu': {\n id: 'main-menu',\n name: 'Menú Principal',\n items: [\n {\n id: 'home',\n label: 'Inicio',\n icon: 'pi pi-home',\n routerLink: ['/'],\n type: 'item',\n order: 1\n },\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: 'pi pi-chart-bar',\n routerLink: ['/dashboard'],\n type: 'item',\n order: 2\n },\n {\n id: 'separator-1',\n label: '',\n separator: true,\n type: 'separator',\n order: 3\n },\n {\n id: 'administration',\n label: 'Administración',\n icon: 'pi pi-cog',\n type: 'group',\n order: 4,\n items: [\n {\n id: 'users',\n label: 'Usuarios',\n icon: 'pi pi-users',\n routerLink: ['/admin/users'],\n type: 'item',\n order: 1,\n permissions: ['admin.users.read']\n },\n {\n id: 'roles',\n label: 'Roles',\n icon: 'pi pi-shield',\n routerLink: ['/admin/roles'],\n type: 'item',\n order: 2,\n permissions: ['admin.roles.read']\n }\n ]\n },\n {\n id: 'reports',\n label: 'Reportes',\n icon: 'pi pi-file',\n type: 'group',\n order: 5,\n items: [\n {\n id: 'sales-report',\n label: 'Reporte de Ventas',\n icon: 'pi pi-chart-line',\n routerLink: ['/reports/sales'],\n type: 'item',\n order: 1,\n permissions: ['reports.sales.read']\n },\n {\n id: 'inventory-report',\n label: 'Reporte de Inventario',\n icon: 'pi pi-box',\n routerLink: ['/reports/inventory'],\n type: 'item',\n order: 2,\n permissions: ['reports.inventory.read']\n }\n ]\n }\n ],\n theme: 'light',\n orientation: 'vertical',\n collapsible: true,\n showIcons: true,\n showBadges: true,\n maxDepth: 3\n },\n 'sidebar-menu': {\n id: 'sidebar-menu',\n name: 'Menú Lateral',\n items: [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: 'pi pi-home',\n routerLink: ['/dashboard'],\n type: 'item',\n order: 1\n },\n {\n id: 'profile',\n label: 'Perfil',\n icon: 'pi pi-user',\n routerLink: ['/profile'],\n type: 'item',\n order: 2\n },\n {\n id: 'settings',\n label: 'Configuración',\n icon: 'pi pi-cog',\n routerLink: ['/settings'],\n type: 'item',\n order: 3\n }\n ],\n theme: 'dark',\n orientation: 'vertical',\n collapsible: false,\n showIcons: true,\n showBadges: false,\n maxDepth: 2\n },\n 'dashboard3-menu': {\n id: 'dashboard3-menu',\n name: 'Dashboard 3 Menu',\n items: [\n {\n id: 'home',\n label: 'Home',\n icon: 'pi pi-fw pi-home',\n type: 'group',\n order: 1,\n items: [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: 'pi pi-fw pi-home',\n routerLink: ['/'],\n type: 'item',\n order: 1\n },\n {\n id: 'crud',\n label: 'Crud',\n icon: 'pi pi-fw pi-pencil',\n routerLink: ['/pages/crud'],\n type: 'item',\n order: 2\n }\n ]\n },\n {\n id: 'pages',\n label: 'Pages',\n icon: 'pi pi-fw pi-briefcase',\n type: 'group',\n order: 2,\n items: [\n {\n id: 'menu-demo',\n label: 'Menu Demo',\n icon: 'pi pi-fw pi-bars',\n routerLink: ['/menu-demo'],\n type: 'item',\n order: 1\n },\n {\n id: 'dashboard-demo',\n label: 'Dashboard Demo',\n icon: 'pi pi-fw pi-chart-line',\n routerLink: ['/dashboard-demo'],\n type: 'item',\n order: 2\n }\n ]\n }\n ],\n theme: 'light',\n orientation: 'vertical',\n collapsible: true,\n showIcons: true,\n showBadges: true,\n maxDepth: 3\n }\n };\n\n return defaultConfigs[menuId] || {\n id: menuId,\n name: 'Menú',\n items: [],\n theme: 'light',\n orientation: 'vertical',\n collapsible: false,\n showIcons: true,\n showBadges: true,\n maxDepth: 3\n };\n }\n\n // Eliminar elemento recursivamente\n private removeItemRecursive(items: MenuItem[], itemId: string): MenuItem[] {\n return items.filter(item => {\n if (item.id === itemId) {\n return false;\n }\n if (item.items) {\n item.items = this.removeItemRecursive(item.items, itemId);\n }\n return true;\n });\n }\n\n // Actualizar elemento recursivamente\n private updateItemRecursive(items: MenuItem[], itemId: string, updates: Partial<MenuItem>): boolean {\n for (let i = 0; i < items.length; i++) {\n if (items[i].id === itemId) {\n items[i] = { ...items[i], ...updates };\n return true;\n }\n if (items[i].items && this.updateItemRecursive(items[i].items!, itemId, updates)) {\n return true;\n }\n }\n return false;\n }\n\n // Métodos adicionales para gestión avanzada\n async duplicateMenu(sourceMenuId: string, newMenuId: string, newName: string): Promise<MenuConfig> {\n const sourceConfig = await this.getMenuConfig(sourceMenuId);\n const newConfig: MenuConfig = {\n ...sourceConfig,\n id: newMenuId,\n name: newName\n };\n \n await this.updateMenuConfig(newMenuId, newConfig);\n console.log(`Menú duplicado: ${sourceMenuId} -> ${newMenuId}`);\n return newConfig;\n }\n\n async exportMenuConfig(menuId: string): Promise<string> {\n const config = await this.getMenuConfig(menuId);\n const jsonConfig = JSON.stringify(config, null, 2);\n console.log(`Configuración exportada para menú: ${menuId}`);\n return jsonConfig;\n }\n\n async importMenuConfig(menuId: string, configJson: string): Promise<void> {\n // Comentado: Validación HTTP real\n // try {\n // const config = JSON.parse(configJson) as MenuConfig;\n // config.id = menuId;\n // await this.updateMenuConfig(menuId, config);\n // } catch (error) {\n // throw new Error('Error al importar configuración del menú');\n // }\n\n // Data estática para desarrollo\n try {\n const config = JSON.parse(configJson) as MenuConfig;\n config.id = menuId;\n await this.updateMenuConfig(menuId, config);\n console.log(`Configuración importada para menú: ${menuId}`);\n } catch (error) {\n console.error(error);\n throw new Error('Error al importar configuración del menú');\n }\n }\n\n // Métodos para gestión de permisos\n async getMenuItemsByPermissions(menuId: string, permissions: string[]): Promise<MenuItem[]> {\n const config = await this.getMenuConfig(menuId);\n return this.filterItemsByPermissions(config.items, permissions);\n }\n\n private filterItemsByPermissions(items: MenuItem[], permissions: string[]): MenuItem[] {\n return items\n .filter(item => {\n if (!item.permissions || item.permissions.length === 0) {\n return true;\n }\n return item.permissions.some(permission => permissions.includes(permission));\n })\n .map(item => ({\n ...item,\n items: item.items ? this.filterItemsByPermissions(item.items, permissions) : undefined\n }));\n }\n} ","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MenuItem1Component } from '../../../../shared/atoms/menu-item1/menu-item1.component';\nimport {MenuManager } from '../../../../shared/interfaces/menu.interface';\nimport { DynamicMenuService } from '../../../../shared/services/dynamic-menu.service';\nimport { MenuConfig, MenuItem,MenuEvent } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'app-dynamic-menu1',\n standalone: true,\n imports: [CommonModule, MenuItem1Component],\n templateUrl: './dynamic-menu1.component.html',\n styleUrls: ['./dynamic-menu1.component.scss']\n})\nexport class DynamicMenu1Component implements OnInit {\n @Input() menuId!: string;\n @Input() userPermissions: string[] = [];\n @Input() menuConfig?: MenuConfig;\n @Input() autoLoad: boolean = true;\n\n @Output() menuEvent = new EventEmitter<MenuEvent>();\n @Output() menuLoaded = new EventEmitter<MenuConfig>();\n @Output() menuError = new EventEmitter<string>();\n\n config?: MenuConfig;\n menuItems: MenuItem[] = [];\n collapsed = false;\n loading = false;\n error?: string;\n activeItemId?: string;\n expandedItems: Set<string> = new Set(); // Rastrear elementos expandidos\n\n private menuManager?: MenuManager;\n private subscription?: unknown;\n\n constructor(private menuService: DynamicMenuService) {}\n\n ngOnInit() {\n if (this.menuConfig) {\n this.setConfig(this.menuConfig);\n } else if (this.autoLoad && this.menuId) {\n this.loadMenu();\n }\n }\n\n\n async loadMenu() {\n if (!this.menuId) {\n this.error = 'ID de menú no proporcionado';\n this.menuError.emit(this.error);\n return;\n }\n\n this.loading = true;\n this.error = undefined;\n\n try {\n this.config = await this.menuService.getMenuConfig(this.menuId);\n this.setConfig(this.config);\n this.menuLoaded.emit(this.config);\n } catch (err) {\n this.error = err instanceof Error ? err.message : 'Error al cargar el menú';\n this.menuError.emit(this.error);\n } finally {\n this.loading = false;\n }\n }\n\n private setConfig(config: MenuConfig) {\n this.config = config;\n this.collapsed = config.collapsed ?? false;\n this.menuManager = new MenuManager(config);\n this.updateMenuItems();\n }\n\n private updateMenuItems() {\n if (!this.menuManager) return;\n\n let items = this.menuManager.getOrderedItems();\n\n // Filtrar por permisos si se proporcionan\n if (this.userPermissions.length > 0) {\n items = this.menuManager.filterByPermissions(this.userPermissions);\n }\n\n this.menuItems = items;\n }\n\n getMenuClasses(): string {\n const classes = ['dynamic-menu'];\n \n if (this.config?.orientation === 'horizontal') {\n classes.push('menu-horizontal');\n }\n \n if (this.config?.theme === 'dark') {\n classes.push('theme-dark');\n }\n \n return classes.join(' ');\n }\n\n toggleMenu() {\n if (this.config?.collapsible) {\n this.collapsed = !this.collapsed;\n console.log('Menu Event toggleMenu:',this.collapsed);\n this.menuEvent.emit({\n type: this.collapsed ? 'collapse' : 'expand',\n item: { id: 'menu-toggle', label: 'Menu Toggle', type: 'item' }\n });\n }\n }\n\n onMenuItemEvent(event: MenuEvent) {\n // Manejar eventos específicos del menú\n console.log('Menu Event: onMenuItemEvent', event);\n \n switch (event.type) {\n case 'click':\n this.activeItemId = event.item.id;\n \n // Si el item tiene submenús, toggle su estado expandido\n if (this.hasSubItems(event.item)) {\n this.toggleItemExpansion(event.item.id);\n }\n break;\n case 'expand':\n this.expandedItems.add(event.item.id);\n break;\n case 'collapse':\n this.expandedItems.delete(event.item.id);\n break;\n }\n\n // Propagar evento hacia arriba\n this.menuEvent.emit(event);\n }\n\n // Verificar si un item tiene submenús\n private hasSubItems(item: MenuItem): boolean {\n return !!(item.items && item.items.length > 0);\n }\n\n // Toggle expansión de un item\n private toggleItemExpansion(itemId: string) {\n if (this.expandedItems.has(itemId)) {\n this.expandedItems.delete(itemId);\n // También colapsar todos los subitems de este item\n this.collapseAllSubItems(itemId);\n this.menuEvent.emit({\n type: 'collapse',\n item: { id: itemId, label: '', type: 'item' }\n });\n } else {\n this.expandedItems.add(itemId);\n this.menuEvent.emit({\n type: 'expand',\n item: { id: itemId, label: '', type: 'item' }\n });\n }\n }\n\n // Colapsar todos los subitems de un item específico\n private collapseAllSubItems(parentId: string) {\n const parentItem = this.findItemById(parentId, this.menuItems);\n if (parentItem && parentItem.items) {\n parentItem.items.forEach((subItem: MenuItem) => {\n this.expandedItems.delete(subItem.id);\n if (subItem.items && subItem.items.length > 0) {\n this.collapseAllSubItems(subItem.id);\n }\n });\n }\n }\n\n // Buscar un item por ID recursivamente\n private findItemById(id: string, items: MenuItem[]): MenuItem | null {\n for (const item of items) {\n if (item.id === id) {\n return item;\n }\n if (item.items && item.items.length > 0) {\n const found = this.findItemById(id, item.items);\n if (found) return found;\n }\n }\n return null;\n }\n\n // Método para verificar si un item está expandido (usar en template)\n isItemExpanded(itemId: string): boolean {\n return this.expandedItems.has(itemId);\n }\n\n // Métodos públicos para manipular el menú\n async addMenuItem(item: MenuItem) {\n if (!this.menuId) return;\n \n try {\n await this.menuService.addMenuItem(this.menuId, item);\n await this.loadMenu(); // Recargar menú\n } catch (err) {\n this.error = 'Error al agregar elemento del menú';\n this.menuError.emit(this.error + err);\n }\n }\n\n async removeMenuItem(itemId: string) {\n if (!this.menuId) return;\n \n try {\n await this.menuService.removeMenuItem(this.menuId, itemId);\n await this.loadMenu(); // Recargar menú\n } catch (err) {\n this.error = 'Error al eliminar elemento del menú';\n this.menuError.emit(this.error + err);\n }\n }\n\n async updateMenuItem(itemId: string, updates: Partial<MenuItem>) {\n if (!this.menuId) return;\n \n try {\n await this.menuService.updateMenuItem(this.menuId, itemId, updates);\n await this.loadMenu(); // Recargar menú\n } catch (err) {\n this.error = 'Error al actualizar elemento del menú';\n this.menuError.emit(this.error + err);\n }\n }\n\n setActiveItem(itemId: string) {\n this.activeItemId = itemId;\n }\n\n refreshMenu() {\n this.loadMenu();\n }\n} ","<nav \n [class]=\"getMenuClasses()\"\n [attr.aria-label]=\"config?.name || 'Menú de navegación'\"\n>\n <!-- Botón de colapsar/expandir -->\n @if (config?.collapsible) {\n <button \n class=\"menu-toggle-btn\"\n (click)=\"toggleMenu()\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-label]=\"collapsed ? 'Expandir menú' : 'Colapsar menú'\"\n >\n <i class=\"pi\" [class]=\"collapsed ? 'pi-bars' : 'pi-times'\"></i>\n </button>\n }\n\n <!-- Contenedor del menú -->\n <div \n class=\"menu-container\"\n [class.menu-collapsed]=\"collapsed\"\n >\n <!-- Lista de elementos del menú -->\n <ul class=\"menu-list\">\n @for (item of menuItems; track $index) {\n <app-menu-item1\n [item]=\"item\"\n [showIcons]=\"config?.showIcons ?? true\"\n [showBadges]=\"config?.showBadges ?? true\"\n [collapsed]=\"collapsed\"\n [isItemExpanded]=\"isItemExpanded(item.id)\"\n [expandedItems]=\"expandedItems\"\n [depth]=\"0\"\n [maxDepth]=\"config?.maxDepth ?? 3\"\n [activeItemId]=\"activeItemId\"\n (menuEvent)=\"onMenuItemEvent($event)\"\n ></app-menu-item1>\n }\n </ul>\n\n <!-- Indicador de carga -->\n @if (loading) {\n <div class=\"menu-loading\">\n <i class=\"pi pi-spin pi-spinner\"></i>\n <span>Cargando menú...</span>\n </div>\n }\n\n <!-- Mensaje de error -->\n @if (error) {\n <div class=\"menu-error\">\n <i class=\"pi pi-exclamation-triangle\"></i>\n <span>{{ error }}</span>\n </div>\n }\n </div>\n</nav>","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MenuConfig, MenuItem, MenuEvent } from '@juliaosistem/core-dtos';\nimport { DynamicMenuService } from '../../../../shared/services/dynamic-menu.service';\nimport { DynamicMenu1Component } from '../../atoms/dynamic-menu1/dynamic-menu1.component';\n\n@Component({\n selector: 'lib-menu',\n standalone: true,\n imports: [CommonModule, FormsModule,DynamicMenu1Component],\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.scss'\n})\nexport class MenuComponent implements OnInit {\n // ✅ INPUTS PARA CONFIGURACIÓN\n @Input() menuId: string = 'dashboard3-menu';\n @Input() menuConfig?: MenuConfig;\n @Input() userPermissions: string[] = ['admin.users.read', 'admin.settings.read', 'pages.crud.read'];\n @Input() showControls: boolean = true;\n @Input() showInfo: boolean = true;\n @Input() showEventLog: boolean = true;\n @Input() showConfig: boolean = true;\n @Input() initialConfig?: MenuConfig;\n\n // ✅ OUTPUTS PARA COMUNICACIÓN CON EL PADRE\n @Output() menuEvent = new EventEmitter<MenuEvent>();\n @Output() menuLoaded = new EventEmitter<MenuConfig>();\n @Output() menuError = new EventEmitter<string>();\n @Output() menuItemAdded = new EventEmitter<MenuItem>();\n @Output() menuRefreshed = new EventEmitter<void>();\n @Output() configApplied = new EventEmitter<MenuConfig>();\n\n // ✅ Propiedades internas\n menuItemCount = 0;\n menuStatus = 'Cargando...';\n eventLog: Array<{timestamp: Date, type: string, item: string}> = [];\n\n \n\n\n constructor(private menuService: DynamicMenuService) {}\n\n ngOnInit() {\n // Usar configuración inicial si se proporciona\n if (this.initialConfig) {\n this.menuConfig = { ...this.initialConfig };\n }\n \n if (this.menuConfig) {\n this.menuId = this.menuConfig.id || 'dashboard3-menu';\n }\n \n // Inicializar el menú dinámico\n this.initializeDynamicMenu();\n }\n\n private initializeDynamicMenu() {\n // Configurar el menú dinámico para el dashboard3\n this.menuService.updateMenuConfig(this.menuId, this.menuConfig!);\n }\n\n async loadMenuInfo() {\n try {\n const config = await this.menuService.getMenuConfig(this.menuId);\n this.menuItemCount = this.countMenuItems(config.items);\n this.menuStatus = 'Cargado correctamente';\n this.menuLoaded.emit(config);\n } catch (error) {\n this.menuStatus = 'Error al cargar';\n this.menuError.emit('Error al cargar el menú' + error);\n }\n }\n\n countMenuItems(items: MenuItem[]): number {\n let count = items.length;\n items.forEach(item => {\n if (item.items) {\n count += this.countMenuItems(item.items);\n }\n });\n return count;\n }\n\n onMenuChange(event: Event) {\n const select = event.target as HTMLSelectElement;\n this.menuId = select.value;\n this.loadMenuInfo();\n }\n\n // onThemeChange(event: Event) {\n // const select = event.target as HTMLSelectElement;\n // this.menuConfig.theme = select.value as 'light' | 'dark';\n // }\n\n // onOrientationChange(event: Event) {\n // // const select = event.target as HTMLSelectElement;\n // // this.menuConfig.orientation = select.value as 'horizontal' | 'vertical';\n // }\n\n onMenuEvent(event: MenuEvent) {\n this.eventLog.unshift({\n timestamp: new Date(),\n type: event.type,\n item: event.item.label\n });\n\n // Limitar el log a 50 eventos\n if (this.eventLog.length > 50) {\n this.eventLog = this.eventLog.slice(0, 50);\n }\n\n // Propagar evento al componente padre\n this.menuEvent.emit(event);\n }\n\n onMenuLoaded(config: MenuConfig) {\n this.menuItemCount = this.countMenuItems(config.items);\n this.menuStatus = 'Cargado correctamente';\n this.menuLoaded.emit(config);\n }\n\n onMenuError(error: string) {\n this.menuStatus = `Error: ${error}`;\n this.menuError.emit(error);\n }\n\n async addMenuItem() {\n const newItem: MenuItem = {\n id: `item-${Date.now()}`,\n label: `Nuevo Elemento ${this.menuItemCount + 1}`,\n icon: 'pi pi-plus',\n routerLink: ['/new-item'],\n type: 'item',\n order: this.menuItemCount + 1\n };\n\n try {\n await this.menuService.addMenuItem(this.menuId, newItem);\n this.loadMenuInfo();\n this.menuItemAdded.emit(newItem);\n } catch (error) {\n //eslint-disable-next-line no-console\n console.error('Error al agregar elemento:', error);\n this.menuError.emit('Error al agregar elemento del menú');\n }\n }\n\n refreshMenu() {\n this.menuService.clearCache(this.menuId);\n this.loadMenuInfo();\n this.menuRefreshed.emit();\n }\n\n applyCustomConfig() {\n //this.menuConfig.id = this.menuId;\n // this.menuService.updateMenuConfig(this.menuId, this.menuConfig);\n this.loadMenuInfo();\n this.configApplied.emit(this.menuConfig);\n }\n\n // ✅ Métodos públicos para manipulación externa\n public setMenuId(menuId: string) {\n this.menuId = menuId;\n this.loadMenuInfo();\n }\n\n public setUserPermissions(permissions: string[]) {\n this.userPermissions = permissions;\n }\n\n public setMenuConfig(config: MenuConfig) {\n this.menuConfig = { ...config };\n }\n\n public clearEventLog() {\n this.eventLog = [];\n }\n\n // public getCurrentConfig(): MenuConfig {\n // return { ...this.menuConfig };\n // }\n\n public getEventLog() {\n return [...this.eventLog];\n }\n\n \n} ","<div class=\"layout-sidebar\">\n <div class=\"dashboard-menu-container\">\n <div class=\"menu-container\">\n <!-- Controles de configuración -->\n <!-- <div class=\"menu-controls\" *ngIf=\"showControls\">\n <div class=\"control-group\">\n <label for=\"menuSelect\">Seleccionar Menú:</label>\n <select id=\"menuSelect\" (change)=\"onMenuChange($event)\">\n <option value=\"main-menu\">Menú Principal</option>\n <option value=\"sidebar-menu\">Menú Lateral</option>\n <option value=\"custom-menu\">Menú Personalizado</option>\n </select>\n </div>\n\n <div class=\"control-group\">\n <label for=\"themeSelect\">Tema:</label>\n <select id=\"themeSelect\" (change)=\"onThemeChange($event)\">\n <option value=\"light\">Claro</option>\n <option value=\"dark\">Oscuro</option>\n </select>\n </div>\n\n <div class=\"control-group\">\n <label for=\"orientationSelect\">Orientación:</label>\n <select id=\"orientationSelect\" (change)=\"onOrientationChange($event)\">\n <option value=\"vertical\">Vertical</option>\n <option value=\"horizontal\">Horizontal</option>\n </select>\n </div>\n\n <button (click)=\"addMenuItem()\" class=\"btn btn-primary\">\n Agregar Elemento\n </button>\n\n <button (click)=\"refreshMenu()\" class=\"btn btn-secondary\">\n Recargar Menú\n </button>\n </div> -->\n\n <!-- Menú dinámico -->\n <div class=\"menu-wrapper\">\n <app-dynamic-menu1 [menuId]=\"menuId\" [userPermissions]=\"userPermissions\" [menuConfig]=\"menuConfig\"\n (menuEvent)=\"onMenuEvent($event)\" (menuLoaded)=\"onMenuLoaded($event)\"\n (menuError)=\"onMenuError($event)\"></app-dynamic-menu1>\n </div>\n\n\n <!-- <div class=\"menu-info\" *ngIf=\"showInfo\">\n <h3>Información del Menú</h3>\n <div class=\"info-content\">\n <p><strong>ID del Menú:</strong> {{ menuId }}</p>\n <p><strong>Elementos:</strong> {{ menuItemCount }}</p>\n <p><strong>Estado:</strong> {{ menuStatus }}</p>\n </div> -->\n\n <!-- <div class=\"event-log\" *ngIf=\"showEventLog\">\n <h4>Eventos del Menú</h4>\n <div class=\"log-container\">\n <div *ngFor=\"let event of eventLog\" class=\"log-entry\">\n <span class=\"log-time\">{{ event.timestamp | date:'HH:mm:ss' }}</span>\n <span class=\"log-type\">{{ event.type }}</span>\n <span class=\"log-item\">{{ event.item }}</span>\n </div>\n </div>\n </div>\n </div> -->\n\n <!-- Configuración personalizada -->\n <!-- <div class=\"config-section\" *ngIf=\"showConfig\">\n <h3>Configuración Personalizada</h3>\n <div class=\"config-form\">\n <div class=\"form-group\">\n <label for=\"menuName\">Nombre del Menú:</label>\n <input \n id=\"menuName\" \n type=\"text\" \n [(ngModel)]=\"menuConfig.name\"\n placeholder=\"Nombre del menú\"\n >\n </div>\n\n <div class=\"form-group\">\n <label>\n <input type=\"checkbox\" [(ngModel)]=\"menuConfig.showIcons\">\n Mostrar Iconos\n </label>\n </div>\n\n <div class=\"form-group\">\n <label>\n <input type=\"checkbox\" [(ngModel)]=\"menuConfig.showBadges\">\n Mostrar Badges\n </label>\n </div>\n\n <div class=\"form-group\">\n <label>\n <input type=\"checkbox\" [(ngModel)]=\"menuConfig.collapsible\">\n Colapsable\n </label>\n </div>\n\n <button (click)=\"applyCustomConfig()\" class=\"btn btn-success\">\n Aplicar Configuración\n </button>\n </div>\n </div> -->\n </div>\n </div>\n</div>","import { Injectable, effect, signal, computed } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface layoutConfig {\n preset?: string;\n primary?: string;\n surface?: string | undefined | null;\n darkTheme?: boolean;\n menuMode?: string;\n}\n\ninterface LayoutState {\n staticMenuDesktopInactive?: boolean;\n overlayMenuActive?: boolean;\n configSidebarVisible?: boolean;\n staticMenuMobileActive?: boolean;\n menuHoverActive?: boolean;\n}\n\ninterface MenuChangeEvent {\n key: string;\n routeEvent?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutService {\n _config: layoutConfig = {\n preset: 'Aura',\n primary: 'emerald',\n surface: null,\n darkTheme: false,\n menuMode: 'static'\n };\n\n _state: LayoutState = {\n staticMenuDesktopInactive: false,\n overlayMenuActive: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n };\n\n layoutConfig = signal<layoutConfig>(this._config);\n\n layoutState = signal<LayoutState>(this._state);\n\n private configUpdate = new Subject<layoutConfig>();\n\n private overlayOpen = new Subject<unknown>();\n\n private menuSource = new Subject<MenuChangeEvent>();\n\n private resetSource = new Subject();\n\n menuSource$ = this.menuSource.asObservable();\n\n resetSource$ = this.resetSource.asObservable();\n\n configUpdate$ = this.configUpdate.asObservable();\n\n overlayOpen$ = this.overlayOpen.asObservable();\n\n theme = computed(() => (this.layoutConfig()?.darkTheme ? 'light' : 'dark'));\n\n isSidebarActive = computed(() => this.layoutState().overlayMenuActive || this.layoutState().staticMenuMobileActive);\n\n isDarkTheme = computed(() => this.layoutConfig().darkTheme);\n\n getPrimary = computed(() => this.layoutConfig().primary);\n\n getSurface = computed(() => this.layoutConfig().surface);\n\n isOverlay = computed(() => this.layoutConfig().menuMode === 'overlay');\n\n transitionComplete = signal<boolean>(false);\n\n private initialized = false;\n\n constructor() {\n effect(() => {\n const config = this.layoutConfig();\n if (config) {\n this.onConfigUpdate();\n }\n });\n\n effect(() => {\n const config = this.layoutConfig();\n\n if (!this.initialized || !config) {\n this.initialized = true;\n return;\n }\n\n this.handleDarkModeTransition(config);\n });\n }\n\n private handleDarkModeTransition(config: layoutConfig): void {\n if ((document as any).startViewTransition) {\n this.startViewTransition(config);\n } else {\n this.toggleDarkMode(config);\n this.onTransitionEnd();\n }\n }\n\n private startViewTransition(config: layoutConfig): void {\n const transition = (document as any).startViewTransition(() => {\n this.toggleDarkMode(config);\n });\n\n transition.ready\n .then(() => {\n this.onTransitionEnd();\n })\n .catch(() => {});\n }\n\n toggleDarkMode(config?: layoutConfig): void {\n const _config = config || this.layoutConfig();\n if (_config.darkTheme) {\n document.documentElement.classList.add('app-dark');\n } else {\n document.documentElement.classList.remove('app-dark');\n }\n }\n\n private onTransitionEnd() {\n this.transitionComplete.set(true);\n setTimeout(() => {\n this.transitionComplete.set(false);\n });\n }\n\n onMenuToggle() {\n if (this.isOverlay()) {\n this.layoutState.update((prev) => ({ ...prev, overlayMenuActive: !this.layoutState().overlayMenuActive }));\n\n if (this.layoutState().overlayMenuActive) {\n this.overlayOpen.next(null);\n }\n }\n\n if (this.isDesktop()) {\n this.layoutState.update((prev) => ({ ...prev, staticMenuDesktopInactive: !this.layoutState().staticMenuDesktopInactive }));\n } else {\n this.layoutState.update((prev) => ({ ...prev, staticMenuMobileActive: !this.layoutState().staticMenuMobileActive }));\n\n if (this.layoutState().staticMenuMobileActive) {\n this.overlayOpen.next(null);\n }\n }\n }\n\n isDesktop() {\n // Usar matchMedia para detectar correctamente el breakpoint independientemente del zoom/UA\n return !window.matchMedia('(max-width: 991px)').matches;\n }\n\n isMobile() {\n return window.matchMedia('(max-width: 991px)').matches;\n }\n\n onConfigUpdate() {\n this._config = { ...this.layoutConfig() };\n this.configUpdate.next(this.layoutConfig());\n }\n\n onMenuStateChange(event: MenuChangeEvent) {\n this.menuSource.next(event);\n }\n\n reset() {\n this.resetSource.next(true);\n }\n}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { Component, computed, inject, PLATFORM_ID, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { $t, updatePreset, updateSurfacePalette } from '@primeng/themes';\nimport Aura from '@primeng/themes/aura';\nimport Lara from '@primeng/themes/lara';\nimport Nora from '@primeng/themes/nora';\nimport { PrimeNG } from 'primeng/config';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { LayoutService } from '../../../shared/services/layout.service';\n\nconst presets = {\n Aura,\n Lara,\n Nora\n} as const;\n\ndeclare type KeyOfType<T> = keyof T extends infer U ? U : never;\n\ndeclare type SurfacesType = {\n name?: string;\n palette?: {\n 0?: string;\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n 950?: string;\n };\n};\n\n@Component({\n selector: 'app-configurator',\n standalone: true,\n imports: [CommonModule, FormsModule, SelectButtonModule],\n template: `\n <div class=\"flex flex-col gap-4\">\n <div>\n <span class=\"text-sm text-muted-color font-semibold\">Primary</span>\n <div class=\"pt-2 flex gap-2 flex-wrap justify-start\">\n @for (primaryColor of primaryColors(); track primaryColor.name) {\n <button\n type=\"button\"\n [title]=\"primaryColor.name\"\n (click)=\"updateColors($event, 'primary', primaryColor)\"\n [ngClass]=\"{ 'outline-primary': primaryColor.name === selectedPrimaryColor() }\"\n class=\"border-none w-5 h-5 rounded-full p-0 cursor-pointer outline-none outline-offset-1\"\n [style]=\"{\n 'background-color': primaryColor?.name === 'noir' ? 'var(--text-color)' : primaryColor?.palette?.['500']\n }\"\n ></button>\n }\n </div>\n </div>\n <div>\n <span class=\"text-sm text-muted-color font-semibold\">Surface</span>\n <div class=\"pt-2 flex gap-2 flex-wrap justify-start\">\n @for (surface of surfaces; track surface.name) {\n <button\n type=\"button\"\n [title]=\"surface.name\"\n (click)=\"updateColors($event, 'surface', surface)\"\n [ngClass]=\"{ 'outline-primary': selectedSurfaceColor() ? selectedSurfaceColor() === surface.name : layoutService.layoutConfig().darkTheme ? surface.name === 'zinc' : surface.name === 'slate' }\"\n class=\"border-none w-5 h-5 rounded-full p-0 cursor-pointer outline-none outline-offset-1\"\n [style]=\"{\n 'background-color': surface?.name === 'noir' ? 'var(--text-color)' : surface?.palette?.['500']\n }\"\n ></button>\n }\n </div>\n </div>\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-sm text-muted-color font-semibold\">Presets</span>\n <p-selectbutton [options]=\"presets\" [ngModel]=\"selectedPreset()\" (ngModelChange)=\"onPresetChange($event)\" [allowEmpty]=\"false\" size=\"small\" />\n </div>\n <div *ngIf=\"showMenuModeButton()\" class=\"flex flex-col gap-2\">\n <span class=\"text-sm text-muted-color font-semibold\">Menu Mode</span>\n <p-selectbutton [ngModel]=\"menuMode()\" (ngModelChange)=\"onMenuModeChange($event)\" [options]=\"menuModeOptions\" [allowEmpty]=\"false\" size=\"small\" />\n </div>\n </div>\n `,\n host: {\n class: 'hidden absolute top-[3.25rem] right-0 w-72 p-4 bg-surface-0 dark:bg-surface-900 border border-surface rounded-border origin-top shadow-[0px_3px_5px_rgba(0,0,0,0.02),0px_0px_2px_rgba(0,0,0,0.05),0px_1px_4px_rgba(0,0,0,0.08)]'\n }\n})\nexport class AppConfigurator {\n router = inject(Router);\n\n config: PrimeNG = inject(PrimeNG);\n\n layoutService: LayoutService = inject(LayoutService);\n\n platformId = inject(PLATFORM_ID);\n\n primeng = inject(PrimeNG);\n\n presets = Object.keys(presets);\n\n showMenuModeButton = signal(!this.router.url.includes('auth'));\n\n menuModeOptions = [\n { label: 'Static', value: 'static' },\n { label: 'Overlay', value: 'overlay' }\n ];\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.onPresetChange(this.layoutService.layoutConfig().preset);\n }\n }\n\n surfaces: SurfacesType[] = [\n {\n name: 'slate',\n palette: {\n 0: '#ffffff',\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617'\n }\n },\n {\n name: 'gray',\n palette: {\n 0: '#ffffff',\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712'\n }\n },\n {\n name: 'zinc',\n palette: {\n 0: '#ffffff',\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n 950: '#09090b'\n }\n },\n {\n name: 'neutral',\n palette: {\n 0: '#ffffff',\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n 950: '#0a0a0a'\n }\n },\n {\n name: 'stone',\n palette: {\n 0: '#ffffff',\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n 950: '#0c0a09'\n }\n },\n {\n name: 'soho',\n palette: {\n 0: '#ffffff',\n 50: '#ececec',\n 100: '#dedfdf',\n 200: '#c4c4c6',\n 300: '#adaeb0',\n 400: '#97979b',\n 500: '#7f8084',\n 600: '#6a6b70',\n 700: '#55565b',\n 800: '#3f4046',\n 900: '#2c2c34',\n 950: '#16161d'\n }\n },\n {\n name: 'viva',\n palette: {\n 0: '#ffffff',\n 50: '#f3f3f3',\n 100: '#e7e7e8',\n 200: '#cfd0d0',\n 300: '#b7b8b9',\n 400: '#9fa1a1',\n 500: '#87898a',\n 600: '#6e7173',\n 700: '#565a5b',\n 800: '#3e4244',\n 900: '#262b2c',\n 950: '#0e1315'\n }\n },\n {\n name: 'ocean',\n palette: {\n 0: '#ffffff',\n 50: '#fbfcfc',\n 100: '#F7F9F8',\n 200: '#EFF3F2',\n 300: '#DADEDD',\n 400: '#B1B7B6',\n 500: '#828787',\n 600: '#5F7274',\n 700: '#415B61',\n 800: '#29444E',\n 900: '#183240',\n 950: '#0c1920'\n }\n }\n ];\n\n selectedPrimaryColor = computed(() => {\n return this.layoutService.layoutConfig().primary;\n });\n\n selectedSurfaceColor = computed(() => this.layoutService.layoutConfig().surface);\n\n selectedPreset = computed(() => this.layoutService.layoutConfig().preset);\n\n menuMode = computed(() => this.layoutService.layoutConfig().menuMode);\n\n primaryColors = computed<SurfacesType[]>(() => {\n const presetPalette = presets[this.layoutService.layoutConfig().preset as KeyOfType<typeof presets>].primitive;\n const colors = ['emerald', 'green', 'lime', 'orange', 'amber', 'yellow', 'teal', 'cyan', 'sky', 'blue', 'indigo', 'violet', 'purple', 'fuchsia', 'pink', 'rose'];\n const palettes: SurfacesType[] = [{ name: 'noir', palette: {} }];\n\n colors.forEach((color) => {\n palettes.push({\n name: color,\n palette: presetPalette?.[color as KeyOfType<typeof presetPalette>] as SurfacesType['palette']\n });\n });\n\n return palettes;\n });\n\n // eslint-disable-next-line max-lines-per-function\n getPresetExt() {\n const color: SurfacesType = this.primaryColors().find((c) => c.name === this.selectedPrimaryColor()) || {};\n const preset = this.layoutService.layoutConfig().preset;\n\n if (color.name === 'noir') {\n return {\n semantic: {\n primary: {\n 50: '{surface.50}',\n 100: '{surface.100}',\n 200: '{surface.200}',\n 300: '{surface.300}',\n 400: '{surface.400}',\n 500: '{surface.500}',\n 600: '{surface.600}',\n 700: '{surface.700}',\n 800: '{surface.800}',\n 900: '{surface.900}',\n 950: '{surface.950}'\n },\n colorScheme: {\n light: {\n primary: {\n color: '{primary.950}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.800}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.950}',\n focusBackground: '{primary.700}',\n color: '#ffffff',\n focusColor: '#ffffff'\n }\n },\n dark: {\n primary: {\n color: '{primary.50}',\n contrastColor: '{primary.950}',\n hoverColor: '{primary.200}',\n activeColor: '{primary.300}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.300}',\n color: '{primary.950}',\n focusColor: '{primary.950}'\n }\n }\n }\n }\n };\n } else {\n if (preset === 'Nora') {\n return {\n semantic: {\n primary: color.palette,\n colorScheme: {\n light: {\n primary: {\n color: '{primary.600}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.700}',\n activeColor: '{primary.800}'\n },\n highlight: {\n background: '{primary.600}',\n focusBackground: '{primary.700}',\n color: '#ffffff',\n focusColor: '#ffffff'\n }\n },\n dark: {\n primary: {\n color: '{primary.500}',\n contrastColor: '{surface.900}',\n hoverColor: '{primary.400}',\n activeColor: '{primary.300}'\n },\n highlight: {\n background: '{primary.500}',\n focusBackground: '{primary.400}',\n color: '{surface.900}',\n focusColor: '{surface.900}'\n }\n }\n }\n }\n };\n } else {\n return {\n semantic: {\n primary: color.palette,\n colorScheme: {\n light: {\n primary: {\n color: '{primary.500}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.600}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.100}',\n color: '{primary.700}',\n focusColor: '{primary.800}'\n }\n },\n dark: {\n primary: {\n color: '{primary.400}',\n contrastColor: '{surface.900}',\n hoverColor: '{primary.300}',\n activeColor: '{primary.200}'\n },\n highlight: {\n background: 'color-mix(in srgb, {primary.400}, transparent 84%)',\n focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',\n color: 'rgba(255,255,255,.87)',\n focusColor: 'rgba(255,255,255,.87)'\n }\n }\n }\n }\n };\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateColors(event: any, type: string, color: any) {\n if (type === 'primary') {\n this.layoutService.layoutConfig.update((state) => ({ ...state, primary: color.name }));\n } else if (type === 'surface') {\n this.layoutService.layoutConfig.update((state) => ({ ...state, surface: color.name }));\n }\n this.applyTheme(type, color);\n\n event.stopPropagation();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n applyTheme(type: string, color: any) {\n if (type === 'primary') {\n updatePreset(this.getPresetExt());\n } else if (type === 'surface') {\n updateSurfacePalette(color.palette);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onPresetChange(event: any) {\n this.layoutService.layoutConfig.update((state) => ({ ...state, preset: event }));\n const preset = presets[event as KeyOfType<typeof presets>];\n const surfacePalette = this.surfaces.find((s) => s.name === this.selectedSurfaceColor())?.palette;\n $t().preset(preset).preset(this.getPresetExt()).surfacePalette(surfacePalette).use({ useDefaultOptions: true });\n }\n\n onMenuModeChange(event: string) {\n this.layoutService.layoutConfig.update((prev) => ({ ...prev, menuMode: event }));\n }\n}\n","import { Component } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { StyleClassModule } from 'primeng/styleclass';\nimport { AppConfigurator } from './app.configurator';\nimport { LayoutService } from '../../../shared/services/layout.service';\n\n@Component({\n selector: 'lib-topbar3',\n standalone: true,\n imports: [RouterModule, CommonModule, StyleClassModule, AppConfigurator],\n template: ` <div class=\"layout-topbar\">\n <div class=\"layout-topbar-logo-container\">\n <button class=\"layout-menu-button layout-topbar-action\" (click)=\"layoutService.onMenuToggle()\">\n <i class=\"pi pi-bars\"></i>\n </button>\n <a class=\"layout-topbar-logo\" routerLink=\"/\">\n <svg viewBox=\"0 0 54 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M17.1637 19.2467C17.1566 19.4033 17.1529 19.561 17.1529 19.7194C17.1529 25.3503 21.7203 29.915 27.3546 29.915C32.9887 29.915 37.5561 25.3503 37.5561 19.7194C37.5561 19.5572 37.5524 19.3959 37.5449 19.2355C38.5617 19.0801 39.5759 18.9013 40.5867 18.6994L40.6926 18.6782C40.7191 19.0218 40.7326 19.369 40.7326 19.7194C40.7326 27.1036 34.743 33.0896 27.3546 33.0896C19.966 33.0896 13.9765 27.1036 13.9765 19.7194C13.9765 19.374 13.9896 19.0316 14.0154 18.6927L14.0486 18.6994C15.0837 18.9062 16.1223 19.0886 17.1637 19.2467ZM33.3284 11.4538C31.6493 10.2396 29.5855 9.52381 27.3546 9.52381C25.1195 9.52381 23.0524 10.2421 21.3717 11.4603C20.0078 11.3232 18.6475 11.1387 17.2933 10.907C19.7453 8.11308 23.3438 6.34921 27.3546 6.34921C31.36 6.34921 34.9543 8.10844 37.4061 10.896C36.0521 11.1292 34.692 11.3152 33.3284 11.4538ZM43.826 18.0518C43.881 18.6003 43.9091 19.1566 43.9091 19.7194C43.9091 28.8568 36.4973 36.2642 27.3546 36.2642C18.2117 36.2642 10.8 28.8568 10.8 19.7194C10.8 19.1615 10.8276 18.61 10.8816 18.0663L7.75383 17.4411C7.66775 18.1886 7.62354 18.9488 7.62354 19.7194C7.62354 30.6102 16.4574 39.4388 27.3546 39.4388C38.2517 39.4388 47.0855 30.6102 47.0855 19.7194C47.0855 18.9439 47.0407 18.1789 46.9536 17.4267L43.826 18.0518ZM44.2613 9.54743L40.9084 10.2176C37.9134 5.95821 32.9593 3.1746 27.3546 3.1746C21.7442 3.1746 16.7856 5.96385 13.7915 10.2305L10.4399 9.56057C13.892 3.83178 20.1756 0 27.3546 0C34.5281 0 40.8075 3.82591 44.2613 9.54743Z\"\n fill=\"var(--primary-color)\"\n />\n <mask id=\"mask0_1413_1551\" style=\"mask-type: alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"8\" width=\"54\" height=\"11\">\n <path d=\"M27 18.3652C10.5114 19.1944 0 8.88892 0 8.88892C0 8.88892 16.5176 14.5866 27 14.5866C37.4824 14.5866 54 8.88892 54 8.88892C54 8.88892 43.4886 17.5361 27 18.3652Z\" fill=\"var(--primary-color)\" />\n </mask>\n <g mask=\"url(#mask0_1413_1551)\">\n <path\n d=\"M-4.673e-05 8.88887L3.73084 -1.91434L-8.00806 17.0473L-4.673e-05 8.88887ZM27 18.3652L26.4253 6.95109L27 18.3652ZM54 8.88887L61.2673 17.7127L50.2691 -1.91434L54 8.88887ZM-4.673e-05 8.88887C-8.00806 17.0473 -8.00469 17.0505 -8.00132 17.0538C-8.00018 17.055 -7.99675 17.0583 -7.9944 17.0607C-7.98963 17.0653 -7.98474 17.0701 -7.97966 17.075C-7.96949 17.0849 -7.95863 17.0955 -7.94707 17.1066C-7.92401 17.129 -7.89809 17.1539 -7.86944 17.1812C-7.8122 17.236 -7.74377 17.3005 -7.66436 17.3743C-7.50567 17.5218 -7.30269 17.7063 -7.05645 17.9221C-6.56467 18.3532 -5.89662 18.9125 -5.06089 19.5534C-3.39603 20.83 -1.02575 22.4605 1.98012 24.0457C7.97874 27.2091 16.7723 30.3226 27.5746 29.7793L26.4253 6.95109C20.7391 7.23699 16.0326 5.61231 12.6534 3.83024C10.9703 2.94267 9.68222 2.04866 8.86091 1.41888C8.45356 1.10653 8.17155 0.867278 8.0241 0.738027C7.95072 0.673671 7.91178 0.637576 7.90841 0.634492C7.90682 0.63298 7.91419 0.639805 7.93071 0.65557C7.93897 0.663455 7.94952 0.673589 7.96235 0.686039C7.96883 0.692262 7.97582 0.699075 7.98338 0.706471C7.98719 0.710167 7.99113 0.714014 7.99526 0.718014C7.99729 0.720008 8.00047 0.723119 8.00148 0.724116C8.00466 0.727265 8.00796 0.730446 -4.673e-05 8.88887ZM27.5746 29.7793C37.6904 29.2706 45.9416 26.3684 51.6602 23.6054C54.5296 22.2191 56.8064 20.8465 58.4186 19.7784C59.2265 19.2431 59.873 18.7805 60.3494 18.4257C60.5878 18.2482 60.7841 18.0971 60.9374 17.977C61.014 17.9169 61.0799 17.8645 61.1349 17.8203C61.1624 17.7981 61.1872 17.7781 61.2093 17.7602C61.2203 17.7512 61.2307 17.7427 61.2403 17.7348C61.2452 17.7308 61.2499 17.727 61.2544 17.7233C61.2566 17.7215 61.2598 17.7188 61.261 17.7179C61.2642 17.7153 61.2673 17.7127 54 8.88887C46.7326 0.0650536 46.7357 0.0625219 46.7387 0.0600241C46.7397 0.0592345 46.7427 0.0567658 46.7446 0.0551857C46.7485 0.0520238 46.7521 0.0489887 46.7557 0.0460799C46.7628 0.0402623 46.7694 0.0349487 46.7753 0.0301318C46.7871 0.0204986 46.7966 0.0128495 46.8037 0.00712562C46.818 -0.00431848 46.8228 -0.00808311 46.8184 -0.00463784C46.8096 0.00228345 46.764 0.0378652 46.6828 0.0983779C46.5199 0.219675 46.2165 0.439161 45.7812 0.727519C44.9072 1.30663 43.5257 2.14765 41.7061 3.02677C38.0469 4.79468 32.7981 6.63058 26.4253 6.95109L27.5746 29.7793ZM54 8.88887C50.2691 -1.91433 50.27 -1.91467 50.271 -1.91498C50.2712 -1.91506 50.272 -1.91535 50.2724 -1.9155C50.2733 -1.91581 50.274 -1.91602 50.2743 -1.91616C50.2752 -1.91643 50.275 -1.91636 50.2738 -1.91595C50.2714 -1.91515 50.2652 -1.91302 50.2552 -1.9096C50.2351 -1.90276 50.1999 -1.89078 50.1503 -1.874C50.0509 -1.84043 49.8938 -1.78773 49.6844 -1.71863C49.2652 -1.58031 48.6387 -1.377 47.8481 -1.13035C46.2609 -0.635237 44.0427 0.0249875 41.5325 0.6823C36.215 2.07471 30.6736 3.15796 27 3.15796V26.0151C33.8087 26.0151 41.7672 24.2495 47.3292 22.7931C50.2586 22.026 52.825 21.2618 54.6625 20.6886C55.5842 20.4011 56.33 20.1593 56.8551 19.986C57.1178 19.8993 57.3258 19.8296 57.4735 19.7797C57.5474 19.7548 57.6062 19.7348 57.6493 19.72C57.6709 19.7127 57.6885 19.7066 57.7021 19.7019C57.7089 19.6996 57.7147 19.6976 57.7195 19.696C57.7219 19.6952 57.7241 19.6944 57.726 19.6938C57.7269 19.6934 57.7281 19.693 57.7286 19.6929C57.7298 19.6924 57.7309 19.692 54 8.88887ZM27 3.15796C23.3263 3.15796 17.7849 2.07471 12.4674 0.6823C9.95717 0.0249875 7.73904 -0.635237 6.15184 -1.13035C5.36118 -1.377 4.73467 -1.58031 4.3155 -1.71863C4.10609 -1.78773 3.94899 -1.84043 3.84961 -1.874C3.79994 -1.89078 3.76474 -1.90276 3.74471 -1.9096C3.73469 -1.91302 3.72848 -1.91515 3.72613 -1.91595C3.72496 -1.91636 3.72476 -1.91643 3.72554 -1.91616C3.72593 -1.91602 3.72657 -1.91581 3.72745 -1.9155C3.72789 -1.91535 3.72874 -1.91506 3.72896 -1.91498C3.72987 -1.91467 3.73084 -1.91433 -4.673e-05 8.88887C-3.73093 19.692 -3.72983 19.6924 -3.72868 19.6929C-3.72821 19.693 -3.72698 19.6934 -3.72603 19.6938C-3.72415 19.6944 -3.72201 19.6952 -3.71961 19.696C-3.71482 19.6976 -3.70901 19.6996 -3.7022 19.7019C-3.68858 19.7066 -3.67095 19.7127 -3.6494 19.72C-3.60629 19.7348 -3.54745 19.7548 -3.47359 19.7797C-3.32589 19.8296 -3.11788 19.8993 -2.85516 19.986C-2.33008 20.1593 -1.58425 20.4011 -0.662589 20.6886C1.17485 21.2618 3.74125 22.026 6.67073 22.7931C12.2327 24.2495 20.1913 26.0151 27 26.0151V3.15796Z\"\n fill=\"var(--primary-color)\"\n />\n </g>\n </svg>\n <span>SAKAI</span>\n </a>\n </div>\n\n <div class=\"layout-topbar-actions\">\n <div class=\"layout-config-menu\">\n <button type=\"button\" class=\"layout-topbar-action\" (click)=\"toggleDarkMode()\">\n <i [ngClass]=\"{ 'pi ': true, 'pi-moon': layoutService.isDarkTheme(), 'pi-sun': !layoutService.isDarkTheme() }\"></i>\n </button>\n <div class=\"relative\">\n <button\n class=\"layout-topbar-action layout-topbar-action-highlight\"\n pStyleClass=\"@next\"\n enterFromClass=\"hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden\"\n leaveActiveClass=\"animate-fadeout\"\n [hideOnOutsideClick]=\"true\"\n >\n <i class=\"pi pi-palette\"></i>\n </button>\n <app-configurator />\n </div>\n </div>\n\n <button class=\"layout-topbar-menu-button layout-topbar-action\" pStyleClass=\"@next\" enterFromClass=\"hidden\" enterActiveClass=\"animate-scalein\" leaveToClass=\"hidden\" leaveActiveClass=\"animate-fadeout\" [hideOnOutsideClick]=\"true\">\n <i class=\"pi pi-ellipsis-v\"></i>\n </button>\n\n <div class=\"layout-topbar-menu hidden lg:block\">\n <div class=\"layout-topbar-menu-content\">\n <button type=\"button\" class=\"layout-topbar-action\">\n <i class=\"pi pi-calendar\"></i>\n <span>Calendar</span>\n </button>\n <button type=\"button\" class=\"layout-topbar-action\">\n <i class=\"pi pi-inbox\"></i>\n <span>Messages</span>\n </button>\n <button type=\"button\" class=\"layout-topbar-action\">\n <i class=\"pi pi-user\"></i>\n <span>Profile</span>\n </button>\n </div>\n </div>\n </div>\n </div>`\n})\nexport class AppTopbar {\n items!: MenuItem[];\n\n constructor(public layoutService: LayoutService) {}\n\n toggleDarkMode() {\n this.layoutService.layoutConfig.update((state) => ({ ...state, darkTheme: !state.darkTheme }));\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'lib-footer3',\n template: `<div class=\"layout-footer\">\n SAKAI by\n <a href=\"https://primeng.org\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-primary font-bold hover:underline\">PrimeNG</a>\n </div>`\n})\nexport class AppFooter {}\n","import { MenuConfig } from '../../shared/interfaces/menu.interface';\n\nexport const DASHBOARD3_MENU_CONFIG: MenuConfig = {\n id: 'dashboard3-menu',\n name: 'Dashboard 3 Menu',\n items: [\n {\n id: 'home',\n label: 'Home',\n icon: 'pi pi-fw pi-home',\n type: 'group',\n order: 1,\n items: [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: 'pi pi-fw pi-home',\n routerLink: ['/'],\n type: 'item',\n order: 1\n },\n {\n id: 'crud',\n label: 'Crud',\n icon: 'pi pi-fw pi-pencil',\n routerLink: ['/pages/crud'],\n type: 'item',\n order: 1\n }\n ]\n },\n {\n id: 'ui-components',\n label: 'UI Components',\n icon: 'pi pi-fw pi-palette',\n type: 'group',\n order: 2,\n items: [\n {\n id: 'form-layout',\n label: 'Form Layout',\n icon: 'pi pi-fw pi-id-card',\n routerLink: ['/uikit/formlayout'],\n type: 'item',\n order: 1\n },\n {\n id: 'input',\n label: 'Input',\n icon: 'pi pi-fw pi-check-square',\n routerLink: ['/uikit/input'],\n type: 'item',\n order: 2\n },\n {\n id: 'button',\n label: 'Button',\n icon: 'pi pi-fw pi-mobile',\n routerLink: ['/uikit/button'],\n type: 'item',\n order: 3\n },\n {\n id: 'table',\n label: 'Table',\n icon: 'pi pi-fw pi-table',\n routerLink: ['/uikit/table'],\n type: 'item',\n order: 4\n },\n {\n id: 'list',\n label: 'List',\n icon: 'pi pi-fw pi-list',\n routerLink: ['/uikit/list'],\n type: 'item',\n order: 5\n },\n {\n id: 'tree',\n label: 'Tree',\n icon: 'pi pi-fw pi-share-alt',\n routerLink: ['/uikit/tree'],\n type: 'item',\n order: 6\n },\n {\n id: 'panel',\n label: 'Panel',\n icon: 'pi pi-fw pi-tablet',\n routerLink: ['/uikit/panel'],\n type: 'item',\n order: 7\n },\n {\n id: 'overlay',\n label: 'Overlay',\n icon: 'pi pi-fw pi-clone',\n routerLink: ['/uikit/overlay'],\n type: 'item',\n order: 8\n },\n {\n id: 'media',\n label: 'Media',\n icon: 'pi pi-fw pi-image',\n routerLink: ['/uikit/media'],\n type: 'item',\n order: 9\n },\n {\n id: 'menu',\n label: 'Menu',\n icon: 'pi pi-fw pi-bars',\n routerLink: ['/uikit/menu'],\n type: 'item',\n order: 10\n },\n {\n id: 'message',\n label: 'Message',\n icon: 'pi pi-fw pi-comment',\n routerLink: ['/uikit/message'],\n type: 'item',\n order: 11\n },\n {\n id: 'file',\n label: 'File',\n icon: 'pi pi-fw pi-file',\n routerLink: ['/uikit/file'],\n type: 'item',\n order: 12\n },\n {\n id: 'chart',\n label: 'Chart',\n icon: 'pi pi-fw pi-chart-bar',\n routerLink: ['/uikit/charts'],\n type: 'item',\n order: 13\n },\n {\n id: 'timeline',\n label: 'Timeline',\n icon: 'pi pi-fw pi-calendar',\n routerLink: ['/uikit/timeline'],\n type: 'item',\n order: 14\n },\n {\n id: 'misc',\n label: 'Misc',\n icon: 'pi pi-fw pi-circle',\n routerLink: ['/uikit/misc'],\n type: 'item',\n order: 15\n }\n ]\n },\n {\n id: 'pages',\n label: 'Pages',\n icon: 'pi pi-fw pi-briefcase',\n type: 'group',\n order: 3,\n items: [\n {\n id: 'landing',\n label: 'Landing',\n icon: 'pi pi-fw pi-globe',\n routerLink: ['/landing'],\n type: 'item',\n order: 1\n },\n {\n id: 'auth',\n label: 'Auth',\n icon: 'pi pi-fw pi-user',\n type: 'group',\n order: 2,\n items: [\n {\n id: 'login',\n label: 'Login',\n icon: 'pi pi-fw pi-sign-in',\n routerLink: ['/auth/login'],\n type: 'item',\n order: 1\n },\n {\n id: 'error',\n label: 'Error',\n icon: 'pi pi-fw pi-times-circle',\n routerLink: ['/auth/error'],\n type: 'item',\n order: 2\n },\n {\n id: 'access-denied',\n label: 'Access Denied',\n icon: 'pi pi-fw pi-lock',\n routerLink: ['/auth/access'],\n type: 'item',\n order: 3\n }\n ]\n },\n {\n id: 'crud',\n label: 'Crud',\n icon: 'pi pi-fw pi-pencil',\n routerLink: ['/pages/crud'],\n type: 'item',\n order: 3,\n permissions: ['pages.crud.read']\n },\n {\n id: 'menu-demo',\n label: 'Menu Demo',\n icon: 'pi pi-fw pi-bars',\n routerLink: ['/menu-demo'],\n type: 'item',\n order: 4\n },\n {\n id: 'not-found',\n label: 'Not Found',\n icon: 'pi pi-fw pi-exclamation-circle',\n routerLink: ['/pages/notfound'],\n type: 'item',\n order: 5\n },\n {\n id: 'empty',\n label: 'Empty',\n icon: 'pi pi-fw pi-circle-off',\n routerLink: ['/pages/empty'],\n type: 'item',\n order: 6\n }\n ]\n },\n {\n id: 'hierarchy',\n label: 'Hierarchy',\n icon: 'pi pi-fw pi-sitemap',\n type: 'group',\n order: 4,\n items: [\n {\n id: 'submenu-1',\n label: 'Submenu 1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'group',\n order: 1,\n items: [\n {\n id: 'submenu-1-1',\n label: 'Submenu 1.1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'group',\n order: 1,\n items: [\n {\n id: 'submenu-1-1-1',\n label: 'Submenu 1.1.1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 1\n },\n {\n id: 'submenu-1-1-2',\n label: 'Submenu 1.1.2',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 2\n },\n {\n id: 'submenu-1-1-3',\n label: 'Submenu 1.1.3',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 3\n }\n ]\n },\n {\n id: 'submenu-1-2',\n label: 'Submenu 1.2',\n icon: 'pi pi-fw pi-bookmark',\n type: 'group',\n order: 2,\n items: [\n {\n id: 'submenu-1-2-1',\n label: 'Submenu 1.2.1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 1\n }\n ]\n }\n ]\n },\n {\n id: 'submenu-2',\n label: 'Submenu 2',\n icon: 'pi pi-fw pi-bookmark',\n type: 'group',\n order: 2,\n items: [\n {\n id: 'submenu-2-1',\n label: 'Submenu 2.1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'group',\n order: 1,\n items: [\n {\n id: 'submenu-2-1-1',\n label: 'Submenu 2.1.1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 1\n },\n {\n id: 'submenu-2-1-2',\n label: 'Submenu 2.1.2',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 2\n }\n ]\n },\n {\n id: 'submenu-2-2',\n label: 'Submenu 2.2',\n icon: 'pi pi-fw pi-bookmark',\n type: 'group',\n order: 2,\n items: [\n {\n id: 'submenu-2-2-1',\n label: 'Submenu 2.2.1',\n icon: 'pi pi-fw pi-bookmark',\n type: 'item',\n order: 1\n }\n ]\n }\n ]\n }\n ]\n },\n {\n id: 'get-started',\n label: 'Get Started',\n icon: 'pi pi-fw pi-info-circle',\n type: 'group',\n order: 5,\n items: [\n {\n id: 'documentation',\n label: 'Documentation',\n icon: 'pi pi-fw pi-book',\n routerLink: ['/documentation'],\n type: 'item',\n order: 1\n },\n {\n id: 'view-source',\n label: 'View Source',\n icon: 'pi pi-fw pi-github',\n url: 'https://github.com/primefaces/sakai-ng',\n target: '_blank',\n type: 'item',\n order: 2\n }\n ]\n }\n ],\n theme: 'light',\n orientation: 'vertical',\n collapsible: true,\n showIcons: true,\n showBadges: true,\n maxDepth: 4\n}; ","import { Component, Renderer2, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NavigationEnd, Router, RouterModule, ActivatedRoute } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\nimport { AppTopbar } from './moleculas/app.topbar';\nimport { AppFooter } from './moleculas/app.footer';\nimport { LayoutService } from '../../shared/services/layout.service';\nimport { MenuConfig } from '@juliaosistem/core-dtos';\nimport { MenuComponent } from \"./moleculas/menu/menu.component\";\n\n@Component({\n selector: 'lib-daskboard3',\n standalone: true,\n imports: [CommonModule, AppTopbar, RouterModule, AppFooter, MenuComponent],\n template: `<div class=\"layout-wrapper\" [ngClass]=\"containerClass\">\n <lib-topbar3></lib-topbar3>\n <lib-menu [menuConfig]=\"menuConfig\" [userPermissions]=\"userPermissions\"></lib-menu>\n <div class=\"layout-main-container\">\n <div class=\"layout-main\">\n <router-outlet></router-outlet>\n </div>\n <lib-footer3></lib-footer3>\n </div>\n <div class=\"layout-mask animate-fadein\"></div>\n </div> `\n})\nexport class DaskBoard3 implements OnInit {\n @Input() menuConfig?: MenuConfig;\n @Input() userPermissions: string[] = ['admin.users.read', 'admin.settings.read', 'pages.crud.read'];\n \n overlayMenuOpenSubscription: Subscription;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n menuOutsideClickListener: any;\n\n\n\n constructor(\n public layoutService: LayoutService,\n public renderer: Renderer2,\n public router: Router,\n private route: ActivatedRoute\n ) {\n this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\n if (!this.menuOutsideClickListener) {\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', (event) => {\n if (this.isOutsideClicked(event)) {\n this.hideMenu();\n }\n });\n }\n\n if (this.layoutService.layoutState().staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\n this.hideMenu();\n });\n }\n\n ngOnInit() {\n // Leer datos de la ruta y permitir que sobrescriban los inputs si vienen definidos en la ruta\n this.route.data.subscribe(data => {\n if (data['menuConfig']) {\n this.menuConfig = data['menuConfig'];\n // eslint-disable-next-line no-console\n console.log('Dashboard3: MenuConfig cargado desde datos de ruta:', this.menuConfig);\n }\n \n if (data['userPermissions']) {\n this.userPermissions = data['userPermissions'];\n console.log('Dashboard3: UserPermissions cargados desde datos de ruta:', this.userPermissions);\n }\n });\n\n // Listener explícito para cerrar al hacer click en la máscara en móviles\n const maskEl = document.querySelector('.layout-mask');\n if (maskEl) {\n this.renderer.listen(maskEl, 'click', () => this.hideMenu());\n }\n\n // Si no se proporciona menuConfig, usar configuración por defecto\n if (!this.menuConfig) {\n console.warn('Dashboard3: No se proporcionó menuConfig, usando configuración por defecto');\n }\n }\n\n isOutsideClicked(event: MouseEvent) {\n const sidebarEl = document.querySelector('.layout-sidebar');\n const topbarEl = document.querySelector('.layout-menu-button');\n const eventTarget = event.target as Node;\n\n return !(sidebarEl?.isSameNode(eventTarget) || sidebarEl?.contains(eventTarget) || topbarEl?.isSameNode(eventTarget) || topbarEl?.contains(eventTarget));\n }\n\n hideMenu() {\n this.layoutService.layoutState.update((prev) => ({ ...prev, overlayMenuActive: false, staticMenuMobileActive: false, menuHoverActive: false }));\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n this.menuOutsideClickListener = null;\n }\n this.unblockBodyScroll();\n }\n\n blockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.add('blocked-scroll');\n } else {\n document.body.className += ' blocked-scroll';\n }\n }\n\n unblockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.remove('blocked-scroll');\n } else {\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n\n get containerClass() {\n return {\n 'layout-wrapper': true,\n 'layout-overlay': this.layoutService.layoutConfig().menuMode === 'overlay',\n 'layout-static': this.layoutService.layoutConfig().menuMode === 'static',\n 'layout-static-inactive': this.layoutService.layoutState().staticMenuDesktopInactive && this.layoutService.layoutConfig().menuMode === 'static',\n 'layout-overlay-active': this.layoutService.layoutState().overlayMenuActive,\n 'layout-mobile-active': this.layoutService.layoutState().staticMenuMobileActive\n };\n }\n\n ngOnDestroy() {\n if (this.overlayMenuOpenSubscription) {\n this.overlayMenuOpenSubscription.unsubscribe();\n }\n\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { IonicModule } from '@ionic/angular';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {BusinessDTO, ComponentesDTO} from '@juliaosistem/core-dtos'\n\n@Component({\n selector: 'app-contenido-nav',\n templateUrl: './contenido-nav.component.html',\n styleUrls: ['./contenido-nav.component.scss'],\n standalone: true,\n imports:[IonicModule,TranslateModule]\n})\nexport class ContenidoNavComponent implements OnInit {\n\n\n componente:ComponentesDTO = {\n id: 4,\n nombreComponente: 'app-contenido-nav',\n version: '1.0',\n }\n \n \n \n @Input()\n lenguages :string[]=[]\n\n \n @Input()\n negocio : BusinessDTO = {\n businessModule: [],\n telefono: ''\n } \n\n constructor() {\n if(this.negocio.urlWhatssapp)\n this.negocio.urlWhatssapp = this.generarUrlWhatsapp(this.negocio);\n }\n \n ngOnInit(): void {\n }\n\n generarUrlWhatsapp(bussines: BusinessDTO): string {\n const numeroCompleto = `+${bussines.codigoPais}${bussines.telefono}`;\n const mensajePredeterminado = encodeURIComponent(\n `Hola, estoy interesado en sus servicios.` +\n 'estamos viendo su pagina web'\n );\n\n return `https://wa.me/${numeroCompleto}/?text=${mensajePredeterminado}`;\n}\n\n\n}\n","\n <!-- header section strats -->\n <!-- <header class=\"header_section\">\n <div class=\"container-fluid\">\n <nav class=\"navbar navbar-expand-lg custom_nav-container \">\n <a class=\"navbar-brand\" routerLink=\"inicio\">\n <img [src]=\"negocio.bussinesDTO?.logo\" alt=\"\">\n <span style=\"color: #F25D27;\">\n {{negocio.bussinesDTO?.nombreNegocio}} \n </span>\n </a>\n <div class=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\n <div class=\"d-flex mx-auto flex-column flex-lg-row align-items-center\">\n <ul class=\"navbar-nav \">\n <lib-select-input1 [lenguages]=\"lenguages\" class=\"nav-item\"> </lib-select-input1>\n\n <li class=\"nav-item active\">\n <a class=\"nav-link \" [href]=\"negocio.bussinesDTO?.urlWhatssapp\" target=\"_blank\"> {{'menu.contact' | translate}}</a>\n </li>\n <app-link1 class=\"d-flex\" [menu]=\"negocio.menu?.menuModel\"></app-link1>\n </ul>\n <form class=\"form-inline my-2 my-lg-0 ml-0 ml-lg-4 mb-3 mb-lg-0\">\n <button class=\"btn my-2 my-sm-0 nav\" type=\"submit\">\n \n <i class=\"bi bi-cart4\"></i>\n <span class=\"badge badge-danger\">0</span>\n </button>\n </form>\n </div>\n <lib-button-call1 [negocio]=\"negocio\"></lib-button-call1>\n </div>\n </nav>\n </div>\n </header> -->\n\n <!-- <ion-router-outlet></ion-router-outlet> -->\n \n \n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IonicModule, Platform } from '@ionic/angular';\nimport { ContenidoNavComponent } from '../contenido-nav/contenido-nav.component';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { BusinessDTO, ComponentesDTO } from '@juliaosistem/core-dtos';\nimport { StyleClassModule } from 'primeng/styleclass';\n\n@Component({\n selector: 'lib-nav1',\n standalone: true,\n imports: [IonicModule, ContenidoNavComponent,StyleClassModule],\n templateUrl: './nav1.component.html',\n styleUrl: './nav1.component.css'\n})\nexport class Nav1Component implements OnInit {\n isMovile = false;\n\n @Input()\n lenguages :string[] = [];\n\n @Input()\n negocio : BusinessDTO = {\n businessModule: [],\n telefono: ''\n }\n\n \n componente:ComponentesDTO = {\n id: 3,\n nombreComponente: 'lib-nav1',\n version: '1.0',\n }\n \n constructor(private platform: Platform, private breakpointObserver: BreakpointObserver) {\n }\n\n ngOnInit(): void {\n this.isMovile = this.platform.is('mobile');\n this.checkScreenSize();\n }\n\n\n checkScreenSize() {\n this.breakpointObserver.observe([\n Breakpoints.Handset, \n Breakpoints.Small\n ]).subscribe(result => {\n if (result.matches) {\n this.isMovile = true;\n } else {\n this.isMovile = false;\n }\n });\n }\n\n}\n"," \n @if(isMovile){\n <ng-container>\n <ion-menu side=\"end\" contentId=\"main-content\">\n <ion-content class=\"ion-padding\">This is the menu content\n \n </ion-content>\n </ion-menu>\n <div class=\"ion-page\" id=\"main-content\">\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-menu-button></ion-menu-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n </div>\n</ng-container>\n }@else{\n \n\n <app-contenido-nav [negocio]=\"negocio\" [lenguages]=\"lenguages\" ></app-contenido-nav>\n \n}","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, OnInit } from '@angular/core';\nimport { register } from 'swiper/element/bundle';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CoreModuleLib } from '../../../../../../modulos/core.lib.module';\nimport { CommonModule } from '@angular/common';\nimport { BusinessDTO, ComponentesDTO, SliderDTO } from '@juliaosistem/core-dtos';\n\n register();\n\n@Component({\n selector: 'lib-slider1',\n standalone: true,\n imports: [CoreModuleLib,CommonModule],\n templateUrl: './slider1.component.html',\n styleUrl: './slider1.component.css',\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class Slider1Component implements OnInit {\n\n @Input()\n negocio :BusinessDTO | undefined;\n\n componente:ComponentesDTO = {\n id: 1,\n nombreComponente: 'lib-slider1',\n version: '1.0',\n }\n\n slides: SliderDTO[]=[];\n \n constructor( private translate: TranslateService,){\n\n }\n ngOnInit(): void {\n this.validarComponente();\n \n }\n\n\n validarComponente() {\n if (this.negocio != undefined) {\n this.negocio.businessModule.forEach(modulo => {\n modulo.modulosComponentes.forEach(componente => {\n if (componente.componente.sliderDTO && componente.id === this.componente.id) {\n this.slides =componente.componente.sliderDTO;\n }\n });\n });\n }\n }\n}\n"," <!-- slider section -->\n <section class=\" slider_section position-relative\">\n \n <swiper-container\n autoplay=\"true\" pagination=\"true\"\n navigation=\"true\" slides-per-view=\"1\" \n speed=\"300\" loop=\"true\" css-mode=\"true\">\n @for(slide of slides; track slide.id){\n <swiper-slide lazy=\"true\">\n\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-4 offset-md-2\">\n <div class=\"slider_detail-box\">\n @if(slide.titulo ){\n <h1>\n {{slide.titulo | translate}}\n @if(slide.subTitulo ){\n <span>\n {{slide.subTitulo | translate}}\n </span>\n }\n </h1>\n }\n @if(slide.descripcion ){\n <p>\n \n {{slide.descripcion | translate}}\n </p>\n }\n <div class=\"btn-box\">\n <a [href]=\"negocio?.urlWhatssapp\" target=\"_blank\" class=\"btn-2\">\n {{'menu.contact' | translate}}\n </a>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-6\">\n <div class=\"slider_img-box\">\n \n <img [src]=\"slide?.imagen ? slide.imagen?.url : '../../../imagenes/slider-img.png'\"\n [alt]=\"slide?.imagen?.alt ? slide.imagen?.alt : ''\">\n </div>\n </div>\n </div>\n </div>\n \n </swiper-slide>\n }@empty {\n<h1>no hay imagnes {{this.slides | json}}</h1>\n }\n \n \n </swiper-container>\n </section>\n <!-- end slider section -->\n ","import { Component, Input } from '@angular/core';\nimport { BusinessDTO, ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-footer1',\n standalone: true,\n imports: [],\n templateUrl: './footer1.component.html',\n styleUrl: './footer1.component.css'\n})\nexport class Footer1Component {\n\n @Input()\n negocio: BusinessDTO | undefined ;\n Year:string = new Date().getFullYear().toString()\n\n componente:ComponentesDTO = {\n id: 7,\n nombreComponente: 'lib-footer1',\n version: '1.0',\n }\n\n}\n","<section class=\"info_section layout_padding2\">\n <div class=\"container\">\n <div class=\"info_items\">\n <a href=\"\">\n <div class=\"item \">\n <div class=\"img-box box-1\">\n <img src=\"\" alt=\"\">\n </div>\n <div class=\"detail-box\">\n <p>\n {{negocio?.direccion}}\n </p>\n </div>\n </div>\n </a>\n <a href=\"\">\n <div class=\"item \">\n <div class=\"img-box box-2\">\n <img src=\"\" alt=\"\">\n </div>\n <div class=\"detail-box\">\n <p>\n <a style=\"color: white;\" [href]=\"negocio?.urlWhatssapp\" target=\"_blank\" rel=\"noopener noreferrer\">\n +{{negocio?.codigoPais}} {{negocio?.telefono}}\n </a>\n \n </p>\n </div>\n </div>\n </a>\n <a href=\"\">\n <div class=\"item \">\n <div class=\"img-box box-3\">\n <img src=\"\" alt=\"\">\n </div>\n <div class=\"detail-box\">\n <p>\n {{negocio?.email}}\n </p>\n </div>\n </div>\n </a>\n </div>\n </div>\n </section>\n\n <!-- end info_section -->\n\n <!-- footer section -->\n <section class=\"container-fluid footer_section\">\n <p>\n &copy; {{Year}} All Rights Reserved By Juliao Sistem \n </p>\n </section>\n <!-- footer section -->","import { Injectable } from '@angular/core';\nimport { ImagenDTO, ProductoDTO } from '@juliaosistem/core-dtos';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComponentServicesService {\n\n constructor() { }\n\n findImagenesByIdComponent(imagenDTO:ImagenDTO[],idComponente :string):ImagenDTO[] {\n return imagenDTO.filter(img=> img.id == idComponente)\n }\n \n findProductosByIdCategori(productoDTO:ProductoDTO[],idCategoria :string):ProductoDTO[]{\n return productoDTO.filter(p=> p.idCategoria == idCategoria);\n }\n \n \n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { ComponentServicesService } from '../../../../../shared/services/component-services.service';\nimport { CoreModuleLib } from '../../../../../../modulos/core.lib.module';\nimport { BusinessDTO, ComponentesDTO } from '@juliaosistem/core-dtos';\n@Component({\n selector: 'lib-layout-services1',\n standalone: true,\n imports: [CoreModuleLib],\n templateUrl: './layout-services1.component.html',\n styleUrl: './layout-services1.component.css',\n})\nexport class LayoutServices1Component implements OnInit {\n componente: ComponentesDTO = {\n id: 6,\n nombreComponente: 'lib-layout-services1',\n version: '1.0',\n };\n\n @Input()\n negocio: BusinessDTO = {\n businessModule: [],\n telefono: ''\n };\n\n constructor(private componentSvc: ComponentServicesService) {}\n\n ngOnInit(): void {\n if (\n this.negocio.productos != undefined &&\n this.negocio.productos.length != 0\n ) {\n this.negocio.productos =\n this.componentSvc.findProductosByIdCategori(\n this.negocio.productos,\n 'e3a84c75-b98e-4b1b-912d-bf226da4b511',\n );\n }\n }\n}\n","<div class=\"container layout_padding2\">\n <div class=\"row\">\n @for (producto of negocio.productos ; track producto.id) {\n <div class=\"col-md-4\">\n <div class=\"img_box\">\n <img [src]=\"producto.imagen?producto.imagen:'../../../../../../assets/images/s-1.png'\" alt=\"\">\n </div>\n <div class=\"detail_box\">\n <h6>\n {{producto.name | translate}}\n </h6>\n <p>\n {{producto.descripcion | translate}}\n </p>\n </div>\n </div>\n \n }\n \n </div>\n </div>\n","import { Component, Input } from '@angular/core';\nimport { LayoutServices1Component } from '../../atoms/layout-services1/layout-services1.component';\nimport { CoreModuleLib } from '../../../../../../modulos/core.lib.module';\nimport { BusinessDTO, ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-services-section1',\n standalone: true,\n imports: [LayoutServices1Component,CoreModuleLib],\n templateUrl: './services-section1.component.html',\n styleUrl: './services-section1.component.css'\n})\nexport class ServicesSection1Component {\n\n componente:ComponentesDTO = {\n id: 2,\n nombreComponente: 'lib-services-section1',\n version: '1.0',\n }\n\n @Input()\n negocio : BusinessDTO = {\n businessModule: [],\n telefono: ''\n };\n } \n\n"," <!-- service section -->\n <section class=\"service_section layout_padding\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-md-6 offset-md-2\">\n <h2 class=\"custom_heading\">\n {{'Our' | translate}}<span>{{'menu.servicios' | translate}}</span>\n </h2>\n <lib-layout-services1 [negocio] = \"negocio\"></lib-layout-services1>\n <div>\n <a [href]=negocio.urlWhatssapp target=\"_blank\">\n {{'menu.contact' | translate}}\n </a>\n </div>\n </div>\n <div class=\"col-md-4\">\n <img src=\"images/tool.png\" alt=\"\" class=\"w-100\">\n </div>\n </div>\n </div>\n </section>\n\n <!-- end service section -->\n","import { ComponentServicesService } from '../../../../../shared/services/component-services.service'\nimport { CoreModuleLib } from '../../../../../../modulos/core.lib.module';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentesDTO, ImagenDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-gallery-section1',\n standalone: true,\n imports: [CoreModuleLib,CommonModule],\n templateUrl: './gallery-section1.component.html',\n styleUrl: './gallery-section1.component.css'\n})\nexport class GallerySection1Component implements OnInit {\n @Input()\n imagenes :ImagenDTO[] | undefined\n\n componente:ComponentesDTO = {\n id: 5,\n nombreComponente: 'lib-gallery-section1',\n version: '1.0',\n }\n\n\n constructor(private compSvc:ComponentServicesService){\n \n }\n ngOnInit(): void {\n /* let imgs\n if(this.imagenes != undefined && this.imagenes.length !=0 ){\n\n imgs = this.compSvc.findImagenesByIdComponent(this.imagenes ,this.componente.id);\n } */\n }\n \n\n\n}\n"," <section class=\"gallery-section layout_padding\">\n <div class=\"container\">\n <h2>\n {{'Our-Gallery' | translate}}\n </h2>\n </div>\n <div class=\"container \">\n @for (img of imagenes; track $index) {\n <div [ngClass]=\"'img_box box-' + ($index)\">\n <img [src]=\"img.url?img.url:'images/g-1.png'\" [alt]=\"img.alt\">\n </div>\n }\n </div>\n </section>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, Input } from '@angular/core';\nimport { IonicModule, Platform } from '@ionic/angular';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { Nav1Component } from '../../molecules/nav1/nav1.component';\nimport { Slider1Component } from '../../molecules/slider1/slider1.component';\nimport { Footer1Component } from '../../molecules/footer1/footer1.component';\nimport { ServicesSection1Component } from '../../molecules/services-section1/services-section1.component';\nimport { GallerySection1Component } from '../../molecules/gallery-section1/gallery-section1.component';\n\nimport { BusinessDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-index1',\n standalone: true,\n imports: [\n IonicModule,\n Nav1Component,\n Slider1Component,\n Footer1Component, \n ServicesSection1Component,\n GallerySection1Component,\n ],\n templateUrl: './index1.component.html',\n styleUrl: './index1.component.css',\n})\nexport class Index1Component {\n isMovile = false;\n langs:string[]=[];\n\n\n\n @Input()\n negocio: BusinessDTO ={\n businessModule: [],\n telefono: ''\n };\n\n constructor(private platform: Platform, \n private breakpointObserver: BreakpointObserver,\n private translate: TranslateService,\n) {\n \n this.configurarIdiomas()\n }\n\n ngOnInit(): void {\n this.isMovile = this.platform.is('mobile');\n this.checkScreenSize();\n }\n\n configurarIdiomas(){\n this.langs = [...this.translate.getLangs()];\n this.translate.addLangs([\"es\",\"en\",\"de\",\"pt\"]);\n const defualtBrowserLang = this.translate.getBrowserLang();\n if(defualtBrowserLang) {\n this.translate.use(defualtBrowserLang);\n }else{\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (this.negocio.lenguaje)\n ? this.translate.use(this.negocio.lenguaje)\n :this.translate.use(\"en\")\n }\n }\n\n checkScreenSize() {\n this.breakpointObserver.observe([\n Breakpoints.Handset, \n Breakpoints.Small\n ]).subscribe(result => {\n if (result.matches) {\n this.isMovile = true;\n } else {\n this.isMovile = false;\n }\n });\n }\n}\n"," \n \n <lib-nav1 [negocio]=\"negocio\" [lenguages]=\"langs\">\n </lib-nav1>\n <lib-slider1 [negocio]=\"negocio\"></lib-slider1>\n <lib-services-section1 [negocio]=\"negocio\">\n </lib-services-section1>\n \n <lib-gallery-section1 ></lib-gallery-section1>\n\n <lib-footer1 [negocio]=\"negocio\">\n </lib-footer1>\n \n","import { Component ,Input} from '@angular/core';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ProductoDTO } from '@juliaosistem/core-dtos';\nimport { CurrencyPipe } from '@angular/common';\n\n\n@Component({\n selector: 'lib-sh-wats-button-card',\n imports: [PrimegModule],\n templateUrl: './sh-wats-button-card.html',\n styleUrl: './sh-wats-button-card.css',\n providers: [CurrencyPipe]\n})\nexport class ShWatsButtonCard {\n\n // producto a compartir\n @Input() product : ProductoDTO = {} as ProductoDTO;\n\n // indica si el usuario está logueado\n @Input() isLogin: boolean = false;\n\n // descuento del producto\n @Input() discount: number = 0;\n\n constructor(\n private currencyPipe: CurrencyPipe,\n ) {}\n\n shareProductOnWhatsapp(): void {\n const url = window.location.href;\n let text = '';\n\n if (this.isLogin) {\n const precio = this.currencyPipe.transform(this.discount, this.product.precios[0].codigo_iso, 'code');\n text = `¡Mira esto! ${this.product.name} por solo ${precio}`;\n } else {\n const id = this.product?.id ?? '';\n text = `Hola, estoy interesado en el producto Referencia ${id}: ${this.product.name}`;\n }\n\n window.open(`https://api.whatsapp.com/send?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');\n }\n\n}\n"," <p-button\n (click)=\"shareProductOnWhatsapp()\"\n pTooltip=\"Cotizar\"\n tooltipPosition=\"top\"\n icon=\"pi pi-whatsapp\"\n label=\"Cotizar\"\n styleClass=\"w-full font-bold border-round-lg shadow-3 hover-zoom\"\n class=\"w-full\"\n >\n </p-button>","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { ComponentesDTO, ProductoDTO } from '@juliaosistem/core-dtos';\nimport { CommonModule } from '@angular/common';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\n\n@Component({\n selector: 'lib-button-add-to-card1',\n imports: [CommonModule, PrimegModule],\n templateUrl: './button-add-to-card1.html',\n styleUrl: './button-add-to-card1.scss',\n standalone: true\n})\nexport class ButtonAddToCard1 {\n\n @Input() product!: ProductoDTO;\n\n @Output() addToCart = new EventEmitter<{ product: ProductoDTO; quantity: number }>();\n\n componente: ComponentesDTO = {\n id: 25,\n nombreComponente: 'lib-button-add-to-card1',\n version: '1.0',\n };\n\n showQuantitySelector: boolean = false;\n selectedQuantity: number = 0;\n\n handleAddToCart(): void {\n this.selectedQuantity = 1;\n this.showQuantitySelector = true;\n\n this.emitAddToCart();\n }\n\n incrementQuantity(): void {\n if (this.selectedQuantity < (this.product?.cantidad ?? 0)) {\n this.selectedQuantity++;\n this.emitAddToCart();\n }\n }\n\n decrementQuantity(): void {\n if (this.selectedQuantity > 0) {\n this.selectedQuantity--;\n\n if (this.selectedQuantity === 0) {\n this.showQuantitySelector = false;\n }\n\n this.emitAddToCart();\n }\n }\n\n private emitAddToCart(): void {\n this.addToCart.emit({\n product: this.product,\n quantity: this.selectedQuantity\n });\n }\n}\n","@if (!showQuantitySelector) {\n <p-button \n label=\"Agregar al carrito\"\n icon=\"pi pi-shopping-cart\"\n (onClick)=\"handleAddToCart()\"\n styleClass=\"w-full font-bold border-round-lg shadow-3 py-3 hover-zoom\" \n class=\"w-full\">\n </p-button>\n}\n\n@if (showQuantitySelector) {\n <div class=\"flex align-items-center justify-content-between surface-card p-2 border-round-xl shadow-3 w-full\">\n \n <p-button \n icon=\"pi pi-minus\" \n (onClick)=\"decrementQuantity()\"\n [rounded]=\"true\"\n [outlined]=\"true\"\n severity=\"secondary\"\n styleClass=\"w-3rem h-3rem border-2 border-400 text-500 p-0\"\n ></p-button>\n\n <div class=\"flex align-items-center gap-2\">\n <span class=\"font-bold text-900\">und.</span>\n \n <span class=\"w-3rem h-3rem text-900 flex align-items-center justify-content-center border-1 surface-border border-round text-xl font-semibold\">\n {{ selectedQuantity }}\n </span>\n </div>\n\n <p-button \n icon=\"pi pi-plus\" \n (onClick)=\"incrementQuantity()\"\n [rounded]=\"true\"\n [outlined]=\"true\"\n styleClass=\"w-3rem h-3rem border-2 border-orange-500 text-orange-500 p-0 hover:bg-orange-50\"\n ></p-button>\n\n </div>\n}","import { ProductoDTO } from '@juliaosistem/core-dtos';\nimport { Component, Input } from '@angular/core';\nimport { ShWatsButtonCard } from \"../../atoms/sh-wats-button-card/sh-wats-button-card\";\nimport { ButtonAddToCard1 } from \"../../atoms/button-add-to-card1/button-add-to-card1\";\n\n@Component({\n selector: 'lib-section-add-cards-buttons',\n imports: [ShWatsButtonCard, ButtonAddToCard1],\n templateUrl: './section-add-cards-buttons.html',\n styleUrl: './section-add-cards-buttons.scss',\n})\nexport class SectionAddCardsButtons {\n\n @Input() product!: ProductoDTO;\n @Input() isLogin: boolean = false;\n\n onAddToCart(event: { product: ProductoDTO; quantity: number }): void {\n // Aquí puedes manejar el evento de agregar al carrito si es necesario\n console.log('Producto agregado al carrito:', event);\n }\n\n}\n","@if (isLogin) {\n <lib-button-add-to-card1 [product]=\"product\" (addToCart)=\"onAddToCart($event)\">\n </lib-button-add-to-card1>\n} @else {\n <lib-sh-wats-button-card [product]=\"product\" [isLogin]=\"isLogin\">\n </lib-sh-wats-button-card>\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PlantillaResponse } from 'juliaositembackenexpress/dist/utils/PlantillaResponse';\nimport { QueryParams } from 'juliaositembackenexpress/dist/utils/queryParams';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JuliaoSystemCrudHttpService<RES, RQ> {\n protected http: HttpClient;\n basePathUrl: string = \"\";\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n /**\n * Agrega una nueva entidad\n * @param request Datos de la entidad a agregar\n * @param queryParams Parámetros de consulta estándar\n */\n add(\n request: RQ extends { id: string | number } ? RQ : RQ & { id: string | number },\n queryParams: QueryParams\n ): Observable<PlantillaResponse<RES>> {\n const headers = this.buildHeaders(queryParams);\n return this.http.post<PlantillaResponse<RES>>(\n `${this.basePathUrl}/add`, \n request,\n { headers }\n );\n }\n\n /**\n * Obtiene todas las entidades\n * @param queryParams Parámetros de consulta estándar\n * @param filters Filtros adicionales (opcional)\n */\n all(\n queryParams: QueryParams,\n filters?: Map<string, string>\n ): Observable<PlantillaResponse<RES>> {\n const headers = this.buildHeaders(queryParams);\n let url = `${this.basePathUrl}/all`;\n \n if (filters && filters.size > 0) {\n const filterParams = Array.from(filters.entries())\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n url += `?${filterParams}`;\n }\n\n return this.http.get<PlantillaResponse<RES>>(url, { headers });\n }\n\n /**\n * Actualiza una entidad existente\n * @param request Datos actualizados de la entidad\n * @param queryParams Parámetros de consulta estándar\n */\n update(\n request: RQ,\n queryParams: QueryParams\n ): Observable<PlantillaResponse<RES>> {\n const headers = this.buildHeaders(queryParams);\n return this.http.put<PlantillaResponse<RES>>(\n `${this.basePathUrl}/update`,\n request,\n { headers }\n );\n }\n\n /**\n * Elimina una entidad\n * @param queryParams Parámetros de consulta estándar\n */\n delete(\n queryParams: QueryParams\n ): Observable<PlantillaResponse<RES>> {\n const headers = this.buildHeaders(queryParams);\n const url = `${this.basePathUrl}/delete?id=${queryParams.id}`;\n return this.http.delete<PlantillaResponse<RES>>(url, { headers });\n }\n\n /**\n * Método virtual para obtener datos mock\n * Debe ser implementado por las clases hijas que necesiten datos mock\n * @returns Array de datos mock o null si no está implementado\n */\n getMockData?(): RES[] | null {\n return null;\n }\n\n \n\n /**\n * Construye los headers HTTP a partir de los QueryParams\n * @param queryParams Parámetros de consulta\n * @private\n */\n private buildHeaders(queryParams: QueryParams): HttpHeaders {\n let headers = new HttpHeaders();\n \n if (queryParams.ip) headers = headers.append('ip', queryParams.ip);\n if (queryParams.dominio) headers = headers.append('dominio', queryParams.dominio) ;\n if (queryParams.usuario) headers = headers.append('usuario', queryParams.usuario);\n \n if (queryParams.idBusiness) headers = headers.append('idBusiness', queryParams.idBusiness.toString());\n \n if (queryParams.proceso) headers = headers.append('proceso', queryParams.proceso);\n \n if (queryParams.topic) headers = headers.append('topic', queryParams.topic);\n\n if (queryParams.token) headers = headers.append('Authorization', `Bearer ${queryParams.token}`);\n \n if (queryParams.id) headers = headers.append('id', queryParams.id.toString());\n \n return headers;\n }\n}","import { Injectable, InjectionToken, Inject, Optional } from '@angular/core';\n\nexport interface LibCommonConfig {\n baseUrlProducts?: string;\n baseUrlAuth?: string;\n baseUrlUsers?: string;\n apiVersion?: string;\n timeout?: number;\n [key: string]: unknown;\n}\n\nexport const LIB_COMMON_CONFIG = new InjectionToken<LibCommonConfig>('LIB_COMMON_CONFIG');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LibConfigService {\n private config: LibCommonConfig = {\n baseUrlProducts: 'http://localhost:3000/products',\n baseUrlAuth: 'http://localhost:3000/auth',\n baseUrlUsers: 'http://localhost:3000/users',\n baseUrlBusiness: 'http://localhost:3000/Business',\n baseUrlCurrency: 'http://localhost:3000/Currency',\n baseUrlCategoryProduct: 'http://localhost:3000/category-products',\n apiVersion: 'v1',\n timeout: 30000\n };\n///// esto va en envoroment \n\n\n\n\n constructor(@Optional() @Inject(LIB_COMMON_CONFIG) private injectedConfig: LibCommonConfig) {\n if (injectedConfig) {\n this.config = { ...this.config, ...injectedConfig };\n }\n }\n\n get<T = unknown>(key: string): T {\n return this.config[key] as T;\n }\n\n getConfig(): LibCommonConfig {\n return { ...this.config };\n }\n\n updateConfig(newConfig: Partial<LibCommonConfig>): void {\n this.config = { ...this.config, ...newConfig };\n }\n}\n","/* eslint-disable max-lines-per-function */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { CategoriaDTO, ProductoDTO } from '@juliaosistem/core-dtos';\nimport { LibConfigService } from '../../../config/lib-config.service';\nimport { JuliaoSystemCrudHttpService } from '../../../config/JuliaoSystemCrudHttpService';\n\nexport interface Product {\n id?: string;\n code?: string;\n name?: string;\n description?: string;\n price?: number;\n quantity?: number;\n inventoryStatus?: string;\n category?: string;\n image?: string;\n rating?: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductService extends JuliaoSystemCrudHttpService<ProductoDTO, ProductoDTO> {\n\n \n constructor(http: HttpClient, private configService: LibConfigService) {\n super(http);\n const baseUrl = this.configService.get<string>('baseUrlProducts') || 'http://localhost:3000/products';\n this.basePathUrl = `${baseUrl}/product`;\n }\n\n mockProductoDTO(): ProductoDTO {\n return {\n id: '550e8400-e29b-41d4-a716-446655440000',\n name: \"Maleta Viaje Mediana Con Ruedas Resistente Moderna 20-22kg\",\n\n precios: [{\n codigo_iso: \"COP\",\n nombreMoneda: \"Peso colombiano\",\n precio: 350000\n }, {\n codigo_iso: \"USD\",\n nombreMoneda: \"Dólar estadounidense\",\n precio: 95\n }],\n\n idCategoria: \"Viajes y equipaje\",\n cantidad: 15,\n imagen: [{\n id: \"1\",\n url: \"https://placehold.co/600x600/F5C7A5/000?text=Maleta+Rosa\",\n alt: \"Maleta Rosa\",\n idComponente: 0\n }, {\n id: \"2\",\n url: \"https://placehold.co/600x600/FFFF33/000?text=Maleta+Amarilla\",\n alt: \"Maleta Amarilla\",\n idComponente: 0\n }, {\n id: \"3\",\n url: \"https://placehold.co/600x600/F5C7A5/000?text=Maleta+Rosa\",\n alt: \"Maleta Amarilla\",\n idComponente: 0\n }, {\n id: \"4\",\n url: \"https://placehold.co/600x600/FFFFCC/000?text=Maleta+beige\",\n alt: \"Maleta Beige\",\n idComponente: 0\n }\n\n ],\n descripcion: '',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n estado: \"Activo\",\n idDatosUsuario: \"550e8400-e29b-41d4-a716-446655440000\",\n idBusiness: 1\n };\n\n }\n\n /**\n * Método para Agregarle el nombre de la categoría a cada producto\n * @param products Lista de productos a los cuales se les va a agregar el nombre de la categoría\n * @param categorias Lista de categorías disponibles\n * @return Lista de productos con el nombre de la categoría agregado\n */\n addNameCategoriaToProducts(products: ProductoDTO[], categorias: CategoriaDTO[]): ProductoDTO[] {\n return products.map(product => {\n const categoria = categorias.find(c => c.id === product.idCategoria);\n if (categoria) {\n product.nombreCategoria = categoria.nombreCategoria;\n }\n return product;\n });\n }\n\n mockCategoriaInflablesDTO(): CategoriaDTO []{\n return [ \n\n {\n id: 'MCAS',\n nombreCategoria: \"Mini Castillos\",\n tipoCategoria: { id: 1, nombreTipoCategoria: \"Inflables\" } \n },\n {\n id: 'CAS',\n nombreCategoria: \"Castillos\",\n tipoCategoria: { id: 1, nombreTipoCategoria: \"Inflables\" } \n },\n {\n id: 'TOB',\n nombreCategoria: \"Toboganes\",\n tipoCategoria: { id: 1, nombreTipoCategoria: \"Inflables\" } \n },\n {\n id: 'MTOB',\n nombreCategoria: \"Mini Toboganes\",\n tipoCategoria: { id: 1, nombreTipoCategoria: \"Inflables\" } \n },\n {\n id: 'DES',\n nombreCategoria: \"Diseños Especiales\",\n tipoCategoria: { id: 1, nombreTipoCategoria: \"Inflables\" } \n },\n {\n id: 'PUB',\n nombreCategoria: \"Publicitarios\",\n tipoCategoria: { id: 1, nombreTipoCategoria: \"Inflables\" } \n },\n \n ];\n }\n // Interfaces asumidas: ProductoDTO, MonedaDTO, ImagenDTO\n\nmockProductosInflablesDTO(): ProductoDTO[] {\n return [\n {\n id: 'MCAS25-001',\n name: 'PISCINA DE PELOTAS 3X3',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 3100000 }],\n descuento: 0,\n cantidad: 15,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '1', url: 'https://drive.google.com/file/d/1bvUYjg5pAVCoUV8pgivUej1QNaVcEhdR/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2.50 ALTO X 3 DE ANCHO X 3 DE FONDO IMPRESIONES OPCIONALES DE 50 X 70',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-002',\n name: 'CASTILLO MALLAS',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 3100000 }],\n descuento: 0,\n cantidad: 15,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '2', url: 'https://drive.google.com/file/d/1Kv_0hwdmKOSBPM2Tc8YBdqFt2W7C6hKv/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2.50 ALTO X 3 DE ANCHO X 3 DE FONDO IMPRESIONES OPCIONALES DE 50 X 70',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-003',\n name: 'CASTILLO RESBALADERO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 3100000 }],\n descuento: 0,\n cantidad: 15,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '3', url: 'https://drive.google.com/file/d/1rESa51mTMOkwfMFRck2u2rh6gePoMRIM/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2.50 ALTO X 3 DE ANCHO X 3 DE FONDO IMPRESIONES OPCIONALES DE 50 X 70',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-004',\n name: 'COCODRILO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 4699000 }],\n descuento: 0,\n cantidad: 10,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '4', url: 'https://drive.google.com/file/d/1vVF_uOXj5WKJRmKjWaostKAKiZONI-Mv/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2.50 ALTO X 4 DE ANCHO X 4 DE FONDO CABEZA DE COCODRILO SIN IMPRESIONES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-005',\n name: 'CASTILLO MINI LEGO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 4799000 }],\n descuento: 0,\n cantidad: 10,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '5', url: 'https://drive.google.com/file/d/1igto2LItg_YOH67C33KLN9KEr0V79Pg-/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2 ALTO X 4.20 DE ANCHO X 2.80 DE FONDO SIN IMPRESIONES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-006',\n name: 'COCODRILO PALMERAS',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 4950000 }],\n descuento: 0,\n cantidad: 10,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '6', url: 'https://drive.google.com/file/d/1cO465kNABoYCtJfhWah31D8aUlb6TFkF/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2.20 ALTO X 4.50 DE ANCHO X 4 DE FONDO SIN IMPRESIONES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-007',\n name: 'HIPOPOTAMO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5100000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '7', url: 'https://drive.google.com/file/d/1pHMB_50b1mdzeMCTxFhFl3X4tYkb-5uN/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2 ALTO X 4 DE ANCHO X 4 DE FONDO IMPRESIONES OPCIONALES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-008',\n name: 'MINI ZIGMA',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 2300000 }],\n descuento: 0,\n cantidad: 20,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '8', url: 'https://drive.google.com/file/d/1srxXIRMwzn_TgNXdFV28zYpvBe9d8CrF/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: '2 X 2 METROS (COLORES E IMPRESIÓN FRONTAL PERSONALIZABLE) (SIN PISCINA DE PELOTAS)',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-009',\n name: 'MINI ZIGMA BALL POOL',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 2600000 }],\n descuento: 0,\n cantidad: 20,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '9', url: 'https://drive.google.com/file/d/1PWiq10DrH7XA97MZpyekdboSL8NEvGRu/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: '2 X 2 METROS (COLORES E IMPRESIÓN FRONTAL PERSONALIZABLE) + PISCINA DE PELOTAS',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'MCAS25-010',\n name: 'MINI PATROL',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 3400000 }],\n descuento: 0,\n cantidad: 12,\n idBusiness: 1,\n idCategoria: 'MCAS',\n nombreCategoria: '',\n imagen: [{ id: '10', url: 'https://drive.google.com/file/d/1eMqzqQBYH5ewcKdVBqA3_M3RS4iFZw2m/view?usp=drive_link', alt: 'inflables recreativos', idComponente: 0 }],\n estado: 'Activo',\n descripcion: 'MINI CASTILLO 2.50 ALTO X 3 DE ANCHO X 3 DE FONDO IMPRESIÓN DE LA TOTALIDAD DEL FRENTE',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n },\n {\n id: 'CAS25-001',\n name: '0’',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 4899000 }],\n descuento: 0,\n cantidad: 10,\n idBusiness: 1,\n idCategoria: 'CAS',\n nombreCategoria: '',\n imagen: [{\n id: '1',\n url: 'https://drive.google.com/file/d/1GgA8XdkTZOPXkgZ1ufIQeNDp1GBovxcY/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'CASTILLO 2.50 ALTO X 4 DE ANCHO X 4 DE FONDO IMPRESION FRONTAL PERSONALIZABLE',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'CAS25-002',\n name: 'CASTILLO ALADINO 4X4',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 4799000 }],\n descuento: 0,\n cantidad: 10,\n idBusiness: 1,\n idCategoria: 'CAS',\n nombreCategoria: '',\n imagen: [{\n id: '2',\n url: 'https://drive.google.com/file/d/1QHGz5Ex0z2QIJVopCMDuGJSPVq9BxRx3/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'CASTILLO 2.50 ALTO X 4 DE ANCHO X 4 DE FONDO SIN IMPRESIONES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'CAS25-003',\n name: 'CASTILLO MINIPARQUE',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5300000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'CAS',\n nombreCategoria: '',\n imagen: [{\n id: '3',\n url: 'https://drive.google.com/file/d/1_JO6BeLOCgmtS_stTQn3uVF-OnBZvo9B/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'CASTILLO 2.60 ALTO X 4.50 DE ANCHO X 4.50 DE FONDO SIN IMPRESIONES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'CAS25-004',\n name: 'CASTILLO LEGO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5100000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'CAS',\n nombreCategoria: '',\n imagen: [{\n id: '4',\n url: 'https://drive.google.com/file/d/191Ya70oOtS30hJJX4FTfujT6fDJqqmZ1/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'CASTILLO 2.50 ALTO X 3 DE ANCHO X 3 DE FONDO SIN IMPRESIONES',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'CAS25-005',\n name: 'CASTILLO PALMERAS',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5300000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'CAS',\n nombreCategoria: '',\n imagen: [{\n id: '5',\n url: 'https://drive.google.com/file/d/16trPA0UrmplvXkP8tgl6JYNNWGSfYe6J/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'CASTILLO 2.70 ALTO X 5 DE ANCHO X 5 DE FONDO SIN IMPRESIONES TORRES EN FORMA DE PALMERAS',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},{\n id: 'MTOB25-001',\n name: 'MINI TOBOGAN COCODRILO Y PALMERAS',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 6800000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '1',\n url: 'https://drive.google.com/file/d/1kLTJjAMHSrpYB6glbjDu3kUthgJWPmVq/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'MINI TOBOGAN 4.50 ALTO X 4 DE ANCHO X 5 DE FONDO SIN IMPRESIONES ENTRADA CABEZA FORMA DE COCODRILO',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-002',\n name: 'MINI TOBOGAN DISNEY',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5999000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '2',\n url: 'https://drive.google.com/file/d/1C_6RPI3Z4-qIeN5bLL6MkR4ZneVO_jY1/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'MINI TOBOGAN 4.50 ALTO X 4 DE ANCHO X 5 DE FONDO 2 IMPRESIONES FRONTALES, IMPRESIONES TROQUELADAS EN TORRES, PEDESTAL Y ARCOS',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-003',\n name: 'MINI TOBOGAN MARVEL',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5999000 }],\n descuento: 0,\n cantidad: 8,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '3',\n url: 'https://drive.google.com/file/d/1LPDwvgFZq5azSCYMBB_zZkX_Y3U5-Qut/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'MINI TOBOGAN 4.50 ALTO X 4 DE ANCHO X 5 DE FONDO 3 IMPRESIONES FRONTALES, COLCHONES IMPRESOS EN TORRES Y PEDESTAL, ARCOS IMPRESOS',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-004',\n name: 'MINI TOBOGAN MARVEL 2',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 6500000 }],\n descuento: 0,\n cantidad: 6,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '4',\n url: 'https://drive.google.com/file/d/1q5EalGuF9Nu70XbmlaGliGJ3hf4rZjX5/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: '3.50 ALTO X 4 DE ANCHO X 6 DE FONDO IMPRESIONES FRONTALES Y EN ARCOS Y PEDESTAL',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-005',\n name: 'MINI TOBOGAN SUPER MARIO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5999000 }],\n descuento: 0,\n cantidad: 6,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '5',\n url: 'https://drive.google.com/file/d/1P36rzlCNbcoS90Rp6aMEcte0BIcg24uh/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'MINI TOBOGAN 4.50 ALTO X 4 DE ANCHO X 5 DE FONDO 3 IMPRESIONES FRONTALES, COLCHON IMPRESO EN PEDESTAL',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-006',\n name: 'MINI TOBOGAN TORRE ALTA',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 6500000 }],\n descuento: 0,\n cantidad: 6,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '6',\n url: 'https://drive.google.com/file/d/1tDpZ6d54qCGmzqKYxQ0AQmPOeWYRPtP7/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'MINI TOBOGAN 4.50 ALTO X 4 DE ANCHO X 5 DE FONDO SIN IMPRESIONES, MALLAS A LOS LADOS DE LA ENTRADA',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-007',\n name: 'MINI TOBOGAN JUMBO',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 6500000 }],\n descuento: 0,\n cantidad: 6,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '7',\n url: 'https://drive.google.com/file/d/1oiWtIBvD-oQZ8tVVPxPxYpJT6hQLm42_/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: '4 ALTO X 5.30 DE ANCHO X 4.50 DE FONDO 3 IMPRESIONES FRONTALES Y 1 EN TOBOGAN',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-008',\n name: 'MINI TOBOGAN JUMBO 2',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 6900000 }],\n descuento: 0,\n cantidad: 0,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '8',\n url: 'https://drive.google.com/file/d/1nYIoUKm-mYFy1O0gcDS1f3uleSIMJUOb/view?usp=drive_link',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: '4.50 ALTO X 5.30 DE ANCHO X 4.50 DE FONDO 2 MUÑECOS 3D EN CADA ESQUINA 3 IMPRESIONES FRONTALES 1 EN TOBOGAN Y 1 EN ENTRADA',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-009',\n name: 'MINI TOBOGAN MICKEY',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 6500000 }],\n descuento: 0,\n cantidad: 0,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '9',\n url: 'https://drive.google.com/file/d/1nzBYU-wXSk3fIISoPrPCHokpgPxqOXSH/view?usp=drivesdk',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: 'MINI TOBOGAN 4.50 ALTO X 4 DE ANCHO X 5 LARGO, 1 SUBIDA, DOS DESLIZADEROS, ZONA DE BRINCO, 1 MUÑECO 3D E IMPRESIONES FRONTALES A GUSTO',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n},\n{\n id: 'MTOB25-010',\n name: 'MINI TOBOGAN COLORES',\n precios: [{ codigo_iso: 'COP', nombreMoneda: 'Peso colombiano', precio: 5700000 }],\n descuento: 0,\n cantidad: 5,\n idBusiness: 1,\n idCategoria: 'MTOB',\n nombreCategoria: '',\n imagen: [{\n id: '10',\n url: '',\n alt: 'inflables recreativos',\n idComponente: 0\n }],\n estado: 'Activo',\n descripcion: '',\n comision: 0,\n fechaCreacion: '',\n fechaActualizacion: '',\n idDatosUsuario: '550e8400-e29b-41d4-a716-446655440000'\n}\n\n\n ];\n}\n\n getProductsData() {\n return [\n {\n id: '1000',\n code: 'f230fh0g3',\n name: 'Bamboo Watch',\n description: 'Product Description',\n image: 'bamboo-watch.jpg',\n price: 65,\n category: 'Accessories',\n quantity: 24,\n inventoryStatus: 'INSTOCK',\n rating: 5\n },\n {\n id: '1001',\n code: 'nvklal433',\n name: 'Black Watch',\n description: 'Product Description',\n image: 'black-watch.jpg',\n price: 72,\n category: 'Accessories',\n quantity: 61,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1002',\n code: 'zz21cz3c1',\n name: 'Blue Band',\n description: 'Product Description',\n image: 'blue-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 2,\n inventoryStatus: 'LOWSTOCK',\n rating: 3\n },\n {\n id: '1003',\n code: '244wgerg2',\n name: 'Blue T-Shirt',\n description: 'Product Description',\n image: 'blue-t-shirt.jpg',\n price: 29,\n category: 'Clothing',\n quantity: 25,\n inventoryStatus: 'INSTOCK',\n rating: 5\n },\n {\n id: '1004',\n code: 'h456wer53',\n name: 'Bracelet',\n description: 'Product Description',\n image: 'bracelet.jpg',\n price: 15,\n category: 'Accessories',\n quantity: 73,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1005',\n code: 'av2231fwg',\n name: 'Brown Purse',\n description: 'Product Description',\n image: 'brown-purse.jpg',\n price: 120,\n category: 'Accessories',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 4\n },\n {\n id: '1006',\n code: 'bib36pfvm',\n name: 'Chakra Bracelet',\n description: 'Product Description',\n image: 'chakra-bracelet.jpg',\n price: 32,\n category: 'Accessories',\n quantity: 5,\n inventoryStatus: 'LOWSTOCK',\n rating: 3\n },\n {\n id: '1007',\n code: 'mbvjkgip5',\n name: 'Galaxy Earrings',\n description: 'Product Description',\n image: 'galaxy-earrings.jpg',\n price: 34,\n category: 'Accessories',\n quantity: 23,\n inventoryStatus: 'INSTOCK',\n rating: 5\n },\n {\n id: '1008',\n code: 'vbb124btr',\n name: 'Game Controller',\n description: 'Product Description',\n image: 'game-controller.jpg',\n price: 99,\n category: 'Electronics',\n quantity: 2,\n inventoryStatus: 'LOWSTOCK',\n rating: 4\n },\n {\n id: '1009',\n code: 'cm230f032',\n name: 'Gaming Set',\n description: 'Product Description',\n image: 'gaming-set.jpg',\n price: 299,\n category: 'Electronics',\n quantity: 63,\n inventoryStatus: 'INSTOCK',\n rating: 3\n },\n {\n id: '1010',\n code: 'plb34234v',\n name: 'Gold Phone Case',\n description: 'Product Description',\n image: 'gold-phone-case.jpg',\n price: 24,\n category: 'Accessories',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 4\n },\n {\n id: '1011',\n code: '4920nnc2d',\n name: 'Green Earbuds',\n description: 'Product Description',\n image: 'green-earbuds.jpg',\n price: 89,\n category: 'Electronics',\n quantity: 23,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1012',\n code: '250vm23cc',\n name: 'Green T-Shirt',\n description: 'Product Description',\n image: 'green-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 74,\n inventoryStatus: 'INSTOCK',\n rating: 5\n },\n {\n id: '1013',\n code: 'fldsmn31b',\n name: 'Grey T-Shirt',\n description: 'Product Description',\n image: 'grey-t-shirt.jpg',\n price: 48,\n category: 'Clothing',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 3\n },\n {\n id: '1014',\n code: 'waas1x2as',\n name: 'Headphones',\n description: 'Product Description',\n image: 'headphones.jpg',\n price: 175,\n category: 'Electronics',\n quantity: 8,\n inventoryStatus: 'LOWSTOCK',\n rating: 5\n },\n {\n id: '1015',\n code: 'vb34btbg5',\n name: 'Light Green T-Shirt',\n description: 'Product Description',\n image: 'light-green-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 34,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1016',\n code: 'k8l6j58jl',\n name: 'Lime Band',\n description: 'Product Description',\n image: 'lime-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 12,\n inventoryStatus: 'INSTOCK',\n rating: 3\n },\n {\n id: '1017',\n code: 'v435nn85n',\n name: 'Mini Speakers',\n description: 'Product Description',\n image: 'mini-speakers.jpg',\n price: 85,\n category: 'Clothing',\n quantity: 42,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1018',\n code: '09zx9c0zc',\n name: 'Painted Phone Case',\n description: 'Product Description',\n image: 'painted-phone-case.jpg',\n price: 56,\n category: 'Accessories',\n quantity: 41,\n inventoryStatus: 'INSTOCK',\n rating: 5\n },\n {\n id: '1019',\n code: 'mnb5mb2m5',\n name: 'Pink Band',\n description: 'Product Description',\n image: 'pink-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 63,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1020',\n code: 'r23fwf2w3',\n name: 'Pink Purse',\n description: 'Product Description',\n image: 'pink-purse.jpg',\n price: 110,\n category: 'Accessories',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 4\n },\n {\n id: '1021',\n code: 'pxpzczo23',\n name: 'Purple Band',\n description: 'Product Description',\n image: 'purple-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 6,\n inventoryStatus: 'LOWSTOCK',\n rating: 3\n },\n {\n id: '1022',\n code: '2c42cb5cb',\n name: 'Purple Gemstone Necklace',\n description: 'Product Description',\n image: 'purple-gemstone-necklace.jpg',\n price: 45,\n category: 'Accessories',\n quantity: 62,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1023',\n code: '5k43kkk23',\n name: 'Purple T-Shirt',\n description: 'Product Description',\n image: 'purple-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 2,\n inventoryStatus: 'LOWSTOCK',\n rating: 5\n },\n {\n id: '1024',\n code: 'lm2tny2k4',\n name: 'Shoes',\n description: 'Product Description',\n image: 'shoes.jpg',\n price: 64,\n category: 'Clothing',\n quantity: 0,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1025',\n code: 'nbm5mv45n',\n name: 'Sneakers',\n description: 'Product Description',\n image: 'sneakers.jpg',\n price: 78,\n category: 'Clothing',\n quantity: 52,\n inventoryStatus: 'INSTOCK',\n rating: 4\n },\n {\n id: '1026',\n code: 'zx23zc42c',\n name: 'Teal T-Shirt',\n description: 'Product Description',\n image: 'teal-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 3,\n inventoryStatus: 'LOWSTOCK',\n rating: 3\n },\n {\n id: '1027',\n code: 'acvx872gc',\n name: 'Yellow Earbuds',\n description: 'Product Description',\n image: 'yellow-earbuds.jpg',\n price: 89,\n category: 'Electronics',\n quantity: 35,\n inventoryStatus: 'INSTOCK',\n rating: 3\n },\n {\n id: '1028',\n code: 'tx125ck42',\n name: 'Yoga Mat',\n description: 'Product Description',\n image: 'yoga-mat.jpg',\n price: 20,\n category: 'Fitness',\n quantity: 15,\n inventoryStatus: 'INSTOCK',\n rating: 5\n },\n {\n id: '1029',\n code: 'gwuby345v',\n name: 'Yoga Set',\n description: 'Product Description',\n image: 'yoga-set.jpg',\n price: 20,\n category: 'Fitness',\n quantity: 25,\n inventoryStatus: 'INSTOCK',\n rating: 8\n }\n ];\n }\n\n getProductsWithOrdersData() {\n return [\n {\n id: '1000',\n code: 'f230fh0g3',\n name: 'Bamboo Watch',\n description: 'Product Description',\n image: 'bamboo-watch.jpg',\n price: 65,\n category: 'Accessories',\n quantity: 24,\n inventoryStatus: 'INSTOCK',\n rating: 5,\n orders: [\n {\n id: '1000-0',\n productCode: 'f230fh0g3',\n date: '2020-09-13',\n amount: 65,\n quantity: 1,\n customer: 'David James',\n status: 'PENDING'\n },\n {\n id: '1000-1',\n productCode: 'f230fh0g3',\n date: '2020-05-14',\n amount: 130,\n quantity: 2,\n customer: 'Leon Rodrigues',\n status: 'DELIVERED'\n },\n {\n id: '1000-2',\n productCode: 'f230fh0g3',\n date: '2019-01-04',\n amount: 65,\n quantity: 1,\n customer: 'Juan Alejandro',\n status: 'RETURNED'\n },\n {\n id: '1000-3',\n productCode: 'f230fh0g3',\n date: '2020-09-13',\n amount: 195,\n quantity: 3,\n customer: 'Claire Morrow',\n status: 'CANCELLED'\n }\n ]\n },\n {\n id: '1001',\n code: 'nvklal433',\n name: 'Black Watch',\n description: 'Product Description',\n image: 'black-watch.jpg',\n price: 72,\n category: 'Accessories',\n quantity: 61,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1001-0',\n productCode: 'nvklal433',\n date: '2020-05-14',\n amount: 72,\n quantity: 1,\n customer: 'Maisha Jefferson',\n status: 'DELIVERED'\n },\n {\n id: '1001-1',\n productCode: 'nvklal433',\n date: '2020-02-28',\n amount: 144,\n quantity: 2,\n customer: 'Octavia Murillo',\n status: 'PENDING'\n }\n ]\n },\n {\n id: '1002',\n code: 'zz21cz3c1',\n name: 'Blue Band',\n description: 'Product Description',\n image: 'blue-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 2,\n inventoryStatus: 'LOWSTOCK',\n rating: 3,\n orders: [\n {\n id: '1002-0',\n productCode: 'zz21cz3c1',\n date: '2020-07-05',\n amount: 79,\n quantity: 1,\n customer: 'Stacey Leja',\n status: 'DELIVERED'\n },\n {\n id: '1002-1',\n productCode: 'zz21cz3c1',\n date: '2020-02-06',\n amount: 79,\n quantity: 1,\n customer: 'Ashley Wickens',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1003',\n code: '244wgerg2',\n name: 'Blue T-Shirt',\n description: 'Product Description',\n image: 'blue-t-shirt.jpg',\n price: 29,\n category: 'Clothing',\n quantity: 25,\n inventoryStatus: 'INSTOCK',\n rating: 5,\n orders: []\n },\n {\n id: '1004',\n code: 'h456wer53',\n name: 'Bracelet',\n description: 'Product Description',\n image: 'bracelet.jpg',\n price: 15,\n category: 'Accessories',\n quantity: 73,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1004-0',\n productCode: 'h456wer53',\n date: '2020-09-05',\n amount: 60,\n quantity: 4,\n customer: 'Mayumi Misaki',\n status: 'PENDING'\n },\n {\n id: '1004-1',\n productCode: 'h456wer53',\n date: '2019-04-16',\n amount: 2,\n quantity: 30,\n customer: 'Francesco Salvatore',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1005',\n code: 'av2231fwg',\n name: 'Brown Purse',\n description: 'Product Description',\n image: 'brown-purse.jpg',\n price: 120,\n category: 'Accessories',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 4,\n orders: [\n {\n id: '1005-0',\n productCode: 'av2231fwg',\n date: '2020-01-25',\n amount: 120,\n quantity: 1,\n customer: 'Isabel Sinclair',\n status: 'RETURNED'\n },\n {\n id: '1005-1',\n productCode: 'av2231fwg',\n date: '2019-03-12',\n amount: 240,\n quantity: 2,\n customer: 'Lionel Clifford',\n status: 'DELIVERED'\n },\n {\n id: '1005-2',\n productCode: 'av2231fwg',\n date: '2019-05-05',\n amount: 120,\n quantity: 1,\n customer: 'Cody Chavez',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1006',\n code: 'bib36pfvm',\n name: 'Chakra Bracelet',\n description: 'Product Description',\n image: 'chakra-bracelet.jpg',\n price: 32,\n category: 'Accessories',\n quantity: 5,\n inventoryStatus: 'LOWSTOCK',\n rating: 3,\n orders: [\n {\n id: '1006-0',\n productCode: 'bib36pfvm',\n date: '2020-02-24',\n amount: 32,\n quantity: 1,\n customer: 'Arvin Darci',\n status: 'DELIVERED'\n },\n {\n id: '1006-1',\n productCode: 'bib36pfvm',\n date: '2020-01-14',\n amount: 64,\n quantity: 2,\n customer: 'Izzy Jones',\n status: 'PENDING'\n }\n ]\n },\n {\n id: '1007',\n code: 'mbvjkgip5',\n name: 'Galaxy Earrings',\n description: 'Product Description',\n image: 'galaxy-earrings.jpg',\n price: 34,\n category: 'Accessories',\n quantity: 23,\n inventoryStatus: 'INSTOCK',\n rating: 5,\n orders: [\n {\n id: '1007-0',\n productCode: 'mbvjkgip5',\n date: '2020-06-19',\n amount: 34,\n quantity: 1,\n customer: 'Jennifer Smith',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1008',\n code: 'vbb124btr',\n name: 'Game Controller',\n description: 'Product Description',\n image: 'game-controller.jpg',\n price: 99,\n category: 'Electronics',\n quantity: 2,\n inventoryStatus: 'LOWSTOCK',\n rating: 4,\n orders: [\n {\n id: '1008-0',\n productCode: 'vbb124btr',\n date: '2020-01-05',\n amount: 99,\n quantity: 1,\n customer: 'Jeanfrancois David',\n status: 'DELIVERED'\n },\n {\n id: '1008-1',\n productCode: 'vbb124btr',\n date: '2020-01-19',\n amount: 198,\n quantity: 2,\n customer: 'Ivar Greenwood',\n status: 'RETURNED'\n }\n ]\n },\n {\n id: '1009',\n code: 'cm230f032',\n name: 'Gaming Set',\n description: 'Product Description',\n image: 'gaming-set.jpg',\n price: 299,\n category: 'Electronics',\n quantity: 63,\n inventoryStatus: 'INSTOCK',\n rating: 3,\n orders: [\n {\n id: '1009-0',\n productCode: 'cm230f032',\n date: '2020-06-24',\n amount: 299,\n quantity: 1,\n customer: 'Kadeem Mujtaba',\n status: 'PENDING'\n },\n {\n id: '1009-1',\n productCode: 'cm230f032',\n date: '2020-05-11',\n amount: 299,\n quantity: 1,\n customer: 'Ashley Wickens',\n status: 'DELIVERED'\n },\n {\n id: '1009-2',\n productCode: 'cm230f032',\n date: '2019-02-07',\n amount: 299,\n quantity: 1,\n customer: 'Julie Johnson',\n status: 'DELIVERED'\n },\n {\n id: '1009-3',\n productCode: 'cm230f032',\n date: '2020-04-26',\n amount: 299,\n quantity: 1,\n customer: 'Tony Costa',\n status: 'CANCELLED'\n }\n ]\n },\n {\n id: '1010',\n code: 'plb34234v',\n name: 'Gold Phone Case',\n description: 'Product Description',\n image: 'gold-phone-case.jpg',\n price: 24,\n category: 'Accessories',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 4,\n orders: [\n {\n id: '1010-0',\n productCode: 'plb34234v',\n date: '2020-02-04',\n amount: 24,\n quantity: 1,\n customer: 'James Butt',\n status: 'DELIVERED'\n },\n {\n id: '1010-1',\n productCode: 'plb34234v',\n date: '2020-05-05',\n amount: 48,\n quantity: 2,\n customer: 'Josephine Darakjy',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1011',\n code: '4920nnc2d',\n name: 'Green Earbuds',\n description: 'Product Description',\n image: 'green-earbuds.jpg',\n price: 89,\n category: 'Electronics',\n quantity: 23,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1011-0',\n productCode: '4920nnc2d',\n date: '2020-06-01',\n amount: 89,\n quantity: 1,\n customer: 'Art Venere',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1012',\n code: '250vm23cc',\n name: 'Green T-Shirt',\n description: 'Product Description',\n image: 'green-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 74,\n inventoryStatus: 'INSTOCK',\n rating: 5,\n orders: [\n {\n id: '1012-0',\n productCode: '250vm23cc',\n date: '2020-02-05',\n amount: 49,\n quantity: 1,\n customer: 'Lenna Paprocki',\n status: 'DELIVERED'\n },\n {\n id: '1012-1',\n productCode: '250vm23cc',\n date: '2020-02-15',\n amount: 49,\n quantity: 1,\n customer: 'Donette Foller',\n status: 'PENDING'\n }\n ]\n },\n {\n id: '1013',\n code: 'fldsmn31b',\n name: 'Grey T-Shirt',\n description: 'Product Description',\n image: 'grey-t-shirt.jpg',\n price: 48,\n category: 'Clothing',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 3,\n orders: [\n {\n id: '1013-0',\n productCode: 'fldsmn31b',\n date: '2020-04-01',\n amount: 48,\n quantity: 1,\n customer: 'Simona Morasca',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1014',\n code: 'waas1x2as',\n name: 'Headphones',\n description: 'Product Description',\n image: 'headphones.jpg',\n price: 175,\n category: 'Electronics',\n quantity: 8,\n inventoryStatus: 'LOWSTOCK',\n rating: 5,\n orders: [\n {\n id: '1014-0',\n productCode: 'waas1x2as',\n date: '2020-05-15',\n amount: 175,\n quantity: 1,\n customer: 'Lenna Paprocki',\n status: 'DELIVERED'\n },\n {\n id: '1014-1',\n productCode: 'waas1x2as',\n date: '2020-01-02',\n amount: 175,\n quantity: 1,\n customer: 'Donette Foller',\n status: 'CANCELLED'\n }\n ]\n },\n {\n id: '1015',\n code: 'vb34btbg5',\n name: 'Light Green T-Shirt',\n description: 'Product Description',\n image: 'light-green-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 34,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1015-0',\n productCode: 'vb34btbg5',\n date: '2020-07-02',\n amount: 98,\n quantity: 2,\n customer: 'Mitsue Tollner',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1016',\n code: 'k8l6j58jl',\n name: 'Lime Band',\n description: 'Product Description',\n image: 'lime-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 12,\n inventoryStatus: 'INSTOCK',\n rating: 3,\n orders: []\n },\n {\n id: '1017',\n code: 'v435nn85n',\n name: 'Mini Speakers',\n description: 'Product Description',\n image: 'mini-speakers.jpg',\n price: 85,\n category: 'Clothing',\n quantity: 42,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1017-0',\n productCode: 'v435nn85n',\n date: '2020-07-12',\n amount: 85,\n quantity: 1,\n customer: 'Minna Amigon',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1018',\n code: '09zx9c0zc',\n name: 'Painted Phone Case',\n description: 'Product Description',\n image: 'painted-phone-case.jpg',\n price: 56,\n category: 'Accessories',\n quantity: 41,\n inventoryStatus: 'INSTOCK',\n rating: 5,\n orders: [\n {\n id: '1018-0',\n productCode: '09zx9c0zc',\n date: '2020-07-01',\n amount: 56,\n quantity: 1,\n customer: 'Abel Maclead',\n status: 'DELIVERED'\n },\n {\n id: '1018-1',\n productCode: '09zx9c0zc',\n date: '2020-05-02',\n amount: 56,\n quantity: 1,\n customer: 'Minna Amigon',\n status: 'RETURNED'\n }\n ]\n },\n {\n id: '1019',\n code: 'mnb5mb2m5',\n name: 'Pink Band',\n description: 'Product Description',\n image: 'pink-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 63,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: []\n },\n {\n id: '1020',\n code: 'r23fwf2w3',\n name: 'Pink Purse',\n description: 'Product Description',\n image: 'pink-purse.jpg',\n price: 110,\n category: 'Accessories',\n quantity: 0,\n inventoryStatus: 'OUTOFSTOCK',\n rating: 4,\n orders: [\n {\n id: '1020-0',\n productCode: 'r23fwf2w3',\n date: '2020-05-29',\n amount: 110,\n quantity: 1,\n customer: 'Kiley Caldarera',\n status: 'DELIVERED'\n },\n {\n id: '1020-1',\n productCode: 'r23fwf2w3',\n date: '2020-02-11',\n amount: 220,\n quantity: 2,\n customer: 'Graciela Ruta',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1021',\n code: 'pxpzczo23',\n name: 'Purple Band',\n description: 'Product Description',\n image: 'purple-band.jpg',\n price: 79,\n category: 'Fitness',\n quantity: 6,\n inventoryStatus: 'LOWSTOCK',\n rating: 3,\n orders: [\n {\n id: '1021-0',\n productCode: 'pxpzczo23',\n date: '2020-02-02',\n amount: 79,\n quantity: 1,\n customer: 'Cammy Albares',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1022',\n code: '2c42cb5cb',\n name: 'Purple Gemstone Necklace',\n description: 'Product Description',\n image: 'purple-gemstone-necklace.jpg',\n price: 45,\n category: 'Accessories',\n quantity: 62,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1022-0',\n productCode: '2c42cb5cb',\n date: '2020-06-29',\n amount: 45,\n quantity: 1,\n customer: 'Mattie Poquette',\n status: 'DELIVERED'\n },\n {\n id: '1022-1',\n productCode: '2c42cb5cb',\n date: '2020-02-11',\n amount: 135,\n quantity: 3,\n customer: 'Meaghan Garufi',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1023',\n code: '5k43kkk23',\n name: 'Purple T-Shirt',\n description: 'Product Description',\n image: 'purple-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 2,\n inventoryStatus: 'LOWSTOCK',\n rating: 5,\n orders: [\n {\n id: '1023-0',\n productCode: '5k43kkk23',\n date: '2020-04-15',\n amount: 49,\n quantity: 1,\n customer: 'Gladys Rim',\n status: 'RETURNED'\n }\n ]\n },\n {\n id: '1024',\n code: 'lm2tny2k4',\n name: 'Shoes',\n description: 'Product Description',\n image: 'shoes.jpg',\n price: 64,\n category: 'Clothing',\n quantity: 0,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: []\n },\n {\n id: '1025',\n code: 'nbm5mv45n',\n name: 'Sneakers',\n description: 'Product Description',\n image: 'sneakers.jpg',\n price: 78,\n category: 'Clothing',\n quantity: 52,\n inventoryStatus: 'INSTOCK',\n rating: 4,\n orders: [\n {\n id: '1025-0',\n productCode: 'nbm5mv45n',\n date: '2020-02-19',\n amount: 78,\n quantity: 1,\n customer: 'Yuki Whobrey',\n status: 'DELIVERED'\n },\n {\n id: '1025-1',\n productCode: 'nbm5mv45n',\n date: '2020-05-21',\n amount: 78,\n quantity: 1,\n customer: 'Fletcher Flosi',\n status: 'PENDING'\n }\n ]\n },\n {\n id: '1026',\n code: 'zx23zc42c',\n name: 'Teal T-Shirt',\n description: 'Product Description',\n image: 'teal-t-shirt.jpg',\n price: 49,\n category: 'Clothing',\n quantity: 3,\n inventoryStatus: 'LOWSTOCK',\n rating: 3,\n orders: [\n {\n id: '1026-0',\n productCode: 'zx23zc42c',\n date: '2020-04-24',\n amount: 98,\n quantity: 2,\n customer: 'Bette Nicka',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1027',\n code: 'acvx872gc',\n name: 'Yellow Earbuds',\n description: 'Product Description',\n image: 'yellow-earbuds.jpg',\n price: 89,\n category: 'Electronics',\n quantity: 35,\n inventoryStatus: 'INSTOCK',\n rating: 3,\n orders: [\n {\n id: '1027-0',\n productCode: 'acvx872gc',\n date: '2020-01-29',\n amount: 89,\n quantity: 1,\n customer: 'Veronika Inouye',\n status: 'DELIVERED'\n },\n {\n id: '1027-1',\n productCode: 'acvx872gc',\n date: '2020-06-11',\n amount: 89,\n quantity: 1,\n customer: 'Willard Kolmetz',\n status: 'DELIVERED'\n }\n ]\n },\n {\n id: '1028',\n code: 'tx125ck42',\n name: 'Yoga Mat',\n description: 'Product Description',\n image: 'yoga-mat.jpg',\n price: 20,\n category: 'Fitness',\n quantity: 15,\n inventoryStatus: 'INSTOCK',\n rating: 5,\n orders: []\n },\n {\n id: '1029',\n code: 'gwuby345v',\n name: 'Yoga Set',\n description: 'Product Description',\n image: 'yoga-set.jpg',\n price: 20,\n category: 'Fitness',\n quantity: 25,\n inventoryStatus: 'INSTOCK',\n rating: 8,\n orders: [\n {\n id: '1029-0',\n productCode: 'gwuby345v',\n date: '2020-02-14',\n amount: 4,\n quantity: 80,\n customer: 'Maryann Royster',\n status: 'DELIVERED'\n }\n ]\n }\n ];\n }\n\n status: string[] = ['OUTOFSTOCK', 'INSTOCK', 'LOWSTOCK'];\n\n productNames: string[] = [\n 'Bamboo Watch',\n 'Black Watch',\n 'Blue Band',\n 'Blue T-Shirt',\n 'Bracelet',\n 'Brown Purse',\n 'Chakra Bracelet',\n 'Galaxy Earrings',\n 'Game Controller',\n 'Gaming Set',\n 'Gold Phone Case',\n 'Green Earbuds',\n 'Green T-Shirt',\n 'Grey T-Shirt',\n 'Headphones',\n 'Light Green T-Shirt',\n 'Lime Band',\n 'Mini Speakers',\n 'Painted Phone Case',\n 'Pink Band',\n 'Pink Purse',\n 'Purple Band',\n 'Purple Gemstone Necklace',\n 'Purple T-Shirt',\n 'Shoes',\n 'Sneakers',\n 'Teal T-Shirt',\n 'Yellow Earbuds',\n 'Yoga Mat',\n 'Yoga Set'\n ];\n\n \n\n getProductsMini() {\n return Promise.resolve(this.getProductsData().slice(0, 5));\n }\n\n getProductsSmall() {\n return Promise.resolve(this.getProductsData().slice(0, 10));\n }\n\n getProducts() {\n return this.getProductsData();\n }\n\n getProductsWithOrdersSmall() { \n return Promise.resolve(this.getProductsWithOrdersData().slice(0, 10));\n }\n\n calculateDiscount(product: ProductoDTO): number {\n if(product){\n if (product.descuento && product.descuento > 0)\n return product.precios[0].precio - (product.precios[0].precio * product.descuento / 100);\n else\n return product.precios[0].precio;\n }else{\n return 0;\n }\n }\n\n generatePrduct(): Product {\n const product: Product = {\n id: this.generateId(),\n name: this.generateName(),\n description: 'Product Description',\n price: this.generatePrice(),\n quantity: this.generateQuantity(),\n category: 'Product Category',\n inventoryStatus: this.generateStatus(),\n rating: this.generateRating()\n };\n\n product.image = product.name?.toLocaleLowerCase().split(/[ ,]+/).join('-') + '.jpg';\n return product;\n }\n\n generateId() {\n let text = '';\n const POSSIBLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n for (let i = 0; i < 5; i++) {\n text += POSSIBLE.charAt(Math.floor(Math.random() * POSSIBLE.length));\n }\n\n return text;\n }\n\n generateName() {\n return this.productNames[Math.floor(Math.random() * Math.floor(30))];\n }\n\n generatePrice() {\n return Math.floor(Math.random() * Math.floor(299) + 1);\n }\n\n generateQuantity() {\n return Math.floor(Math.random() * Math.floor(75) + 1);\n }\n\n generateStatus() {\n return this.status[Math.floor(Math.random() * Math.floor(3))];\n }\n\n generateRating() {\n return Math.floor(Math.random() * Math.floor(5) + 1);\n }\n\n /**\n * Devuelve true si el producto no es nulo ni undefined\n * @param product \n * @returns boolean\n */\n checkIsProductIsnotEmptyOrNull(product: ProductoDTO): boolean {\n return product != null && product != undefined;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\nimport { FormsModule } from '@angular/forms';\nimport { ComponentesDTO,ProductoDTO } from '@juliaosistem/core-dtos';\ntype ProductoView = ProductoDTO & { nombreCategoria?: string };\nimport { ProductService } from '../../../services/product.service';\nimport { SectionAddCardsButtons } from \"../../section-add-cards-buttons/section-add-cards-buttons\";\n\n\n\n@Component({\n selector: 'lib-detalle-carrito-1',\n imports: [CommonModule, PrimegModule, FormsModule, SectionAddCardsButtons],\n templateUrl: './detalle-carrito-1.component.html',\n styleUrls: ['./detalle-carrito-1.component.scss'],\n standalone: true\n})\nexport class DetalleCarrito1Component implements OnInit {\n\n @Output() addToCart = new EventEmitter<{ product: ProductoDTO; quantity: number }>();\n\n // Metadata del componente \n componente:ComponentesDTO = {\n id: 27,\n nombreComponente: 'lib-detalle-carrito-1',\n version: '1.0',\n descripcion: 'Componente para mostrar detalle de un producto'\n }\n\n @Input()\n // Variable que recibe el producto a mostrar\n product!: ProductoView;\n\n // Variable que determina si el usuario está logueado\n @Input()\n isLogin: boolean = false;\n\n // Variable que determina el descuento aplicado al producto\n discount: number = 0;\n\n // Variable que determina la cantidad actual del producto\n currentQuantity: number = 1;\n // Variable que almacena la URL de la imagen seleccionada\n selectedImageUrl: string = '';\n // Variable que controla la visibilidad del mensaje de agregado al carrito\n showCartMessage: boolean = false;\n // Variable que indica si el producto es favorito\n isFavorite: boolean = false;\n\n // Control para mostrar botón de personalización como en las cards\n @Input() isPersonalizable: boolean = false;\n\n constructor(private productService: ProductService) {}\n\n ngOnInit(): void {\n this.checkIsProductExists();\n }\n\n/**\n * Método para verificar si el producto existe y tiene imágenes\n * Si el producto tiene imágenes, se selecciona la primera imagen por defecto\n * y se calcula el descuento utilizando el servicio de productos.\n */\n checkIsProductExists(){\n if(this.product && this.product?.imagen.length > 0) {\n this.selectedImageUrl = this.product?.imagen[0].url\n this.discount = this.productService.calculateDiscount(this.product);\n }\n }\n\n /**\n * \n * @param imageUrl URL de la imagen seleccionada\n * Método para actualizar la imagen principal cuando se selecciona una miniatura\n */\n updateMainImage(imageUrl: string): void {\n this.selectedImageUrl = imageUrl;\n }\n\n \n\n\n toggleFavorite(): void {\n this.isFavorite = !this.isFavorite;\n }\n\n getWhatsAppLink(): string {\n const base = 'https://wa.me/?text=';\n const message = `Hola, estoy interesado en el producto: ${this.product?.name ?? ''}`;\n return base + encodeURIComponent(message);\n }\n\n\n/**\n * \n * @param imageUrl URL de la imagen a verificar\n * Método para verificar si una miniatura es la imagen activa\n * @returns \n */\n isActiveThumbnail(imageUrl: string): boolean {\n return this.selectedImageUrl === imageUrl;\n }\n\n onChildAddToCart(event: { product: ProductoDTO; quantity: number }) {\n this.addToCart.emit(event);\n this.showCartMessage = event.quantity > 0;\n }\n\n navigateToProductDetail(): void {\n console.log('Navegando a la página de detalle del producto...');\n }\n}\n","@if (product) {\n<div id=\"product-container\" class=\"shadow-2 border-round-2xl p-3 md:p-5 lg:p-6\">\n <!-- Contenedor principal de la página de detalle -->\n <div class=\"grid\">\n <!-- Bloque de imagen principal -->\n <div class=\"flex flex-column col-12 lg:col-6\">\n <div class=\"main-image-frame bg-gray-100 border-round-xl flex justify-content-center align-items-center\">\n <img\n [src]=\"selectedImageUrl\"\n [alt]=\"product.imagen[0].alt || product.name\"\n loading=\"lazy\" width=\"1024\" height=\"520\"\n class=\"main-image border-round-xl\" />\n </div>\n\n <!-- Miniaturas debajo en móvil y tablet -->\n @if (product.imagen && product.imagen.length > 0) {\n <div class=\"flex flex-row gap-2 overflow-x-auto pt-2\">\n @for (imagen of product.imagen; track $index) {\n <button type=\"button\" class=\"thumbnail-container border-round-lg cursor-pointer\" (click)=\"updateMainImage(imagen.url)\">\n <div class=\"thumbnail\" [class.thumbnail-active]=\"isActiveThumbnail(imagen.url)\">\n <img [src]=\"imagen.url\" alt=\"Miniatura {{ imagen.alt }}\" loading=\"lazy\" width=\"88\" height=\"88\" />\n </div>\n </button>\n }\n </div>\n }\n </div>\n\n <!-- Columna de información del producto -->\n <div class=\"flex flex-column justify-content-between col-12 lg:col-6\">\n <div class=\"flex flex-column gap-3\">\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <h1 class=\"text-3xl font-bold text-900\">{{ product.name }}</h1>\n <p-button \n [text]=\"true\" \n [rounded]=\"true\"\n (onClick)=\"toggleFavorite()\"\n [icon]=\"isFavorite ? 'pi pi-heart-fill' : 'pi pi-heart'\"\n [class]=\"isFavorite ? 'text-red-500' : 'text-500'\"\n class=\"hover:text-red-500\">\n </p-button>\n </div>\n\n \n\n <!-- Bloque descripción con fondo gris como card -->\n <div class=\"surface-ground p-3 border-round-xl border-1 surface-border\">\n <p class=\"text-700 line-height-3 m-0 font-bold\">Descripción</p>\n <p class=\"text-700 line-height-3 m-0\">{{ product.descripcion }}</p>\n </div>\n\n <div class=\"flex align-items-center gap-3\">\n @if(isLogin){\n @if(product.descuento != undefined && product.descuento > 0) {\n <span class=\"old-price\">{{ product.precios[0].precio | currency:product.precios[0].codigo_iso :'code' }}</span>\n <span class=\"discount-label\">{{ product.descuento}}% OFF</span>\n }\n <span class=\"current-price\">{{ discount | currency:product.precios[0].codigo_iso :'code'}}</span>\n } @else {\n <a\n class=\"contact-btn\"\n [href]=\"getWhatsAppLink()\"\n target=\"_blank\" rel=\"noopener noreferrer\"\n aria-label=\"Contactar por WhatsApp\">\n <i class=\"pi pi-whatsapp\"></i>\n <span>Contactar</span>\n </a>\n }\n </div>\n\n <!-- Info básica: categoría y disponibles -->\n <div class=\"surface-ground p-3 border-round-xl border-1 surface-border text-sm\">\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <strong class=\"font-bold text-700\">Categoría:</strong>\n <span class=\"text-600 text-right overflow-hidden text-overflow-ellipsis\" style=\"max-width: 60%;\">\n {{ product.nombreCategoria || 'Sin categoría' }}\n </span>\n </div>\n <div class=\"flex justify-content-between align-items-center\">\n <strong class=\"font-bold text-700\">Disponibles:</strong>\n <span class=\"text-600 font-medium\">{{ product.cantidad }}</span>\n </div>\n </div>\n\n <!-- Badges informativos -->\n <div class=\"info-badges mb-4\">\n <div class=\"badge\"><i class=\"pi pi-shield\"></i><span>Compra protegida</span></div>\n <div class=\"badge\"><i class=\"pi pi-truck\"></i><span>Entrega rápida</span></div>\n </div>\n </div>\n\n <div class=\"cta-card\">\n <!-- Botones de acción: Personalizar y Compartir -->\n <div class=\"flex gap-2 mb-3\">\n @if (isPersonalizable) {\n <p-button \n (click)=\"navigateToProductDetail()\" \n pTooltip=\"Personalizar\"\n icon=\"pi pi-pencil\"\n tooltipPosition=\"top\"\n styleClass=\"bg-900 text-white w-2rem h-2rem border-circle border-none flex align-items-center justify-content-center cursor-pointer hover:bg-700 transition-colors shadow-1\">\n </p-button>\n }\n <p-button \n \n pTooltip=\"Compartir\"\n tooltipPosition=\"top\"\n icon=\"pi pi-share-alt text-sm\"\n styleClass=\"surface-100 text-900 w-2rem h-2rem border-circle border-none flex align-items-center justify-content-center cursor-pointer hover:bg-200 transition-colors shadow-1\">\n </p-button>\n </div>\n \n\n <lib-section-add-cards-buttons \n [product]=\"product\" \n [isLogin]=\"isLogin\">\n </lib-section-add-cards-buttons>\n\n @if (showCartMessage) {\n <div class=\"mt-3 text-center text-sm font-semibold text-green-600\">\n Producto añadido al carrito.\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n} @else {\n <div class=\"surface-card shadow-2 border-round-2xl p-3 md:p-5 lg:p-6 w-full\">\n <div class=\"flex justify-content-center align-items-center\" style=\"height: 16rem;\">\n <p class=\"text-500 text-lg\">Cargando producto...</p>\n </div>\n </div>\n}","import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { CurrencyPipe, CommonModule } from '@angular/common';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\nimport { ImagenDTO, ProductoDTO } from '@juliaosistem/core-dtos';\nimport { Router } from '@angular/router';\nimport { ProductService } from '../../../services/product.service';\nimport { SectionAddCardsButtons } from \"../../section-add-cards-buttons/section-add-cards-buttons\";\nimport { IonicModule } from '@ionic/angular';\n\n type ProductoView = ProductoDTO & { nombreCategoria?: string };\n\n\n@Component({\n selector: 'lib-card-productos1',\n standalone: true,\n templateUrl: './card-productos1.component.html',\n styleUrls: ['./card-productos1.component.scss'],\n imports: [CommonModule, PrimegModule, SectionAddCardsButtons,IonicModule],\n providers: [CurrencyPipe]\n})\nexport class CardProductos1Component implements OnInit, OnDestroy {\n\n @Input() product!: ProductoView;\n @Output() addToCart = new EventEmitter<{ product: ProductoDTO, quantity: number }>();\n @Input() isLogin: boolean = false;\n // Ruta base configurable desde el frontal para navegar al detalle\n @Input() detailRouteBase: string[] = ['detalle'];\n\n discount = 0;\n currentImageIndex = 0;\n shareMenuOpen = false;\n private readonly shareBaseUrl = 'https://zigmainflables.com';\n \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n autoSlideInterval: any;\n\n constructor(\n private currencyPipe: CurrencyPipe,\n private productService: ProductService,\n private router: Router\n ) {}\n\n /**\n * Inicializa el componente calculando el descuento y\n * arrancando el carrusel de imágenes si el producto es válido.\n */\n ngOnInit(): void {\n if (this.productService.checkIsProductIsnotEmptyOrNull(this.product)) {\n this.discount = this.productService.calculateDiscount(this.product);\n this.startAutoSlide();\n }\n }\n\n /**\n * Limpia recursos al destruir el componente, deteniendo\n * el carrusel automático si está activo.\n */\n ngOnDestroy(): void {\n this.stopAutoSlide();\n }\n\n /**\n * Devuelve la imagen actualmente seleccionada para el producto.\n * @returns ImagenDTO imagen activa\n */\n get currentImage(): ImagenDTO {\n return this.product.imagen[this.currentImageIndex];\n }\n\n /**\n * Devuelve la URL de la imagen actualmente seleccionada.\n * @returns string URL de la imagen activa\n */\n get currentImageUrl(): string {\n return this.currentImage.url;\n }\n\n /**\n * Avanza a la siguiente imagen del carrusel, ciclando al inicio\n * cuando se alcanza el final.\n */\n nextImage(): void {\n this.currentImageIndex = (this.currentImageIndex + 1) % this.product.imagen.length;\n }\n\n /**\n * Retrocede a la imagen anterior del carrusel, ciclando al final\n * cuando se está al inicio.\n */\n prevImage(): void {\n this.currentImageIndex = (this.currentImageIndex - 1 + this.product.imagen.length) % this.product.imagen.length;\n }\n\n /**\n * Selecciona la imagen por índice dentro de la lista de imágenes del producto.\n * @param index Índice de la imagen a mostrar\n */\n selectImage(index: number): void {\n this.currentImageIndex = index;\n }\n\n /**\n * Indica si el índice recibido corresponde a la miniatura activa.\n * @param index Índice de miniatura a verificar\n * @returns boolean `true` si es la miniatura activa\n */\n isActiveThumbnail(index: number): boolean {\n return this.currentImageIndex === index;\n }\n\n /**\n * Inicia el carrusel automático de imágenes cambiando cada 3 segundos.\n */\n startAutoSlide(): void {\n this.stopAutoSlide();\n this.autoSlideInterval = setInterval(() => this.nextImage(), 3000);\n }\n\n /**\n * Detiene el carrusel automático si está activo.\n */\n stopAutoSlide(): void {\n if (this.autoSlideInterval) clearInterval(this.autoSlideInterval);\n }\n\n /**\n * Emite el evento para agregar el producto al carrito con la cantidad indicada.\n * @param event Objeto con `{ product, quantity }`\n */\n onAddToCart(event: { product: ProductoDTO; quantity: number }) {\n this.addToCart.emit(event);\n }\n\n /**\n * Navega al detalle del producto construyendo la ruta a partir de `detailRouteBase`.\n * Acepta rutas absolutas (inician con `/`) o relativas y pasa el producto en `history.state`.\n */\nnavigateToProductDetail(): void {\n if (this.product?.id) {\n const parts = this.detailRouteBase\n .map(p => (p ? p.split('/') : []))\n .reduce((acc: string[], cur: string[]) => acc.concat(cur), [])\n .filter(seg => seg && seg.trim().length > 0);\n const isAbsolute = this.detailRouteBase[0]?.startsWith('/') || false;\n let basePrefix = '';\n if (!isAbsolute) {\n const currentPath = this.router.url.split('?')[0].split('#')[0];\n const firstSeg = currentPath.split('/').filter(Boolean)[0] || '';\n basePrefix = firstSeg ? `/${firstSeg}/` : '/';\n }\n const joined = [...parts, String(this.product.id)].join('/');\n const normalized = (isAbsolute ? '/' : basePrefix) + joined;\n this.router.navigateByUrl(normalized, {\n state: { product: this.product, isLogin: this.isLogin }\n });\n }\n}\n\n\n /**\n * Abre WhatsApp para compartir información del producto con un mensaje\n * basado en si el usuario tiene sesión iniciada.\n */\n shareProductOnWhatsapp(): void {\n const url = this.shareBaseUrl;\n let text = '';\n\n if (this.isLogin) {\n const precio = this.currencyPipe.transform(this.discount, this.product.precios[0].codigo_iso, 'code');\n text = `¡Mira esto! ${this.product.name} por solo ${precio}`;\n } else {\n const id = this.product?.id ?? '';\n text = `Hola, estoy interesado en el producto Referencia ${id}: ${this.product.name}`;\n }\n\n window.open(`https://api.whatsapp.com/send?text=${encodeURIComponent(text + ' ' + url)}`, '_blank');\n }\n /**\n * Alterna la visibilidad del menú flotante de compartir en redes.\n */\n toggleShareMenu(): void {\n this.shareMenuOpen = !this.shareMenuOpen;\n }\n\n /**\n * Acciones de compartir en redes sociales soportadas.\n * @param red Red a utilizar: `'whatsapp' | 'facebook' | 'instagram'`\n */\n touchRedes(red: 'whatsapp' | 'facebook' | 'instagram') {\n const url = this.shareBaseUrl;\n const name = this.product?.name ?? '';\n if (red === 'whatsapp') {\n const text = `Mira este producto: ${name} - ${url}`;\n window.open(`https://api.whatsapp.com/send?text=${encodeURIComponent(text)}`,'_blank');\n }\n if (red === 'facebook') {\n const fbUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}`;\n window.open(fbUrl,'_blank','noopener');\n }\n }\n\n}\n","<div class=\"surface-card shadow-3 border-round-xl overflow-visible relative transition-all transition-duration-300 hover:shadow-6 flex flex-column h-full hover-effect\"\n style=\"min-height: 520px; max-width: 400px; margin: 0 auto\">\n @if (product) {\n <div class=\"relative surface-ground flex align-items-center justify-content-center overflow-hidden p-3 image-hover-container\"\n style=\"height: 280px\">\n <img [src]=\"currentImageUrl || product.imagen[0]?.url\" [alt]=\"product.name\"\n loading=\"lazy\" width=\"400\" height=\"280\"\n class=\"max-w-full max-h-full object-contain cursor-pointer transition-transform transition-duration-300 hover-zoom\"\n (click)=\"navigateToProductDetail()\" />\n\n <!-- Overlay con icono de ojo al hover -->\n <div class=\"image-overlay\">\n <button pButton type=\"button\" class=\"p-button-rounded p-button-info p-button-lg shadow-4\"\n (click)=\"navigateToProductDetail()\" pTooltip=\"Ver detalles\" tooltipPosition=\"top\">\n <i class=\"pi pi-eye text-xl\"></i>\n </button>\n </div>\n\n <button (click)=\"shareProductOnWhatsapp()\"\n class=\"absolute bottom-0 right-0 m-3 bg-green-500 border-none text-white w-3rem h-3rem border-circle shadow-4 flex align-items-center justify-content-center cursor-pointer transition-colors transition-duration-200 hover:bg-green-600 z-2\">\n <i class=\"pi pi-whatsapp text-2xl\"></i>\n </button>\n </div>\n\n <div class=\"p-3 flex flex-column flex-grow-1\">\n <div class=\"flex gap-2 overflow-x-auto pb-2 mb-3 z-1\">\n @for (image of product.imagen; track $index) {\n <img [src]=\"image.url\" (click)=\"selectImage($index)\"\n loading=\"lazy\" width=\"48\" height=\"48\"\n class=\"w-3rem h-3rem border-round border-2 cursor-pointer flex-shrink-0 transition-all transition-duration-200 object-cover\"\n [class.border-900]=\"isActiveThumbnail($index)\" [class.border-transparent]=\"!isActiveThumbnail($index)\"\n [class.opacity-60]=\"!isActiveThumbnail($index)\" />\n }\n </div>\n\n <div class=\"surface-border border-top-1 w-full mb-3\"></div>\n\n <div class=\"flex justify-content-between align-items-start gap-2 mb-3\">\n <h3 class=\"text-xl font-semibold text-900 m-0 line-height-3 flex-grow-1 cursor-pointer hover:text-700 transition-colors\"\n (click)=\"navigateToProductDetail()\" style=\"word-break: break-word\">\n {{ product.name }}\n </h3>\n\n <div class=\"flex gap-2 flex-shrink-0 mt-1\" style=\"position: relative;\">\n @if (isLogin) {\n <p-button (click)=\"navigateToProductDetail()\" pTooltip=\"Personalizar\" icon=\"pi pi-pencil\"\n tooltipPosition=\"top\"\n styleClass=\"bg-900 text-white w-2rem h-2rem border-circle border-none flex align-items-center justify-content-center cursor-pointer hover:bg-700 transition-colors shadow-1\">\n </p-button>\n }\n <!-- Menú flotante de redes estilo PrimeNG -->\n <div class=\"relative\" style=\"position: absolute; right: -0.75rem; top: -0.75rem; z-index: 10;\">\n <button (click)=\"toggleShareMenu()\"\n class=\"bg-green-500 border-none text-white w-2rem h-2rem border-circle shadow-2 flex align-items-center justify-content-center cursor-pointer transition-colors transition-duration-200 hover:bg-green-600\">\n <i class=\"pi\" [ngClass]=\"{'pi-times': shareMenuOpen, 'pi-share-alt': !shareMenuOpen}\"></i>\n </button>\n @if (shareMenuOpen) {\n <div class=\"flex gap-2 absolute\" style=\"right: 0; top: 2.6rem;\">\n <button (click)=\"touchRedes('whatsapp')\" class=\"border-none w-2rem h-2rem border-circle flex align-items-center justify-content-center cursor-pointer shadow-1\" style=\"background:#25D366;color:#fff\">\n <i class=\"pi pi-whatsapp\"></i>\n </button>\n <button (click)=\"touchRedes('facebook')\" class=\"border-none w-2rem h-2rem border-circle flex align-items-center justify-content-center cursor-pointer shadow-1\" style=\"background:#1877F2;color:#fff\">\n <i class=\"pi pi-facebook\"></i>\n </button>\n \n </div>\n }\n </div>\n </div>\n </div>\n\n <div class=\"surface-ground p-3 border-round-xl border-1 surface-border text-sm mb-4\">\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <strong class=\"font-bold text-700\">Categoría:</strong>\n <span class=\"text-600 text-right overflow-hidden text-overflow-ellipsis\" style=\"max-width: 60%\">\n {{ product.nombreCategoria || 'Sin categoría' }}\n </span>\n </div>\n <div class=\"flex justify-content-between align-items-center\">\n <strong class=\"font-bold text-700\">Disponibles:</strong>\n <span class=\"text-600 font-medium\">{{ product.cantidad }}</span>\n </div>\n </div>\n\n <div class=\"mt-auto\">\n\n\n <div class=\"flex align-items-end gap-2 mb-3 flex-wrap\">\n @if(isLogin){\n @if (product.descuento && product.descuento > 0) {\n <span class=\"text-500 line-through text-sm mb-1\">\n {{ product.precios[0].precio | currency: product.precios[0].codigo_iso : \"code\" }}\n </span>\n }\n\n <span class=\"text-2xl font-bold text-900\">\n {{ discount | currency: product.precios[0].codigo_iso : \"code\" }}\n </span>\n\n @if (product.descuento && product.descuento > 0) {\n <div class=\"bg-green-100 text-green-700 px-2 py-1 text-xs font-bold border-round mb-1 ml-auto\">\n {{ product.descuento }}% OFF\n </div>\n }\n } \n </div>\n\n <lib-section-add-cards-buttons [product]=\"product\" [isLogin]=\"isLogin\">\n </lib-section-add-cards-buttons>\n\n </div>\n </div>\n } @else {\n <div class=\"flex align-items-center justify-content-center h-full text-500\">\n Producto no disponible\n </div>\n }\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CategoriaDTO, ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-section-filters-categories-productos',\n imports: [CommonModule],\n templateUrl: './section-filters-categories-productos.html',\n styleUrl: './section-filters-categories-productos.scss'\n})\nexport class SectionFiltersCategoriesProductos {\n\n // Metadata del componente \n componente: ComponentesDTO = {\n id: 29,\n nombreComponente: 'lib-section-filters-categories-productos',\n version: '1.0',\n descripcion: 'Componente para mostrar filtros de categorias y productos'\n }\n\n // Categorias a mostrar\n @Input() categorias: CategoriaDTO[] = [];\n @Input() titleComponent: string = \"Todos Las Categorias\";\n\n @Output() categorySelected: EventEmitter<string> = new EventEmitter<string>();\n\n selectedCategory = 'all';\n\n selectCategory(category: string): void {\n this.selectedCategory = category;\n this.categorySelected.emit(category);\n }\n\n}\n","<div class=\"grid align-items-center justify-content-center filters-bar animate-scroll\">\n <h2 class=\"filters-title font-bold text-gray-800\">{{ titleComponent }}</h2>\n <div class=\"filters-list\">\n <button pButton type=\"button\" class=\"filter-btn\" [ngClass]=\"{ 'active': selectedCategory === 'all' }\" (click)=\"selectCategory('all')\">Todos</button>\n @for (categoria of categorias; track $index) {\n <button pButton type=\"button\" class=\"filter-btn\" (click)=\"selectCategory(categoria.nombreCategoria)\" [ngClass]=\"{ 'active': selectedCategory === categoria.nombreCategoria }\">{{ categoria.nombreCategoria }}</button>\n }\n </div>\n</div>","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport Prism from 'prismjs';\n// Importa los lenguajes que quieras usar\nimport 'prismjs/components/prism-typescript';\nimport 'prismjs/components/prism-javascript';\n\n@Component({\n selector: 'lib-terminal',\n imports: [],\n templateUrl: './terminal.html',\n styleUrl: './terminal.scss'\n})\nexport class Terminal implements AfterViewInit {\n @Input() code: string = '';\n @Input() language: string = 'typescript';\n @ViewChild('codeElement') codeElement!: ElementRef;\n\n ngAfterViewInit() {\n Prism.highlightElement(this.codeElement.nativeElement);\n }\n\n copyCode() {\n navigator.clipboard.writeText(this.code).then(() => {\n alert('✅ Código copiado al portapapeles');\n });\n }\n}\n","<div class=\"relative bg-gray-900 text-white rounded-lg p-4\">\n <button (click)=\"copyCode()\"\n class=\"absolute top-2 right-2 bg-gray-700 hover:bg-gray-600 px-3 py-1 rounded text-sm\">\n 📋 Copiar\n </button>\n\n <pre>\n <code #codeElement [class]=\"'language-' + language\">{{ code }}</code>\n </pre>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-loading-zigma',\n imports: [],\n templateUrl: './loading-zigma.html',\n styleUrl: './loading-zigma.scss',\n})\nexport class LoadingZigma {\n\n}\n","<div id=\"castle-loader\">\n <!-- BASE INFERIOR (Morada, la más baja) -->\n <div class=\"base\"></div>\n\n <!-- Franja Azul (Segunda capa) -->\n <div class=\"blue-stripe\"></div>\n\n <!-- ALMENAS (Moradas, sección dentada) -->\n <div class=\"battlements\"></div>\n\n <!-- Torre Lateral Izquierda (Roja) -->\n <div class=\"tower-side left\">\n <div class=\"roof\"></div>\n <!-- Techo triangular amarillo -->\n <div class=\"flag\"></div>\n </div>\n\n <!-- Torre Lateral Derecha (Roja) -->\n <div class=\"tower-side right\">\n <div class=\"roof\"></div>\n <!-- Techo triangular amarillo -->\n <div class=\"flag\"></div>\n </div>\n\n <!-- Torre Central (Amarilla con techo azul) -->\n <div class=\"tower-center\">\n <div class=\"roof\"></div>\n <!-- Techo triangular azul -->\n <div class=\"flag\"></div>\n </div>\n\n <!-- Texto de Carga, ahora dentro del contenedor del castillo -->\n <div class=\"loading-text\">\n <span class=\"word-zigma\">ZIGMA</span>\n <span class=\"word-inflables\">INFLABLES</span>\n </div>\n</div>\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { PrimegModule } from '../../../../modulos/primeg.module';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-paginator-pg',\n standalone: true,\n imports: [CommonModule, NgTemplateOutlet, PaginatorModule, PrimegModule],\n templateUrl: './paginator-pg.html',\n})\nexport class PaginatorPgComponent {\n\n\n componente: ComponentesDTO = {\n id: 36,\n nombreComponente: 'lib-paginator-pg',\n version: '1.0',\n descripcion: 'Componente paginador personalizado echo en primeng'\n };\n \n // datos para paginación\n @Input() data: unknown[] = [];\n // número total de registros por página\n @Input() rows = 10;\n\n // opciones de filas por página\n @Input() rowsPerPageOptions: number[] = [10, 20, 50];\n\n // habilitar/deshabilitar paginador\n @Input() showCurrentPageReport = true;\n\n // plantilla para el reporte de página\n @Input() currentPageReportTemplate = 'Mostrando {first} a {last} de {totalRecords} ítems';\n\n // Template para renderizar los ítems (se recibe desde el padre)\n @Input() itemTemplate!: TemplateRef<unknown>;\n\n first = 0;\n\n onPage(event: { first?: number; rows?: number; page?: number; pageCount?: number }) {\n this.first = event.first ?? 0;\n this.rows = event.rows ?? this.rows;\n }\n}\n","@if (data && data.length) {\n\t<ng-container\n\t\t*ngTemplateOutlet=\"itemTemplate; context: { $implicit: data.slice(first, first + rows) }\">\n\t</ng-container>\n\n\t<p-paginator\n\t\t[rows]=\"rows\"\n\t\t[totalRecords]=\"data.length\"\n\t\t[first]=\"first\"\n\t\t[rowsPerPageOptions]=\"rowsPerPageOptions\"\n\t\t[showCurrentPageReport]=\"showCurrentPageReport\"\n\t\t[currentPageReportTemplate]=\"currentPageReportTemplate\"\n\t\t(onPageChange)=\"onPage($event)\">\n\t</p-paginator>\n} @else {\n\t<div class=\"text-center text-gray-500 py-6\">No hay datos para mostrar</div>\n\t<p-paginator\n\t\t[rows]=\"rows\"\n\t\t[totalRecords]=\"0\"\n\t\t[first]=\"0\"\n\t\t[rowsPerPageOptions]=\"rowsPerPageOptions\"\n\t\t[showCurrentPageReport]=\"showCurrentPageReport\"\n\t\t[currentPageReportTemplate]=\"currentPageReportTemplate\">\n\t</p-paginator>\n}\n\n","import { Component, Input } from '@angular/core';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-header-top-ecommerce1',\n imports: [],\n templateUrl: './header-top-ecommerce1.html',\n styleUrl: './header-top-ecommerce1.scss',\n})\nexport class HeaderTopEcommerce1 {\n\n // Metadata del componente \n componente:ComponentesDTO = {\n id: 35,\n nombreComponente: 'lib-header-top-ecommerce1',\n version: '1.0',\n descripcion: 'componente header top de eccomerce 1'\n }\n \n @Input() whatsappLink: string = '';\n @Input() facebookLink: string = '';\n @Input() instagramLink: string = '';\n\n}\n"," \n <div class=\" header-top py-2 px-4 w-full flex items-center justify-between\">\n \n <div class=\"flex flex-1 justify-start items-center gap-4\">\n <span class=\"text-sm\">FAQs</span>\n <span class=\"text-sm\">Help</span>\n <span class=\"text-sm\">Support</span>\n </div>\n\n <div class=\"flex flex-1 justify-end items-center gap-4 iconos\">\n <a href=\"{{facebookLink}}\" class=\"text-lg\" aria-label=\"Facebook\">\n <i class=\"fab fa-facebook-f\" style=\"color:#1877F2\"></i>\n </a>\n <a href=\"{{instagramLink}}\" class=\"text-lg\" aria-label=\"Instagram\">\n <i class=\"fab fa-instagram\" style=\"color:#E4405F\"></i>\n </a>\n <a href=\"{{whatsappLink}}\" target=\"_blank\" class=\"text-lg\" aria-label=\"WhatsApp\">\n <i class=\"fab fa-whatsapp\" style=\"color:#25D366\"></i>\n </a>\n </div>\n </div>\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\n\nimport { BusinessDTO, ComponentesDTO, MenuConfig, MenuItem } from '@juliaosistem/core-dtos';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\nimport { IonicModule, MenuController } from '@ionic/angular';\nimport { HeaderTopEcommerce1 } from \"../../../atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1\";\n\n@Component({\n selector: 'lib-header-ecommerce1',\n imports: [CommonModule, RouterModule, FormsModule, PrimegModule, IonicModule, HeaderTopEcommerce1],\n templateUrl: './header-ecommerce1.html',\n styleUrls: ['./header-ecommerce1.scss'],\n encapsulation: ViewEncapsulation.None \n})\nexport class HeaderEcommerce1Component implements OnInit {\n\n // Metadata del componente \n componente:ComponentesDTO = {\n id: 34,\n nombreComponente: 'lib-header-ecommerce1',\n version: '1.0',\n descripcion: 'Componente para mostrar el encabezado en la página de ecommerce1'\n }\n @Input() DatosNegocio :BusinessDTO | null = null;\n @Input() logoText: string = 'Zigma Inflables';\n @Input() logoUrl: string | null = null;\n @Input() logoAlt: string = 'Logo Zigma Inflables';\n \n // Configuración del menú\n @Input() menuConfig: MenuConfig | null = null;\n\n // Idioma\n seleccionada:string='es';\n\n @Input() islogin: boolean = false;\n \n // Configuración por defecto\n defaultMenuConfig: MenuConfig = {\n id: 'header-menu',\n name: 'Header Navigation',\n showIcons: true,\n items: [\n {\n id: 'home',\n label: 'Home',\n type: 'link',\n routerLink: ['/'],\n icon: 'pi-home',\n visible: true,\n order: 1,\n permissions: [\"*\"]\n },\n {\n id: 'about',\n label: 'About',\n type: 'link',\n routerLink: ['/about'],\n visible: true,\n order: 2,\n permissions: [\"*\"]\n },\n {\n id: 'categorias',\n label: 'Categorías',\n type: 'link',\n routerLink: ['/'],\n icon: 'pi pi-tags',\n visible: true,\n order: 3,\n permissions: [\"*\"]\n },\n {\n id: 'auth-separator',\n label: '',\n type: 'separator',\n separator: true,\n visible: true,\n order: 4\n },\n {\n id: 'login',\n label: 'Login',\n type: 'link',\n routerLink: ['/login'],\n icon: 'fas fa-sign-in-alt',\n visible: true,\n order: 5,\n permissions: [\"*\"]\n },\n {\n id: 'register',\n label: 'Register',\n type: 'link',\n routerLink: ['/register'],\n icon: '',\n visible: true,\n order: 6,\n permissions: [\"*\"]\n }\n ]\n };\n langs:string[];\n\n private touchStartX = 0;\n private touchEndX = 0;\n private touchStartY = 0;\n private lastTouchX = 0;\n private isSwiping = false;\n private readonly EDGE_ZONE = 40; // px desde el borde\n private readonly OPEN_THRESHOLD = 50; // distancia para abrir\n private readonly CLOSE_THRESHOLD = -80; // distancia para cerrar\n private readonly VERTICAL_TOLERANCE = 30; // tolerancia vertical para considerar swipe horizontal\n\n constructor( private translate: TranslateService, private menuCtrl: MenuController, private router: Router) {\n this.translate.addLangs([\"es\",\"en\"]);\n this.translate.use('es');\n this.langs = [...this.translate.getLangs()]\n \n }\n\n // Menú final que se usará en el template\n \n currentMenu: MenuConfig = this.defaultMenuConfig;\n isMobileMenuOpen: boolean = false;\n isCartOpen: boolean = false;\n cartItems: Array<{id:number; name:string; qty:number; price:number}> = [\n { id: 1, name: 'Inflable básico', qty: 1, price: 120 },\n { id: 2, name: 'Kit de reparación', qty: 2, price: 15 }\n ];\n\n ngOnInit(): void {\n /**\n * Inicializa el componente:\n * - Si `menuConfig` viene por input, lo utiliza como menú actual.\n * - Filtra y ordena los ítems del menú por el campo `order`.\n * - Habilita el menú de Ionic con id `headerMenu` para componentes anidados.\n */\n // Si se proporciona una configuración personalizada, usarla\n if (this.menuConfig) {\n this.currentMenu = this.menuConfig;\n }\n\n // Asegurar que el item 'Categorías' exista aunque llegue un menuConfig externo\n const hasCategorias = this.currentMenu.items.some(i => i.id?.toLowerCase() === 'categorias');\n if (!hasCategorias) {\n this.currentMenu.items.push({\n id: 'categorias',\n label: 'Categorías',\n type: 'link',\n routerLink: ['/'],\n icon: 'pi pi-tags',\n visible: true,\n order: 3,\n permissions: [\"*\"]\n });\n }\n \n // Ordenar items por order si existe\n this.currentMenu.items = this.currentMenu.items\n .filter(item => item.visible !== false)\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n\n // Asegurar que el menú esté habilitado por su id cuando se usa en componentes anidados\n this.menuCtrl.enable(true, 'headerMenu');\n console.log('Logo URL en Header:', this.logoUrl);\n if(this.DatosNegocio?.logo) this.logoUrl=this.DatosNegocio?.logo;\n \n }\n\n // --- LÓGICA DE SWIPE (DESLIZAR PARA ABRIR) ---\n\n // Detectar cuando el dedo toca la pantalla\n @HostListener('document:touchstart', ['$event'])\n /**\n * Maneja el evento `touchstart` del documento.\n * Guarda coordenadas iniciales y habilita el modo swipe si el toque inicia\n * cerca del borde izquierdo o si el menú ya está abierto.\n * @param e Evento táctil del documento.\n */\n onTouchStart(e: TouchEvent) {\n const t = e.changedTouches[0];\n this.touchStartX = t.clientX;\n this.touchStartY = t.clientY;\n this.lastTouchX = t.clientX;\n this.isSwiping = (!this.isMobileMenuOpen && this.touchStartX <= this.EDGE_ZONE) || this.isMobileMenuOpen;\n }\n\n // Detectar cuando el dedo se levanta\n /**\n * Maneja el evento `touchend` del documento.\n * Calcula desplazamiento total y decide abrir/cerrar mediante `handleSwipeGesture`.\n * @param e Evento táctil del documento.\n */\n @HostListener('document:touchend', ['$event'])\n onTouchEnd(e: TouchEvent) {\n const t = e.changedTouches[0];\n this.touchEndX = t.clientX;\n this.handleSwipeGesture();\n this.isSwiping = false;\n }\n\n // Seguimiento del movimiento para mejorar la detección de swipe\n /**\n * Maneja el evento `touchmove` del documento.\n * Detecta desplazamiento horizontal significativo con tolerancia vertical.\n * Abre/cierra el menú cuando supera los umbrales definidos.\n * @param e Evento táctil del documento.\n */\n @HostListener('document:touchmove', ['$event'])\n onTouchMove(e: TouchEvent) {\n if (!this.isSwiping) { return; }\n const t = e.changedTouches[0];\n const dx = t.clientX - this.lastTouchX;\n const dy = Math.abs(t.clientY - this.touchStartY);\n this.lastTouchX = t.clientX;\n if (Math.abs(dx) > 10 && dy <= this.VERTICAL_TOLERANCE) {\n const totalDx = t.clientX - this.touchStartX;\n if (!this.isMobileMenuOpen && this.touchStartX <= this.EDGE_ZONE && totalDx >= this.OPEN_THRESHOLD) {\n e.preventDefault();\n this.openMenu();\n this.isSwiping = false;\n return;\n }\n // Cierre en movimiento: menú abierto y supera umbral hacia la izquierda\n if (this.isMobileMenuOpen && totalDx <= this.CLOSE_THRESHOLD) {\n e.preventDefault();\n this.closeMenu();\n this.isSwiping = false;\n return;\n }\n }\n }\n\n /**\n * Evalúa el desplazamiento entre `touchstart` y `touchend` para decidir\n * apertura o cierre del menú móvil.\n */\n handleSwipeGesture() {\n // Apertura: inicio en borde y desplazamiento hacia derecha suficiente\n if (!this.isMobileMenuOpen && this.touchStartX <= this.EDGE_ZONE) {\n if (this.touchEndX - this.touchStartX >= this.OPEN_THRESHOLD) {\n this.openMenu();\n return;\n }\n }\n // Cierre: si menú abierto y hubo desplazamiento hacia izquierda suficiente\n if (this.isMobileMenuOpen) {\n if (this.touchEndX - this.touchStartX <= this.CLOSE_THRESHOLD) {\n this.closeMenu();\n }\n }\n }\n\n /**\n * Abre el `Drawer` del menú móvil y asegura el scroll al inicio del contenido.\n * También fuerza el scroll de la página al top para evitar solapamientos.\n */\n openMenu() {\n this.isMobileMenuOpen = true;\n // Al abrir el menú en móvil, asegurar que el contenido del Drawer esté scrolleado al inicio\n setTimeout(() => {\n const drawerContent = document.querySelector('.custom-sidebar .p-drawer-content') as HTMLElement;\n if (drawerContent) {\n drawerContent.scrollTop = 0;\n }\n // Asegurar que la página no afecte la visualización del menú\n window.scrollTo({ top: 0, behavior: 'auto' });\n }, 0);\n }\n closeMenu() {\n /** Cierra el menú móvil. */\n this.isMobileMenuOpen = false;\n }\n /** Abre el `Drawer` del carrito. */\n openCart() {\n this.isCartOpen = true;\n }\n closeCart() {\n /** Cierra el `Drawer` del carrito. */\n this.isCartOpen = false;\n }\n /**\n * Calcula el total del carrito sumando `price * qty`.\n * @returns Total acumulado.\n */\n getCartTotal(): number {\n return this.cartItems.reduce((acc, it) => acc + (it.price * it.qty), 0);\n }\n goToCheckout() {\n /** Acción placeholder para ir al checkout; cierra el carrito. */\n // Navegación simple: ajusta a tu ruta real de checkout\n console.log('Ir a checkout');\n this.isCartOpen = false;\n }\n \n\n toggleMobileMenu() {\n /** Toggle simple del menú móvil (abre/cierra). */\n this.isMobileMenuOpen = !this.isMobileMenuOpen;\n }\n\n \n \n \n cambiaLang(event: any) {\n /**\n * Cambia el idioma activo usando `TranslateService`.\n * @param event Idioma seleccionado (código ISO).\n */\n \n this.translate.use(event)\n \n }\n /**\n * Configura idiomas disponibles y selecciona automáticamente\n * según el lenguaje del navegador (`en`|`es`).\n */\n configLangs() {\n this.translate.addLangs(['en', 'es']);\n \n if (this.translate.getBrowserLang() == 'en') {\n this.translate.use('en');\n } else if (this.translate.getBrowserLang() == 'es') {\n this.translate.use('es');\n } else {\n this.translate.use('en');\n }\n }\n\n // Método para obtener items del menú izquierdo (primeros elementos)\n /**\n * Retorna ítems visibles no relacionados con autenticación\n * para mostrarlos en la zona izquierda del menú principal.\n * @returns Array de `MenuItem` para el menú izquierdo.\n */\n getLeftMenuItems(): MenuItem[] {\n // Mostrar todos los items de navegación excepto los de auth en la izquierda\n return this.currentMenu.items.filter(item => \n !item.separator && \n !['login', 'register'].includes(item.id)\n );\n }\n\n // Método para obtener items del menú derecho (últimos elementos)\n /** Retorna los ítems de autenticación (login/register) para la zona derecha. */\n getRightMenuItems(): MenuItem[] {\n return this.currentMenu.items.filter(item => \n !item.separator && \n ['login', 'register'].includes(item.id)\n );\n }\n\n // Método para obtener todos los items visibles para móvil\n /** Retorna todos los ítems visibles para el menú móvil. */\n getMobileMenuItems(): MenuItem[] {\n return this.currentMenu.items\n }\n\n // Método para manejar clics en el menú\n /**\n * Maneja clics en ítems del menú:\n * - Previene navegación si el ítem está deshabilitado.\n * - Para `nosotros` y `categorias`, desplaza a la sección correspondiente\n * o navega con fragment si no se está en Home.\n * - Cierra el menú móvil tras la acción.\n */\n onMenuItemClick(item: MenuItem, event?: Event): void {\n if (item.disabled) {\n event?.preventDefault();\n return;\n }\n\n const id = item.id?.toLowerCase();\n if (id === 'nosotros') {\n event?.preventDefault();\n this.handleSectionClick('nosotros');\n return;\n }\n\n if (id === 'categorias') {\n event?.preventDefault();\n this.handleSectionClick('categorias');\n return;\n }\n\n this.isMobileMenuOpen = false; // Cerrar menú al hacer click\n console.log('Menu item clicked:', item);\n }\n\n /** Determina si la ruta actual corresponde al Home. */\n private isHomeRoute(): boolean {\n return this.router.url === '/' || this.router.url.startsWith('/home');\n }\n\n /**\n * Gestiona la navegación/scroll hacia una sección identificada por `anchorId`.\n * Si se está en Home y la sección existe, hace `scrollIntoView` suave.\n * En caso contrario, navega a Home con `fragment`.\n */\n private handleSectionClick(anchorId: 'nosotros' | 'categorias'): void {\n const isHome = this.isHomeRoute();\n if (isHome) {\n const target = document.getElementById(anchorId);\n if (target) {\n target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n } else {\n this.router.navigate(['/'], { fragment: anchorId });\n }\n } else {\n this.router.navigate(['/'], { fragment: anchorId });\n }\n this.isMobileMenuOpen = false;\n }\n\n \n}\n","<header>\n \n <lib-header-top-ecommerce1 \n [facebookLink]=\"'https://www.facebook.com/Zigmainflables'\"\n [instagramLink]=\"'https://www.instagram.com/zigmainflables/'\"\n [whatsappLink]=\"DatosNegocio?.urlWhatssapp || 'https://wa.me/3186956700'\">\n </lib-header-top-ecommerce1>\n \n <nav class=\"main-nav hidden md:block mt-4 mx-auto px-5 py-5 border-round-3xl shadow-4\" style=\"max-width: 1000px; width: 90%; font-size: 1.125rem; font-weight: 600;\">\n <div class=\"flex align-items-center justify-content-between\">\n <ul class=\"main-nav-ul flex gap-4 list-none m-0 p-0\">\n @for (item of getLeftMenuItems(); track item.id) {\n <li>\n <a [routerLink]=\"item.routerLink\" routerLinkActive=\"active-route\" [routerLinkActiveOptions]=\"{ exact: true }\" (click)=\"onMenuItemClick(item, $event)\" class=\"main-nav-link no-underline font-semibold cursor-pointer\">\n @if (currentMenu.showIcons && item.icon) {\n <i [class]=\"item.icon\" style=\"margin-right:8px\"></i>\n }\n {{ item.label }}\n </a>\n </li>\n }\n </ul>\n <a [routerLink]=\"['/']\" class=\"logo-center text-3xl font-bold text-900 no-underline\" aria-label=\"Home\">\n @if (logoUrl) {\n <img [src]=\"logoUrl\" [alt]=\"logoAlt || logoText\" class=\"logo-img\" />\n } @else {\n {{ logoText }}\n }\n </a>\n <ul class=\"main-nav-ul flex gap-4 list-none m-0 p-0\">\n @for (item of getRightMenuItems(); track item.id) {\n <li>\n <a [routerLink]=\"item.routerLink\" routerLinkActive=\"active-route\" [routerLinkActiveOptions]=\"{ exact: true }\" (click)=\"onMenuItemClick(item, $event)\" class=\"main-nav-link cursor-pointer\">\n @if (currentMenu.showIcons && item.icon) {\n <i [class]=\"item.icon\" ></i>\n }\n {{ item.label }}\n </a>\n </li>\n }\n @if(islogin){\n <li class=\"flex items-center gap-3 ml-2\">\n <i class=\"fas fa-shopping-cart text-xl cursor-pointer shopping-cart\" (click)=\"openCart()\"></i>\n </li>\n}\n </ul>\n </div>\n </nav>\n\n <nav class=\"mobile-header md:hidden mt-3 mx-auto border-round-xl shadow-4 flex align-items-center justify-content-between px-4 py-3\" \n style=\"max-width: 95%; background-color: #0093e9;\">\n \n <button (click)=\"toggleMobileMenu()\" class=\"p-0 border-none bg-transparent flex align-items-center justify-content-center cursor-pointer text-white hover:text-gray-200 transition-colors\">\n <i class=\"fas fa-bars text-2xl\"></i>\n </button>\n <div class=\"flex align-items-center gap-3\">\n <a [routerLink]=\"['/']\" class=\"text-xl font-bold text-white no-underline line-height-2\" aria-label=\"Home\">\n @if (logoUrl) {\n <img [src]=\"logoUrl\" [alt]=\"logoAlt || logoText\" class=\"logo-img-mobile\" />\n } @else {\n {{ logoText }}\n }\n </a>\n </div>\n\n @if(islogin){\n <div class=\"flex align-items-center\">\n <i class=\"fas fa-shopping-cart text-white text-xl cursor-pointer hover:text-gray-200 transition-colors\" (click)=\"openCart()\"></i>\n </div>\n }\n </nav>\n \n <p-drawer [(visible)]=\"isMobileMenuOpen\"\n position=\"left\"\n [modal]=\"true\"\n [dismissible]=\"true\"\n [blockScroll]=\"true\"\n [autoZIndex]=\"true\"\n (onHide)=\"isMobileMenuOpen = false\"\n styleClass=\"w-20rem custom-sidebar\">\n <ng-template pTemplate=\"content\" style=\"background-color:#fbc30d !important;\">\n \n <div class=\"relative mb-4\">\n <div class=\"menu-header-bg\"></div>\n <div class=\"header-content\">\n <img src=\"https://placehold.co/100x100/ffffff/000000?text=User\" alt=\"User\">\n <div>\n <h2>{{logoText}}</h2>\n <p>Fabrica de inflables</p>\n </div>\n </div>\n </div>\n\n <div class=\"menu-items-container\">\n @for (item of getMobileMenuItems(); track item.id) {\n <a [routerLink]=\"item.routerLink\" \n (click)=\"onMenuItemClick(item, $event)\"\n routerLinkActive=\"active-route\" [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"menu-item-link\">\n \n @if (currentMenu.showIcons && item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n \n <span>{{ item.label }}</span>\n </a>\n }\n </div>\n \n <div class=\"language-section\">\n <select [(ngModel)]=\"seleccionada\" (change)=\"cambiaLang(seleccionada)\" class=\"custom-select\">\n @for (lang of langs; track lang) {\n <option [value]=\"lang\">{{ lang }}</option>\n }\n </select>\n </div>\n\n </ng-template>\n </p-drawer>\n\n <!-- Drawer Carrito (derecha) -->\n @if(islogin) {\n <p-drawer [(visible)]=\"isCartOpen\"\n position=\"right\"\n [modal]=\"true\"\n [dismissible]=\"true\"\n [blockScroll]=\"true\"\n [autoZIndex]=\"true\"\n (onHide)=\"isCartOpen = false\"\n styleClass=\"w-22rem cart-sidebar\">\n\n <ng-template pTemplate=\"header\">\n <div class=\"cart-header\">\n <span>Tu Carrito</span>\n <button class=\"close-cart\" (click)=\"closeCart()\">×</button>\n </div>\n </ng-template>\n <ng-template pTemplate=\"content\">\n <div class=\"cart-items\">\n @if (cartItems.length === 0) {\n <div class=\"cart-empty\">Tu carrito está vacío.</div>\n } @else {\n @for (ci of cartItems; track ci.id) {\n <div class=\"cart-item\">\n <div class=\"cart-item-info\">\n <span class=\"name\">{{ ci.name }}</span>\n <small class=\"meta\">x{{ ci.qty }}</small>\n </div>\n <div class=\"cart-item-actions\">\n <span class=\"price\">{{ ci.price | currency:'USD':'symbol':'1.0-0' }}</span>\n </div>\n </div>\n }\n }\n </div>\n <div class=\"cart-footer\">\n <div class=\"total-row\">\n <span>Total</span>\n <strong>{{ getCartTotal() | currency:'USD':'symbol':'1.0-0' }}</strong>\n </div>\n <div class=\"actions\">\n <button class=\"btn btn-primary\" (click)=\"goToCheckout()\">Pagar</button>\n </div>\n </div>\n </ng-template>\n </p-drawer>\n }\n</header>","import { Component, ViewEncapsulation } from '@angular/core';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\n\n@Component({\n selector: 'lib-bar-float-ecommerce1',\n imports: [PrimegModule],\n templateUrl: './bar-float-ecommerce1.html',\n styleUrl: './bar-float-ecommerce1.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class BarFloatEcommerce1 {\n\n componente:ComponentesDTO = {\n id: 33,\n nombreComponente: 'lib-bar-float-ecommerce1',\n version: '1.0',\n descripcion: 'Componente para mostrar una barra flotante en la página de ecommerce1'\n }\n}\n","<section class=\"bar-hero animate-hero-section\" style=\"background-image: url('../../../../../assets/imagenes/bannerInflables.png');\">\n <div class=\"bar-hero-inner\">\n <div class=\"bar-hero-card\">\n <p class=\"hero-subtitle\">¡Bienvenido a Zigma Inflables!</p>\n <h1 class=\"hero-title\">El mejor lugar para inflables</h1>\n <p-button label=\"Ver catálogo\" class=\"p-button-warning hero-cta\"></p-button>\n </div>\n </div>\n</section>","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BusinessDTO, ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-footer-ecommerce1',\n imports: [],\n templateUrl: './footer-ecommerce1.html',\n styleUrl: './footer-ecommerce1.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class FooterEcommerce1 {\n\n\n componente:ComponentesDTO = {\n id: 32,\n nombreComponente: 'lib-footer-ecommerce1',\n version: '1.0',\n descripcion: 'Componente para mostrar el pie de página en la página de ecommerce1'\n }\n\n @Input() DatosNegocio :BusinessDTO | null = null;\n \n}\n","<footer class=\"ecom-footer\">\n <div class=\"ecom-footer-inner\">\n <div class=\"ecom-footer-top\">\n <h2 class=\"brand\">{{DatosNegocio?.nombreNegocio || 'Zigma Inflables'}}</h2>\n\n <!-- <nav class=\"footer-nav\" aria-label=\"Footer links\">\n <a href=\"#\">Inicio</a>\n <a href=\"#\">Catálogo</a>\n <a href=\"#\">Entrega</a>\n <a href=\"#\">Sobre</a>\n <a href=\"#\">Contactos</a>\n </nav> -->\n\n <div class=\"social-links\" aria-hidden=\"false\">\n <a href=\"#\" aria-label=\"Facebook\" class=\"social\"><i class=\"fab fa-facebook-f\"></i></a>\n <a href=\"#\" aria-label=\"Instagram\" class=\"social\"><i class=\"fab fa-instagram\"></i></a>\n <a href=\"{{DatosNegocio?.urlWhatssapp || '#'}}\" aria-label=\"WhatsApp\" class=\"social\"><i class=\"fab fa-whatsapp\"></i></a>\n </div>\n </div>\n\n <div class=\"ecom-footer-bottom\">\n <p>Desarrollado por <a href=\"#\">TwinsCode</a> • <a href=\"#\">Guía de Estilo</a> • <a href=\"#\">Licencias</a></p>\n </div>\n </div>\n</footer>\n","import { Component, OnDestroy, OnInit, ElementRef, ViewChild, Renderer2, PLATFORM_ID, Inject, Input, OnChanges } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { ButtonModule } from 'primeng/button';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { HeaderEcommerce1Component } from \"../../molecules/ecommerce1/header-ecommerce1/header-ecommerce1\";\nimport { BarFloatEcommerce1 } from \"../../molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1\";\nimport { FooterEcommerce1 } from \"../../molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1\";\nimport { RouterOutlet } from '@angular/router';\nimport { CategoriaDTO, MenuConfig, MenuItem, BusinessDTO} from '@juliaosistem/core-dtos';\n@Component({\n selector: 'lib-ecommerce1',\n imports: [CommonModule, DialogModule, ButtonModule, BarFloatEcommerce1, FooterEcommerce1, HeaderEcommerce1Component, RouterOutlet],\n templateUrl: './ecommerce1.html',\n styleUrl: './ecommerce1.scss',\n})\nexport class Ecommerce1 implements OnInit, OnDestroy, OnChanges {\n\n // El usuario inicio sesion o no\n @Input() isLogin: boolean = false;\n\n // Datos del negocio\n @Input() DatosNegocio :BusinessDTO | null = null;\n\n // Categorias a mostrar\n @Input() Categorias!: CategoriaDTO [];\n\n // Rutas para navegación \n @Input() routePaths: { [key: string]: string } = {\n home: './',\n login: 'login',\n register: 'register'\n };\n\n // Configuración del menú \n headerMenuConfig: MenuConfig | null = null;\n\n @ViewChild('whatsappButton', { static: false }) whatsappButton!: ElementRef;\n @ViewChild('productGrid', { static: false }) productGrid!: ElementRef;\n @ViewChild('mobileMenu', { static: false }) mobileMenu!: ElementRef;\n\n // Estado del componente\n currentPage: string = 'home';\n showWhatsappButton = false;\n showWhatsappModal = false;\n whatsappModalShown = false;\n isMobileMenuOpen = false;\n\n // Timers y listeners\n private whatsappModalTimer?: number;\n private scrollListener?: () => void;\n private mouseOutListener?: (event: MouseEvent) => void;\n private beforeUnloadListener?: (event: BeforeUnloadEvent) => void;\n private intersectionObserver?: IntersectionObserver;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private renderer: Renderer2,\n // eslint-disable-next-line @typescript-eslint/no-wrapper-object-types\n @Inject(PLATFORM_ID) private platformId: Object\n ) {}\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.initializeAnimations();\n this.setupWhatsappModal();\n this.setupScrollListener();\n }\n this.updateMenuConfig();\n }\n\n ngOnChanges(): void {\n // Los datos han cambiado, aquí puedes actualizar cualquier lógica necesaria\n }\n\n ngAfterViewInit(): void {\n this.handleWhatsappButtonVisibility();\n }\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n // eslint-disable-next-line max-lines-per-function\n getItemsInHeaderMenu(): MenuItem[] {\n return [\n { id: 'home',label: 'Inicio',\n type: 'link',\n routerLink: [this.routePaths['home'] || './'],\n icon: 'fas fa-home',visible: true, order: 1\n },\n {\n id: 'login',\n label: 'Iniciar Sesión',\n type: 'link',\n routerLink: [this.routePaths['login'] || 'login'],\n icon: 'fas fa-sign-in-alt', visible: true, order: 4\n }, {\n id: 'register',\n label: 'Registrar',\n type: 'link',\n routerLink: [this.routePaths['register'] || 'register'],\n icon: 'fas fa-user-plus',visible: true, order: 5\n }, {\n id: 'Nosotros',\n label: 'Nosotros',\n type: 'link',\n routerLink:['#nosotros'],\n icon: 'fas fa-user-plus',visible: true, order: 5\n }\n ]\n }\n \n private updateMenuConfig(): void {\n this.headerMenuConfig = {\n name: 'Header Menu',\n id: 'header-menu',\n items: this.getItemsInHeaderMenu(),\n showIcons: true\n };\n }\n \n // ===== NAVEGACIÓN =====\n navigateToPage(page: string): void {\n this.currentPage = page;\n this.isMobileMenuOpen = false;\n \n // Usar Angular Router para navegación\n const path = this.routePaths[page];\n if (path !== undefined) {\n this.router.navigate([path], { relativeTo: this.route });\n }\n }\n\n // ===== MENÚ MÓVIL =====\n toggleMobileMenu(): void {\n this.isMobileMenuOpen = !this.isMobileMenuOpen;\n }\n\n // ===== WHATSAPP FUNCIONALIDAD =====\n setupWhatsappModal(): void {\n // Mostrar modal después de 10 segundos\n this.whatsappModalTimer = window.setTimeout(() => {\n this.showWhatsappModalDialog();\n }, 15000);\n\n // Exit intent detection\n this.mouseOutListener = (event: MouseEvent) => {\n if (event.clientY <= 0 && !this.whatsappModalShown) {\n this.showWhatsappModalDialog();\n }\n };\n document.addEventListener('mouseout', this.mouseOutListener);\n\n // Intento de cierre/recarga de la página: usar el diálogo nativo de confirmación\n // y, si el usuario decide permanecer, mostrar nuestro modal personalizado.\n this.beforeUnloadListener = (event: BeforeUnloadEvent) => {\n if (!this.whatsappModalShown && this.currentPage === 'home') {\n event.preventDefault();\n event.returnValue = '';\n // El navegador mostrará su prompt; si el usuario se queda, mostramos el modal.\n setTimeout(() => {\n this.showWhatsappModalDialog();\n }, 0);\n }\n };\n window.addEventListener('beforeunload', this.beforeUnloadListener);\n }\n\n showWhatsappModalDialog(): void {\n if (this.currentPage === 'home' && !this.whatsappModalShown) {\n this.showWhatsappModal = true;\n this.whatsappModalShown = true;\n }\n }\n\n openWhatsappChat(message?: string): void {\n const defaultMessage = 'Hola, estoy interesado en los productos de Zigma Inflables.';\n const whatsappNumber = this.DatosNegocio?.telefono || '3186956700'; // Reemplazar con número real\n const finalMessage = message || defaultMessage;\n const whatsappUrl = `https://wa.me/${whatsappNumber}?text=${encodeURIComponent(finalMessage)}`;\n window.open(whatsappUrl, '_blank');\n \n }\n\n // ===== NEWSLETTER =====\n onNewsletterSubmit(email: string): void {\n const message = `Hola, quiero ver tus productos. Este es mi correo: ${email}. Vi esto desde tu página web.`;\n this.openWhatsappChat(message);\n }\n\n // ===== SCROLL ANIMATIONS =====\n setupScrollListener(): void {\n this.scrollListener = () => {\n this.handleWhatsappButtonVisibility();\n };\n window.addEventListener('scroll', this.scrollListener);\n }\n\n private handleWhatsappButtonVisibility(): void {\n if (this.currentPage !== 'home') {\n this.showWhatsappButton = false;\n return;\n }\n\n if (this.productGrid?.nativeElement) {\n const productGridTop = this.productGrid.nativeElement.offsetTop;\n if (window.scrollY > (productGridTop - 500)) {\n this.showWhatsappButton = true;\n } else {\n this.showWhatsappButton = false;\n }\n }\n }\n\n // ===== ANIMACIONES =====\n initializeAnimations(): void {\n const observerOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0.2\n };\n\n this.intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.renderer.addClass(entry.target, 'is-visible');\n this.intersectionObserver?.unobserve(entry.target);\n }\n });\n }, observerOptions);\n\n // Observar elementos cuando el DOM esté listo\n setTimeout(() => {\n this.observeAnimationElements();\n this.animateTitle();\n }, 100);\n }\n\n // eslint-disable-next-line max-lines-per-function\n private observeAnimationElements(): void {\n if (!this.intersectionObserver) return;\n\n // Elementos generales con animación de scroll\n const animateElements = document.querySelectorAll('.animate-scroll');\n animateElements.forEach(element => {\n this.intersectionObserver?.observe(element);\n });\n\n // Tarjetas de producto con animación escalonada\n const productCards = document.querySelectorAll('.product-card');\n productCards.forEach((card, index) => {\n this.renderer.setStyle(card, 'transition-delay', `${index * 0.2}s`);\n this.intersectionObserver?.observe(card);\n });\n\n // Otros elementos animados\n const categoryCards = document.querySelectorAll('.category-card-animation');\n categoryCards.forEach(card => {\n this.intersectionObserver?.observe(card);\n });\n\n const heroSection = document.querySelector('.animate-hero-section');\n if (heroSection) {\n this.intersectionObserver.observe(heroSection);\n }\n\n const historySection = document.querySelector('.animate-history-section');\n if (historySection) {\n this.intersectionObserver.observe(historySection);\n }\n\n const instagramSection = document.querySelector('.animate-instagram-section');\n if (instagramSection) {\n this.intersectionObserver.observe(instagramSection);\n }\n\n const newsletterSection = document.querySelector('.animate-newsletter-section');\n if (newsletterSection) {\n this.intersectionObserver.observe(newsletterSection);\n }\n }\n\n private animateTitle(): void {\n const toystoreTitle = document.getElementById('toystore-title');\n if (toystoreTitle) {\n this.renderer.addClass(toystoreTitle, 'logo-rotate');\n }\n }\n\n // ===== PRODUCTOS =====\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onProductClick(product: any): void {\n console.log('Product clicked:', product);\n // Implementar navegación a detalle del producto\n // this.router.navigate(['/ecommerce1/product', product.id]);\n }\n\n onCategoryFilter(category: string): void {\n console.log('Filter by category:', category);\n // Implementar filtrado de productos\n }\n\n // ===== CLEANUP =====\n private cleanup(): void {\n if (this.whatsappModalTimer) {\n clearTimeout(this.whatsappModalTimer);\n }\n if (this.scrollListener) {\n window.removeEventListener('scroll', this.scrollListener);\n }\n if (this.mouseOutListener) {\n document.removeEventListener('mouseout', this.mouseOutListener);\n }\n if (this.beforeUnloadListener) {\n window.removeEventListener('beforeunload', this.beforeUnloadListener);\n }\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n }\n\n // Seguridad: asegurar que el body recupere el scroll si el diálogo quedó abierto\n try {\n document.body.classList.remove('p-overflow-hidden', 'overflow-hidden');\n } catch(e){ console.error(e); }\n this.showWhatsappModal = false;\n }\n\n // ===== EVENTOS DEL TEMPLATE =====\n // Nota: con PrimeNG `p-dialog` manejamos el hide mediante `(onHide)`\n\n onLanguageChange(language: string): void {\n console.log('Language changed to:', language);\n // Implementar cambio de idioma\n }\n\n onSocialLogin(provider: 'google' | 'facebook'): void {\n console.log('Social login with:', provider);\n // Implementar login social\n }\n}\n"," <!-- Botón Flotante de WhatsApp convertido a PrimeNG -->\n <button id=\"whatsapp-button\"\n pButton\n type=\"button\"\n class=\"whatsapp-float p-button-rounded p-button-lg\"\n [ngClass]=\"{ 'p-button-success': showWhatsappButton, 'p-button-secondary': !showWhatsappButton }\"\n (click)=\"showWhatsappModalDialog()\"\n aria-label=\"Contáctanos por WhatsApp\">\n <!-- SVG se mantiene para icono consistente -->\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"vertical-align:middle\">\n <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0020.885 3.488\"/>\n </svg>\n </button>\n\n <!-- WhatsApp Modal reemplazado por PrimeNG Dialog -->\n <p-dialog [(visible)]=\"showWhatsappModal\"\n modal=\"true\"\n [blockScroll]=\"true\"\n [closable]=\"true\"\n [draggable]=\"false\"\n [focusOnShow]=\"false\"\n [keepInViewport]=\"true\"\n [position]=\"'center'\"\n [style]=\"{ width: '360px' }\"\n [dismissableMask]=\"false\"\n [closeOnEscape]=\"false\"\n appendTo=\"body\">\n <div class=\"p-text-center\" style=\"display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.75rem;\">\n <div style=\"background:#25d366;color:white;width:72px;height:72px;border-radius:36px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem;\">\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0020.885 3.488\"/>\n </svg>\n </div>\n <h3>¡No te vayas aún!</h3>\n <p>Si tienes alguna pregunta, puedes chatear con nosotros directamente por WhatsApp.</p>\n <div style=\"margin-top:1rem\">\n <button pButton type=\"button\" label=\"Chatear en WhatsApp\" class=\"p-button-success\" (click)=\"openWhatsappChat('Hola, tengo una pregunta.')\"></button>\n </div>\n </div>\n </p-dialog>\n\n <lib-header-ecommerce1 [menuConfig]=\"headerMenuConfig\" [DatosNegocio]=\"DatosNegocio\"></lib-header-ecommerce1>\n <lib-bar-float-ecommerce1 ></lib-bar-float-ecommerce1>\n \n <router-outlet></router-outlet>\n\n <!-- Footer Section -->\n <lib-footer-ecommerce1 [DatosNegocio]=\"DatosNegocio\"></lib-footer-ecommerce1>\n \n ","import { Component, OnInit } from '@angular/core';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\n\n@Component({\n selector: 'lib-hero-section-ecommerce1',\n imports: [PrimegModule],\n templateUrl: './hero-section-ecommerce1.html',\n styleUrl: './hero-section-ecommerce1.css',\n})\nexport class HeroSectionEcommerce1 implements OnInit {\n ngOnInit(): void {\n console.log('HeroSectionEcommerce1 component initialized');\n }\n\n // Metadata del componente \n componente:ComponentesDTO = {\n id: 30,\n nombreComponente: 'lib-hero-section-ecommerce1',\n version: '1.0',\n descripcion: 'Componente para mostrar la sección de héroe en la página de ecommerce1'\n }\n \n\n}\n"," <section class=\"hero-section\">\n <div class=\"hero-container\">\n <!-- Tarjeta 1: Castillos Inflables -->\n <a href=\"#\" class=\"card-link\">\n <p-card class=\"category-card category-card-blue\">\n <ng-template pTemplate=\"header\">\n <img src=\"https://placehold.co/200x200/0093e9/ffffff?text=🏰\" alt=\"Castillos Inflables\" class=\"category-image\" />\n </ng-template>\n <div class=\"card-body\">\n <h3 class=\"card-title\">Castillos Inflables</h3>\n <span class=\"card-subtitle\">Comprar ahora</span>\n </div>\n </p-card>\n </a>\n\n <!-- Tarjeta 2: Toboganes -->\n <a href=\"#\" class=\"card-link\">\n <p-card class=\"category-card category-card-pink\">\n <ng-template pTemplate=\"header\">\n <img src=\"https://placehold.co/200x200/ff5680/ffffff?text=🎢\" alt=\"Toboganes Inflables\" class=\"category-image\" />\n </ng-template>\n <div class=\"card-body\">\n <h3 class=\"card-title\">Toboganes</h3>\n <span class=\"card-subtitle\">Comprar ahora</span>\n </div>\n </p-card>\n </a>\n </div>\n </section>","import { Component, ElementRef, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ComponentesDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-section-images-instagram-ecommerce1',\n imports: [],\n templateUrl: './section-images-instagram-ecommerce1.html',\n styleUrl: './section-images-instagram-ecommerce1.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class SectionImagesInstagramEcommerce1 implements OnInit, OnDestroy {\n\n // Metadata del componente \n componente:ComponentesDTO = {\n id: 31,\n nombreComponente: 'lib-section-images-instagram-ecommerce1',\n version: '1.0',\n descripcion: 'Componente para mostrar imágenes de Instagram en la página de ecommerce1'\n }\n private observer?: IntersectionObserver;\n private cardsObserver?: IntersectionObserver;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit(): void {\n const options = { root: null, threshold: 0.2 };\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const section = entry.target as HTMLElement;\n if (entry.isIntersecting) {\n section.classList.add('is-visible');\n } else {\n section.classList.remove('is-visible');\n }\n });\n }, options);\n\n const section = this.el.nativeElement.querySelector('.animate-instagram-section');\n if (section) {\n this.observer.observe(section);\n }\n\n // Observer para las tarjetas con efecto escalonado\n const cardOptions = { root: null, threshold: 0.1 };\n let index = 0;\n this.cardsObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const card = entry.target as HTMLElement;\n if (entry.isIntersecting) {\n // Asignar delay incremental basado en el orden en DOM\n card.style.transitionDelay = `${(index % 4) * 120}ms`;\n card.classList.add('is-visible');\n }\n });\n index += entries.length;\n }, cardOptions);\n\n const cards: NodeListOf<HTMLElement> = this.el.nativeElement.querySelectorAll('.social-card');\n cards.forEach((c) => this.cardsObserver?.observe(c));\n }\n\n ngOnDestroy(): void {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n if (this.cardsObserver) {\n this.cardsObserver.disconnect();\n this.cardsObserver = undefined;\n }\n }\n}\n","<section class=\"py-6 md:py-8 animate-instagram-section bg-brand-blue\">\n <div class=\"mx-auto px-3 md:px-4 text-center\" style=\"max-width: 1100px;\">\n <h2 class=\"text-3xl md:text-4xl font-bold text-0 my-4\">¡Nuestras redes!</h2>\n <div class=\"grid justify-content-center gap-3 md:gap-4 mt-6\">\n <!-- Facebook -->\n <div class=\"col-12 sm:col-6 md:col-4 lg:col-2\">\n <a href=\"#\" class=\"social-card block border-round-xl overflow-hidden shadow-2 hover:shadow-4 transition-duration-300 transition-shadow surface-card p-3 flex flex-column align-items-center gap-2\">\n <i class=\"fab fa-facebook-f\" style=\"font-size:2rem; color:#1877F2\"></i>\n <span class=\"text-800 font-semibold\">Facebook</span>\n </a>\n </div>\n <!-- Instagram -->\n <div class=\"col-12 sm:col-6 md:col-4 lg:col-2\">\n <a href=\"#\" class=\"social-card block border-round-xl overflow-hidden shadow-2 hover:shadow-4 transition-duration-300 transition-shadow surface-card p-3 flex flex-column align-items-center gap-2\">\n <i class=\"fab fa-instagram\" style=\"font-size:2rem; color:#E4405F\"></i>\n <span class=\"text-800 font-semibold\">Instagram</span>\n </a>\n </div>\n <!-- TikTok -->\n <div class=\"col-12 sm:col-6 md:col-4 lg:col-2\">\n <a href=\"#\" class=\"social-card block border-round-xl overflow-hidden shadow-2 hover:shadow-4 transition-duration-300 transition-shadow surface-card p-3 flex flex-column align-items-center gap-2\">\n <i class=\"fab fa-tiktok\" style=\"font-size:2rem; color:#000000\"></i>\n <span class=\"text-800 font-semibold\">TikTok</span>\n </a>\n </div>\n <!-- WhatsApp -->\n <div class=\"col-12 sm:col-6 md:col-4 lg:col-2\">\n <a href=\"#\" class=\"social-card block border-round-xl overflow-hidden shadow-2 hover:shadow-4 transition-duration-300 transition-shadow surface-card p-3 flex flex-column align-items-center gap-2\">\n <i class=\"fab fa-whatsapp\" style=\"font-size:2rem; color:#25D366\"></i>\n <span class=\"text-800 font-semibold\">WhatsApp</span>\n </a>\n </div>\n </div>\n <button pButton type=\"button\" label=\"Ver más fotos\" class=\"p-button-warning font-bold mt-6\" style=\"border-radius: 999px; padding: .75rem 2rem;\"></button>\n </div>\n</section>","import { Component, Input, OnInit, Output, EventEmitter, AfterViewInit, ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { HeroSectionEcommerce1 } from \"../../../molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1\";\nimport { SectionFiltersCategoriesProductos } from \"../../../../shared/molecules/section-filters-categories-productos/section-filters-categories-productos\";\nimport { CardProductos1Component } from \"../../../../shared/molecules/productos/card-productos1/card-productos1.component\";\nimport { SectionImagesInstagramEcommerce1 } from '../../../molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1';\nimport { PaginatorPgComponent } from '../../../../shared/atoms/paginator-pg/paginator-pg.component';\nimport { BusinessDTO, CategoriaDTO, ComponentesDTO, ProductoDTO } from '@juliaosistem/core-dtos';\n\n@Component({\n selector: 'lib-home-ecommerce1',\n imports: [\n CommonModule,\n ButtonModule,\n InputTextModule,\n HeroSectionEcommerce1,\n SectionFiltersCategoriesProductos,\n CardProductos1Component,\n SectionImagesInstagramEcommerce1,\n PaginatorPgComponent\n ],\n templateUrl: './home-ecommerce1.html',\n styleUrls: ['./home-ecommerce1.scss']\n})\nexport class HomeEcommerce1 implements OnInit, AfterViewInit, OnChanges {\n\n // Metadata del componente \n componente: ComponentesDTO = {\n id: 28,\n nombreComponente: 'lib-home-ecommerce1',\n version: '1.0',\n descripcion: 'Componente para mostrar home de ecommerce1'\n }\n\n // ===== Inputs desde la app =====\n @Input() isLogin: boolean = false;\n @Input() bussinesDTO!: BusinessDTO ;\n @Input() categorias: CategoriaDTO[] = [];\n // Base de ruta para navegar al detalle desde las cards (controlado por el front)\n @Input() detailRouteBase: string[] = ['detalle'];\n\n filteredProducts: ProductoDTO[] = [];\n\n // ===== Outputs para eventos hacia la app =====\n @Output() productClicked = new EventEmitter<ProductoDTO>();\n @Output() categorySelected = new EventEmitter<string>();\n\n constructor(private el: ElementRef) {}\n\n ngOnInit(): void {\n this.filteredProducts = this.getAllProducts();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes['bussinesDTO'] && !changes['bussinesDTO'].firstChange) ||\n (changes['categorias'] && !changes['categorias'].firstChange)) {\n this.applyCategoryFilter('all');\n }\n }\n ngAfterViewInit() {\n this.iniciarAnimacionScroll();\n }\n\n /**\n * Inicializa la animación de scroll configurando los observadores necesarios.\n */\n iniciarAnimacionScroll(): void {\n const observer = this.createIntersectionObserver();\n this.initialObservation(observer);\n this.setupMutationObserver(observer);\n }\n\n /**\n * Crea el IntersectionObserver para manejar la visibilidad de los elementos.\n * @returns Instancia de IntersectionObserver configurada.\n */\n private createIntersectionObserver(): IntersectionObserver {\n const observerOptions = { root: null, rootMargin: '0px', threshold: 0.1 };\n return new IntersectionObserver((entries, obs) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add('is-visible');\n obs.unobserve(entry.target);\n }\n });\n }, observerOptions);\n }\n\n /**\n * Selecciona los elementos a animar y los añade al observador.\n * @param observer El IntersectionObserver activo.\n */\n private observeElements(observer: IntersectionObserver): void {\n const tarjetas = this.el.nativeElement.querySelectorAll('.product-card-animation');\n tarjetas.forEach((tarjeta: Element) => observer.observe(tarjeta));\n const newsletter = this.el.nativeElement.querySelectorAll('.animate-newsletter-section');\n newsletter.forEach((sec: Element) => observer.observe(sec));\n const genericos = this.el.nativeElement.querySelectorAll('.animate-scroll');\n genericos.forEach((el: Element) => observer.observe(el));\n }\n\n /**\n * Realiza la observación inicial después de un breve retraso para asegurar el renderizado.\n * @param observer El IntersectionObserver activo.\n */\n private initialObservation(observer: IntersectionObserver): void {\n setTimeout(() => {\n this.observeElements(observer);\n }, 50);\n }\n\n /**\n * Configura un MutationObserver para detectar cambios en la paginación y re-observar elementos.\n * @param observer El IntersectionObserver activo.\n */\n private setupMutationObserver(observer: IntersectionObserver): void {\n const mutationObserver = new MutationObserver((mutations) => {\n const shouldUpdate = mutations.some(mutation => mutation.addedNodes.length > 0);\n if (shouldUpdate) {\n this.observeElements(observer);\n }\n });\n\n const paginatorElement = this.el.nativeElement.querySelector('lib-paginator-pg');\n if (paginatorElement) {\n mutationObserver.observe(paginatorElement, { childList: true, subtree: true });\n }\n }\n\n // ===== Métodos para interactuar con la app =====\n onProductClick(product: ProductoDTO): void {\n this.productClicked.emit(product);\n }\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nonAddToCart(event: any) {\n console.log(\"Evento recibido:\", event);\n}\n onCategoryFilter(category: string): void {\n this.applyCategoryFilter(category);\n this.categorySelected.emit(category);\n }\n\n private applyCategoryFilter(category: string): void {\n const base = this.getAllProducts();\n if (!category || category === 'all') {\n this.filteredProducts = base;\n return;\n }\n this.filteredProducts = base.filter(p => p.nombreCategoria === category);\n }\n\n private getAllProducts(): ProductoDTO[] {\n return (this.bussinesDTO && this.bussinesDTO.productos && this.bussinesDTO.productos.length > 0)\n ? this.bussinesDTO.productos\n : [];\n }\n}\n","<!-- Hero Section con animaciones-->\n\n<lib-hero-section-ecommerce1></lib-hero-section-ecommerce1>\n\n<!-- Product Grid Section -->\n\n<lib-section-filters-categories-productos id=\"categorias\"\n [categorias]=\"categorias\"\n (categorySelected)=\"onCategoryFilter($event)\">\n</lib-section-filters-categories-productos>\n<ng-template #cards let-items>\n <div class=\"grid align-items-center justify-content-center\">\n @for (product of items; track $index) {\n <div class=\"col-12 md:col-6 p-5 lg:p-3 lg:col-4 product-card-animation\"\n [style.transition-delay]=\"($index * 30) + 'ms'\">\n <lib-card-productos1 [product]=\"product\" [detailRouteBase]=\"detailRouteBase\" (addToCart)=\"onAddToCart($event)\">\n </lib-card-productos1>\n </div>\n }\n </div>\n</ng-template>\n\n<lib-paginator-pg\n [data]=\"filteredProducts\"\n [rows]=\"9\"\n [rowsPerPageOptions]=\"[9,18,27,54,81]\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"'Mostrando {first} a {last} de {totalRecords} ítems'\"\n [itemTemplate]=\"cards\">\n</lib-paginator-pg>\n\n<!-- Seccion \"Nuestra Historia\"-->\n<section id=\"nosotros\" class=\"history-section\" style=\"\n background-image: url(&quot;https://placehold.co/1400x600/b0b0b0/ffffff?text=Our+Story+Background+Image&quot;);\n \">\n <div class=\"history-overlay\"></div>\n <div class=\"history-content\">\n <p class=\"history-pretitle\">Sobre Nosotros</p>\n <h2 class=\"history-title\">Conoce Nuestra Historia</h2>\n <p class=\"history-text\">\n No hay una fórmula mágica para escribir un texto publicitario perfecto; se\n basa en varios factores, incluyendo la ubicación del anuncio, la\n demografía e incluso el estado de ánimo del consumidor.\n </p>\n <button pButton type=\"button\" class=\"p-button-rounded p-button-lg p-button-warning\" icon=\"pi pi-play\"\n aria-label=\"Ver video\"></button>\n </div>\n</section>\n\n<!-- Nueva seccion de Instagram -->\n<lib-section-images-instagram-ecommerce1></lib-section-images-instagram-ecommerce1>\n\n<!-- Newsletter (PrimeFlex + animación on scroll) -->\n<section class=\"surface-section py-5 animate-newsletter-section\">\n <div class=\"mx-auto px-3 md:px-4\" style=\"max-width: 1100px;\">\n <div class=\"newsletter-card surface-card border-round-2xl shadow-2 p-4 md:p-5 flex flex-column md:flex-row align-items-center gap-3 md:gap-4\">\n <div class=\"newsletter-left flex align-items-center gap-3 md:gap-4\">\n <div class=\"newsletter-icon flex align-items-center justify-content-center border-round-3xl\" style=\"background:#fbc30d; width: 52px; height:52px;\">\n <svg class=\"newsletter-svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width:28px;height:28px;color:#fff;\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19l9 2-9-18-9 18 9-2zm0 0v-8\"></path>\n </svg>\n </div>\n <div class=\"newsletter-text\">\n <h3 class=\"newsletter-title m-0 text-900 text-xl md:text-2xl\">Suscríbete a nuestro boletín</h3>\n <p class=\"newsletter-subtitle m-0 text-600\">¡y obtén un 10% de descuento!</p>\n </div>\n </div>\n <div class=\"newsletter-right flex justify-content-center md:justify-content-end w-full md:w-auto\">\n <form id=\"newsletter-form\" class=\"newsletter-form flex gap-2 w-full md:w-auto\" style=\"max-width:520px;\">\n <input pInputText type=\"email\" id=\"email-input\" name=\"email\" class=\"flex-1 p-inputtext-sm md:p-inputtext\" placeholder=\"Ingresa tu correo electrónico\" required />\n <button pButton type=\"submit\" label=\"Suscribirme\" class=\"p-button-warning\"></button>\n </form>\n </div>\n </div>\n </div>\n</section>\n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-section-header-forms-login-ecomerce1',\n imports: [],\n templateUrl: './section-header-forms-login-ecomerce1.html',\n styleUrl: './section-header-forms-login-ecomerce1.scss'\n})\nexport class SectionHeaderFormsLoginEcomerce1 {\n\n @Input() titulo: string = '';\n @Input() subtitulo: string ='';\n}\n","<div class=\"section-header text-center p-8 rounded-t-xl\" style=\"background-color: #fbc30d;\">\n <h2 class=\"text-3xl font-bold text-white mb-2\">{{ titulo }}</h2>\n <p class=\"text-white\">{{ subtitulo }}</p>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-section-login-registro-ecomerce1',\n imports: [],\n templateUrl: './section-login-registro-ecomerce1.html',\n styleUrl: './section-login-registro-ecomerce1.scss'\n})\nexport class SectionLoginRegistroEcomerce1 {\n\n}\n","<div class=\"divider-wrapper\">\n <div class=\"divider-line\"></div>\n <span class=\"divider-text\">O</span>\n <div class=\"divider-line\"></div>\n</div>\n","import { Component } from '@angular/core';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\n\n@Component({\n selector: 'lib-inputs-login-ecommerce1',\n imports: [PrimegModule],\n templateUrl: './inputs-login-ecommerce1.html',\n styleUrl: './inputs-login-ecommerce1.scss'\n})\nexport class InputsLoginEcommerce1 {\n remember = false;\n\n \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onRememberChange(event: any): void {\n this.remember = !!event?.checked;\n }\n}\n","<div class=\"input-group\">\n <label for=\"login-email\" class=\"input-label\">Email</label>\n <input pInputText id=\"login-email\" type=\"email\" class=\"input-field\" placeholder=\"ejemplo@correo.com\" required />\n</div>\n\n<div class=\"input-group\">\n <label for=\"login-password\" class=\"input-label\">Contraseña</label>\n <p-password inputId=\"login-password\" placeholder=\"********\" [toggleMask]=\"true\" appendTo=\"body\" class=\"input-field\"></p-password>\n</div>\n\n<div class=\"form-row\">\n <div class=\"remember\">\n <p-checkbox inputId=\"remember-me\" binary=\"true\" (onChange)=\"onRememberChange($event)\"></p-checkbox>\n <label for=\"remember-me\" class=\"remember-label\">Recordarme</label>\n </div>\n <a href=\"#\" class=\"forgot-link\">¿Olvidaste tu contraseña?</a>\n</div>","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-buttons-socialmedia-login',\n imports: [],\n templateUrl: './buttons-socialmedia-login.html',\n styleUrl: './buttons-socialmedia-login.scss'\n})\nexport class ButtonsSocialmediaLogin {\n@Input() isRegistering: boolean = true;\n@Input() isLogout: boolean = false;\n\n}\n","<div class=\"social-buttons\">\n <button pButton type=\"button\" class=\"social-btn social-google\" aria-label=\"Google\">\n <i class=\"fab fa-google social-icon\"></i>\n @if (isRegistering && isLogout) {\n <span>Registrarse con Google</span>\n } @else {\n <span>Iniciar sesión con Google</span>\n }\n </button>\n\n <button pButton type=\"button\" class=\"social-btn social-facebook\" aria-label=\"Facebook\">\n <i class=\"fab fa-facebook-f social-icon\"></i>\n @if (isRegistering && isLogout) {\n <span>Registrarse con Facebook</span>\n } @else {\n <span>Iniciar sesión con Facebook</span>\n }\n </button>\n</div>\n","import { Component } from '@angular/core';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\n\n@Component({\n selector: 'lib-inputs-register-ecommerce1',\n imports: [PrimegModule],\n templateUrl: './inputs-register-ecommerce1.html',\n styleUrl: './inputs-register-ecommerce1.scss'\n})\nexport class InputsRegisterEcommerce1 {\n\n}\n","<div class=\"grid formgrid p-fluid\">\n <div class=\"col-12 field\">\n <label for=\"register-name\" class=\"input-label\">Nombre completo</label>\n <input id=\"register-name\" type=\"text\" pInputText placeholder=\"John Doe\" required />\n </div>\n\n <div class=\"col-12 field\">\n <label for=\"register-email\" class=\"input-label\">Email</label>\n <input id=\"register-email\" type=\"email\" pInputText placeholder=\"ejemplo@correo.com\" required />\n </div>\n\n <div class=\"col-12 field\">\n <label for=\"register-password\" class=\"input-label\">Contraseña</label>\n <p-password inputId=\"register-password\" placeholder=\"********\" [toggleMask]=\"true\" appendTo=\"body\"></p-password>\n </div>\n\n <div class=\"col-12 field\">\n <label for=\"register-confirm-password\" class=\"input-label\">Confirmar Contraseña</label>\n <p-password inputId=\"register-confirm-password\" [feedback]=\"false\" [toggleMask]=\"true\"></p-password>\n </div>\n</div>","import { Component, Input } from '@angular/core';\nimport { PrimegModule } from '../../../../../modulos/primeg.module';\nimport { SectionLoginRegistroEcomerce1 } from \"../../../atoms/ecommerce1/section-login-registro-ecomerce1/section-login-registro-ecomerce1\";\nimport { InputsLoginEcommerce1 } from \"../../../atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1\";\nimport { ButtonsSocialmediaLogin } from \"../../../atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login\";\nimport { InputsRegisterEcommerce1 } from '../../../atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1';\n\n@Component({\n selector: 'lib-form-auth-eccomerce1',\n imports: [PrimegModule, SectionLoginRegistroEcomerce1, InputsLoginEcommerce1, ButtonsSocialmediaLogin, InputsRegisterEcommerce1],\n templateUrl: './form-auth-eccomerce1.html',\n styleUrl: './form-auth-eccomerce1.css'\n})\nexport class FormAuthEccomerce1 {\n \n @Input() isRegistering = true;\n @Input() isLogout = false;\n\n}\n","<form class=\"p-4 flex flex-column gap-3\">\n \n \n <lib-buttons-socialmedia-login [isRegistering]=\"isRegistering\" [isLogout]=\"isLogout\"></lib-buttons-socialmedia-login>\n <lib-section-login-registro-ecomerce1></lib-section-login-registro-ecomerce1>\n <!-- Botones de Social Login -->\n \n <!-- Campos del formulario -->\n @if (isRegistering && isLogout) {\n <lib-inputs-register-ecommerce1></lib-inputs-register-ecommerce1>\n }@else {\n <lib-inputs-login-ecommerce1></lib-inputs-login-ecommerce1>\n }\n \n <button pButton type=\"submit\"\n [label]=\"isRegistering ? 'Registrarse' : 'Iniciar sesión'\"\n class=\"w-full p-button-warning font-bold py-3 px-4 border-round-xl shadow-3\">\n </button>\n</form>","import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SectionHeaderFormsLoginEcomerce1 } from \"../../../atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1\";\nimport { FormAuthEccomerce1 } from \"../../../molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1\";\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'lib-login-ecommerce1',\n imports: [CommonModule, ButtonModule, SectionHeaderFormsLoginEcomerce1, FormAuthEccomerce1, RouterModule],\n templateUrl: './login-ecommerce1.html',\n styleUrls: ['./login-ecommerce1.scss'],\n encapsulation: ViewEncapsulation.None\n\n})\nexport class LoginEcommerce1 {\n\n}\n","<div class=\"auth-page\">\n <section class=\"auth-section\">\n <lib-section-header-forms-login-ecomerce1 [titulo]=\"'Iniciar Sesión'\" [subtitulo]=\"'Bienvenido de nuevo'\"></lib-section-header-forms-login-ecomerce1>\n <lib-form-auth-eccomerce1 [isRegistering]=\"false\" [isLogout]=\"false\"></lib-form-auth-eccomerce1>\n <div class=\"auth-footer\">\n <p>¿No tienes una cuenta?\n <button pButton type=\"button\" label=\"Regístrate\" class=\"p-button-text\" [routerLink]=\"['register']\"></button>\n </p>\n </div>\n </section>\n</div>","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SectionHeaderFormsLoginEcomerce1 } from \"../../../atoms/ecommerce1/section-header-forms-login-ecomerce1/section-header-forms-login-ecomerce1\";\nimport { FormAuthEccomerce1 } from \"../../../molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1\";\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'lib-register-ecommerce1',\n imports: [CommonModule, ButtonModule, SectionHeaderFormsLoginEcomerce1, FormAuthEccomerce1, RouterModule],\n templateUrl: './register-ecommerce1.html',\n styleUrl: './register-ecommerce1.scss'\n})\nexport class RegisterEcommerce1 {\n\n}\n","<div class=\"auth-page\">\n <section class=\"auth-section\">\n <lib-section-header-forms-login-ecomerce1 [titulo]=\"'Registro'\" [subtitulo]=\"'Crea tu cuenta en segundos'\"></lib-section-header-forms-login-ecomerce1>\n <lib-form-auth-eccomerce1 [isRegistering]=\"true\" [isLogout]=\"true\"></lib-form-auth-eccomerce1>\n <div class=\"auth-footer\">\n <p>¿Ya tienes una cuenta?\n <button pButton type=\"button\" label=\"Inicia sesión\" class=\"p-button-text\" [routerLink]=\"['login']\"></button>\n </p>\n </div>\n </section>\n</div>","import { QueryParams } from 'juliaositembackenexpress/dist/utils/queryParams';\n\n// eslint-disable-next-line max-lines-per-function\nexport function createGenericCrudActions<RQ>(entityName: string) {\n \n class All {\n static readonly type = `[${entityName}] ALL`;\n constructor(public payload: QueryParams, public filters?: Map<string, string>) {}\n }\n\n class Add {\n static readonly type = `[${entityName}] ADD`;\n constructor(public payload: RQ, public queryParams: QueryParams) {}\n }\n\n class Update {\n static readonly type = `[${entityName}] UPDATE`;\n constructor(public payload: RQ, public queryParams: QueryParams) {}\n }\n\n class Delete {\n static readonly type = `[${entityName}] DELETE`;\n constructor(public queryParams: QueryParams) {}\n }\n\n // Nueva acción para cargar datos mock en demos\n class LoadMock {\n static readonly type = `[${entityName}] LOAD_MOCK`;\n constructor() {}\n }\n\n return {\n All,\n Add,\n Update,\n Delete,\n LoadMock,\n };\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class MetaDataService {\n constructor() {}\n\n /**\n * Devuelve los metadatos completos para cualquier operación.\n * @param topic nombre del topic o ruta del topic kafka\n * @param proceso Operación: 'listar' | 'guardar' | 'eliminar'\n */\n get(topic: string, proceso: 'listar' | 'guardar' | 'eliminar' = 'listar') {\n // Aquí puedes reemplazar con lógica real para obtener ID del negocio y usuario\n const idBusiness = this.getIdBusinessFromSession();\n const idDatosUsuario = this.getIdDatosUsuarioFromSession();\n\n return {\n ip: '127.0.0.1', // opcional: luego dinámico\n dominio: 'app',\n usuario: 'admin',\n idBusiness,\n idDatosUsuario,\n topic,\n proceso,\n };\n }\n\n public getIdBusinessFromSession(): string | number {\n // lógica real: por ejemplo desde localStorage o servicio de sesión\n return '1'; // ejemplo 1 bussiness de momento hasta que se aplique lógica real\n }\n\n public getIdDatosUsuarioFromSession(): string {\n // lógica real: por ejemplo desde token JWT o servicio de sesión\n return 'userX';\n }\n}\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Injectable, Inject, Optional } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { PlantillaResponse } from \"juliaositembackenexpress/dist/utils/PlantillaResponse\";\nimport { LibConfigService } from \"../../../../config/lib-config.service\";\nimport { MetaDataService } from \"../meta-data.service.ts/meta-data.service\";\nimport { QueryParams } from \"juliaositembackenexpress/dist/utils/queryParams\";\n\n@Injectable({ providedIn: \"root\" })\nexport class GenericCrudHttpService<T> {\n protected basePathUrl: string;\n\n constructor(\n protected http: HttpClient,\n private config: LibConfigService,\n private meta: MetaDataService,\n @Inject('ENDPOINT_KEY') @Optional() private endpointKey?: string\n ) {\n this.basePathUrl = this.endpointKey\n ? this.config.get<string>(this.endpointKey) || \"http://localhost:3000\"\n : \"http://localhost:3000\";\n }\n\n // Construye headers a partir de un objeto\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private buildHeaders(headersObj: Record<string, any>): HttpHeaders {\n let headers = new HttpHeaders();\n Object.keys(headersObj).forEach(key => {\n if (headersObj[key] !== undefined && headersObj[key] !== null) {\n headers = headers.set(key, headersObj[key]);\n }\n });\n return headers;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n all(queryParams?: Record<string, any>): Observable<PlantillaResponse<T>> {\n const metaParams = this.meta.get('listar');\n const headers = this.buildHeaders({ ...metaParams, ...queryParams });\n return this.http.get<PlantillaResponse<T>>(`${this.basePathUrl}/all`, headers ? { headers } : {});\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n add(payload: T, topic: string, queryParams?: Record<string, any>): Observable<PlantillaResponse<T>> {\n const metaParams = this.meta.get('guardar');\n const headers = this.buildHeaders({ ...metaParams, ...queryParams });\n return this.http.post<PlantillaResponse<T>>(\n `${this.basePathUrl}/add`,\n payload,\n { headers }\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n update(payload: T & { id: any }, queryParams?: QueryParams): Observable<PlantillaResponse<T>> {\n const topic = queryParams?.topic;\n const headers = topic ? this.buildHeaders({ topic }) : undefined;\n\n return this.http.put<PlantillaResponse<T>>(\n `${this.basePathUrl}/${payload.id}`,\n payload,\n { headers }\n );\n}\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete(id: string, queryParams?: Record<string, any>): Observable<PlantillaResponse<T>> {\n const metaParams = this.meta.get('eliminar');\n const headers = this.buildHeaders({ ...metaParams, ...queryParams });\n return this.http.delete<PlantillaResponse<T>>(\n `${this.basePathUrl}/${id}`,\n { headers }\n );\n }\n\n getMockData(): T[] {\n return [];\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { StateContext, Selector, Action, createSelector } from '@ngxs/store';\nimport { PlantillaResponse } from 'juliaositembackenexpress/dist/utils/PlantillaResponse';\nimport { GenericCrudHttpService } from '../../../componentes/shared/services/generic-crud.service/generic-crud.service';\nimport { tap } from 'rxjs';\n\nexport interface GenericCrudActions<RQ> {\n All: new (payload: any, filters?: Map<string, string>) => any;\n Add: new (payload: RQ, queryParams: any) => any;\n Update: new (payload: RQ, queryParams: any) => any;\n Delete: new (queryParams: any) => any;\n LoadMock: new () => any;\n}\n\n@Injectable()\nexport abstract class GenericCrudState<RES, RQ> {\n protected constructor(\n protected readonly service: GenericCrudHttpService<RES>,\n protected readonly actions: GenericCrudActions<RQ>\n ) {}\n\n @Selector()\n static getResponse<RES>(state: PlantillaResponse<RES>): PlantillaResponse<RES> {\n return state;\n }\n\n /**\n * Selector factory para obtener un elemento por id desde el estado genérico.\n * Uso: store.selectSnapshot(YourState.selectById(id))\n */\n static selectById<RES>(id: string | number) {\n return createSelector([\n // Reutiliza el selector base que expone el response del estado\n (this as unknown as typeof GenericCrudState).getResponse as (state: PlantillaResponse<RES>) => PlantillaResponse<RES>\n ], (response: PlantillaResponse<RES>) => {\n const list = (response?.dataList as unknown as Array<{ id?: string | number }> | undefined) ?? [];\n return list.find((item) => String(item?.id ?? '') === String(id)) as unknown as RES | undefined;\n });\n }\n\n @Action(function (this: GenericCrudState<RES, RQ>) { return this.actions.All; } as any)\n All({ setState }: StateContext<PlantillaResponse<RES>>, action: any) {\n return this.service.all(action.payload).pipe(\n tap(res => setState(res))\n );\n }\n\n @Action(function (this: GenericCrudState<RES, RQ>) { return this.actions.Add; } as any)\nadd(ctx: StateContext<PlantillaResponse<RES>>, action: any) {\n return this.service.add(action.payload, action.queryParams);\n}\n\n@Action(function (this: GenericCrudState<RES, RQ>) { return this.actions.Update; } as any)\nupdate(ctx: StateContext<PlantillaResponse<RES>>, action: any) {\n return this.service.update(action.payload, action.queryParams);\n}\n\n@Action(function (this: GenericCrudState<RES, RQ>) { return this.actions.Delete; } as any)\ndelete(ctx: StateContext<PlantillaResponse<RES>>, action: any) {\n return this.service.delete(action.queryParams);\n}\n\n @Action(function (this: GenericCrudState<RES, RQ>) { return this.actions.LoadMock; } as any)\n loadMock(ctx: StateContext<PlantillaResponse<RES>>) {\n try {\n const mockData = (this.service as any).getMockData?.() ?? [];\n ctx.patchState({\n data: undefined,\n dataList: mockData,\n message: mockData.length ? 'Datos mock cargados correctamente' : 'No hay datos mock disponibles',\n rta: !!mockData.length,\n });\n } catch (error) {\n ctx.patchState({\n data: undefined,\n dataList: [],\n message: 'Error al cargar datos mock ' + error,\n rta: false,\n });\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { State, Selector, Action, StateContext } from '@ngxs/store';\nimport { ProductoDTO } from '@juliaosistem/core-dtos';\nimport { PlantillaResponse } from 'juliaositembackenexpress/dist/utils/PlantillaResponse';\nimport { createGenericCrudActions } from './state-generic/generic-crud.actions';\nimport { GenericCrudHttpService } from '../../componentes/shared/services/generic-crud.service/generic-crud.service';\nimport { HttpClient } from '@angular/common/http';\nimport { LibConfigService } from '../../config/lib-config.service';\nimport { MetaDataService } from '../../componentes/shared/services/meta-data.service.ts/meta-data.service';\nimport { tap } from 'rxjs';\nimport {\n GenericCrudActions,\n GenericCrudState,\n} from './state-generic/generic-crud.state';\nimport { ProductService } from '../../componentes/shared/services/product.service';\nimport { createSelector } from '@ngxs/store';\n\n// Crear acciones genéricas para ProductoDTO\nconst productosActions = createGenericCrudActions<ProductoDTO>('producto');\nexport const ProductosActions = productosActions;\n@State<PlantillaResponse<ProductoDTO>>({\n name: 'producto',\n defaults: {\n data: undefined,\n dataList: [],\n message: '',\n rta: false,\n },\n})\n@Injectable()\nexport class ProductosState extends GenericCrudState<ProductoDTO, ProductoDTO> {\n constructor(\n private http: HttpClient,\n private config: LibConfigService,\n private meta: MetaDataService,\n private productSvc: ProductService\n ) {\n \n const service = new GenericCrudHttpService<ProductoDTO>(\n http,\n config,\n meta,\n 'baseUrlProducts',\n );\n super(\n service,\n ProductosActions as unknown as GenericCrudActions<ProductoDTO>,\n );\n }\n\n // Selector para lista de productos\n @Selector()\n static getProductos(state: PlantillaResponse<ProductoDTO>) {\n return state.dataList;\n }\n\n /**\n * Selector factory para obtener productos por id de categoría.\n * @param idCategoria \n * @returns \n */\n static selectByCategoriaId(idCategoria: string) {\n return createSelector([\n (state: { producto: PlantillaResponse<ProductoDTO> }) => state.producto\n ], (response: PlantillaResponse<ProductoDTO>) => {\n const list = (response?.dataList as ProductoDTO[]) || [];\n return list.filter(p => String(p.idCategoria) === String(idCategoria));\n });\n }\n\n // Acción All\n @Action(ProductosActions.All)\n all(ctx: StateContext<PlantillaResponse<ProductoDTO>>, action: any) {\n return this.service\n .all(action.payload)\n .pipe(tap((res) => ctx.setState(res)));\n }\n@Action(ProductosActions.Add)\noverride add(ctx: StateContext<PlantillaResponse<ProductoDTO>>, action: any) {\n return this.service.add(action.payload, action.queryParams).pipe(\n tap((res) => {\n const state = ctx.getState();\n const newItem = res.data;\n if (newItem && state.dataList) {\n ctx.setState({\n ...state,\n dataList: [...state.dataList, newItem],\n data: newItem,\n message: res.message,\n rta: true,\n });\n }\n })\n );\n}\n\n@Action(ProductosActions.Update)\noverride update(ctx: StateContext<PlantillaResponse<ProductoDTO>>, action: any) {\n return this.service.update(action.payload, action.queryParams).pipe(\n tap((res) => {\n const state = ctx.getState();\n const updatedItem = res.data;\n if (updatedItem && state.dataList) {\n ctx.setState({\n ...state,\n dataList: state.dataList.map((item: any) =>\n item.id === updatedItem.id ? updatedItem : item\n ),\n data: updatedItem,\n message: res.message,\n rta: true,\n });\n }\n })\n );\n}\n\n@Action(ProductosActions.Delete)\noverride delete(ctx: StateContext<PlantillaResponse<ProductoDTO>>, action: any) {\n return this.service.delete(action.queryParams).pipe(\n tap((res) => {\n const state = ctx.getState();\n if (state.dataList) {\n ctx.setState({\n ...state,\n dataList: state.dataList.filter((item: any) => item.id !== action.id),\n message: res.message,\n rta: true,\n });\n }\n })\n );\n }\n @Action(ProductosActions.LoadMock)\noverride loadMock(ctx: StateContext<PlantillaResponse<ProductoDTO>>) {\n try {\n const mockData = this.productSvc.mockProductosInflablesDTO();\n ctx.patchState({\n data: undefined,\n dataList: mockData,\n message: mockData.length\n ? 'Datos mock cargados correctamente'\n : 'No hay datos mock disponibles',\n rta: !!mockData.length,\n });\n } catch (error) {\n ctx.patchState({\n data: undefined,\n dataList: [],\n message: 'Error al cargar datos mock ' + error,\n rta: false,\n });\n }\n }\n\n}\n","import { Component, OnInit, Input, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DetalleCarrito1Component } from '../../../../shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component';\nimport { MetaDataService } from '../../../../shared/services/meta-data.service.ts/meta-data.service';\nimport { ProductoDTO,CategoriaDTO } from '@juliaosistem/core-dtos';\nimport { ActivatedRoute } from '@angular/router';\nimport { ProductService } from '../../../../shared/services/product.service';\nimport { Store } from '@ngxs/store';\nimport { ProductosState } from '../../../../../assets/state/productos.state';\nimport { CardProductos1Component } from '../../../../shared/molecules/productos/card-productos1/card-productos1.component';\nimport { register } from 'swiper/element/bundle';\n\n@Component({\n selector: 'lib-product-detail-lib',\n standalone: true,\n imports: [CommonModule, DetalleCarrito1Component, CardProductos1Component],\n templateUrl: './product-detail-lib.html',\n styleUrls: ['./product-detail-lib.scss'],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class DetalleProductoPageLib implements OnInit {\n /**\n * Producto actual a mostrar en el detalle.\n * Puede llegar vía `@Input` o a través del `history.state`/ruta.\n */\n @Input() product: ProductoDTO | undefined;\n\n /**\n * Indica si el usuario está autenticado para habilitar acciones/visualizaciones para agregar al carrito.\n */\n @Input() isLogin = false;\n\n /**\n * Lista de categorías disponibles. Se usa para enriquecer los productos\n * relacionados con el nombre de la categoría cuando el store no lo provee.\n */\n @Input() categorias: CategoriaDTO[] = [];\n\n /**\n * Productos relacionados (misma categoría) que se mostrarán en el slider.\n */\n products : ProductoDTO[] = [];\n\n /**\n * Configuración de breakpoints para el slider de productos relacionados.\n * - 768px: 2 productos por vista\n * - 1024px: 3 productos por vista\n */\n readonly breakpoints = {\n 768: { slidesPerView: 2, spaceBetween: 16 },\n 1024: { slidesPerView: 3, spaceBetween: 16 },\n };\n\n /** Número base de productos por vista (móvil). */\n readonly slidesPerViewBase = 1;\n /** Espacio base entre slides (px). */\n readonly spaceBetweenBase = 12;\n\n constructor(\n private route: ActivatedRoute,\n private productSvc: ProductService,\n private meta: MetaDataService,\n private store: Store,\n ) {}\n\n /**\n * - Registra los web components de Swiper (una sola vez).\n * - Resuelve el producto a mostrar y carga los relacionados.\n */\n ngOnInit(): void {\n try { register(); } catch { /* ya registrado */ }\n this.getData();\n }\n\n /**\n * Obtiene el producto a mostrar:\n * 1. Prioriza `history.state` (navegación con estado).\n * 2. Si no está, intenta resolver por `id` en la URL:\n * - Busca en el store NGXS\n * - Si no existe, usa un mock de productos.\n * Finalmente, carga los productos relacionados.\n */\n getData(): void{\n if (!this.product) {\n const nav = history.state as { product?: ProductoDTO; isLogin?: boolean };\n if (nav?.product) {\n this.product = nav.product;\n this.isLogin = !!nav.isLogin;\n this.loadRelatedProducts();\n return;\n }\n }\n\n const id = this.getProductIdFromRoute();\n if (id) {\n const productoFromStore = this.getFromStoreById(id);\n if (productoFromStore) {\n this.product = productoFromStore;\n this.loadRelatedProducts();\n return;\n }\n\n const mock = this.productSvc.mockProductosInflablesDTO();\n this.product = mock.find(p => String(p.id) === String(id));\n this.loadRelatedProducts();\n }\n }\n\n /**\n * Resuelve el `id` del producto desde diferentes ubicaciones en la ruta:\n * - `paramMap`: `id` o `productId`\n * - `queryParamMap`: `id`\n * - Último segmento de la URL\n */\n private getProductIdFromRoute(): string | null {\n let id = this.route.snapshot.paramMap.get('id');\n if (id) return id;\n id = this.route.snapshot.paramMap.get('productId');\n if (id) return id;\n id = this.route.snapshot.queryParamMap.get('id');\n if (id) return id;\n const urlSegs = this.route.snapshot.url;\n if (urlSegs && urlSegs.length > 0) {\n return urlSegs[urlSegs.length - 1].path || null;\n }\n return null;\n }\n\n /**\n * Busca un producto por `id` en el store NGXS.\n * @param id Identificador del producto\n * @returns Producto si existe, `undefined` en caso contrario\n */\n private getFromStoreById(id: string): ProductoDTO | undefined {\n try {\n return this.store.selectSnapshot(ProductosState.selectById<ProductoDTO>(id));\n } catch {\n return undefined;\n }\n }\n\n /**\n * Construye la lista de productos relacionados por categoría.\n * - Obtiene todos los productos desde el store o mock si está vacío.\n * - Filtra por `idCategoria` y excluye el producto actual.\n * - Enriquece los productos con `nombreCategoria` si es necesario.\n */\n private loadRelatedProducts(): void {\n if (!this.product?.idCategoria) {\n this.products = [];\n return;\n }\n let allProducts = this.store.selectSnapshot(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (state: any) => (state?.producto?.dataList as ProductoDTO[]) || []\n );\n if (!allProducts || allProducts.length === 0) {\n allProducts = this.productSvc.mockProductosInflablesDTO();\n }\n const idCat = String(this.product.idCategoria);\n this.products = allProducts\n .filter(p => String(p.idCategoria) === idCat)\n .filter(p => String(p.id) !== String(this.product?.id));\n\n const cats = this.getCategoriasFromStoreOrInputOrMock();\n if (cats && cats.length) {\n this.products = this.productSvc.addNameCategoriaToProducts(this.products, cats);\n }\n }\n\n /**\n * Obtiene categorías desde distintas fuentes (prioridad):\n * 1. `@Input categorias`\n * 2. Store NGXS (`categoriaproducto.dataList`)\n * 3. Mock proporcionado por `ProductService`\n */\n private getCategoriasFromStoreOrInputOrMock(): CategoriaDTO[] {\n if (this.categorias && this.categorias.length) return this.categorias;\n try {\n const fromStore = this.store.selectSnapshot(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (state: any) => (state?.categoriaproducto?.dataList as CategoriaDTO[]) || []\n );\n if (fromStore && fromStore.length) return fromStore;\n } catch {\n // ignorar y usar mock\n }\n return this.productSvc.mockCategoriaInflablesDTO();\n }\n}\n","<div class=\"py-4 background-page mx-auto px-3\">\n <lib-detalle-carrito-1 [product]=\"product!\" [isLogin]=\"isLogin\"></lib-detalle-carrito-1>\n\n @if (products && products.length > 0) {\n <section class=\"mt-4 related-products\">\n <h3 class=\"text-white font-semibold mb-2\">Productos que te pueden gustar</h3>\n <swiper-container direction=\"horizontal\" navigation=\"true\" pagination=\"true\" pagination-clickable=\"true\" loop=\"true\" autoplay=\"true\"\n autoplay-delay=\"6000\" autoplay-disable-on-interaction=\"false\" speed=\"600\"\n [slidesPerView]=\"slidesPerViewBase\" [spaceBetween]=\"spaceBetweenBase\"\n [breakpoints]=\"breakpoints\"\n style=\"--swiper-navigation-color:#FFD600; --swiper-theme-color:#FFD600; --swiper-pagination-color:#FFD600; --swiper-pagination-bullet-inactive-color:#FFFFFF; --swiper-pagination-bullet-inactive-opacity:0.6; --swiper-pagination-bullet-size:8px; --swiper-pagination-bullet-horizontal-gap:6px;\">\n @for (p of products; track p.id) {\n <swiper-slide>\n <lib-card-productos1 [product]=\"p\" [isLogin]=\"isLogin\"></lib-card-productos1>\n </swiper-slide>\n }\n </swiper-container>\n </section>\n }\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { LibCommonConfig, LIB_COMMON_CONFIG, LibConfigService } from './lib-config.service';\n\n@NgModule({})\nexport class LibConfigModule {\n static forRoot(config: LibCommonConfig): ModuleWithProviders<LibConfigModule> {\n return {\n ngModule: LibConfigModule,\n providers: [\n {\n provide: LIB_COMMON_CONFIG,\n useValue: config\n },\n LibConfigService\n ]\n };\n }\n}\n","import { CategoriaDTO, TipoCategoriaDTO } from '@juliaosistem/core-dtos';\nimport { Injectable } from '@angular/core';\nimport { LibConfigService } from '../../../config/lib-config.service';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ImagenDTO } from '@juliaosistem/core-dtos';\nimport { JuliaoSystemCrudHttpService } from '../../../config/JuliaoSystemCrudHttpService';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CategoriasProductosService extends JuliaoSystemCrudHttpService<CategoriaDTO,CategoriaDTO>{\n \n \n \n tipoCategorias: TipoCategoriaDTO[] = [{\n id: 1,\n nombreTipoCategoria: 'Castillos'\n },\n {\n id: 2,\n nombreTipoCategoria: 'Toboganes'\n },\n {\n id: 3,\n nombreTipoCategoria: 'Publicitarios'\n },\n];\n\nimagenCategoria1: ImagenDTO = {\n id: '1',\n url: 'https://placehold.co/600x600/F5C7A5/000?text=Castillos+Inflables',\n alt: 'Castillos inflables',\n idComponente: 20,\n};\n\nimagenCategoria2: ImagenDTO = {\n id: '1',\n url: 'https://placehold.co/600x600/FFFF33/000?text=Mini+Toboganes',\n alt: 'Mini Tobogánes inflables',\n idComponente: 20,\n};\n\ncategoriaDTO1 : CategoriaDTO = {\n id: '1',\n nombreCategoria: 'Castillos',\n tipoCategoria: this.tipoCategorias[0],\n imagen: this.imagenCategoria1\n};\n\ncategoriaDTO2 : CategoriaDTO = {\n id: '2',\n nombreCategoria: 'Toboganes',\n tipoCategoria: this.tipoCategorias[1],\n imagen: this.imagenCategoria2\n};\n\n\ncategoriasMock: CategoriaDTO[] = [this.categoriaDTO1,this.categoriaDTO2];\n\n constructor(http: HttpClient, private configService: LibConfigService) {\n super(http);\n const baseUrl = this.configService.get<string>('baseUrlProducts') || 'http://localhost:8080';\n this.basePathUrl = `${baseUrl}/categoria-producto`;\n }\n\ngetCategoriasMock(): Observable<CategoriaDTO[]> {\n return new Observable<CategoriaDTO[]>(observer => {\n observer.next(this.categoriasMock);\n observer.complete();\n });\n}\n\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { State, Selector, Action, StateContext } from '@ngxs/store';\nimport { ProductoDTO } from '@juliaosistem/core-dtos';\nimport { PlantillaResponse } from 'juliaositembackenexpress/dist/utils/PlantillaResponse';\nimport { createGenericCrudActions } from './state-generic/generic-crud.actions';\nimport { GenericCrudHttpService } from '../../componentes/shared/services/generic-crud.service/generic-crud.service';\nimport { HttpClient } from '@angular/common/http';\nimport { LibConfigService } from '../../config/lib-config.service';\nimport { MetaDataService } from '../../componentes/shared/services/meta-data.service.ts/meta-data.service';\nimport { tap } from 'rxjs';\nimport { GenericCrudActions, GenericCrudState } from './state-generic/generic-crud.state';\nimport { MonedaDTO } from '@juliaosistem/core-dtos';\n\n// Crear acciones genéricas para ProductoDTO\nconst monedaActions = createGenericCrudActions<ProductoDTO>('moneda');\nexport const MonedaActions = monedaActions;\n\n@State<PlantillaResponse<MonedaDTO>>({\n name: 'moneda',\n defaults: {\n data: undefined,\n dataList: [],\n message: '',\n rta: false,\n },\n})\n@Injectable()\nexport class MonedaState extends GenericCrudState<MonedaDTO, MonedaDTO> {\n constructor(\n private http: HttpClient,\n private config: LibConfigService,\n private meta: MetaDataService\n ) {\n const service = new GenericCrudHttpService<MonedaDTO>(\n http,\n config,\n meta,\n 'baseUrlCurrency'\n );\n super(service, MonedaActions as unknown as GenericCrudActions<MonedaDTO>);\n }\n\n @Selector()\n static getProductos(state: PlantillaResponse<MonedaDTO>) {\n return state.dataList;\n }\n\n @Action(MonedaActions.All)\n all(ctx: StateContext<PlantillaResponse<MonedaDTO>>, action: any) {\n return this.service.all(action.payload).pipe(\n tap(res => ctx.setState(res))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { State, Action, StateContext } from '@ngxs/store';\nimport { BusinessDTO } from '@juliaosistem/core-dtos';\nimport { PlantillaResponse } from 'juliaositembackenexpress/dist/utils/PlantillaResponse';\nimport { createGenericCrudActions } from './state-generic/generic-crud.actions';\nimport { GenericCrudState } from './state-generic/generic-crud.state';\nimport { GenericCrudHttpService } from '../../componentes/shared/services/generic-crud.service/generic-crud.service';\nimport { HttpClient } from '@angular/common/http';\nimport { LibConfigService } from '../../config/lib-config.service';\nimport { MetaDataService } from '../../componentes/shared/services/meta-data.service.ts/meta-data.service';\n\n// 🔹 Crear acciones genéricas para Business\nconst businessActions = createGenericCrudActions<BusinessDTO>('Business');\n\n@State<PlantillaResponse<BusinessDTO>>({\n name: 'business',\n defaults: {\n data: undefined,\n dataList: [],\n message: '',\n rta: false,\n },\n})\n@Injectable()\nexport class BusinessState extends GenericCrudState<BusinessDTO, BusinessDTO> {\n constructor(\n http: HttpClient,\n config: LibConfigService,\n meta: MetaDataService\n ) {\n const genericService = new GenericCrudHttpService<BusinessDTO>(\n http,\n config,\n meta,\n 'baseUrlBusiness' // Key del endpoint en LibConfigService\n );\n super(genericService, businessActions);\n }\n\n // 🔹 Acción opcional para cargar datos mock específicos\n @Action(businessActions.LoadMock)\n loadMockBusiness(ctx: StateContext<PlantillaResponse<BusinessDTO>>) {\n try {\n const service = this.service as GenericCrudHttpService<BusinessDTO>;\n const mockData = service.getMockData?.() || [];\n ctx.patchState({\n data: undefined,\n dataList: mockData,\n message: mockData.length\n ? 'Business mock cargados correctamente'\n : 'No hay datos mock disponibles',\n rta: mockData.length > 0,\n });\n } catch (error) {\n ctx.patchState({\n data: undefined,\n dataList: [],\n message: 'Error al cargar datos mock',\n rta: false,\n });\n }\n }\n}\n\n// Exportar acciones para usar en componentes\nexport const BusinessActions = businessActions;\n","import { DatesUserDTO } from '@juliaosistem/core-dtos';\nimport { createGenericCrudActions } from './state-generic/generic-crud.actions';\n\n// Crear todas las acciones CRUD para usuarios\nconst userActions = createGenericCrudActions< DatesUserDTO>('usuarios');\n\nexport const getUsers = userActions.All;\nexport const AddUser = userActions.Add;\nexport const UpdateUser = userActions.Update;\nexport const DeleteUser = userActions.Delete;\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { State, Selector, Action, StateContext } from '@ngxs/store';\nimport { CategoriaDTO } from '@juliaosistem/core-dtos';\nimport { PlantillaResponse } from 'juliaositembackenexpress/dist/utils/PlantillaResponse';\nimport { createGenericCrudActions } from './state-generic/generic-crud.actions';\nimport { GenericCrudHttpService } from '../../componentes/shared/services/generic-crud.service/generic-crud.service';\nimport { HttpClient } from '@angular/common/http';\nimport { LibConfigService } from '../../config/lib-config.service';\nimport { MetaDataService } from '../../componentes/shared/services/meta-data.service.ts/meta-data.service';\nimport { tap } from 'rxjs';\nimport { GenericCrudActions, GenericCrudState } from './state-generic/generic-crud.state';\nimport { ProductService } from '../../componentes/shared/services/product.service';\n\n\n// Crear acciones genéricas para ProductoDTO\nconst categoriaproductoActions = createGenericCrudActions<CategoriaDTO>('categoriaproducto');\nexport const CategoriaproductoActions = categoriaproductoActions;\n\n@State<PlantillaResponse<CategoriaDTO>>({\n name: 'categoriaproducto',\n defaults: {\n data: undefined,\n dataList: [],\n message: '',\n rta: false,\n },\n})\n@Injectable()\nexport class CategoriaProductoState extends GenericCrudState<CategoriaDTO, CategoriaDTO> {\n constructor(\n private http: HttpClient,\n private config: LibConfigService,\n private meta: MetaDataService,\n private productSvc: ProductService,\n ) {\n const service = new GenericCrudHttpService<CategoriaDTO>(\n http,\n config,\n meta,\n 'baseUrlCategoryProduct'\n );\n super(service, CategoriaproductoActions as unknown as GenericCrudActions<CategoriaDTO>);\n }\n\n @Selector()\n static getProductos(state: PlantillaResponse<CategoriaDTO>) {\n return state.dataList;\n }\n\n @Action(CategoriaproductoActions.All)\n all(ctx: StateContext<PlantillaResponse<CategoriaDTO>>, action: any) {\n return this.service.all(action.payload).pipe(\n tap(res => ctx.setState(res))\n );\n }\n @Action(CategoriaproductoActions.LoadMock)\n override loadMock(ctx: StateContext<PlantillaResponse<CategoriaDTO>>) {\n try {\n const mockData = this.productSvc.mockCategoriaInflablesDTO();\n ctx.patchState({\n data: undefined,\n dataList: mockData,\n message: mockData.length ? 'Datos mock cargados correctamente' : 'No hay datos mock disponibles',\n rta: !!mockData.length,\n });\n } catch (error) {\n ctx.patchState({\n data: undefined,\n dataList: [],\n message: 'Error al cargar datos mock ' + error,\n rta: false,\n });\n }\n }\n}","import { Routes } from '@angular/router';\nimport { LoginEcommerce1 } from '../../landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1';\nimport { RegisterEcommerce1 } from '../../landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1';\nimport { Ecommerce1 } from '../../landingPages/pages/ecommerce1/ecommerce1';\nimport { HomeEcommerce1 } from '../../landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1';\n//import { CardProductos1Component } from '../molecules/productos/card-productos1/card-productos1.component';\n\nexport const ecomerce1Routes: Routes = [\n { path: '', component: Ecommerce1, children: [\n { path: '', component: HomeEcommerce1 },\n { path: 'login', component: LoginEcommerce1 },\n { path: 'register', component: RegisterEcommerce1 },\n // Ruta de personalización/el detalle interno se elimina para evitar colisiones con las rutas del front.\n\n ]\n }\n] as Routes;","/*\n * Public API Surface of common-lib\n */\n\n\nexport * from './lib/common-lib.service';\nexport * from './lib/common-lib.component';\n\n\n// Estados y acciones\n/* export * from './lib/assets/state/tabla1.state';\nexport * from './lib/assets/state/tabla1.actions'; */\n\n// componentes \n\n\n\nexport * from './lib/componentes/shared/pages/crud/crud.component';\nexport * from './lib/componentes/shared/pages/crud/doc/crud-doc.component';\n\nexport * from './lib/componentes/shared/atoms/select-input1/select-input1.component'\nexport * from './lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component'\nexport * from './lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component'\nexport * from './lib/componentes/shared/atoms/button-add1/button-add1.component'\nexport * from './lib/componentes/daskboards/daskboard2/index2/index2.component';\nexport * from './lib/componentes/shared/molecules/tabla1/tabla1.component';\nexport * from './lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component';\nexport * from './lib/componentes/shared/interfaces/dynamic-field.interface';\nexport * from './lib/componentes/shared/services/dynamic-field.service';\nexport * from './lib/componentes/shared/molecules/product-dialog1/product-dialog1.component';\nexport * from './lib/componentes/shared/pages/notfound/notfound';\nexport * from './lib/componentes/shared/molecules/inflatable-customizer/customizer.component';\n// Menú dinámico\nexport * from './lib/componentes/shared/interfaces/menu.interface';\nexport * from './lib/componentes/shared/atoms/menu-item1/menu-item1.component';\nexport * from './lib/componentes/daskboards/daskboard3/atoms/dynamic-menu1/dynamic-menu1.component';\nexport * from './lib/componentes/shared/services/dynamic-menu.service';\nexport * from './lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component';\n\n// Dashboard3 y sus componentes\nexport * from './lib/componentes/daskboards/daskboard3/moleculas/app.topbar';\nexport * from './lib/componentes/daskboards/daskboard3/moleculas/app.footer';\nexport * from './lib/componentes/daskboards/daskboard3/dashboard3-menu.config';\nexport * from './lib/componentes/daskboards/daskboard3/daskboard3';\nexport * from './lib/componentes/daskboards/daskboard3/moleculas/menu/menu.component';\n\n//dashboard1 y sus componentes\nexport * from './lib/componentes/daskboards/daskboard1/componentes/pages/index1/index1.component';\n\n// shared\nexport * from './lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component';\nexport * from './lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component';\nexport * from './lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos';\nexport * from './lib/componentes/shared/terminal/terminal';\n\n// shared atomos\nexport * from './lib/componentes/shared/atoms/loading-zigma/loading-zigma';\nexport * from './lib/componentes/shared/atoms/button-action-delete1/button-action-delete1.component';\nexport * from './lib/componentes/shared/atoms/button-action-edit1/button-action-edit1.component';\nexport * from './lib/componentes/shared/atoms/button-add1/button-add1.component';\nexport * from './lib/componentes/shared/atoms/select-input1/select-input1.component';\nexport * from './lib/componentes/shared/atoms/paginator-pg/paginator-pg.component';\nexport * from './lib/componentes/shared/atoms/sh-wats-button-card/sh-wats-button-card';\nexport * from './lib/componentes/shared/atoms/button-add-to-card1/button-add-to-card1';\n// shared pages\nexport * from './lib/componentes/shared/pages/notfound/notfound';\n\n// shared molecules\nexport * from './lib/componentes/shared/molecules/crud-dialog1/crud-dialog1.component';\nexport * from './lib/componentes/shared/molecules/tabla1/tabla1.component';\nexport * from './lib/componentes/shared/molecules/product-dialog1/product-dialog1.component';\nexport * from './lib/componentes/shared/molecules/inflatable-customizer/customizer.component';\nexport * from './lib/componentes/shared/molecules/section-filters-categories-productos/section-filters-categories-productos';\nexport * from './lib/componentes/shared/molecules/productos/detalle-carrito-1/detalle-carrito-1.component';\nexport * from './lib/componentes/shared/molecules/productos/card-productos1/card-productos1.component';\nexport * from './lib/componentes/shared/molecules/section-add-cards-buttons/section-add-cards-buttons';\n\n// Landing Pages\nexport * from './lib/componentes/landingPages/pages/ecommerce1/ecommerce1';\n // Ecommerce 1\n // Pages\nexport * from './lib/componentes/landingPages/pages/ecommerce1/home-ecommerce1/home-ecommerce1';\nexport * from './lib/componentes/landingPages/pages/ecommerce1/login-ecommerce1/login-ecommerce1';\nexport * from './lib/componentes/landingPages/pages/ecommerce1/register-ecommerce1/register-ecommerce1';\nexport * from './lib/componentes/landingPages/pages/ecommerce1/product-detail-lib/product-detail-lib';\n // Atoms\nexport * from './lib/componentes/landingPages/atoms/ecommerce1/buttons-socialmedia-login/buttons-socialmedia-login';\nexport * from './lib/componentes/landingPages/atoms/ecommerce1/inputs-login-ecommerce1/inputs-login-ecommerce1';\nexport * from './lib/componentes/landingPages/atoms/ecommerce1/inputs-register-ecommerce1/inputs-register-ecommerce1';\nexport * from './lib/componentes/landingPages/atoms/ecommerce1/header-top-ecommerce1/header-top-ecommerce1';\n // Molecules\nexport * from './lib/componentes/landingPages/molecules/ecommerce1/footer-ecommerce1/footer-ecommerce1';\nexport * from './lib/componentes/landingPages/molecules/ecommerce1/bar-float-ecommerce1/bar-float-ecommerce1';\nexport * from './lib/componentes/landingPages/molecules/ecommerce1/form-auth-eccomerce1/form-auth-eccomerce1';\nexport * from './lib/componentes/landingPages/molecules/ecommerce1/header-ecommerce1/header-ecommerce1';\nexport * from './lib/componentes/landingPages/molecules/ecommerce1/hero-section-ecommerce1/hero-section-ecommerce1';\nexport * from './lib/componentes/landingPages/molecules/ecommerce1/section-images-instagram-ecommerce1/section-images-instagram-ecommerce1';\n\n// Configuration\nexport * from './lib/config/lib-config.service';\n\n//modulos\nexport * from './lib/modulos/primeg.module';\nexport * from './lib/config/lib-config.module';\nexport * from './lib/modulos/core.lib.module';\n\n//servicios\nexport * from './lib/componentes/shared/services/product.service';\nexport * from './lib/componentes/shared/services/categorias-productos.service';\nexport * from './lib/componentes/shared/services/meta-data.service.ts/meta-data.service';\n\n\n// Estados y acciones\nexport * from './lib/assets/state/state-generic/generic-crud.state';\nexport * from './lib/assets/state/productos.state';\nexport * from './lib/assets/state/currency.state';\nexport * from './lib/assets/state/business.state';\nexport * from './lib/assets/state/usuarios.actions';\nexport * from './lib/assets/state/categorias-productos.state'\n\n//routes\nexport * from './lib/componentes/shared/routes/ecomerce1.routes';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DynamicFieldService","i2","i3","i1","i4","i2.DynamicFieldService","i3.ExcelExportService","i5","i6","i1.DynamicMenuService","i1.LayoutService","i1.ComponentServicesService","i2.LibConfigService","i1.ProductService","i2.ProductService","i7","i3.MetaDataService","i4.ProductService"],"mappings":"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"}