tickera-angular-components 0.0.1-dev.4 → 0.0.1-dev.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tickera-angular-components.mjs","sources":["../../../projects/tickera-angular-components/src/lib/config/tickera-components.config.ts","../../../projects/tickera-angular-components/src/lib/constants/alerts.ts","../../../projects/tickera-angular-components/src/lib/constants/buttons.ts","../../../projects/tickera-angular-components/src/lib/constants/form-error-messages.ts","../../../projects/tickera-angular-components/src/lib/constants/form-fields.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/admin-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/cities-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/countries-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/states-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/performances-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/products-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/shows-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/customers-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/price-zones-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/venues-api.routes.ts","../../../projects/tickera-angular-components/src/lib/enums/file-type.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/coupons/coupon-applicability.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/coupons/coupon-discount-type.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/corporate-bonds/corporate-bond-status.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/performances/performance-status.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/performances/performance-ticket-status.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/room-maps/room-map-element-orientation.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/room-maps/room-map-element-type.enum.ts","../../../projects/tickera-angular-components/src/lib/types/orders/order-item-type.enum.ts","../../../projects/tickera-angular-components/src/lib/types/orders/order-status.enum.ts","../../../projects/tickera-angular-components/src/lib/helpers/get-formatted-customer.helper.ts","../../../projects/tickera-angular-components/src/lib/helpers/parse-json-to-form-data.ts","../../../projects/tickera-angular-components/src/lib/helpers/transform-image-to-file.helper.ts","../../../projects/tickera-angular-components/src/lib/helpers/format-cities-response-to-select.helper.ts","../../../projects/tickera-angular-components/src/lib/validators/date-validators.validator.ts","../../../projects/tickera-angular-components/src/lib/validators/must-match.validator.ts","../../../projects/tickera-angular-components/src/lib/services/api.service.ts","../../../projects/tickera-angular-components/src/lib/services/toast.service.ts","../../../projects/tickera-angular-components/src/lib/services/loading-modal.service.ts","../../../projects/tickera-angular-components/src/lib/services/delete-confirmation.service.ts","../../../projects/tickera-angular-components/src/lib/services/change-password-form.service.ts","../../../projects/tickera-angular-components/src/lib/services/date.service.ts","../../../projects/tickera-angular-components/src/lib/services/admin.service.ts","../../../projects/tickera-angular-components/src/lib/services/cities.service.ts","../../../projects/tickera-angular-components/src/lib/services/country.service.ts","../../../projects/tickera-angular-components/src/lib/services/states.service.ts","../../../projects/tickera-angular-components/src/lib/services/performance.service.ts","../../../projects/tickera-angular-components/src/lib/services/performances-list-events.service.ts","../../../projects/tickera-angular-components/src/lib/services/product.service.ts","../../../projects/tickera-angular-components/src/lib/services/show.service.ts","../../../projects/tickera-angular-components/src/lib/services/customer.service.ts","../../../projects/tickera-angular-components/src/lib/services/price-zone.service.ts","../../../projects/tickera-angular-components/src/lib/services/price-zone-event.service.ts","../../../projects/tickera-angular-components/src/lib/services/price-zone-form-modal.service.ts","../../../projects/tickera-angular-components/src/lib/interceptors/auth.interceptor.ts","../../../projects/tickera-angular-components/src/lib/components/buttons/button/button.component.ts","../../../projects/tickera-angular-components/src/lib/components/buttons/button/button.component.html","../../../projects/tickera-angular-components/src/lib/components/buttons/link-button/link-button.component.ts","../../../projects/tickera-angular-components/src/lib/components/buttons/link-button/link-button.component.html","../../../projects/tickera-angular-components/src/lib/components/feedback/alert/alert.component.ts","../../../projects/tickera-angular-components/src/lib/components/feedback/alert/alert.component.html","../../../projects/tickera-angular-components/src/lib/components/modals/modal/modal.component.ts","../../../projects/tickera-angular-components/src/lib/components/modals/modal/modal.component.html","../../../projects/tickera-angular-components/src/lib/components/feedback/loading-modal/loading-modal.component.ts","../../../projects/tickera-angular-components/src/lib/components/feedback/loading-modal/loading-modal.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-input/form-input.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-input/form-input.component.html","../../../projects/tickera-angular-components/src/lib/components/feedback/delete-confirmation/delete-confirmation.component.ts","../../../projects/tickera-angular-components/src/lib/components/feedback/delete-confirmation/delete-confirmation.component.html","../../../projects/tickera-angular-components/src/lib/components/data-display/audit-information/audit-information.component.ts","../../../projects/tickera-angular-components/src/lib/components/data-display/audit-information/audit-information.component.html","../../../projects/tickera-angular-components/src/lib/components/data-display/dynamic-table/dynamic-table.component.ts","../../../projects/tickera-angular-components/src/lib/components/data-display/dynamic-table/dynamic-table.component.html","../../../projects/tickera-angular-components/src/lib/components/navigation/language-switcher/language-switcher.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-select/form-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-select/form-select.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-textarea/form-textarea.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-textarea/form-textarea.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-editor/form-editor.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-editor/form-editor.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/color-picker/color-picker.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/color-picker/color-picker.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/date-input/date-input.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/date-input/date-input.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/toggle-switch/toggle-switch.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/toggle-switch/toggle-switch.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload-preview/file-upload-preview.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload-preview/file-upload-preview.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload/file-upload.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload/file-upload.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/async-select/async-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/async-select/async-select.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/change-password-form/change-password-form.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/change-password-form/change-password-form.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/admin-select/admin-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/admin-select/admin-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/city-select/city-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/city-select/city-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/country-select/country-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/country-select/country-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/state-select/state-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/state-select/state-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/customer-select/customer-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/customer-select/customer-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-select/performance-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-select/performance-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-multi-select/performance-multi-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-multi-select/performance-multi-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-select/product-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-select/product-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-multi-select/product-multi-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-multi-select/product-multi-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-select/show-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-select/show-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-multi-select/show-multi-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-multi-select/show-multi-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/price-zone-select/price-zone-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/price-zone-select/price-zone-select.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/day-selector-grid/day-selector-grid.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/day-selector-grid/day-selector-grid.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card/performance-card.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card/performance-card.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card-list/performance-card-list.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card-list/performance-card-list.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-stepper/performance-stepper.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-stepper/performance-stepper.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/shows-filter/shows-filter.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/shows-filter/shows-filter.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-item/zone-price-item.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-item/zone-price-item.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-list/zone-price-list.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-list/zone-price-list.component.html","../../../projects/tickera-angular-components/src/public-api.ts","../../../projects/tickera-angular-components/src/tickera-angular-components.ts"],"sourcesContent":["import { InjectionToken, EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\n\nexport interface TickeraComponentsConfig {\n apiUrl: string;\n accessTokenKey?: string;\n}\n\nexport const TICKERA_COMPONENTS_CONFIG = new InjectionToken<TickeraComponentsConfig>(\n 'TICKERA_COMPONENTS_CONFIG',\n);\n\nexport function provideTickeraComponents(config: TickeraComponentsConfig): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: TICKERA_COMPONENTS_CONFIG, useValue: config }]);\n}\n","export const ALERT_BASE_CLASSES = 'border rounded relative flex items-center gap-2 px-4 py-2';\n\nexport const ALERT_COLOR_CLASSES = {\n success: 'bg-green-100 border-green-400 text-green-700',\n error: 'bg-red-100 border-red-400 text-red-700',\n warning: 'bg-yellow-100 border-yellow-400 text-yellow-700',\n info: 'bg-blue-100 border-blue-400 text-blue-700',\n};\n\nexport const ALERT_SIZE_CLASSES = {\n xs: 'px-2 py-1 text-xs',\n sm: 'px-4 py-2 text-sm',\n md: 'px-6 py-3 text-base',\n lg: 'px-8 py-4 text-lg',\n};\n\nexport const ALERT_ICONS = {\n success: 'ri-check-line',\n error: 'ri-error-warning-line',\n warning: 'ri-alert-line',\n info: 'ri-info-line',\n};\n","export const BUTTON_VARIANT_CLASSES = {\n primary: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',\n secondary: 'bg-purple-600 hover:bg-purple-700 focus:ring-purple-500 text-white',\n terciary: 'bg-gray-500 hover:bg-gray-600 focus:ring-gray-500 text-white',\n success: 'bg-green-600 hover:bg-green-700 focus:ring-green-500 text-green-900',\n transparent: 'bg-transparent hover:bg-gray-100 focus:ring-gray-500 text-gray-700 ',\n};\n\nexport const BASE_BUTTON_CLASSES = [\n 'w-full',\n 'cursor-pointer',\n 'flex',\n 'justify-center',\n 'gap-2',\n 'border',\n 'border-transparent',\n 'rounded-md',\n 'font-medium',\n 'focus:outline-none',\n 'focus:ring-2',\n 'focus:ring-offset-2',\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n].join(' ');\n\nexport const BUTTON_SIZES_CLASSES = {\n xs: 'text-xs py-1 px-2',\n sm: 'text-sm py-2 px-4',\n md: 'text-base py-3 px-6',\n lg: 'text-lg py-4 px-8',\n};\n","export const FORM_ERROR_MESSAGES: Record<string, string> = {\n required: 'Este campo es requerido',\n minlength: 'Debe tener al menos caracteres',\n maxlength: 'Debe tener al menos caracteres',\n pattern: 'El formato no es válido',\n email: 'El formato no es válido',\n mustMatch: 'Las contraseñas no coinciden',\n matDatepickerMin: 'La fecha no puede ser anterior a la fecha mínima permitida',\n matDatepickerMax: 'La fecha no puede ser posterior a la fecha máxima permitida',\n};\n","export const BASE_INPUT_CLASSES = [\n 'block',\n 'w-full',\n 'rounded-md',\n 'px-3',\n 'py-1.5',\n 'text-base',\n 'text-gray-900',\n 'outline-1',\n '-outline-offset-1',\n 'outline-gray-300',\n 'placeholder:text-gray-400',\n 'focus:outline-2',\n 'focus:-outline-offset-2',\n 'focus:outline-indigo-600',\n 'sm:text-sm/6',\n].join(' ');\n\nexport const ERROR_INPUT_CLASSES = BASE_INPUT_CLASSES + ' outline-red-500 dark:outline-red-500';\n","export const ADMIN_API_ROUTES = {\n FIND_ALL: '/admins',\n CREATE: '/admins/auth/register',\n updateOne: (id: number) => `/admins/${id}`,\n deleteOne: (id: number) => `/admins/${id}`,\n};\n","export const CITY_API_ENDPOINTS = {\n findAll: '/cities',\n create: '/cities',\n findById: (id: number) => `/cities/${id}`,\n update: (id: number) => `/cities/${id}`,\n delete: (id: number) => `/cities/${id}`,\n};\n","export const COUNTRY_API_ENDPOINTS = {\n findAll: '/countries',\n create: '/countries',\n findById: (id: number) => `/countries/${id}`,\n update: (id: number) => `/countries/${id}`,\n delete: (id: number) => `/countries/${id}`,\n};\n","export const STATE_API_ENDPOINTS = {\n findAll: '/states',\n create: '/states',\n findById: (id: number) => `/states/${id}`,\n update: (id: number) => `/states/${id}`,\n delete: (id: number) => `/states/${id}`,\n};\n","export const PERFORMANCES_API_ROUTES = {\n findAll: '/performances',\n create: '/performances',\n createBulk: '/performances/bulk',\n findOneById: (id: number) => `/performances/${id}`,\n findOneBookingData: (id: number) => `/performances/${id}/booking-data`,\n update: (id: number) => `/performances/${id}`,\n delete: (id: number) => `/performances/${id}`,\n deleteMany: '/performances/bulk',\n cancel: (id: number) => `/performances/${id}/cancel`,\n publishInventory: (id: number) => `/performances/${id}/publish-inventory`,\n reserve: (id: number) => `/performances/${id}/reserve`,\n ticketQrToken: (uuid: string) => `/performances/tickets/${uuid}/qr-token`,\n getAvailableDays: '/performances/available-days',\n publicAvailablePerformances: '/public/performances/daily',\n};\n","export const PRODUCTS_API_ROUTES = {\n FIND_ALL: '/products',\n CREATE: '/products',\n findOneById: (id: number) => `/products/${id}`,\n update: (id: number) => `/products/${id}`,\n delete: (id: number) => `/products/${id}`,\n};\n","export const SHOWS_API_ROUTES = {\n findAll: '/shows',\n create: '/shows',\n findOneById: (id: number) => `/shows/${id}`,\n update: (id: number) => `/shows/${id}`,\n delete: (id: number) => `/shows/${id}`,\n getImages: (id: number) => `/shows/${id}/images`,\n uploadGallery: (id: number) => `/shows/${id}/images`,\n deleteOneImage: (showId: number, imageId: number) => `/shows/${showId}/images/${imageId}`,\n publicAvailablePerformances: '/public/shows/available',\n};\n","export const CUSTOMERS_API_ROUTES = {\n findAll: '/customers',\n create: '/customers/auth/register',\n findOne: (id: number) => `/customers/${id}`,\n update: (id: number) => `/customers/${id}`,\n delete: (id: number) => `/customers/${id}`,\n};\n","export const PRICE_ZONES_API_ROUTES = {\n FIND_ALL: '/price-zones',\n CREATE: '/price-zones',\n findOneById: (id: number) => `/price-zones/${id}`,\n update: (id: number) => `/price-zones/${id}`,\n delete: (id: number) => `/price-zones/${id}`,\n updateElements: (id: number) => `/price-zones/${id}/elements`,\n duplicate: (id: number) => `/price-zones/${id}/duplicate`,\n};\n","export const VENUES_API_ROUTES = {\n findAll: '/venues',\n create: '/venues',\n findOneById: (id: number) => '/venues/' + id,\n update: (id: number) => '/venues/' + id,\n delete: (id: number) => '/venues/' + id,\n getGallery: (id: number) => '/venues/' + id + '/images',\n uploadGallery: (id: number) => '/venues/' + id + '/images',\n deleteOneImage: (venueId: number, imageId: number) => '/venues/' + venueId + '/images/' + imageId,\n};\n","export enum FileType {\n IMAGE = 'image',\n PDF = 'pdf',\n EXCEL = 'excel',\n WORD = 'word',\n TEXT = 'text',\n DEFAULT = 'default',\n}\n","export enum CouponApplicability {\n GENERAL = 'GENERAL',\n CUSTOMER_EMAIL = 'CUSTOMER_EMAIL',\n MEMBERSHIP_TYPE = 'MEMBERSHIP_TYPE',\n SHOWS = 'SHOWS',\n PERFORMANCES = 'PERFORMANCES',\n}\n","export enum CouponDiscountType {\n PERCENTAGE = 'PERCENTAGE',\n FIXED = 'FIXED',\n}\n","export enum CorporateBondStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n EXPIRED = 'EXPIRED',\n}\n","export enum PerformanceStatus {\n ACTIVE = 'active',\n CANCELLED = 'cancelled',\n FINISHED = 'finished',\n POSTPONED = 'postponed',\n}\n","export enum PerformanceTicketStatus {\n AVAILABLE = 'available',\n RESERVED = 'reserved',\n SOLD = 'sold',\n BLOCKED = 'blocked',\n}\n","export enum RoomMapElementOrientation {\n TOP = 'top',\n RIGHT = 'right',\n BOTTOM = 'bottom',\n LEFT = 'left',\n CENTER = 'center',\n}\n","export enum RoomMapElementType {\n SEAT_BLOCK = 'seat_block',\n TABLE = 'table',\n ZONE = 'zone',\n EXIT = 'exit',\n STAGE = 'stage',\n PRODUCTION_AREA = 'production_area',\n UNAVAILABLE_SPACE = 'unavailable_space',\n STAIR = 'stair',\n HALLWAY = 'hallway',\n}\n","export enum OrderItemType {\n TICKET = 'TICKET',\n PRODUCT = 'PRODUCT',\n}\n","export enum OrderStatus {\n PENDING = 'PENDING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n CANCELLED = 'CANCELLED',\n}\n","import { Customer } from '../interfaces/customers/customer.interface';\n\nexport const getCustomerFullname = (customer: Customer) => {\n return `${customer.first_name || ''} ${customer.last_name || ''}`.trim();\n};\n","export function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData {\n const formData = new FormData();\n\n if (!Array.isArray(imageGallery)) {\n throw new Error('imageGallery debe ser un array');\n }\n\n if (imageGallery.length === 0) {\n throw new Error('No hay imágenes para procesar');\n }\n\n if (imageGallery.length > 10) {\n throw new Error('El backend acepta máximo 10 archivos por petición');\n }\n\n const processedFiles: any = [];\n\n imageGallery.forEach((image, index) => {\n try {\n if (!image.name) {\n throw new Error(`La imagen ${index + 1} no tiene nombre`);\n }\n\n if (!image.type || !image.type.startsWith('image/')) {\n throw new Error(`La imagen ${index + 1} no tiene un tipo MIME válido`);\n }\n\n if (!image.preview) {\n throw new Error(`La imagen ${index + 1} no tiene datos de preview`);\n }\n\n if (!image.preview.includes('data:image/') || !image.preview.includes('base64,')) {\n throw new Error(`La imagen ${index + 1} no tiene un formato base64 válido`);\n }\n\n const base64Data = image.preview.split(',')[1];\n const byteCharacters = atob(base64Data);\n const byteNumbers = new Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n const blob = new Blob([byteArray], { type: image.type });\n\n const file = new File([blob], image.name, {\n type: image.type,\n lastModified: Date.now(),\n });\n\n if (file.size === 0) {\n throw new Error(`El archivo ${image.name} está vacío`);\n }\n\n formData.append('files', file);\n processedFiles.push({\n name: image.name,\n size: file.size,\n type: file.type,\n });\n } catch (error: any) {\n console.error(`Error procesando imagen ${index + 1}:`, error);\n throw new Error(\n `Error procesando ${image.name || 'imagen ' + (index + 1)}: ${error?.message}`,\n );\n }\n });\n\n return formData;\n}\n","import { ShowImage } from '../interfaces/shows/show-image.interface';\nimport { VenueImage } from '../interfaces/venues/venue-image.interface';\nimport { UploadedFile } from '../interfaces/uploaded-file.interface';\n\nexport const transformImageToFile = (image: ShowImage | VenueImage): UploadedFile => {\n return {\n preview: image.full_url,\n name: image.original_name,\n size: image.size,\n type: image.mime_type,\n extension: image.extension,\n } as UploadedFile;\n};\n","import { CitiesResponse } from '../interfaces/cities/cities-response.interface';\n\nexport const formatCitiesResponseToSelect = (res: CitiesResponse) => {\n if (!res.data.cities || res.data.cities.length < 1) {\n return [];\n }\n\n return res.data.cities?.map(({ id, name, search_text }) => ({\n value: id,\n label: search_text ?? name,\n }));\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn, FormGroup } from '@angular/forms';\n\nexport function MinTodayValidator(controlName: string): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const group = formGroup as FormGroup;\n const control = group.get(controlName);\n\n if (!control || !control.value) {\n return null;\n }\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n let selectedDate: Date;\n\n if (control.value instanceof Date) {\n selectedDate = new Date(control.value);\n } else if (typeof control.value === 'string') {\n const [year, month, day] = control.value.split('-').map(Number);\n selectedDate = new Date(Date.UTC(year, month - 1, day));\n } else {\n return null;\n }\n\n selectedDate.setUTCHours(0, 0, 0, 0);\n\n if (selectedDate < today) {\n control.setErrors({ minToday: true });\n return { minToday: true };\n } else {\n const currentErrors = control.errors;\n if (currentErrors) {\n delete currentErrors['minToday'];\n control.setErrors(Object.keys(currentErrors).length > 0 ? currentErrors : null);\n }\n return null;\n }\n };\n}\n\nexport function EndDateGreaterThanStartValidator(\n startDateControlName: string,\n endDateControlName: string,\n): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const group = formGroup as FormGroup;\n const startDateControl = group.get(startDateControlName);\n const endDateControl = group.get(endDateControlName);\n\n if (!startDateControl || !endDateControl || !startDateControl.value || !endDateControl.value) {\n return null;\n }\n\n let startDate: Date;\n let endDate: Date;\n\n if (startDateControl.value instanceof Date) {\n startDate = new Date(startDateControl.value);\n } else if (typeof startDateControl.value === 'string') {\n const [startYear, startMonth, startDay] = startDateControl.value.split('-').map(Number);\n startDate = new Date(Date.UTC(startYear, startMonth - 1, startDay));\n } else {\n return null;\n }\n\n if (endDateControl.value instanceof Date) {\n endDate = new Date(endDateControl.value);\n } else if (typeof endDateControl.value === 'string') {\n const [endYear, endMonth, endDay] = endDateControl.value.split('-').map(Number);\n endDate = new Date(Date.UTC(endYear, endMonth - 1, endDay));\n } else {\n return null;\n }\n\n startDate.setUTCHours(0, 0, 0, 0);\n endDate.setUTCHours(0, 0, 0, 0);\n\n if (endDate <= startDate) {\n endDateControl.setErrors({ endDateGreaterThanStart: true });\n return { endDateGreaterThanStart: true };\n } else {\n const currentErrors = endDateControl.errors;\n if (currentErrors) {\n delete currentErrors['endDateGreaterThanStart'];\n endDateControl.setErrors(Object.keys(currentErrors).length > 0 ? currentErrors : null);\n }\n return null;\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn, FormGroup } from '@angular/forms';\n\nexport function MustMatchValidator(controlName: string, matchingControlName: string): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const group = formGroup as FormGroup;\n const control = group.get(controlName);\n const matchingControl = group.get(matchingControlName);\n\n if (!control || !matchingControl) {\n return null;\n }\n\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n return { mustMatch: true };\n } else {\n matchingControl.setErrors(null);\n return null;\n }\n };\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n TICKERA_COMPONENTS_CONFIG,\n TickeraComponentsConfig,\n} from '../config/tickera-components.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n private apiUrl: string;\n\n constructor(\n private http: HttpClient,\n @Inject(PLATFORM_ID) private platformId: Object,\n @Inject(TICKERA_COMPONENTS_CONFIG) private config: TickeraComponentsConfig,\n ) {\n this.apiUrl = config.apiUrl;\n }\n\n private getHeaders(contentType?: string): HttpHeaders {\n let headers = new HttpHeaders();\n\n if (contentType) {\n headers = headers.set('Content-Type', contentType);\n }\n\n return headers;\n }\n\n private validateContentType(body: any): string | undefined {\n if (body instanceof FormData) {\n return undefined;\n }\n return 'application/json';\n }\n\n private handleError(error: HttpErrorResponse): Observable<never> {\n if (error.status === 401 && isPlatformBrowser(this.platformId)) {\n const currentRoute = window.location.pathname;\n if (currentRoute.startsWith('/admin')) {\n localStorage.removeItem('access_token');\n window.location.href = '/';\n }\n }\n return throwError(() => error);\n }\n\n get<T>(path: string): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(null));\n return this.http\n .get<T>(`${this.apiUrl}${path}`, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n post<T>(path: string, body: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .post<T>(`${this.apiUrl}${path}`, body, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n patch<T>(path: string, body: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .patch<T>(`${this.apiUrl}${path}`, body, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n put<T>(path: string, body: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .put<T>(`${this.apiUrl}${path}`, body, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n delete<T>(path: string, body?: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .request<T>('DELETE', `${this.apiUrl}${path}`, { headers, body })\n .pipe(catchError(this.handleError.bind(this)));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { toast } from 'ngx-sonner';\n\ntype ToastType = 'success' | 'error' | 'info';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n show(message: string, type: ToastType = 'info') {\n toast[type](message);\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingModalService {\n title: WritableSignal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n open(title?: string) {\n this.title.set(title ?? 'Cargando...');\n this.isOpen.set(true);\n }\n\n close() {\n this.isOpen.set(false);\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { DeleteConfirmationOpen } from '../interfaces/delete-confirmation-open.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class DeleteConfirmationService {\n title: WritableSignal<string> = signal('Confirmar eliminación');\n resourceName: WritableSignal<string> = signal('');\n confirmationText: WritableSignal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n confirmDeleteCallback: (() => void) | null = null;\n\n get modalTitle(): WritableSignal<string> {\n return this.title;\n }\n\n get modalResourceName(): WritableSignal<string> {\n return this.resourceName;\n }\n\n get modalConfirmationText(): WritableSignal<string> {\n return this.confirmationText;\n }\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n open(\n { title, resourceName, confirmationText }: DeleteConfirmationOpen,\n confirmCallback?: () => void,\n ) {\n this.title.set(title);\n this.resourceName.set(resourceName);\n this.confirmationText.set(confirmationText);\n this.confirmDeleteCallback = confirmCallback || null;\n this.isOpen.set(true);\n }\n\n close() {\n this.title.set('Confirmar eliminación');\n this.resourceName.set('');\n this.confirmationText.set('');\n this.confirmDeleteCallback = null;\n this.isOpen.set(false);\n }\n\n getConfirmDeleteCallback(): (() => void) | null {\n return this.confirmDeleteCallback;\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ChangePasswordFormService {\n resourceId: WritableSignal<number> = signal(0);\n isCustomer: WritableSignal<boolean> = signal(false);\n isAdmin: WritableSignal<boolean> = signal(false);\n isOpen: WritableSignal<boolean> = signal(false);\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n get isCustomerMode(): WritableSignal<boolean> {\n return this.isCustomer;\n }\n\n get isAdminMode(): WritableSignal<boolean> {\n return this.isAdmin;\n }\n\n get resourceIdValue(): WritableSignal<number> {\n return this.resourceId;\n }\n\n open(resourceId: number, isAdmin: boolean = false) {\n this.resourceId.set(resourceId);\n this.isCustomer.set(!isAdmin);\n this.isAdmin.set(isAdmin);\n this.isOpen.set(true);\n }\n\n close() {\n this.isOpen.set(false);\n }\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { formatDate } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class DateService {\n constructor(@Inject(LOCALE_ID) private locale: string) {}\n\n formatDate(date: Date, format: string = 'yyyy-MM-dd'): string {\n const formattedDate = formatDate(date, format, this.locale);\n return formattedDate;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { AdminsResponse } from '../interfaces/admins/admins-response.interface';\nimport { ADMIN_API_ROUTES } from '../constants/api-routes/admin-api.routes';\n\n@Injectable({ providedIn: 'root' })\nexport class AdminService {\n constructor(private apiService: ApiService) {}\n\n fetchAdmins(\n page: number = 1,\n search: string = '',\n limit: number = 20,\n ): Observable<AdminsResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${ADMIN_API_ROUTES.FIND_ALL}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<AdminsResponse>(apiRoute);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(ADMIN_API_ROUTES.deleteOne(id));\n }\n\n createOne(data: any): Observable<any> {\n return this.apiService.post(ADMIN_API_ROUTES.CREATE, data);\n }\n\n updateOne(id: number, data: any): Observable<any> {\n return this.apiService.patch(ADMIN_API_ROUTES.updateOne(id), data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { CITY_API_ENDPOINTS } from '../constants/api-routes/cities-api.routes';\nimport { CitiesResponse } from '../interfaces/cities/cities-response.interface';\nimport { City } from '../interfaces/cities/city.interface';\nimport { CityResponse } from '../interfaces/cities/city-response.interface';\nimport { FetchCitiesParams } from '../interfaces/cities/fetch-cities-params.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class CitiesService {\n constructor(private apiService: ApiService) {}\n\n fetchCities({ page, search, stateId }: FetchCitiesParams): Observable<CitiesResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (stateId) queryParams.append('state_id', stateId.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${CITY_API_ENDPOINTS.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<CitiesResponse>(apiRoute);\n }\n\n createOne(data: City): Observable<CityResponse> {\n return this.apiService.post(CITY_API_ENDPOINTS.create, data);\n }\n\n updateOne(id: number, data: City): Observable<CityResponse> {\n return this.apiService.patch<CityResponse>(CITY_API_ENDPOINTS.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(CITY_API_ENDPOINTS.delete(id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { COUNTRY_API_ENDPOINTS } from '../constants/api-routes/countries-api.routes';\nimport { CountriesResponse } from '../interfaces/countries/countries-response.interface';\nimport { CountryResponse } from '../interfaces/countries/country-response.interface';\nimport { Country } from '../interfaces/countries/country.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class CountryService {\n constructor(private apiService: ApiService) {}\n\n fetchCountries(page?: number, search?: string): Observable<CountriesResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n const queryString = queryParams.toString();\n const apiRoute = `${COUNTRY_API_ENDPOINTS.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<CountriesResponse>(apiRoute);\n }\n\n createOne(data: Country): Observable<CountryResponse> {\n return this.apiService.post(COUNTRY_API_ENDPOINTS.create, data);\n }\n\n updateOne(id: number, data: Country): Observable<CountryResponse> {\n return this.apiService.patch<CountryResponse>(COUNTRY_API_ENDPOINTS.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(COUNTRY_API_ENDPOINTS.delete(id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { STATE_API_ENDPOINTS } from '../constants/api-routes/states-api.routes';\nimport { StatesResponse } from '../interfaces/states/states-response.interface';\nimport { StateResponse } from '../interfaces/states/state-response.interface';\nimport { State } from '../interfaces/states/state.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class StatesService {\n constructor(private apiService: ApiService) {}\n\n fetchStates(page?: number, search?: string, countryId?: number): Observable<StatesResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (countryId) queryParams.append('country_id', countryId.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${STATE_API_ENDPOINTS.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<StatesResponse>(apiRoute);\n }\n\n fetchStatesByCountryId(countryId: number): Observable<StatesResponse> {\n const apiRoute = `${STATE_API_ENDPOINTS.findAll}?country_id=${countryId}`;\n return this.apiService.get<StatesResponse>(apiRoute);\n }\n\n createOne(data: State): Observable<StateResponse> {\n return this.apiService.post(STATE_API_ENDPOINTS.create, data);\n }\n\n updateOne(id: number, data: State): Observable<StateResponse> {\n return this.apiService.patch<StateResponse>(STATE_API_ENDPOINTS.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(STATE_API_ENDPOINTS.delete(id));\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PERFORMANCES_API_ROUTES } from '../constants/api-routes/performances-api.routes';\nimport { ApiService } from './api.service';\nimport { PerformancesResponseInterface } from '../interfaces/performances/performances-response.interface';\nimport { Performance } from '../interfaces/performances/performance.interface';\nimport { PerformanceResponse } from '../interfaces/performances/performance-response.interface';\nimport { PerformanceBookingDataResponse } from '../interfaces/performances/performance-booking-data.interface';\nimport { PerformancesAvailableDaysResponse } from '../interfaces/performances/performances-available-days-response.interface';\nimport { FetchDailyPerformancesParams } from '../interfaces/daily-performances/fetch-daily-performances-params.interface';\nimport { DailyPerformancesResponse } from '../interfaces/daily-performances/daily-performances-response.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class PerformanceService {\n private performancesSubject = new BehaviorSubject<Performance[]>([]);\n public performances$ = this.performancesSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n fetchPerformances(showId?: number, search?: string): Observable<PerformancesResponseInterface> {\n const queryParams = new URLSearchParams();\n if (showId) queryParams.append('show_id', showId.toString());\n if (search) queryParams.append('search', search);\n queryParams.append('limit', '100');\n const queryString = queryParams.toString();\n const apiRoute = `${PERFORMANCES_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<PerformancesResponseInterface>(apiRoute);\n }\n\n fetchDailyPerformances({\n show_id,\n search,\n limit,\n date,\n }: FetchDailyPerformancesParams): Observable<DailyPerformancesResponse> {\n const queryParams = new URLSearchParams();\n if (date) queryParams.append('date', date.toString());\n if (show_id) queryParams.append('show_id', show_id.toString());\n if (search) queryParams.append('search', search);\n queryParams.append('limit', limit?.toString() ?? '100');\n\n const queryString = queryParams.toString();\n const apiRoute = `${PERFORMANCES_API_ROUTES.publicAvailablePerformances}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<DailyPerformancesResponse>(apiRoute);\n }\n\n loadPerformances({ showId, search }: { showId?: number; search?: string } = {}): void {\n this.fetchPerformances(showId, search).subscribe({\n next: ({ data }) => {\n this.performancesSubject.next(data?.performances ?? []);\n },\n error: () => {\n this.performancesSubject.next([]);\n },\n });\n }\n\n getCurrentPerformances(): Performance[] {\n return this.performancesSubject.value;\n }\n\n fetchOneById(id: number): Observable<PerformanceResponse> {\n return this.apiService.get<PerformanceResponse>(PERFORMANCES_API_ROUTES.findOneById(id));\n }\n\n fetchOneBookingData(id: number): Observable<PerformanceBookingDataResponse> {\n const apiRoute = PERFORMANCES_API_ROUTES.findOneBookingData(id);\n return this.apiService.get<PerformanceBookingDataResponse>(apiRoute);\n }\n\n fetchAvailableDays(params?: { show_id?: number }): Observable<PerformancesAvailableDaysResponse> {\n const queryParams = new URLSearchParams();\n if (params?.show_id) queryParams.append('show_id', params.show_id.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${PERFORMANCES_API_ROUTES.getAvailableDays}${queryString ? '?' + queryString : ''}`;\n\n return this.apiService.get<PerformancesAvailableDaysResponse>(apiRoute);\n }\n\n createOne(data: Performance): Observable<any> {\n return this.apiService.post(PERFORMANCES_API_ROUTES.create, data);\n }\n\n createMany(data: Partial<Performance>[]): Observable<any> {\n return this.apiService.post(PERFORMANCES_API_ROUTES.createBulk, { performances: data });\n }\n\n updateOne(id: number, data: any): Observable<PerformanceResponse> {\n return this.apiService.patch<PerformanceResponse>(PERFORMANCES_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(PERFORMANCES_API_ROUTES.delete(id));\n }\n\n deleteMany(ids: number[]): Observable<any> {\n return this.apiService.delete(PERFORMANCES_API_ROUTES.deleteMany, { ids });\n }\n\n cancelPerformance(id: number, notifyUsers: boolean): Observable<any> {\n return this.apiService.patch(PERFORMANCES_API_ROUTES.cancel(id), { notify_users: notifyUsers });\n }\n\n publishInvenotry(id: number): Observable<any> {\n const apiRoute = PERFORMANCES_API_ROUTES.publishInventory(id);\n return this.apiService.post(apiRoute, {});\n }\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { DailyPerformanceItem, PerformanceAvailableDay } from '../interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class PerformancesListEventsService {\n private _selectedDay = signal<PerformanceAvailableDay | null>(null);\n private _selectedPerformance = signal<DailyPerformanceItem | null>(null);\n private _filteredShowId = signal<number | null>(null);\n\n readonly selectedDay = computed(() => this._selectedDay());\n readonly selectedDayDate = computed(() => this._selectedDay()?.date);\n readonly selectedPerformance = computed(() => this._selectedPerformance());\n readonly filteredShowId = computed(() => this._filteredShowId());\n\n setSelectedDay(day: PerformanceAvailableDay | null): void {\n this._selectedDay.set(day);\n }\n\n setSelectedPerformance(performance: DailyPerformanceItem | null) {\n this._selectedPerformance.set(performance);\n }\n\n setFilteredShowId(id: number | null): void {\n this._filteredShowId.set(id);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PRODUCTS_API_ROUTES } from '../constants/api-routes/products-api.routes';\nimport { ApiService } from './api.service';\nimport { ProductsResponseInterface } from '../interfaces/products/products-response.interface';\nimport { ProductResponse } from '../interfaces/products/product-response.interface';\nimport { Product } from '../interfaces/products/product.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ProductService {\n private productsSubject = new BehaviorSubject<Product[]>([]);\n public products$ = this.productsSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n fetchProducts(page: number, search: string): Observable<ProductsResponseInterface> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n const queryString = queryParams.toString();\n const apiRoute = `${PRODUCTS_API_ROUTES.FIND_ALL}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<ProductsResponseInterface>(apiRoute);\n }\n\n loadProducts({ page, search }: { page?: number; search?: string } = {}): void {\n this.fetchProducts(page ?? 1, search ?? '').subscribe({\n next: ({ data }) => {\n this.productsSubject.next(data?.products ?? []);\n },\n error: () => {\n this.productsSubject.next([]);\n },\n });\n }\n\n getCurrentProducts(): Product[] {\n return this.productsSubject.value;\n }\n\n fetchOneById(id: number): Observable<ProductResponse> {\n return this.apiService.get<ProductResponse>(PRODUCTS_API_ROUTES.findOneById(id));\n }\n\n createOne(data: Product): Observable<any> {\n return this.apiService.post(PRODUCTS_API_ROUTES.CREATE, data);\n }\n\n updateOne(id: number, data: any): Observable<ProductResponse> {\n return this.apiService.patch<ProductResponse>(PRODUCTS_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(PRODUCTS_API_ROUTES.delete(id));\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { SHOWS_API_ROUTES } from '../constants/api-routes/shows-api.routes';\nimport { ApiService } from './api.service';\nimport { ShowsResponseInterface } from '../interfaces/shows/shows-response.interface';\nimport { Show } from '../interfaces/shows/show.interface';\nimport { ShowResponse } from '../interfaces/shows/show-response.interface';\nimport { ShowImage } from '../interfaces/shows/show-image.interface';\nimport { FetchShowsParams } from '../interfaces/shows/fetch-shows-params.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ShowService {\n private showsSubject = new BehaviorSubject<Show[]>([]);\n public shows$ = this.showsSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n loadShows({ page, search }: FetchShowsParams = {}): void {\n this.fetchShows({ page, search }).subscribe({\n next: ({ data }) => {\n this.showsSubject.next(data?.shows ?? []);\n },\n error: () => {\n this.showsSubject.next([]);\n },\n });\n }\n\n getCurrentShows(): Show[] {\n return this.showsSubject.value;\n }\n\n fetchShows({ limit, page, search }: FetchShowsParams): Observable<ShowsResponseInterface> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (limit) queryParams.append('limit', limit.toString());\n if (search) queryParams.append('search', search);\n\n const queryString = queryParams.toString();\n const apiRoute = `${SHOWS_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<ShowsResponseInterface>(apiRoute);\n }\n\n fetchAvailableShows({\n date,\n limit,\n page,\n search,\n }: FetchShowsParams): Observable<ShowsResponseInterface> {\n const queryParams = new URLSearchParams();\n if (date) queryParams.append('date', date);\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n\n const apiRoute = `${SHOWS_API_ROUTES.publicAvailablePerformances}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<ShowsResponseInterface>(apiRoute);\n }\n\n fetchOneById(id: number): Observable<ShowResponse> {\n return this.apiService.get<ShowResponse>(SHOWS_API_ROUTES.findOneById(id));\n }\n\n createOne(data: Show): Observable<ShowResponse> {\n return this.apiService.post(SHOWS_API_ROUTES.create, data);\n }\n\n updateOne(id: number, data: any): Observable<ShowResponse> {\n return this.apiService.patch<ShowResponse>(SHOWS_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(SHOWS_API_ROUTES.delete(id));\n }\n\n fetchImages(id: number): Observable<{ data: ShowImage[] }> {\n return this.apiService.get(SHOWS_API_ROUTES.getImages(id));\n }\n\n uploadImages(id: number, files?: FormData): Observable<{ data: ShowImage[] }> {\n return this.apiService.post(SHOWS_API_ROUTES.uploadGallery(id), files);\n }\n\n deleteOneImage(showId: number, imageId: number): Observable<any> {\n return this.apiService.delete(SHOWS_API_ROUTES.deleteOneImage(showId, imageId));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { CustomersResponse } from '../interfaces/customers/customers-response.interface';\nimport { CustomerResponse } from '../interfaces/customers/customer-response.interface';\nimport { CUSTOMERS_API_ROUTES } from '../constants/api-routes/customers-api.routes';\nimport { Customer } from '../interfaces/customers/customer.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class CustomerService {\n constructor(private apiService: ApiService) {}\n\n createOne(data: Customer): Observable<CustomerResponse> {\n return this.apiService.post<CustomerResponse>(CUSTOMERS_API_ROUTES.create, data);\n }\n\n fetchCustomers(page: number, search: string, limit?: number): Observable<CustomersResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${CUSTOMERS_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<CustomersResponse>(apiRoute);\n }\n\n fetchOneById(id: number): Observable<CustomerResponse> {\n return this.apiService.get<CustomerResponse>(CUSTOMERS_API_ROUTES.findOne(id));\n }\n\n updateOne(id: number, data: any): Observable<CustomerResponse> {\n return this.apiService.patch<CustomerResponse>(CUSTOMERS_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(CUSTOMERS_API_ROUTES.delete(id));\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PRICE_ZONES_API_ROUTES } from '../constants/api-routes/price-zones-api.routes';\nimport { ApiService } from './api.service';\nimport { PriceZonesResponseInterface } from '../interfaces/price-zones/price-zones-response.interface';\nimport { PriceZone } from '../interfaces/price-zones/price-zone.interface';\nimport { FindAllPriceZoneParams } from '../interfaces/price-zones/find-all-price-zone-params.interface';\nimport { PriceZoneResponse } from '../interfaces/price-zones/price-zone-response.interface';\nimport { PriceZoneUpdateResponse } from '../interfaces/price-zones/price-zone-update-response.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class PriceZoneService {\n private priceZonesSubject = new BehaviorSubject<PriceZone[]>([]);\n public priceZones$ = this.priceZonesSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n fetchPriceZones({\n roomMapId,\n page,\n search,\n limit,\n }: FindAllPriceZoneParams = {}): Observable<PriceZonesResponseInterface> {\n const queryParams = new URLSearchParams();\n if (roomMapId) queryParams.append('room_map_id', roomMapId.toString());\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${PRICE_ZONES_API_ROUTES.FIND_ALL}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<PriceZonesResponseInterface>(apiRoute);\n }\n\n loadPriceZones({ roomMapId, page, search, limit }: FindAllPriceZoneParams = {}): void {\n this.fetchPriceZones({ roomMapId, page, search, limit }).subscribe({\n next: ({ data }) => {\n this.priceZonesSubject.next(data?.price_zones ?? []);\n },\n error: () => {\n this.priceZonesSubject.next([]);\n },\n });\n }\n\n getCurrentPriceZones(): PriceZone[] {\n return this.priceZonesSubject.value;\n }\n\n fetchOneById(id: number): Observable<PriceZoneResponse> {\n return this.apiService.get<PriceZoneResponse>(PRICE_ZONES_API_ROUTES.findOneById(id));\n }\n\n createOne(data: PriceZone): Observable<any> {\n return this.apiService.post(PRICE_ZONES_API_ROUTES.CREATE, data);\n }\n\n duplicateOne(id: number, name: string): Observable<any> {\n return this.apiService.post(PRICE_ZONES_API_ROUTES.duplicate(id), { name });\n }\n\n updateOne(id: number, data: any): Observable<PriceZoneUpdateResponse> {\n return this.apiService.patch<PriceZoneUpdateResponse>(PRICE_ZONES_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(PRICE_ZONES_API_ROUTES.delete(id));\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { PriceZone } from '../interfaces/price-zones/price-zone.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class PriceZoneEventService {\n private priceZoneDeleted$ = new Subject<void>();\n private priceZoneSaved$ = new Subject<void>();\n\n private _selectedPriceZone: WritableSignal<PriceZone | null> = signal(null);\n readonly selectedPriceZone$ = toObservable(this._selectedPriceZone);\n\n onPriceZoneDeleted() {\n this.priceZoneDeleted$.next();\n }\n\n getPriceZoneDeleted() {\n return this.priceZoneDeleted$.asObservable();\n }\n\n onPriceZoneSaved() {\n this.priceZoneSaved$.next();\n }\n\n getPriceZoneSaved() {\n return this.priceZoneSaved$.asObservable();\n }\n\n setSelectedPriceZone(priceZone: PriceZone | null) {\n this._selectedPriceZone.set(priceZone);\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { PriceZone } from '../interfaces/price-zones/price-zone.interface';\nimport { PriceZoneEventService } from './price-zone-event.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PriceZoneFormModalService {\n priceZone: WritableSignal<PriceZone | null> = signal(null);\n isOpen: WritableSignal<boolean> = signal(false);\n\n constructor(private priceZoneEventService: PriceZoneEventService) {}\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n get currentPriceZone(): WritableSignal<PriceZone | null> {\n return this.priceZone;\n }\n\n open(priceZone: PriceZone | null = null) {\n this.priceZone.set(priceZone);\n this.priceZoneEventService.setSelectedPriceZone(priceZone);\n this.isOpen.set(true);\n }\n\n close() {\n this.isOpen.set(false);\n this.priceZone.set(null);\n }\n}\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n TICKERA_COMPONENTS_CONFIG,\n TickeraComponentsConfig,\n} from '../config/tickera-components.config';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const platformId = inject(PLATFORM_ID);\n const config = inject(TICKERA_COMPONENTS_CONFIG) as TickeraComponentsConfig;\n\n if (isPlatformBrowser(platformId)) {\n const key = config.accessTokenKey ?? 'access_token';\n const token = localStorage.getItem(key);\n if (token) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${token}` },\n });\n }\n }\n\n return next(req);\n};\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n BASE_BUTTON_CLASSES,\n BUTTON_SIZES_CLASSES,\n BUTTON_VARIANT_CLASSES,\n} from '../../../constants/buttons';\n\n@Component({\n selector: 'app-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppButtonComponent {\n @Output() clicked = new EventEmitter<void>();\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() type: 'button' | 'submit' = 'button';\n @Input() variant: 'primary' | 'secondary' | 'terciary' | 'success' | 'transparent' = 'primary';\n @Input() text: string = '';\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n @Input() loadingText: string = '';\n @Input() icon: string = '';\n\n handleClick() {\n this.clicked.emit();\n }\n\n get buttonClasses(): string {\n const disabledClasses = this.disabled ? 'opacity-50 cursor-not-allowed' : '';\n const variantClasses = BUTTON_VARIANT_CLASSES[this.variant];\n const loadingClasses = this.loading ? 'opacity-50 cursor-not-allowed' : '';\n const sizeClasses = BUTTON_SIZES_CLASSES[this.size];\n return `${BASE_BUTTON_CLASSES} ${disabledClasses} ${variantClasses} ${loadingClasses} ${sizeClasses}`;\n }\n}\n","<button\n [type]=\"type\"\n [disabled]=\"loading || disabled\"\n class=\"{{ buttonClasses }}\"\n (click)=\"handleClick()\"\n>\n @if (icon && !loading) {\n <i class=\"{{ icon }}\"></i>\n }\n\n @if (loading) {\n <i class=\"ri-refresh-line animate-spin\"></i>\n }\n\n {{ loading ? loadingText : text }}\n</button>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport {\n BASE_BUTTON_CLASSES,\n BUTTON_VARIANT_CLASSES,\n BUTTON_SIZES_CLASSES,\n} from '../../../constants/buttons';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'app-link-button',\n standalone: true,\n imports: [CommonModule, RouterLink, TranslocoModule],\n templateUrl: './link-button.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppLinkButtonComponent {\n protected readonly BASE_BUTTON_CLASSES = BASE_BUTTON_CLASSES;\n\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() target: '_blank' | '_self' | '_parent' | '_top' = '_self';\n @Input() text: string = '';\n @Input() icon: string = '';\n @Input() loadingText: string = '';\n @Input() route: string = '';\n @Input() queryParams: Record<string, any> = {};\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n @Input() variant: 'primary' | 'secondary' | 'terciary' | 'success' | 'transparent' = 'primary';\n\n get buttonClasses(): string {\n const disabledClasses = this.disabled ? 'opacity-50 cursor-not-allowed' : '';\n const variantClasses = BUTTON_VARIANT_CLASSES[this.variant];\n const loadingClasses = this.loading ? 'opacity-50 cursor-not-allowed' : '';\n const sizeClasses = BUTTON_SIZES_CLASSES[this.size] || 'text-base';\n\n return [BASE_BUTTON_CLASSES, disabledClasses, variantClasses, loadingClasses, sizeClasses].join(\n ' ',\n );\n }\n}\n","<a\n class=\"{{ buttonClasses }}\"\n [routerLink]=\"!disabled ? route : null\"\n [queryParams]=\"queryParams\"\n [target]=\"target\"\n>\n @if (icon) {\n <i [class]=\"icon\"></i>\n }\n\n {{ loading ? loadingText : text }}\n</a>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ALERT_BASE_CLASSES,\n ALERT_COLOR_CLASSES,\n ALERT_ICONS,\n ALERT_SIZE_CLASSES,\n} from '../../../constants/alerts';\n\n@Component({\n selector: 'app-alert',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './alert.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppAlertComponent {\n @Input() type: 'success' | 'error' | 'warning' | 'info' = 'success';\n @Input() text: string = '';\n @Input() closeable: boolean = false;\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n\n get alertColorClasses(): string {\n return ALERT_COLOR_CLASSES[this.type] ?? ALERT_COLOR_CLASSES.success;\n }\n\n get alertSizeClasses(): string {\n return ALERT_SIZE_CLASSES[this.size] ?? ALERT_SIZE_CLASSES.sm;\n }\n\n get alertClasses(): string {\n return `${ALERT_BASE_CLASSES} ${this.alertColorClasses} ${this.alertSizeClasses}`;\n }\n\n get alertIcon(): string {\n return ALERT_ICONS[this.type] ?? ALERT_ICONS.info;\n }\n}\n","<div class=\"{{ alertClasses }}\" role=\"alert\">\n <div class=\"flex items-center gap-2\">\n <i class=\"{{ alertIcon }}\"></i>\n <span>{{ text }}</span>\n </div>\n\n @if (closeable) {\n <span\n class=\"absolute top-0 bottom-0 right-0 h-full w-8 flex items-center justify-center cursor-pointer\"\n >\n <i class=\"ri-close-line\"></i>\n </span>\n }\n</div>\n","import {\n Component,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './modal.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppModalComponent {\n @Input() title: string = '';\n @Input() disableClose: boolean = false;\n @Input() isOpen: WritableSignal<boolean> = signal(false);\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' = 'md';\n\n @Output() closeModal = new EventEmitter<void>();\n\n private readonly SIZE_CLASSES: Record<string, string> = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n '3xl': 'max-w-3xl',\n '4xl': 'max-w-4xl',\n };\n\n get sizeClass(): string {\n return this.SIZE_CLASSES[this.size] ?? 'max-w-md';\n }\n\n onCloseModal(): void {\n if (this.disableClose) return;\n\n this.closeModal.emit();\n }\n}\n","@if (isOpen()) {\n <div class=\"fixed inset-0 flex items-center justify-center z-50\">\n <div class=\"absolute inset-0 bg-black opacity-50\" (click)=\"onCloseModal()\"></div>\n\n <div\n [class]=\"`${sizeClass} bg-white rounded-lg max-h-screen overflow-y-auto shadow-xl relative z-10 w-full`\"\n >\n @if (!disableClose || !!title) {\n <div class=\"flex justify-between items-center p-5 border-b border-gray-200\">\n <h3 class=\"text-lg font-semibold text-gray-800 m-0\">{{ title }}</h3>\n\n @if (!disableClose) {\n <button\n class=\"bg-none border-none text-2xl cursor-pointer text-gray-600 p-0 w-7.5 h-7.5 flex items-center justify-center hover:text-gray-800\"\n (click)=\"onCloseModal()\"\n >\n &times;\n </button>\n }\n </div>\n }\n\n <div class=\"p-5\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AppModalComponent } from '../../modals/modal/modal.component';\nimport { LoadingModalService } from '../../../services/loading-modal.service';\n\n@Component({\n selector: 'loading-modal',\n standalone: true,\n imports: [CommonModule, AppModalComponent],\n templateUrl: './loading-modal.component.html',\n})\nexport class LoadingmModalComponent {\n constructor(private loadingModalService: LoadingModalService) {}\n\n get isOpen() {\n return this.loadingModalService.modalIsOpen;\n }\n\n get title() {\n return this.loadingModalService.title;\n }\n\n closeModal() {\n this.loadingModalService.close();\n }\n\n onCitySaved() {\n this.loadingModalService.close();\n }\n}\n","<app-modal [disableClose]=\"true\" [isOpen]=\"isOpen\" (closeModal)=\"closeModal()\">\n <div class=\"flex flex-col gap-4 py-6 w-full\">\n <div role=\"status\">\n <div class=\"flex items-center justify-center\">\n <div\n class=\"h-14 w-14 animate-spin rounded-full border-8 border-solid border-red-500 border-t-transparent\"\n ></div>\n </div>\n <span class=\"sr-only\">Loading...</span>\n </div>\n\n <p class=\"font-bold text-md text-center\">{{ title() }}</p>\n </div>\n</app-modal>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { BASE_INPUT_CLASSES, ERROR_INPUT_CLASSES } from '../../../constants/form-fields';\n\n@Component({\n selector: 'form-input',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './form-input.component.html',\n})\nexport class FormInputComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() type = 'text';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() minlength: number | null = null;\n @Input() min: number | null = null;\n @Input() step: number | null = 1;\n @Input() pattern: string | null = null;\n @Input() fieldGroupClass: string = '';\n @Input() autocomplete: boolean = true;\n\n value: any = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'maxlength') {\n return this.transloco.translate('formErrors.maxlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'email') {\n return this.transloco.translate('formErrors.email');\n }\n\n return this.transloco.translate(`formErrors.${errorKey}`);\n }\n\n get inputClasses(): string {\n return this.showError ? ERROR_INPUT_CLASSES : BASE_INPUT_CLASSES;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <input\n [type]=\"type\"\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [minlength]=\"minlength\"\n [pattern]=\"pattern || ''\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [class.bg-white]=\"!readonly\"\n [class.bg-gray-200]=\"readonly\"\n [class.cursor-not-allowed]=\"readonly\"\n [class]=\"inputClasses\"\n [autocomplete]=\"autocomplete\"\n [min]=\"min\"\n [step]=\"step\"\n />\n </div>\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { AppButtonComponent } from '../../buttons/button/button.component';\nimport { FormInputComponent } from '../../forms/form-input/form-input.component';\nimport { AppModalComponent } from '../../modals/modal/modal.component';\nimport { AppAlertComponent } from '../../feedback/alert/alert.component';\nimport { DeleteConfirmationService } from '../../../services/delete-confirmation.service';\n\n@Component({\n selector: 'delete-confirmation',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n AppButtonComponent,\n FormInputComponent,\n AppModalComponent,\n AppAlertComponent,\n ],\n templateUrl: './delete-confirmation.component.html',\n styleUrls: ['./delete-confirmation.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DeleteConfirmationComponent {\n deleteConfirmationForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private deleteConfirmationService: DeleteConfirmationService,\n protected transloco: TranslocoService,\n ) {\n this.deleteConfirmationForm = this.fb.group({\n confirmationText: ['', [Validators.required]],\n });\n }\n\n get title() {\n return this.deleteConfirmationService.modalTitle();\n }\n\n get resourceName() {\n return this.deleteConfirmationService.modalResourceName();\n }\n\n get confirmationText() {\n return this.deleteConfirmationService.modalConfirmationText();\n }\n\n get isOpen() {\n return this.deleteConfirmationService.modalIsOpen;\n }\n\n get isConfirmationValid(): boolean {\n const value = this.deleteConfirmationForm.value.confirmationText?.trim()?.toLowerCase();\n const confirmation = this.confirmationText?.trim()?.toLowerCase();\n return value == confirmation;\n }\n\n onCloseModal(): void {\n this.deleteConfirmationForm.reset();\n this.deleteConfirmationService.close();\n }\n\n onConfirmDelete(): void {\n const callback = this.deleteConfirmationService.getConfirmDeleteCallback();\n if (callback) {\n callback();\n }\n this.deleteConfirmationForm.reset();\n this.deleteConfirmationService.close();\n }\n}\n","@if (isOpen()) {\n <app-modal [title]=\"title\" [isOpen]=\"isOpen\" (closeModal)=\"onCloseModal()\">\n <form\n [formGroup]=\"deleteConfirmationForm\"\n method=\"POST\"\n class=\"flex flex-col gap-4\"\n (ngSubmit)=\"onConfirmDelete()\"\n >\n <app-alert\n type=\"warning\"\n [text]=\"'deleteConfirmation.warning' | transloco\"\n size=\"sm\"\n [closeable]=\"false\"\n />\n\n <p class=\"text-xs text-gray-600\">\n {{ 'deleteConfirmation.instructions' | transloco }}\n\n <span\n class=\"inline-flex bg-gray-200 items-center px-2 py-1 gap-1 text-red-600 font-semibold text-sm rounded mt-1\"\n >\n {{ confirmationText }}\n </span>\n </p>\n\n <form-input\n name=\"confirmationText\"\n type=\"text\"\n class=\"flex-1\"\n [required]=\"true\"\n [autocomplete]=\"false\"\n formControlName=\"confirmationText\"\n [placeholder]=\"\n transloco.translate('deleteConfirmation.placeholder', { text: confirmationText })\n \"\n />\n\n <div class=\"flex space-x-3\">\n <app-button\n variant=\"terciary\"\n [text]=\"'deleteConfirmation.cancel' | transloco\"\n (click)=\"onCloseModal()\"\n size=\"sm\"\n />\n\n <app-button\n type=\"submit\"\n variant=\"primary\"\n [text]=\"'deleteConfirmation.delete' | transloco\"\n [disabled]=\"!isConfirmationValid\"\n size=\"sm\"\n />\n </div>\n </form>\n </app-modal>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { Auditable } from '../../../interfaces/auditable.interface';\n\n@Component({\n selector: 'app-audit-information',\n standalone: true,\n imports: [CommonModule, DatePipe],\n templateUrl: './audit-information.component.html',\n styleUrls: ['./audit-information.component.scss'],\n})\nexport class AuditInformationComponent {\n @Input() data: Auditable | null = null;\n}\n","@if (data) {\n <div class=\"w-full bg-white rounded-lg shadow-lg overflow-hidden\">\n <div class=\"border-b border-gray-200 last:border-b-0\">\n <div class=\"flex items-center justify-between p-4 bg-gray-50 border-b border-gray-200\">\n <p class=\"text-sm font-semibold\">Información de auditoria</p>\n </div>\n\n <div class=\"p-4 w-full\">\n <ul class=\"flex flex-col gap-4 list-none p-0 m-0 w-full text-xs\">\n <li class=\"flex flex-col items-start\">\n <span class=\"font-bold\">Fecha de creación:</span>\n <span>{{ data.created_at | date: 'medium' }}</span>\n </li>\n\n @if (data.created_by_admin) {\n <li class=\"flex flex-col items-start\">\n <span class=\"font-bold\">Creado por:</span>\n <span>\n {{ data.created_by_admin.first_name }} - {{ data.created_by_admin.email }}\n </span>\n </li>\n }\n\n @if (data.updated_at) {\n <li class=\"flex flex-col items-start\">\n <span class=\"font-bold\">Última actualización:</span>\n <span>{{ data.updated_at | date: 'medium' }}</span>\n </li>\n }\n\n @if (data.updated_by_admin) {\n <li class=\"flex flex-col items-start\">\n <span class=\"font-bold\">Actualizado por:</span>\n <span>\n {{ data.updated_by_admin.first_name }} - {{ data.updated_by_admin.email }}\n </span>\n </li>\n }\n\n @if (data.is_published && data.published_at) {\n <li class=\"flex flex-col items-start\">\n <span class=\"font-bold\">Fecha de publicación:</span>\n <span>{{ data.published_at | date: 'medium' }}</span>\n </li>\n }\n\n @if (data.is_published && data.published_by_admin) {\n <li class=\"flex flex-col items-start\">\n <span class=\"font-bold\">Publicado por:</span>\n <span>\n {{ data.published_by_admin.first_name }} - {{ data.published_by_admin.email }}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n}\n","import { Component, EventEmitter, Input, Output, Type, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dynamic-table',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dynamic-table.component.html',\n})\nexport class DynamicTableComponent {\n constructor(private injector: Injector) {}\n\n @Input() title: string = '';\n @Input() data: any[] = [];\n @Input() headers: any[] = [];\n @Input() columnComponents: { [key: string]: Type<any> } = {};\n\n // Inputs necesarios para la paginación remota\n @Input() isLoading: boolean = true;\n @Input() totalItems: number = 0;\n @Input() itemsPerPage: number = 10;\n @Input() currentPage: number = 1;\n\n // Eventos para avisar al Backend\n @Output() pageChange = new EventEmitter<number>();\n @Output() searchChange = new EventEmitter<string>();\n\n // Visualización de paginación\n @Input() showPagination: boolean = true;\n\n // Visualización de búsqueda\n @Input() showSearch: boolean = true;\n\n // Visualización de título\n @Input() showTitle: boolean = true;\n\n get totalPages(): number {\n return Math.ceil(this.totalItems / this.itemsPerPage) || 1;\n }\n\n onSearch(event: any) {\n this.data = [];\n const value = event.target.value;\n this.searchChange.emit(value); // El padre recibe el término y hace el fetch\n }\n\n changePage(delta: number) {\n const newPage = this.currentPage + delta;\n if (newPage > 0 && newPage <= this.totalPages) {\n this.pageChange.emit(newPage); // El padre recibe la nueva página\n }\n }\n\n createInjector(row: any): Injector {\n return Injector.create({\n providers: [{ provide: 'ROW_DATA', useValue: row }],\n parent: this.injector,\n });\n }\n}\n","<div\n class=\"bg-white rounded-lg overflow-hidden border border-gray-200 dark:bg-gray-800 dark:border-gray-700\"\n>\n @if (showTitle || showSearch) {\n <div class=\"p-4 border-b border-gray-200 flex items-center justify-start dark:border-gray-700\">\n @if (showTitle) {\n <h2 class=\"text-lg font-semibold dark:text-white\">{{ title }}</h2>\n }\n\n @if (showSearch) {\n <input\n type=\"text\"\n (input)=\"onSearch($event)\"\n placeholder=\"Buscar...\"\n class=\"ml-auto block w-sm rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-600 sm:text-sm/6 dark:bg-white/5 dark:text-white dark:outline-white/10 dark:placeholder:text-gray-500 dark:focus:outline-indigo-500\"\n />\n }\n </div>\n }\n\n <div class=\"overflow-x-auto\">\n <table class=\"w-full text-left border-collapse\">\n <thead class=\"bg-gray-100 text-gray-600 text-xs dark:bg-gray-700 dark:text-gray-300\">\n <tr>\n @for (header of headers; track header.key) {\n <th class=\"p-3 border-b border-gray-300 whitespace-nowrap dark:border-gray-600\">\n {{ header.label }}\n </th>\n }\n </tr>\n </thead>\n\n <tbody class=\"text-gray-700 text-xs dark:text-gray-200\">\n @if (isLoading) {\n <tr\n class=\"border-b even:bg-gray-100 border-gray-200 last:border-none transition-colors dark:even:bg-gray-700/50 dark:border-gray-700\"\n >\n @for (header of headers; track header.key) {\n <td class=\"p-3\">\n <div class=\"h-5 bg-gray-200 rounded animate-pulse w-full dark:bg-gray-600\"></div>\n </td>\n }\n </tr>\n }\n\n @for (row of data; track row) {\n <tr\n class=\"hover:bg-gray-200 border-b even:bg-gray-100 border-gray-200 last:border-none transition-colors dark:hover:bg-gray-700 dark:even:bg-gray-700/50 dark:border-gray-700\"\n >\n @for (header of headers; track header.key) {\n <td class=\"p-3 whitespace-nowrap\">\n @if (columnComponents[header.key]) {\n <ng-container\n *ngComponentOutlet=\"columnComponents[header.key]; injector: createInjector(row)\"\n ></ng-container>\n } @else {\n {{ row[header.key] || '---' }}\n }\n </td>\n }\n </tr>\n }\n\n @if ((!data || data.length < 1) && !isLoading) {\n <tr>\n <td\n [attr.colspan]=\"headers.length\"\n class=\"p-6 text-center text-gray-400 italic dark:text-gray-500\"\n >\n No se encontraron registros en el servidor.\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n @if (showPagination) {\n <div\n class=\"p-4 flex items-center justify-between bg-gray-50 border-gray-300 border-t dark:bg-gray-800/50 dark:border-gray-700\"\n >\n <div class=\"text-sm text-gray-500 dark:text-gray-400\">\n Mostrando página\n <span class=\"font-semibold text-gray-800 dark:text-white\">{{ currentPage }}</span> de\n <span class=\"font-semibold text-gray-800 dark:text-white\">{{ totalPages }}</span>\n <span class=\"ml-1\">({{ totalItems }} registros totales)</span>\n </div>\n\n <div class=\"flex gap-2\">\n <button\n (click)=\"changePage(-1)\"\n [disabled]=\"currentPage === 1\"\n class=\"flex items-center px-4 py-2 border rounded-lg bg-white text-sm font-medium hover:bg-gray-100 disabled:opacity-40 disabled:cursor-not-allowed transition-all dark:bg-gray-700 dark:hover:bg-gray-600 dark:border-gray-600 dark:text-white\"\n >\n Anterior\n </button>\n <button\n (click)=\"changePage(1)\"\n [disabled]=\"currentPage >= totalPages\"\n class=\"flex items-center px-4 py-2 border rounded-lg bg-white text-sm font-medium hover:bg-gray-100 disabled:opacity-40 disabled:cursor-not-allowed transition-all dark:bg-gray-700 dark:hover:bg-gray-600 dark:border-gray-600 dark:text-white\"\n >\n Siguiente\n </button>\n </div>\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\n\n@Component({\n selector: 'language-switcher',\n standalone: true,\n imports: [CommonModule, TranslocoModule],\n template: `\n <div class=\"flex items-center gap-1\">\n @for (lang of availableLangs; track lang) {\n <button\n (click)=\"switchLang(lang)\"\n class=\"cursor-pointer px-2 py-1 text-xs font-medium rounded transition-colors\"\n [class.bg-gray-800]=\"activeLang === lang\"\n [class.text-white]=\"activeLang === lang\"\n [class.text-gray-400]=\"activeLang !== lang\"\n [class.hover:text-white]=\"activeLang !== lang\"\n >\n {{ lang | uppercase }}\n </button>\n }\n </div>\n `,\n})\nexport class LanguageSwitcherComponent {\n availableLangs = ['es', 'en'];\n\n constructor(protected transloco: TranslocoService) {}\n\n get activeLang(): string {\n return this.transloco.getActiveLang();\n }\n\n switchLang(lang: string): void {\n this.transloco.setActiveLang(lang);\n }\n}\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { BASE_INPUT_CLASSES, ERROR_INPUT_CLASSES } from '../../../constants/form-fields';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\n\n@Component({\n selector: 'form-select',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './form-select.component.html',\n styleUrls: ['./form-select.component.scss'],\n})\nexport class FormSelectComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = 'Seleccione una opción';\n @Input() required = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() options: SelectOption[] = [];\n @Input() fieldGroupClass: string = '';\n @Input() showDefaultOption: boolean = true;\n @Input() defaultOptionLabel: string = '';\n\n value: any = '';\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onSelectChange(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidSelection'),\n );\n }\n\n get resolvedDefaultOptionLabel(): string {\n return this.defaultOptionLabel || this.transloco.translate('common.selectOption');\n }\n\n get selectClasses(): string {\n return this.showError ? ERROR_INPUT_CLASSES : BASE_INPUT_CLASSES;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <select\n [id]=\"inputId\"\n [name]=\"name\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onSelectChange($event)\"\n (blur)=\"onTouched()\"\n [class]=\"selectClasses\"\n [class.bg-white]=\"!readonly\"\n [class.bg-gray-200]=\"readonly\"\n [class.cursor-not-allowed]=\"readonly\"\n >\n @if (showDefaultOption) {\n <option [value]=\"null\" disabled selected>{{ resolvedDefaultOptionLabel }}</option>\n }\n\n @for (option of options; track option.value) {\n <option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n </select>\n </div>\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { BASE_INPUT_CLASSES, ERROR_INPUT_CLASSES } from '../../../constants/form-fields';\n\n@Component({\n selector: 'form-textarea',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './form-textarea.component.html',\n})\nexport class FormTextareaComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() minlength: number | null = null;\n @Input() maxlength: number | null = null;\n @Input() rows: number = 4;\n @Input() cols: number | null = null;\n @Input() fieldGroupClass: string = '';\n\n value: any = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'maxlength') {\n return this.transloco.translate('formErrors.maxlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n return this.transloco.translate(`formErrors.${errorKey}`);\n }\n\n get inputClasses(): string {\n return this.showError ? ERROR_INPUT_CLASSES : BASE_INPUT_CLASSES;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <textarea\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [class.bg-white]=\"!readonly\"\n [class.bg-gray-200]=\"readonly\"\n [class.cursor-not-allowed]=\"readonly\"\n [class]=\"inputClasses\"\n ></textarea>\n </div>\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, Input, Self, Optional, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { TranslocoService } from '@jsverse/transloco';\nimport {\n Editor,\n NgxEditorComponent,\n NgxEditorMenuComponent,\n DEFAULT_TOOLBAR,\n Toolbar,\n toHTML,\n} from 'ngx-editor';\n\n@Component({\n selector: 'form-editor',\n standalone: true,\n imports: [\n FormsModule,\n CommonModule,\n ReactiveFormsModule,\n NgxEditorComponent,\n NgxEditorMenuComponent,\n ],\n templateUrl: './form-editor.component.html',\n})\nexport class FormEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() toolbar: Toolbar = DEFAULT_TOOLBAR;\n @Input() fieldGroupClass = '';\n\n editor!: Editor;\n value: string = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n private subscription: Subscription | null = null;\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.editor = new Editor();\n\n if (this.value) {\n this.editor.setContent(this.value);\n }\n\n this.subscription = this.editor.valueChanges\n .pipe(distinctUntilChanged())\n .subscribe((doc: Record<string, unknown>) => {\n this.value = toHTML(doc);\n this.onChange(this.value);\n this.onTouched();\n });\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.editor?.destroy();\n }\n\n writeValue(value: any): void {\n this.value = value ?? '';\n\n if (this.editor) {\n this.editor.setContent(value ?? null);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n return control.invalid ? control.dirty || control.touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'maxlength') {\n return this.transloco.translate('formErrors.maxlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidField'),\n );\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div\n class=\"relative\"\n [class.opacity-50]=\"disabled\"\n [class.pointer-events-none]=\"disabled\"\n [class.cursor-not-allowed]=\"disabled\"\n >\n <ngx-editor [editor]=\"editor\" outputFormat=\"html\" [placeholder]=\"placeholder\">\n <ngx-editor-menu\n [editor]=\"editor\"\n [toolbar]=\"toolbar\"\n [disabled]=\"disabled\"\n ></ngx-editor-menu>\n </ngx-editor>\n </div>\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import {\n Component,\n Input,\n Self,\n Optional,\n ElementRef,\n HostListener,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { BASE_INPUT_CLASSES, ERROR_INPUT_CLASSES } from '../../../constants/form-fields';\n\n@Component({\n selector: 'color-picker',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n})\nexport class ColorPickerComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '#000000';\n @Input() required = false;\n @Input() readonly = false;\n @Input() fieldGroupClass: string = '';\n @Input() showPreview = true;\n @Input() presetColors: string[] = [\n '#000000',\n '#FFFFFF',\n '#EF4444',\n '#F97316',\n '#F59E0B',\n '#EAB308',\n '#84CC16',\n '#22C55E',\n '#10B981',\n '#14B8A6',\n '#06B6D4',\n '#0EA5E9',\n '#3B82F6',\n '#6366F1',\n '#8B5CF6',\n '#A855F7',\n '#D946EF',\n '#EC4899',\n '#F43F5E',\n '#6B7280',\n ];\n @Output() colorChange = new EventEmitter<string>();\n\n value: string = '#000000';\n disabled = false;\n isDropdownOpen = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private elementRef: ElementRef,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const clickedInside = this.elementRef.nativeElement.contains(event.target);\n if (!clickedInside && this.isDropdownOpen) {\n this.isDropdownOpen = false;\n }\n }\n\n // Control value accessor methods\n writeValue(value: string): void {\n if (value) {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onColorChange(color: string): void {\n this.value = color;\n this.onChange(color);\n this.onTouched();\n }\n\n onInputColorChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(input.value);\n this.onTouched();\n this.colorChange.emit(input.value);\n }\n\n toggleDropdown(): void {\n if (this.disabled || this.readonly) return;\n this.isDropdownOpen = !this.isDropdownOpen;\n }\n\n selectPresetColor(color: string): void {\n this.onColorChange(color);\n this.colorChange.emit(color);\n this.isDropdownOpen = false;\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get inputClasses(): string {\n return this.showError ? ERROR_INPUT_CLASSES : BASE_INPUT_CLASSES;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n\n isValidHexColor(color: string): boolean {\n return /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(color);\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <div class=\"flex gap-2 items-center\">\n <!-- Color Input -->\n <div class=\"relative flex-1\">\n <input\n type=\"text\"\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInputColorChange($event)\"\n (blur)=\"onTouched()\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [class.bg-white]=\"!readonly\"\n [class.bg-gray-200]=\"readonly\"\n [class.cursor-not-allowed]=\"readonly\"\n [class]=\"inputClasses\"\n pattern=\"^#[0-9A-Fa-f]{6}$\"\n />\n\n <!-- Native Color Picker (Hidden) -->\n <input\n type=\"color\"\n class=\"absolute inset-0 opacity-0 cursor-pointer\"\n [disabled]=\"disabled || readonly\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onColorChange($event)\"\n />\n </div>\n\n <!-- Color Preview -->\n @if (showPreview) {\n <div class=\"flex items-center\">\n <div\n class=\"w-[37px] h-[37px] rounded-md border border-gray-300 cursor-pointer transition-all hover:scale-105\"\n [style.background-color]=\"value\"\n (click)=\"toggleDropdown()\"\n [class.cursor-not-allowed]=\"disabled || readonly\"\n [class.opacity-50]=\"disabled\"\n ></div>\n </div>\n }\n </div>\n\n <!-- Color Presets Dropdown -->\n @if (isDropdownOpen && !disabled && !readonly) {\n <div\n class=\"absolute z-50 mt-2 p-3 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg\"\n >\n <div class=\"grid grid-cols-5 gap-2 min-w-[200px]\">\n @for (color of presetColors; track color) {\n <button\n type=\"button\"\n class=\"w-8 h-8 rounded-md border-2 border-gray-300 hover:border-gray-400 transition-all hover:scale-110 focus:outline-none focus:ring-2 focus:ring-indigo-500\"\n [style.background-color]=\"color\"\n (click)=\"selectPresetColor(color)\"\n [attr.aria-label]=\"`Select color ${color}`\"\n ></button>\n }\n </div>\n\n <!-- Custom Color Input -->\n <div class=\"mt-3 pt-3 border-t border-gray-200 dark:border-gray-700\">\n <label class=\"text-xs text-gray-600 dark:text-gray-400 block mb-1\">Custom color:</label>\n <input\n type=\"color\"\n class=\"w-full h-8 rounded cursor-pointer\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onColorChange($event)\"\n />\n </div>\n </div>\n }\n </div>\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">Please enter a valid hex color (e.g., #FF5733)</div>\n }\n</div>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { BASE_INPUT_CLASSES, ERROR_INPUT_CLASSES } from '../../../constants/form-fields';\n\n@Component({\n selector: 'date-input',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './date-input.component.html',\n})\nexport class DateInputComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() type = 'date';\n @Input() includeTime = false;\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() min: string | null = null;\n @Input() max: string | null = null;\n @Input() fieldGroupClass: string = '';\n @Input() dateFormat: string = 'yyyy-MM-dd';\n\n value: any = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n if (value) {\n if (value instanceof Date) {\n this.value = this.formatDateForInput(value);\n } else if (typeof value === 'string') {\n this.value = value;\n } else {\n this.value = '';\n }\n } else {\n this.value = '';\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(value: any): void {\n this.value = value;\n const dateValue = value ? new Date(value) : null;\n this.onChange(dateValue);\n this.onTouched();\n }\n\n private formatDateForInput(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n\n if (this.includeTime) {\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n return `${year}-${month}-${day}T${hours}:${minutes}`;\n }\n\n return `${year}-${month}-${day}`;\n }\n\n private parseDateFromString(dateString: string): Date | null {\n if (!dateString) return null;\n const date = new Date(dateString);\n return isNaN(date.getTime()) ? null : date;\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidField'),\n );\n }\n\n get inputClasses(): string {\n return this.showError ? ERROR_INPUT_CLASSES : BASE_INPUT_CLASSES;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <input\n [type]=\"includeTime ? 'datetime-local' : type\"\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [min]=\"min\"\n [max]=\"max\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled\"\n [class]=\"inputClasses\"\n [readonly]=\"readonly\"\n />\n </div>\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, Input, Self, Optional, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'toggle-switch',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './toggle-switch.component.html',\n styleUrls: ['./toggle-switch.component.scss'],\n})\nexport class ToggleSwitchComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() required = false;\n @Input() disabled = false;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() fieldGroupClass: string = '';\n @Input() description = '';\n @Output() toggleClick = new EventEmitter<boolean>();\n\n value: boolean = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(@Self() @Optional() public ngControl: NgControl) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n // Control value accessor methods\n writeValue(value: any): void {\n this.value = value ?? false;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onToggle(): void {\n this.value = !this.value;\n this.onChange(this.value);\n this.onTouched();\n this.toggleClick.emit(this.value);\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get toggleSizeClasses(): string {\n switch (this.size) {\n case 'sm':\n return 'h-4 w-7';\n case 'lg':\n return 'h-7 w-14';\n default:\n return 'h-5 w-9';\n }\n }\n\n get toggleThumbSizeClasses(): string {\n switch (this.size) {\n case 'sm':\n return 'h-3 w-3';\n case 'lg':\n return 'h-6 w-6';\n default:\n return 'h-4 w-4';\n }\n }\n\n get toggleThumbTranslateClasses(): string {\n switch (this.size) {\n case 'sm':\n return 'translate-x-3';\n case 'lg':\n return 'translate-x-7';\n default:\n return 'translate-x-5';\n }\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <div class=\"flex items-center\">\n <button\n type=\"button\"\n role=\"switch\"\n [id]=\"inputId\"\n [name]=\"name\"\n [attr.aria-checked]=\"value\"\n [attr.aria-required]=\"required\"\n [disabled]=\"disabled\"\n [class]=\"\n 'toggle-switch ' +\n size +\n (value ? ' checked' : ' unchecked') +\n (disabled ? ' disabled' : '')\n \"\n (click)=\"onToggle()\"\n >\n <span\n [class]=\"\n 'toggle-thumb ' +\n size +\n (value ? ' checked' : ' unchecked') +\n (disabled ? ' disabled' : '')\n \"\n ></span>\n </button>\n\n @if (description) {\n <span class=\"ml-3 text-sm text-gray-500 dark:text-gray-400\">{{ description }}</span>\n }\n </div>\n\n <!-- Hidden checkbox for form submission and accessibility -->\n <input\n type=\"checkbox\"\n [id]=\"inputId + '-hidden'\"\n [name]=\"name\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n class=\"sr-only\"\n (change)=\"onToggle()\"\n />\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FileType } from '../../../enums/file-type.enum';\nimport { UploadedFile } from '../../../interfaces/uploaded-file.interface';\nimport { AppButtonComponent } from '../../buttons/button/button.component';\n\n@Component({\n selector: 'file-upload-preview',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule, AppButtonComponent],\n templateUrl: './file-upload-preview.component.html',\n styleUrls: ['./file-upload-preview.component.scss'],\n})\nexport class FileUploadPreviewComponent {\n @Input({ required: true }) file: UploadedFile = {} as UploadedFile;\n @Output() remove = new EventEmitter<UploadedFile>();\n\n removeFile(): void {\n this.remove.emit(this.file);\n }\n\n getFileType(file: UploadedFile): FileType {\n if (file.type.startsWith('image/')) return FileType.IMAGE;\n if (file.type === 'application/pdf') return FileType.PDF;\n if (\n file.type.includes('spreadsheet') ||\n file.type.includes('excel') ||\n file.extension === 'xlsx' ||\n file.extension === 'xls' ||\n file.extension === 'csv'\n ) {\n return FileType.EXCEL;\n }\n if (\n file.type.includes('word') ||\n file.type.includes('document') ||\n file.extension === 'docx' ||\n file.extension === 'doc'\n ) {\n return FileType.WORD;\n }\n if (file.type.startsWith('text/') || file.extension === 'txt') {\n return FileType.TEXT;\n }\n return FileType.DEFAULT;\n }\n\n getFileIcon(fileType: FileType): string {\n switch (fileType) {\n case FileType.IMAGE:\n return 'ri-image-line';\n case FileType.PDF:\n return 'ri-file-pdf-line';\n case FileType.EXCEL:\n return 'ri-file-excel-line';\n case FileType.WORD:\n return 'ri-file-word-line';\n case FileType.TEXT:\n return 'ri-file-text-line';\n default:\n return 'ri-file-line';\n }\n }\n\n getFileTypeIcon(file: UploadedFile): string {\n return this.getFileIcon(this.getFileType(file));\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n}\n","<div class=\"flex items-center justify-between p-3 bg-gray-50 rounded-lg border border-gray-200\">\n <div class=\"flex items-center space-x-3 flex-1 min-w-0\">\n <!-- File Preview/Icon -->\n <div class=\"flex-shrink-0\">\n @if (file.preview) {\n <img [src]=\"file.preview\" [alt]=\"file.name\" class=\"w-10 h-10 object-cover rounded-md\" />\n } @else {\n <div class=\"w-10 h-10 bg-gray-200 rounded-md flex items-center justify-center\">\n <i [class]=\"getFileTypeIcon(file) + ' text-gray-600 text-lg'\"></i>\n </div>\n }\n </div>\n\n <!-- File Info -->\n <div class=\"flex-1 min-w-0\">\n <p class=\"text-sm font-medium text-gray-900 truncate\">\n {{ file.name }}\n </p>\n <p class=\"text-xs text-gray-500\">\n @if (!!file.size) {\n {{ formatFileSize(file.size) }}\n }\n @if (file.extension) {\n • {{ file.extension.toUpperCase() }}\n }\n </p>\n </div>\n </div>\n\n <!-- Actions -->\n <div class=\"flex items-center space-x-2 ml-4\">\n <app-button\n icon=\"ri-delete-bin-line\"\n (clicked)=\"removeFile()\"\n variant=\"primary\"\n size=\"xs\"\n title=\"Eliminar archivo\"\n />\n </div>\n</div>\n","import { Component, Input, Self, Optional, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { FileUploadConfig } from '../../../interfaces/file-upload-config.interface';\nimport { UploadedFile } from '../../../interfaces/uploaded-file.interface';\nimport { FileType } from '../../../enums/file-type.enum';\nimport { FileUploadPreviewComponent } from '../file-upload-preview/file-upload-preview.component';\n\n@Component({\n selector: 'file-upload',\n standalone: true,\n imports: [\n FormsModule,\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n FileUploadPreviewComponent,\n ],\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class FileUploadComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() fieldGroupClass: string = '';\n @Input() config: FileUploadConfig = {};\n @Input() accept: string = '*/*';\n\n @Output() fileSelected = new EventEmitter<UploadedFile[]>();\n @Output() fileRemoved = new EventEmitter<UploadedFile>();\n @Output() validationError = new EventEmitter<string>();\n\n files: UploadedFile[] = [];\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n dragOver = false;\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: UploadedFile[] | null): void {\n this.files = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onFileSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files && input.files.length > 0) {\n this.handleFiles(Array.from(input.files));\n }\n input.value = '';\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = false;\n\n if (event.dataTransfer?.files && event.dataTransfer.files.length > 0) {\n this.handleFiles(Array.from(event.dataTransfer.files));\n }\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = true;\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = false;\n }\n\n private async handleFiles(fileList: File[]): Promise<void> {\n const newFiles: UploadedFile[] = [];\n\n for (const file of fileList) {\n const validationError = this.validateFile(file);\n if (validationError) {\n this.validationError.emit(validationError);\n continue;\n }\n\n const uploadedFile: UploadedFile = {\n file,\n name: file.name,\n size: file.size,\n type: file.type,\n extension: this.getFileExtension(file.name),\n };\n\n if (this.isImage(file)) {\n uploadedFile.preview = await this.generateImagePreview(file);\n }\n\n newFiles.push(uploadedFile);\n }\n\n if (this.config.multiple) {\n const maxFiles = this.config.maxFiles || 10;\n const totalFiles = [...this.files, ...newFiles].slice(0, maxFiles);\n this.files = totalFiles;\n } else {\n this.files = newFiles.slice(0, 1);\n }\n\n this.onChange(this.files);\n this.onTouched();\n this.fileSelected.emit(this.files);\n }\n\n private validateFile(file: File): string | null {\n if (this.config.maxFileSize && file.size > this.config.maxFileSize) {\n const maxSizeMB = this.config.maxFileSize / (1024 * 1024);\n return this.transloco.translate('fileUpload.sizeError', {\n fileName: file.name,\n maxSize: maxSizeMB.toFixed(2),\n });\n }\n\n if (this.config.allowedExtensions && this.config.allowedExtensions.length > 0) {\n const extension = this.getFileExtension(file.name);\n if (!this.config.allowedExtensions.includes(extension)) {\n return this.transloco.translate('fileUpload.extensionError', {\n fileName: file.name,\n extensions: this.config.allowedExtensions.join(', '),\n });\n }\n }\n\n return null;\n }\n\n private getFileExtension(filename: string): string {\n return filename.split('.').pop()?.toLowerCase() || '';\n }\n\n private isImage(file: File): boolean {\n return file.type.startsWith('image/');\n }\n\n private async generateImagePreview(file: File): Promise<string> {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n resolve(e.target?.result as string);\n };\n reader.readAsDataURL(file);\n });\n }\n\n removeFile(index: number): void {\n const removedFile = this.files[index];\n this.files.splice(index, 1);\n this.onChange(this.files);\n this.onTouched();\n this.fileRemoved.emit(removedFile);\n }\n\n getFileType(file: UploadedFile): FileType {\n if (file.type.startsWith('image/')) return FileType.IMAGE;\n if (file.type === 'application/pdf') return FileType.PDF;\n if (\n file.type.includes('spreadsheet') ||\n file.type.includes('excel') ||\n file.extension === 'xlsx' ||\n file.extension === 'xls' ||\n file.extension === 'csv'\n ) {\n return FileType.EXCEL;\n }\n if (\n file.type.includes('word') ||\n file.type.includes('document') ||\n file.extension === 'docx' ||\n file.extension === 'doc'\n ) {\n return FileType.WORD;\n }\n if (file.type.startsWith('text/') || file.extension === 'txt') {\n return FileType.TEXT;\n }\n return FileType.DEFAULT;\n }\n\n getFileIcon(fileType: FileType): string {\n switch (fileType) {\n case FileType.IMAGE:\n return 'ri-image-line';\n case FileType.PDF:\n return 'ri-file-pdf-line';\n case FileType.EXCEL:\n return 'ri-file-excel-line';\n case FileType.WORD:\n return 'ri-file-word-line';\n case FileType.TEXT:\n return 'ri-file-text-line';\n default:\n return 'ri-file-line';\n }\n }\n\n getFileTypeIcon(file: UploadedFile): string {\n return this.getFileIcon(this.getFileType(file));\n }\n\n triggerFileInput(): void {\n const inputElement = document.getElementById(this.inputId) as HTMLInputElement;\n if (inputElement) {\n inputElement.click();\n }\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidField'),\n );\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n\n get uploadAreaClasses(): string {\n const baseClasses =\n 'border-2 border-dashed rounded-lg p-6 text-center transition-colors cursor-pointer';\n\n if (this.disabled) {\n return `${baseClasses} border-gray-200 bg-gray-50 cursor-not-allowed`;\n }\n\n if (this.dragOver) {\n return `${baseClasses} border-blue-400 bg-blue-50`;\n }\n\n return `${baseClasses} border-gray-300 hover:border-gray-400 hover:bg-gray-50`;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <!-- Upload Area -->\n <div\n class=\"relative\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n >\n <div [class]=\"uploadAreaClasses\" (click)=\"!disabled && triggerFileInput()\">\n <input\n [id]=\"inputId\"\n [name]=\"name\"\n type=\"file\"\n [accept]=\"accept\"\n [multiple]=\"config.multiple\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (change)=\"onFileSelect($event)\"\n (blur)=\"onTouched()\"\n class=\"hidden\"\n />\n\n <div class=\"flex flex-col items-center space-y-2\">\n <i class=\"ri-upload-cloud-2-line text-3xl text-gray-400\"></i>\n <div class=\"text-sm text-gray-600\">\n <p class=\"font-medium\">\n @if (config.multiple) {\n {{ 'fileUpload.dropMultiple' | transloco }}\n } @else {\n {{ 'fileUpload.dropSingle' | transloco }}\n }\n </p>\n <p class=\"text-xs text-gray-500 mt-1\">\n @if (config.allowedExtensions && config.allowedExtensions.length > 0) {\n {{ 'fileUpload.allowedExtensions' | transloco }}\n {{ config.allowedExtensions.join(', ') }}\n }\n @if (config.maxFileSize) {\n • {{ 'fileUpload.maxSize' | transloco }} {{ formatFileSize(config.maxFileSize) }}\n }\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Files Preview -->\n @if (files.length > 0) {\n <div class=\"flex flex-col gap-2 mt-4\">\n @for (file of files; track file; let i = $index) {\n <file-upload-preview [file]=\"file\" (remove)=\"removeFile(i)\" />\n }\n </div>\n }\n\n <!-- Validation Error -->\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n\n <!-- File Type Legend -->\n @if (files.length === 0) {\n <div class=\"mt-3 flex flex-wrap gap-4 text-xs text-gray-500\">\n <div class=\"flex items-center space-x-1\">\n <i class=\"ri-image-line text-blue-500\"></i>\n <span>{{ 'fileUpload.fileTypeImages' | transloco }}</span>\n </div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"ri-file-pdf-line text-red-500\"></i>\n <span>PDF</span>\n </div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"ri-file-excel-line text-green-500\"></i>\n <span>{{ 'fileUpload.fileTypeExcel' | transloco }}</span>\n </div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"ri-file-word-line text-blue-600\"></i>\n <span>{{ 'fileUpload.fileTypeWord' | transloco }}</span>\n </div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"ri-file-text-line text-gray-500\"></i>\n <span>{{ 'fileUpload.fileTypeText' | transloco }}</span>\n </div>\n <div class=\"flex items-center space-x-1\">\n <i class=\"ri-file-line text-gray-400\"></i>\n <span>{{ 'fileUpload.fileTypeOther' | transloco }}</span>\n </div>\n </div>\n }\n</div>\n","import {\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n SimpleChanges,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NgControl, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Subject, Observable, of } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n switchMap,\n takeUntil,\n catchError,\n map,\n} from 'rxjs/operators';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\n\nexport interface AsyncSelectConfig<T = any> {\n load: (params?: { search?: string; parentId?: number }) => Observable<T>;\n map: (response: T) => SelectOption[];\n}\n\n@Component({\n selector: 'async-select',\n standalone: true,\n imports: [CommonModule, FormsModule, NgSelectModule],\n templateUrl: './async-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AsyncSelectComponent),\n multi: true,\n },\n ],\n})\nexport class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\n @Input() config?: AsyncSelectConfig<any>;\n @Input() items: SelectOption[] = [];\n @Input() parentId?: number | null;\n @Input() label = '';\n @Input() placeholder = 'Seleccione...';\n @Input() name = '';\n @Input() required = false;\n @Input() multiple = false;\n @Input() clearable = true;\n @Input() searchable = true;\n @Input() loading = false;\n @Input() virtualScroll = false;\n @Input() notFoundText = 'No se encontraron resultados';\n @Input() bindLabel = 'label';\n @Input() bindValue = 'value';\n\n value: any = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n displayItems: SelectOption[] = [];\n loadingSignal = signal(false);\n private searchTerm$ = new Subject<string>();\n private destroy$ = new Subject<void>();\n private injector = inject(Injector);\n private _ngControl: NgControl | null = null;\n\n constructor() {}\n\n private get ngControl(): NgControl | null {\n if (!this._ngControl) {\n this._ngControl = this.injector.get(NgControl, null);\n }\n return this._ngControl;\n }\n\n ngOnInit() {\n this.setupSearch();\n if (this.config) {\n this.loadAndMap();\n } else {\n this.displayItems = this.items;\n this.searchMode();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['parentId'] && !changes['parentId'].firstChange) {\n this.handleParentIdChange();\n }\n if (changes['items'] && !changes['items'].firstChange && !this.config) {\n this.displayItems = this.items;\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private setupSearch() {\n this.searchTerm$\n .pipe(\n debounceTime(400),\n distinctUntilChanged(),\n switchMap((term) => {\n if (this.config) {\n this.loadingSignal.set(true);\n return this.fetchData({ search: term });\n }\n return of(this.displayItems);\n }),\n takeUntil(this.destroy$),\n )\n .subscribe((options) => {\n this.displayItems = options;\n this.loadingSignal.set(false);\n });\n }\n\n private searchMode() {\n this.searchTerm$\n .pipe(\n debounceTime(400),\n distinctUntilChanged(),\n switchMap((term) => {\n this.loadingSignal.set(true);\n setTimeout(() => this.loadingSignal.set(false), 150);\n return of(\n this.items.filter((item) => item.label.toLowerCase().includes(term.toLowerCase())),\n );\n }),\n takeUntil(this.destroy$),\n )\n .subscribe((options) => {\n this.displayItems = options;\n });\n }\n\n private loadAndMap(params?: { search?: string; parentId?: number }) {\n if (!this.config) return;\n this.loadingSignal.set(true);\n this.fetchData(params)\n .pipe(takeUntil(this.destroy$))\n .subscribe((options) => {\n this.displayItems = options;\n this.loadingSignal.set(false);\n });\n }\n\n private fetchData(params?: { search?: string; parentId?: number }): Observable<SelectOption[]> {\n if (!this.config) return of([]);\n\n const mergedParams = { ...params };\n if (this.parentId != null && mergedParams.parentId == null) {\n mergedParams.parentId = this.parentId;\n }\n\n return this.config.load(mergedParams).pipe(\n map((res) => this.config!.map(res)),\n catchError(() => of([])),\n );\n }\n\n private handleParentIdChange() {\n this.value = this.multiple ? [] : null;\n this.onChange(this.value);\n\n if (this.parentId != null && this.config) {\n this.loadAndMap({ parentId: this.parentId });\n } else if (this.config) {\n this.displayItems = [];\n this.loadingSignal.set(false);\n }\n }\n\n onSearch(event: any) {\n const term = event?.term || '';\n this.searchTerm$.next(term);\n }\n\n onSelectChange(value: any) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get typeahead$(): Subject<string> {\n return this.searchTerm$;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n return control.invalid ? control.dirty || control.touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n const errorKey = Object.keys(this.ngControl.errors)[0];\n return 'Campo inválido';\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.loading = isDisabled;\n }\n}\n","<div class=\"w-full\">\n @if (label) {\n <label class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n @if (required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n\n <ng-select\n [items]=\"displayItems\"\n [multiple]=\"multiple\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading || loadingSignal()\"\n [virtualScroll]=\"virtualScroll\"\n [notFoundText]=\"notFoundText\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [ngModel]=\"value\"\n [typeahead]=\"typeahead$\"\n [closeOnSelect]=\"!multiple\"\n (ngModelChange)=\"onSelectChange($event)\"\n (blur)=\"onTouched()\"\n (search)=\"onSearch($event)\"\n />\n\n @if (showError) {\n <div class=\"text-red-500 text-xs mt-1\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, signal, ViewEncapsulation, WritableSignal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { AppButtonComponent } from '../../buttons/button/button.component';\nimport { FormInputComponent } from '../../forms/form-input/form-input.component';\nimport { AppModalComponent } from '../../modals/modal/modal.component';\nimport { ChangePasswordFormService } from '../../../services/change-password-form.service';\nimport { MustMatchValidator } from '../../../validators/must-match.validator';\nimport { CustomerService } from '../../../services/customer.service';\nimport { AdminService } from '../../../services/admin.service';\nimport { ToastService } from '../../../services/toast.service';\n\n@Component({\n selector: 'change-password-form',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n AppButtonComponent,\n FormInputComponent,\n AppModalComponent,\n ],\n providers: [AdminService, CustomerService],\n templateUrl: './change-password-form.component.html',\n styleUrls: ['./change-password-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChangePasswordFormComponent {\n changePasswordForm: FormGroup;\n loading: WritableSignal<boolean> = signal(false);\n\n constructor(\n private fb: FormBuilder,\n private changePasswordFormService: ChangePasswordFormService,\n private customerService: CustomerService,\n private adminService: AdminService,\n private toastService: ToastService,\n private transloco: TranslocoService,\n ) {\n this.changePasswordForm = this.fb.group(\n {\n password: ['', [Validators.required, Validators.minLength(6)]],\n confirm_password: ['', [Validators.required, Validators.minLength(6)]],\n },\n {\n validators: MustMatchValidator('password', 'confirm_password'),\n },\n );\n }\n\n get isOpen() {\n return this.changePasswordFormService.modalIsOpen;\n }\n\n get resourceId() {\n return this.changePasswordFormService.resourceId;\n }\n\n onCloseModal(): void {\n this.changePasswordForm.reset();\n this.changePasswordFormService.close();\n }\n\n onConfirmDelete(): void {\n this.loading.set(true);\n\n const service = this.changePasswordFormService.isAdminMode()\n ? this.adminService\n : this.customerService;\n\n const isAdmin = this.changePasswordFormService.isAdminMode();\n const successKey = isAdmin ? 'changePassword.adminSuccess' : 'changePassword.customerSuccess';\n const errorKey = isAdmin ? 'changePassword.adminError' : 'changePassword.customerError';\n\n service.updateOne(this.resourceId(), this.changePasswordForm.value).subscribe({\n next: () => {\n this.toastService.show(this.transloco.translate(successKey), 'success');\n this.changePasswordForm.reset();\n this.changePasswordFormService.close();\n this.loading.set(false);\n },\n error: (error: any) => {\n console.error('Error al actualizar contraseña:', error);\n this.toastService.show(this.transloco.translate(errorKey), 'error');\n this.loading.set(false);\n },\n });\n }\n}\n","@if (isOpen()) {\n <app-modal\n [title]=\"'changePassword.title' | transloco\"\n [isOpen]=\"isOpen\"\n (closeModal)=\"onCloseModal()\"\n >\n <form\n [formGroup]=\"changePasswordForm\"\n method=\"POST\"\n class=\"flex flex-col gap-4\"\n (ngSubmit)=\"onConfirmDelete()\"\n >\n <form-input\n [label]=\"'changePassword.newPasswordLabel' | transloco\"\n [placeholder]=\"'changePassword.newPasswordPlaceholder' | transloco\"\n name=\"password\"\n type=\"password\"\n class=\"flex-1\"\n [required]=\"true\"\n [autocomplete]=\"false\"\n formControlName=\"password\"\n />\n\n <form-input\n [label]=\"'changePassword.confirmPasswordLabel' | transloco\"\n [placeholder]=\"'changePassword.confirmPasswordPlaceholder' | transloco\"\n name=\"confirm_password\"\n type=\"password\"\n class=\"flex-1\"\n [required]=\"true\"\n [autocomplete]=\"false\"\n formControlName=\"confirm_password\"\n />\n\n <div class=\"flex space-x-3\">\n <app-button\n variant=\"terciary\"\n [text]=\"'changePassword.cancel' | transloco\"\n (click)=\"onCloseModal()\"\n size=\"sm\"\n />\n\n <app-button\n [disabled]=\"loading() || changePasswordForm.invalid || changePasswordForm.pristine\"\n [loading]=\"loading()\"\n type=\"submit\"\n variant=\"primary\"\n [text]=\"'changePassword.save' | transloco\"\n [loadingText]=\"'changePassword.saving' | transloco\"\n size=\"sm\"\n />\n </div>\n </form>\n </app-modal>\n}\n","import { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ControlValueAccessor, Validator } from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { AdminService } from '../../../services/admin.service';\nimport { Admin } from '../../../interfaces/admins/admin.interface';\n\n@Component({\n selector: 'admin-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './admin-select.component.html',\n styleUrls: ['./admin-select.component.scss'],\n})\nexport class AdminSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'Equipo de trabajo';\n @Input() placeholder: string = 'Selecciona un equipo de trabajo';\n @Input() name: string = 'admin_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() adminChange = new EventEmitter<number | null>();\n\n admins: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private adminService: AdminService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.loadAdmins();\n }\n }\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadAdmins() {\n this.loading.set(true);\n this.adminService\n .fetchAdmins()\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: ({ data: { admins } }: { data: { admins: Admin[] } }) => {\n this.admins.set(\n admins?.map((admin) => ({\n value: admin.id,\n label: `${admin.first_name} ${admin.last_name} - ${admin.email}`,\n })) || [],\n );\n this.loading.set(false);\n },\n error: () => {\n this.admins.set([]);\n this.loading.set(false);\n },\n });\n }\n\n // In admin-select.component.ts\n onAdminSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n // Update the local value\n this.value = value;\n\n // Update the form control if it exists\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n // Emit the change event\n this.adminChange.emit(value);\n }\n\n // ControlValueAccessor methods\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n // Helper method to check if control is invalid\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'country_id'\"\n [class]=\"customClass\"\n [options]=\"admins()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onAdminSelected($event)\"\n/>\n","import {\n Component,\n OnInit,\n OnDestroy,\n forwardRef,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n NG_VALIDATORS,\n Validator,\n AbstractControl,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CitiesService } from '../../../services/cities.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { CitiesResponse } from '../../../interfaces/cities/cities-response.interface';\nimport { formatCitiesResponseToSelect } from '../../../helpers/format-cities-response-to-select.helper';\n\n@Component({\n selector: 'city-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './city-select.component.html',\n styleUrls: ['./city-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CitySelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CitySelectComponent),\n multi: true,\n },\n ],\n})\nexport class CitySelectComponent\n implements OnInit, OnDestroy, OnChanges, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Ciudad';\n @Input() name: string = 'city_id';\n @Input() placeholder: string = 'Selecciona una ciudad';\n @Input() required: boolean = false;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() stateId: number | null = null;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() cityChange = new EventEmitter<number | null>();\n\n cities: WritableSignal<SelectOption[]> = signal([]);\n loading: boolean = false;\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(private citiesService: CitiesService) {}\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnInit() {\n this.loadCities();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['stateId'] && !changes['stateId'].firstChange) {\n this.value = null;\n this.onChange(null);\n this.cityChange.emit(null);\n\n if (this.stateId) {\n this.loadCities();\n } else {\n this.cities.set([]);\n }\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadCities() {\n this.loading = true;\n this.citiesService\n .fetchCities({ stateId: this.stateId ?? undefined })\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (response: CitiesResponse) => {\n this.cities.set(formatCitiesResponseToSelect(response));\n this.loading = false;\n },\n error: () => {\n this.cities.set([]);\n this.loading = false;\n },\n });\n }\n\n onCitySelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.cityChange.emit(value);\n }\n\n // ControlValueAccessor methods\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // Validator method\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n\n get isDisabled(): boolean {\n return this.disabled || this.readonly || !this.stateId || this.loading;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [class]=\"customClass\"\n [required]=\"required\"\n [options]=\"cities()\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onCitySelected($event)\"\n/>\n","import { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ControlValueAccessor, Validator } from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { CountryService } from '../../../services/country.service';\n\n@Component({\n selector: 'country-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './country-select.component.html',\n styleUrls: ['./country-select.component.scss'],\n})\nexport class CountrySelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'País';\n @Input() placeholder: string = 'Selecciona un país';\n @Input() name: string = 'country_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() countryChange = new EventEmitter<number | null>();\n\n countries: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private countryService: CountryService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.loadCountries();\n }\n }\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadCountries() {\n this.loading.set(true);\n this.countryService\n .fetchCountries()\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: ({ data: { countries } }: { data: { countries: any[] } }) => {\n this.countries.set(\n countries?.map((country) => ({\n value: country.id,\n label: country.name,\n })) || [],\n );\n this.loading.set(false);\n },\n error: () => {\n this.countries.set([]);\n this.loading.set(false);\n },\n });\n }\n\n // In country-select.component.ts\n onCountrySelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n // Update the local value\n this.value = value;\n\n // Update the form control if it exists\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n // Emit the change event\n this.countryChange.emit(value);\n }\n\n // ControlValueAccessor methods\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n // Helper method to check if control is invalid\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'country_id'\"\n [class]=\"customClass\"\n [options]=\"countries()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onCountrySelected($event)\"\n></form-select>\n","import {\n Component,\n OnInit,\n OnDestroy,\n forwardRef,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n NG_VALIDATORS,\n Validator,\n AbstractControl,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { StatesService } from '../../../services/states.service';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\n\n@Component({\n selector: 'state-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './state-select.component.html',\n styleUrls: ['./state-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StateSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => StateSelectComponent),\n multi: true,\n },\n ],\n})\nexport class StateSelectComponent\n implements OnInit, OnDestroy, OnChanges, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Departamento';\n @Input() name: string = 'state_id';\n @Input() placeholder: string = 'Selecciona un departamento';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() countryId: number | null = null;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() stateChange = new EventEmitter<number | null>();\n\n states: WritableSignal<SelectOption[]> = signal([]);\n loading: boolean = false;\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(private statesService: StatesService) {}\n\n ngOnInit() {\n this.loadStates();\n }\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['countryId'] && !changes['countryId'].firstChange) {\n this.value = null;\n this.onChange(null);\n this.stateChange.emit(null);\n\n if (this.countryId) {\n this.loadStates();\n } else {\n this.states.set([]);\n }\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadStates() {\n this.loading = true;\n this.statesService\n .fetchStates(1, undefined, this.countryId!)\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: ({ data: { states } }: { data: { states: any[] } }) => {\n this.states.set(states?.map(({ id, name }) => ({ value: id, label: name })) || []);\n this.loading = false;\n },\n error: () => {\n this.states.set([]);\n this.loading = false;\n },\n });\n }\n\n onStateSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.stateChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n\n get isDisabled(): boolean {\n return this.readonly || !this.countryId || this.loading;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'state_id'\"\n [class]=\"customClass\"\n [options]=\"states()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onStateSelected($event)\"\n></form-select>\n","import { Component, Input, EventEmitter, Output, forwardRef } from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n FormControl,\n FormsModule,\n} from '@angular/forms';\nimport {\n AsyncSelectComponent,\n AsyncSelectConfig,\n} from '../../../components/forms/async-select/async-select.component';\nimport { CustomerService } from '../../../services/customer.service';\nimport { Customer } from '../../../interfaces/customers/customer.interface';\nimport { getCustomerFullname } from '../../../helpers/get-formatted-customer.helper';\n\n@Component({\n selector: 'customer-select',\n standalone: true,\n imports: [AsyncSelectComponent, FormsModule],\n templateUrl: './customer-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CustomerSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CustomerSelectComponent),\n multi: true,\n },\n ],\n})\nexport class CustomerSelectComponent implements ControlValueAccessor, Validator {\n @Input() label: string = 'Cliente';\n @Input() placeholder: string = 'Selecciona un cliente';\n @Input() name: string = 'customer_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() multiple = false;\n\n @Output() customerChange = new EventEmitter<number | null>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n config: AsyncSelectConfig = {\n load: (params) => this.customerService.fetchCustomers(1, params?.search || '', 50),\n map: (res) =>\n res.data.customers?.map((customer: Customer) => ({\n value: customer.id,\n label: `${getCustomerFullname(customer)} - ${customer.email}`.trim(),\n })) || [],\n };\n\n constructor(private customerService: CustomerService) {}\n\n onInternalChange(value: any) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.customerChange.emit(value);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n}\n","<async-select\n [config]=\"config\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'customer_id'\"\n [required]=\"required\"\n [multiple]=\"multiple\"\n [clearable]=\"true\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onInternalChange($event)\"\n/>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { PerformanceService } from '../../../services/performance.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Performance } from '../../../interfaces/performances/performance.interface';\n\n@Component({\n selector: 'performance-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './performance-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PerformanceSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PerformanceSelectComponent),\n multi: true,\n },\n ],\n})\nexport class PerformanceSelectComponent\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Función';\n @Input() placeholder: string = 'Selecciona una función';\n @Input() name: string = 'performance_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() performanceChange = new EventEmitter<number | null>();\n\n performances: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private performanceService: PerformanceService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.performanceService.loadPerformances({ search: this.searchTerm });\n\n this.performanceService.performances$\n .pipe(takeUntil(this.destroy$))\n .subscribe((performances: Performance[]) => {\n this.performances.set(\n performances?.map((p) => ({\n value: p.id,\n label: `${p.show?.title || `Show #${p.show_id}`} - ${new Date(p.start_time).toLocaleDateString()}`,\n })) || [],\n );\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.performanceService.loadPerformances({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onPerformanceSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.performanceChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'performance_id'\"\n [class]=\"customClass\"\n [options]=\"performances()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onPerformanceSelected($event)\"\n></form-select>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n forwardRef,\n signal,\n WritableSignal,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { PerformanceService } from '../../../services/performance.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Performance } from '../../../interfaces/performances/performance.interface';\n\n@Component({\n selector: 'performance-multi-select',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './performance-multi-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PerformanceMultiSelectComponent),\n multi: true,\n },\n ],\n})\nexport class PerformanceMultiSelectComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() label: string = 'Funciones';\n @Input() placeholder: string = 'Buscar funciones...';\n\n allPerformances: WritableSignal<SelectOption[]> = signal([]);\n filteredPerformances: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(true);\n\n selectedIds: number[] = [];\n searchTerm: string = '';\n\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private performanceService: PerformanceService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.performanceService.loadPerformances({});\n\n this.performanceService.performances$\n .pipe(takeUntil(this.destroy$))\n .subscribe((performances: Performance[]) => {\n this.allPerformances.set(\n performances?.map((p) => ({\n value: p.id,\n label: `${p.show?.title || `Show #${p.show_id}`} - ${new Date(p.start_time).toLocaleString()}`,\n })) || [],\n );\n this.applyFilter();\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.performanceService.loadPerformances({ search: this.searchTerm });\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private applyFilter() {\n if (this.searchTerm) {\n const term = this.searchTerm.toLowerCase();\n this.filteredPerformances.set(\n this.allPerformances().filter((p) => p.label.toLowerCase().includes(term)),\n );\n } else {\n this.filteredPerformances.set([...this.allPerformances()]);\n }\n }\n\n onSearchChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchSubject.next(value);\n }\n\n isSelected(id: number): boolean {\n return this.selectedIds.includes(id);\n }\n\n togglePerformance(id: number) {\n const index = this.selectedIds.indexOf(id);\n if (index > -1) {\n this.selectedIds = this.selectedIds.filter((v) => v !== id);\n } else {\n this.selectedIds = [...this.selectedIds, id];\n }\n this.onChange(this.selectedIds);\n this.onTouched();\n }\n\n removePerformance(id: number) {\n this.togglePerformance(id);\n }\n\n getPerformanceLabel(id: number): string {\n return this.allPerformances().find((p) => p.value === id)?.label || '';\n }\n\n writeValue(value: number[] | null): void {\n this.selectedIds = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"w-full\">\n @if (label) {\n <label class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n </label>\n }\n\n @if (selectedIds.length > 0) {\n <div class=\"flex flex-wrap gap-1 mb-2\">\n @for (id of selectedIds; track id) {\n <span\n class=\"inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800\"\n >\n {{ getPerformanceLabel(id) }}\n <button\n type=\"button\"\n class=\"ml-1 hover:text-green-600 leading-none\"\n (click)=\"removePerformance(id)\"\n >\n &times;\n </button>\n </span>\n }\n </div>\n }\n\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-green-500 focus:border-transparent\"\n (input)=\"onSearchChange($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center gap-2 mt-2 text-sm text-gray-500\">\n <div\n class=\"w-4 h-4 border-2 border-gray-200 border-t-green-500 rounded-full animate-spin\"\n ></div>\n Cargando funciones...\n </div>\n }\n\n @if (!loading() && filteredPerformances().length > 0) {\n <div\n class=\"mt-1 max-h-48 overflow-y-auto border border-gray-200 rounded-md divide-y divide-gray-100\"\n >\n @for (p of filteredPerformances(); track p.value) {\n <label class=\"flex items-center gap-2 px-3 py-2 hover:bg-gray-50 cursor-pointer text-sm\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(p.value)\"\n (change)=\"togglePerformance(p.value)\"\n class=\"w-4 h-4 accent-green-500 cursor-pointer\"\n />\n <span class=\"text-gray-700 select-none\">{{ p.label }}</span>\n </label>\n }\n </div>\n }\n\n @if (!loading() && filteredPerformances().length === 0) {\n <p class=\"text-sm text-gray-500 mt-1\">No se encontraron funciones</p>\n }\n</div>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { ProductService } from '../../../services/product.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Product } from '../../../interfaces/products/product.interface';\n\n@Component({\n selector: 'product-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './product-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProductSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ProductSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ProductSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'Producto';\n @Input() placeholder: string = 'Selecciona un producto';\n @Input() name: string = 'product_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() productChange = new EventEmitter<number | null>();\n\n products: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private productService: ProductService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.productService.loadProducts({ search: this.searchTerm });\n\n this.productService.products$\n .pipe(takeUntil(this.destroy$))\n .subscribe((products: Product[]) => {\n this.products.set(\n products?.map((product) => ({\n value: product.id,\n label: product.name,\n })) || [],\n );\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.productService.loadProducts({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onProductSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.productChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'product_id'\"\n [class]=\"customClass\"\n [options]=\"products()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onProductSelected($event)\"\n></form-select>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n signal,\n WritableSignal,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ProductService } from '../../../services/product.service';\nimport { Product } from '../../../interfaces/products/product.interface';\n\ninterface ProductOption {\n value: number;\n label: string;\n imageUrl: string | null;\n}\n\n@Component({\n selector: 'product-multi-select',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './product-multi-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProductMultiSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ProductMultiSelectComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() label: string = 'Productos';\n @Input() placeholder: string = 'Buscar productos...';\n @Input() set initialSelection(ids: number[] | null) {\n this.selectedIds = ids ?? [];\n }\n @Output() selectionChange = new EventEmitter<number[]>();\n\n allProducts: WritableSignal<ProductOption[]> = signal([]);\n filteredProducts: WritableSignal<ProductOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(true);\n\n selectedIds: number[] = [];\n searchTerm: string = '';\n\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private productService: ProductService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.productService.loadProducts({ search: this.searchTerm });\n\n this.productService.products$\n .pipe(takeUntil(this.destroy$))\n .subscribe((products: Product[]) => {\n this.allProducts.set(\n products?.map((p) => ({\n value: p.id,\n label: p.name,\n imageUrl: p.images?.[0]?.full_url ?? null,\n })) || [],\n );\n this.applyFilter();\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.productService.loadProducts({ search: this.searchTerm });\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private applyFilter() {\n if (this.searchTerm) {\n const term = this.searchTerm.toLowerCase();\n this.filteredProducts.set(\n this.allProducts().filter((p) => p.label.toLowerCase().includes(term)),\n );\n } else {\n this.filteredProducts.set([...this.allProducts()]);\n }\n }\n\n onSearchChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchSubject.next(value);\n }\n\n isSelected(id: number): boolean {\n return this.selectedIds.includes(id);\n }\n\n toggleProduct(id: number) {\n const index = this.selectedIds.indexOf(id);\n if (index > -1) {\n this.selectedIds = this.selectedIds.filter((v) => v !== id);\n } else {\n this.selectedIds = [...this.selectedIds, id];\n }\n this.onChange(this.selectedIds);\n this.onTouched();\n this.selectionChange.emit(this.selectedIds);\n }\n\n removeProduct(id: number) {\n this.toggleProduct(id);\n }\n\n getProductOption(id: number): ProductOption | undefined {\n return this.allProducts().find((p) => p.value === id);\n }\n\n writeValue(value: number[] | null): void {\n this.selectedIds = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"w-full\">\n @if (label) {\n <label class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n </label>\n }\n\n @if (selectedIds.length > 0) {\n <div class=\"flex flex-wrap gap-1 mb-2\">\n @for (id of selectedIds; track id) {\n @let product = getProductOption(id);\n <span\n class=\"inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800\"\n >\n @if (product?.imageUrl) {\n <img [src]=\"product!.imageUrl\" alt=\"\" class=\"w-4 h-4 rounded-full object-cover\" />\n }\n {{ product?.label ?? id }}\n <button\n type=\"button\"\n class=\"ml-1 hover:text-green-600 leading-none\"\n (click)=\"removeProduct(id)\"\n >\n &times;\n </button>\n </span>\n }\n </div>\n }\n\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-green-500 focus:border-transparent\"\n (input)=\"onSearchChange($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center gap-2 mt-2 text-sm text-gray-500\">\n <div\n class=\"w-4 h-4 border-2 border-gray-200 border-t-green-500 rounded-full animate-spin\"\n ></div>\n Cargando productos...\n </div>\n }\n\n @if (!loading() && filteredProducts().length > 0) {\n <div\n class=\"mt-1 max-h-48 overflow-y-auto border border-gray-200 rounded-md divide-y divide-gray-100\"\n >\n @for (p of filteredProducts(); track p.value) {\n <label class=\"flex items-center gap-2 px-3 py-2 hover:bg-gray-50 cursor-pointer text-sm\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(p.value)\"\n (change)=\"toggleProduct(p.value)\"\n class=\"w-4 h-4 accent-green-500 cursor-pointer\"\n />\n @if (p.imageUrl) {\n <img [src]=\"p.imageUrl\" alt=\"\" class=\"w-6 h-6 rounded object-cover\" />\n } @else {\n <div class=\"w-6 h-6 rounded bg-gray-200 flex items-center justify-center\">\n <i class=\"ri-image-line text-gray-400 text-xs\"></i>\n </div>\n }\n <span class=\"text-gray-700 select-none\">{{ p.label }}</span>\n </label>\n }\n </div>\n }\n\n @if (!loading() && filteredProducts().length === 0) {\n <p class=\"text-sm text-gray-500 mt-1\">No se encontraron productos</p>\n }\n</div>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { ShowService } from '../../../services/show.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Show } from '../../../interfaces/shows/show.interface';\n\n@Component({\n selector: 'show-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './show-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ShowSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ShowSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ShowSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'Función';\n @Input() placeholder: string = 'Selecciona una función';\n @Input() name: string = 'show_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() showChange = new EventEmitter<number | null>();\n\n shows: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private showService: ShowService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.showService.loadShows({ search: this.searchTerm });\n\n this.showService.shows$.pipe(takeUntil(this.destroy$)).subscribe((shows: Show[]) => {\n const formatted = shows?.map((show) => ({ value: show.id, label: show.title })) || [];\n this.shows.set(formatted);\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.showService.loadShows({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onShowSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.showChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'show_id'\"\n [class]=\"customClass\"\n [options]=\"shows()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onShowSelected($event)\"\n></form-select>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n forwardRef,\n signal,\n WritableSignal,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ShowService } from '../../../services/show.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Show } from '../../../interfaces/shows/show.interface';\n\n@Component({\n selector: 'show-multi-select',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './show-multi-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ShowMultiSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ShowMultiSelectComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() label: string = 'Funciones';\n @Input() placeholder: string = 'Buscar funciones...';\n\n allShows: WritableSignal<SelectOption[]> = signal([]);\n filteredShows: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(true);\n\n selectedIds: number[] = [];\n searchTerm: string = '';\n\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private showService: ShowService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.showService.loadShows({});\n\n this.showService.shows$.pipe(takeUntil(this.destroy$)).subscribe((shows: Show[]) => {\n this.allShows.set(\n shows?.map((show) => ({\n value: show.id,\n label: show.title,\n })) || [],\n );\n this.applyFilter();\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.showService.loadShows({ search: this.searchTerm });\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private applyFilter() {\n if (this.searchTerm) {\n const term = this.searchTerm.toLowerCase();\n this.filteredShows.set(this.allShows().filter((s) => s.label.toLowerCase().includes(term)));\n } else {\n this.filteredShows.set([...this.allShows()]);\n }\n }\n\n onSearchChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchSubject.next(value);\n }\n\n isSelected(id: number): boolean {\n return this.selectedIds.includes(id);\n }\n\n toggleShow(id: number) {\n const index = this.selectedIds.indexOf(id);\n if (index > -1) {\n this.selectedIds = this.selectedIds.filter((v) => v !== id);\n } else {\n this.selectedIds = [...this.selectedIds, id];\n }\n this.onChange(this.selectedIds);\n this.onTouched();\n }\n\n removeShow(id: number) {\n this.toggleShow(id);\n }\n\n getShowLabel(id: number): string {\n return this.allShows().find((s) => s.value === id)?.label || '';\n }\n\n writeValue(value: number[] | null): void {\n this.selectedIds = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"w-full\">\n @if (label) {\n <label class=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\">\n {{ label }}\n </label>\n }\n\n @if (selectedIds.length > 0) {\n <div class=\"flex flex-wrap gap-1 mb-2\">\n @for (id of selectedIds; track id) {\n <span\n class=\"inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800\"\n >\n {{ getShowLabel(id) }}\n <button\n type=\"button\"\n class=\"ml-1 hover:text-blue-600 leading-none\"\n (click)=\"removeShow(id)\"\n >\n &times;\n </button>\n </span>\n }\n </div>\n }\n\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n (input)=\"onSearchChange($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center gap-2 mt-2 text-sm text-gray-500\">\n <div\n class=\"w-4 h-4 border-2 border-gray-200 border-t-blue-500 rounded-full animate-spin\"\n ></div>\n Cargando funciones...\n </div>\n }\n\n @if (!loading() && filteredShows().length > 0) {\n <div\n class=\"mt-1 max-h-48 overflow-y-auto border border-gray-200 rounded-md divide-y divide-gray-100\"\n >\n @for (show of filteredShows(); track show.value) {\n <label class=\"flex items-center gap-2 px-3 py-2 hover:bg-gray-50 cursor-pointer text-sm\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(show.value)\"\n (change)=\"toggleShow(show.value)\"\n class=\"w-4 h-4 accent-blue-500 cursor-pointer\"\n />\n <span class=\"text-gray-700 select-none\">{{ show.label }}</span>\n </label>\n }\n </div>\n }\n\n @if (!loading() && filteredShows().length === 0) {\n <p class=\"text-sm text-gray-500 mt-1\">No se encontraron funciones</p>\n }\n</div>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { PriceZoneService } from '../../../services/price-zone.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { PriceZone } from '../../../interfaces/price-zones/price-zone.interface';\n\n@Component({\n selector: 'price-zone-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './price-zone-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PriceZoneSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PriceZoneSelectComponent),\n multi: true,\n },\n ],\n})\nexport class PriceZoneSelectComponent\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Categoría';\n @Input() placeholder: string = 'Selecciona una categoría';\n @Input() name: string = 'price_zone_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() priceZoneChange = new EventEmitter<number | null>();\n\n priceZones: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private priceZoneService: PriceZoneService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.priceZoneService.loadPriceZones({ search: this.searchTerm });\n\n this.priceZoneService.priceZones$\n .pipe(takeUntil(this.destroy$))\n .subscribe((priceZones: PriceZone[]) => {\n this.priceZones.set(\n priceZones?.map((pz) => ({\n value: pz.id,\n label: pz.name,\n })) || [],\n );\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.priceZoneService.loadPriceZones({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onPriceZoneSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.priceZoneChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'price_zone_id'\"\n [class]=\"customClass\"\n [options]=\"priceZones()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onPriceZoneSelected($event)\"\n></form-select>\n","import {\n Component,\n effect,\n ElementRef,\n Inject,\n Input,\n PLATFORM_ID,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { AppAlertComponent } from '../../feedback/alert/alert.component';\nimport { PerformanceAvailableDay } from '../../../interfaces';\nimport { PerformanceService, ToastService } from '../../../services';\n\n@Component({\n selector: 'day-selector-grid',\n standalone: true,\n imports: [CommonModule, AppAlertComponent],\n templateUrl: './day-selector-grid.component.html',\n})\nexport class DaySelectorGridComponent {\n @Input() displayMode: 'grid' | 'carousel' = 'grid';\n loadingData: WritableSignal<boolean> = signal(true);\n days: WritableSignal<PerformanceAvailableDay[]> = signal([]);\n @ViewChild('carouselTrack') carouselTrack?: ElementRef<HTMLElement>;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n protected performanceService: PerformanceService,\n protected listEventService: PerformancesListEventsService,\n protected toastService: ToastService,\n ) {\n effect(() => {\n this.listEventService.filteredShowId();\n if (isPlatformBrowser(this.platformId)) {\n this.days.set([]);\n this.listEventService.setSelectedDay(null);\n this.loadData();\n }\n });\n }\n\n private loadData(): void {\n this.loadingData.set(true);\n const showId = this.listEventService.filteredShowId() ?? undefined;\n\n this.performanceService.fetchAvailableDays({ show_id: showId }).subscribe({\n next: (response) => {\n const days = response?.data?.days ?? [];\n this.days.set(days);\n if (days.length > 0 && !this.listEventService.selectedDay()) {\n this.listEventService.setSelectedDay(days[0]);\n }\n this.loadingData.set(false);\n },\n error: () => {\n this.toastService.show('Error al cargar los datos de la función.', 'error');\n this.loadingData.set(false);\n },\n });\n }\n\n isDayActive(day: PerformanceAvailableDay): boolean {\n return day.date === this.listEventService.selectedDay()?.date;\n }\n\n onToggle(day: PerformanceAvailableDay): void {\n if (this.isDayActive(day)) return;\n this.listEventService.setSelectedPerformance(null);\n this.listEventService.setSelectedDay(day);\n }\n\n scrollCarousel(direction: 1 | -1): void {\n const track = this.carouselTrack?.nativeElement;\n if (!track) return;\n const item = track.children[0] as HTMLElement | undefined;\n const itemWidth = item?.offsetWidth ?? 112;\n track.scrollBy({ left: direction * (itemWidth + 8), behavior: 'smooth' });\n }\n}\n","@if (loadingData()) {\n <div class=\"mt-3 grid grid-cols-4 gap-2 sm:grid-cols-10\">\n @for (i of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; track $index) {\n <div\n class=\"h-26 border border-neutral-200 dark:border-white/10 bg-neutral-100 dark:bg-white/[0.03] rounded-xl animate-pulse w-full\"\n ></div>\n }\n </div>\n}\n\n@if (!loadingData() && days().length < 1) {\n <app-alert\n type=\"error\"\n text=\"No se encontraron funciones disponibles\"\n size=\"md\"\n [closeable]=\"false\"\n />\n}\n\n@if (days().length > 0) {\n <p class=\"text-[11px] font-semibold tracking-[0.25em] text-neutral-500 uppercase\">\n Selecciona un día\n </p>\n}\n\n@if (displayMode === 'carousel' && days().length > 0) {\n <div class=\"relative mt-3\">\n <button\n type=\"button\"\n (click)=\"scrollCarousel(-1)\"\n class=\"absolute left-0 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-8 h-8 rounded-full bg-white dark:bg-neutral-800 border border-neutral-200 dark:border-white/10 shadow-sm hover:bg-neutral-100 dark:hover:bg-neutral-700 transition cursor-pointer\"\n aria-label=\"Anterior\"\n >\n <i class=\"ri-arrow-left-s-line text-lg\"></i>\n </button>\n <div\n #carouselTrack\n class=\"flex overflow-x-auto snap-x snap-mandatory gap-2 px-10 py-1 scroll-smooth [&::-webkit-scrollbar]:hidden\"\n >\n @for (item of days(); track $index) {\n <button\n (click)=\"onToggle(item)\"\n class=\"snap-start flex-shrink-0 w-28 flex flex-col items-center cursor-pointer rounded-xl border border-neutral-200 dark:border-white/10 bg-neutral-50 dark:bg-white/[0.03] px-2 py-3 transition hover:border-neutral-300 dark:hover:border-white/25 hover:bg-neutral-200 dark:hover:bg-white/[0.06] text-neutral-800 dark:text-white\"\n [class.glow-red]=\"isDayActive(item)\"\n [class.border-red-500]=\"isDayActive(item)\"\n [class.bg-red-500]=\"isDayActive(item)\"\n [class.text-white]=\"isDayActive(item)\"\n [class.hover:bg-red-600]=\"isDayActive(item)\"\n [class.dark:hover:text-white]=\"isDayActive(item)\"\n >\n <span\n class=\"text-[10px] font-semibold tracking-widest text-neutral-500 dark:text-white/80\"\n [class.text-white]=\"isDayActive(item)\"\n >\n {{ item.date | date: 'EEE' | uppercase }}\n </span>\n <span class=\"my-0.5 text-2xl font-extrabold leading-none\">\n {{ item.date | date: 'dd' }}\n </span>\n <span\n class=\"text-[10px] font-medium tracking-widest text-neutral-500 dark:text-white/80\"\n [class.text-white]=\"isDayActive(item)\"\n >\n {{ item.date | date: 'MMM' }}\n </span>\n <span\n class=\"mt-2 rounded-full bg-neutral-200 dark:bg-black/25 px-1.5 py-px text-[9px] font-semibold\"\n [class.text-red-500]=\"isDayActive(item)\"\n [class.dark:text-white]=\"isDayActive(item)\"\n >\n {{ item.count | number: '1.0-2' }}\n </span>\n </button>\n }\n </div>\n <button\n type=\"button\"\n (click)=\"scrollCarousel(1)\"\n class=\"absolute right-0 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-8 h-8 rounded-full bg-white dark:bg-neutral-800 border border-neutral-200 dark:border-white/10 shadow-sm hover:bg-neutral-100 dark:hover:bg-neutral-700 transition cursor-pointer\"\n aria-label=\"Siguiente\"\n >\n <i class=\"ri-arrow-right-s-line text-lg\"></i>\n </button>\n </div>\n} @else {\n <div class=\"mt-3 grid grid-cols-4 gap-2 sm:grid-cols-10\">\n @for (item of days(); track $index) {\n <button\n (click)=\"onToggle(item)\"\n class=\"flex flex-col items-center cursor-pointer rounded-xl border border-neutral-200 dark:border-white/10 bg-neutral-50 dark:bg-white/[0.03] px-2 py-3 transition hover:border-neutral-300 dark:hover:border-white/25 hover:bg-neutral-200 dark:hover:bg-white/[0.06] text-neutral-800 dark:text-white\"\n [class.glow-red]=\"isDayActive(item)\"\n [class.border-red-500]=\"isDayActive(item)\"\n [class.bg-red-500]=\"isDayActive(item)\"\n [class.text-white]=\"isDayActive(item)\"\n [class.hover:bg-red-600]=\"isDayActive(item)\"\n [class.dark:hover:text-white]=\"isDayActive(item)\"\n >\n <span\n class=\"text-[10px] font-semibold tracking-widest text-neutral-500 dark:text-white/80\"\n [class.text-white]=\"isDayActive(item)\"\n >\n {{ item.date | date: 'EEE' | uppercase }}\n </span>\n <span class=\"my-0.5 text-2xl font-extrabold leading-none\">\n {{ item.date | date: 'dd' }}\n </span>\n <span\n class=\"text-[10px] font-medium tracking-widest text-neutral-500 dark:text-white/80\"\n [class.text-white]=\"isDayActive(item)\"\n >\n {{ item.date | date: 'MMM' }}\n </span>\n <span\n class=\"mt-2 rounded-full bg-neutral-200 dark:bg-black/25 px-1.5 py-px text-[9px] font-semibold\"\n [class.text-red-500]=\"isDayActive(item)\"\n [class.dark:text-white]=\"isDayActive(item)\"\n >\n {{ item.count | number: '1.0-2' }}\n </span>\n </button>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { AppLinkButtonComponent } from '../../buttons/link-button/link-button.component';\nimport { DailyPerformanceItem } from '../../../interfaces';\n\n@Component({\n selector: 'performance-card',\n standalone: true,\n imports: [CommonModule, AppLinkButtonComponent],\n templateUrl: './performance-card.component.html',\n})\nexport class PerformanceCardComponent {\n @Input({ required: true }) card!: DailyPerformanceItem;\n\n constructor(protected listEventService: PerformancesListEventsService) {}\n\n onSelect(): void {\n this.listEventService.setSelectedPerformance(this.card);\n }\n\n isSelected(): boolean {\n return this.listEventService.selectedPerformance()?.id === this.card.id;\n }\n}\n","<div\n class=\"flex flex-col sm:flex-row items-center justify-between gap-4 rounded-2xl border px-5 py-4 transition\"\n [class.border-neutral-200]=\"!isSelected()\"\n [class.dark:border-neutral-700]=\"!isSelected()\"\n [class.bg-neutral-50]=\"!isSelected()\"\n [class.dark:bg-neutral-900]=\"!isSelected()\"\n [class.hover:border-neutral-300]=\"!isSelected()\"\n [class.dark:hover:border-neutral-600]=\"!isSelected()\"\n [class.border-brand]=\"isSelected()\"\n [class.bg-red-500/[0.08]]=\"isSelected()\"\n [class.glow-red]=\"isSelected()\"\n>\n <div class=\"flex rounded-sm overflow-hidden w-full h-auto min-h-20 sm:h-20 sm:w-20\">\n @if (card.show.images && card.show.images.length > 0) {\n <img\n [src]=\"card.show.images[0].full_url\"\n class=\"object-contain object-center max-h-full max-w-full mx-auto\"\n />\n } @else {\n <span class=\"flex bg-gray-200 h-20 w-full animate-pulse\"></span>\n }\n </div>\n\n <div class=\"flex flex-col flex-1 w-full\">\n <div\n class=\"text-2xl font-extrabold leading-none\"\n [class.text-neutral-800]=\"!isSelected()\"\n [class.dark:text-neutral-200]=\"!isSelected()\"\n [class.text-neutral-900]=\"isSelected()\"\n [class.dark:text-neutral-100]=\"isSelected()\"\n >\n {{ card.show.title }}\n </div>\n\n <div class=\"leading-none\">\n <span class=\"text-sm text-neutral-500 dark:text-neutral-400\">\n {{ card.start_time | date: `EEEE` | titlecase }}\n {{ card.start_time | date: `dd 'de' MMMM,` }}\n </span>\n\n <span class=\"font-extrabold text-lg text-neutral-800 dark:text-neutral-200\">\n {{ card.start_time | date: `hh:mm` }}\n </span>\n\n <span\n class=\"font-extrabold text-sm\"\n [class.text-neutral-800]=\"!isSelected()\"\n [class.dark:text-white]=\"!isSelected()\"\n [class.text-red-500]=\"isSelected()\"\n >\n {{ card.start_time | date: 'a' }}\n </span>\n </div>\n\n <div class=\"text-sm text-neutral-500 dark:text-neutral-400 leading-none\">\n Desde\n <span class=\"text-neutral-600 dark:text-neutral-300 font-semibold\">\n ${{ card.zone_price_cheapest | number: '1.0-2' }}\n </span>\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2 w-full sm:w-[200px]\">\n <app-link-button\n [route]=\"`/admin/performances/${card.id}/reservation`\"\n text=\"Comprar entradas\"\n icon=\"ri-coupon-line\"\n variant=\"primary\"\n size=\"xs\"\n />\n </div>\n</div>\n","import { Component, effect, Inject, PLATFORM_ID, signal, WritableSignal } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { PerformanceCardComponent } from '../performance-card/performance-card.component';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { DailyPerformanceItem } from '../../../interfaces';\nimport { PerformanceService, ToastService } from '../../../services';\n\n@Component({\n selector: 'performance-card-list',\n standalone: true,\n imports: [PerformanceCardComponent, CommonModule],\n templateUrl: './performance-card-list.component.html',\n styleUrls: [],\n})\nexport class PerformanceCardListComponent {\n loadingData: WritableSignal<boolean> = signal(true);\n performances: WritableSignal<DailyPerformanceItem[]> = signal([]);\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n protected performanceService: PerformanceService,\n protected listEventService: PerformancesListEventsService,\n protected toastService: ToastService,\n ) {\n effect(() => {\n const date = this.listEventService.selectedDayDate();\n if (date) {\n this.loadData();\n }\n });\n\n effect(() => {\n this.listEventService.filteredShowId();\n this.performances.set([]);\n const date = this.listEventService.selectedDayDate();\n if (date) {\n this.loadData();\n }\n });\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.loadData();\n }\n }\n\n private loadData(): void {\n this.loadingData.set(true);\n const date = this.listEventService.selectedDayDate();\n const showId = this.listEventService.filteredShowId() ?? undefined;\n if (!date) {\n this.loadingData.set(false);\n return;\n }\n\n this.performanceService.fetchDailyPerformances({ date, show_id: showId }).subscribe({\n next: (response) => {\n this.performances.set(response?.data?.performances ?? []);\n this.loadingData.set(false);\n },\n error: () => {\n this.toastService.show('Error al cargar los datos de la función.', 'error');\n this.loadingData.set(false);\n },\n });\n }\n\n get selectedDayDate(): string | null {\n return this.listEventService.selectedDay()?.date ?? null;\n }\n}\n","@if (selectedDayDate) {\n <p class=\"text-[11px] font-bold tracking-[0.25em] text-neutral-500 uppercase\">\n <span>Funciones disponibles:</span>\n <span class=\"text-neutral-500 dark:text-neutral-400\">\n el {{ selectedDayDate | date: \"EEEE d 'de' MMMM\" }}\n </span>\n </p>\n}\n\n<div class=\"mt-4 flex flex-col gap-2 w-full\">\n @if (loadingData()) {\n @for (i of [1, 2]; track $index) {\n <div\n class=\"h-40 border border-neutral-200 dark:border-white/10 bg-neutral-100 dark:bg-white/[0.03] rounded-xl animate-pulse w-full\"\n ></div>\n }\n }\n\n @for (card of performances(); track $index) {\n <performance-card [card]=\"card\" />\n }\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'performance-stepper',\n standalone: true,\n templateUrl: './performance-stepper.component.html',\n})\nexport class PerformanceStepperComponent {\n @Input({ required: true }) stepLabel!: string;\n @Input({ required: true }) title!: string;\n @Input({ required: true }) highlight!: string;\n}\n","<div class=\"flex items-center gap-2 text-[11px] font-semibold tracking-[0.25em] text-red-500\">\n <span class=\"h-px w-6 bg-red-500\"></span>\n {{ stepLabel }}\n</div>\n\n<h1 class=\"mt-3 text-5xl font-black leading-none tracking-tight sm:text-6xl\">\n <span class=\"text-neutral-800 dark:text-white\">{{ title }} </span\n ><span class=\"text-red-500\">{{ highlight }}</span>\n</h1>\n","import { Component, Inject, PLATFORM_ID, signal, WritableSignal } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { Router } from '@angular/router';\nimport { AppButtonComponent } from '../../buttons/button/button.component';\nimport { Show } from '../../../interfaces';\nimport { ShowService, ToastService } from '../../../services';\n\n@Component({\n selector: 'shows-filter',\n standalone: true,\n imports: [AppButtonComponent, CommonModule],\n templateUrl: './shows-filter.component.html',\n styleUrls: [],\n})\nexport class ShowsFilterComponent {\n loadingData: WritableSignal<boolean> = signal(true);\n shows: WritableSignal<Show[]> = signal([]);\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n protected showService: ShowService,\n protected listEventService: PerformancesListEventsService,\n protected toastService: ToastService,\n private router: Router,\n ) {}\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.loadData();\n }\n }\n\n private loadData(): void {\n this.loadingData.set(true);\n\n this.showService.fetchAvailableShows({}).subscribe({\n next: (response) => {\n this.shows.set(response?.data?.shows ?? []);\n this.loadingData.set(false);\n },\n error: () => {\n this.toastService.show('Error al cargar shows del filtro.', 'error');\n this.loadingData.set(false);\n },\n });\n }\n\n isActive(showId: number): boolean {\n return this.listEventService.filteredShowId() === showId;\n }\n\n onFilter(show: Show): void {\n const isCurrentlyActive = this.isActive(show.id);\n if (isCurrentlyActive) {\n this.listEventService.setFilteredShowId(null);\n this.router.navigate([], {\n queryParams: { show_id: null },\n queryParamsHandling: 'merge',\n });\n } else {\n this.listEventService.setFilteredShowId(show.id);\n this.router.navigate([], {\n queryParams: { show_id: show.id },\n queryParamsHandling: 'merge',\n });\n }\n this.listEventService.setSelectedDay(null);\n this.listEventService.setSelectedPerformance(null);\n }\n}\n","<div class=\"flex flex-col gap-2 w-full\">\n @if (shows().length > 0) {\n <p class=\"text-[11px] font-semibold tracking-[0.25em] text-neutral-500 uppercase\">\n Filtrar por evento\n </p>\n }\n\n @if (loadingData()) {\n @for (i of [1, 2, 3]; track $index) {\n <div\n class=\"h-15 border border-neutral-200 dark:border-gray-500/10 bg-neutral-100 dark:bg-gray-500/[0.03] rounded-xl animate-pulse w-full\"\n ></div>\n }\n }\n\n @for (show of shows(); track $index) {\n <div\n class=\"flex items-center justify-between border-gray-500/10 bg-gray-500/[0.02] rounded-xl border px-3 py-3 w-full\"\n [class.glow-red]=\"isActive(show.id)\"\n >\n <div class=\"flex items-center gap-3\">\n <span class=\"h-10 w-10 rounded-sm overflow-hidden\">\n @if (show.images.length > 0) {\n <img\n [src]=\"show.images[0].full_url\"\n class=\"object-contain object-center max-h-full max-w-full mx-auto\"\n />\n } @else {\n <span class=\"flex bg-gray-200 h-full w-full animate-pulse\"></span>\n }\n </span>\n\n <div>\n <div class=\"text-sm font-semibold text-gray-500\">{{ show.title }}</div>\n @if (show.performances_quantity && show.performances_quantity > 0) {\n <div class=\"text-[11px] text-neutral-500\">\n {{ show.performances_quantity }} funciones\n </div>\n }\n </div>\n </div>\n\n <div class=\"text-sm font-bold text-gray-500\">\n @if (isActive(show.id)) {\n <app-button\n variant=\"terciary\"\n icon=\"ri-close-line\"\n size=\"xs\"\n (clicked)=\"onFilter(show)\"\n />\n } @else {\n <app-button variant=\"primary\" text=\"Filtrar\" size=\"xs\" (clicked)=\"onFilter(show)\" />\n }\n </div>\n </div>\n }\n</div>\n","import { Component, Input } from '@angular/core';\nimport { PriceZoneItem } from '../../../interfaces/price-zones/price-zone-item.interface';\n\n@Component({\n selector: 'zone-price-item',\n standalone: true,\n templateUrl: './zone-price-item.component.html',\n})\nexport class ZonePriceItemComponent {\n @Input({ required: true }) zone!: PriceZoneItem;\n}\n","<div\n class=\"flex items-center justify-between rounded-xl border border-white/10 bg-white/[0.02] px-4 py-3\"\n>\n <div class=\"flex items-center gap-3\">\n <span class=\"h-3 w-3 rounded-sm {{ zone.colorClass }}\"></span>\n <div>\n <div class=\"text-sm font-semibold text-white\">{{ zone.name }}</div>\n <div class=\"text-[11px] text-neutral-500\">{{ zone.seatsAvailable }} sillas disponibles</div>\n </div>\n </div>\n <div class=\"text-sm font-bold text-white\">{{ zone.price }}</div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ZonePriceItemComponent } from '../zone-price-item/zone-price-item.component';\nimport { PriceZoneItem } from '../../../interfaces/price-zones/price-zone-item.interface';\n\n@Component({\n selector: 'zone-price-list',\n standalone: true,\n imports: [ZonePriceItemComponent],\n templateUrl: './zone-price-list.component.html',\n})\nexport class ZonePriceListComponent {\n @Input({ required: true }) zones!: PriceZoneItem[];\n}\n","<p class=\"text-[11px] font-semibold tracking-[0.25em] text-neutral-400\">ZONAS Y PRECIOS</p>\n\n<div class=\"mt-4 flex flex-col gap-2 w-full\">\n @for (zone of zones; track $index) {\n <zone-price-item [zone]=\"zone\" />\n }\n</div>\n","// Config\nexport * from './lib/config/index';\n\n// Constants\nexport * from './lib/constants/index';\nexport * from './lib/constants/api-routes/index';\n\n// Enums\nexport * from './lib/enums/index';\n\n// Types\nexport * from './lib/types/index';\n\n// Interfaces\nexport * from './lib/interfaces/index';\n\n// Helpers\nexport * from './lib/helpers/index';\n\n// Validators\nexport * from './lib/validators/index';\n\n// Services\nexport * from './lib/services/index';\n\n// Interceptors\nexport * from './lib/interceptors/index';\n\n// Components - Buttons\nexport * from './lib/components/buttons/button/button.component';\nexport * from './lib/components/buttons/link-button/link-button.component';\n\n// Components - Feedback\nexport * from './lib/components/feedback/alert/alert.component';\nexport * from './lib/components/feedback/loading-modal/loading-modal.component';\nexport * from './lib/components/feedback/delete-confirmation/delete-confirmation.component';\n\n// Components - Modals\nexport * from './lib/components/modals/modal/modal.component';\n\n// Components - Data Display\nexport * from './lib/components/data-display/audit-information/audit-information.component';\nexport * from './lib/components/data-display/dynamic-table/dynamic-table.component';\n\n// Components - Navigation\nexport * from './lib/components/navigation/language-switcher/language-switcher.component';\n\n// Components - Forms\nexport * from './lib/components/forms/form-input/form-input.component';\nexport * from './lib/components/forms/form-select/form-select.component';\nexport * from './lib/components/forms/form-textarea/form-textarea.component';\nexport * from './lib/components/forms/form-editor/form-editor.component';\nexport * from './lib/components/forms/color-picker/color-picker.component';\nexport * from './lib/components/forms/date-input/date-input.component';\nexport * from './lib/components/forms/toggle-switch/toggle-switch.component';\nexport * from './lib/components/forms/file-upload/file-upload.component';\nexport * from './lib/components/forms/file-upload-preview/file-upload-preview.component';\nexport * from './lib/components/forms/async-select/async-select.component';\nexport * from './lib/components/forms/change-password-form/change-password-form.component';\n\n// Components - Select Integrations\nexport * from './lib/components/select-integrations/admin-select/admin-select.component';\nexport * from './lib/components/select-integrations/city-select/city-select.component';\nexport * from './lib/components/select-integrations/country-select/country-select.component';\nexport * from './lib/components/select-integrations/state-select/state-select.component';\nexport * from './lib/components/select-integrations/customer-select/customer-select.component';\nexport * from './lib/components/select-integrations/performance-select/performance-select.component';\nexport * from './lib/components/select-integrations/performance-multi-select/performance-multi-select.component';\nexport * from './lib/components/select-integrations/product-select/product-select.component';\nexport * from './lib/components/select-integrations/product-multi-select/product-multi-select.component';\nexport * from './lib/components/select-integrations/show-select/show-select.component';\nexport * from './lib/components/select-integrations/show-multi-select/show-multi-select.component';\nexport * from './lib/components/select-integrations/price-zone-select/price-zone-select.component';\n\n// Performance selection\nexport * from './lib/components/performances-selection/day-selector-grid/day-selector-grid.component';\nexport * from './lib/components/performances-selection/performance-card/performance-card.component';\nexport * from './lib/components/performances-selection/performance-card-list/performance-card-list.component';\nexport * from './lib/components/performances-selection/performance-stepper/performance-stepper.component';\nexport * from './lib/components/performances-selection/shows-filter/shows-filter.component';\nexport * from './lib/components/performances-selection/zone-price-item/zone-price-item.component';\nexport * from './lib/components/performances-selection/zone-price-list/zone-price-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ApiService","i1.PriceZoneEventService","i1.LoadingModalService","i1","i2.DeleteConfirmationService","i3","i2","i2.ChangePasswordFormService","i3.CustomerService","i4.AdminService","i5.ToastService","i6","i1.AdminService","i1.CitiesService","i1.CountryService","i1.StatesService","i1.CustomerService","i1.PerformanceService","i1.ProductService","i1.ShowService","i1.PriceZoneService","i2.PerformancesListEventsService","i1.ToastService","i1.PerformancesListEventsService"],"mappings":"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"}
1
+ {"version":3,"file":"tickera-angular-components.mjs","sources":["../../../projects/tickera-angular-components/src/lib/i18n/transloco-loader.ts","../../../projects/tickera-angular-components/src/lib/i18n/language.utils.ts","../../../projects/tickera-angular-components/src/lib/config/tickera-components.config.ts","../../../projects/tickera-angular-components/src/lib/constants/alerts.ts","../../../projects/tickera-angular-components/src/lib/constants/buttons.ts","../../../projects/tickera-angular-components/src/lib/constants/form-error-messages.ts","../../../projects/tickera-angular-components/src/lib/constants/form-fields.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/admin-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/cities-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/countries-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/states-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/performances-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/products-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/shows-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/customers-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/price-zones-api.routes.ts","../../../projects/tickera-angular-components/src/lib/constants/api-routes/venues-api.routes.ts","../../../projects/tickera-angular-components/src/lib/enums/file-type.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/coupons/coupon-applicability.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/coupons/coupon-discount-type.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/corporate-bonds/corporate-bond-status.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/performances/performance-status.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/performances/performance-ticket-status.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/room-maps/room-map-element-orientation.enum.ts","../../../projects/tickera-angular-components/src/lib/enums/room-maps/room-map-element-type.enum.ts","../../../projects/tickera-angular-components/src/lib/types/orders/order-item-type.enum.ts","../../../projects/tickera-angular-components/src/lib/types/orders/order-status.enum.ts","../../../projects/tickera-angular-components/src/lib/helpers/get-formatted-customer.helper.ts","../../../projects/tickera-angular-components/src/lib/helpers/parse-json-to-form-data.ts","../../../projects/tickera-angular-components/src/lib/helpers/transform-image-to-file.helper.ts","../../../projects/tickera-angular-components/src/lib/helpers/format-cities-response-to-select.helper.ts","../../../projects/tickera-angular-components/src/lib/validators/date-validators.validator.ts","../../../projects/tickera-angular-components/src/lib/validators/must-match.validator.ts","../../../projects/tickera-angular-components/src/lib/services/api.service.ts","../../../projects/tickera-angular-components/src/lib/services/toast.service.ts","../../../projects/tickera-angular-components/src/lib/services/loading-modal.service.ts","../../../projects/tickera-angular-components/src/lib/services/delete-confirmation.service.ts","../../../projects/tickera-angular-components/src/lib/services/change-password-form.service.ts","../../../projects/tickera-angular-components/src/lib/services/date.service.ts","../../../projects/tickera-angular-components/src/lib/services/admin.service.ts","../../../projects/tickera-angular-components/src/lib/services/cities.service.ts","../../../projects/tickera-angular-components/src/lib/services/country.service.ts","../../../projects/tickera-angular-components/src/lib/services/states.service.ts","../../../projects/tickera-angular-components/src/lib/services/performance.service.ts","../../../projects/tickera-angular-components/src/lib/services/performances-list-events.service.ts","../../../projects/tickera-angular-components/src/lib/services/product.service.ts","../../../projects/tickera-angular-components/src/lib/services/show.service.ts","../../../projects/tickera-angular-components/src/lib/services/customer.service.ts","../../../projects/tickera-angular-components/src/lib/services/price-zone.service.ts","../../../projects/tickera-angular-components/src/lib/services/price-zone-event.service.ts","../../../projects/tickera-angular-components/src/lib/services/price-zone-form-modal.service.ts","../../../projects/tickera-angular-components/src/lib/interceptors/auth.interceptor.ts","../../../projects/tickera-angular-components/src/lib/components/buttons/app-button/app-button.component.ts","../../../projects/tickera-angular-components/src/lib/components/buttons/app-button/app-button.component.html","../../../projects/tickera-angular-components/src/lib/components/buttons/app-link-button/app-link-button.component.ts","../../../projects/tickera-angular-components/src/lib/components/buttons/app-link-button/app-link-button.component.html","../../../projects/tickera-angular-components/src/lib/components/feedback/alert/alert.component.ts","../../../projects/tickera-angular-components/src/lib/components/feedback/alert/alert.component.html","../../../projects/tickera-angular-components/src/lib/components/modals/modal/modal.component.ts","../../../projects/tickera-angular-components/src/lib/components/modals/modal/modal.component.html","../../../projects/tickera-angular-components/src/lib/components/feedback/loading-modal/loading-modal.component.ts","../../../projects/tickera-angular-components/src/lib/components/feedback/loading-modal/loading-modal.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-input/form-input.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-input/form-input.component.html","../../../projects/tickera-angular-components/src/lib/components/feedback/delete-confirmation/delete-confirmation.component.ts","../../../projects/tickera-angular-components/src/lib/components/feedback/delete-confirmation/delete-confirmation.component.html","../../../projects/tickera-angular-components/src/lib/components/data-display/audit-information/audit-information.component.ts","../../../projects/tickera-angular-components/src/lib/components/data-display/audit-information/audit-information.component.html","../../../projects/tickera-angular-components/src/lib/components/data-display/dynamic-table/dynamic-table.component.ts","../../../projects/tickera-angular-components/src/lib/components/data-display/dynamic-table/dynamic-table.component.html","../../../projects/tickera-angular-components/src/lib/components/navigation/language-switcher/language-switcher.component.ts","../../../projects/tickera-angular-components/src/lib/components/navigation/language-switcher/language-switcher.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-select/form-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-select/form-select.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-textarea/form-textarea.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-textarea/form-textarea.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/form-editor/form-editor.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/form-editor/form-editor.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/color-picker/color-picker.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/color-picker/color-picker.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/date-input/date-input.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/date-input/date-input.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/toggle-switch/toggle-switch.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/toggle-switch/toggle-switch.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload-preview/file-upload-preview.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload-preview/file-upload-preview.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload/file-upload.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/file-upload/file-upload.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/async-select/async-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/async-select/async-select.component.html","../../../projects/tickera-angular-components/src/lib/components/forms/change-password-form/change-password-form.component.ts","../../../projects/tickera-angular-components/src/lib/components/forms/change-password-form/change-password-form.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/admin-select/admin-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/admin-select/admin-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/city-select/city-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/city-select/city-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/country-select/country-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/country-select/country-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/state-select/state-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/state-select/state-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/customer-select/customer-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/customer-select/customer-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-select/performance-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-select/performance-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-multi-select/performance-multi-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/performance-multi-select/performance-multi-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-select/product-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-select/product-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-multi-select/product-multi-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/product-multi-select/product-multi-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-select/show-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-select/show-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-multi-select/show-multi-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/show-multi-select/show-multi-select.component.html","../../../projects/tickera-angular-components/src/lib/components/select-integrations/price-zone-select/price-zone-select.component.ts","../../../projects/tickera-angular-components/src/lib/components/select-integrations/price-zone-select/price-zone-select.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/day-selector-grid/day-selector-grid.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/day-selector-grid/day-selector-grid.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card/performance-card.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card/performance-card.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card-list/performance-card-list.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-card-list/performance-card-list.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-stepper/performance-stepper.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/performance-stepper/performance-stepper.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/shows-filter/shows-filter.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/shows-filter/shows-filter.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-item/zone-price-item.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-item/zone-price-item.component.html","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-list/zone-price-list.component.ts","../../../projects/tickera-angular-components/src/lib/components/performances-selection/zone-price-list/zone-price-list.component.html","../../../projects/tickera-angular-components/src/public-api.ts","../../../projects/tickera-angular-components/src/tickera-angular-components.ts"],"sourcesContent":["import { TranslocoLoader } from '@jsverse/transloco';\nimport { Observable, from } from 'rxjs';\n\nimport es from './es.json';\nimport en from './en.json';\n\nconst translations: Record<string, Record<string, unknown>> = {\n es,\n en,\n};\n\nexport class TickeraTranslocoLoader implements TranslocoLoader {\n getTranslation(lang: string): Observable<Record<string, unknown>> {\n const translation = translations[lang] || translations['es'];\n return from(Promise.resolve(translation));\n }\n}\n","const STORAGE_KEY = 'tickera_lang';\nconst DEFAULT_LANG = 'es';\nconst AVAILABLE_LANGS = ['es', 'en'];\n\nexport function getStoredLanguage(): string {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored && AVAILABLE_LANGS.includes(stored)) {\n return stored;\n }\n } catch {\n // localStorage not available\n }\n return '';\n}\n\nexport function setStoredLanguage(lang: string): void {\n try {\n localStorage.setItem(STORAGE_KEY, lang);\n } catch {\n // localStorage not available\n }\n}\n\nexport function getBrowserLanguage(): string {\n const nav = typeof navigator !== 'undefined' ? navigator : null;\n if (!nav) return DEFAULT_LANG;\n\n // Check navigator.language and navigator.languages\n const browserLangs = nav.languages || [nav.language];\n\n for (const lang of browserLangs) {\n if (!lang) continue;\n\n // Exact match (e.g., \"es\", \"en\")\n const shortLang = lang.split('-')[0].toLowerCase();\n if (AVAILABLE_LANGS.includes(shortLang)) {\n return shortLang;\n }\n }\n\n return DEFAULT_LANG;\n}\n\nexport function resolveLanguage(): string {\n // 1. Check localStorage first\n const stored = getStoredLanguage();\n if (stored) return stored;\n\n // 2. Detect from browser\n return getBrowserLanguage();\n}\n","import { InjectionToken, EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideTransloco, TranslocoConfig } from '@jsverse/transloco';\nimport { TickeraTranslocoLoader } from '../i18n/transloco-loader';\nimport { resolveLanguage, setStoredLanguage } from '../i18n/language.utils';\n\nexport interface TickeraComponentsConfig {\n apiUrl: string;\n accessTokenKey?: string;\n defaultLang?: string;\n availableLangs?: string[];\n}\n\nexport const TICKERA_COMPONENTS_CONFIG = new InjectionToken<TickeraComponentsConfig>(\n 'TICKERA_COMPONENTS_CONFIG',\n);\n\nexport function provideTickeraComponents(config: TickeraComponentsConfig): EnvironmentProviders {\n const defaultLang = config.defaultLang || 'es';\n const availableLangs = config.availableLangs || ['es', 'en'];\n const detectedLang = resolveLanguage();\n\n return makeEnvironmentProviders([\n { provide: TICKERA_COMPONENTS_CONFIG, useValue: config },\n ...provideTransloco({\n config: {\n defaultLang: detectedLang,\n availableLangs,\n reRenderOnLangChange: true,\n fallbackLang: defaultLang,\n } as TranslocoConfig,\n loader: TickeraTranslocoLoader,\n }),\n ]);\n}\n","export const ALERT_ICONS = {\n success: 'ri-check-line',\n error: 'ri-error-warning-line',\n warning: 'ri-alert-line',\n info: 'ri-info-line',\n};\n","export const BUTTON_VARIANT_CLASSES: Record<string, string> = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n tertiary: 'btn-tertiary',\n success: 'btn-success',\n transparent: 'btn-transparent',\n};\n\nexport const BASE_BUTTON_CLASSES = 'btn';\n\nexport const BUTTON_SIZES_CLASSES: Record<string, string> = {\n xs: 'btn-xs',\n sm: 'btn-sm',\n md: 'btn-md',\n lg: 'btn-lg',\n};\n","export const FORM_ERROR_MESSAGES: Record<string, string> = {\n required: 'Este campo es requerido',\n minlength: 'Debe tener al menos caracteres',\n maxlength: 'Debe tener al menos caracteres',\n pattern: 'El formato no es válido',\n email: 'El formato no es válido',\n mustMatch: 'Las contraseñas no coinciden',\n matDatepickerMin: 'La fecha no puede ser anterior a la fecha mínima permitida',\n matDatepickerMax: 'La fecha no puede ser posterior a la fecha máxima permitida',\n};\n","export const BASE_INPUT_CLASSES = [\n 'block',\n 'w-full',\n 'rounded-md',\n 'px-3',\n 'py-1.5',\n 'text-base',\n 'text-gray-900',\n 'outline-1',\n '-outline-offset-1',\n 'outline-gray-300',\n 'placeholder:text-gray-400',\n 'focus:outline-2',\n 'focus:-outline-offset-2',\n 'focus:outline-indigo-600',\n 'sm:text-sm/6',\n].join(' ');\n\nexport const ERROR_INPUT_CLASSES = BASE_INPUT_CLASSES + ' outline-red-500 dark:outline-red-500';\n","export const ADMIN_API_ROUTES = {\n FIND_ALL: '/admins',\n CREATE: '/admins/auth/register',\n updateOne: (id: number) => `/admins/${id}`,\n deleteOne: (id: number) => `/admins/${id}`,\n};\n","export const CITY_API_ENDPOINTS = {\n findAll: '/cities',\n create: '/cities',\n findById: (id: number) => `/cities/${id}`,\n update: (id: number) => `/cities/${id}`,\n delete: (id: number) => `/cities/${id}`,\n};\n","export const COUNTRY_API_ENDPOINTS = {\n findAll: '/countries',\n create: '/countries',\n findById: (id: number) => `/countries/${id}`,\n update: (id: number) => `/countries/${id}`,\n delete: (id: number) => `/countries/${id}`,\n};\n","export const STATE_API_ENDPOINTS = {\n findAll: '/states',\n create: '/states',\n findById: (id: number) => `/states/${id}`,\n update: (id: number) => `/states/${id}`,\n delete: (id: number) => `/states/${id}`,\n};\n","export const PERFORMANCES_API_ROUTES = {\n findAll: '/performances',\n create: '/performances',\n createBulk: '/performances/bulk',\n findOneById: (id: number) => `/performances/${id}`,\n findOneBookingData: (id: number) => `/performances/${id}/booking-data`,\n update: (id: number) => `/performances/${id}`,\n delete: (id: number) => `/performances/${id}`,\n deleteMany: '/performances/bulk',\n cancel: (id: number) => `/performances/${id}/cancel`,\n publishInventory: (id: number) => `/performances/${id}/publish-inventory`,\n reserve: (id: number) => `/performances/${id}/reserve`,\n ticketQrToken: (uuid: string) => `/performances/tickets/${uuid}/qr-token`,\n getAvailableDays: '/performances/available-days',\n publicAvailablePerformances: '/public/performances/daily',\n};\n","export const PRODUCTS_API_ROUTES = {\n FIND_ALL: '/products',\n CREATE: '/products',\n findOneById: (id: number) => `/products/${id}`,\n update: (id: number) => `/products/${id}`,\n delete: (id: number) => `/products/${id}`,\n};\n","export const SHOWS_API_ROUTES = {\n findAll: '/shows',\n create: '/shows',\n findOneById: (id: number) => `/shows/${id}`,\n update: (id: number) => `/shows/${id}`,\n delete: (id: number) => `/shows/${id}`,\n getImages: (id: number) => `/shows/${id}/images`,\n uploadGallery: (id: number) => `/shows/${id}/images`,\n deleteOneImage: (showId: number, imageId: number) => `/shows/${showId}/images/${imageId}`,\n publicAvailablePerformances: '/public/shows/available',\n};\n","export const CUSTOMERS_API_ROUTES = {\n findAll: '/customers',\n create: '/customers/auth/register',\n findOne: (id: number) => `/customers/${id}`,\n update: (id: number) => `/customers/${id}`,\n delete: (id: number) => `/customers/${id}`,\n};\n","export const PRICE_ZONES_API_ROUTES = {\n FIND_ALL: '/price-zones',\n CREATE: '/price-zones',\n findOneById: (id: number) => `/price-zones/${id}`,\n update: (id: number) => `/price-zones/${id}`,\n delete: (id: number) => `/price-zones/${id}`,\n updateElements: (id: number) => `/price-zones/${id}/elements`,\n duplicate: (id: number) => `/price-zones/${id}/duplicate`,\n};\n","export const VENUES_API_ROUTES = {\n findAll: '/venues',\n create: '/venues',\n findOneById: (id: number) => '/venues/' + id,\n update: (id: number) => '/venues/' + id,\n delete: (id: number) => '/venues/' + id,\n getGallery: (id: number) => '/venues/' + id + '/images',\n uploadGallery: (id: number) => '/venues/' + id + '/images',\n deleteOneImage: (venueId: number, imageId: number) => '/venues/' + venueId + '/images/' + imageId,\n};\n","export enum FileType {\n IMAGE = 'image',\n PDF = 'pdf',\n EXCEL = 'excel',\n WORD = 'word',\n TEXT = 'text',\n DEFAULT = 'default',\n}\n","export enum CouponApplicability {\n GENERAL = 'GENERAL',\n CUSTOMER_EMAIL = 'CUSTOMER_EMAIL',\n MEMBERSHIP_TYPE = 'MEMBERSHIP_TYPE',\n SHOWS = 'SHOWS',\n PERFORMANCES = 'PERFORMANCES',\n}\n","export enum CouponDiscountType {\n PERCENTAGE = 'PERCENTAGE',\n FIXED = 'FIXED',\n}\n","export enum CorporateBondStatus {\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n EXPIRED = 'EXPIRED',\n}\n","export enum PerformanceStatus {\n ACTIVE = 'active',\n CANCELLED = 'cancelled',\n FINISHED = 'finished',\n POSTPONED = 'postponed',\n}\n","export enum PerformanceTicketStatus {\n AVAILABLE = 'available',\n RESERVED = 'reserved',\n SOLD = 'sold',\n BLOCKED = 'blocked',\n}\n","export enum RoomMapElementOrientation {\n TOP = 'top',\n RIGHT = 'right',\n BOTTOM = 'bottom',\n LEFT = 'left',\n CENTER = 'center',\n}\n","export enum RoomMapElementType {\n SEAT_BLOCK = 'seat_block',\n TABLE = 'table',\n ZONE = 'zone',\n EXIT = 'exit',\n STAGE = 'stage',\n PRODUCTION_AREA = 'production_area',\n UNAVAILABLE_SPACE = 'unavailable_space',\n STAIR = 'stair',\n HALLWAY = 'hallway',\n}\n","export enum OrderItemType {\n TICKET = 'TICKET',\n PRODUCT = 'PRODUCT',\n}\n","export enum OrderStatus {\n PENDING = 'PENDING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n CANCELLED = 'CANCELLED',\n}\n","import { Customer } from '../interfaces/customers/customer.interface';\n\nexport const getCustomerFullname = (customer: Customer) => {\n return `${customer.first_name || ''} ${customer.last_name || ''}`.trim();\n};\n","export function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData {\n const formData = new FormData();\n\n if (!Array.isArray(imageGallery)) {\n throw new Error('imageGallery debe ser un array');\n }\n\n if (imageGallery.length === 0) {\n throw new Error('No hay imágenes para procesar');\n }\n\n if (imageGallery.length > 10) {\n throw new Error('El backend acepta máximo 10 archivos por petición');\n }\n\n const processedFiles: any = [];\n\n imageGallery.forEach((image, index) => {\n try {\n if (!image.name) {\n throw new Error(`La imagen ${index + 1} no tiene nombre`);\n }\n\n if (!image.type || !image.type.startsWith('image/')) {\n throw new Error(`La imagen ${index + 1} no tiene un tipo MIME válido`);\n }\n\n if (!image.preview) {\n throw new Error(`La imagen ${index + 1} no tiene datos de preview`);\n }\n\n if (!image.preview.includes('data:image/') || !image.preview.includes('base64,')) {\n throw new Error(`La imagen ${index + 1} no tiene un formato base64 válido`);\n }\n\n const base64Data = image.preview.split(',')[1];\n const byteCharacters = atob(base64Data);\n const byteNumbers = new Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n const blob = new Blob([byteArray], { type: image.type });\n\n const file = new File([blob], image.name, {\n type: image.type,\n lastModified: Date.now(),\n });\n\n if (file.size === 0) {\n throw new Error(`El archivo ${image.name} está vacío`);\n }\n\n formData.append('files', file);\n processedFiles.push({\n name: image.name,\n size: file.size,\n type: file.type,\n });\n } catch (error: any) {\n console.error(`Error procesando imagen ${index + 1}:`, error);\n throw new Error(\n `Error procesando ${image.name || 'imagen ' + (index + 1)}: ${error?.message}`,\n );\n }\n });\n\n return formData;\n}\n","import { ShowImage } from '../interfaces/shows/show-image.interface';\nimport { VenueImage } from '../interfaces/venues/venue-image.interface';\nimport { UploadedFile } from '../interfaces/uploaded-file.interface';\n\nexport const transformImageToFile = (image: ShowImage | VenueImage): UploadedFile => {\n return {\n preview: image.full_url,\n name: image.original_name,\n size: image.size,\n type: image.mime_type,\n extension: image.extension,\n } as UploadedFile;\n};\n","import { CitiesResponse } from '../interfaces/cities/cities-response.interface';\n\nexport const formatCitiesResponseToSelect = (res: CitiesResponse) => {\n if (!res.data.cities || res.data.cities.length < 1) {\n return [];\n }\n\n return res.data.cities?.map(({ id, name, search_text }) => ({\n value: id,\n label: search_text ?? name,\n }));\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn, FormGroup } from '@angular/forms';\n\nexport function MinTodayValidator(controlName: string): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const group = formGroup as FormGroup;\n const control = group.get(controlName);\n\n if (!control || !control.value) {\n return null;\n }\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n let selectedDate: Date;\n\n if (control.value instanceof Date) {\n selectedDate = new Date(control.value);\n } else if (typeof control.value === 'string') {\n const [year, month, day] = control.value.split('-').map(Number);\n selectedDate = new Date(Date.UTC(year, month - 1, day));\n } else {\n return null;\n }\n\n selectedDate.setUTCHours(0, 0, 0, 0);\n\n if (selectedDate < today) {\n control.setErrors({ minToday: true });\n return { minToday: true };\n } else {\n const currentErrors = control.errors;\n if (currentErrors) {\n delete currentErrors['minToday'];\n control.setErrors(Object.keys(currentErrors).length > 0 ? currentErrors : null);\n }\n return null;\n }\n };\n}\n\nexport function EndDateGreaterThanStartValidator(\n startDateControlName: string,\n endDateControlName: string,\n): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const group = formGroup as FormGroup;\n const startDateControl = group.get(startDateControlName);\n const endDateControl = group.get(endDateControlName);\n\n if (!startDateControl || !endDateControl || !startDateControl.value || !endDateControl.value) {\n return null;\n }\n\n let startDate: Date;\n let endDate: Date;\n\n if (startDateControl.value instanceof Date) {\n startDate = new Date(startDateControl.value);\n } else if (typeof startDateControl.value === 'string') {\n const [startYear, startMonth, startDay] = startDateControl.value.split('-').map(Number);\n startDate = new Date(Date.UTC(startYear, startMonth - 1, startDay));\n } else {\n return null;\n }\n\n if (endDateControl.value instanceof Date) {\n endDate = new Date(endDateControl.value);\n } else if (typeof endDateControl.value === 'string') {\n const [endYear, endMonth, endDay] = endDateControl.value.split('-').map(Number);\n endDate = new Date(Date.UTC(endYear, endMonth - 1, endDay));\n } else {\n return null;\n }\n\n startDate.setUTCHours(0, 0, 0, 0);\n endDate.setUTCHours(0, 0, 0, 0);\n\n if (endDate <= startDate) {\n endDateControl.setErrors({ endDateGreaterThanStart: true });\n return { endDateGreaterThanStart: true };\n } else {\n const currentErrors = endDateControl.errors;\n if (currentErrors) {\n delete currentErrors['endDateGreaterThanStart'];\n endDateControl.setErrors(Object.keys(currentErrors).length > 0 ? currentErrors : null);\n }\n return null;\n }\n };\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn, FormGroup } from '@angular/forms';\n\nexport function MustMatchValidator(controlName: string, matchingControlName: string): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const group = formGroup as FormGroup;\n const control = group.get(controlName);\n const matchingControl = group.get(matchingControlName);\n\n if (!control || !matchingControl) {\n return null;\n }\n\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n return { mustMatch: true };\n } else {\n matchingControl.setErrors(null);\n return null;\n }\n };\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n TICKERA_COMPONENTS_CONFIG,\n TickeraComponentsConfig,\n} from '../config/tickera-components.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n private apiUrl: string;\n\n constructor(\n private http: HttpClient,\n @Inject(PLATFORM_ID) private platformId: Object,\n @Inject(TICKERA_COMPONENTS_CONFIG) private config: TickeraComponentsConfig,\n ) {\n this.apiUrl = config.apiUrl;\n }\n\n private getHeaders(contentType?: string): HttpHeaders {\n let headers = new HttpHeaders();\n\n if (contentType) {\n headers = headers.set('Content-Type', contentType);\n }\n\n return headers;\n }\n\n private validateContentType(body: any): string | undefined {\n if (body instanceof FormData) {\n return undefined;\n }\n return 'application/json';\n }\n\n private handleError(error: HttpErrorResponse): Observable<never> {\n if (error.status === 401 && isPlatformBrowser(this.platformId)) {\n const currentRoute = window.location.pathname;\n if (currentRoute.startsWith('/admin')) {\n localStorage.removeItem('access_token');\n window.location.href = '/';\n }\n }\n return throwError(() => error);\n }\n\n get<T>(path: string): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(null));\n return this.http\n .get<T>(`${this.apiUrl}${path}`, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n post<T>(path: string, body: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .post<T>(`${this.apiUrl}${path}`, body, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n patch<T>(path: string, body: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .patch<T>(`${this.apiUrl}${path}`, body, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n put<T>(path: string, body: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .put<T>(`${this.apiUrl}${path}`, body, { headers })\n .pipe(catchError(this.handleError.bind(this)));\n }\n\n delete<T>(path: string, body?: any): Observable<T> {\n const headers = this.getHeaders(this.validateContentType(body));\n return this.http\n .request<T>('DELETE', `${this.apiUrl}${path}`, { headers, body })\n .pipe(catchError(this.handleError.bind(this)));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { toast } from 'ngx-sonner';\n\ntype ToastType = 'success' | 'error' | 'info';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n show(message: string, type: ToastType = 'info') {\n toast[type](message);\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingModalService {\n title: WritableSignal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n open(title?: string) {\n this.title.set(title ?? 'Cargando...');\n this.isOpen.set(true);\n }\n\n close() {\n this.isOpen.set(false);\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { DeleteConfirmationOpen } from '../interfaces/delete-confirmation-open.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class DeleteConfirmationService {\n title: WritableSignal<string> = signal('Confirmar eliminación');\n resourceName: WritableSignal<string> = signal('');\n confirmationText: WritableSignal<string> = signal('');\n isOpen: WritableSignal<boolean> = signal(false);\n confirmDeleteCallback: (() => void) | null = null;\n\n get modalTitle(): WritableSignal<string> {\n return this.title;\n }\n\n get modalResourceName(): WritableSignal<string> {\n return this.resourceName;\n }\n\n get modalConfirmationText(): WritableSignal<string> {\n return this.confirmationText;\n }\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n open(\n { title, resourceName, confirmationText }: DeleteConfirmationOpen,\n confirmCallback?: () => void,\n ) {\n this.title.set(title);\n this.resourceName.set(resourceName);\n this.confirmationText.set(confirmationText);\n this.confirmDeleteCallback = confirmCallback || null;\n this.isOpen.set(true);\n }\n\n close() {\n this.title.set('Confirmar eliminación');\n this.resourceName.set('');\n this.confirmationText.set('');\n this.confirmDeleteCallback = null;\n this.isOpen.set(false);\n }\n\n getConfirmDeleteCallback(): (() => void) | null {\n return this.confirmDeleteCallback;\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ChangePasswordFormService {\n resourceId: WritableSignal<number> = signal(0);\n isCustomer: WritableSignal<boolean> = signal(false);\n isAdmin: WritableSignal<boolean> = signal(false);\n isOpen: WritableSignal<boolean> = signal(false);\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n get isCustomerMode(): WritableSignal<boolean> {\n return this.isCustomer;\n }\n\n get isAdminMode(): WritableSignal<boolean> {\n return this.isAdmin;\n }\n\n get resourceIdValue(): WritableSignal<number> {\n return this.resourceId;\n }\n\n open(resourceId: number, isAdmin: boolean = false) {\n this.resourceId.set(resourceId);\n this.isCustomer.set(!isAdmin);\n this.isAdmin.set(isAdmin);\n this.isOpen.set(true);\n }\n\n close() {\n this.isOpen.set(false);\n }\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { formatDate } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class DateService {\n constructor(@Inject(LOCALE_ID) private locale: string) {}\n\n formatDate(date: Date, format: string = 'yyyy-MM-dd'): string {\n const formattedDate = formatDate(date, format, this.locale);\n return formattedDate;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { AdminsResponse } from '../interfaces/admins/admins-response.interface';\nimport { ADMIN_API_ROUTES } from '../constants/api-routes/admin-api.routes';\n\n@Injectable({ providedIn: 'root' })\nexport class AdminService {\n constructor(private apiService: ApiService) {}\n\n fetchAdmins(\n page: number = 1,\n search: string = '',\n limit: number = 20,\n ): Observable<AdminsResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${ADMIN_API_ROUTES.FIND_ALL}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<AdminsResponse>(apiRoute);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(ADMIN_API_ROUTES.deleteOne(id));\n }\n\n createOne(data: any): Observable<any> {\n return this.apiService.post(ADMIN_API_ROUTES.CREATE, data);\n }\n\n updateOne(id: number, data: any): Observable<any> {\n return this.apiService.patch(ADMIN_API_ROUTES.updateOne(id), data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { CITY_API_ENDPOINTS } from '../constants/api-routes/cities-api.routes';\nimport { CitiesResponse } from '../interfaces/cities/cities-response.interface';\nimport { City } from '../interfaces/cities/city.interface';\nimport { CityResponse } from '../interfaces/cities/city-response.interface';\nimport { FetchCitiesParams } from '../interfaces/cities/fetch-cities-params.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class CitiesService {\n constructor(private apiService: ApiService) {}\n\n fetchCities({ page, search, stateId }: FetchCitiesParams): Observable<CitiesResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (stateId) queryParams.append('state_id', stateId.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${CITY_API_ENDPOINTS.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<CitiesResponse>(apiRoute);\n }\n\n createOne(data: City): Observable<CityResponse> {\n return this.apiService.post(CITY_API_ENDPOINTS.create, data);\n }\n\n updateOne(id: number, data: City): Observable<CityResponse> {\n return this.apiService.patch<CityResponse>(CITY_API_ENDPOINTS.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(CITY_API_ENDPOINTS.delete(id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { COUNTRY_API_ENDPOINTS } from '../constants/api-routes/countries-api.routes';\nimport { CountriesResponse } from '../interfaces/countries/countries-response.interface';\nimport { CountryResponse } from '../interfaces/countries/country-response.interface';\nimport { Country } from '../interfaces/countries/country.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class CountryService {\n constructor(private apiService: ApiService) {}\n\n fetchCountries(page?: number, search?: string): Observable<CountriesResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n const queryString = queryParams.toString();\n const apiRoute = `${COUNTRY_API_ENDPOINTS.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<CountriesResponse>(apiRoute);\n }\n\n createOne(data: Country): Observable<CountryResponse> {\n return this.apiService.post(COUNTRY_API_ENDPOINTS.create, data);\n }\n\n updateOne(id: number, data: Country): Observable<CountryResponse> {\n return this.apiService.patch<CountryResponse>(COUNTRY_API_ENDPOINTS.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(COUNTRY_API_ENDPOINTS.delete(id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { STATE_API_ENDPOINTS } from '../constants/api-routes/states-api.routes';\nimport { StatesResponse } from '../interfaces/states/states-response.interface';\nimport { StateResponse } from '../interfaces/states/state-response.interface';\nimport { State } from '../interfaces/states/state.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class StatesService {\n constructor(private apiService: ApiService) {}\n\n fetchStates(page?: number, search?: string, countryId?: number): Observable<StatesResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (countryId) queryParams.append('country_id', countryId.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${STATE_API_ENDPOINTS.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<StatesResponse>(apiRoute);\n }\n\n fetchStatesByCountryId(countryId: number): Observable<StatesResponse> {\n const apiRoute = `${STATE_API_ENDPOINTS.findAll}?country_id=${countryId}`;\n return this.apiService.get<StatesResponse>(apiRoute);\n }\n\n createOne(data: State): Observable<StateResponse> {\n return this.apiService.post(STATE_API_ENDPOINTS.create, data);\n }\n\n updateOne(id: number, data: State): Observable<StateResponse> {\n return this.apiService.patch<StateResponse>(STATE_API_ENDPOINTS.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(STATE_API_ENDPOINTS.delete(id));\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PERFORMANCES_API_ROUTES } from '../constants/api-routes/performances-api.routes';\nimport { ApiService } from './api.service';\nimport { PerformancesResponseInterface } from '../interfaces/performances/performances-response.interface';\nimport { Performance } from '../interfaces/performances/performance.interface';\nimport { PerformanceResponse } from '../interfaces/performances/performance-response.interface';\nimport { PerformanceBookingDataResponse } from '../interfaces/performances/performance-booking-data.interface';\nimport { PerformancesAvailableDaysResponse } from '../interfaces/performances/performances-available-days-response.interface';\nimport { FetchDailyPerformancesParams } from '../interfaces/daily-performances/fetch-daily-performances-params.interface';\nimport { DailyPerformancesResponse } from '../interfaces/daily-performances/daily-performances-response.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class PerformanceService {\n private performancesSubject = new BehaviorSubject<Performance[]>([]);\n public performances$ = this.performancesSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n fetchPerformances(showId?: number, search?: string): Observable<PerformancesResponseInterface> {\n const queryParams = new URLSearchParams();\n if (showId) queryParams.append('show_id', showId.toString());\n if (search) queryParams.append('search', search);\n queryParams.append('limit', '100');\n const queryString = queryParams.toString();\n const apiRoute = `${PERFORMANCES_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<PerformancesResponseInterface>(apiRoute);\n }\n\n fetchDailyPerformances({\n show_id,\n search,\n limit,\n date,\n }: FetchDailyPerformancesParams): Observable<DailyPerformancesResponse> {\n const queryParams = new URLSearchParams();\n if (date) queryParams.append('date', date.toString());\n if (show_id) queryParams.append('show_id', show_id.toString());\n if (search) queryParams.append('search', search);\n queryParams.append('limit', limit?.toString() ?? '100');\n\n const queryString = queryParams.toString();\n const apiRoute = `${PERFORMANCES_API_ROUTES.publicAvailablePerformances}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<DailyPerformancesResponse>(apiRoute);\n }\n\n loadPerformances({ showId, search }: { showId?: number; search?: string } = {}): void {\n this.fetchPerformances(showId, search).subscribe({\n next: ({ data }) => {\n this.performancesSubject.next(data?.performances ?? []);\n },\n error: () => {\n this.performancesSubject.next([]);\n },\n });\n }\n\n getCurrentPerformances(): Performance[] {\n return this.performancesSubject.value;\n }\n\n fetchOneById(id: number): Observable<PerformanceResponse> {\n return this.apiService.get<PerformanceResponse>(PERFORMANCES_API_ROUTES.findOneById(id));\n }\n\n fetchOneBookingData(id: number): Observable<PerformanceBookingDataResponse> {\n const apiRoute = PERFORMANCES_API_ROUTES.findOneBookingData(id);\n return this.apiService.get<PerformanceBookingDataResponse>(apiRoute);\n }\n\n fetchAvailableDays(params?: { show_id?: number }): Observable<PerformancesAvailableDaysResponse> {\n const queryParams = new URLSearchParams();\n if (params?.show_id) queryParams.append('show_id', params.show_id.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${PERFORMANCES_API_ROUTES.getAvailableDays}${queryString ? '?' + queryString : ''}`;\n\n return this.apiService.get<PerformancesAvailableDaysResponse>(apiRoute);\n }\n\n createOne(data: Performance): Observable<any> {\n return this.apiService.post(PERFORMANCES_API_ROUTES.create, data);\n }\n\n createMany(data: Partial<Performance>[]): Observable<any> {\n return this.apiService.post(PERFORMANCES_API_ROUTES.createBulk, { performances: data });\n }\n\n updateOne(id: number, data: any): Observable<PerformanceResponse> {\n return this.apiService.patch<PerformanceResponse>(PERFORMANCES_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(PERFORMANCES_API_ROUTES.delete(id));\n }\n\n deleteMany(ids: number[]): Observable<any> {\n return this.apiService.delete(PERFORMANCES_API_ROUTES.deleteMany, { ids });\n }\n\n cancelPerformance(id: number, notifyUsers: boolean): Observable<any> {\n return this.apiService.patch(PERFORMANCES_API_ROUTES.cancel(id), { notify_users: notifyUsers });\n }\n\n publishInvenotry(id: number): Observable<any> {\n const apiRoute = PERFORMANCES_API_ROUTES.publishInventory(id);\n return this.apiService.post(apiRoute, {});\n }\n}\n","import { computed, Injectable, signal } from '@angular/core';\nimport { DailyPerformanceItem, PerformanceAvailableDay } from '../interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class PerformancesListEventsService {\n private _selectedDay = signal<PerformanceAvailableDay | null>(null);\n private _selectedPerformance = signal<DailyPerformanceItem | null>(null);\n private _filteredShowId = signal<number | null>(null);\n\n readonly selectedDay = computed(() => this._selectedDay());\n readonly selectedDayDate = computed(() => this._selectedDay()?.date);\n readonly selectedPerformance = computed(() => this._selectedPerformance());\n readonly filteredShowId = computed(() => this._filteredShowId());\n\n setSelectedDay(day: PerformanceAvailableDay | null): void {\n this._selectedDay.set(day);\n }\n\n setSelectedPerformance(performance: DailyPerformanceItem | null) {\n this._selectedPerformance.set(performance);\n }\n\n setFilteredShowId(id: number | null): void {\n this._filteredShowId.set(id);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PRODUCTS_API_ROUTES } from '../constants/api-routes/products-api.routes';\nimport { ApiService } from './api.service';\nimport { ProductsResponseInterface } from '../interfaces/products/products-response.interface';\nimport { ProductResponse } from '../interfaces/products/product-response.interface';\nimport { Product } from '../interfaces/products/product.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ProductService {\n private productsSubject = new BehaviorSubject<Product[]>([]);\n public products$ = this.productsSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n fetchProducts(page: number, search: string): Observable<ProductsResponseInterface> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n const queryString = queryParams.toString();\n const apiRoute = `${PRODUCTS_API_ROUTES.FIND_ALL}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<ProductsResponseInterface>(apiRoute);\n }\n\n loadProducts({ page, search }: { page?: number; search?: string } = {}): void {\n this.fetchProducts(page ?? 1, search ?? '').subscribe({\n next: ({ data }) => {\n this.productsSubject.next(data?.products ?? []);\n },\n error: () => {\n this.productsSubject.next([]);\n },\n });\n }\n\n getCurrentProducts(): Product[] {\n return this.productsSubject.value;\n }\n\n fetchOneById(id: number): Observable<ProductResponse> {\n return this.apiService.get<ProductResponse>(PRODUCTS_API_ROUTES.findOneById(id));\n }\n\n createOne(data: Product): Observable<any> {\n return this.apiService.post(PRODUCTS_API_ROUTES.CREATE, data);\n }\n\n updateOne(id: number, data: any): Observable<ProductResponse> {\n return this.apiService.patch<ProductResponse>(PRODUCTS_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(PRODUCTS_API_ROUTES.delete(id));\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { SHOWS_API_ROUTES } from '../constants/api-routes/shows-api.routes';\nimport { ApiService } from './api.service';\nimport { ShowsResponseInterface } from '../interfaces/shows/shows-response.interface';\nimport { Show } from '../interfaces/shows/show.interface';\nimport { ShowResponse } from '../interfaces/shows/show-response.interface';\nimport { ShowImage } from '../interfaces/shows/show-image.interface';\nimport { FetchShowsParams } from '../interfaces/shows/fetch-shows-params.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ShowService {\n private showsSubject = new BehaviorSubject<Show[]>([]);\n public shows$ = this.showsSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n loadShows({ page, search }: FetchShowsParams = {}): void {\n this.fetchShows({ page, search }).subscribe({\n next: ({ data }) => {\n this.showsSubject.next(data?.shows ?? []);\n },\n error: () => {\n this.showsSubject.next([]);\n },\n });\n }\n\n getCurrentShows(): Show[] {\n return this.showsSubject.value;\n }\n\n fetchShows({ limit, page, search }: FetchShowsParams): Observable<ShowsResponseInterface> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (limit) queryParams.append('limit', limit.toString());\n if (search) queryParams.append('search', search);\n\n const queryString = queryParams.toString();\n const apiRoute = `${SHOWS_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<ShowsResponseInterface>(apiRoute);\n }\n\n fetchAvailableShows({\n date,\n limit,\n page,\n search,\n }: FetchShowsParams): Observable<ShowsResponseInterface> {\n const queryParams = new URLSearchParams();\n if (date) queryParams.append('date', date);\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n\n const apiRoute = `${SHOWS_API_ROUTES.publicAvailablePerformances}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<ShowsResponseInterface>(apiRoute);\n }\n\n fetchOneById(id: number): Observable<ShowResponse> {\n return this.apiService.get<ShowResponse>(SHOWS_API_ROUTES.findOneById(id));\n }\n\n createOne(data: Show): Observable<ShowResponse> {\n return this.apiService.post(SHOWS_API_ROUTES.create, data);\n }\n\n updateOne(id: number, data: any): Observable<ShowResponse> {\n return this.apiService.patch<ShowResponse>(SHOWS_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(SHOWS_API_ROUTES.delete(id));\n }\n\n fetchImages(id: number): Observable<{ data: ShowImage[] }> {\n return this.apiService.get(SHOWS_API_ROUTES.getImages(id));\n }\n\n uploadImages(id: number, files?: FormData): Observable<{ data: ShowImage[] }> {\n return this.apiService.post(SHOWS_API_ROUTES.uploadGallery(id), files);\n }\n\n deleteOneImage(showId: number, imageId: number): Observable<any> {\n return this.apiService.delete(SHOWS_API_ROUTES.deleteOneImage(showId, imageId));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from './api.service';\nimport { CustomersResponse } from '../interfaces/customers/customers-response.interface';\nimport { CustomerResponse } from '../interfaces/customers/customer-response.interface';\nimport { CUSTOMERS_API_ROUTES } from '../constants/api-routes/customers-api.routes';\nimport { Customer } from '../interfaces/customers/customer.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class CustomerService {\n constructor(private apiService: ApiService) {}\n\n createOne(data: Customer): Observable<CustomerResponse> {\n return this.apiService.post<CustomerResponse>(CUSTOMERS_API_ROUTES.create, data);\n }\n\n fetchCustomers(page: number, search: string, limit?: number): Observable<CustomersResponse> {\n const queryParams = new URLSearchParams();\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${CUSTOMERS_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<CustomersResponse>(apiRoute);\n }\n\n fetchOneById(id: number): Observable<CustomerResponse> {\n return this.apiService.get<CustomerResponse>(CUSTOMERS_API_ROUTES.findOne(id));\n }\n\n updateOne(id: number, data: any): Observable<CustomerResponse> {\n return this.apiService.patch<CustomerResponse>(CUSTOMERS_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(CUSTOMERS_API_ROUTES.delete(id));\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { PRICE_ZONES_API_ROUTES } from '../constants/api-routes/price-zones-api.routes';\nimport { ApiService } from './api.service';\nimport { PriceZonesResponseInterface } from '../interfaces/price-zones/price-zones-response.interface';\nimport { PriceZone } from '../interfaces/price-zones/price-zone.interface';\nimport { FindAllPriceZoneParams } from '../interfaces/price-zones/find-all-price-zone-params.interface';\nimport { PriceZoneResponse } from '../interfaces/price-zones/price-zone-response.interface';\nimport { PriceZoneUpdateResponse } from '../interfaces/price-zones/price-zone-update-response.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class PriceZoneService {\n private priceZonesSubject = new BehaviorSubject<PriceZone[]>([]);\n public priceZones$ = this.priceZonesSubject.asObservable();\n\n constructor(private apiService: ApiService) {}\n\n fetchPriceZones({\n roomMapId,\n page,\n search,\n limit,\n }: FindAllPriceZoneParams = {}): Observable<PriceZonesResponseInterface> {\n const queryParams = new URLSearchParams();\n if (roomMapId) queryParams.append('room_map_id', roomMapId.toString());\n if (page) queryParams.append('page', page.toString());\n if (search) queryParams.append('search', search);\n if (limit) queryParams.append('limit', limit.toString());\n const queryString = queryParams.toString();\n const apiRoute = `${PRICE_ZONES_API_ROUTES.FIND_ALL}${queryString ? '?' + queryString : ''}`;\n return this.apiService.get<PriceZonesResponseInterface>(apiRoute);\n }\n\n loadPriceZones({ roomMapId, page, search, limit }: FindAllPriceZoneParams = {}): void {\n this.fetchPriceZones({ roomMapId, page, search, limit }).subscribe({\n next: ({ data }) => {\n this.priceZonesSubject.next(data?.price_zones ?? []);\n },\n error: () => {\n this.priceZonesSubject.next([]);\n },\n });\n }\n\n getCurrentPriceZones(): PriceZone[] {\n return this.priceZonesSubject.value;\n }\n\n fetchOneById(id: number): Observable<PriceZoneResponse> {\n return this.apiService.get<PriceZoneResponse>(PRICE_ZONES_API_ROUTES.findOneById(id));\n }\n\n createOne(data: PriceZone): Observable<any> {\n return this.apiService.post(PRICE_ZONES_API_ROUTES.CREATE, data);\n }\n\n duplicateOne(id: number, name: string): Observable<any> {\n return this.apiService.post(PRICE_ZONES_API_ROUTES.duplicate(id), { name });\n }\n\n updateOne(id: number, data: any): Observable<PriceZoneUpdateResponse> {\n return this.apiService.patch<PriceZoneUpdateResponse>(PRICE_ZONES_API_ROUTES.update(id), data);\n }\n\n deleteOne(id: number): Observable<any> {\n return this.apiService.delete(PRICE_ZONES_API_ROUTES.delete(id));\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { PriceZone } from '../interfaces/price-zones/price-zone.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class PriceZoneEventService {\n private priceZoneDeleted$ = new Subject<void>();\n private priceZoneSaved$ = new Subject<void>();\n\n private _selectedPriceZone: WritableSignal<PriceZone | null> = signal(null);\n readonly selectedPriceZone$ = toObservable(this._selectedPriceZone);\n\n onPriceZoneDeleted() {\n this.priceZoneDeleted$.next();\n }\n\n getPriceZoneDeleted() {\n return this.priceZoneDeleted$.asObservable();\n }\n\n onPriceZoneSaved() {\n this.priceZoneSaved$.next();\n }\n\n getPriceZoneSaved() {\n return this.priceZoneSaved$.asObservable();\n }\n\n setSelectedPriceZone(priceZone: PriceZone | null) {\n this._selectedPriceZone.set(priceZone);\n }\n}\n","import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { PriceZone } from '../interfaces/price-zones/price-zone.interface';\nimport { PriceZoneEventService } from './price-zone-event.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PriceZoneFormModalService {\n priceZone: WritableSignal<PriceZone | null> = signal(null);\n isOpen: WritableSignal<boolean> = signal(false);\n\n constructor(private priceZoneEventService: PriceZoneEventService) {}\n\n get modalIsOpen(): WritableSignal<boolean> {\n return this.isOpen;\n }\n\n get currentPriceZone(): WritableSignal<PriceZone | null> {\n return this.priceZone;\n }\n\n open(priceZone: PriceZone | null = null) {\n this.priceZone.set(priceZone);\n this.priceZoneEventService.setSelectedPriceZone(priceZone);\n this.isOpen.set(true);\n }\n\n close() {\n this.isOpen.set(false);\n this.priceZone.set(null);\n }\n}\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n TICKERA_COMPONENTS_CONFIG,\n TickeraComponentsConfig,\n} from '../config/tickera-components.config';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const platformId = inject(PLATFORM_ID);\n const config = inject(TICKERA_COMPONENTS_CONFIG) as TickeraComponentsConfig;\n\n if (isPlatformBrowser(platformId)) {\n const key = config.accessTokenKey ?? 'access_token';\n const token = localStorage.getItem(key);\n if (token) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${token}` },\n });\n }\n }\n\n return next(req);\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-button.component.html',\n styleUrl: './app-button.component.scss',\n})\nexport class AppButtonComponent {\n @Output() clicked = new EventEmitter<void>();\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() type: 'button' | 'submit' = 'button';\n @Input() variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent' = 'primary';\n @Input() text: string = '';\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n @Input() loadingText: string = '';\n @Input() icon: string = '';\n\n handleClick() {\n this.clicked.emit();\n }\n\n get buttonClasses(): string {\n return [\n 'btn',\n `btn-${this.variant}`,\n `btn-${this.size}`,\n this.disabled ? 'btn-disabled' : '',\n this.loading ? 'btn-loading' : '',\n ]\n .filter(Boolean)\n .join(' ');\n }\n}\n","<button\n [type]=\"type\"\n [disabled]=\"loading || disabled\"\n [class]=\"buttonClasses\"\n (click)=\"handleClick()\"\n>\n @if (icon && !loading) {\n <i class=\"btn-icon\" [ngClass]=\"icon\"></i>\n }\n\n @if (loading) {\n <i class=\"btn-icon btn-icon-spin ri-refresh-line\"></i>\n }\n\n {{ loading ? loadingText : text }}\n</button>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { RouterLink, RouterModule } from '@angular/router';\n\n@Component({\n selector: 'app-link-button',\n standalone: true,\n imports: [CommonModule, RouterLink, RouterModule, TranslocoModule],\n templateUrl: './app-link-button.component.html',\n styleUrls: ['../app-button/app-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppLinkButtonComponent {\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() target: '_blank' | '_self' | '_parent' | '_top' = '_self';\n @Input() text: string = '';\n @Input() icon: string = '';\n @Input() loadingText: string = '';\n @Input() route: string = '';\n @Input() queryParams: Record<string, any> = {};\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n @Input() variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent' = 'primary';\n\n get buttonClasses(): string {\n return [\n 'btn',\n `btn-${this.variant}`,\n `btn-${this.size}`,\n this.disabled ? 'btn-disabled' : '',\n this.loading ? 'btn-loading' : '',\n ]\n .filter(Boolean)\n .join(' ');\n }\n}\n","<a\n class=\"{{ buttonClasses }}\"\n [routerLink]=\"!disabled ? route : null\"\n [queryParams]=\"queryParams\"\n [target]=\"target\"\n>\n @if (icon) {\n <i [class]=\"icon\"></i>\n }\n\n {{ loading ? loadingText : text }}\n</a>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ALERT_ICONS } from '../../../constants/alerts';\n\n@Component({\n selector: 'app-alert',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppAlertComponent {\n @Input() type: 'success' | 'error' | 'warning' | 'info' = 'success';\n @Input() text: string = '';\n @Input() closeable: boolean = false;\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n\n get alertIcon(): string {\n return ALERT_ICONS[this.type] ?? ALERT_ICONS.info;\n }\n}\n","<div class=\"alert\" [class]=\"'alert--' + type + ' alert--' + size\" role=\"alert\">\n <div class=\"alert-content\">\n <i class=\"{{ alertIcon }}\"></i>\n <span>{{ text }}</span>\n </div>\n\n @if (closeable) {\n <span class=\"alert-close\">\n <i class=\"ri-close-line\"></i>\n </span>\n }\n</div>\n","import {\n Component,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppModalComponent {\n @Input() title: string = '';\n @Input() disableClose: boolean = false;\n @Input() isOpen: WritableSignal<boolean> = signal(false);\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' = 'md';\n\n @Output() closeModal = new EventEmitter<void>();\n\n onCloseModal(): void {\n if (this.disableClose) return;\n\n this.closeModal.emit();\n }\n}\n","@if (isOpen()) {\n <div class=\"modal-overlay\">\n <div class=\"modal-backdrop\" (click)=\"onCloseModal()\"></div>\n\n <div class=\"modal-dialog\" [class]=\"'modal-dialog--' + size\">\n @if (!disableClose || !!title) {\n <div class=\"modal-header\">\n <h3 class=\"modal-title\">{{ title }}</h3>\n\n @if (!disableClose) {\n <button class=\"modal-close-button\" (click)=\"onCloseModal()\">&times;</button>\n }\n </div>\n }\n\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AppModalComponent } from '../../modals/modal/modal.component';\nimport { LoadingModalService } from '../../../services/loading-modal.service';\n\n@Component({\n selector: 'loading-modal',\n standalone: true,\n imports: [CommonModule, AppModalComponent],\n templateUrl: './loading-modal.component.html',\n styleUrls: ['./loading-modal.component.scss'],\n})\nexport class LoadingmModalComponent {\n constructor(private loadingModalService: LoadingModalService) {}\n\n get isOpen() {\n return this.loadingModalService.modalIsOpen;\n }\n\n get title() {\n return this.loadingModalService.title;\n }\n\n closeModal() {\n this.loadingModalService.close();\n }\n\n onCitySaved() {\n this.loadingModalService.close();\n }\n}\n","<app-modal [disableClose]=\"true\" [isOpen]=\"isOpen\" (closeModal)=\"closeModal()\">\n <div class=\"loading-modal-body\">\n <div role=\"status\">\n <div class=\"loading-modal-spinner-wrapper\">\n <div class=\"loading-modal-spinner\"></div>\n </div>\n <span class=\"loading-modal-hidden\">Loading...</span>\n </div>\n\n <p class=\"loading-modal-title\">{{ title() }}</p>\n </div>\n</app-modal>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { BASE_INPUT_CLASSES, ERROR_INPUT_CLASSES } from '../../../constants/form-fields';\n\n@Component({\n selector: 'form-input',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './form-input.component.html',\n styleUrls: ['./form-input.component.scss'],\n})\nexport class FormInputComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() type = 'text';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() minlength: number | null = null;\n @Input() min: number | null = null;\n @Input() step: number | null = 1;\n @Input() pattern: string | null = null;\n @Input() fieldGroupClass: string = '';\n @Input() autocomplete: boolean = true;\n\n value: any = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'maxlength') {\n return this.transloco.translate('formErrors.maxlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'email') {\n return this.transloco.translate('formErrors.email');\n }\n\n return this.transloco.translate(`formErrors.${errorKey}`);\n }\n\n get inputClasses(): string {\n return this.showError ? ERROR_INPUT_CLASSES : BASE_INPUT_CLASSES;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"form-input-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"form-input-required\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <input\n [type]=\"type\"\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [minlength]=\"minlength\"\n [pattern]=\"pattern || ''\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [class.disabled]=\"readonly\"\n [class.error]=\"showError\"\n class=\"form-input\"\n [autocomplete]=\"autocomplete\"\n [min]=\"min\"\n [step]=\"step\"\n />\n </div>\n\n @if (showError) {\n <div class=\"form-input-error-message\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { AppButtonComponent } from '../../buttons/app-button/app-button.component';\nimport { FormInputComponent } from '../../forms/form-input/form-input.component';\nimport { AppModalComponent } from '../../modals/modal/modal.component';\nimport { AppAlertComponent } from '../../feedback/alert/alert.component';\nimport { DeleteConfirmationService } from '../../../services/delete-confirmation.service';\n\n@Component({\n selector: 'delete-confirmation',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n AppButtonComponent,\n FormInputComponent,\n AppModalComponent,\n AppAlertComponent,\n ],\n templateUrl: './delete-confirmation.component.html',\n styleUrls: ['./delete-confirmation.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DeleteConfirmationComponent {\n deleteConfirmationForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private deleteConfirmationService: DeleteConfirmationService,\n protected transloco: TranslocoService,\n ) {\n this.deleteConfirmationForm = this.fb.group({\n confirmationText: ['', [Validators.required]],\n });\n }\n\n get title() {\n return this.deleteConfirmationService.modalTitle();\n }\n\n get resourceName() {\n return this.deleteConfirmationService.modalResourceName();\n }\n\n get confirmationText() {\n return this.deleteConfirmationService.modalConfirmationText();\n }\n\n get isOpen() {\n return this.deleteConfirmationService.modalIsOpen;\n }\n\n get isConfirmationValid(): boolean {\n const value = this.deleteConfirmationForm.value.confirmationText?.trim()?.toLowerCase();\n const confirmation = this.confirmationText?.trim()?.toLowerCase();\n return value == confirmation;\n }\n\n onCloseModal(): void {\n this.deleteConfirmationForm.reset();\n this.deleteConfirmationService.close();\n }\n\n onConfirmDelete(): void {\n const callback = this.deleteConfirmationService.getConfirmDeleteCallback();\n if (callback) {\n callback();\n }\n this.deleteConfirmationForm.reset();\n this.deleteConfirmationService.close();\n }\n}\n","@if (isOpen()) {\n <app-modal [title]=\"title\" [isOpen]=\"isOpen\" (closeModal)=\"onCloseModal()\">\n <form\n [formGroup]=\"deleteConfirmationForm\"\n method=\"POST\"\n class=\"delete-confirmation-content\"\n (ngSubmit)=\"onConfirmDelete()\"\n >\n <app-alert\n type=\"warning\"\n [text]=\"'deleteConfirmation.warning' | transloco\"\n size=\"sm\"\n [closeable]=\"false\"\n />\n\n <p class=\"delete-confirmation-instructions\">\n {{ 'deleteConfirmation.instructions' | transloco }}\n\n <span class=\"delete-confirmation-highlight\">\n {{ confirmationText }}\n </span>\n </p>\n\n <form-input\n name=\"confirmationText\"\n type=\"text\"\n class=\"delete-confirmation-field\"\n [required]=\"true\"\n [autocomplete]=\"false\"\n formControlName=\"confirmationText\"\n [placeholder]=\"\n transloco.translate('deleteConfirmation.placeholder', { text: confirmationText })\n \"\n />\n\n <div class=\"delete-confirmation-actions\">\n <app-button\n variant=\"tertiary\"\n [text]=\"'deleteConfirmation.cancel' | transloco\"\n (click)=\"onCloseModal()\"\n size=\"sm\"\n />\n\n <app-button\n type=\"submit\"\n variant=\"primary\"\n [text]=\"'deleteConfirmation.delete' | transloco\"\n [disabled]=\"!isConfirmationValid\"\n size=\"sm\"\n />\n </div>\n </form>\n </app-modal>\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { Auditable } from '../../../interfaces/auditable.interface';\n\n@Component({\n selector: 'app-audit-information',\n standalone: true,\n imports: [CommonModule, DatePipe],\n templateUrl: './audit-information.component.html',\n styleUrls: ['./audit-information.component.scss'],\n})\nexport class AuditInformationComponent {\n @Input() data: Auditable | null = null;\n}\n","@if (data) {\n <div class=\"audit-information\">\n <div class=\"audit-information-section\">\n <div class=\"audit-information-header\">\n <p class=\"audit-information-header-title\">Información de auditoria</p>\n </div>\n\n <div class=\"audit-information-body\">\n <ul class=\"audit-information-list\">\n <li class=\"audit-information-item\">\n <span class=\"audit-information-label\">Fecha de creación:</span>\n <span>{{ data.created_at | date: 'medium' }}</span>\n </li>\n\n @if (data.created_by_admin) {\n <li class=\"audit-information-item\">\n <span class=\"audit-information-label\">Creado por:</span>\n <span>\n {{ data.created_by_admin.first_name }} - {{ data.created_by_admin.email }}\n </span>\n </li>\n }\n\n @if (data.updated_at) {\n <li class=\"audit-information-item\">\n <span class=\"audit-information-label\">Última actualización:</span>\n <span>{{ data.updated_at | date: 'medium' }}</span>\n </li>\n }\n\n @if (data.updated_by_admin) {\n <li class=\"audit-information-item\">\n <span class=\"audit-information-label\">Actualizado por:</span>\n <span>\n {{ data.updated_by_admin.first_name }} - {{ data.updated_by_admin.email }}\n </span>\n </li>\n }\n\n @if (data.is_published && data.published_at) {\n <li class=\"audit-information-item\">\n <span class=\"audit-information-label\">Fecha de publicación:</span>\n <span>{{ data.published_at | date: 'medium' }}</span>\n </li>\n }\n\n @if (data.is_published && data.published_by_admin) {\n <li class=\"audit-information-item\">\n <span class=\"audit-information-label\">Publicado por:</span>\n <span>\n {{ data.published_by_admin.first_name }} - {{ data.published_by_admin.email }}\n </span>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n}\n","import { Component, EventEmitter, Input, Output, Type, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dynamic-table',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dynamic-table.component.html',\n styleUrls: ['./dynamic-table.component.scss'],\n})\nexport class DynamicTableComponent {\n constructor(private injector: Injector) {}\n\n @Input() title: string = '';\n @Input() data: any[] = [];\n @Input() headers: any[] = [];\n @Input() columnComponents: { [key: string]: Type<any> } = {};\n\n // Inputs necesarios para la paginación remota\n @Input() isLoading: boolean = true;\n @Input() totalItems: number = 0;\n @Input() itemsPerPage: number = 10;\n @Input() currentPage: number = 1;\n\n // Eventos para avisar al Backend\n @Output() pageChange = new EventEmitter<number>();\n @Output() searchChange = new EventEmitter<string>();\n\n // Visualización de paginación\n @Input() showPagination: boolean = true;\n\n // Visualización de búsqueda\n @Input() showSearch: boolean = true;\n\n // Visualización de título\n @Input() showTitle: boolean = true;\n\n get totalPages(): number {\n return Math.ceil(this.totalItems / this.itemsPerPage) || 1;\n }\n\n onSearch(event: any) {\n this.data = [];\n const value = event.target.value;\n this.searchChange.emit(value); // El padre recibe el término y hace el fetch\n }\n\n changePage(delta: number) {\n const newPage = this.currentPage + delta;\n if (newPage > 0 && newPage <= this.totalPages) {\n this.pageChange.emit(newPage); // El padre recibe la nueva página\n }\n }\n\n createInjector(row: any): Injector {\n return Injector.create({\n providers: [{ provide: 'ROW_DATA', useValue: row }],\n parent: this.injector,\n });\n }\n}\n","<div class=\"dynamic-table\">\n @if (showTitle || showSearch) {\n <div class=\"dynamic-table-toolbar\">\n @if (showTitle) {\n <h2 class=\"dynamic-table-title\">{{ title }}</h2>\n }\n\n @if (showSearch) {\n <input\n type=\"text\"\n (input)=\"onSearch($event)\"\n placeholder=\"Buscar...\"\n class=\"dynamic-table-search\"\n />\n }\n </div>\n }\n\n <div class=\"dynamic-table-scroll\">\n <table class=\"dynamic-table-table\">\n <thead class=\"dynamic-table-head\">\n <tr>\n @for (header of headers; track header.key) {\n <th class=\"dynamic-table-head-cell\">\n {{ header.label }}\n </th>\n }\n </tr>\n </thead>\n\n <tbody class=\"dynamic-table-body\">\n @if (isLoading) {\n <tr class=\"dynamic-table-row\">\n @for (header of headers; track header.key) {\n <td class=\"dynamic-table-cell\">\n <div class=\"dynamic-table-skeleton\"></div>\n </td>\n }\n </tr>\n }\n\n @for (row of data; track row) {\n <tr class=\"dynamic-table-row\">\n @for (header of headers; track header.key) {\n <td class=\"dynamic-table-cell dynamic-table-cell--nowrap\">\n @if (columnComponents[header.key]) {\n <ng-container\n *ngComponentOutlet=\"columnComponents[header.key]; injector: createInjector(row)\"\n ></ng-container>\n } @else {\n {{ row[header.key] || '---' }}\n }\n </td>\n }\n </tr>\n }\n\n @if ((!data || data.length < 1) && !isLoading) {\n <tr>\n <td [attr.colspan]=\"headers.length\" class=\"dynamic-table-empty\">\n No se encontraron registros en el servidor.\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n @if (showPagination) {\n <div class=\"dynamic-table-pagination\">\n <div class=\"dynamic-table-pagination-info\">\n Mostrando página\n <span class=\"dynamic-table-pagination-strong\">{{ currentPage }}</span> de\n <span class=\"dynamic-table-pagination-strong\">{{ totalPages }}</span>\n <span class=\"dynamic-table-pagination-total\">({{ totalItems }} registros totales)</span>\n </div>\n\n <div class=\"dynamic-table-pagination-actions\">\n <button\n (click)=\"changePage(-1)\"\n [disabled]=\"currentPage === 1\"\n class=\"dynamic-table-pagination-button\"\n >\n Anterior\n </button>\n <button\n (click)=\"changePage(1)\"\n [disabled]=\"currentPage >= totalPages\"\n class=\"dynamic-table-pagination-button\"\n >\n Siguiente\n </button>\n </div>\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { setStoredLanguage } from '../../../i18n/language.utils';\n\n@Component({\n selector: 'language-switcher',\n standalone: true,\n imports: [CommonModule, TranslocoModule],\n templateUrl: './language-switcher.component.html',\n styleUrls: ['./language-switcher.component.scss'],\n})\nexport class LanguageSwitcherComponent {\n availableLangs = ['es', 'en'];\n\n constructor(protected transloco: TranslocoService) {}\n\n get activeLang(): string {\n return this.transloco.getActiveLang();\n }\n\n switchLang(lang: string): void {\n this.transloco.setActiveLang(lang);\n setStoredLanguage(lang);\n }\n}\n","<div class=\"lang-switcher\">\n @for (lang of availableLangs; track lang) {\n <button\n (click)=\"switchLang(lang)\"\n class=\"lang-switcher-btn\"\n [class.active]=\"activeLang === lang\"\n [class.inactive]=\"activeLang !== lang\"\n >\n {{ lang | uppercase }}\n </button>\n }\n</div>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\n\n@Component({\n selector: 'form-select',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './form-select.component.html',\n styleUrls: ['./form-select.component.scss'],\n})\nexport class FormSelectComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = 'Seleccione una opción';\n @Input() required = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() options: SelectOption[] = [];\n @Input() fieldGroupClass: string = '';\n @Input() showDefaultOption: boolean = true;\n @Input() defaultOptionLabel: string = '';\n\n value: any = '';\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onSelectChange(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidSelection'),\n );\n }\n\n get resolvedDefaultOptionLabel(): string {\n return this.defaultOptionLabel || this.transloco.translate('common.selectOption');\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"form-select-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"form-select-required\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <select\n [id]=\"inputId\"\n [name]=\"name\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onSelectChange($event)\"\n (blur)=\"onTouched()\"\n class=\"form-select\"\n [class.disabled]=\"readonly\"\n [class.error]=\"showError\"\n >\n @if (showDefaultOption) {\n <option [value]=\"null\" disabled selected>{{ resolvedDefaultOptionLabel }}</option>\n }\n\n @for (option of options; track option.value) {\n <option [value]=\"option.value\" [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n </select>\n </div>\n\n @if (showError) {\n <div class=\"form-select-error-message\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\n\n@Component({\n selector: 'form-textarea',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './form-textarea.component.html',\n styleUrls: ['./form-textarea.component.scss'],\n})\nexport class FormTextareaComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() minlength: number | null = null;\n @Input() maxlength: number | null = null;\n @Input() rows: number = 4;\n @Input() cols: number | null = null;\n @Input() fieldGroupClass: string = '';\n\n value: any = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'maxlength') {\n return this.transloco.translate('formErrors.maxlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n return this.transloco.translate(`formErrors.${errorKey}`);\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"form-textarea-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"form-textarea-required\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <textarea\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n class=\"form-textarea\"\n [class.disabled]=\"readonly\"\n [class.error]=\"showError\"\n ></textarea>\n </div>\n\n @if (showError) {\n <div class=\"form-textarea-error-message\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, Input, Self, Optional, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { TranslocoService } from '@jsverse/transloco';\nimport {\n Editor,\n NgxEditorComponent,\n NgxEditorMenuComponent,\n DEFAULT_TOOLBAR,\n Toolbar,\n toHTML,\n} from 'ngx-editor';\n\n@Component({\n selector: 'form-editor',\n standalone: true,\n imports: [\n FormsModule,\n CommonModule,\n ReactiveFormsModule,\n NgxEditorComponent,\n NgxEditorMenuComponent,\n ],\n templateUrl: './form-editor.component.html',\n styleUrls: ['./form-editor.component.scss'],\n})\nexport class FormEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() toolbar: Toolbar = DEFAULT_TOOLBAR;\n @Input() fieldGroupClass = '';\n\n editor!: Editor;\n value: string = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n private subscription: Subscription | null = null;\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.editor = new Editor();\n\n if (this.value) {\n this.editor.setContent(this.value);\n }\n\n this.subscription = this.editor.valueChanges\n .pipe(distinctUntilChanged())\n .subscribe((doc: Record<string, unknown>) => {\n this.value = toHTML(doc);\n this.onChange(this.value);\n this.onTouched();\n });\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.editor?.destroy();\n }\n\n writeValue(value: any): void {\n this.value = value ?? '';\n\n if (this.editor) {\n this.editor.setContent(value ?? null);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n return control.invalid ? control.dirty || control.touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n if (errorKey === 'maxlength') {\n return this.transloco.translate('formErrors.maxlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidField'),\n );\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"form-editor-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"form-editor-required\">*</span>\n }\n </label>\n }\n\n <div class=\"form-editor-wrapper\" [class.disabled]=\"disabled\">\n <ngx-editor [editor]=\"editor\" outputFormat=\"html\" [placeholder]=\"placeholder\">\n <ngx-editor-menu\n [editor]=\"editor\"\n [toolbar]=\"toolbar\"\n [disabled]=\"disabled\"\n ></ngx-editor-menu>\n </ngx-editor>\n </div>\n\n @if (showError) {\n <div class=\"form-editor-error-message\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import {\n Component,\n Input,\n Self,\n Optional,\n ElementRef,\n HostListener,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'color-picker',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n})\nexport class ColorPickerComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '#000000';\n @Input() required = false;\n @Input() readonly = false;\n @Input() fieldGroupClass: string = '';\n @Input() showPreview = true;\n @Input() presetColors: string[] = [\n '#000000',\n '#FFFFFF',\n '#EF4444',\n '#F97316',\n '#F59E0B',\n '#EAB308',\n '#84CC16',\n '#22C55E',\n '#10B981',\n '#14B8A6',\n '#06B6D4',\n '#0EA5E9',\n '#3B82F6',\n '#6366F1',\n '#8B5CF6',\n '#A855F7',\n '#D946EF',\n '#EC4899',\n '#F43F5E',\n '#6B7280',\n ];\n @Output() colorChange = new EventEmitter<string>();\n\n value: string = '#000000';\n disabled = false;\n isDropdownOpen = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private elementRef: ElementRef,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const clickedInside = this.elementRef.nativeElement.contains(event.target);\n if (!clickedInside && this.isDropdownOpen) {\n this.isDropdownOpen = false;\n }\n }\n\n // Control value accessor methods\n writeValue(value: string): void {\n if (value) {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onColorChange(color: string): void {\n this.value = color;\n this.onChange(color);\n this.onTouched();\n }\n\n onInputColorChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(input.value);\n this.onTouched();\n this.colorChange.emit(input.value);\n }\n\n toggleDropdown(): void {\n if (this.disabled || this.readonly) return;\n this.isDropdownOpen = !this.isDropdownOpen;\n }\n\n selectPresetColor(color: string): void {\n this.onColorChange(color);\n this.colorChange.emit(color);\n this.isDropdownOpen = false;\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n\n isValidHexColor(color: string): boolean {\n return /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(color);\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"color-picker-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"color-picker-required\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <div class=\"color-picker-row\">\n <!-- Color Input -->\n <div class=\"color-picker-input-wrapper\">\n <input\n type=\"text\"\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInputColorChange($event)\"\n (blur)=\"onTouched()\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n class=\"color-picker-input\"\n [class.disabled]=\"readonly\"\n [class.error]=\"showError\"\n pattern=\"^#[0-9A-Fa-f]{6}$\"\n />\n\n <!-- Native Color Picker (Hidden) -->\n <input\n type=\"color\"\n class=\"color-picker-native-input\"\n [disabled]=\"disabled || readonly\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onColorChange($event)\"\n />\n </div>\n\n <!-- Color Preview -->\n @if (showPreview) {\n <div class=\"color-picker-preview-wrapper\">\n <div\n class=\"color-picker-swatch\"\n [style.background-color]=\"value\"\n (click)=\"toggleDropdown()\"\n [class.disabled]=\"disabled || readonly\"\n ></div>\n </div>\n }\n </div>\n\n <!-- Color Presets Dropdown -->\n @if (isDropdownOpen && !disabled && !readonly) {\n <div class=\"color-picker-dropdown\">\n <div class=\"color-picker-presets\">\n @for (color of presetColors; track color) {\n <button\n type=\"button\"\n class=\"color-picker-preset-button\"\n [style.background-color]=\"color\"\n (click)=\"selectPresetColor(color)\"\n [attr.aria-label]=\"`Select color ${color}`\"\n ></button>\n }\n </div>\n\n <!-- Custom Color Input -->\n <div class=\"color-picker-custom\">\n <label class=\"color-picker-custom-label\">Custom color:</label>\n <input\n type=\"color\"\n class=\"color-picker-custom-input\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onColorChange($event)\"\n />\n </div>\n </div>\n }\n </div>\n\n @if (showError) {\n <div class=\"color-picker-error-message\">Please enter a valid hex color (e.g., #FF5733)</div>\n }\n</div>\n","import { Component, Input, Self, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService } from '@jsverse/transloco';\n\n@Component({\n selector: 'date-input',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n})\nexport class DateInputComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() type = 'date';\n @Input() includeTime = false;\n @Input() name = '';\n @Input() id = '';\n @Input() placeholder = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() min: string | null = null;\n @Input() max: string | null = null;\n @Input() fieldGroupClass: string = '';\n @Input() dateFormat: string = 'yyyy-MM-dd';\n\n value: any = '';\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: any): void {\n if (value) {\n if (value instanceof Date) {\n this.value = this.formatDateForInput(value);\n } else if (typeof value === 'string') {\n this.value = value;\n } else {\n this.value = '';\n }\n } else {\n this.value = '';\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInput(value: any): void {\n this.value = value;\n const dateValue = value ? new Date(value) : null;\n this.onChange(dateValue);\n this.onTouched();\n }\n\n private formatDateForInput(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n\n if (this.includeTime) {\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n return `${year}-${month}-${day}T${hours}:${minutes}`;\n }\n\n return `${year}-${month}-${day}`;\n }\n\n private parseDateFromString(dateString: string): Date | null {\n if (!dateString) return null;\n const date = new Date(dateString);\n return isNaN(date.getTime()) ? null : date;\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n if (errorKey === 'minlength') {\n return this.transloco.translate('formErrors.minlength', {\n length: errors[errorKey].requiredLength,\n });\n }\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidField'),\n );\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"date-input-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"date-input-required\">*</span>\n }\n </label>\n }\n\n <div class=\"relative\">\n <input\n [type]=\"includeTime ? 'datetime-local' : type\"\n [id]=\"inputId\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [min]=\"min\"\n [max]=\"max\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled\"\n class=\"date-input\"\n [class.disabled]=\"readonly\"\n [class.error]=\"showError\"\n [readonly]=\"readonly\"\n />\n </div>\n\n @if (showError) {\n <div class=\"date-input-error-message\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, Input, Self, Optional, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'toggle-switch',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule],\n templateUrl: './toggle-switch.component.html',\n styleUrls: ['./toggle-switch.component.scss'],\n})\nexport class ToggleSwitchComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() required = false;\n @Input() disabled = false;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() fieldGroupClass: string = '';\n @Input() description = '';\n @Output() toggleClick = new EventEmitter<boolean>();\n\n value: boolean = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(@Self() @Optional() public ngControl: NgControl) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n // Control value accessor methods\n writeValue(value: any): void {\n this.value = value ?? false;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onToggle(): void {\n this.value = !this.value;\n this.onChange(this.value);\n this.onTouched();\n this.toggleClick.emit(this.value);\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"toggle-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"toggle-required\">*</span>\n }\n </label>\n }\n\n <div class=\"toggle-container\">\n <button\n type=\"button\"\n role=\"switch\"\n [id]=\"inputId\"\n [name]=\"name\"\n [attr.aria-checked]=\"value\"\n [attr.aria-required]=\"required\"\n [disabled]=\"disabled\"\n [class]=\"\n 'toggle-switch ' +\n size +\n (value ? ' checked' : ' unchecked') +\n (disabled ? ' disabled' : '')\n \"\n (click)=\"onToggle()\"\n >\n <span\n [class]=\"\n 'toggle-thumb ' +\n size +\n (value ? ' checked' : ' unchecked') +\n (disabled ? ' disabled' : '')\n \"\n ></span>\n </button>\n\n @if (description) {\n <span class=\"toggle-description\">{{ description }}</span>\n }\n </div>\n\n <!-- Hidden checkbox for form submission and accessibility -->\n <input\n type=\"checkbox\"\n [id]=\"inputId + '-hidden'\"\n [name]=\"name\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n class=\"toggle-hidden\"\n (change)=\"onToggle()\"\n />\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FileType } from '../../../enums/file-type.enum';\nimport { UploadedFile } from '../../../interfaces/uploaded-file.interface';\nimport { AppButtonComponent } from '../../buttons/app-button/app-button.component';\n\n@Component({\n selector: 'file-upload-preview',\n standalone: true,\n imports: [FormsModule, CommonModule, ReactiveFormsModule, AppButtonComponent],\n templateUrl: './file-upload-preview.component.html',\n styleUrls: ['./file-upload-preview.component.scss'],\n})\nexport class FileUploadPreviewComponent {\n @Input({ required: true }) file: UploadedFile = {} as UploadedFile;\n @Output() remove = new EventEmitter<UploadedFile>();\n\n removeFile(): void {\n this.remove.emit(this.file);\n }\n\n getFileType(file: UploadedFile): FileType {\n if (file.type.startsWith('image/')) return FileType.IMAGE;\n if (file.type === 'application/pdf') return FileType.PDF;\n if (\n file.type.includes('spreadsheet') ||\n file.type.includes('excel') ||\n file.extension === 'xlsx' ||\n file.extension === 'xls' ||\n file.extension === 'csv'\n ) {\n return FileType.EXCEL;\n }\n if (\n file.type.includes('word') ||\n file.type.includes('document') ||\n file.extension === 'docx' ||\n file.extension === 'doc'\n ) {\n return FileType.WORD;\n }\n if (file.type.startsWith('text/') || file.extension === 'txt') {\n return FileType.TEXT;\n }\n return FileType.DEFAULT;\n }\n\n getFileIcon(fileType: FileType): string {\n switch (fileType) {\n case FileType.IMAGE:\n return 'ri-image-line';\n case FileType.PDF:\n return 'ri-file-pdf-line';\n case FileType.EXCEL:\n return 'ri-file-excel-line';\n case FileType.WORD:\n return 'ri-file-word-line';\n case FileType.TEXT:\n return 'ri-file-text-line';\n default:\n return 'ri-file-line';\n }\n }\n\n getFileTypeIcon(file: UploadedFile): string {\n return this.getFileIcon(this.getFileType(file));\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n}\n","<div class=\"file-preview-item\">\n <div class=\"file-preview-content\">\n <!-- File Preview/Icon -->\n <div class=\"file-preview-icon-wrapper\">\n @if (file.preview) {\n <img [src]=\"file.preview\" [alt]=\"file.name\" class=\"file-preview-image\" />\n } @else {\n <div class=\"file-preview-icon-placeholder\">\n <i [class]=\"getFileTypeIcon(file) + ' file-preview-icon'\"></i>\n </div>\n }\n </div>\n\n <!-- File Info -->\n <div class=\"file-preview-info\">\n <p class=\"file-preview-name\">\n {{ file.name }}\n </p>\n <p class=\"file-preview-meta\">\n @if (!!file.size) {\n {{ formatFileSize(file.size) }}\n }\n @if (file.extension) {\n • {{ file.extension.toUpperCase() }}\n }\n </p>\n </div>\n </div>\n\n <!-- Actions -->\n <div class=\"file-preview-actions\">\n <app-button\n icon=\"ri-delete-bin-line\"\n (clicked)=\"removeFile()\"\n variant=\"primary\"\n size=\"xs\"\n title=\"Eliminar archivo\"\n />\n </div>\n</div>\n","import { Component, Input, Self, Optional, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslocoService, TranslocoModule } from '@jsverse/transloco';\nimport { FileUploadConfig } from '../../../interfaces/file-upload-config.interface';\nimport { UploadedFile } from '../../../interfaces/uploaded-file.interface';\nimport { FileType } from '../../../enums/file-type.enum';\nimport { FileUploadPreviewComponent } from '../file-upload-preview/file-upload-preview.component';\n\n@Component({\n selector: 'file-upload',\n standalone: true,\n imports: [\n FormsModule,\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n FileUploadPreviewComponent,\n ],\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class FileUploadComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() name = '';\n @Input() id = '';\n @Input() required = false;\n @Input() readonly = false;\n @Input() fieldGroupClass: string = '';\n @Input() config: FileUploadConfig = {};\n @Input() accept: string = '*/*';\n\n @Output() fileSelected = new EventEmitter<UploadedFile[]>();\n @Output() fileRemoved = new EventEmitter<UploadedFile>();\n @Output() validationError = new EventEmitter<string>();\n\n files: UploadedFile[] = [];\n disabled = false;\n onChange: any = () => {};\n onTouched: any = () => {};\n dragOver = false;\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n private transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n writeValue(value: UploadedFile[] | null): void {\n this.files = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onFileSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files && input.files.length > 0) {\n this.handleFiles(Array.from(input.files));\n }\n input.value = '';\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = false;\n\n if (event.dataTransfer?.files && event.dataTransfer.files.length > 0) {\n this.handleFiles(Array.from(event.dataTransfer.files));\n }\n }\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = true;\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = false;\n }\n\n private async handleFiles(fileList: File[]): Promise<void> {\n const newFiles: UploadedFile[] = [];\n\n for (const file of fileList) {\n const validationError = this.validateFile(file);\n if (validationError) {\n this.validationError.emit(validationError);\n continue;\n }\n\n const uploadedFile: UploadedFile = {\n file,\n name: file.name,\n size: file.size,\n type: file.type,\n extension: this.getFileExtension(file.name),\n };\n\n if (this.isImage(file)) {\n uploadedFile.preview = await this.generateImagePreview(file);\n }\n\n newFiles.push(uploadedFile);\n }\n\n if (this.config.multiple) {\n const maxFiles = this.config.maxFiles || 10;\n const totalFiles = [...this.files, ...newFiles].slice(0, maxFiles);\n this.files = totalFiles;\n } else {\n this.files = newFiles.slice(0, 1);\n }\n\n this.onChange(this.files);\n this.onTouched();\n this.fileSelected.emit(this.files);\n }\n\n private validateFile(file: File): string | null {\n if (this.config.maxFileSize && file.size > this.config.maxFileSize) {\n const maxSizeMB = this.config.maxFileSize / (1024 * 1024);\n return this.transloco.translate('fileUpload.sizeError', {\n fileName: file.name,\n maxSize: maxSizeMB.toFixed(2),\n });\n }\n\n if (this.config.allowedExtensions && this.config.allowedExtensions.length > 0) {\n const extension = this.getFileExtension(file.name);\n if (!this.config.allowedExtensions.includes(extension)) {\n return this.transloco.translate('fileUpload.extensionError', {\n fileName: file.name,\n extensions: this.config.allowedExtensions.join(', '),\n });\n }\n }\n\n return null;\n }\n\n private getFileExtension(filename: string): string {\n return filename.split('.').pop()?.toLowerCase() || '';\n }\n\n private isImage(file: File): boolean {\n return file.type.startsWith('image/');\n }\n\n private async generateImagePreview(file: File): Promise<string> {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n resolve(e.target?.result as string);\n };\n reader.readAsDataURL(file);\n });\n }\n\n removeFile(index: number): void {\n const removedFile = this.files[index];\n this.files.splice(index, 1);\n this.onChange(this.files);\n this.onTouched();\n this.fileRemoved.emit(removedFile);\n }\n\n getFileType(file: UploadedFile): FileType {\n if (file.type.startsWith('image/')) return FileType.IMAGE;\n if (file.type === 'application/pdf') return FileType.PDF;\n if (\n file.type.includes('spreadsheet') ||\n file.type.includes('excel') ||\n file.extension === 'xlsx' ||\n file.extension === 'xls' ||\n file.extension === 'csv'\n ) {\n return FileType.EXCEL;\n }\n if (\n file.type.includes('word') ||\n file.type.includes('document') ||\n file.extension === 'docx' ||\n file.extension === 'doc'\n ) {\n return FileType.WORD;\n }\n if (file.type.startsWith('text/') || file.extension === 'txt') {\n return FileType.TEXT;\n }\n return FileType.DEFAULT;\n }\n\n getFileIcon(fileType: FileType): string {\n switch (fileType) {\n case FileType.IMAGE:\n return 'ri-image-line';\n case FileType.PDF:\n return 'ri-file-pdf-line';\n case FileType.EXCEL:\n return 'ri-file-excel-line';\n case FileType.WORD:\n return 'ri-file-word-line';\n case FileType.TEXT:\n return 'ri-file-text-line';\n default:\n return 'ri-file-line';\n }\n }\n\n getFileTypeIcon(file: UploadedFile): string {\n return this.getFileIcon(this.getFileType(file));\n }\n\n triggerFileInput(): void {\n const inputElement = document.getElementById(this.inputId) as HTMLInputElement;\n if (inputElement) {\n inputElement.click();\n }\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n\n get inputId(): string {\n return this.id || this.name;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n const dirty = control.dirty;\n const touched = control.touched;\n return control.invalid ? dirty || touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n\n const errors = this.ngControl.errors;\n const errorKey = Object.keys(errors)[0];\n\n return this.transloco.translate(\n `formErrors.${errorKey}`,\n {},\n this.transloco.translate('formErrors.invalidField'),\n );\n }\n\n get fieldGroupClasses(): string {\n let baseClasses = '';\n\n if (this.fieldGroupClass) {\n baseClasses += ` ${this.fieldGroupClass}`;\n } else {\n baseClasses += ' w-full';\n }\n\n return baseClasses;\n }\n\n get uploadAreaClasses(): string {\n const baseClasses = 'file-upload-area';\n\n if (this.disabled) {\n return `${baseClasses} disabled`;\n }\n\n if (this.dragOver) {\n return `${baseClasses} drag-over`;\n }\n\n return baseClasses;\n }\n}\n","<div [class]=\"fieldGroupClasses\">\n @if (label) {\n <label [for]=\"inputId\" class=\"file-upload-label\">\n {{ label }}\n\n @if (required) {\n <span class=\"file-upload-required\">*</span>\n }\n </label>\n }\n\n <!-- Upload Area -->\n <div\n class=\"file-upload-container\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n >\n <div [class]=\"uploadAreaClasses\" (click)=\"!disabled && triggerFileInput()\">\n <input\n [id]=\"inputId\"\n [name]=\"name\"\n type=\"file\"\n [accept]=\"accept\"\n [multiple]=\"config.multiple\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (change)=\"onFileSelect($event)\"\n (blur)=\"onTouched()\"\n class=\"file-upload-hidden\"\n />\n\n <div class=\"file-upload-content\">\n <i class=\"ri-upload-cloud-2-line file-upload-icon\"></i>\n <div class=\"file-upload-text\">\n <p class=\"file-upload-primary-text\">\n @if (config.multiple) {\n {{ 'fileUpload.dropMultiple' | transloco }}\n } @else {\n {{ 'fileUpload.dropSingle' | transloco }}\n }\n </p>\n <p class=\"file-upload-secondary-text\">\n @if (config.allowedExtensions && config.allowedExtensions.length > 0) {\n {{ 'fileUpload.allowedExtensions' | transloco }}\n {{ config.allowedExtensions.join(', ') }}\n }\n @if (config.maxFileSize) {\n • {{ 'fileUpload.maxSize' | transloco }} {{ formatFileSize(config.maxFileSize) }}\n }\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Files Preview -->\n @if (files.length > 0) {\n <div class=\"file-upload-list\">\n @for (file of files; track file; let i = $index) {\n <file-upload-preview [file]=\"file\" (remove)=\"removeFile(i)\" />\n }\n </div>\n }\n\n <!-- Validation Error -->\n @if (showError) {\n <div class=\"file-upload-error\">\n {{ errorMessage }}\n </div>\n }\n\n <!-- File Type Legend -->\n @if (files.length === 0) {\n <div class=\"file-upload-legend\">\n <div class=\"file-upload-legend-item\">\n <i class=\"ri-image-line file-upload-legend-icon-blue\"></i>\n <span>{{ 'fileUpload.fileTypeImages' | transloco }}</span>\n </div>\n <div class=\"file-upload-legend-item\">\n <i class=\"ri-file-pdf-line file-upload-legend-icon-red\"></i>\n <span>PDF</span>\n </div>\n <div class=\"file-upload-legend-item\">\n <i class=\"ri-file-excel-line file-upload-legend-icon-green\"></i>\n <span>{{ 'fileUpload.fileTypeExcel' | transloco }}</span>\n </div>\n <div class=\"file-upload-legend-item\">\n <i class=\"ri-file-word-line file-upload-legend-icon-word\"></i>\n <span>{{ 'fileUpload.fileTypeWord' | transloco }}</span>\n </div>\n <div class=\"file-upload-legend-item\">\n <i class=\"ri-file-text-line file-upload-legend-icon-gray\"></i>\n <span>{{ 'fileUpload.fileTypeText' | transloco }}</span>\n </div>\n <div class=\"file-upload-legend-item\">\n <i class=\"ri-file-line file-upload-legend-icon-muted\"></i>\n <span>{{ 'fileUpload.fileTypeOther' | transloco }}</span>\n </div>\n </div>\n }\n</div>\n","import {\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, NgControl, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Subject, Observable, of } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n switchMap,\n takeUntil,\n catchError,\n map,\n} from 'rxjs/operators';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\n\nexport interface AsyncSelectConfig<T = any> {\n load: (params?: { search?: string; parentId?: number }) => Observable<T>;\n map: (response: T) => SelectOption[];\n}\n\n@Component({\n selector: 'async-select',\n standalone: true,\n imports: [CommonModule, FormsModule, NgSelectModule],\n templateUrl: './async-select.component.html',\n styleUrls: ['./async-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AsyncSelectComponent),\n multi: true,\n },\n ],\n})\nexport class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\n @Input() config?: AsyncSelectConfig<any>;\n @Input() items: SelectOption[] = [];\n @Input() parentId?: number | null;\n @Input() label = '';\n @Input() placeholder = 'Seleccione...';\n @Input() name = '';\n @Input() required = false;\n @Input() multiple = false;\n @Input() clearable = true;\n @Input() searchable = true;\n @Input() loading = false;\n @Input() virtualScroll = false;\n @Input() notFoundText = 'No se encontraron resultados';\n @Input() bindLabel = 'label';\n @Input() bindValue = 'value';\n\n value: any = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n displayItems: SelectOption[] = [];\n loadingSignal = signal(false);\n private searchTerm$ = new Subject<string>();\n private destroy$ = new Subject<void>();\n private injector = inject(Injector);\n private _ngControl: NgControl | null = null;\n\n constructor() {}\n\n private get ngControl(): NgControl | null {\n if (!this._ngControl) {\n this._ngControl = this.injector.get(NgControl, null);\n }\n return this._ngControl;\n }\n\n ngOnInit() {\n this.setupSearch();\n if (this.config) {\n this.loadAndMap();\n } else {\n this.displayItems = this.items;\n this.searchMode();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['parentId'] && !changes['parentId'].firstChange) {\n this.handleParentIdChange();\n }\n if (changes['items'] && !changes['items'].firstChange && !this.config) {\n this.displayItems = this.items;\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private setupSearch() {\n this.searchTerm$\n .pipe(\n debounceTime(400),\n distinctUntilChanged(),\n switchMap((term) => {\n if (this.config) {\n this.loadingSignal.set(true);\n return this.fetchData({ search: term });\n }\n return of(this.displayItems);\n }),\n takeUntil(this.destroy$),\n )\n .subscribe((options) => {\n this.displayItems = options;\n this.loadingSignal.set(false);\n });\n }\n\n private searchMode() {\n this.searchTerm$\n .pipe(\n debounceTime(400),\n distinctUntilChanged(),\n switchMap((term) => {\n this.loadingSignal.set(true);\n setTimeout(() => this.loadingSignal.set(false), 150);\n return of(\n this.items.filter((item) => item.label.toLowerCase().includes(term.toLowerCase())),\n );\n }),\n takeUntil(this.destroy$),\n )\n .subscribe((options) => {\n this.displayItems = options;\n });\n }\n\n private loadAndMap(params?: { search?: string; parentId?: number }) {\n if (!this.config) return;\n this.loadingSignal.set(true);\n this.fetchData(params)\n .pipe(takeUntil(this.destroy$))\n .subscribe((options) => {\n this.displayItems = options;\n this.loadingSignal.set(false);\n });\n }\n\n private fetchData(params?: { search?: string; parentId?: number }): Observable<SelectOption[]> {\n if (!this.config) return of([]);\n\n const mergedParams = { ...params };\n if (this.parentId != null && mergedParams.parentId == null) {\n mergedParams.parentId = this.parentId;\n }\n\n return this.config.load(mergedParams).pipe(\n map((res) => this.config!.map(res)),\n catchError(() => of([])),\n );\n }\n\n private handleParentIdChange() {\n this.value = this.multiple ? [] : null;\n this.onChange(this.value);\n\n if (this.parentId != null && this.config) {\n this.loadAndMap({ parentId: this.parentId });\n } else if (this.config) {\n this.displayItems = [];\n this.loadingSignal.set(false);\n }\n }\n\n onSearch(event: any) {\n const term = event?.term || '';\n this.searchTerm$.next(term);\n }\n\n onSelectChange(value: any) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n\n get typeahead$(): Subject<string> {\n return this.searchTerm$;\n }\n\n get showError(): boolean {\n if (!this.ngControl || !this.ngControl.control) return false;\n const control = this.ngControl.control;\n return control.invalid ? control.dirty || control.touched : false;\n }\n\n get errorMessage(): string {\n if (!this.ngControl?.errors) return '';\n const errorKey = Object.keys(this.ngControl.errors)[0];\n return 'Campo inválido';\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.loading = isDisabled;\n }\n}\n","<div class=\"async-select-wrapper\">\n @if (label) {\n <label class=\"async-select-label\">\n {{ label }}\n @if (required) {\n <span class=\"async-select-required\">*</span>\n }\n </label>\n }\n\n <ng-select\n [items]=\"displayItems\"\n [multiple]=\"multiple\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading || loadingSignal()\"\n [virtualScroll]=\"virtualScroll\"\n [notFoundText]=\"notFoundText\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [ngModel]=\"value\"\n [typeahead]=\"typeahead$\"\n [closeOnSelect]=\"!multiple\"\n [class.error]=\"showError\"\n (ngModelChange)=\"onSelectChange($event)\"\n (blur)=\"onTouched()\"\n (search)=\"onSearch($event)\"\n />\n\n @if (showError) {\n <div class=\"async-select-error-message\">\n {{ errorMessage }}\n </div>\n }\n</div>\n","import { Component, signal, ViewEncapsulation, WritableSignal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { AppButtonComponent } from '../../buttons/app-button/app-button.component';\nimport { FormInputComponent } from '../../forms/form-input/form-input.component';\nimport { AppModalComponent } from '../../modals/modal/modal.component';\nimport { ChangePasswordFormService } from '../../../services/change-password-form.service';\nimport { MustMatchValidator } from '../../../validators/must-match.validator';\nimport { CustomerService } from '../../../services/customer.service';\nimport { AdminService } from '../../../services/admin.service';\nimport { ToastService } from '../../../services/toast.service';\n\n@Component({\n selector: 'change-password-form',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n AppButtonComponent,\n FormInputComponent,\n AppModalComponent,\n ],\n providers: [AdminService, CustomerService],\n templateUrl: './change-password-form.component.html',\n styleUrls: ['./change-password-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChangePasswordFormComponent {\n changePasswordForm: FormGroup;\n loading: WritableSignal<boolean> = signal(false);\n\n constructor(\n private fb: FormBuilder,\n private changePasswordFormService: ChangePasswordFormService,\n private customerService: CustomerService,\n private adminService: AdminService,\n private toastService: ToastService,\n private transloco: TranslocoService,\n ) {\n this.changePasswordForm = this.fb.group(\n {\n password: ['', [Validators.required, Validators.minLength(6)]],\n confirm_password: ['', [Validators.required, Validators.minLength(6)]],\n },\n {\n validators: MustMatchValidator('password', 'confirm_password'),\n },\n );\n }\n\n get isOpen() {\n return this.changePasswordFormService.modalIsOpen;\n }\n\n get resourceId() {\n return this.changePasswordFormService.resourceId;\n }\n\n onCloseModal(): void {\n this.changePasswordForm.reset();\n this.changePasswordFormService.close();\n }\n\n onConfirmDelete(): void {\n this.loading.set(true);\n\n const service = this.changePasswordFormService.isAdminMode()\n ? this.adminService\n : this.customerService;\n\n const isAdmin = this.changePasswordFormService.isAdminMode();\n const successKey = isAdmin ? 'changePassword.adminSuccess' : 'changePassword.customerSuccess';\n const errorKey = isAdmin ? 'changePassword.adminError' : 'changePassword.customerError';\n\n service.updateOne(this.resourceId(), this.changePasswordForm.value).subscribe({\n next: () => {\n this.toastService.show(this.transloco.translate(successKey), 'success');\n this.changePasswordForm.reset();\n this.changePasswordFormService.close();\n this.loading.set(false);\n },\n error: (error: any) => {\n console.error('Error al actualizar contraseña:', error);\n this.toastService.show(this.transloco.translate(errorKey), 'error');\n this.loading.set(false);\n },\n });\n }\n}\n","@if (isOpen()) {\n <app-modal\n [title]=\"'changePassword.title' | transloco\"\n [isOpen]=\"isOpen\"\n (closeModal)=\"onCloseModal()\"\n >\n <form\n [formGroup]=\"changePasswordForm\"\n method=\"POST\"\n class=\"change-password-form-body\"\n (ngSubmit)=\"onConfirmDelete()\"\n >\n <form-input\n [label]=\"'changePassword.newPasswordLabel' | transloco\"\n [placeholder]=\"'changePassword.newPasswordPlaceholder' | transloco\"\n name=\"password\"\n type=\"password\"\n class=\"change-password-form-field\"\n [required]=\"true\"\n [autocomplete]=\"false\"\n formControlName=\"password\"\n />\n\n <form-input\n [label]=\"'changePassword.confirmPasswordLabel' | transloco\"\n [placeholder]=\"'changePassword.confirmPasswordPlaceholder' | transloco\"\n name=\"confirm_password\"\n type=\"password\"\n class=\"change-password-form-field\"\n [required]=\"true\"\n [autocomplete]=\"false\"\n formControlName=\"confirm_password\"\n />\n\n <div class=\"change-password-form-actions\">\n <app-button\n variant=\"tertiary\"\n [text]=\"'changePassword.cancel' | transloco\"\n (click)=\"onCloseModal()\"\n size=\"sm\"\n />\n\n <app-button\n [disabled]=\"loading() || changePasswordForm.invalid || changePasswordForm.pristine\"\n [loading]=\"loading()\"\n type=\"submit\"\n variant=\"primary\"\n [text]=\"'changePassword.save' | transloco\"\n [loadingText]=\"'changePassword.saving' | transloco\"\n size=\"sm\"\n />\n </div>\n </form>\n </app-modal>\n}\n","import { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ControlValueAccessor, Validator } from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { AdminService } from '../../../services/admin.service';\nimport { Admin } from '../../../interfaces/admins/admin.interface';\n\n@Component({\n selector: 'admin-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './admin-select.component.html',\n styleUrls: ['./admin-select.component.scss'],\n})\nexport class AdminSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'Equipo de trabajo';\n @Input() placeholder: string = 'Selecciona un equipo de trabajo';\n @Input() name: string = 'admin_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() adminChange = new EventEmitter<number | null>();\n\n admins: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private adminService: AdminService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.loadAdmins();\n }\n }\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadAdmins() {\n this.loading.set(true);\n this.adminService\n .fetchAdmins()\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: ({ data: { admins } }: { data: { admins: Admin[] } }) => {\n this.admins.set(\n admins?.map((admin) => ({\n value: admin.id,\n label: `${admin.first_name} ${admin.last_name} - ${admin.email}`,\n })) || [],\n );\n this.loading.set(false);\n },\n error: () => {\n this.admins.set([]);\n this.loading.set(false);\n },\n });\n }\n\n // In admin-select.component.ts\n onAdminSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n // Update the local value\n this.value = value;\n\n // Update the form control if it exists\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n // Emit the change event\n this.adminChange.emit(value);\n }\n\n // ControlValueAccessor methods\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n // Helper method to check if control is invalid\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'country_id'\"\n [class]=\"customClass\"\n [options]=\"admins()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onAdminSelected($event)\"\n/>\n","import {\n Component,\n OnInit,\n OnDestroy,\n forwardRef,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n NG_VALIDATORS,\n Validator,\n AbstractControl,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CitiesService } from '../../../services/cities.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { CitiesResponse } from '../../../interfaces/cities/cities-response.interface';\nimport { formatCitiesResponseToSelect } from '../../../helpers/format-cities-response-to-select.helper';\n\n@Component({\n selector: 'city-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './city-select.component.html',\n styleUrls: ['./city-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CitySelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CitySelectComponent),\n multi: true,\n },\n ],\n})\nexport class CitySelectComponent\n implements OnInit, OnDestroy, OnChanges, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Ciudad';\n @Input() name: string = 'city_id';\n @Input() placeholder: string = 'Selecciona una ciudad';\n @Input() required: boolean = false;\n @Input() disabled: boolean = false;\n @Input() readonly: boolean = false;\n @Input() stateId: number | null = null;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() cityChange = new EventEmitter<number | null>();\n\n cities: WritableSignal<SelectOption[]> = signal([]);\n loading: boolean = false;\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(private citiesService: CitiesService) {}\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnInit() {\n this.loadCities();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['stateId'] && !changes['stateId'].firstChange) {\n this.value = null;\n this.onChange(null);\n this.cityChange.emit(null);\n\n if (this.stateId) {\n this.loadCities();\n } else {\n this.cities.set([]);\n }\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadCities() {\n this.loading = true;\n this.citiesService\n .fetchCities({ stateId: this.stateId ?? undefined })\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (response: CitiesResponse) => {\n this.cities.set(formatCitiesResponseToSelect(response));\n this.loading = false;\n },\n error: () => {\n this.cities.set([]);\n this.loading = false;\n },\n });\n }\n\n onCitySelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.cityChange.emit(value);\n }\n\n // ControlValueAccessor methods\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // Validator method\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n\n get isDisabled(): boolean {\n return this.disabled || this.readonly || !this.stateId || this.loading;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [class]=\"customClass\"\n [required]=\"required\"\n [options]=\"cities()\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onCitySelected($event)\"\n/>\n","import { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AbstractControl, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ControlValueAccessor, Validator } from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { CountryService } from '../../../services/country.service';\n\n@Component({\n selector: 'country-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './country-select.component.html',\n styleUrls: ['./country-select.component.scss'],\n})\nexport class CountrySelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'País';\n @Input() placeholder: string = 'Selecciona un país';\n @Input() name: string = 'country_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() countryChange = new EventEmitter<number | null>();\n\n countries: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private countryService: CountryService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.loadCountries();\n }\n }\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadCountries() {\n this.loading.set(true);\n this.countryService\n .fetchCountries()\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: ({ data: { countries } }: { data: { countries: any[] } }) => {\n this.countries.set(\n countries?.map((country) => ({\n value: country.id,\n label: country.name,\n })) || [],\n );\n this.loading.set(false);\n },\n error: () => {\n this.countries.set([]);\n this.loading.set(false);\n },\n });\n }\n\n // In country-select.component.ts\n onCountrySelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n // Update the local value\n this.value = value;\n\n // Update the form control if it exists\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n // Emit the change event\n this.countryChange.emit(value);\n }\n\n // ControlValueAccessor methods\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n // Helper method to check if control is invalid\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'country_id'\"\n [class]=\"customClass\"\n [options]=\"countries()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onCountrySelected($event)\"\n></form-select>\n","import {\n Component,\n OnInit,\n OnDestroy,\n forwardRef,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n WritableSignal,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n NG_VALIDATORS,\n Validator,\n AbstractControl,\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { StatesService } from '../../../services/states.service';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\n\n@Component({\n selector: 'state-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './state-select.component.html',\n styleUrls: ['./state-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StateSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => StateSelectComponent),\n multi: true,\n },\n ],\n})\nexport class StateSelectComponent\n implements OnInit, OnDestroy, OnChanges, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Departamento';\n @Input() name: string = 'state_id';\n @Input() placeholder: string = 'Selecciona un departamento';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() countryId: number | null = null;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() stateChange = new EventEmitter<number | null>();\n\n states: WritableSignal<SelectOption[]> = signal([]);\n loading: boolean = false;\n private destroy$ = new Subject<void>();\n\n // ControlValueAccessor properties\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(private statesService: StatesService) {}\n\n ngOnInit() {\n this.loadStates();\n }\n\n // Update the formControl getter to handle the AbstractControl\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['countryId'] && !changes['countryId'].firstChange) {\n this.value = null;\n this.onChange(null);\n this.stateChange.emit(null);\n\n if (this.countryId) {\n this.loadStates();\n } else {\n this.states.set([]);\n }\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n loadStates() {\n this.loading = true;\n this.statesService\n .fetchStates(1, undefined, this.countryId!)\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: ({ data: { states } }: { data: { states: any[] } }) => {\n this.states.set(states?.map(({ id, name }) => ({ value: id, label: name })) || []);\n this.loading = false;\n },\n error: () => {\n this.states.set([]);\n this.loading = false;\n },\n });\n }\n\n onStateSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.stateChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n\n get isDisabled(): boolean {\n return this.readonly || !this.countryId || this.loading;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'state_id'\"\n [class]=\"customClass\"\n [options]=\"states()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onStateSelected($event)\"\n></form-select>\n","import { Component, Input, EventEmitter, Output, forwardRef } from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n FormControl,\n FormsModule,\n} from '@angular/forms';\nimport {\n AsyncSelectComponent,\n AsyncSelectConfig,\n} from '../../../components/forms/async-select/async-select.component';\nimport { CustomerService } from '../../../services/customer.service';\nimport { Customer } from '../../../interfaces/customers/customer.interface';\nimport { getCustomerFullname } from '../../../helpers/get-formatted-customer.helper';\n\n@Component({\n selector: 'customer-select',\n standalone: true,\n imports: [AsyncSelectComponent, FormsModule],\n templateUrl: './customer-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CustomerSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CustomerSelectComponent),\n multi: true,\n },\n ],\n})\nexport class CustomerSelectComponent implements ControlValueAccessor, Validator {\n @Input() label: string = 'Cliente';\n @Input() placeholder: string = 'Selecciona un cliente';\n @Input() name: string = 'customer_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() multiple = false;\n\n @Output() customerChange = new EventEmitter<number | null>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n config: AsyncSelectConfig = {\n load: (params) => this.customerService.fetchCustomers(1, params?.search || '', 50),\n map: (res) =>\n res.data.customers?.map((customer: Customer) => ({\n value: customer.id,\n label: `${getCustomerFullname(customer)} - ${customer.email}`.trim(),\n })) || [],\n };\n\n constructor(private customerService: CustomerService) {}\n\n onInternalChange(value: any) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.customerChange.emit(value);\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n}\n","<async-select\n [config]=\"config\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'customer_id'\"\n [required]=\"required\"\n [multiple]=\"multiple\"\n [clearable]=\"true\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onInternalChange($event)\"\n/>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { PerformanceService } from '../../../services/performance.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Performance } from '../../../interfaces/performances/performance.interface';\n\n@Component({\n selector: 'performance-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './performance-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PerformanceSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PerformanceSelectComponent),\n multi: true,\n },\n ],\n})\nexport class PerformanceSelectComponent\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Función';\n @Input() placeholder: string = 'Selecciona una función';\n @Input() name: string = 'performance_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() performanceChange = new EventEmitter<number | null>();\n\n performances: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private performanceService: PerformanceService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.performanceService.loadPerformances({ search: this.searchTerm });\n\n this.performanceService.performances$\n .pipe(takeUntil(this.destroy$))\n .subscribe((performances: Performance[]) => {\n this.performances.set(\n performances?.map((p) => ({\n value: p.id,\n label: `${p.show?.title || `Show #${p.show_id}`} - ${new Date(p.start_time).toLocaleDateString()}`,\n })) || [],\n );\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.performanceService.loadPerformances({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onPerformanceSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.performanceChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'performance_id'\"\n [class]=\"customClass\"\n [options]=\"performances()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onPerformanceSelected($event)\"\n></form-select>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n forwardRef,\n signal,\n WritableSignal,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { PerformanceService } from '../../../services/performance.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Performance } from '../../../interfaces/performances/performance.interface';\n\n@Component({\n selector: 'performance-multi-select',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './performance-multi-select.component.html',\n styleUrls: ['./performance-multi-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PerformanceMultiSelectComponent),\n multi: true,\n },\n ],\n})\nexport class PerformanceMultiSelectComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() label: string = 'Funciones';\n @Input() placeholder: string = 'Buscar funciones...';\n\n allPerformances: WritableSignal<SelectOption[]> = signal([]);\n filteredPerformances: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(true);\n\n selectedIds: number[] = [];\n searchTerm: string = '';\n\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private performanceService: PerformanceService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.performanceService.loadPerformances({});\n\n this.performanceService.performances$\n .pipe(takeUntil(this.destroy$))\n .subscribe((performances: Performance[]) => {\n this.allPerformances.set(\n performances?.map((p) => ({\n value: p.id,\n label: `${p.show?.title || `Show #${p.show_id}`} - ${new Date(p.start_time).toLocaleString()}`,\n })) || [],\n );\n this.applyFilter();\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.performanceService.loadPerformances({ search: this.searchTerm });\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private applyFilter() {\n if (this.searchTerm) {\n const term = this.searchTerm.toLowerCase();\n this.filteredPerformances.set(\n this.allPerformances().filter((p) => p.label.toLowerCase().includes(term)),\n );\n } else {\n this.filteredPerformances.set([...this.allPerformances()]);\n }\n }\n\n onSearchChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchSubject.next(value);\n }\n\n isSelected(id: number): boolean {\n return this.selectedIds.includes(id);\n }\n\n togglePerformance(id: number) {\n const index = this.selectedIds.indexOf(id);\n if (index > -1) {\n this.selectedIds = this.selectedIds.filter((v) => v !== id);\n } else {\n this.selectedIds = [...this.selectedIds, id];\n }\n this.onChange(this.selectedIds);\n this.onTouched();\n }\n\n removePerformance(id: number) {\n this.togglePerformance(id);\n }\n\n getPerformanceLabel(id: number): string {\n return this.allPerformances().find((p) => p.value === id)?.label || '';\n }\n\n writeValue(value: number[] | null): void {\n this.selectedIds = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"performance-multi-select\">\n @if (label) {\n <label class=\"performance-multi-select-label\">\n {{ label }}\n </label>\n }\n\n @if (selectedIds.length > 0) {\n <div class=\"performance-multi-select-tags\">\n @for (id of selectedIds; track id) {\n <span class=\"performance-multi-select-tag\">\n {{ getPerformanceLabel(id) }}\n <button\n type=\"button\"\n class=\"performance-multi-select-tag-remove\"\n (click)=\"removePerformance(id)\"\n >\n &times;\n </button>\n </span>\n }\n </div>\n }\n\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n class=\"performance-multi-select-search\"\n (input)=\"onSearchChange($event)\"\n />\n\n @if (loading()) {\n <div class=\"performance-multi-select-loading\">\n <div class=\"performance-multi-select-spinner\"></div>\n Cargando funciones...\n </div>\n }\n\n @if (!loading() && filteredPerformances().length > 0) {\n <div class=\"performance-multi-select-list\">\n @for (p of filteredPerformances(); track p.value) {\n <label class=\"performance-multi-select-option\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(p.value)\"\n (change)=\"togglePerformance(p.value)\"\n class=\"performance-multi-select-checkbox\"\n />\n <span class=\"performance-multi-select-option-label\">{{ p.label }}</span>\n </label>\n }\n </div>\n }\n\n @if (!loading() && filteredPerformances().length === 0) {\n <p class=\"performance-multi-select-empty\">No se encontraron funciones</p>\n }\n</div>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { ProductService } from '../../../services/product.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Product } from '../../../interfaces/products/product.interface';\n\n@Component({\n selector: 'product-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './product-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProductSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ProductSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ProductSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'Producto';\n @Input() placeholder: string = 'Selecciona un producto';\n @Input() name: string = 'product_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() productChange = new EventEmitter<number | null>();\n\n products: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private productService: ProductService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.productService.loadProducts({ search: this.searchTerm });\n\n this.productService.products$\n .pipe(takeUntil(this.destroy$))\n .subscribe((products: Product[]) => {\n this.products.set(\n products?.map((product) => ({\n value: product.id,\n label: product.name,\n })) || [],\n );\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.productService.loadProducts({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onProductSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.productChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'product_id'\"\n [class]=\"customClass\"\n [options]=\"products()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onProductSelected($event)\"\n></form-select>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n signal,\n WritableSignal,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ProductService } from '../../../services/product.service';\nimport { Product } from '../../../interfaces/products/product.interface';\n\ninterface ProductOption {\n value: number;\n label: string;\n imageUrl: string | null;\n}\n\n@Component({\n selector: 'product-multi-select',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './product-multi-select.component.html',\n styleUrls: ['./product-multi-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProductMultiSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ProductMultiSelectComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() label: string = 'Productos';\n @Input() placeholder: string = 'Buscar productos...';\n @Input() set initialSelection(ids: number[] | null) {\n this.selectedIds = ids ?? [];\n }\n @Output() selectionChange = new EventEmitter<number[]>();\n\n allProducts: WritableSignal<ProductOption[]> = signal([]);\n filteredProducts: WritableSignal<ProductOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(true);\n\n selectedIds: number[] = [];\n searchTerm: string = '';\n\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private productService: ProductService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.productService.loadProducts({ search: this.searchTerm });\n\n this.productService.products$\n .pipe(takeUntil(this.destroy$))\n .subscribe((products: Product[]) => {\n this.allProducts.set(\n products?.map((p) => ({\n value: p.id,\n label: p.name,\n imageUrl: p.images?.[0]?.full_url ?? null,\n })) || [],\n );\n this.applyFilter();\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.productService.loadProducts({ search: this.searchTerm });\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private applyFilter() {\n if (this.searchTerm) {\n const term = this.searchTerm.toLowerCase();\n this.filteredProducts.set(\n this.allProducts().filter((p) => p.label.toLowerCase().includes(term)),\n );\n } else {\n this.filteredProducts.set([...this.allProducts()]);\n }\n }\n\n onSearchChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchSubject.next(value);\n }\n\n isSelected(id: number): boolean {\n return this.selectedIds.includes(id);\n }\n\n toggleProduct(id: number) {\n const index = this.selectedIds.indexOf(id);\n if (index > -1) {\n this.selectedIds = this.selectedIds.filter((v) => v !== id);\n } else {\n this.selectedIds = [...this.selectedIds, id];\n }\n this.onChange(this.selectedIds);\n this.onTouched();\n this.selectionChange.emit(this.selectedIds);\n }\n\n removeProduct(id: number) {\n this.toggleProduct(id);\n }\n\n getProductOption(id: number): ProductOption | undefined {\n return this.allProducts().find((p) => p.value === id);\n }\n\n writeValue(value: number[] | null): void {\n this.selectedIds = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"product-multi-select\">\n @if (label) {\n <label class=\"product-multi-select-label\">\n {{ label }}\n </label>\n }\n\n @if (selectedIds.length > 0) {\n <div class=\"product-multi-select-tags\">\n @for (id of selectedIds; track id) {\n @let product = getProductOption(id);\n <span class=\"product-multi-select-tag\">\n @if (product?.imageUrl) {\n <img [src]=\"product!.imageUrl\" alt=\"\" class=\"product-multi-select-tag-image\" />\n }\n {{ product?.label ?? id }}\n <button\n type=\"button\"\n class=\"product-multi-select-tag-remove\"\n (click)=\"removeProduct(id)\"\n >\n &times;\n </button>\n </span>\n }\n </div>\n }\n\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n class=\"product-multi-select-search\"\n (input)=\"onSearchChange($event)\"\n />\n\n @if (loading()) {\n <div class=\"product-multi-select-loading\">\n <div class=\"product-multi-select-spinner\"></div>\n Cargando productos...\n </div>\n }\n\n @if (!loading() && filteredProducts().length > 0) {\n <div class=\"product-multi-select-list\">\n @for (p of filteredProducts(); track p.value) {\n <label class=\"product-multi-select-option\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(p.value)\"\n (change)=\"toggleProduct(p.value)\"\n class=\"product-multi-select-checkbox\"\n />\n @if (p.imageUrl) {\n <img [src]=\"p.imageUrl\" alt=\"\" class=\"product-multi-select-option-image\" />\n } @else {\n <div class=\"product-multi-select-option-image-placeholder\">\n <i class=\"ri-image-line\"></i>\n </div>\n }\n <span class=\"product-multi-select-option-label\">{{ p.label }}</span>\n </label>\n }\n </div>\n }\n\n @if (!loading() && filteredProducts().length === 0) {\n <p class=\"product-multi-select-empty\">No se encontraron productos</p>\n }\n</div>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { ShowService } from '../../../services/show.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Show } from '../../../interfaces/shows/show.interface';\n\n@Component({\n selector: 'show-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './show-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ShowSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ShowSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ShowSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() label: string = 'Función';\n @Input() placeholder: string = 'Selecciona una función';\n @Input() name: string = 'show_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() showChange = new EventEmitter<number | null>();\n\n shows: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private showService: ShowService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.showService.loadShows({ search: this.searchTerm });\n\n this.showService.shows$.pipe(takeUntil(this.destroy$)).subscribe((shows: Show[]) => {\n const formatted = shows?.map((show) => ({ value: show.id, label: show.title })) || [];\n this.shows.set(formatted);\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.showService.loadShows({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onShowSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.showChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'show_id'\"\n [class]=\"customClass\"\n [options]=\"shows()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onShowSelected($event)\"\n></form-select>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n forwardRef,\n signal,\n WritableSignal,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { ShowService } from '../../../services/show.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { Show } from '../../../interfaces/shows/show.interface';\n\n@Component({\n selector: 'show-multi-select',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './show-multi-select.component.html',\n styleUrls: ['./show-multi-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ShowMultiSelectComponent),\n multi: true,\n },\n ],\n})\nexport class ShowMultiSelectComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() label: string = 'Funciones';\n @Input() placeholder: string = 'Buscar funciones...';\n\n allShows: WritableSignal<SelectOption[]> = signal([]);\n filteredShows: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(true);\n\n selectedIds: number[] = [];\n searchTerm: string = '';\n\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private showService: ShowService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.showService.loadShows({});\n\n this.showService.shows$.pipe(takeUntil(this.destroy$)).subscribe((shows: Show[]) => {\n this.allShows.set(\n shows?.map((show) => ({\n value: show.id,\n label: show.title,\n })) || [],\n );\n this.applyFilter();\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.showService.loadShows({ search: this.searchTerm });\n });\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private applyFilter() {\n if (this.searchTerm) {\n const term = this.searchTerm.toLowerCase();\n this.filteredShows.set(this.allShows().filter((s) => s.label.toLowerCase().includes(term)));\n } else {\n this.filteredShows.set([...this.allShows()]);\n }\n }\n\n onSearchChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchSubject.next(value);\n }\n\n isSelected(id: number): boolean {\n return this.selectedIds.includes(id);\n }\n\n toggleShow(id: number) {\n const index = this.selectedIds.indexOf(id);\n if (index > -1) {\n this.selectedIds = this.selectedIds.filter((v) => v !== id);\n } else {\n this.selectedIds = [...this.selectedIds, id];\n }\n this.onChange(this.selectedIds);\n this.onTouched();\n }\n\n removeShow(id: number) {\n this.toggleShow(id);\n }\n\n getShowLabel(id: number): string {\n return this.allShows().find((s) => s.value === id)?.label || '';\n }\n\n writeValue(value: number[] | null): void {\n this.selectedIds = value || [];\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"show-multi-select\">\n @if (label) {\n <label class=\"show-multi-select-label\">\n {{ label }}\n </label>\n }\n\n @if (selectedIds.length > 0) {\n <div class=\"show-multi-select-tags\">\n @for (id of selectedIds; track id) {\n <span class=\"show-multi-select-tag\">\n {{ getShowLabel(id) }}\n <button type=\"button\" class=\"show-multi-select-tag-remove\" (click)=\"removeShow(id)\">\n &times;\n </button>\n </span>\n }\n </div>\n }\n\n <input\n type=\"text\"\n [placeholder]=\"placeholder\"\n class=\"show-multi-select-search\"\n (input)=\"onSearchChange($event)\"\n />\n\n @if (loading()) {\n <div class=\"show-multi-select-loading\">\n <div class=\"show-multi-select-spinner\"></div>\n Cargando funciones...\n </div>\n }\n\n @if (!loading() && filteredShows().length > 0) {\n <div class=\"show-multi-select-list\">\n @for (show of filteredShows(); track show.value) {\n <label class=\"show-multi-select-option\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(show.value)\"\n (change)=\"toggleShow(show.value)\"\n class=\"show-multi-select-checkbox\"\n />\n <span class=\"show-multi-select-option-label\">{{ show.label }}</span>\n </label>\n }\n </div>\n }\n\n @if (!loading() && filteredShows().length === 0) {\n <p class=\"show-multi-select-empty\">No se encontraron funciones</p>\n }\n</div>\n","import { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n Component,\n OnInit,\n OnDestroy,\n Input,\n EventEmitter,\n Output,\n WritableSignal,\n signal,\n PLATFORM_ID,\n Inject,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n} from '@angular/forms';\nimport { FormSelectComponent } from '../../../components/forms/form-select/form-select.component';\nimport { PriceZoneService } from '../../../services/price-zone.service';\nimport { SelectOption } from '../../../interfaces/select-option.interface';\nimport { PriceZone } from '../../../interfaces/price-zones/price-zone.interface';\n\n@Component({\n selector: 'price-zone-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormSelectComponent],\n templateUrl: './price-zone-select.component.html',\n styleUrls: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PriceZoneSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PriceZoneSelectComponent),\n multi: true,\n },\n ],\n})\nexport class PriceZoneSelectComponent\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n @Input() label: string = 'Categoría';\n @Input() placeholder: string = 'Selecciona una categoría';\n @Input() name: string = 'price_zone_id';\n @Input() required: boolean = false;\n @Input() readonly: boolean = false;\n @Input() showError: boolean = true;\n @Input() customClass: string = '';\n @Input() control?: AbstractControl | null = null;\n\n @Output() priceZoneChange = new EventEmitter<number | null>();\n\n priceZones: WritableSignal<SelectOption[]> = signal([]);\n loading: WritableSignal<boolean> = signal(false);\n searchTerm: string = '';\n private searchSubject = new Subject<string>();\n private destroy$ = new Subject<void>();\n\n value: number | null = null;\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: string,\n private priceZoneService: PriceZoneService,\n ) {}\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.priceZoneService.loadPriceZones({ search: this.searchTerm });\n\n this.priceZoneService.priceZones$\n .pipe(takeUntil(this.destroy$))\n .subscribe((priceZones: PriceZone[]) => {\n this.priceZones.set(\n priceZones?.map((pz) => ({\n value: pz.id,\n label: pz.name,\n })) || [],\n );\n this.loading.set(false);\n });\n\n this.searchSubject\n .pipe(debounceTime(400), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((search) => {\n this.searchTerm = search;\n this.priceZoneService.loadPriceZones({ search: this.searchTerm });\n });\n }\n }\n\n get formControl(): FormControl {\n return this.control as FormControl;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSearchChange(search: string) {\n this.searchSubject.next(search);\n }\n\n onPriceZoneSelected(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value ? Number(select.value) : null;\n\n this.value = value;\n\n if (this.control) {\n this.control.setValue(value);\n this.control.markAsTouched();\n }\n\n this.priceZoneChange.emit(value);\n }\n\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(control: FormControl) {\n if (this.required && !control.value) {\n return { required: true };\n }\n return null;\n }\n\n get isInvalid(): boolean {\n return false;\n }\n}\n","<form-select\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [name]=\"name || 'price_zone_id'\"\n [class]=\"customClass\"\n [options]=\"priceZones()\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [formControl]=\"formControl\"\n (change)=\"onPriceZoneSelected($event)\"\n></form-select>\n","import {\n Component,\n effect,\n ElementRef,\n Inject,\n Input,\n PLATFORM_ID,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { AppAlertComponent } from '../../feedback/alert/alert.component';\nimport { PerformanceAvailableDay } from '../../../interfaces';\nimport { PerformanceService, ToastService } from '../../../services';\n\n@Component({\n selector: 'day-selector-grid',\n standalone: true,\n imports: [CommonModule, AppAlertComponent],\n templateUrl: './day-selector-grid.component.html',\n styleUrls: ['./day-selector-grid.component.scss'],\n})\nexport class DaySelectorGridComponent {\n @Input() displayMode: 'grid' | 'carousel' = 'grid';\n loadingData: WritableSignal<boolean> = signal(true);\n days: WritableSignal<PerformanceAvailableDay[]> = signal([]);\n @ViewChild('carouselTrack') carouselTrack?: ElementRef<HTMLElement>;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n protected performanceService: PerformanceService,\n protected listEventService: PerformancesListEventsService,\n protected toastService: ToastService,\n ) {\n effect(() => {\n this.listEventService.filteredShowId();\n if (isPlatformBrowser(this.platformId)) {\n this.days.set([]);\n this.listEventService.setSelectedDay(null);\n this.loadData();\n }\n });\n }\n\n private loadData(): void {\n this.loadingData.set(true);\n const showId = this.listEventService.filteredShowId() ?? undefined;\n\n this.performanceService.fetchAvailableDays({ show_id: showId }).subscribe({\n next: (response) => {\n const days = response?.data?.days ?? [];\n this.days.set(days);\n if (days.length > 0 && !this.listEventService.selectedDay()) {\n this.listEventService.setSelectedDay(days[0]);\n }\n this.loadingData.set(false);\n },\n error: () => {\n this.toastService.show('Error al cargar los datos de la función.', 'error');\n this.loadingData.set(false);\n },\n });\n }\n\n isDayActive(day: PerformanceAvailableDay): boolean {\n return day.date === this.listEventService.selectedDay()?.date;\n }\n\n onToggle(day: PerformanceAvailableDay): void {\n if (this.isDayActive(day)) return;\n this.listEventService.setSelectedPerformance(null);\n this.listEventService.setSelectedDay(day);\n }\n\n scrollCarousel(direction: 1 | -1): void {\n const track = this.carouselTrack?.nativeElement;\n if (!track) return;\n const item = track.children[0] as HTMLElement | undefined;\n const itemWidth = item?.offsetWidth ?? 112;\n track.scrollBy({ left: direction * (itemWidth + 8), behavior: 'smooth' });\n }\n}\n","@if (loadingData()) {\n <div class=\"day-selector-grid\">\n @for (i of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; track $index) {\n <div class=\"day-selector-grid-skeleton-item\"></div>\n }\n </div>\n}\n\n@if (!loadingData() && days().length < 1) {\n <app-alert\n type=\"error\"\n text=\"No se encontraron funciones disponibles\"\n size=\"md\"\n [closeable]=\"false\"\n />\n}\n\n@if (days().length > 0) {\n <p class=\"day-selector-heading\">Selecciona un día</p>\n}\n\n@if (displayMode === 'carousel' && days().length > 0) {\n <div class=\"day-selector-carousel\">\n <button\n type=\"button\"\n (click)=\"scrollCarousel(-1)\"\n class=\"day-selector-carousel-arrow day-selector-carousel-arrow--left\"\n aria-label=\"Anterior\"\n >\n <i class=\"ri-arrow-left-s-line\"></i>\n </button>\n <div #carouselTrack class=\"day-selector-carousel-track\">\n @for (item of days(); track $index) {\n <button\n (click)=\"onToggle(item)\"\n class=\"day-selector-carousel-item\"\n [class.day-selector-item--active]=\"isDayActive(item)\"\n >\n <span class=\"day-selector-item-weekday\">\n {{ item.date | date: 'EEE' | uppercase }}\n </span>\n <span class=\"day-selector-item-day\">\n {{ item.date | date: 'dd' }}\n </span>\n <span class=\"day-selector-item-month\">\n {{ item.date | date: 'MMM' }}\n </span>\n <span class=\"day-selector-item-count\">\n {{ item.count | number: '1.0-2' }}\n </span>\n </button>\n }\n </div>\n <button\n type=\"button\"\n (click)=\"scrollCarousel(1)\"\n class=\"day-selector-carousel-arrow day-selector-carousel-arrow--right\"\n aria-label=\"Siguiente\"\n >\n <i class=\"ri-arrow-right-s-line\"></i>\n </button>\n </div>\n} @else {\n <div class=\"day-selector-grid\">\n @for (item of days(); track $index) {\n <button\n (click)=\"onToggle(item)\"\n class=\"day-selector-grid-item\"\n [class.day-selector-item--active]=\"isDayActive(item)\"\n >\n <span class=\"day-selector-item-weekday\">\n {{ item.date | date: 'EEE' | uppercase }}\n </span>\n <span class=\"day-selector-item-day\">\n {{ item.date | date: 'dd' }}\n </span>\n <span class=\"day-selector-item-month\">\n {{ item.date | date: 'MMM' }}\n </span>\n <span class=\"day-selector-item-count\">\n {{ item.count | number: '1.0-2' }}\n </span>\n </button>\n }\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { AppLinkButtonComponent } from '../../buttons/app-link-button/app-link-button.component';\nimport { DailyPerformanceItem } from '../../../interfaces';\n\n@Component({\n selector: 'performance-card',\n standalone: true,\n imports: [CommonModule, AppLinkButtonComponent],\n templateUrl: './performance-card.component.html',\n styleUrls: ['./performance-card.component.scss'],\n})\nexport class PerformanceCardComponent {\n @Input({ required: true }) card!: DailyPerformanceItem;\n\n constructor(protected listEventService: PerformancesListEventsService) {}\n\n onSelect(): void {\n this.listEventService.setSelectedPerformance(this.card);\n }\n\n isSelected(): boolean {\n return this.listEventService.selectedPerformance()?.id === this.card.id;\n }\n}\n","<div class=\"performance-card\" [class.performance-card--selected]=\"isSelected()\">\n <div class=\"performance-card-image\">\n @if (card.show.images && card.show.images.length > 0) {\n <img [src]=\"card.show.images[0].full_url\" class=\"performance-card-image-img\" />\n } @else {\n <span class=\"performance-card-image-placeholder\"></span>\n }\n </div>\n\n <div class=\"performance-card-info\">\n <div class=\"performance-card-title\">\n {{ card.show.title }}\n </div>\n\n <div class=\"performance-card-datetime\">\n <span class=\"performance-card-date\">\n {{ card.start_time | date: `EEEE` | titlecase }}\n {{ card.start_time | date: `dd 'de' MMMM,` }}\n </span>\n\n <span class=\"performance-card-time\">\n {{ card.start_time | date: `hh:mm` }}\n </span>\n\n <span class=\"performance-card-meridiem\">\n {{ card.start_time | date: 'a' }}\n </span>\n </div>\n\n <div class=\"performance-card-price\">\n Desde\n <span class=\"performance-card-price-value\">\n ${{ card.zone_price_cheapest | number: '1.0-2' }}\n </span>\n </div>\n </div>\n\n <div class=\"performance-card-actions\">\n <app-link-button\n [route]=\"`/admin/performances/${card.id}/reservation`\"\n text=\"Comprar entradas\"\n icon=\"ri-coupon-line\"\n variant=\"primary\"\n size=\"xs\"\n />\n </div>\n</div>\n","import { Component, effect, Inject, PLATFORM_ID, signal, WritableSignal } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { PerformanceCardComponent } from '../performance-card/performance-card.component';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { DailyPerformanceItem } from '../../../interfaces';\nimport { PerformanceService, ToastService } from '../../../services';\n\n@Component({\n selector: 'performance-card-list',\n standalone: true,\n imports: [PerformanceCardComponent, CommonModule],\n templateUrl: './performance-card-list.component.html',\n styleUrls: ['./performance-card-list.component.scss'],\n})\nexport class PerformanceCardListComponent {\n loadingData: WritableSignal<boolean> = signal(true);\n performances: WritableSignal<DailyPerformanceItem[]> = signal([]);\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n protected performanceService: PerformanceService,\n protected listEventService: PerformancesListEventsService,\n protected toastService: ToastService,\n ) {\n effect(() => {\n const date = this.listEventService.selectedDayDate();\n if (date) {\n this.loadData();\n }\n });\n\n effect(() => {\n this.listEventService.filteredShowId();\n this.performances.set([]);\n const date = this.listEventService.selectedDayDate();\n if (date) {\n this.loadData();\n }\n });\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.loadData();\n }\n }\n\n private loadData(): void {\n this.loadingData.set(true);\n const date = this.listEventService.selectedDayDate();\n const showId = this.listEventService.filteredShowId() ?? undefined;\n if (!date) {\n this.loadingData.set(false);\n return;\n }\n\n this.performanceService.fetchDailyPerformances({ date, show_id: showId }).subscribe({\n next: (response) => {\n this.performances.set(response?.data?.performances ?? []);\n this.loadingData.set(false);\n },\n error: () => {\n this.toastService.show('Error al cargar los datos de la función.', 'error');\n this.loadingData.set(false);\n },\n });\n }\n\n get selectedDayDate(): string | null {\n return this.listEventService.selectedDay()?.date ?? null;\n }\n}\n","@if (selectedDayDate) {\n <p class=\"performance-card-list-heading\">\n <span>Funciones disponibles:</span>\n <span class=\"performance-card-list-heading-date\">\n el {{ selectedDayDate | date: \"EEEE d 'de' MMMM\" }}\n </span>\n </p>\n}\n\n<div class=\"performance-card-list\">\n @if (loadingData()) {\n @for (i of [1, 2]; track $index) {\n <div class=\"performance-card-list-skeleton\"></div>\n }\n }\n\n @for (card of performances(); track $index) {\n <performance-card [card]=\"card\" />\n }\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'performance-stepper',\n standalone: true,\n templateUrl: './performance-stepper.component.html',\n styleUrls: ['./performance-stepper.component.scss'],\n})\nexport class PerformanceStepperComponent {\n @Input({ required: true }) stepLabel!: string;\n @Input({ required: true }) title!: string;\n @Input({ required: true }) highlight!: string;\n}\n","<div class=\"performance-stepper-label\">\n <span class=\"performance-stepper-label-bar\"></span>\n {{ stepLabel }}\n</div>\n\n<h1 class=\"performance-stepper-title\">\n <span class=\"performance-stepper-title-main\">{{ title }} </span\n ><span class=\"performance-stepper-title-highlight\">{{ highlight }}</span>\n</h1>\n","import { Component, Inject, PLATFORM_ID, signal, WritableSignal } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { PerformancesListEventsService } from '../../../services/performances-list-events.service';\nimport { Router } from '@angular/router';\nimport { AppButtonComponent } from '../../buttons/app-button/app-button.component';\nimport { Show } from '../../../interfaces';\nimport { ShowService, ToastService } from '../../../services';\n\n@Component({\n selector: 'shows-filter',\n standalone: true,\n imports: [AppButtonComponent, CommonModule],\n templateUrl: './shows-filter.component.html',\n styleUrls: ['./shows-filter.component.scss'],\n})\nexport class ShowsFilterComponent {\n loadingData: WritableSignal<boolean> = signal(true);\n shows: WritableSignal<Show[]> = signal([]);\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: object,\n protected showService: ShowService,\n protected listEventService: PerformancesListEventsService,\n protected toastService: ToastService,\n private router: Router,\n ) {}\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.loadData();\n }\n }\n\n private loadData(): void {\n this.loadingData.set(true);\n\n this.showService.fetchAvailableShows({}).subscribe({\n next: (response) => {\n this.shows.set(response?.data?.shows ?? []);\n this.loadingData.set(false);\n },\n error: () => {\n this.toastService.show('Error al cargar shows del filtro.', 'error');\n this.loadingData.set(false);\n },\n });\n }\n\n isActive(showId: number): boolean {\n return this.listEventService.filteredShowId() === showId;\n }\n\n onFilter(show: Show): void {\n const isCurrentlyActive = this.isActive(show.id);\n if (isCurrentlyActive) {\n this.listEventService.setFilteredShowId(null);\n this.router.navigate([], {\n queryParams: { show_id: null },\n queryParamsHandling: 'merge',\n });\n } else {\n this.listEventService.setFilteredShowId(show.id);\n this.router.navigate([], {\n queryParams: { show_id: show.id },\n queryParamsHandling: 'merge',\n });\n }\n this.listEventService.setSelectedDay(null);\n this.listEventService.setSelectedPerformance(null);\n }\n}\n","<div class=\"shows-filter\">\n @if (shows().length > 0) {\n <p class=\"shows-filter-heading\">Filtrar por evento</p>\n }\n\n @if (loadingData()) {\n @for (i of [1, 2, 3]; track $index) {\n <div class=\"shows-filter-skeleton\"></div>\n }\n }\n\n @for (show of shows(); track $index) {\n <div class=\"shows-filter-item\" [class.shows-filter-item--active]=\"isActive(show.id)\">\n <div class=\"shows-filter-item-info\">\n <span class=\"shows-filter-item-image\">\n @if (show.images.length > 0) {\n <img [src]=\"show.images[0].full_url\" class=\"shows-filter-item-image-img\" />\n } @else {\n <span class=\"shows-filter-item-image-placeholder\"></span>\n }\n </span>\n\n <div>\n <div class=\"shows-filter-item-title\">{{ show.title }}</div>\n @if (show.performances_quantity && show.performances_quantity > 0) {\n <div class=\"shows-filter-item-count\">\n {{ show.performances_quantity }} funciones\n </div>\n }\n </div>\n </div>\n\n <div class=\"shows-filter-item-actions\">\n @if (isActive(show.id)) {\n <app-button\n variant=\"tertiary\"\n icon=\"ri-close-line\"\n size=\"xs\"\n (clicked)=\"onFilter(show)\"\n />\n } @else {\n <app-button variant=\"primary\" text=\"Filtrar\" size=\"xs\" (clicked)=\"onFilter(show)\" />\n }\n </div>\n </div>\n }\n</div>\n","import { Component, Input } from '@angular/core';\nimport { PriceZoneItem } from '../../../interfaces/price-zones/price-zone-item.interface';\n\n@Component({\n selector: 'zone-price-item',\n standalone: true,\n templateUrl: './zone-price-item.component.html',\n styleUrls: ['./zone-price-item.component.scss'],\n})\nexport class ZonePriceItemComponent {\n @Input({ required: true }) zone!: PriceZoneItem;\n}\n","<div class=\"zone-price-item\">\n <div class=\"zone-price-item-info\">\n <span class=\"zone-price-item-swatch {{ zone.colorClass }}\"></span>\n <div>\n <div class=\"zone-price-item-name\">{{ zone.name }}</div>\n <div class=\"zone-price-item-seats\">{{ zone.seatsAvailable }} sillas disponibles</div>\n </div>\n </div>\n <div class=\"zone-price-item-price\">{{ zone.price }}</div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ZonePriceItemComponent } from '../zone-price-item/zone-price-item.component';\nimport { PriceZoneItem } from '../../../interfaces/price-zones/price-zone-item.interface';\n\n@Component({\n selector: 'zone-price-list',\n standalone: true,\n imports: [ZonePriceItemComponent],\n templateUrl: './zone-price-list.component.html',\n styleUrls: ['./zone-price-list.component.scss'],\n})\nexport class ZonePriceListComponent {\n @Input({ required: true }) zones!: PriceZoneItem[];\n}\n","<p class=\"zone-price-list-title\">ZONAS Y PRECIOS</p>\n\n<div class=\"zone-price-list\">\n @for (zone of zones; track $index) {\n <zone-price-item [zone]=\"zone\" />\n }\n</div>\n","// Config\nexport * from './lib/config/index';\n\n// i18n\nexport * from './lib/i18n/index';\n\n// Constants\nexport * from './lib/constants/index';\nexport * from './lib/constants/api-routes/index';\n\n// Enums\nexport * from './lib/enums/index';\n\n// Types\nexport * from './lib/types/index';\n\n// Interfaces\nexport * from './lib/interfaces/index';\n\n// Helpers\nexport * from './lib/helpers/index';\n\n// Validators\nexport * from './lib/validators/index';\n\n// Services\nexport * from './lib/services/index';\n\n// Interceptors\nexport * from './lib/interceptors/index';\n\n// Components - Buttons\nexport * from './lib/components/buttons/app-button/app-button.component';\nexport * from './lib/components/buttons/app-link-button/app-link-button.component';\n\n// Components - Feedback\nexport * from './lib/components/feedback/alert/alert.component';\nexport * from './lib/components/feedback/loading-modal/loading-modal.component';\nexport * from './lib/components/feedback/delete-confirmation/delete-confirmation.component';\n\n// Components - Modals\nexport * from './lib/components/modals/modal/modal.component';\n\n// Components - Data Display\nexport * from './lib/components/data-display/audit-information/audit-information.component';\nexport * from './lib/components/data-display/dynamic-table/dynamic-table.component';\n\n// Components - Navigation\nexport * from './lib/components/navigation/language-switcher/language-switcher.component';\n\n// Components - Forms\nexport * from './lib/components/forms/form-input/form-input.component';\nexport * from './lib/components/forms/form-select/form-select.component';\nexport * from './lib/components/forms/form-textarea/form-textarea.component';\nexport * from './lib/components/forms/form-editor/form-editor.component';\nexport * from './lib/components/forms/color-picker/color-picker.component';\nexport * from './lib/components/forms/date-input/date-input.component';\nexport * from './lib/components/forms/toggle-switch/toggle-switch.component';\nexport * from './lib/components/forms/file-upload/file-upload.component';\nexport * from './lib/components/forms/file-upload-preview/file-upload-preview.component';\nexport * from './lib/components/forms/async-select/async-select.component';\nexport * from './lib/components/forms/change-password-form/change-password-form.component';\n\n// Components - Select Integrations\nexport * from './lib/components/select-integrations/admin-select/admin-select.component';\nexport * from './lib/components/select-integrations/city-select/city-select.component';\nexport * from './lib/components/select-integrations/country-select/country-select.component';\nexport * from './lib/components/select-integrations/state-select/state-select.component';\nexport * from './lib/components/select-integrations/customer-select/customer-select.component';\nexport * from './lib/components/select-integrations/performance-select/performance-select.component';\nexport * from './lib/components/select-integrations/performance-multi-select/performance-multi-select.component';\nexport * from './lib/components/select-integrations/product-select/product-select.component';\nexport * from './lib/components/select-integrations/product-multi-select/product-multi-select.component';\nexport * from './lib/components/select-integrations/show-select/show-select.component';\nexport * from './lib/components/select-integrations/show-multi-select/show-multi-select.component';\nexport * from './lib/components/select-integrations/price-zone-select/price-zone-select.component';\n\n// Performance selection\nexport * from './lib/components/performances-selection/day-selector-grid/day-selector-grid.component';\nexport * from './lib/components/performances-selection/performance-card/performance-card.component';\nexport * from './lib/components/performances-selection/performance-card-list/performance-card-list.component';\nexport * from './lib/components/performances-selection/performance-stepper/performance-stepper.component';\nexport * from './lib/components/performances-selection/shows-filter/shows-filter.component';\nexport * from './lib/components/performances-selection/zone-price-item/zone-price-item.component';\nexport * from './lib/components/performances-selection/zone-price-list/zone-price-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ApiService","i1.PriceZoneEventService","i1","i1.LoadingModalService","i2","i2.DeleteConfirmationService","i3","i2.ChangePasswordFormService","i3.CustomerService","i4.AdminService","i5.ToastService","i6","i1.AdminService","i1.CitiesService","i1.CountryService","i1.StatesService","i1.CustomerService","i1.PerformanceService","i1.ProductService","i1.ShowService","i1.PriceZoneService","i2.PerformancesListEventsService","i1.ToastService","i1.PerformancesListEventsService"],"mappings":"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"}