lib-common-angular 0.0.1

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.
@@ -0,0 +1 @@
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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"}