tickera-angular-components 0.0.1-dev.153 → 0.0.1-dev.155

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.
@@ -3465,6 +3465,7 @@ class PerformanceBookingDataService {
3465
3465
  _hallFloors = signal([], ...(ngDevMode ? [{ debugName: "_hallFloors" }] : []));
3466
3466
  _selectedHallFloor = signal(null, ...(ngDevMode ? [{ debugName: "_selectedHallFloor" }] : []));
3467
3467
  _allRenderData = signal([], ...(ngDevMode ? [{ debugName: "_allRenderData" }] : []));
3468
+ _visibleFloorIds = signal(new Set(), ...(ngDevMode ? [{ debugName: "_visibleFloorIds" }] : []));
3468
3469
  _stageConfig = signal(DEFAULT_STAGE_CONFIG, ...(ngDevMode ? [{ debugName: "_stageConfig" }] : []));
3469
3470
  show = computed(() => this._show(), ...(ngDevMode ? [{ debugName: "show" }] : []));
3470
3471
  hallFloors = computed(() => this._hallFloors(), ...(ngDevMode ? [{ debugName: "hallFloors" }] : []));
@@ -3472,9 +3473,17 @@ class PerformanceBookingDataService {
3472
3473
  performance = computed(() => this._performance(), ...(ngDevMode ? [{ debugName: "performance" }] : []));
3473
3474
  stageConfig = computed(() => this._stageConfig(), ...(ngDevMode ? [{ debugName: "stageConfig" }] : []));
3474
3475
  roomMap = computed(() => this._roomMap(), ...(ngDevMode ? [{ debugName: "roomMap" }] : []));
3476
+ visibleFloorIds = computed(() => this._visibleFloorIds(), ...(ngDevMode ? [{ debugName: "visibleFloorIds" }] : []));
3477
+ availableFloors = computed(() => {
3478
+ const allData = this._allRenderData();
3479
+ const floors = this._hallFloors();
3480
+ const floorIdsWithElements = new Set(allData.map((el) => el.hallFloorId).filter(Boolean));
3481
+ return floors.filter((f) => floorIdsWithElements.has(f.id));
3482
+ }, ...(ngDevMode ? [{ debugName: "availableFloors" }] : []));
3475
3483
  renderData = computed(() => {
3484
+ const visible = this._visibleFloorIds();
3476
3485
  return this._allRenderData()?.filter(({ hallFloorId }) => {
3477
- return hallFloorId == this._selectedHallFloor()?.id;
3486
+ return hallFloorId != null && visible.has(hallFloorId);
3478
3487
  });
3479
3488
  }, ...(ngDevMode ? [{ debugName: "renderData" }] : []));
3480
3489
  setPerformanceBookingData({ data }) {
@@ -3488,6 +3497,8 @@ class PerformanceBookingDataService {
3488
3497
  this._selectedHallFloor.set(selectedHallFloor);
3489
3498
  const renderData = processElementsToRenderData(roomMap.elements, data.tickets, roomMap.price_zones);
3490
3499
  this._allRenderData.set(renderData);
3500
+ const floorIdsWithElements = new Set(renderData.map((el) => el.hallFloorId).filter(Boolean));
3501
+ this._visibleFloorIds.set(new Set(floorIdsWithElements));
3491
3502
  const canvasSettings = roomMap.canvas_settings || {};
3492
3503
  this._stageConfig.set({
3493
3504
  ...DEFAULT_STAGE_CONFIG,
@@ -3511,11 +3522,30 @@ class PerformanceBookingDataService {
3511
3522
  const selectedHallFloor = data.length > 0 ? data[0] : null;
3512
3523
  this._hallFloors.set(data);
3513
3524
  this._selectedHallFloor.set(selectedHallFloor);
3525
+ const allData = this._allRenderData();
3526
+ const floorIdsWithElements = new Set(allData.map((el) => el.hallFloorId).filter(Boolean));
3527
+ const floorIds = data.filter((f) => floorIdsWithElements.has(f.id)).map((f) => f.id);
3528
+ this._visibleFloorIds.set(new Set(floorIds));
3514
3529
  }
3515
3530
  setSelectedHallFloor(id) {
3516
3531
  const hallFloor = this._hallFloors().find((hallFloor) => hallFloor.id === id);
3517
3532
  this._selectedHallFloor.set(hallFloor ?? null);
3518
3533
  }
3534
+ toggleFloorVisibility(floorId) {
3535
+ const current = new Set(this._visibleFloorIds());
3536
+ if (current.has(floorId)) {
3537
+ if (current.size <= 1)
3538
+ return;
3539
+ current.delete(floorId);
3540
+ }
3541
+ else {
3542
+ current.add(floorId);
3543
+ }
3544
+ this._visibleFloorIds.set(current);
3545
+ }
3546
+ isFloorVisible(floorId) {
3547
+ return this._visibleFloorIds().has(floorId);
3548
+ }
3519
3549
  updateStageConfig(data) {
3520
3550
  this._stageConfig.set({
3521
3551
  ...this._stageConfig(),
@@ -3585,6 +3615,7 @@ class TicketSelectionDiscountService {
3585
3615
  name: coupon.code,
3586
3616
  value: coupon.discount_value,
3587
3617
  type: SelectedDiscountCardType.COUPON,
3618
+ discountType: coupon.discount_type === CouponDiscountType.PERCENTAGE ? 'percentage' : 'fixed',
3588
3619
  };
3589
3620
  }
3590
3621
  const giftBond = this.giftBond();
@@ -3593,6 +3624,7 @@ class TicketSelectionDiscountService {
3593
3624
  name: 'Bono de regalo',
3594
3625
  value: giftBond.original_value,
3595
3626
  type: SelectedDiscountCardType.GIFT_BOND,
3627
+ discountType: 'fixed',
3596
3628
  };
3597
3629
  }
3598
3630
  const [corporateBond, corporateBondCode] = [this.corporateBond(), this.corporateBondCode()];
@@ -3601,6 +3633,7 @@ class TicketSelectionDiscountService {
3601
3633
  name: corporateBondCode,
3602
3634
  value: corporateBond.value,
3603
3635
  type: SelectedDiscountCardType.CORPORATE_BOND,
3636
+ discountType: 'fixed',
3604
3637
  };
3605
3638
  }
3606
3639
  return null;
@@ -3887,6 +3920,16 @@ class TicketSelectionTotalsService {
3887
3920
  serviceFee = computed(() => {
3888
3921
  return Number(this.bookingDataService.show()?.service_fee ?? '0');
3889
3922
  }, ...(ngDevMode ? [{ debugName: "serviceFee" }] : []));
3923
+ discountAmount = computed(() => {
3924
+ const discount = this.selectionDiscountService.selectedDiscount();
3925
+ if (!discount) {
3926
+ return null;
3927
+ }
3928
+ if (discount.discountType === 'percentage') {
3929
+ return (this.subtotalValue() * discount.value) / 100;
3930
+ }
3931
+ return discount.value;
3932
+ }, ...(ngDevMode ? [{ debugName: "discountAmount" }] : []));
3890
3933
  subtotalValue() {
3891
3934
  return (this.selectionService.selectedTickets().reduce((sum, ticket) => {
3892
3935
  return sum + Number(ticket?.normal_price || '0');
@@ -3907,12 +3950,12 @@ class TicketSelectionTotalsService {
3907
3950
  if (this.serviceFee() > 0) {
3908
3951
  total += this.serviceFee();
3909
3952
  }
3910
- const discountValue = this.selectionDiscountService.selectedDiscountValue();
3911
- if (!discountValue) {
3953
+ const amount = this.discountAmount();
3954
+ if (!amount) {
3912
3955
  return null;
3913
3956
  }
3914
- if (discountValue && discountValue > 0) {
3915
- total = total - discountValue;
3957
+ if (amount > 0) {
3958
+ total = total - amount;
3916
3959
  }
3917
3960
  if (total && total < 0) {
3918
3961
  total = 0;
@@ -8614,6 +8657,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8614
8657
  args: [{ selector: 'ticket-map-zoom-controls', standalone: true, imports: [CommonModule], template: "<div class=\"ticket-map-zoom-controls\">\n <button (click)=\"zoomOut()\" class=\"canvas-button\" title=\"Zoom -\">\n <i class=\"ri-zoom-out-line text-sm\"></i>\n </button>\n\n <span class=\"zoom-percentage\">{{ zoomPercentage() }}</span>\n\n <button (click)=\"zoomIn()\" class=\"canvas-button\" title=\"Zoom +\">\n <i class=\"ri-zoom-in-line\"></i>\n </button>\n\n <button (click)=\"resetZoom()\" class=\"canvas-button\" title=\"Reset\">\n <i class=\"ri-refresh-line\"></i>\n </button>\n\n <button (click)=\"fitToContainer()\" class=\"canvas-button\" title=\"Ajustar al espacio\">\n <i class=\"ri-fullscreen-line\"></i>\n </button>\n</div>\n", styles: [".ticket-map-zoom-controls{display:flex;flex-direction:row;align-items:center;gap:.5rem;font-size:.75rem}.ticket-map-zoom-controls .canvas-button{align-items:center;background-color:#f3f4f6;border:none;border-radius:.125rem;cursor:pointer;display:flex;flex-direction:column;height:2rem;justify-content:center;transition:all .2s;width:2rem}.ticket-map-zoom-controls .canvas-button:hover{background-color:#d1d5db}.ticket-map-zoom-controls .zoom-percentage{color:#6b7280;font-weight:600;text-align:center;width:2rem}\n"] }]
8615
8658
  }], ctorParameters: () => [{ type: TicketMapZoomService }] });
8616
8659
 
8660
+ class TicketMapFloorSelectorComponent {
8661
+ bookingDataService;
8662
+ availableFloors = computed(() => this.bookingDataService.availableFloors(), ...(ngDevMode ? [{ debugName: "availableFloors" }] : []));
8663
+ visibleFloorIds = computed(() => this.bookingDataService.visibleFloorIds(), ...(ngDevMode ? [{ debugName: "visibleFloorIds" }] : []));
8664
+ hasMultipleVisible = computed(() => this.visibleFloorIds().size > 1, ...(ngDevMode ? [{ debugName: "hasMultipleVisible" }] : []));
8665
+ constructor(bookingDataService) {
8666
+ this.bookingDataService = bookingDataService;
8667
+ }
8668
+ isFloorVisible(floorId) {
8669
+ return this.visibleFloorIds().has(floorId);
8670
+ }
8671
+ canToggleOff(floorId) {
8672
+ return this.isFloorVisible(floorId) && this.hasMultipleVisible();
8673
+ }
8674
+ toggleFloor(floorId) {
8675
+ this.bookingDataService.toggleFloorVisibility(floorId);
8676
+ }
8677
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapFloorSelectorComponent, deps: [{ token: PerformanceBookingDataService }], target: i0.ɵɵFactoryTarget.Component });
8678
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapFloorSelectorComponent, isStandalone: true, selector: "ticket-map-floor-selector", ngImport: i0, template: "@if (availableFloors().length > 1) {\n <div class=\"ticket-map-floor-selector\">\n @for (floor of availableFloors(); track floor.id) {\n <button\n class=\"floor-button\"\n [class.floor-button-active]=\"isFloorVisible(floor.id)\"\n [class.floor-button-locked]=\"isFloorVisible(floor.id) && !canToggleOff(floor.id)\"\n [disabled]=\"isFloorVisible(floor.id) && !canToggleOff(floor.id)\"\n (click)=\"toggleFloor(floor.id)\"\n [title]=\"floor.name\"\n >\n {{ floor.name }}\n </button>\n }\n </div>\n}\n", styles: [".ticket-map-floor-selector{display:flex;flex-direction:row;align-items:center;gap:.25rem;font-size:.75rem}.ticket-map-floor-selector .floor-button{align-items:center;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:.375rem;color:#4b5563;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;height:2rem;justify-content:center;padding-left:.75rem;padding-right:.75rem;transition:all .2s;white-space:nowrap}.ticket-map-floor-selector .floor-button:hover{background-color:#e5e7eb;color:#1f2937}.ticket-map-floor-selector .floor-button.floor-button-active{background-color:#4f46e5;border-color:#4f46e5;color:#fff}.ticket-map-floor-selector .floor-button.floor-button-active:hover{background-color:#4338ca}.ticket-map-floor-selector .floor-button.floor-button-active.floor-button-locked{opacity:.7;cursor:not-allowed}.ticket-map-floor-selector .floor-button.floor-button-active.floor-button-locked:hover{background-color:#4f46e5}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
8679
+ }
8680
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapFloorSelectorComponent, decorators: [{
8681
+ type: Component,
8682
+ args: [{ selector: 'ticket-map-floor-selector', standalone: true, imports: [CommonModule], template: "@if (availableFloors().length > 1) {\n <div class=\"ticket-map-floor-selector\">\n @for (floor of availableFloors(); track floor.id) {\n <button\n class=\"floor-button\"\n [class.floor-button-active]=\"isFloorVisible(floor.id)\"\n [class.floor-button-locked]=\"isFloorVisible(floor.id) && !canToggleOff(floor.id)\"\n [disabled]=\"isFloorVisible(floor.id) && !canToggleOff(floor.id)\"\n (click)=\"toggleFloor(floor.id)\"\n [title]=\"floor.name\"\n >\n {{ floor.name }}\n </button>\n }\n </div>\n}\n", styles: [".ticket-map-floor-selector{display:flex;flex-direction:row;align-items:center;gap:.25rem;font-size:.75rem}.ticket-map-floor-selector .floor-button{align-items:center;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:.375rem;color:#4b5563;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;height:2rem;justify-content:center;padding-left:.75rem;padding-right:.75rem;transition:all .2s;white-space:nowrap}.ticket-map-floor-selector .floor-button:hover{background-color:#e5e7eb;color:#1f2937}.ticket-map-floor-selector .floor-button.floor-button-active{background-color:#4f46e5;border-color:#4f46e5;color:#fff}.ticket-map-floor-selector .floor-button.floor-button-active:hover{background-color:#4338ca}.ticket-map-floor-selector .floor-button.floor-button-active.floor-button-locked{opacity:.7;cursor:not-allowed}.ticket-map-floor-selector .floor-button.floor-button-active.floor-button-locked:hover{background-color:#4f46e5}\n"] }]
8683
+ }], ctorParameters: () => [{ type: PerformanceBookingDataService }] });
8684
+
8617
8685
  class PerformanceTicketMapComponent {
8618
8686
  platformId;
8619
8687
  bookingDataService;
@@ -8933,7 +9001,7 @@ class TicketMapTotalsComponent {
8933
9001
  return this.selectionService.selectedTicketIdList();
8934
9002
  }
8935
9003
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapTotalsComponent, deps: [{ token: PerformanceBookingDataService }, { token: TicketSelectionDetailsService }, { token: TicketSelectionDiscountService }, { token: TicketSelectionTotalsService }, { token: TicketSelectionService }, { token: i3$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
8936
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapTotalsComponent, isStandalone: true, selector: "ticket-map-totals", inputs: { title: "title", buttonText: "buttonText", loadingButtonText: "loadingButtonText", isLoading: "isLoading" }, outputs: { onPurchaseClick: "onPurchaseClick" }, ngImport: i0, template: "<ticket-map-widget class=\"w-full\">\n <ticket-map-widget-header [title]=\"title\" />\n\n <div class=\"ticket-map-totals\">\n <p class=\"ticket-map-totals__item\">\n <span>Entradas ({{ selectionService.selectedCount() | number: '1.0-2' }}):</span>\n <span> ${{ selectionTotalsService.ticketSubtotal() | number: '1.0-2' }} </span>\n </p>\n\n @if (selectionService.selectedProductCount() > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Productos ({{ selectionService.selectedProductCount() | number: '1.0-2' }}):</span>\n <span>${{ selectionTotalsService.productSubtotal() | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (serviceFee > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Tarifa de servicio:</span>\n <span>${{ bookingDataService.show()?.service_fee ?? '0' | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (!!selectionDiscountService.coupon()) {\n <p class=\"ticket-map-totals__item\">\n <span>Cup\u00F3n de descuento:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.coupon()?.discount_value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.corporateBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono corporativo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.corporateBond()?.value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.giftBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono de regalo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.giftBond()?.original_value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n <hr class=\"ticket-map-totals__divider\" />\n\n <div class=\"ticket-map-totals__calculated\">\n <span class=\"ticket-map-totals__calculated-title\">Total:</span>\n\n @if (\n selectionTotalsService.totalDiscounted() || selectionTotalsService.totalDiscounted() === 0\n ) {\n <span class=\"ticket-map-totals__calculated-inline\">\n <span class=\"ticket-map-totals__calculated-discount\">\n ${{ selectionTotalsService.totalValue() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalDiscounted() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n </span>\n } @else {\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalValue() | number: '1.0-2' }}\n </span>\n }\n </div>\n\n @if (selectionService.selectedCount() > 0 || selectionService.selectedProductCount() > 0) {\n <div class=\"flex flex-col gap-2\">\n <app-button\n (click)=\"onPurchaseClick.emit()\"\n size=\"sm\"\n icon=\"ri-dashboard-3-line\"\n [text]=\"buttonText\"\n [loadingText]=\"loadingButtonText\"\n [loading]=\"isLoading\"\n variant=\"primary\"\n />\n </div>\n }\n </div>\n</ticket-map-widget>\n", styles: [".ticket-map-totals{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.ticket-map-totals__item{align-items:center;color:#9ca3af;display:flex;flex-direction:row;font-size:.75rem;justify-content:space-between;margin:0}.ticket-map-totals__divider{border:none;border-top:1px solid #e5e7eb;width:100%}.ticket-map-totals__calculated{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:0}.ticket-map-totals__calculated-title{color:#4b5563;font-size:1rem;font-weight:700}.ticket-map-totals__calculated-inline{display:flex;flex-direction:column;align-items:flex-end}.ticket-map-totals__calculated-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}.ticket-map-totals__calculated-total{color:#4b5563;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon", "tooltip"], outputs: ["clicked"] }, { kind: "component", type: TicketMapWidgetHeaderComponent, selector: "ticket-map-widget-header", inputs: ["title"] }, { kind: "component", type: TicketMapWidgetComponent, selector: "ticket-map-widget" }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }] });
9004
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapTotalsComponent, isStandalone: true, selector: "ticket-map-totals", inputs: { title: "title", buttonText: "buttonText", loadingButtonText: "loadingButtonText", isLoading: "isLoading" }, outputs: { onPurchaseClick: "onPurchaseClick" }, ngImport: i0, template: "<ticket-map-widget class=\"w-full\">\n <ticket-map-widget-header [title]=\"title\" />\n\n <div class=\"ticket-map-totals\">\n <p class=\"ticket-map-totals__item\">\n <span>Entradas ({{ selectionService.selectedCount() | number: '1.0-2' }}):</span>\n <span> ${{ selectionTotalsService.ticketSubtotal() | number: '1.0-2' }} </span>\n </p>\n\n @if (selectionService.selectedProductCount() > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Productos ({{ selectionService.selectedProductCount() | number: '1.0-2' }}):</span>\n <span>${{ selectionTotalsService.productSubtotal() | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (serviceFee > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Tarifa de servicio:</span>\n <span>${{ bookingDataService.show()?.service_fee ?? '0' | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (!!selectionDiscountService.coupon() && selectionTotalsService.discountAmount()) {\n <p class=\"ticket-map-totals__item\">\n <span>Cup\u00F3n de descuento:</span>\n <span class=\"line-through\">\n -${{ selectionTotalsService.discountAmount() | number: '1.0-2' }}\n @if (selectionDiscountService.selectedDiscount()?.discountType === 'percentage') {\n ({{ selectionDiscountService.coupon()?.discount_value }}%)\n }\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.corporateBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono corporativo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.corporateBond()?.value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.giftBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono de regalo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.giftBond()?.original_value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n <hr class=\"ticket-map-totals__divider\" />\n\n <div class=\"ticket-map-totals__calculated\">\n <span class=\"ticket-map-totals__calculated-title\">Total:</span>\n\n @if (\n selectionTotalsService.totalDiscounted() || selectionTotalsService.totalDiscounted() === 0\n ) {\n <span class=\"ticket-map-totals__calculated-inline\">\n <span class=\"ticket-map-totals__calculated-discount\">\n ${{ selectionTotalsService.totalValue() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalDiscounted() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n </span>\n } @else {\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalValue() | number: '1.0-2' }}\n </span>\n }\n </div>\n\n @if (selectionService.selectedCount() > 0 || selectionService.selectedProductCount() > 0) {\n <div class=\"flex flex-col gap-2\">\n <app-button\n (click)=\"onPurchaseClick.emit()\"\n size=\"sm\"\n icon=\"ri-dashboard-3-line\"\n [text]=\"buttonText\"\n [loadingText]=\"loadingButtonText\"\n [loading]=\"isLoading\"\n variant=\"primary\"\n />\n </div>\n }\n </div>\n</ticket-map-widget>\n", styles: [".ticket-map-totals{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.ticket-map-totals__item{align-items:center;color:#9ca3af;display:flex;flex-direction:row;font-size:.75rem;justify-content:space-between;margin:0}.ticket-map-totals__divider{border:none;border-top:1px solid #e5e7eb;width:100%}.ticket-map-totals__calculated{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:0}.ticket-map-totals__calculated-title{color:#4b5563;font-size:1rem;font-weight:700}.ticket-map-totals__calculated-inline{display:flex;flex-direction:column;align-items:flex-end}.ticket-map-totals__calculated-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}.ticket-map-totals__calculated-total{color:#4b5563;font-size:1rem;font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon", "tooltip"], outputs: ["clicked"] }, { kind: "component", type: TicketMapWidgetHeaderComponent, selector: "ticket-map-widget-header", inputs: ["title"] }, { kind: "component", type: TicketMapWidgetComponent, selector: "ticket-map-widget" }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }] });
8937
9005
  }
8938
9006
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapTotalsComponent, decorators: [{
8939
9007
  type: Component,
@@ -8942,7 +9010,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8942
9010
  AppButtonComponent,
8943
9011
  TicketMapWidgetHeaderComponent,
8944
9012
  TicketMapWidgetComponent,
8945
- ], template: "<ticket-map-widget class=\"w-full\">\n <ticket-map-widget-header [title]=\"title\" />\n\n <div class=\"ticket-map-totals\">\n <p class=\"ticket-map-totals__item\">\n <span>Entradas ({{ selectionService.selectedCount() | number: '1.0-2' }}):</span>\n <span> ${{ selectionTotalsService.ticketSubtotal() | number: '1.0-2' }} </span>\n </p>\n\n @if (selectionService.selectedProductCount() > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Productos ({{ selectionService.selectedProductCount() | number: '1.0-2' }}):</span>\n <span>${{ selectionTotalsService.productSubtotal() | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (serviceFee > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Tarifa de servicio:</span>\n <span>${{ bookingDataService.show()?.service_fee ?? '0' | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (!!selectionDiscountService.coupon()) {\n <p class=\"ticket-map-totals__item\">\n <span>Cup\u00F3n de descuento:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.coupon()?.discount_value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.corporateBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono corporativo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.corporateBond()?.value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.giftBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono de regalo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.giftBond()?.original_value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n <hr class=\"ticket-map-totals__divider\" />\n\n <div class=\"ticket-map-totals__calculated\">\n <span class=\"ticket-map-totals__calculated-title\">Total:</span>\n\n @if (\n selectionTotalsService.totalDiscounted() || selectionTotalsService.totalDiscounted() === 0\n ) {\n <span class=\"ticket-map-totals__calculated-inline\">\n <span class=\"ticket-map-totals__calculated-discount\">\n ${{ selectionTotalsService.totalValue() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalDiscounted() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n </span>\n } @else {\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalValue() | number: '1.0-2' }}\n </span>\n }\n </div>\n\n @if (selectionService.selectedCount() > 0 || selectionService.selectedProductCount() > 0) {\n <div class=\"flex flex-col gap-2\">\n <app-button\n (click)=\"onPurchaseClick.emit()\"\n size=\"sm\"\n icon=\"ri-dashboard-3-line\"\n [text]=\"buttonText\"\n [loadingText]=\"loadingButtonText\"\n [loading]=\"isLoading\"\n variant=\"primary\"\n />\n </div>\n }\n </div>\n</ticket-map-widget>\n", styles: [".ticket-map-totals{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.ticket-map-totals__item{align-items:center;color:#9ca3af;display:flex;flex-direction:row;font-size:.75rem;justify-content:space-between;margin:0}.ticket-map-totals__divider{border:none;border-top:1px solid #e5e7eb;width:100%}.ticket-map-totals__calculated{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:0}.ticket-map-totals__calculated-title{color:#4b5563;font-size:1rem;font-weight:700}.ticket-map-totals__calculated-inline{display:flex;flex-direction:column;align-items:flex-end}.ticket-map-totals__calculated-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}.ticket-map-totals__calculated-total{color:#4b5563;font-size:1rem;font-weight:700}\n"] }]
9013
+ ], template: "<ticket-map-widget class=\"w-full\">\n <ticket-map-widget-header [title]=\"title\" />\n\n <div class=\"ticket-map-totals\">\n <p class=\"ticket-map-totals__item\">\n <span>Entradas ({{ selectionService.selectedCount() | number: '1.0-2' }}):</span>\n <span> ${{ selectionTotalsService.ticketSubtotal() | number: '1.0-2' }} </span>\n </p>\n\n @if (selectionService.selectedProductCount() > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Productos ({{ selectionService.selectedProductCount() | number: '1.0-2' }}):</span>\n <span>${{ selectionTotalsService.productSubtotal() | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (serviceFee > 0) {\n <p class=\"ticket-map-totals__item\">\n <span>Tarifa de servicio:</span>\n <span>${{ bookingDataService.show()?.service_fee ?? '0' | number: '1.0-2' }}</span>\n </p>\n }\n\n @if (!!selectionDiscountService.coupon() && selectionTotalsService.discountAmount()) {\n <p class=\"ticket-map-totals__item\">\n <span>Cup\u00F3n de descuento:</span>\n <span class=\"line-through\">\n -${{ selectionTotalsService.discountAmount() | number: '1.0-2' }}\n @if (selectionDiscountService.selectedDiscount()?.discountType === 'percentage') {\n ({{ selectionDiscountService.coupon()?.discount_value }}%)\n }\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.corporateBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono corporativo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.corporateBond()?.value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n @if (!!selectionDiscountService.giftBond()) {\n <p class=\"ticket-map-totals__item\">\n <span>Bono de regalo:</span>\n <span class=\"line-through\">\n ${{ selectionDiscountService.giftBond()?.original_value ?? '0' | number: '1.0-2' }}\n </span>\n </p>\n }\n\n <hr class=\"ticket-map-totals__divider\" />\n\n <div class=\"ticket-map-totals__calculated\">\n <span class=\"ticket-map-totals__calculated-title\">Total:</span>\n\n @if (\n selectionTotalsService.totalDiscounted() || selectionTotalsService.totalDiscounted() === 0\n ) {\n <span class=\"ticket-map-totals__calculated-inline\">\n <span class=\"ticket-map-totals__calculated-discount\">\n ${{ selectionTotalsService.totalValue() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalDiscounted() | currency: 'COP' : 'symbol' : '1.0-2' }}\n </span>\n </span>\n } @else {\n <span class=\"ticket-map-totals__calculated-total\">\n ${{ selectionTotalsService.totalValue() | number: '1.0-2' }}\n </span>\n }\n </div>\n\n @if (selectionService.selectedCount() > 0 || selectionService.selectedProductCount() > 0) {\n <div class=\"flex flex-col gap-2\">\n <app-button\n (click)=\"onPurchaseClick.emit()\"\n size=\"sm\"\n icon=\"ri-dashboard-3-line\"\n [text]=\"buttonText\"\n [loadingText]=\"loadingButtonText\"\n [loading]=\"isLoading\"\n variant=\"primary\"\n />\n </div>\n }\n </div>\n</ticket-map-widget>\n", styles: [".ticket-map-totals{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.ticket-map-totals__item{align-items:center;color:#9ca3af;display:flex;flex-direction:row;font-size:.75rem;justify-content:space-between;margin:0}.ticket-map-totals__divider{border:none;border-top:1px solid #e5e7eb;width:100%}.ticket-map-totals__calculated{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:0}.ticket-map-totals__calculated-title{color:#4b5563;font-size:1rem;font-weight:700}.ticket-map-totals__calculated-inline{display:flex;flex-direction:column;align-items:flex-end}.ticket-map-totals__calculated-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}.ticket-map-totals__calculated-total{color:#4b5563;font-size:1rem;font-weight:700}\n"] }]
8946
9014
  }], ctorParameters: () => [{ type: PerformanceBookingDataService }, { type: TicketSelectionDetailsService }, { type: TicketSelectionDiscountService }, { type: TicketSelectionTotalsService }, { type: TicketSelectionService }, { type: i3$1.ActivatedRoute }], propDecorators: { title: [{
8947
9015
  type: Input
8948
9016
  }], buttonText: [{
@@ -8962,7 +9030,7 @@ class TicketMapWrapperComponent {
8962
9030
  needsLogin = false;
8963
9031
  isLoggedIn = true;
8964
9032
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8965
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: TicketMapWrapperComponent, isStandalone: true, selector: "ticket-map-wrapper", inputs: { readOnly: "readOnly", needsLogin: "needsLogin", isLoggedIn: "isLoggedIn" }, outputs: { selectionChange: "selectionChange", needsLoginError: "needsLoginError" }, ngImport: i0, template: "<ticket-map-widget>\n <ticket-map-widget-header title=\"Plano de la sala\">\n <div class=\"zoom-controls-wrapper\">\n <ticket-map-zoom-controls />\n </div>\n </ticket-map-widget-header>\n\n <div class=\"seat-map-wrapper\" #wrapper>\n <performance-ticket-map\n [readOnly]=\"readOnly\"\n [needsLogin]=\"needsLogin\"\n [isLoggedIn]=\"isLoggedIn\"\n (needsLoginError)=\"needsLoginError.emit()\"\n (selectionChange)=\"selectionChange.emit()\"\n />\n </div>\n</ticket-map-widget>\n", styles: [".seat-map-wrapper{position:relative;overflow:hidden;touch-action:pan-x pan-y;width:100%}\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"] }, { kind: "component", type: TicketMapZoomControlsComponent, selector: "ticket-map-zoom-controls" }, { kind: "component", type: PerformanceTicketMapComponent, selector: "performance-ticket-map", inputs: ["readOnly", "needsLogin", "isLoggedIn"], outputs: ["selectionChange", "needsLoginError"] }] });
9033
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: TicketMapWrapperComponent, isStandalone: true, selector: "ticket-map-wrapper", inputs: { readOnly: "readOnly", needsLogin: "needsLogin", isLoggedIn: "isLoggedIn" }, outputs: { selectionChange: "selectionChange", needsLoginError: "needsLoginError" }, ngImport: i0, template: "<ticket-map-widget>\n <ticket-map-widget-header title=\"Plano de la sala\">\n <ticket-map-floor-selector />\n <div class=\"zoom-controls-wrapper\">\n <ticket-map-zoom-controls />\n </div>\n </ticket-map-widget-header>\n\n <div class=\"seat-map-wrapper\" #wrapper>\n <performance-ticket-map\n [readOnly]=\"readOnly\"\n [needsLogin]=\"needsLogin\"\n [isLoggedIn]=\"isLoggedIn\"\n (needsLoginError)=\"needsLoginError.emit()\"\n (selectionChange)=\"selectionChange.emit()\"\n />\n </div>\n</ticket-map-widget>\n", styles: [".seat-map-wrapper{position:relative;overflow:hidden;touch-action:pan-x pan-y;width:100%}.zoom-controls-wrapper{margin-left:1rem}\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"] }, { kind: "component", type: TicketMapFloorSelectorComponent, selector: "ticket-map-floor-selector" }, { kind: "component", type: TicketMapZoomControlsComponent, selector: "ticket-map-zoom-controls" }, { kind: "component", type: PerformanceTicketMapComponent, selector: "performance-ticket-map", inputs: ["readOnly", "needsLogin", "isLoggedIn"], outputs: ["selectionChange", "needsLoginError"] }] });
8966
9034
  }
8967
9035
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapWrapperComponent, decorators: [{
8968
9036
  type: Component,
@@ -8970,9 +9038,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
8970
9038
  CommonModule,
8971
9039
  TicketMapWidgetComponent,
8972
9040
  TicketMapWidgetHeaderComponent,
9041
+ TicketMapFloorSelectorComponent,
8973
9042
  TicketMapZoomControlsComponent,
8974
9043
  PerformanceTicketMapComponent,
8975
- ], template: "<ticket-map-widget>\n <ticket-map-widget-header title=\"Plano de la sala\">\n <div class=\"zoom-controls-wrapper\">\n <ticket-map-zoom-controls />\n </div>\n </ticket-map-widget-header>\n\n <div class=\"seat-map-wrapper\" #wrapper>\n <performance-ticket-map\n [readOnly]=\"readOnly\"\n [needsLogin]=\"needsLogin\"\n [isLoggedIn]=\"isLoggedIn\"\n (needsLoginError)=\"needsLoginError.emit()\"\n (selectionChange)=\"selectionChange.emit()\"\n />\n </div>\n</ticket-map-widget>\n", styles: [".seat-map-wrapper{position:relative;overflow:hidden;touch-action:pan-x pan-y;width:100%}\n"] }]
9044
+ ], template: "<ticket-map-widget>\n <ticket-map-widget-header title=\"Plano de la sala\">\n <ticket-map-floor-selector />\n <div class=\"zoom-controls-wrapper\">\n <ticket-map-zoom-controls />\n </div>\n </ticket-map-widget-header>\n\n <div class=\"seat-map-wrapper\" #wrapper>\n <performance-ticket-map\n [readOnly]=\"readOnly\"\n [needsLogin]=\"needsLogin\"\n [isLoggedIn]=\"isLoggedIn\"\n (needsLoginError)=\"needsLoginError.emit()\"\n (selectionChange)=\"selectionChange.emit()\"\n />\n </div>\n</ticket-map-widget>\n", styles: [".seat-map-wrapper{position:relative;overflow:hidden;touch-action:pan-x pan-y;width:100%}.zoom-controls-wrapper{margin-left:1rem}\n"] }]
8976
9045
  }], propDecorators: { selectionChange: [{
8977
9046
  type: Output
8978
9047
  }], needsLoginError: [{
@@ -9786,5 +9855,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
9786
9855
  * Generated bundle index. Do not edit.
9787
9856
  */
9788
9857
 
9789
- export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, 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, 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, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformancesListEventsService, PhoneInputComponent, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, SHOW_TYPE_COLORS, STATE_API_ENDPOINTS, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowType, ShowTypeBadgeComponent, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, 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, 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, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile, transformUrlParams };
9858
+ export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, 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, 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, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformancesListEventsService, PhoneInputComponent, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, SHOW_TYPE_COLORS, STATE_API_ENDPOINTS, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowType, ShowTypeBadgeComponent, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, 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, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile, transformUrlParams };
9790
9859
  //# sourceMappingURL=tickera-angular-components.mjs.map