tickera-angular-components 0.0.1-dev.40 → 0.0.1-dev.42
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.
|
@@ -3165,6 +3165,11 @@ class TicketSelectionTotalsService {
|
|
|
3165
3165
|
});
|
|
3166
3166
|
return total;
|
|
3167
3167
|
}, ...(ngDevMode ? [{ debugName: "productSubtotal" }] : []));
|
|
3168
|
+
ticketSubtotal = computed(() => {
|
|
3169
|
+
return this.selectionService.selectedTickets().reduce((sum, ticket) => {
|
|
3170
|
+
return sum + Number(ticket?.normal_price || '0');
|
|
3171
|
+
}, 0);
|
|
3172
|
+
}, ...(ngDevMode ? [{ debugName: "ticketSubtotal" }] : []));
|
|
3168
3173
|
serviceFee = computed(() => {
|
|
3169
3174
|
return Number(this.bookingDataService.show()?.service_fee ?? '0');
|
|
3170
3175
|
}, ...(ngDevMode ? [{ debugName: "serviceFee" }] : []));
|
|
@@ -7073,11 +7078,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
7073
7078
|
class TicketMapWidgetHeaderComponent {
|
|
7074
7079
|
title = '';
|
|
7075
7080
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapWidgetHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7076
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapWidgetHeaderComponent, isStandalone: true, selector: "ticket-map-widget-header", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"ticket-map-widget-header\">\n @if (title) {\n <p class=\"ticket-map-widget-header__title\">{{ title }}</p>\n }\n\n <div class=\"ticket-map-widget-header__content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ticket-map-widget-header{display:flex;flex-direction:row;align-items:center;justify-content:start;gap:.5rem}.ticket-map-widget-header__title{font-weight:700;color:#374151;font-size:.875rem;text-transform:uppercase}.ticket-map-widget-header__content{display:flex;align-items:center;justify-content:end;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
7081
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapWidgetHeaderComponent, isStandalone: true, selector: "ticket-map-widget-header", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"ticket-map-widget-header\">\n @if (title) {\n <p class=\"ticket-map-widget-header__title\">{{ title }}</p>\n }\n\n <div class=\"ticket-map-widget-header__content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ticket-map-widget-header{display:flex;flex-direction:row;align-items:center;justify-content:start;gap:.5rem}.ticket-map-widget-header__title{font-weight:700;color:#374151;font-size:.875rem;margin:0;text-transform:uppercase}.ticket-map-widget-header__content{display:flex;align-items:center;justify-content:end;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
7077
7082
|
}
|
|
7078
7083
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapWidgetHeaderComponent, decorators: [{
|
|
7079
7084
|
type: Component,
|
|
7080
|
-
args: [{ selector: 'ticket-map-widget-header', standalone: true, imports: [CommonModule], template: "<div class=\"ticket-map-widget-header\">\n @if (title) {\n <p class=\"ticket-map-widget-header__title\">{{ title }}</p>\n }\n\n <div class=\"ticket-map-widget-header__content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ticket-map-widget-header{display:flex;flex-direction:row;align-items:center;justify-content:start;gap:.5rem}.ticket-map-widget-header__title{font-weight:700;color:#374151;font-size:.875rem;text-transform:uppercase}.ticket-map-widget-header__content{display:flex;align-items:center;justify-content:end;margin-left:auto}\n"] }]
|
|
7085
|
+
args: [{ selector: 'ticket-map-widget-header', standalone: true, imports: [CommonModule], template: "<div class=\"ticket-map-widget-header\">\n @if (title) {\n <p class=\"ticket-map-widget-header__title\">{{ title }}</p>\n }\n\n <div class=\"ticket-map-widget-header__content\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".ticket-map-widget-header{display:flex;flex-direction:row;align-items:center;justify-content:start;gap:.5rem}.ticket-map-widget-header__title{font-weight:700;color:#374151;font-size:.875rem;margin:0;text-transform:uppercase}.ticket-map-widget-header__content{display:flex;align-items:center;justify-content:end;margin-left:auto}\n"] }]
|
|
7081
7086
|
}], propDecorators: { title: [{
|
|
7082
7087
|
type: Input
|
|
7083
7088
|
}] } });
|
|
@@ -7335,11 +7340,192 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
7335
7340
|
args: [StageComponent]
|
|
7336
7341
|
}] } });
|
|
7337
7342
|
|
|
7343
|
+
class TicketMapPriceZonesComponent {
|
|
7344
|
+
title = 'Precios por zona';
|
|
7345
|
+
bookingDataService = inject(PerformanceBookingDataService);
|
|
7346
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapPriceZonesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7347
|
+
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"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] });
|
|
7348
|
+
}
|
|
7349
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapPriceZonesComponent, decorators: [{
|
|
7350
|
+
type: Component,
|
|
7351
|
+
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"] }]
|
|
7352
|
+
}], propDecorators: { title: [{
|
|
7353
|
+
type: Input
|
|
7354
|
+
}] } });
|
|
7355
|
+
|
|
7356
|
+
class TicketMapProductSelectionItemComponent {
|
|
7357
|
+
selectionService;
|
|
7358
|
+
product;
|
|
7359
|
+
constructor(selectionService) {
|
|
7360
|
+
this.selectionService = selectionService;
|
|
7361
|
+
}
|
|
7362
|
+
get quantity() {
|
|
7363
|
+
return this.selectionService.getProductQuantity(this.product.id);
|
|
7364
|
+
}
|
|
7365
|
+
get firstImage() {
|
|
7366
|
+
return this.product.images?.[0]?.full_url;
|
|
7367
|
+
}
|
|
7368
|
+
increment() {
|
|
7369
|
+
this.selectionService.updateProductQuantity(this.product.id, 1);
|
|
7370
|
+
}
|
|
7371
|
+
decrement() {
|
|
7372
|
+
this.selectionService.updateProductQuantity(this.product.id, -1);
|
|
7373
|
+
}
|
|
7374
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapProductSelectionItemComponent, deps: [{ token: TicketSelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7375
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TicketMapProductSelectionItemComponent, isStandalone: true, selector: "ticket-map-product-selection-item", inputs: { product: "product" }, ngImport: i0, template: "<div class=\"ticket-map-product-selection-item\">\n <div class=\"ticket-map-product-selection-item__image\">\n @if (firstImage) {\n <img\n [src]=\"firstImage\"\n [alt]=\"product.name\"\n class=\"ticket-map-product-selection-item__image-img\"\n />\n } @else {\n <i class=\"ri-shopping-bag-line ticket-map-product-selection-item__image-icon\"></i>\n }\n </div>\n\n <div class=\"ticket-map-product-selection-item__content\">\n <div class=\"ticket-map-product-selection-item__content-name\">{{ product.name }}</div>\n\n @if (product.sku) {\n <div class=\"ticket-map-product-selection-item__content-sku\">SKU: {{ product.sku }}</div>\n }\n\n <div class=\"ticket-map-product-selection-item__content-price\">\n ${{ product.price | number: '1.0' }}\n </div>\n </div>\n\n <div class=\"ticket-map-product-selection-item__quantity\">\n <button\n type=\"button\"\n class=\"ticket-map-product-selection-item__quantity-button\"\n [disabled]=\"quantity <= 0\"\n (click)=\"decrement()\"\n >\n <i class=\"ri-subtract-line\"></i>\n </button>\n\n <input\n type=\"number\"\n class=\"ticket-map-product-selection-item__quantity-input\"\n [value]=\"quantity\"\n readonly\n />\n\n <button\n type=\"button\"\n class=\"ticket-map-product-selection-item__quantity-button\"\n (click)=\"increment()\"\n >\n <i class=\"ri-add-line\"></i>\n </button>\n </div>\n</div>\n", styles: [".ticket-map-product-selection-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;flex-direction:row;flex-wrap:nowrap;gap:.75rem;justify-content:flex-start;padding:.75rem 0}.ticket-map-product-selection-item:last-child{border-bottom:none}.ticket-map-product-selection-item:hover{background-color:#f9fafb}.ticket-map-product-selection-item__image{border:1px solid #e5e7eb;border-radius:.0625rem;width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:#f9fafb;flex-shrink:0}.ticket-map-product-selection-item__image-img{width:100%;height:100%;object-fit:cover}.ticket-map-product-selection-item__image-icon{color:#9ca3af}.ticket-map-product-selection-item__content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.ticket-map-product-selection-item__content-name{font-size:10px;font-weight:500;color:#6b7280;line-height:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-map-product-selection-item__content-sku{font-size:.75rem;color:#9ca3af;line-height:100%}.ticket-map-product-selection-item__content-price{font-size:.875rem;font-weight:600;color:#111827;line-height:100%}.ticket-map-product-selection-item__quantity{display:flex;align-items:center;gap:.25rem;flex-shrink:0;margin-left:auto}.ticket-map-product-selection-item__quantity-button{align-items:center;background-color:#fff;border-radius:.0625rem;border:1px solid #d1d5db;color:#4b5563;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .2s ease;width:28px}.ticket-map-product-selection-item__quantity-button:hover{background-color:#f3f4f6}.ticket-map-product-selection-item__quantity-button:disabled{cursor:not-allowed;opacity:.4}.ticket-map-product-selection-item__quantity-button i{font-size:.875rem}.ticket-map-product-selection-item__quantity-input{background-color:#fff;border-radius:.0625rem;border:1px solid #d1d5db;color:#111827;cursor:default;font-size:.875rem;font-weight:600;height:28px;text-align:center;width:40px}.ticket-map-product-selection-item__quantity-input::-webkit-inner-spin-button,.ticket-map-product-selection-item__quantity-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ticket-map-product-selection-item__quantity-input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] });
|
|
7376
|
+
}
|
|
7377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapProductSelectionItemComponent, decorators: [{
|
|
7378
|
+
type: Component,
|
|
7379
|
+
args: [{ selector: 'ticket-map-product-selection-item', standalone: true, imports: [CommonModule], template: "<div class=\"ticket-map-product-selection-item\">\n <div class=\"ticket-map-product-selection-item__image\">\n @if (firstImage) {\n <img\n [src]=\"firstImage\"\n [alt]=\"product.name\"\n class=\"ticket-map-product-selection-item__image-img\"\n />\n } @else {\n <i class=\"ri-shopping-bag-line ticket-map-product-selection-item__image-icon\"></i>\n }\n </div>\n\n <div class=\"ticket-map-product-selection-item__content\">\n <div class=\"ticket-map-product-selection-item__content-name\">{{ product.name }}</div>\n\n @if (product.sku) {\n <div class=\"ticket-map-product-selection-item__content-sku\">SKU: {{ product.sku }}</div>\n }\n\n <div class=\"ticket-map-product-selection-item__content-price\">\n ${{ product.price | number: '1.0' }}\n </div>\n </div>\n\n <div class=\"ticket-map-product-selection-item__quantity\">\n <button\n type=\"button\"\n class=\"ticket-map-product-selection-item__quantity-button\"\n [disabled]=\"quantity <= 0\"\n (click)=\"decrement()\"\n >\n <i class=\"ri-subtract-line\"></i>\n </button>\n\n <input\n type=\"number\"\n class=\"ticket-map-product-selection-item__quantity-input\"\n [value]=\"quantity\"\n readonly\n />\n\n <button\n type=\"button\"\n class=\"ticket-map-product-selection-item__quantity-button\"\n (click)=\"increment()\"\n >\n <i class=\"ri-add-line\"></i>\n </button>\n </div>\n</div>\n", styles: [".ticket-map-product-selection-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;flex-direction:row;flex-wrap:nowrap;gap:.75rem;justify-content:flex-start;padding:.75rem 0}.ticket-map-product-selection-item:last-child{border-bottom:none}.ticket-map-product-selection-item:hover{background-color:#f9fafb}.ticket-map-product-selection-item__image{border:1px solid #e5e7eb;border-radius:.0625rem;width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:#f9fafb;flex-shrink:0}.ticket-map-product-selection-item__image-img{width:100%;height:100%;object-fit:cover}.ticket-map-product-selection-item__image-icon{color:#9ca3af}.ticket-map-product-selection-item__content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.ticket-map-product-selection-item__content-name{font-size:10px;font-weight:500;color:#6b7280;line-height:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-map-product-selection-item__content-sku{font-size:.75rem;color:#9ca3af;line-height:100%}.ticket-map-product-selection-item__content-price{font-size:.875rem;font-weight:600;color:#111827;line-height:100%}.ticket-map-product-selection-item__quantity{display:flex;align-items:center;gap:.25rem;flex-shrink:0;margin-left:auto}.ticket-map-product-selection-item__quantity-button{align-items:center;background-color:#fff;border-radius:.0625rem;border:1px solid #d1d5db;color:#4b5563;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .2s ease;width:28px}.ticket-map-product-selection-item__quantity-button:hover{background-color:#f3f4f6}.ticket-map-product-selection-item__quantity-button:disabled{cursor:not-allowed;opacity:.4}.ticket-map-product-selection-item__quantity-button i{font-size:.875rem}.ticket-map-product-selection-item__quantity-input{background-color:#fff;border-radius:.0625rem;border:1px solid #d1d5db;color:#111827;cursor:default;font-size:.875rem;font-weight:600;height:28px;text-align:center;width:40px}.ticket-map-product-selection-item__quantity-input::-webkit-inner-spin-button,.ticket-map-product-selection-item__quantity-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ticket-map-product-selection-item__quantity-input[type=number]{-moz-appearance:textfield}\n"] }]
|
|
7380
|
+
}], ctorParameters: () => [{ type: TicketSelectionService }], propDecorators: { product: [{
|
|
7381
|
+
type: Input,
|
|
7382
|
+
args: [{ required: true }]
|
|
7383
|
+
}] } });
|
|
7384
|
+
|
|
7385
|
+
class TIcketMapProductSelectionComponent {
|
|
7386
|
+
bookingDataService = inject(PerformanceBookingDataService);
|
|
7387
|
+
products = computed(() => this.bookingDataService.roomMap()?.products ?? [], ...(ngDevMode ? [{ debugName: "products" }] : []));
|
|
7388
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TIcketMapProductSelectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7389
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: TIcketMapProductSelectionComponent, isStandalone: true, selector: "ticket-map-product-selection", ngImport: i0, template: "@if (products().length > 0) {\n <ticket-map-widget>\n <ticket-map-widget-header title=\"Productos\" />\n\n <div class=\"products-list\">\n @for (product of products(); track product.id) {\n <ticket-map-product-selection-item [product]=\"product\" />\n }\n </div>\n </ticket-map-widget>\n}\n", styles: [".products-list{overflow-y:auto;max-height:20rem;margin:.5rem 0}\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: TicketMapProductSelectionItemComponent, selector: "ticket-map-product-selection-item", inputs: ["product"] }] });
|
|
7390
|
+
}
|
|
7391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TIcketMapProductSelectionComponent, decorators: [{
|
|
7392
|
+
type: Component,
|
|
7393
|
+
args: [{ selector: 'ticket-map-product-selection', standalone: true, imports: [
|
|
7394
|
+
CommonModule,
|
|
7395
|
+
TicketMapWidgetComponent,
|
|
7396
|
+
TicketMapWidgetHeaderComponent,
|
|
7397
|
+
TicketMapProductSelectionItemComponent,
|
|
7398
|
+
], template: "@if (products().length > 0) {\n <ticket-map-widget>\n <ticket-map-widget-header title=\"Productos\" />\n\n <div class=\"products-list\">\n @for (product of products(); track product.id) {\n <ticket-map-product-selection-item [product]=\"product\" />\n }\n </div>\n </ticket-map-widget>\n}\n", styles: [".products-list{overflow-y:auto;max-height:20rem;margin:.5rem 0}\n"] }]
|
|
7399
|
+
}] });
|
|
7400
|
+
|
|
7401
|
+
class TicketMapTotalsComponent {
|
|
7402
|
+
bookingDataService;
|
|
7403
|
+
selectionDetailsService;
|
|
7404
|
+
selectionDiscountService;
|
|
7405
|
+
selectionTotalsService;
|
|
7406
|
+
selectionService;
|
|
7407
|
+
activatedRoute;
|
|
7408
|
+
title = 'Totales de la selección';
|
|
7409
|
+
buttonText = 'Generar orden de compra';
|
|
7410
|
+
loadingButtonText = 'Generando orden de compra...';
|
|
7411
|
+
isLoading = false;
|
|
7412
|
+
onPurchaseClick = new EventEmitter();
|
|
7413
|
+
constructor(bookingDataService, selectionDetailsService, selectionDiscountService, selectionTotalsService, selectionService, activatedRoute) {
|
|
7414
|
+
this.bookingDataService = bookingDataService;
|
|
7415
|
+
this.selectionDetailsService = selectionDetailsService;
|
|
7416
|
+
this.selectionDiscountService = selectionDiscountService;
|
|
7417
|
+
this.selectionTotalsService = selectionTotalsService;
|
|
7418
|
+
this.selectionService = selectionService;
|
|
7419
|
+
this.activatedRoute = activatedRoute;
|
|
7420
|
+
}
|
|
7421
|
+
get serviceFee() {
|
|
7422
|
+
return Number(this.bookingDataService.show()?.service_fee ?? '0');
|
|
7423
|
+
}
|
|
7424
|
+
get performanceId() {
|
|
7425
|
+
return Number(this.activatedRoute.snapshot.paramMap.get('id'));
|
|
7426
|
+
}
|
|
7427
|
+
get selectedTicketIds() {
|
|
7428
|
+
return this.selectionService.selectedTicketIdList();
|
|
7429
|
+
}
|
|
7430
|
+
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.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
7431
|
+
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()?.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"], outputs: ["clicked"] }, { kind: "component", type: TicketMapWidgetHeaderComponent, selector: "ticket-map-widget-header", inputs: ["title"] }, { kind: "component", type: TicketMapWidgetComponent, selector: "ticket-map-widget" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.CurrencyPipe, name: "currency" }] });
|
|
7432
|
+
}
|
|
7433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapTotalsComponent, decorators: [{
|
|
7434
|
+
type: Component,
|
|
7435
|
+
args: [{ selector: 'ticket-map-totals', standalone: true, imports: [
|
|
7436
|
+
CommonModule,
|
|
7437
|
+
AppButtonComponent,
|
|
7438
|
+
TicketMapWidgetHeaderComponent,
|
|
7439
|
+
TicketMapWidgetComponent,
|
|
7440
|
+
], 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()?.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"] }]
|
|
7441
|
+
}], ctorParameters: () => [{ type: PerformanceBookingDataService }, { type: TicketSelectionDetailsService }, { type: TicketSelectionDiscountService }, { type: TicketSelectionTotalsService }, { type: TicketSelectionService }, { type: i3.ActivatedRoute }], propDecorators: { title: [{
|
|
7442
|
+
type: Input
|
|
7443
|
+
}], buttonText: [{
|
|
7444
|
+
type: Input
|
|
7445
|
+
}], loadingButtonText: [{
|
|
7446
|
+
type: Input
|
|
7447
|
+
}], isLoading: [{
|
|
7448
|
+
type: Input
|
|
7449
|
+
}], onPurchaseClick: [{
|
|
7450
|
+
type: Output
|
|
7451
|
+
}] } });
|
|
7452
|
+
|
|
7453
|
+
class TicketMapWrapperComponent {
|
|
7454
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7455
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: TicketMapWrapperComponent, isStandalone: true, selector: "ticket-map-wrapper", 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 </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"], outputs: ["selectionChange"] }] });
|
|
7456
|
+
}
|
|
7457
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TicketMapWrapperComponent, decorators: [{
|
|
7458
|
+
type: Component,
|
|
7459
|
+
args: [{ selector: 'ticket-map-wrapper', standalone: true, imports: [
|
|
7460
|
+
CommonModule,
|
|
7461
|
+
TicketMapWidgetComponent,
|
|
7462
|
+
TicketMapWidgetHeaderComponent,
|
|
7463
|
+
TicketMapZoomControlsComponent,
|
|
7464
|
+
PerformanceTicketMapComponent,
|
|
7465
|
+
], 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 </div>\n</ticket-map-widget>\n", styles: [".seat-map-wrapper{position:relative;overflow:hidden;touch-action:pan-x pan-y;width:100%}\n"] }]
|
|
7466
|
+
}] });
|
|
7467
|
+
|
|
7468
|
+
class SeatSelectionEmptySummaryComponent {
|
|
7469
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SeatSelectionEmptySummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7470
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: SeatSelectionEmptySummaryComponent, isStandalone: true, selector: "seat-selection-empty-summary", ngImport: i0, template: "<div class=\"seat-selection-empty-summary\">\n <div class=\"seat-selection-empty-summary__icon\">\n <i class=\"ri-armchair-line seat-selection-empty-summary__icon--size\"></i>\n </div>\n <p class=\"seat-selection-empty-summary__title\">No has seleccionado asientos</p>\n <p class=\"seat-selection-empty-summary__subtitle\">\n Haz clic en el mapa para seleccionar los asientos\n </p>\n</div>\n", styles: [".seat-selection-empty-summary{height:10rem;display:flex;flex-direction:column;align-items:center;border-radius:.5rem;background-color:#fff;justify-content:center;text-align:center;margin:0 auto;width:100%}.seat-selection-empty-summary__icon{color:#9ca3af;margin-bottom:.5rem}.seat-selection-empty-summary__icon--size{font-size:3rem;color:#9ca3af}.seat-selection-empty-summary__title{color:#4b5563;font-size:1rem;font-weight:500;margin-bottom:.25rem}.seat-selection-empty-summary__subtitle{color:#6b7280;font-size:.75rem;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
7471
|
+
}
|
|
7472
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SeatSelectionEmptySummaryComponent, decorators: [{
|
|
7473
|
+
type: Component,
|
|
7474
|
+
args: [{ selector: 'seat-selection-empty-summary', standalone: true, imports: [CommonModule], template: "<div class=\"seat-selection-empty-summary\">\n <div class=\"seat-selection-empty-summary__icon\">\n <i class=\"ri-armchair-line seat-selection-empty-summary__icon--size\"></i>\n </div>\n <p class=\"seat-selection-empty-summary__title\">No has seleccionado asientos</p>\n <p class=\"seat-selection-empty-summary__subtitle\">\n Haz clic en el mapa para seleccionar los asientos\n </p>\n</div>\n", styles: [".seat-selection-empty-summary{height:10rem;display:flex;flex-direction:column;align-items:center;border-radius:.5rem;background-color:#fff;justify-content:center;text-align:center;margin:0 auto;width:100%}.seat-selection-empty-summary__icon{color:#9ca3af;margin-bottom:.5rem}.seat-selection-empty-summary__icon--size{font-size:3rem;color:#9ca3af}.seat-selection-empty-summary__title{color:#4b5563;font-size:1rem;font-weight:500;margin-bottom:.25rem}.seat-selection-empty-summary__subtitle{color:#6b7280;font-size:.75rem;margin:0}\n"] }]
|
|
7475
|
+
}] });
|
|
7476
|
+
|
|
7477
|
+
class SeatSelectionSummaryItemComponent {
|
|
7478
|
+
selectionService;
|
|
7479
|
+
item;
|
|
7480
|
+
constructor(selectionService) {
|
|
7481
|
+
this.selectionService = selectionService;
|
|
7482
|
+
}
|
|
7483
|
+
getItemTypeIcon = getItemTypeIcon;
|
|
7484
|
+
removeItem(ticket) {
|
|
7485
|
+
this.selectionService.deselect(ticket);
|
|
7486
|
+
}
|
|
7487
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SeatSelectionSummaryItemComponent, deps: [{ token: TicketSelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7488
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SeatSelectionSummaryItemComponent, isStandalone: true, selector: "seat-selection-summary-item", inputs: { item: "item" }, ngImport: i0, template: "<div class=\"seat-selection-summary-item\">\n <div class=\"seat-selection-summary-item__icon\">\n {{ getItemTypeIcon(item) }}\n </div>\n\n <div class=\"seat-selection-summary-item__content\">\n <div class=\"seat-selection-summary-item__content-label\">{{ item.seat_label }}</div>\n\n <div class=\"seat-selection-summary-item__content-price\">\n ${{ item.normal_price | number: '1.0' }}\n </div>\n\n @if (item.element_qty && item.element_qty > 1) {\n <div class=\"seat-selection-summary-item__content-quantity\">\n Cantidad: {{ item.element_qty }}\n </div>\n }\n </div>\n\n <div class=\"seat-selection-summary-item__actions\">\n <app-button\n variant=\"transparent\"\n size=\"xs\"\n text=\"\"\n icon=\"ri-close-line\"\n (clicked)=\"removeItem(item)\"\n />\n </div>\n</div>\n", styles: [".seat-selection-summary-item{align-items:center;display:flex;flex-flow:row nowrap;gap:.75rem;justify-content:flex-start;border-bottom:1px solid #e5e7eb;padding:.75rem 0;transition:background-color .2s ease}.seat-selection-summary-item:last-child{border-bottom:none}.seat-selection-summary-item:hover{background-color:#f9fafb}.seat-selection-summary-item__icon{align-items:center;border:1px solid #e5e7eb;border-radius:.25rem;display:flex;font-size:1.5rem;height:44px;justify-content:center;padding:.25rem;width:44px}.seat-selection-summary-item__content{display:flex;flex-direction:column;gap:.25rem}.seat-selection-summary-item__content-label{font-size:.75rem;font-weight:500;color:#6b7280}.seat-selection-summary-item__content-price{font-size:.875rem;font-weight:600;color:#111827}.seat-selection-summary-item__content-quantity{font-size:.75rem;color:#6b7280}.seat-selection-summary-item__actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon"], outputs: ["clicked"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] });
|
|
7489
|
+
}
|
|
7490
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SeatSelectionSummaryItemComponent, decorators: [{
|
|
7491
|
+
type: Component,
|
|
7492
|
+
args: [{ selector: 'seat-selection-summary-item', standalone: true, imports: [CommonModule, AppButtonComponent], template: "<div class=\"seat-selection-summary-item\">\n <div class=\"seat-selection-summary-item__icon\">\n {{ getItemTypeIcon(item) }}\n </div>\n\n <div class=\"seat-selection-summary-item__content\">\n <div class=\"seat-selection-summary-item__content-label\">{{ item.seat_label }}</div>\n\n <div class=\"seat-selection-summary-item__content-price\">\n ${{ item.normal_price | number: '1.0' }}\n </div>\n\n @if (item.element_qty && item.element_qty > 1) {\n <div class=\"seat-selection-summary-item__content-quantity\">\n Cantidad: {{ item.element_qty }}\n </div>\n }\n </div>\n\n <div class=\"seat-selection-summary-item__actions\">\n <app-button\n variant=\"transparent\"\n size=\"xs\"\n text=\"\"\n icon=\"ri-close-line\"\n (clicked)=\"removeItem(item)\"\n />\n </div>\n</div>\n", styles: [".seat-selection-summary-item{align-items:center;display:flex;flex-flow:row nowrap;gap:.75rem;justify-content:flex-start;border-bottom:1px solid #e5e7eb;padding:.75rem 0;transition:background-color .2s ease}.seat-selection-summary-item:last-child{border-bottom:none}.seat-selection-summary-item:hover{background-color:#f9fafb}.seat-selection-summary-item__icon{align-items:center;border:1px solid #e5e7eb;border-radius:.25rem;display:flex;font-size:1.5rem;height:44px;justify-content:center;padding:.25rem;width:44px}.seat-selection-summary-item__content{display:flex;flex-direction:column;gap:.25rem}.seat-selection-summary-item__content-label{font-size:.75rem;font-weight:500;color:#6b7280}.seat-selection-summary-item__content-price{font-size:.875rem;font-weight:600;color:#111827}.seat-selection-summary-item__content-quantity{font-size:.75rem;color:#6b7280}.seat-selection-summary-item__actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}\n"] }]
|
|
7493
|
+
}], ctorParameters: () => [{ type: TicketSelectionService }], propDecorators: { item: [{
|
|
7494
|
+
type: Input,
|
|
7495
|
+
args: [{ required: true }]
|
|
7496
|
+
}] } });
|
|
7497
|
+
|
|
7498
|
+
class SeatSelectionSummaryComponent {
|
|
7499
|
+
selectionService;
|
|
7500
|
+
title = 'Resumen de la selección';
|
|
7501
|
+
clearButtonText = 'Limpiar todo';
|
|
7502
|
+
constructor(selectionService) {
|
|
7503
|
+
this.selectionService = selectionService;
|
|
7504
|
+
}
|
|
7505
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SeatSelectionSummaryComponent, deps: [{ token: TicketSelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7506
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SeatSelectionSummaryComponent, isStandalone: true, selector: "seat-selection-summary", inputs: { title: "title", clearButtonText: "clearButtonText" }, ngImport: i0, template: "<ticket-map-widget>\n <ticket-map-widget-header [title]=\"title\" />\n\n @if (selectionService.selectedCount() > 0) {\n <div class=\"tickets-list\">\n @for (item of selectionService.selectedTickets(); track item.id) {\n <seat-selection-summary-item [item]=\"item\" />\n }\n </div>\n\n @if (selectionService.selectedCount() > 0) {\n <div class=\"tickets-actions\">\n <app-button\n size=\"xs\"\n [text]=\"clearButtonText\"\n icon=\"ri-delete-bin-line\"\n (clicked)=\"selectionService.clearSelection()\"\n />\n </div>\n }\n } @else {\n <seat-selection-empty-summary />\n }\n</ticket-map-widget>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon"], outputs: ["clicked"] }, { kind: "component", type: SeatSelectionEmptySummaryComponent, selector: "seat-selection-empty-summary" }, { kind: "component", type: SeatSelectionSummaryItemComponent, selector: "seat-selection-summary-item", inputs: ["item"] }, { kind: "component", type: TicketMapWidgetComponent, selector: "ticket-map-widget" }, { kind: "component", type: TicketMapWidgetHeaderComponent, selector: "ticket-map-widget-header", inputs: ["title"] }] });
|
|
7507
|
+
}
|
|
7508
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SeatSelectionSummaryComponent, decorators: [{
|
|
7509
|
+
type: Component,
|
|
7510
|
+
args: [{ selector: 'seat-selection-summary', standalone: true, imports: [
|
|
7511
|
+
CommonModule,
|
|
7512
|
+
AppButtonComponent,
|
|
7513
|
+
SeatSelectionEmptySummaryComponent,
|
|
7514
|
+
SeatSelectionSummaryItemComponent,
|
|
7515
|
+
TicketMapWidgetComponent,
|
|
7516
|
+
TicketMapWidgetHeaderComponent,
|
|
7517
|
+
], template: "<ticket-map-widget>\n <ticket-map-widget-header [title]=\"title\" />\n\n @if (selectionService.selectedCount() > 0) {\n <div class=\"tickets-list\">\n @for (item of selectionService.selectedTickets(); track item.id) {\n <seat-selection-summary-item [item]=\"item\" />\n }\n </div>\n\n @if (selectionService.selectedCount() > 0) {\n <div class=\"tickets-actions\">\n <app-button\n size=\"xs\"\n [text]=\"clearButtonText\"\n icon=\"ri-delete-bin-line\"\n (clicked)=\"selectionService.clearSelection()\"\n />\n </div>\n }\n } @else {\n <seat-selection-empty-summary />\n }\n</ticket-map-widget>\n" }]
|
|
7518
|
+
}], ctorParameters: () => [{ type: TicketSelectionService }], propDecorators: { title: [{
|
|
7519
|
+
type: Input
|
|
7520
|
+
}], clearButtonText: [{
|
|
7521
|
+
type: Input
|
|
7522
|
+
}] } });
|
|
7523
|
+
|
|
7338
7524
|
// Config
|
|
7339
7525
|
|
|
7340
7526
|
/**
|
|
7341
7527
|
* Generated bundle index. Do not edit.
|
|
7342
7528
|
*/
|
|
7343
7529
|
|
|
7344
|
-
export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, 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, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, 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, GiftBondStatus, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MinTodayValidator, MustMatchValidator, OrderItemType, OrderStatus, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, SelectedDiscountCardType, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_GRID_SIZE, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TickeraTranslocoLoader, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon$1 as drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile };
|
|
7530
|
+
export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, 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, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, 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, GiftBondStatus, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MinTodayValidator, MustMatchValidator, OrderItemType, OrderStatus, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_GRID_SIZE, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TIcketMapProductSelectionComponent, TickeraTranslocoLoader, TicketMapPriceZonesComponent, TicketMapProductSelectionItemComponent, TicketMapTotalsComponent, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapWrapperComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon$1 as drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile };
|
|
7345
7531
|
//# sourceMappingURL=tickera-angular-components.mjs.map
|