tickera-angular-components 0.0.1-dev.209 → 0.0.1-dev.211

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.
@@ -1206,6 +1206,10 @@ const TICKET_MAP_TITLE_HEIGHT = 30;
1206
1206
  // PerformanceBookingDataService.floorZOrder y PerformanceTicketMapComponent).
1207
1207
  const TICKET_MAP_FLOOR_HOVER_OPACITY = 0.25;
1208
1208
  const TICKET_MAP_FLOOR_HOVER_FADE_MS = 150;
1209
+ // Filtro de zonas de precio: mismo efecto de opacidad que el hover por piso,
1210
+ // aplicado a nivel de elemento (no de capa) segun si su price_zone_id esta
1211
+ // dentro del set de zonas filtradas (ver PerformanceBookingDataService).
1212
+ const TICKET_MAP_PRICE_ZONE_FILTER_OPACITY = TICKET_MAP_FLOOR_HOVER_OPACITY;
1209
1213
 
1210
1214
  function drawRoundedRect(con, shape, x, y, width, height, cornerRadius) {
1211
1215
  con.beginPath();
@@ -1764,6 +1768,7 @@ function processElementsToRenderData(elements, tickets, priceZones) {
1764
1768
  result.push({
1765
1769
  elementId: element.id,
1766
1770
  hallFloorId: element.hall_floor_id ?? null,
1771
+ priceZoneId: element.price_zone_id ?? null,
1767
1772
  type: element.type,
1768
1773
  shapeConfig,
1769
1774
  tickets: elementTickets,
@@ -3774,6 +3779,7 @@ class PerformanceBookingDataService {
3774
3779
  _allRenderData = signal([], ...(ngDevMode ? [{ debugName: "_allRenderData" }] : []));
3775
3780
  _visibleFloorIds = signal(new Set(), ...(ngDevMode ? [{ debugName: "_visibleFloorIds" }] : []));
3776
3781
  _hoveredFloorId = signal(null, ...(ngDevMode ? [{ debugName: "_hoveredFloorId" }] : []));
3782
+ _filteredPriceZoneIds = signal(new Set(), ...(ngDevMode ? [{ debugName: "_filteredPriceZoneIds" }] : []));
3777
3783
  _stageConfig = signal(DEFAULT_STAGE_CONFIG, ...(ngDevMode ? [{ debugName: "_stageConfig" }] : []));
3778
3784
  // Snapshot de tickets tal como llegó del último `setPerformanceBookingData`,
3779
3785
  // más los parches aplicados por `applySeatStatusUpdates` (SSE). Se guarda
@@ -3788,6 +3794,22 @@ class PerformanceBookingDataService {
3788
3794
  roomMap = computed(() => this._roomMap(), ...(ngDevMode ? [{ debugName: "roomMap" }] : []));
3789
3795
  visibleFloorIds = computed(() => this._visibleFloorIds(), ...(ngDevMode ? [{ debugName: "visibleFloorIds" }] : []));
3790
3796
  hoveredFloorId = computed(() => this._hoveredFloorId(), ...(ngDevMode ? [{ debugName: "hoveredFloorId" }] : []));
3797
+ filteredPriceZoneIds = computed(() => this._filteredPriceZoneIds(), ...(ngDevMode ? [{ debugName: "filteredPriceZoneIds" }] : []));
3798
+ // Cantidad de tickets por zona de precio (disponibles y total), calculada
3799
+ // a partir del render data actual (ya incluye price_zone_id por elemento).
3800
+ // Usado por ticket-map-price-zones para mostrar el contador junto a cada zona.
3801
+ priceZoneTicketCounts = computed(() => {
3802
+ const counts = new Map();
3803
+ for (const el of this._allRenderData()) {
3804
+ if (el.priceZoneId == null)
3805
+ continue;
3806
+ const current = counts.get(el.priceZoneId) ?? { available: 0, total: 0 };
3807
+ current.total += el.tickets.length;
3808
+ current.available += el.tickets.filter((t) => t.status === PerformanceTicketStatus.AVAILABLE).length;
3809
+ counts.set(el.priceZoneId, current);
3810
+ }
3811
+ return counts;
3812
+ }, ...(ngDevMode ? [{ debugName: "priceZoneTicketCounts" }] : []));
3791
3813
  availableFloors = computed(() => {
3792
3814
  const allData = this._allRenderData();
3793
3815
  const floors = this._hallFloors();
@@ -3832,6 +3854,7 @@ class PerformanceBookingDataService {
3832
3854
  const roomMap = data.room_map;
3833
3855
  this._roomMap.set(roomMap);
3834
3856
  this._lastTickets = data.tickets ?? [];
3857
+ this._filteredPriceZoneIds.set(new Set());
3835
3858
  const hallFloors = data.room_map?.hall?.hall_floors ?? [];
3836
3859
  const selectedHallFloor = hallFloors.length > 0 ? hallFloors[0] : null;
3837
3860
  this._hallFloors.set(hallFloors);
@@ -3904,6 +3927,27 @@ class PerformanceBookingDataService {
3904
3927
  return;
3905
3928
  this._hoveredFloorId.set(floorId);
3906
3929
  }
3930
+ togglePriceZoneFilter(zoneId) {
3931
+ const priceZones = this._roomMap()?.price_zones ?? [];
3932
+ if (priceZones.length <= 1)
3933
+ return;
3934
+ const current = new Set(this._filteredPriceZoneIds());
3935
+ if (current.has(zoneId)) {
3936
+ current.delete(zoneId);
3937
+ }
3938
+ else {
3939
+ current.add(zoneId);
3940
+ }
3941
+ this._filteredPriceZoneIds.set(current);
3942
+ }
3943
+ clearPriceZoneFilter() {
3944
+ if (this._filteredPriceZoneIds().size === 0)
3945
+ return;
3946
+ this._filteredPriceZoneIds.set(new Set());
3947
+ }
3948
+ isPriceZoneFiltered(zoneId) {
3949
+ return this._filteredPriceZoneIds().has(zoneId);
3950
+ }
3907
3951
  toggleFloorVisibility(floorId) {
3908
3952
  const current = new Set(this._visibleFloorIds());
3909
3953
  if (current.has(floorId)) {
@@ -10235,17 +10279,27 @@ class PerformanceTicketMapComponent {
10235
10279
  }
10236
10280
  set.add(ticket.seat_numeration);
10237
10281
  }
10282
+ // Filtro de zonas de precio (ticket-map-price-zones): mismo efecto visual
10283
+ // que el hover por piso (opacidad), pero aplicado por elemento segun su
10284
+ // priceZoneId en vez de por capa/piso completo. Sin filtro activo
10285
+ // (Set vacio) todos los elementos quedan a opacidad normal.
10286
+ const filteredZoneIds = this.bookingDataService.filteredPriceZoneIds();
10287
+ const hasZoneFilter = filteredZoneIds.size > 0;
10238
10288
  return this.bookingDataService.renderData().map((el) => {
10239
10289
  const isSeatLike = el.type === RoomMapElementType.SEAT_BLOCK || el.type === RoomMapElementType.TABLE;
10240
- return isSeatLike
10241
- ? {
10242
- ...el,
10243
- shapeConfig: {
10244
- ...el.shapeConfig,
10245
- selectedNumerations: selByElem.get(el.elementId) ?? new Set(),
10246
- },
10247
- }
10248
- : el;
10290
+ const isDimmedByZoneFilter = hasZoneFilter && (el.priceZoneId == null || !filteredZoneIds.has(el.priceZoneId));
10291
+ if (!isSeatLike && !hasZoneFilter)
10292
+ return el;
10293
+ return {
10294
+ ...el,
10295
+ shapeConfig: {
10296
+ ...el.shapeConfig,
10297
+ ...(isSeatLike
10298
+ ? { selectedNumerations: selByElem.get(el.elementId) ?? new Set() }
10299
+ : {}),
10300
+ opacity: isDimmedByZoneFilter ? TICKET_MAP_PRICE_ZONE_FILTER_OPACITY : 1,
10301
+ },
10302
+ };
10249
10303
  });
10250
10304
  }, ...(ngDevMode ? [{ debugName: "renderData" }] : []));
10251
10305
  stageReady = signal(false, ...(ngDevMode ? [{ debugName: "stageReady" }] : []));
@@ -10502,17 +10556,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
10502
10556
  }], floorLayerRefs: [{ type: i0.ViewChildren, args: ['floorLayer', { ...{ read: CoreShapeComponent }, isSignal: true }] }] } });
10503
10557
 
10504
10558
  class TicketMapPriceZonesComponent {
10505
- title = 'Precios por zona';
10506
10559
  bookingDataService = inject(PerformanceBookingDataService);
10560
+ priceZones = computed(() => this.bookingDataService.roomMap()?.price_zones ?? [], ...(ngDevMode ? [{ debugName: "priceZones" }] : []));
10561
+ // El filtro solo es interactivo si hay mas de una zona de precio; con una
10562
+ // sola zona el widget es puramente informativo (no tiene sentido filtrar).
10563
+ isFilterable = computed(() => this.priceZones().length > 1, ...(ngDevMode ? [{ debugName: "isFilterable" }] : []));
10564
+ hasActiveFilter = computed(() => this.isFilterable() && this.bookingDataService.filteredPriceZoneIds().size > 0, ...(ngDevMode ? [{ debugName: "hasActiveFilter" }] : []));
10565
+ isZoneFiltered(zoneId) {
10566
+ return this.bookingDataService.isPriceZoneFiltered(zoneId);
10567
+ }
10568
+ ticketCount(zoneId) {
10569
+ return this.bookingDataService.priceZoneTicketCounts().get(zoneId)?.available ?? 0;
10570
+ }
10571
+ toggleZone(zoneId) {
10572
+ if (!this.isFilterable())
10573
+ return;
10574
+ this.bookingDataService.togglePriceZoneFilter(zoneId);
10575
+ }
10576
+ clearFilter() {
10577
+ if (!this.isFilterable())
10578
+ return;
10579
+ this.bookingDataService.clearPriceZoneFilter();
10580
+ }
10507
10581
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapPriceZonesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10508
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapPriceZonesComponent, isStandalone: true, selector: "ticket-map-price-zones", inputs: { title: "title" }, ngImport: i0, template: "<ticket-map-widget>\n <ticket-map-widget-header [title]=\"title\" />\n\n <div class=\"ticket-map-price-zones\">\n @for (zone of bookingDataService.roomMap()?.price_zones ?? []; track zone.id) {\n <div class=\"ticket-map-price-zones__item\">\n <span\n class=\"ticket-map-price-zones__item-color\"\n [style.background-color]=\"zone.color\"\n ></span>\n <p class=\"ticket-map-price-zones__item-name\">{{ zone.name }}</p>\n <p class=\"ticket-map-price-zones__item-price\">${{ zone.normal_price | number: '1.0-2' }}</p>\n </div>\n }\n </div>\n</ticket-map-widget>\n", styles: [".ticket-map-price-zones{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.ticket-map-price-zones__item{align-items:center;border:1px solid #e5e5e5;border-radius:.5rem;display:flex;color:#9ca3af;flex-direction:row;font-size:.75rem;justify-content:start;gap:.5rem;padding:.75rem}.ticket-map-price-zones__item-color{width:.75rem;height:.75rem;border-radius:.125rem}.ticket-map-price-zones__item-name{font-size:.75rem;color:#9ca3af;margin:0}.ticket-map-price-zones__item-price{font-size:.75rem;color:#1f2937;font-weight:500;margin:0 0 0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TicketMapWidgetComponent, selector: "ticket-map-widget" }, { kind: "component", type: TicketMapWidgetHeaderComponent, selector: "ticket-map-widget-header", inputs: ["title", "subtitle"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
10582
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapPriceZonesComponent, isStandalone: true, selector: "ticket-map-price-zones", ngImport: i0, template: "@if (priceZones().length > 0) {\n <div\n class=\"ticket-map-price-zones\"\n [class.ticket-map-price-zones--readonly]=\"!isFilterable()\"\n role=\"group\"\n aria-label=\"Zonas de precio\"\n >\n @if (isFilterable()) {\n <button\n type=\"button\"\n class=\"ticket-map-price-zones__chip ticket-map-price-zones__chip--all\"\n [class.ticket-map-price-zones__chip--active]=\"!hasActiveFilter()\"\n [attr.aria-pressed]=\"!hasActiveFilter()\"\n title=\"Ver todas las zonas\"\n (click)=\"clearFilter()\"\n >\n Todas\n </button>\n }\n @for (zone of priceZones(); track zone.id) {\n <button\n type=\"button\"\n class=\"ticket-map-price-zones__chip\"\n [class.ticket-map-price-zones__chip--active]=\"isZoneFiltered(zone.id)\"\n [class.ticket-map-price-zones__chip--dimmed]=\"hasActiveFilter() && !isZoneFiltered(zone.id)\"\n [disabled]=\"!isFilterable()\"\n [attr.aria-pressed]=\"isFilterable() ? isZoneFiltered(zone.id) : null\"\n [title]=\"zone.name\"\n (click)=\"toggleZone(zone.id)\"\n >\n <span class=\"ticket-map-price-zones__dot\" [style.background-color]=\"zone.color\"></span>\n <span class=\"ticket-map-price-zones__name\">{{ zone.name }}</span>\n <span class=\"ticket-map-price-zones__price\">${{ zone.normal_price | number: '1.0-0' }}</span>\n <span class=\"ticket-map-price-zones__count\">{{ ticketCount(zone.id) }}</span>\n </button>\n }\n </div>\n}\n", styles: [".ticket-map-price-zones{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.375rem;width:100%}.ticket-map-price-zones__chip{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:9999px;cursor:pointer;display:flex;flex-direction:row;gap:.375rem;font-family:inherit;padding:.25rem .625rem;transition:background-color .15s,border-color .15s,opacity .15s}.ticket-map-price-zones__chip:hover:not(:disabled){background-color:#f3f4f6;border-color:#d1d5db}.ticket-map-price-zones__chip:disabled{cursor:default}.ticket-map-price-zones__chip--active{background-color:#eef2ff;border-color:#a5b4fc}.ticket-map-price-zones__chip--active:hover:not(:disabled){background-color:#e0e7ff;border-color:#a5b4fc}.ticket-map-price-zones__chip--dimmed{opacity:.5}.ticket-map-price-zones__chip--all{color:#4b5563;font-weight:600}.ticket-map-price-zones__dot{border-radius:.125rem;flex-shrink:0;height:.625rem;width:.625rem}.ticket-map-price-zones__name{color:#374151;font-size:.75rem;font-weight:500;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-map-price-zones__price{color:#6b7280;font-size:.75rem;white-space:nowrap}.ticket-map-price-zones__count{background-color:#e5e7eb;border-radius:9999px;color:#374151;font-size:.625rem;font-weight:600;line-height:1;padding:.125rem .375rem}.ticket-map-price-zones--readonly .ticket-map-price-zones__chip,.ticket-map-price-zones--readonly .ticket-map-price-zones__chip:hover{background-color:#f9fafb;border-color:#e5e7eb}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
10509
10583
  }
10510
10584
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapPriceZonesComponent, decorators: [{
10511
10585
  type: Component,
10512
- args: [{ selector: 'ticket-map-price-zones', imports: [CommonModule, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent], template: "<ticket-map-widget>\n <ticket-map-widget-header [title]=\"title\" />\n\n <div class=\"ticket-map-price-zones\">\n @for (zone of bookingDataService.roomMap()?.price_zones ?? []; track zone.id) {\n <div class=\"ticket-map-price-zones__item\">\n <span\n class=\"ticket-map-price-zones__item-color\"\n [style.background-color]=\"zone.color\"\n ></span>\n <p class=\"ticket-map-price-zones__item-name\">{{ zone.name }}</p>\n <p class=\"ticket-map-price-zones__item-price\">${{ zone.normal_price | number: '1.0-2' }}</p>\n </div>\n }\n </div>\n</ticket-map-widget>\n", styles: [".ticket-map-price-zones{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.ticket-map-price-zones__item{align-items:center;border:1px solid #e5e5e5;border-radius:.5rem;display:flex;color:#9ca3af;flex-direction:row;font-size:.75rem;justify-content:start;gap:.5rem;padding:.75rem}.ticket-map-price-zones__item-color{width:.75rem;height:.75rem;border-radius:.125rem}.ticket-map-price-zones__item-name{font-size:.75rem;color:#9ca3af;margin:0}.ticket-map-price-zones__item-price{font-size:.75rem;color:#1f2937;font-weight:500;margin:0 0 0 auto}\n"] }]
10513
- }], propDecorators: { title: [{
10514
- type: Input
10515
- }] } });
10586
+ args: [{ selector: 'ticket-map-price-zones', standalone: true, imports: [CommonModule], template: "@if (priceZones().length > 0) {\n <div\n class=\"ticket-map-price-zones\"\n [class.ticket-map-price-zones--readonly]=\"!isFilterable()\"\n role=\"group\"\n aria-label=\"Zonas de precio\"\n >\n @if (isFilterable()) {\n <button\n type=\"button\"\n class=\"ticket-map-price-zones__chip ticket-map-price-zones__chip--all\"\n [class.ticket-map-price-zones__chip--active]=\"!hasActiveFilter()\"\n [attr.aria-pressed]=\"!hasActiveFilter()\"\n title=\"Ver todas las zonas\"\n (click)=\"clearFilter()\"\n >\n Todas\n </button>\n }\n @for (zone of priceZones(); track zone.id) {\n <button\n type=\"button\"\n class=\"ticket-map-price-zones__chip\"\n [class.ticket-map-price-zones__chip--active]=\"isZoneFiltered(zone.id)\"\n [class.ticket-map-price-zones__chip--dimmed]=\"hasActiveFilter() && !isZoneFiltered(zone.id)\"\n [disabled]=\"!isFilterable()\"\n [attr.aria-pressed]=\"isFilterable() ? isZoneFiltered(zone.id) : null\"\n [title]=\"zone.name\"\n (click)=\"toggleZone(zone.id)\"\n >\n <span class=\"ticket-map-price-zones__dot\" [style.background-color]=\"zone.color\"></span>\n <span class=\"ticket-map-price-zones__name\">{{ zone.name }}</span>\n <span class=\"ticket-map-price-zones__price\">${{ zone.normal_price | number: '1.0-0' }}</span>\n <span class=\"ticket-map-price-zones__count\">{{ ticketCount(zone.id) }}</span>\n </button>\n }\n </div>\n}\n", styles: [".ticket-map-price-zones{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.375rem;width:100%}.ticket-map-price-zones__chip{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:9999px;cursor:pointer;display:flex;flex-direction:row;gap:.375rem;font-family:inherit;padding:.25rem .625rem;transition:background-color .15s,border-color .15s,opacity .15s}.ticket-map-price-zones__chip:hover:not(:disabled){background-color:#f3f4f6;border-color:#d1d5db}.ticket-map-price-zones__chip:disabled{cursor:default}.ticket-map-price-zones__chip--active{background-color:#eef2ff;border-color:#a5b4fc}.ticket-map-price-zones__chip--active:hover:not(:disabled){background-color:#e0e7ff;border-color:#a5b4fc}.ticket-map-price-zones__chip--dimmed{opacity:.5}.ticket-map-price-zones__chip--all{color:#4b5563;font-weight:600}.ticket-map-price-zones__dot{border-radius:.125rem;flex-shrink:0;height:.625rem;width:.625rem}.ticket-map-price-zones__name{color:#374151;font-size:.75rem;font-weight:500;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-map-price-zones__price{color:#6b7280;font-size:.75rem;white-space:nowrap}.ticket-map-price-zones__count{background-color:#e5e7eb;border-radius:9999px;color:#374151;font-size:.625rem;font-weight:600;line-height:1;padding:.125rem .375rem}.ticket-map-price-zones--readonly .ticket-map-price-zones__chip,.ticket-map-price-zones--readonly .ticket-map-price-zones__chip:hover{background-color:#f9fafb;border-color:#e5e7eb}\n"] }]
10587
+ }] });
10516
10588
 
10517
10589
  class TicketMapProductSelectionItemComponent {
10518
10590
  selectionService;
@@ -11674,5 +11746,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
11674
11746
  * Generated bundle index. Do not edit.
11675
11747
  */
11676
11748
 
11677
- export { ADMIN_API_ROUTES, ADMISSION_API_ROUTES, ALERT_ICONS, AdminLayoutComponent, AdminNavbarComponent, AdminSelectComponent, AdminService, AdmissionQueueService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, BrowserZoomLockService, BulkSaveBarComponent, CITY_API_ENDPOINTS, COUNTRY_API_ENDPOINTS, CUSTOMERS_API_ROUTES, ChangePasswordFormComponent, ChangePasswordFormService, CitiesService, CitySelectComponent, ColorPickerComponent, ConfirmationOrderModalComponent, ConfirmationOrderModalService, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, CreatorType, CustomerSelectComponent, CustomerService, DEFAULT_STAGE_CONFIG, DOCUMENT_TYPES_OPTIONS, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FeedbackModalComponent, FeedbackModalService, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, GiftBondPurchaseStatus, GiftBondStatus, IdentityDocumentInputComponent, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MembershipStatus, MinTodayValidator, MustMatchValidator, NumberInputComponent, ORDER_DISCOUNT_COLORS, ORDER_ITEM_TYPES_COLORS, ORDER_STATUS_COLORS, OrderBillingInfoComponent, OrderDiscountAppliedComponent, OrderInformationComponent, OrderItemType, OrderItemTypeBadgeComponent, OrderItemsComponent, OrderStatus, OrderStatusBadgeComponent, OrderTransactionDetailsModalComponent, OrderTransactionDetailsModalService, OrderTransactionsComponent, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PERFORMANCE_STATUS_COLORS, PERFORMANCE_TICKET_STATUS_COLORS, PHONE_COUNTRIES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PaymentMethod, PendingChangesService, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformanceVisibilityType, PerformancesListEventsService, PhoneInputComponent, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, PublicLayoutComponent, PurchaseLimitService, QuickStatusEditComponent, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, SeatAvailabilitySseService, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowTypeBadgeComponent, ShowsFilterComponent, SidebarMenuComponent, SidebarStateService, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_FLOOR_HOVER_FADE_MS, TICKET_MAP_FLOOR_HOVER_OPACITY, TICKET_MAP_GRID_SIZE, TICKET_MAP_LAST_TICKETS_LIMIT, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TIcketMapProductSelectionComponent, TRANSACTION_STATUS_COLORS, TextExpandableComponent, TickeraTranslocoLoader, TicketMapFloorSelectorComponent, TicketMapPriceZonesComponent, TicketMapProductSelectionItemComponent, TicketMapTotalsComponent, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapWrapperComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketQrComponent, TicketQrModalComponent, TicketQrModalService, TicketQrService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, TransactionStatus, VENUES_API_ROUTES, VIP_CARDS_API_ROUTES, VipBalanceCardComponent, VipCardService, VipCardStatus, VipCardStatusBadgeComponent, VipRechargeModalComponent, VipTransactionType, VipTransactionsTableComponent, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon$1 as drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, emailValidator, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getAdminFullname, getBrowserLanguage, getCustomerBenefitToasts, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, ticketCanOpenQr, tintColor, transformImageToFile, transformUrlParams };
11749
+ export { ADMIN_API_ROUTES, ADMISSION_API_ROUTES, ALERT_ICONS, AdminLayoutComponent, AdminNavbarComponent, AdminSelectComponent, AdminService, AdmissionQueueService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, BrowserZoomLockService, BulkSaveBarComponent, CITY_API_ENDPOINTS, COUNTRY_API_ENDPOINTS, CUSTOMERS_API_ROUTES, ChangePasswordFormComponent, ChangePasswordFormService, CitiesService, CitySelectComponent, ColorPickerComponent, ConfirmationOrderModalComponent, ConfirmationOrderModalService, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, CreatorType, CustomerSelectComponent, CustomerService, DEFAULT_STAGE_CONFIG, DOCUMENT_TYPES_OPTIONS, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FeedbackModalComponent, FeedbackModalService, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, GiftBondPurchaseStatus, GiftBondStatus, IdentityDocumentInputComponent, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MembershipStatus, MinTodayValidator, MustMatchValidator, NumberInputComponent, ORDER_DISCOUNT_COLORS, ORDER_ITEM_TYPES_COLORS, ORDER_STATUS_COLORS, OrderBillingInfoComponent, OrderDiscountAppliedComponent, OrderInformationComponent, OrderItemType, OrderItemTypeBadgeComponent, OrderItemsComponent, OrderStatus, OrderStatusBadgeComponent, OrderTransactionDetailsModalComponent, OrderTransactionDetailsModalService, OrderTransactionsComponent, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PERFORMANCE_STATUS_COLORS, PERFORMANCE_TICKET_STATUS_COLORS, PHONE_COUNTRIES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PaymentMethod, PendingChangesService, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformanceVisibilityType, PerformancesListEventsService, PhoneInputComponent, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, PublicLayoutComponent, PurchaseLimitService, QuickStatusEditComponent, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, SeatAvailabilitySseService, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowTypeBadgeComponent, ShowsFilterComponent, SidebarMenuComponent, SidebarStateService, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_FLOOR_HOVER_FADE_MS, TICKET_MAP_FLOOR_HOVER_OPACITY, TICKET_MAP_GRID_SIZE, TICKET_MAP_LAST_TICKETS_LIMIT, TICKET_MAP_PRICE_ZONE_FILTER_OPACITY, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TIcketMapProductSelectionComponent, TRANSACTION_STATUS_COLORS, TextExpandableComponent, TickeraTranslocoLoader, TicketMapFloorSelectorComponent, TicketMapPriceZonesComponent, TicketMapProductSelectionItemComponent, TicketMapTotalsComponent, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapWrapperComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketQrComponent, TicketQrModalComponent, TicketQrModalService, TicketQrService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, TransactionStatus, VENUES_API_ROUTES, VIP_CARDS_API_ROUTES, VipBalanceCardComponent, VipCardService, VipCardStatus, VipCardStatusBadgeComponent, VipRechargeModalComponent, VipTransactionType, VipTransactionsTableComponent, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon$1 as drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, emailValidator, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getAdminFullname, getBrowserLanguage, getCustomerBenefitToasts, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, ticketCanOpenQr, tintColor, transformImageToFile, transformUrlParams };
11678
11750
  //# sourceMappingURL=tickera-angular-components.mjs.map