tickera-angular-components 0.0.1-dev.18 → 0.0.1-dev.180

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.
package/index.d.ts CHANGED
@@ -1,12 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders, WritableSignal, EventEmitter, Injector, Type, OnInit, OnDestroy, ElementRef, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, WritableSignal, Signal, EventEmitter, OnChanges, OnDestroy, SimpleChanges, Injector, Type, ElementRef, OnInit, AfterViewInit } from '@angular/core';
3
+ export { TippyDirective } from '@ngneat/helipopper';
4
+ export * from '@ngneat/helipopper/config';
3
5
  import { TranslocoLoader, TranslocoService } from '@jsverse/transloco';
4
6
  import * as rxjs from 'rxjs';
5
7
  import { Observable, Subject } from 'rxjs';
6
- import { ValidatorFn, FormGroup, FormBuilder, ControlValueAccessor, NgControl, Validator, AbstractControl, FormControl } from '@angular/forms';
7
- import { HttpClient, HttpInterceptorFn } from '@angular/common/http';
8
+ import { ShapeConfig, Shape } from 'konva/lib/Shape';
9
+ import { Context } from 'konva/lib/Context';
10
+ import { ValidatorFn, FormGroup, FormBuilder, ControlValueAccessor, NgControl, Validator, AbstractControl, ValidationErrors, FormControl } from '@angular/forms';
11
+ import { HttpClient, HttpErrorResponse, HttpInterceptorFn } from '@angular/common/http';
12
+ import { Stage } from 'konva/lib/Stage';
13
+ import * as tickera_angular_components from 'tickera-angular-components';
8
14
  import { Toolbar, Editor } from 'ngx-editor';
9
- import { Router } from '@angular/router';
15
+ import { Router, ActivatedRoute } from '@angular/router';
16
+ import { StageComponent } from 'ng2-konva';
10
17
 
11
18
  interface TickeraComponentsConfig {
12
19
  apiUrl: string;
@@ -14,6 +21,7 @@ interface TickeraComponentsConfig {
14
21
  defaultLang?: string;
15
22
  availableLangs?: string[];
16
23
  }
24
+
17
25
  declare const TICKERA_COMPONENTS_CONFIG: InjectionToken<TickeraComponentsConfig>;
18
26
  declare function provideTickeraComponents(config: TickeraComponentsConfig): EnvironmentProviders;
19
27
 
@@ -33,15 +41,6 @@ declare const ALERT_ICONS: {
33
41
  info: string;
34
42
  };
35
43
 
36
- declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
37
- declare const BASE_BUTTON_CLASSES = "btn";
38
- declare const BUTTON_SIZES_CLASSES: Record<string, string>;
39
-
40
- declare const FORM_ERROR_MESSAGES: Record<string, string>;
41
-
42
- declare const BASE_INPUT_CLASSES: string;
43
- declare const ERROR_INPUT_CLASSES: string;
44
-
45
44
  declare const ADMIN_API_ROUTES: {
46
45
  FIND_ALL: string;
47
46
  CREATE: string;
@@ -49,6 +48,13 @@ declare const ADMIN_API_ROUTES: {
49
48
  deleteOne: (id: number) => string;
50
49
  };
51
50
 
51
+ declare const ADMISSION_API_ROUTES: {
52
+ join: (performanceId: number) => string;
53
+ leave: (performanceId: number) => string;
54
+ status: (performanceId: number) => string;
55
+ events: (performanceId: number) => string;
56
+ };
57
+
52
58
  declare const CITY_API_ENDPOINTS: {
53
59
  findAll: string;
54
60
  create: string;
@@ -65,10 +71,10 @@ declare const COUNTRY_API_ENDPOINTS: {
65
71
  delete: (id: number) => string;
66
72
  };
67
73
 
68
- declare const STATE_API_ENDPOINTS: {
74
+ declare const CUSTOMERS_API_ROUTES: {
69
75
  findAll: string;
70
76
  create: string;
71
- findById: (id: number) => string;
77
+ findOne: (id: number) => string;
72
78
  update: (id: number) => string;
73
79
  delete: (id: number) => string;
74
80
  };
@@ -79,6 +85,7 @@ declare const PERFORMANCES_API_ROUTES: {
79
85
  createBulk: string;
80
86
  findOneById: (id: number) => string;
81
87
  findOneBookingData: (id: number) => string;
88
+ findOneBookingDataAdmin: (id: number) => string;
82
89
  update: (id: number) => string;
83
90
  delete: (id: number) => string;
84
91
  deleteMany: string;
@@ -88,6 +95,44 @@ declare const PERFORMANCES_API_ROUTES: {
88
95
  ticketQrToken: (uuid: string) => string;
89
96
  getAvailableDays: string;
90
97
  publicAvailablePerformances: string;
98
+ seatEventsTicket: (id: number) => string;
99
+ seatEventsTicketAdmin: (id: number) => string;
100
+ seatEvents: (id: number) => string;
101
+ myQrToken: (ticketUuid: string) => string;
102
+ };
103
+
104
+ declare const PRICE_ZONES_API_ROUTES: {
105
+ FIND_ALL: string;
106
+ CREATE: string;
107
+ findOneById: (id: number) => string;
108
+ update: (id: number) => string;
109
+ delete: (id: number) => string;
110
+ updateElements: (id: number) => string;
111
+ duplicate: (id: number) => string;
112
+ };
113
+
114
+ declare const PRODUCT_CATEGORIES_API_ROUTES: {
115
+ FIND_ALL: string;
116
+ CREATE: string;
117
+ findById: (id: number) => string;
118
+ update: (id: number) => string;
119
+ delete: (id: number) => string;
120
+ };
121
+
122
+ declare const PRODUCT_TAGS_API_ROUTES: {
123
+ FIND_ALL: string;
124
+ CREATE: string;
125
+ findById: (id: number) => string;
126
+ update: (id: number) => string;
127
+ delete: (id: number) => string;
128
+ };
129
+
130
+ declare const PRODUCT_TYPES_API_ROUTES: {
131
+ FIND_ALL: string;
132
+ CREATE: string;
133
+ findById: (id: number) => string;
134
+ update: (id: number) => string;
135
+ delete: (id: number) => string;
91
136
  };
92
137
 
93
138
  declare const PRODUCTS_API_ROUTES: {
@@ -96,6 +141,9 @@ declare const PRODUCTS_API_ROUTES: {
96
141
  findOneById: (id: number) => string;
97
142
  update: (id: number) => string;
98
143
  delete: (id: number) => string;
144
+ fetchImages: (id: number) => string;
145
+ uploadImages: (id: number) => string;
146
+ deleteOneImage: (productId: number, imageId: number) => string;
99
147
  };
100
148
 
101
149
  declare const SHOWS_API_ROUTES: {
@@ -110,22 +158,12 @@ declare const SHOWS_API_ROUTES: {
110
158
  publicAvailablePerformances: string;
111
159
  };
112
160
 
113
- declare const CUSTOMERS_API_ROUTES: {
161
+ declare const STATE_API_ENDPOINTS: {
114
162
  findAll: string;
115
163
  create: string;
116
- findOne: (id: number) => string;
117
- update: (id: number) => string;
118
- delete: (id: number) => string;
119
- };
120
-
121
- declare const PRICE_ZONES_API_ROUTES: {
122
- FIND_ALL: string;
123
- CREATE: string;
124
- findOneById: (id: number) => string;
164
+ findById: (id: number) => string;
125
165
  update: (id: number) => string;
126
166
  delete: (id: number) => string;
127
- updateElements: (id: number) => string;
128
- duplicate: (id: number) => string;
129
167
  };
130
168
 
131
169
  declare const VENUES_API_ROUTES: {
@@ -139,169 +177,36 @@ declare const VENUES_API_ROUTES: {
139
177
  deleteOneImage: (venueId: number, imageId: number) => string;
140
178
  };
141
179
 
142
- declare enum FileType {
143
- IMAGE = "image",
144
- PDF = "pdf",
145
- EXCEL = "excel",
146
- WORD = "word",
147
- TEXT = "text",
148
- DEFAULT = "default"
149
- }
150
-
151
- declare enum CouponApplicability {
152
- GENERAL = "GENERAL",
153
- CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
154
- MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
155
- SHOWS = "SHOWS",
156
- PERFORMANCES = "PERFORMANCES"
157
- }
158
-
159
- declare enum CouponDiscountType {
160
- PERCENTAGE = "PERCENTAGE",
161
- FIXED = "FIXED"
162
- }
163
-
164
- declare enum CouponStatus {
165
- ACTIVE = "ACTIVE",
166
- INACTIVE = "INACTIVE",
167
- EXPIRED = "EXPIRED",
168
- CONSUMED = "CONSUMED"
169
- }
170
-
171
- declare enum CorporateBondStatus {
172
- ACTIVE = "ACTIVE",
173
- INACTIVE = "INACTIVE",
174
- EXPIRED = "EXPIRED"
175
- }
176
-
177
- declare enum PerformanceStatus {
178
- ACTIVE = "active",
179
- CANCELLED = "cancelled",
180
- FINISHED = "finished",
181
- POSTPONED = "postponed"
182
- }
183
-
184
- declare enum PerformanceTicketStatus {
185
- AVAILABLE = "available",
186
- RESERVED = "reserved",
187
- SOLD = "sold",
188
- BLOCKED = "blocked"
189
- }
190
-
191
- declare enum RoomMapElementOrientation {
192
- TOP = "top",
193
- RIGHT = "right",
194
- BOTTOM = "bottom",
195
- LEFT = "left",
196
- CENTER = "center"
197
- }
198
-
199
- declare enum RoomMapElementType {
200
- SEAT_BLOCK = "seat_block",
201
- TABLE = "table",
202
- ZONE = "zone",
203
- EXIT = "exit",
204
- STAGE = "stage",
205
- PRODUCTION_AREA = "production_area",
206
- UNAVAILABLE_SPACE = "unavailable_space",
207
- STAIR = "stair",
208
- HALLWAY = "hallway"
209
- }
210
-
211
- declare enum GiftBondStatus {
212
- ACTIVE = "ACTIVE",
213
- REDEEMED = "REDEEMED",
214
- EXPIRED = "EXPIRED",
215
- INACTIVE = "INACTIVE"
216
- }
217
-
218
- declare enum OrderItemType {
219
- TICKET = "TICKET",
220
- PRODUCT = "PRODUCT"
221
- }
222
-
223
- declare enum OrderStatus {
224
- ON_HOLD = "on-hold",
225
- PENDING_PAYMENT = "pending-payment",
226
- PROCESSING = "processing",
227
- COMPLETED = "completed",
228
- FAILED = "failed",
229
- CANCELLED = "cancelled",
230
- REFUNDED = "refunded"
231
- }
232
-
233
- interface RoomMapPosition {
234
- x: number;
235
- y: number;
236
- }
237
-
238
- interface RoomMapSize {
239
- width: number;
240
- height: number;
241
- }
242
-
243
- interface RoomMapBaseElement {
244
- id: string;
245
- type: RoomMapElementType;
246
- position: RoomMapPosition;
247
- size: RoomMapSize;
248
- rotation: number;
249
- name?: string;
250
- isLocked: boolean;
251
- isVisible: boolean;
252
- zIndex: number;
253
- }
254
-
255
- interface RoomMapExitElement extends RoomMapBaseElement {
256
- type: RoomMapElementType.EXIT;
257
- exitName?: string;
258
- exitType: 'emergency' | 'regular';
259
- width: number;
260
- }
261
-
262
- interface RoomMapProductionAreaElement extends RoomMapBaseElement {
263
- type: RoomMapElementType.PRODUCTION_AREA;
264
- areaName?: string;
265
- areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
266
- }
267
-
268
- interface RoomMapSeatElement extends RoomMapBaseElement {
269
- type: RoomMapElementType.SEAT_BLOCK;
270
- seatNumber?: string;
271
- isAvailable: boolean;
272
- priceCategory?: string;
273
- }
180
+ declare const VIP_CARDS_API_ROUTES: {
181
+ findAll: string;
182
+ findOne: (id: number) => string;
183
+ activateAdmin: string;
184
+ rechargeAdmin: (id: number) => string;
185
+ updateStatus: (id: number) => string;
186
+ updateTerms: (id: number) => string;
187
+ transactions: (id: number) => string;
188
+ findMy: string;
189
+ activate: string;
190
+ recharge: string;
191
+ };
274
192
 
275
- interface RoomMapStageElement extends RoomMapBaseElement {
276
- type: RoomMapElementType.STAGE;
277
- stageName?: string;
278
- orientation: RoomMapElementOrientation;
279
- isMainStage: boolean;
280
- }
193
+ declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
194
+ declare const BASE_BUTTON_CLASSES = "btn";
195
+ declare const BUTTON_SIZES_CLASSES: Record<string, string>;
281
196
 
282
- interface RoomMapTableElement extends RoomMapBaseElement {
283
- type: RoomMapElementType.TABLE;
284
- tableNumber?: string;
285
- capacity: number;
286
- shape: 'round' | 'rectangular' | 'square';
287
- }
197
+ declare const FORM_ERROR_MESSAGES: Record<string, string>;
288
198
 
289
- interface RoomMapUnavailableElement extends RoomMapBaseElement {
290
- type: RoomMapElementType.UNAVAILABLE_SPACE;
291
- reason?: string;
292
- }
199
+ declare const BASE_INPUT_CLASSES: string;
200
+ declare const ERROR_INPUT_CLASSES: string;
293
201
 
294
- interface RoomMapZoneElement extends RoomMapBaseElement {
295
- type: RoomMapElementType.ZONE;
296
- zoneName: string;
297
- zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
298
- color: string;
299
- capacity?: number;
202
+ interface PhoneCountry {
203
+ name: string;
204
+ isoCode: string;
205
+ dialCode: string;
300
206
  }
301
207
 
302
- type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
303
-
304
- type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
208
+ declare function phoneCountryFlag(isoCode: string): string;
209
+ declare const PHONE_COUNTRIES: PhoneCountry[];
305
210
 
306
211
  interface SelectOption {
307
212
  value: any;
@@ -309,7 +214,7 @@ interface SelectOption {
309
214
  disabled?: boolean;
310
215
  }
311
216
 
312
- interface Admin {
217
+ interface Admin extends Auditable {
313
218
  id: number;
314
219
  username: string;
315
220
  email: string;
@@ -325,16 +230,17 @@ interface Admin {
325
230
  reset_password_expires: Date;
326
231
  email_verified_at: Date;
327
232
  last_login: Date;
328
- created_at: Date;
329
- updated_at: Date;
330
- deleted_at: Date;
331
233
  }
332
234
 
333
235
  interface Auditable {
334
236
  created_at: Date;
335
237
  updated_at: Date;
238
+ deleted_at?: Date | null;
336
239
  is_published?: boolean;
337
240
  published_at?: Date;
241
+ published_by?: number;
242
+ deleted_by?: number;
243
+ deleted_by_admin?: Admin;
338
244
  created_by_admin?: Admin;
339
245
  updated_by_admin?: Admin;
340
246
  published_by_admin?: Admin;
@@ -367,30 +273,21 @@ interface DeleteConfirmationOpen {
367
273
  confirmationText: string;
368
274
  }
369
275
 
370
- interface AdminsResponse {
371
- statusCode: number;
372
- data: {
373
- admins: Admin[];
374
- total: number;
375
- };
376
- message: string;
377
- }
378
-
379
276
  interface Country {
380
- id: string;
277
+ id: number;
381
278
  name: string;
382
279
  iso2: string;
383
280
  }
384
281
 
385
282
  interface State {
386
- id: string;
283
+ id: number;
387
284
  name: string;
388
285
  country_id: number;
389
286
  country?: Country;
390
287
  }
391
288
 
392
289
  interface City {
393
- id: string;
290
+ id: number;
394
291
  name: string;
395
292
  search_text: string | null;
396
293
  state_id: number;
@@ -429,37 +326,43 @@ interface Venue extends Auditable {
429
326
  images: VenueImage[];
430
327
  }
431
328
 
432
- interface HallFloor {
329
+ interface HallFloor extends Auditable {
433
330
  id: number;
434
331
  name: string;
435
332
  level: number;
436
333
  max_capacity: number;
437
334
  description: string;
438
335
  hall_id: number;
439
- created_at: Date;
440
- updated_at: Date;
441
- deleted_at: Date | null;
442
336
  }
443
337
 
444
- interface Hall {
338
+ interface Hall extends Auditable {
445
339
  id: number;
446
340
  name: string;
447
341
  venue_id: number;
448
342
  venue?: Venue;
449
343
  hall_floors?: HallFloor[];
450
- created_at: Date;
451
- updated_at: Date;
452
- deleted_at: Date | null;
453
344
  }
454
345
 
455
- interface CountryResponse {
456
- data: Country;
457
- message: string;
458
- status: string;
346
+ interface BreadcrumbStep {
347
+ label: string;
348
+ href?: string;
349
+ icon?: string;
459
350
  }
460
351
 
461
- interface CountriesResponse {
462
- data: {
352
+ interface CommonFetchAllParams {
353
+ id?: number;
354
+ page?: number;
355
+ limit?: number;
356
+ search?: string;
357
+ sort_by?: string;
358
+ sort_order?: 'ASC' | 'DESC';
359
+ is_published?: boolean;
360
+ ids_in?: number[];
361
+ ids_not_in?: number[];
362
+ }
363
+
364
+ interface CountriesResponse {
365
+ data: {
463
366
  countries: Country[];
464
367
  total: number;
465
368
  };
@@ -467,6 +370,21 @@ interface CountriesResponse {
467
370
  status: string;
468
371
  }
469
372
 
373
+ interface CountryResponse {
374
+ data: Country;
375
+ message: string;
376
+ status: string;
377
+ }
378
+
379
+ interface FetchCountriesParams extends CommonFetchAllParams {
380
+ sort_by?: 'country.id' | 'country.name' | 'country.iso2' | 'country.created_at' | 'country.updated_at';
381
+ }
382
+
383
+ interface FetchStatesParams extends CommonFetchAllParams {
384
+ country_id?: number;
385
+ sort_by?: 'state.id' | 'state.name' | 'state.country_id' | 'state.search_text' | 'state.created_at' | 'state.updated_at';
386
+ }
387
+
470
388
  interface StateResponse {
471
389
  data: State;
472
390
  message: string;
@@ -482,28 +400,40 @@ interface StatesResponse {
482
400
  statusCode: number;
483
401
  }
484
402
 
403
+ interface CitiesResponse {
404
+ data: {
405
+ cities: City[];
406
+ total: number;
407
+ };
408
+ message: string;
409
+ status: string;
410
+ }
411
+
485
412
  interface CityResponse {
486
413
  data: City;
487
414
  message: string;
488
415
  status: string;
489
416
  }
490
417
 
491
- interface CitiesResponse {
418
+ interface FetchCitiesParams extends CommonFetchAllParams {
419
+ state_id?: number;
420
+ sort_by?: 'city.id' | 'city.name' | 'city.state_id' | 'city.search_text' | 'city.created_at' | 'city.updated_at';
421
+ }
422
+
423
+ interface AdminsResponse {
424
+ statusCode: number;
492
425
  data: {
493
- cities: City[];
426
+ admins: Admin[];
494
427
  total: number;
495
428
  };
496
429
  message: string;
497
- status: string;
498
430
  }
499
431
 
500
- interface FetchCitiesParams {
501
- stateId?: number;
502
- page?: number;
503
- search?: string;
432
+ interface FetchAdminsParams extends CommonFetchAllParams {
433
+ sort_by?: 'admin.id' | 'admin.username' | 'admin.email' | 'admin.mobile' | 'admin.first_name' | 'admin.last_name' | 'admin.full_name' | 'admin.principal_role' | 'admin.email_verified_at' | 'admin.last_login' | 'admin.created_at' | 'admin.updated_at';
504
434
  }
505
435
 
506
- interface Customer {
436
+ interface Customer extends Auditable {
507
437
  username: string;
508
438
  email: string;
509
439
  mobile: string;
@@ -534,9 +464,6 @@ interface Customer {
534
464
  membership_expires_at: Date | null;
535
465
  id: number;
536
466
  is_active: boolean;
537
- created_at: Date;
538
- updated_at: Date;
539
- deleted_at: Date | null;
540
467
  }
541
468
 
542
469
  interface CustomerResponse {
@@ -554,76 +481,363 @@ interface CustomersResponse {
554
481
  message: string;
555
482
  }
556
483
 
557
- type ShowType = 'play' | 'musical' | 'concert' | 'dance' | 'opera' | 'comedy' | 'other';
484
+ interface FetchCustomersParams extends CommonFetchAllParams {
485
+ first_name?: string;
486
+ last_name?: string;
487
+ email?: string;
488
+ username?: string;
489
+ mobile?: string;
490
+ document_type?: Customer['document_type'];
491
+ document_number?: string;
492
+ address?: string;
493
+ sort_by?: 'customer.id' | 'customer.email' | 'customer.mobile' | 'customer.first_name' | 'customer.last_name' | 'customer.birthday_date' | 'customer.document_type' | 'customer.document_number' | 'customer.address' | 'customer.postal_code' | 'customer.country_id' | 'customer.city_id' | 'customer.state_id' | 'customer.phone' | 'customer.created_at';
494
+ }
558
495
 
559
- interface ShowImage {
560
- id: number;
561
- path: string;
562
- full_url: string;
563
- original_name: string;
564
- extension: string;
565
- size: number;
566
- mime_type: string;
496
+ declare enum OrderItemType {
497
+ TICKET = "TICKET",
498
+ PRODUCT = "PRODUCT",
499
+ GIFT_BOND = "GIFT_BOND",
500
+ CORPORATE_BOND = "CORPORATE_BOND",
501
+ VIP_RECHARGE = "VIP_RECHARGE"
502
+ }
503
+
504
+ declare enum OrderStatus {
505
+ ON_HOLD = "on-hold",
506
+ PENDING_PAYMENT = "pending-payment",
507
+ PROCESSING = "processing",
508
+ COMPLETED = "completed",
509
+ FAILED = "failed",
510
+ CANCELLED = "cancelled",
511
+ REFUNDED = "refunded"
512
+ }
513
+
514
+ declare enum CreatorType {
515
+ ADMIN = "admin",
516
+ CUSTOMER = "customer"
517
+ }
518
+
519
+ declare enum PaymentMethod {
520
+ PAYROLL = "payroll",
521
+ CASH = "cash",
522
+ DATAFONO = "datafono",
523
+ INTERNAL_EXCHANGE = "internal_exchange",
524
+ CLIENT_EXCHANGE = "client_exchange",
525
+ MERCADO_PAGO = "mercado_pago"
526
+ }
527
+
528
+ declare enum RoomMapElementType {
529
+ SEAT_BLOCK = "seat_block",
530
+ TABLE = "table",
531
+ ZONE = "zone",
532
+ EXIT = "exit",
533
+ STAGE = "stage",
534
+ PRODUCTION_AREA = "production_area",
535
+ UNAVAILABLE_SPACE = "unavailable_space",
536
+ STAIR = "stair",
537
+ HALLWAY = "hallway"
538
+ }
539
+
540
+ interface RoomMapPosition {
541
+ x: number;
542
+ y: number;
543
+ }
544
+
545
+ interface RoomMapSize {
567
546
  width: number;
568
547
  height: number;
569
- show_id: number;
570
- created_at: Date;
571
548
  }
572
549
 
573
- interface Show extends Auditable {
574
- id: number;
550
+ interface RoomMapBaseElement {
551
+ id: string;
552
+ type: RoomMapElementType;
553
+ position: RoomMapPosition;
554
+ size: RoomMapSize;
555
+ rotation: number;
556
+ name?: string;
557
+ isLocked: boolean;
558
+ isVisible: boolean;
559
+ zIndex: number;
560
+ }
561
+
562
+ interface RoomMapExitElement extends RoomMapBaseElement {
563
+ type: RoomMapElementType.EXIT;
564
+ exitName?: string;
565
+ exitType: 'emergency' | 'regular';
566
+ width: number;
567
+ }
568
+
569
+ interface RoomMapProductionAreaElement extends RoomMapBaseElement {
570
+ type: RoomMapElementType.PRODUCTION_AREA;
571
+ areaName?: string;
572
+ areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
573
+ }
574
+
575
+ interface RoomMapSeatElement extends RoomMapBaseElement {
576
+ type: RoomMapElementType.SEAT_BLOCK;
577
+ seatNumber?: string;
578
+ isAvailable: boolean;
579
+ priceCategory?: string;
580
+ }
581
+
582
+ declare enum RoomMapElementOrientation {
583
+ TOP = "top",
584
+ RIGHT = "right",
585
+ BOTTOM = "bottom",
586
+ LEFT = "left",
587
+ CENTER = "center"
588
+ }
589
+
590
+ interface RoomMapStageElement extends RoomMapBaseElement {
591
+ type: RoomMapElementType.STAGE;
592
+ stageName?: string;
593
+ orientation: RoomMapElementOrientation;
594
+ isMainStage: boolean;
595
+ }
596
+
597
+ interface RoomMapTableElement extends RoomMapBaseElement {
598
+ type: RoomMapElementType.TABLE;
599
+ tableNumber?: string;
600
+ capacity: number;
601
+ shape: 'round' | 'rectangular' | 'square';
602
+ }
603
+
604
+ interface RoomMapUnavailableElement extends RoomMapBaseElement {
605
+ type: RoomMapElementType.UNAVAILABLE_SPACE;
606
+ reason?: string;
607
+ }
608
+
609
+ interface RoomMapZoneElement extends RoomMapBaseElement {
610
+ type: RoomMapElementType.ZONE;
611
+ zoneName: string;
612
+ zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
613
+ color: string;
614
+ capacity?: number;
615
+ }
616
+
617
+ type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
618
+
619
+ type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
620
+
621
+ declare enum ShowType {
622
+ PLAY = "PLAY",
623
+ CONCERT = "CONCERT",
624
+ STAND_UP_COMEDY = "STAND_UP_COMEDY",
625
+ OPERA = "OPERA",
626
+ MUSICAL = "MUSICAL",
627
+ DANCE = "DANCE",
628
+ SPORT = "SPORT",
629
+ OTHER = "OTHER",
630
+ DEFAULT = "DEFAULT"
631
+ }
632
+
633
+ type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
634
+
635
+ type FeedbackModalType = 'loading' | 'success' | 'info' | 'warning' | 'error';
636
+
637
+ type BadgeSize = 'xs' | 'sm' | 'md' | 'lg';
638
+
639
+ type BadgeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
640
+
641
+ type BreadcrumbTheme = 'light' | 'dark';
642
+
643
+ type TextFontSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';
644
+
645
+ interface FeedbackModalElement {
646
+ id: string;
647
+ type: FeedbackModalType;
575
648
  title: string;
649
+ isOpen: WritableSignal<boolean>;
650
+ message?: string;
651
+ showHeader?: boolean;
652
+ showCloseButton?: boolean;
653
+ showTitle?: boolean;
654
+ closeModal?: void;
655
+ }
656
+
657
+ declare enum FileType {
658
+ IMAGE = "image",
659
+ PDF = "pdf",
660
+ EXCEL = "excel",
661
+ WORD = "word",
662
+ TEXT = "text",
663
+ DEFAULT = "default"
664
+ }
665
+
666
+ declare enum CouponApplicability {
667
+ GENERAL = "GENERAL",
668
+ CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
669
+ MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
670
+ SHOWS = "SHOWS",
671
+ PERFORMANCES = "PERFORMANCES"
672
+ }
673
+
674
+ declare enum CouponDiscountType {
675
+ PERCENTAGE = "PERCENTAGE",
676
+ FIXED = "FIXED"
677
+ }
678
+
679
+ declare enum CouponStatus {
680
+ ACTIVE = "ACTIVE",
681
+ INACTIVE = "INACTIVE",
682
+ EXPIRED = "EXPIRED",
683
+ CONSUMED = "CONSUMED"
684
+ }
685
+
686
+ declare enum CorporateBondStatus {
687
+ ACTIVE = "ACTIVE",
688
+ INACTIVE = "INACTIVE",
689
+ PENDING = "PENDING",
690
+ PAYMENT_FAILED = "PAYMENT_FAILED",
691
+ EXPIRED = "EXPIRED",
692
+ CONSUMED = "CONSUMED"
693
+ }
694
+
695
+ declare enum PerformanceStatus {
696
+ SCHEDULED = "scheduled",
697
+ OPEN = "open",
698
+ CLOSED = "closed",
699
+ CANCELLED = "cancelled",
700
+ COMPLETED = "completed",
701
+ POSTPONED = "postponed"
702
+ }
703
+
704
+ declare enum PerformanceTicketStatus {
705
+ AVAILABLE = "available",
706
+ RESERVED = "reserved",
707
+ SOLD = "sold",
708
+ BLOCKED = "blocked"
709
+ }
710
+
711
+ declare enum GiftBondStatus {
712
+ ACTIVE = "ACTIVE",
713
+ INACTIVE = "INACTIVE"
714
+ }
715
+
716
+ declare enum GiftBondPurchaseStatus {
717
+ AVAILABLE = "AVAILABLE",
718
+ REDEEMED = "REDEEMED",
719
+ EXPIRED = "EXPIRED",
720
+ CANCELLED = "CANCELLED"
721
+ }
722
+
723
+ declare enum TransactionStatus {
724
+ PENDING = "PENDING",
725
+ APPROVED = "APPROVED",
726
+ REJECTED = "REJECTED",
727
+ ERROR = "ERROR"
728
+ }
729
+
730
+ declare enum VipCardStatus {
731
+ ACTIVE = "ACTIVE",
732
+ INACTIVE = "INACTIVE",
733
+ EXPIRED = "EXPIRED"
734
+ }
735
+
736
+ declare enum VipTransactionType {
737
+ INITIAL_RECHARGE = "INITIAL_RECHARGE",
738
+ RECHARGE = "RECHARGE",
739
+ PURCHASE_PAYMENT = "PURCHASE_PAYMENT"
740
+ }
741
+
742
+ declare enum MembershipStatus {
743
+ ACTIVE = "ACTIVE",
744
+ INACTIVE = "INACTIVE"
745
+ }
746
+
747
+ interface FetchProductCategoriesParams extends CommonFetchAllParams {
748
+ name?: string;
749
+ slug?: string;
750
+ sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
751
+ }
752
+
753
+ interface ProductCategory extends Auditable {
754
+ id: number;
755
+ name: string;
576
756
  slug: string;
577
- description: string;
578
- duration_minutes: number | null;
579
- type_of_costs: string | null;
580
- service_fee: number | null;
581
- show_type: ShowType | null;
582
- pulep: string | null;
583
- minimum_age: number | null;
584
- show_category_id: number | null;
585
- default_room_map_id: number | null;
586
- published_at?: Date;
587
- is_published: boolean;
588
- images: ShowImage[];
589
- terms_and_conditions: string;
590
- performances_quantity?: number;
591
757
  }
592
758
 
593
- interface ShowResponse {
759
+ interface ProductCategoriesResponse {
594
760
  statusCode: number;
595
- data: Show;
761
+ data: {
762
+ categories: ProductCategory[];
763
+ total: number;
764
+ };
596
765
  message: string;
597
766
  }
598
767
 
599
- interface ShowsResponseInterface {
768
+ interface ProductCategoryResponse {
769
+ statusCode: number;
770
+ data: ProductCategory;
771
+ message: string;
772
+ }
773
+
774
+ interface FetchProductTagsParams extends CommonFetchAllParams {
775
+ name?: string;
776
+ slug?: string;
777
+ sort_by?: 'tag.id' | 'tag.name' | 'tag.slug' | 'tag.created_at';
778
+ }
779
+
780
+ interface ProductTag extends Auditable {
781
+ id: number;
782
+ name: string;
783
+ slug: string;
784
+ }
785
+
786
+ interface ProductTagResponse {
787
+ statusCode: number;
788
+ data: ProductTag;
789
+ message: string;
790
+ }
791
+
792
+ interface ProductTagsResponse {
600
793
  statusCode: number;
601
794
  data: {
602
- shows: Show[];
795
+ tags: ProductTag[];
603
796
  total: number;
604
797
  };
605
798
  message: string;
606
799
  }
607
800
 
608
- interface FetchShowsParams {
609
- page?: number;
610
- limit?: number;
611
- search?: string;
612
- date?: string;
801
+ interface FetchProductTypesParams extends CommonFetchAllParams {
802
+ name?: string;
803
+ slug?: string;
804
+ sort_by?: 'type.id' | 'type.name' | 'type.slug' | 'type.created_at';
613
805
  }
614
806
 
615
- interface PriceZone {
807
+ interface ProductType extends Auditable {
616
808
  id: number;
617
809
  name: string;
618
- color: string;
619
- normal_price: number | null;
620
- is_active: boolean;
621
- elements: any[];
622
- room_map_id: number | null;
810
+ slug: string;
811
+ }
812
+
813
+ interface ProductTypeResponse {
814
+ statusCode: number;
815
+ data: ProductType;
816
+ message: string;
817
+ }
818
+
819
+ interface ProductTypesResponse {
820
+ statusCode: number;
821
+ data: {
822
+ types: ProductType[];
823
+ total: number;
824
+ };
825
+ message: string;
826
+ }
827
+
828
+ interface ProductImage {
829
+ id: number;
830
+ path: string;
831
+ full_url: string;
832
+ original_name: string;
833
+ extension: string;
834
+ size: number;
835
+ mime_type: string;
836
+ width: number;
837
+ height: number;
838
+ product_id: number;
839
+ product: Product;
623
840
  created_at: Date;
624
- updated_at: Date;
625
- created_by: number;
626
- updated_by: number;
627
841
  }
628
842
 
629
843
  interface Product extends Auditable {
@@ -636,12 +850,35 @@ interface Product extends Auditable {
636
850
  slug: string;
637
851
  sku?: string;
638
852
  is_limited_edition: boolean;
639
- is_active: boolean;
640
853
  deleted_at: Date | null;
641
- categories?: any[];
642
- tags?: any[];
643
- types?: any[];
644
- images?: any[];
854
+ categories?: ProductCategory[];
855
+ tags?: ProductTag[];
856
+ types?: ProductType[];
857
+ images?: ProductImage[];
858
+ }
859
+
860
+ interface ShowImage {
861
+ id: number;
862
+ path: string;
863
+ full_url: string;
864
+ original_name: string;
865
+ extension: string;
866
+ size: number;
867
+ mime_type: string;
868
+ width: number;
869
+ height: number;
870
+ show_id: number;
871
+ created_at: Date;
872
+ }
873
+
874
+ interface PriceZone extends Auditable {
875
+ id: number;
876
+ name: string;
877
+ color: string;
878
+ normal_price: number | null;
879
+ is_active: boolean;
880
+ elements: any[];
881
+ room_map_id: number | null;
645
882
  }
646
883
 
647
884
  interface NumerationConfig {
@@ -679,7 +916,7 @@ interface RoomMapElementTemplate {
679
916
  price_zone?: PriceZone;
680
917
  }
681
918
 
682
- interface RoomMap {
919
+ interface RoomMap extends Auditable {
683
920
  id: number;
684
921
  name: string;
685
922
  canvas_settings: {
@@ -695,8 +932,6 @@ interface RoomMap {
695
932
  related_product_ids: number[];
696
933
  products?: Product[];
697
934
  venue_name?: string;
698
- created_at: Date;
699
- updated_at: Date;
700
935
  }
701
936
 
702
937
  interface RoomMapCanvasConfiguration {
@@ -738,7 +973,7 @@ interface ElementPropertiesTab {
738
973
  elements_access: string[];
739
974
  }
740
975
 
741
- interface Performance {
976
+ interface Performance extends Auditable {
742
977
  id: number;
743
978
  start_time: Date | string;
744
979
  end_time: Date | string;
@@ -748,8 +983,112 @@ interface Performance {
748
983
  show?: Show;
749
984
  room_map: RoomMap;
750
985
  room_map_id: number;
751
- created_at: Date;
752
- updated_at: Date;
986
+ performance_tickets?: PerformanceTicket[];
987
+ can_delete?: boolean;
988
+ can_cancel?: boolean;
989
+ can_modify?: boolean;
990
+ can_reserve?: boolean;
991
+ }
992
+
993
+ interface FetchShowCategoriesParams extends CommonFetchAllParams {
994
+ name?: string;
995
+ slug?: string;
996
+ sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
997
+ }
998
+
999
+ interface ShowCategory extends Auditable {
1000
+ id: number;
1001
+ name: string;
1002
+ slug: string;
1003
+ }
1004
+
1005
+ interface ShowCategoriesResponse {
1006
+ statusCode: number;
1007
+ data: {
1008
+ categories: ShowCategory[];
1009
+ total: number;
1010
+ };
1011
+ message: string;
1012
+ }
1013
+
1014
+ interface ShowCategoryResponse {
1015
+ statusCode: number;
1016
+ data: ShowCategory;
1017
+ message: string;
1018
+ }
1019
+
1020
+ interface FetchShowGendersParams extends CommonFetchAllParams {
1021
+ name?: string;
1022
+ slug?: string;
1023
+ sort_by?: 'gender.id' | 'gender.name' | 'gender.slug' | 'gender.created_at';
1024
+ }
1025
+
1026
+ interface ShowGender extends Auditable {
1027
+ id: number;
1028
+ name: string;
1029
+ slug: string;
1030
+ }
1031
+
1032
+ interface ShowGenderResponse {
1033
+ statusCode: number;
1034
+ data: ShowGender;
1035
+ message: string;
1036
+ }
1037
+
1038
+ interface ShowGendersResponse {
1039
+ statusCode: number;
1040
+ data: {
1041
+ genders: ShowGender[];
1042
+ total: number;
1043
+ };
1044
+ message: string;
1045
+ }
1046
+
1047
+ interface Show extends Auditable {
1048
+ id: number;
1049
+ title: string;
1050
+ slug: string;
1051
+ description: string;
1052
+ duration_minutes: number | null;
1053
+ type_of_costs: string | null;
1054
+ service_fee: number | null;
1055
+ show_type: ShowType | null;
1056
+ pulep: string | null;
1057
+ minimum_age: number | null;
1058
+ show_gender?: ShowGender | null;
1059
+ show_gender_id: number | null;
1060
+ show_category?: ShowCategory | null;
1061
+ show_category_id: number | null;
1062
+ default_room_map?: RoomMap | null;
1063
+ default_room_map_id: number | null;
1064
+ is_published: boolean;
1065
+ images: ShowImage[];
1066
+ terms_and_conditions: string | null;
1067
+ performances_quantity?: number;
1068
+ performances?: Performance[];
1069
+ next_performance?: Performance;
1070
+ days_of_week?: number[];
1071
+ unique_start_times?: string[];
1072
+ }
1073
+
1074
+ interface FindAllPerformancesParams {
1075
+ roomMapId?: number;
1076
+ showId?: number;
1077
+ hallId?: number;
1078
+ page?: number;
1079
+ search?: string;
1080
+ limit?: number;
1081
+ }
1082
+
1083
+ interface PerformanceBookingDataResponse {
1084
+ statusCode: number;
1085
+ data: {
1086
+ performance: Performance;
1087
+ room_map: RoomMap;
1088
+ show: Show;
1089
+ tickets: PerformanceTicket[];
1090
+ };
1091
+ message: string;
753
1092
  }
754
1093
 
755
1094
  interface PerformanceResponse {
@@ -758,6 +1097,18 @@ interface PerformanceResponse {
758
1097
  message: string;
759
1098
  }
760
1099
 
1100
+ interface PerformanceAvailableDay {
1101
+ date: string;
1102
+ count: number;
1103
+ }
1104
+ interface PerformancesAvailableDaysResponse {
1105
+ statusCode: number;
1106
+ data: {
1107
+ days: PerformanceAvailableDay[];
1108
+ };
1109
+ message: string;
1110
+ }
1111
+
761
1112
  interface PerformancesResponseInterface {
762
1113
  statusCode: number;
763
1114
  data: {
@@ -767,7 +1118,7 @@ interface PerformancesResponseInterface {
767
1118
  message: string;
768
1119
  }
769
1120
 
770
- interface OrderItem {
1121
+ interface OrderItem extends Auditable {
771
1122
  id: number;
772
1123
  order: Order;
773
1124
  item_type: OrderItemType;
@@ -779,11 +1130,8 @@ interface OrderItem {
779
1130
  discounted_price: number;
780
1131
  ticket_id?: number;
781
1132
  ticket_uuid?: string;
1133
+ ticket?: PerformanceTicket;
782
1134
  item: Show | Product;
783
- created_at: Date;
784
- updated_at: Date;
785
- created_by: number;
786
- updated_by: number;
787
1135
  }
788
1136
 
789
1137
  interface Coupon extends Auditable {
@@ -810,7 +1158,7 @@ interface Coupon extends Auditable {
810
1158
  customers?: Customer[];
811
1159
  }
812
1160
 
813
- interface CorporateBond {
1161
+ interface CorporateBond extends Auditable {
814
1162
  id: number;
815
1163
  name: string;
816
1164
  description?: string;
@@ -820,11 +1168,13 @@ interface CorporateBond {
820
1168
  quantity: number;
821
1169
  status: CorporateBondStatus;
822
1170
  value: number;
1171
+ purchase_value: number;
1172
+ buyer_customer_id: number | null;
1173
+ buyer: Customer | null;
1174
+ order_id: number | null;
1175
+ order: Order | null;
1176
+ payment_method?: PaymentMethod;
823
1177
  codes: CorporateBondCode[];
824
- created_at: Date;
825
- updated_at: Date;
826
- created_by: number;
827
- updated_by: number;
828
1178
  }
829
1179
 
830
1180
  interface CorporateBondCode {
@@ -843,49 +1193,194 @@ interface CorporateBondResponse {
843
1193
  message: string;
844
1194
  }
845
1195
 
846
- interface ValidateCorporateBondResponse {
1196
+ interface ValidateCorporateBondResponse {
1197
+ data: {
1198
+ valid: boolean;
1199
+ message: string;
1200
+ code: string;
1201
+ bond?: CorporateBond;
1202
+ };
1203
+ message: string;
1204
+ statusCode: number;
1205
+ }
1206
+
1207
+ interface GiftBondImage {
1208
+ id: number;
1209
+ path: string;
1210
+ full_url: string;
1211
+ original_name: string;
1212
+ extension: string;
1213
+ size: number;
1214
+ mime_type: string;
1215
+ width: number;
1216
+ height: number;
1217
+ is_featured: boolean;
1218
+ gift_bond_id: number;
1219
+ gift_bond: GiftBond;
1220
+ created_at: Date;
1221
+ }
1222
+
1223
+ interface GiftBond extends Auditable {
1224
+ id: number;
1225
+ name: string;
1226
+ description?: string;
1227
+ slug?: string;
1228
+ status: GiftBondStatus;
1229
+ value: number;
1230
+ page_content?: string;
1231
+ images?: GiftBondImage[];
1232
+ }
1233
+
1234
+ interface GiftBondResponse {
1235
+ statusCode: number;
1236
+ data: GiftBond;
1237
+ message: string;
1238
+ }
1239
+
1240
+ interface GiftBondsResponse {
1241
+ statusCode: number;
1242
+ data: {
1243
+ gift_bonds: GiftBond[];
1244
+ total: number;
1245
+ };
1246
+ message: string;
1247
+ }
1248
+
1249
+ interface GiftBondPurchase extends Auditable {
1250
+ id: number;
1251
+ code: string;
1252
+ original_value: number;
1253
+ used_value: number | null;
1254
+ lost_value: number | null;
1255
+ beneficiary_email: string;
1256
+ beneficiary: Customer | null;
1257
+ personalized_message: string | null;
1258
+ status: GiftBondPurchaseStatus;
1259
+ purchased_at: string;
1260
+ expires_at: string;
1261
+ redeemed_at: string | null;
1262
+ gift_bond?: GiftBond;
1263
+ gift_bond_id: number;
1264
+ buyer_customer_id: number;
1265
+ buyer: Customer;
1266
+ order: Order | null;
1267
+ order_id: number;
1268
+ redemption_order_id: number | null;
1269
+ redemption_order: Order | null;
1270
+ }
1271
+
1272
+ interface ValidateGiftBondResponse {
847
1273
  data: {
848
1274
  valid: boolean;
849
1275
  message: string;
850
1276
  code: string;
851
- bond?: CorporateBond;
1277
+ bond?: GiftBondPurchase;
852
1278
  };
1279
+ statusCode: number;
1280
+ message: string;
1281
+ }
1282
+
1283
+ interface GiftBondPurchaseResponse {
1284
+ statusCode: number;
1285
+ data: GiftBondPurchase;
853
1286
  message: string;
1287
+ }
1288
+
1289
+ interface GiftBondPurchasesResponse {
854
1290
  statusCode: number;
1291
+ data: {
1292
+ items: GiftBondPurchase[];
1293
+ total: number;
1294
+ };
1295
+ message: string;
1296
+ }
1297
+
1298
+ interface Transaction extends Auditable {
1299
+ id: number;
1300
+ status: TransactionStatus;
1301
+ amount: number;
1302
+ currency: string;
1303
+ payment_gateway: string;
1304
+ gateway_transaction_id: string;
1305
+ gateway_response: any;
1306
+ order: Order;
1307
+ }
1308
+
1309
+ interface OrderBillingInfo {
1310
+ first_name: string;
1311
+ last_name: string;
1312
+ email: string;
1313
+ mobile: string;
1314
+ document_type: string;
1315
+ document_number: string;
1316
+ address: string;
1317
+ city_id: number;
1318
+ postal_code?: string;
1319
+ address_notes?: string;
1320
+ payment_method: PaymentMethod;
1321
+ terms_accepted: boolean;
1322
+ data_processing_accepted: boolean;
1323
+ comments?: string;
1324
+ products?: Array<{
1325
+ id: number;
1326
+ quantity: number;
1327
+ }>;
855
1328
  }
856
1329
 
857
- interface Order {
1330
+ interface OrderShowSnapshot {
1331
+ id: number;
1332
+ title: string;
1333
+ description: string | null;
1334
+ service_fee: number | null;
1335
+ }
1336
+
1337
+ interface OrderPerformanceSnapshot {
1338
+ id: number;
1339
+ start_time: Performance['start_time'];
1340
+ end_time: Performance['end_time'];
1341
+ published: boolean;
1342
+ status: PerformanceStatus;
1343
+ }
1344
+
1345
+ interface Order extends Auditable {
858
1346
  id: number;
859
1347
  uuid: string;
860
- customer: Customer;
1348
+ customer_id: number | null;
1349
+ customer: Customer | null;
861
1350
  customer_name?: string;
862
1351
  customer_email?: string;
863
1352
  order_items: OrderItem[];
864
1353
  order_items_quantity?: number;
865
- discount_amount: number;
1354
+ transactions: Transaction[];
1355
+ sub_total: number;
1356
+ discount_amount: number | null;
866
1357
  total: number;
1358
+ sub_total_discounted: number | null;
867
1359
  total_discounted: number;
868
- sub_total: number;
869
- sub_total_discounted: number;
870
- service_fee: number;
871
- service_fee_discounted: number;
872
- coupon: Coupon;
873
- coupon_snapshot: Record<string, any>;
874
- corporate_bond_code: CorporateBondCode;
875
- corporate_bond_code_snapshot: Record<string, any>;
1360
+ service_fee: number | null;
1361
+ service_fee_discounted: number | null;
1362
+ coupon: Coupon | null;
1363
+ coupon_snapshot: Record<string, any> | null;
876
1364
  status: OrderStatus;
877
- show_snapshot: Record<string, any>;
878
- performance_snapshot: Record<string, any>;
879
- created_at: Date;
880
- updated_at: Date;
881
- payment_method: string;
1365
+ show_snapshot: OrderShowSnapshot | null;
1366
+ performance_snapshot: OrderPerformanceSnapshot | null;
1367
+ payment_method: PaymentMethod | null;
882
1368
  terms_accepted: boolean;
883
1369
  data_processing_accepted: boolean;
884
- billing_info: Partial<Customer>;
885
- comments: string;
886
- address_notes: string;
1370
+ billing_info: OrderBillingInfo | null;
1371
+ corporate_bond_code_snapshot: Record<string, any> | null;
1372
+ gift_bond_snapshot: Record<string, any> | null;
1373
+ corporate_bond_code: CorporateBondCode | null;
1374
+ corporate_bond_code_id: number | null;
1375
+ gift_bond: GiftBond | null;
1376
+ gift_bond_id: number | null;
1377
+ comments: string | null;
1378
+ address_notes: string | null;
1379
+ mercado_pago_preference_id: string;
887
1380
  created_by: number;
1381
+ created_by_type: CreatorType;
888
1382
  updated_by: number;
1383
+ updated_by_type: CreatorType;
889
1384
  }
890
1385
 
891
1386
  interface OrderResponse {
@@ -903,7 +1398,15 @@ interface OrdersResponse {
903
1398
  message: string;
904
1399
  }
905
1400
 
906
- interface PerformanceTicket {
1401
+ interface MercadoPagoPreference {
1402
+ data: {
1403
+ id: string;
1404
+ init_point: string;
1405
+ sandbox_init_point: string;
1406
+ };
1407
+ }
1408
+
1409
+ interface PerformanceTicket extends Auditable {
907
1410
  id: number;
908
1411
  uuid: string;
909
1412
  is_accessible: boolean;
@@ -917,35 +1420,181 @@ interface PerformanceTicket {
917
1420
  presale_price: number | null;
918
1421
  status: PerformanceTicketStatus;
919
1422
  reserved_until: Date | null;
1423
+ reserved_by_type: CreatorType | null;
1424
+ reserved_by: number | null;
1425
+ reserved_by_admin: Admin | null;
1426
+ reserved_by_customer: number | null;
1427
+ reserved_customer: Customer | null;
1428
+ order: Order | null;
920
1429
  order_id: number | null;
921
1430
  customer_id: number | null;
922
1431
  checked_in: boolean;
923
1432
  checked_in_at: Date | null;
1433
+ checked_in_by: number | null;
1434
+ checked_in_by_admin: Admin | null;
924
1435
  order_items: OrderItem[];
925
1436
  element_qty?: number;
926
- created_at: Date;
927
- updated_at: Date;
1437
+ blocked_at: Date | null;
1438
+ blocked_by: number | null;
1439
+ blocked_by_admin: Admin | null;
928
1440
  }
929
1441
 
930
- interface PerformanceBookingDataResponse {
931
- statusCode: number;
932
- data: {
933
- performance: Performance;
934
- room_map: RoomMap;
935
- show: Show;
936
- tickets: PerformanceTicket[];
1442
+ interface TicketMapSeatPosition {
1443
+ rowIndex: number;
1444
+ colIndex: number;
1445
+ seatLabel: string;
1446
+ }
1447
+
1448
+ interface TicketMapTableChairPosition {
1449
+ index: number;
1450
+ angle: number;
1451
+ x: number;
1452
+ y: number;
1453
+ }
1454
+
1455
+ interface ElementRenderData {
1456
+ elementId: number;
1457
+ hallFloorId: number | null;
1458
+ type: RoomMapElementType;
1459
+ shapeConfig: Record<string, any>;
1460
+ tickets: PerformanceTicket[];
1461
+ ticketByNumeration: Map<string, PerformanceTicket>;
1462
+ elementName: string;
1463
+ seatPositions?: TicketMapSeatPosition[][];
1464
+ chairPositions?: TicketMapTableChairPosition[];
1465
+ zoneCapacity?: number;
1466
+ }
1467
+
1468
+ interface TicketMapTooltipData {
1469
+ x: number;
1470
+ y: number;
1471
+ elementName: string;
1472
+ seatLabel: string | null;
1473
+ price: number;
1474
+ status: PerformanceTicketStatus;
1475
+ statusLabel: string;
1476
+ statusColor: string;
1477
+ isSelected: boolean;
1478
+ ticketId: number;
1479
+ }
1480
+
1481
+ interface TicketMapZoneQuantityState {
1482
+ elementId: number;
1483
+ selectedCount: number;
1484
+ maxCapacity: number;
1485
+ }
1486
+
1487
+ interface ReservePerformanceDto {
1488
+ ticket_ids: number[];
1489
+ products?: {
1490
+ id: number;
1491
+ quantity: number;
1492
+ }[];
1493
+ coupon_code?: string;
1494
+ gift_bond_code?: string;
1495
+ corporate_bond_code?: string;
1496
+ payment_method?: string;
1497
+ billing?: {
1498
+ first_name: string;
1499
+ last_name: string;
1500
+ email: string;
1501
+ mobile: string;
1502
+ document_type: string;
1503
+ document_number: string;
1504
+ address: string;
1505
+ city_id: number;
1506
+ postal_code?: string;
1507
+ address_notes?: string;
1508
+ terms_accepted: boolean;
1509
+ data_processing_accepted: boolean;
1510
+ comments?: string;
937
1511
  };
938
- message: string;
939
1512
  }
940
1513
 
941
- interface PerformanceAvailableDay {
942
- date: string;
943
- count: number;
1514
+ interface TicketMapZoomConfig {
1515
+ minZoom: number;
1516
+ maxZoom: number;
1517
+ zoomStep: number;
1518
+ scaleBy: number;
944
1519
  }
945
- interface PerformancesAvailableDaysResponse {
1520
+
1521
+ interface HallFloorOption {
1522
+ id: number | null;
1523
+ name: string;
1524
+ }
1525
+
1526
+ declare enum SelectedDiscountCardType {
1527
+ COUPON = "COUPON",
1528
+ CORPORATE_BOND = "CORPORATE_BOND",
1529
+ GIFT_BOND = "GIFT_BOND",
1530
+ VIP = "VIP",
1531
+ SUBSCRIPTION = "SUBSCRIPTION"
1532
+ }
1533
+
1534
+ interface SelectedDiscountCard {
1535
+ name: string;
1536
+ type: SelectedDiscountCardType;
1537
+ value: number;
1538
+ discountType: 'percentage' | 'fixed';
1539
+ /**
1540
+ * Si el descuento seleccionado exonera la tarifa de servicio (hoy solo
1541
+ * aplica a Tarjeta VIP, según `VipCategorySnapshot.service_fee_exempt`).
1542
+ */
1543
+ serviceFeeExempt?: boolean;
1544
+ }
1545
+
1546
+ /** Forma compacta de un ticket recibida por SSE (ver
1547
+ * SeatAvailabilitySseService) — sin relaciones, solo lo necesario para
1548
+ * repintar el mapa y validar disponibilidad en el cliente. */
1549
+ interface SeatStatusUpdate {
1550
+ id: number;
1551
+ status: PerformanceTicketStatus;
1552
+ room_map_element_id: number;
1553
+ reserved_until: Date | null;
1554
+ }
1555
+ type SeatEventMessage = {
1556
+ type: 'snapshot';
1557
+ performance_id: number;
1558
+ tickets: SeatStatusUpdate[];
1559
+ ts: number;
1560
+ } | {
1561
+ type: 'heartbeat';
1562
+ ts: number;
1563
+ };
1564
+
1565
+ interface AdmissionStatus {
1566
+ active: boolean;
1567
+ position: number | null;
1568
+ }
1569
+ interface AdmissionJoinResponse extends AdmissionStatus {
1570
+ ticket: string;
1571
+ expires_in: number;
1572
+ }
1573
+ type AdmissionEventMessage = ({
1574
+ type: 'status';
1575
+ } & AdmissionStatus & {
1576
+ ts: number;
1577
+ }) | {
1578
+ type: 'heartbeat';
1579
+ ts: number;
1580
+ };
1581
+
1582
+ interface FetchShowsParams extends CommonFetchAllParams {
1583
+ date?: string;
1584
+ sort_by?: 'show.id' | 'show.created_at' | 'show.title' | 'show.slug' | 'show.type_of_costs' | 'show.pulep' | 'show_category.name' | 'show_gender.name';
1585
+ }
1586
+
1587
+ interface ShowResponse {
1588
+ statusCode: number;
1589
+ data: Show;
1590
+ message: string;
1591
+ }
1592
+
1593
+ interface ShowsResponseInterface {
946
1594
  statusCode: number;
947
1595
  data: {
948
- days: PerformanceAvailableDay[];
1596
+ shows: Show[];
1597
+ total: number;
949
1598
  };
950
1599
  message: string;
951
1600
  }
@@ -1002,12 +1651,31 @@ interface FetchDailyPerformancesParams {
1002
1651
  limit?: number;
1003
1652
  }
1004
1653
 
1654
+ interface FetchProductsParams extends CommonFetchAllParams {
1655
+ name?: string;
1656
+ category_id?: number;
1657
+ tag_id?: number;
1658
+ type_id?: number;
1659
+ min_price?: number;
1660
+ max_price?: number;
1661
+ min_stock?: number;
1662
+ max_stock?: number;
1663
+ sort_by?: 'product.id' | 'product.name' | 'product.price' | 'product.stock_quantity' | 'product.slug' | 'product.sku' | 'product.created_at' | 'category.name' | 'tag.name' | 'type.name';
1664
+ }
1665
+
1005
1666
  interface ProductResponse {
1006
1667
  statusCode: number;
1007
1668
  data: Product;
1008
1669
  message: string;
1009
1670
  }
1010
1671
 
1672
+ interface ProductTaxonomy extends Auditable {
1673
+ id: number;
1674
+ name: string;
1675
+ slug: string;
1676
+ selected?: boolean;
1677
+ }
1678
+
1011
1679
  interface ProductsResponseInterface {
1012
1680
  statusCode: number;
1013
1681
  data: {
@@ -1048,76 +1716,291 @@ interface FindAllPriceZoneParams {
1048
1716
  limit?: number;
1049
1717
  }
1050
1718
 
1051
- interface GiftBond {
1719
+ interface CouponResponse {
1720
+ statusCode: number;
1721
+ data: Coupon;
1722
+ message: string;
1723
+ }
1724
+
1725
+ interface ValidateCouponResponse {
1726
+ data: {
1727
+ coupon: Coupon;
1728
+ message: string;
1729
+ };
1730
+ }
1731
+
1732
+ interface RecentOrder {
1052
1733
  id: number;
1734
+ customer_name: string;
1735
+ event: string;
1736
+ total: number;
1737
+ status: string;
1053
1738
  uuid: string;
1739
+ }
1740
+
1741
+ interface RecentRoomMap {
1742
+ id: number;
1054
1743
  name: string;
1055
- description?: string;
1056
- status: GiftBondStatus;
1057
- value: number;
1058
- customer: Customer;
1059
- customer_id: number;
1744
+ capacity: number;
1060
1745
  created_at: Date;
1061
1746
  updated_at: Date;
1062
- created_by: number;
1063
- updated_by: number;
1064
1747
  }
1065
1748
 
1066
- interface GiftBondResponse {
1749
+ interface QrTokenData {
1750
+ token: string;
1751
+ expires_at: string;
1752
+ refresh_in: number;
1753
+ }
1754
+
1755
+ interface QrTokenResponse {
1067
1756
  statusCode: number;
1068
- data: GiftBond;
1757
+ data: QrTokenData;
1069
1758
  message: string;
1070
1759
  }
1071
1760
 
1072
- interface GiftBondsResponse {
1073
- statusCode: number;
1761
+ interface VipCategorySnapshot {
1762
+ membership_id: number;
1763
+ name: string;
1764
+ discount_percentage: number;
1765
+ service_fee_exempt: boolean;
1766
+ applicable_show_ids: number[] | null;
1767
+ excluded_show_ids: number[] | null;
1768
+ duration_days: number;
1769
+ }
1770
+
1771
+ interface VipCard extends Auditable {
1772
+ id: number;
1773
+ uuid: string;
1774
+ customer: Customer;
1775
+ customer_id: number;
1776
+ membership: {
1777
+ id: number;
1778
+ name: string;
1779
+ } | null;
1780
+ membership_id: number;
1781
+ category_snapshot: VipCategorySnapshot;
1782
+ balance: number;
1783
+ status: VipCardStatus;
1784
+ activated_at: string | null;
1785
+ last_activity_at: string | null;
1786
+ expires_at: string | null;
1787
+ last_low_balance_alert_at: string | null;
1788
+ last_expiry_alert_at: string | null;
1789
+ }
1790
+
1791
+ interface VipTransaction {
1792
+ id: number;
1793
+ uuid: string;
1794
+ vip_card_id: number;
1795
+ type: VipTransactionType;
1796
+ amount: number;
1797
+ balance_before: number;
1798
+ balance_after: number;
1799
+ order: Order | null;
1800
+ order_id: number | null;
1801
+ description: string | null;
1802
+ created_at: string;
1803
+ }
1804
+
1805
+ interface VipCardResponse {
1806
+ data: VipCard;
1807
+ }
1808
+ interface VipCardsResponse {
1074
1809
  data: {
1075
- gift_bonds: GiftBond[];
1810
+ vip_cards: VipCard[];
1076
1811
  total: number;
1077
1812
  };
1078
- message: string;
1079
1813
  }
1080
-
1081
- interface ValidateGiftBondResponse {
1814
+ interface VipTransactionsResponse {
1082
1815
  data: {
1083
- valid: boolean;
1084
- message: string;
1085
- code: string;
1086
- bond?: GiftBond;
1816
+ transactions: VipTransaction[];
1817
+ total: number;
1087
1818
  };
1088
- statusCode: number;
1089
- message: string;
1819
+ }
1820
+ interface VipOrderResponse {
1821
+ data: Order;
1090
1822
  }
1091
1823
 
1092
- interface CouponResponse {
1093
- statusCode: number;
1094
- data: Coupon;
1095
- message: string;
1824
+ interface Membership extends Auditable {
1825
+ id: number;
1826
+ name: string;
1827
+ description: string;
1828
+ benefits: string[] | null;
1829
+ price: number;
1830
+ duration_days: number;
1831
+ min_recharge: number;
1832
+ status: MembershipStatus;
1833
+ discount_percentage: number;
1834
+ service_fee_exempt: boolean;
1835
+ applicable_show_ids: number[] | null;
1836
+ excluded_show_ids: number[] | null;
1096
1837
  }
1097
1838
 
1098
- interface ValidateCouponResponse {
1099
- data: {
1100
- coupon: Coupon;
1101
- message: string;
1102
- };
1839
+ interface FetchVipCardsParams extends CommonFetchAllParams {
1840
+ status?: VipCardStatus;
1841
+ membership_id?: number;
1842
+ customer_id?: number;
1843
+ sort_by?: 'vip_card.id' | 'vip_card.uuid' | 'vip_card.customer_id' | 'vip_card.membership_id' | 'vip_card.balance' | 'vip_card.status' | 'vip_card.activated_at' | 'vip_card.last_activity_at' | 'vip_card.expires_at' | 'vip_card.last_low_balance_alert_at' | 'vip_card.last_expiry_alert_at' | 'vip_card.created_at' | 'vip_card.updated_at';
1844
+ }
1845
+
1846
+ interface ActivateVipCardParams {
1847
+ customer_id: number;
1848
+ membership_id: number;
1849
+ amount: number;
1850
+ payment_method?: string | null;
1851
+ terms_accepted: boolean;
1852
+ data_processing_accepted: boolean;
1853
+ }
1854
+
1855
+ interface VipRechargeConfirmPayload {
1856
+ amount: number;
1857
+ payment_method: string;
1858
+ terms_accepted: boolean;
1859
+ data_processing_accepted: boolean;
1860
+ }
1861
+
1862
+ declare const DOCUMENT_TYPES_OPTIONS: SelectOption[];
1863
+
1864
+ declare const PAYMENT_METHODS_OPTIONS: SelectOption[];
1865
+ declare const ORDER_STATUS_COLORS: Record<OrderStatus, {
1866
+ text: string;
1867
+ bg: string;
1868
+ }>;
1869
+ declare const ORDER_ITEM_TYPES_COLORS: Record<OrderItemType, {
1870
+ text: string;
1871
+ bg: string;
1872
+ }>;
1873
+ declare const ORDER_DISCOUNT_COLORS: Record<string, {
1874
+ text: string;
1875
+ bg: string;
1876
+ }>;
1877
+ declare const TRANSACTION_STATUS_COLORS: Record<TransactionStatus, {
1878
+ text: string;
1879
+ bg: string;
1880
+ }>;
1881
+
1882
+ declare const PERFORMANCE_TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, {
1883
+ text: string;
1884
+ bg: string;
1885
+ }>;
1886
+ declare const PERFORMANCE_STATUS_COLORS: Record<PerformanceStatus, {
1887
+ text: string;
1888
+ bg: string;
1889
+ }>;
1890
+
1891
+ declare const TICKET_MAP_LAST_TICKETS_LIMIT = 10;
1892
+ declare const TICKET_ELEMENT_TYPES: RoomMapElementType[];
1893
+ declare const DEFAULT_STAGE_CONFIG: {
1894
+ [x: string]: any;
1895
+ };
1896
+ declare const TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, string>;
1897
+ declare const TICKET_STATUS_FILLS: Record<PerformanceTicketStatus, string>;
1898
+ declare const TICKET_STATUS_LABELS: Record<PerformanceTicketStatus, string>;
1899
+ declare const TICKET_MAP_GRID_SIZE = 30;
1900
+ declare const TICKET_MAP_TITLE_HEIGHT = 30;
1901
+
1902
+ interface KonvaShapeConfig {
1903
+ config: ShapeConfig;
1904
+ layer: 'background' | 'elements' | 'foreground' | 'overlay';
1103
1905
  }
1104
1906
 
1907
+ declare function drawRoundedRect(con: Context, shape: Shape, x: number, y: number, width: number, height: number, cornerRadius: number): void;
1908
+
1909
+ declare const generateExitScene: (con: Context, shape: Shape) => void;
1910
+
1911
+ declare const generateHallwayScene: (con: Context, shape: Shape) => void;
1912
+
1913
+ declare const generateProductionAreaScene: (con: Context, shape: Shape) => void;
1914
+
1915
+ declare const generateSeatBlockScene: (con: Context, shape: Shape, numerationConfig?: {
1916
+ start_row_letter: string;
1917
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1918
+ start_column_number: number;
1919
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1920
+ }) => void;
1921
+
1922
+ declare const generateStageScene: (con: Context, shape: Shape) => void;
1923
+
1924
+ declare const generateStairScene: (con: Context, shape: Shape) => void;
1925
+
1926
+ declare const generateTableScene: (con: Context, shape: Shape) => void;
1927
+
1928
+ declare const generateUnavailableSpaceScene: (con: Context, shape: Shape) => void;
1929
+
1930
+ declare const generateZoneScene: (con: Context, shape: Shape) => void;
1931
+
1932
+ declare const KONVA_SHAPE_MAPPINGS: Record<RoomMapElementType, KonvaShapeConfig>;
1933
+
1934
+ declare const SHOW_TYPE_COLORS: Record<ShowType, {
1935
+ bg: string;
1936
+ text: string;
1937
+ }>;
1938
+
1105
1939
  declare const getCustomerFullname: (customer: Customer) => string;
1106
1940
 
1941
+ type OrderDiscountType = 'coupon' | 'corporate_bond' | 'gift_bond';
1942
+ interface OrderDiscountInfo {
1943
+ type: OrderDiscountType | null;
1944
+ code: string | null;
1945
+ name: string | null;
1946
+ value: number;
1947
+ discountType: 'percentage' | 'fixed' | null;
1948
+ icon: string;
1949
+ }
1950
+ declare function getOrderDiscount(order: Order): OrderDiscountInfo;
1951
+
1107
1952
  declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
1108
1953
 
1109
1954
  declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
1110
1955
 
1956
+ declare const transformUrlParams: (params: any) => URLSearchParams;
1957
+
1111
1958
  declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
1112
- value: string;
1959
+ value: number;
1113
1960
  label: string;
1114
1961
  }[];
1115
1962
 
1963
+ declare function tintColor(hex: string, amount?: number): string;
1964
+
1965
+ declare const drawChairIcon: (con: Context, cx: number, cy: number, size: number) => void;
1966
+
1967
+ declare const drawHappyFace: (con: Context, cx: number, cy: number, size: number) => void;
1968
+
1969
+ declare const drawWheelchairIcon: (con: Context, shape: Shape, cx: number, cy: number, size: number, fillColor?: string, strokeColor?: string) => void;
1970
+
1971
+ declare const numberToLetter: (num: number) => string;
1972
+
1973
+ declare const getItemTypeIcon: (ticket: PerformanceTicket) => string;
1974
+
1975
+ declare const generateSeatBlockTicketScene: (con: Context, shape: Shape, numerationConfig?: {
1976
+ start_row_letter: string;
1977
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1978
+ start_column_number: number;
1979
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1980
+ }, ticketStatusMap?: Map<string, PerformanceTicketStatus>) => void;
1981
+
1982
+ declare const generateTableTicketScene: (con: Context, shape: Shape, chairTicketStatuses?: PerformanceTicketStatus[], tableSeats?: RoomMapSeatState[][]) => void;
1983
+
1984
+ declare function processElementsToRenderData(elements: RoomMapElementTemplate[], tickets: PerformanceTicket[], priceZones?: {
1985
+ id: number;
1986
+ color: string;
1987
+ }[]): ElementRenderData[];
1988
+ declare function findTicketAtPosition(renderData: ElementRenderData, relX: number, relY: number): PerformanceTicket | null;
1989
+ declare function findElementAtPosition(renderDataList: ElementRenderData[], stageX: number, stageY: number): {
1990
+ element: ElementRenderData;
1991
+ relX: number;
1992
+ relY: number;
1993
+ } | null;
1994
+
1995
+ declare const ticketCanOpenQr: (order: Order, ticket: PerformanceTicket) => boolean;
1996
+
1116
1997
  declare function MinTodayValidator(controlName: string): ValidatorFn;
1117
1998
  declare function EndDateGreaterThanStartValidator(startDateControlName: string, endDateControlName: string): ValidatorFn;
1118
1999
 
1119
2000
  declare function MustMatchValidator(controlName: string, matchingControlName: string): ValidatorFn;
1120
2001
 
2002
+ declare function emailValidator(): ValidatorFn;
2003
+
1121
2004
  declare class ApiService {
1122
2005
  private http;
1123
2006
  private platformId;
@@ -1136,23 +2019,44 @@ declare class ApiService {
1136
2019
  static ɵprov: i0.ɵɵInjectableDeclaration<ApiService>;
1137
2020
  }
1138
2021
 
2022
+ /**
2023
+ * Deshabilita el zoom del NAVEGADOR (no el zoom interno del mapa de
2024
+ * asientos, que sigue funcionando igual). Se instancia una sola vez —
2025
+ * inyectarlo en el componente raíz de la app alcanza, porque es
2026
+ * `providedIn: 'root'` — y cubre las cuatro formas en que un navegador
2027
+ * deja hacer zoom:
2028
+ *
2029
+ * - Ctrl/Cmd + rueda del mouse (desktop, todos los navegadores).
2030
+ * - Ctrl/Cmd + "+"/"-"/"0" por teclado (desktop, todos los navegadores).
2031
+ * - Gesto de pellizco en trackpad en Safari, que no dispara `wheel` sino
2032
+ * sus propios eventos `gesture*` (no estándar, solo Safari/WebKit).
2033
+ * - Pellizco con dos dedos en pantallas táctiles, como respaldo además
2034
+ * del `user-scalable=no` del viewport (que ya lo bloquea en la mayoría
2035
+ * de los navegadores, pero no en todos de forma consistente).
2036
+ *
2037
+ * No toca el zoom interno de `TicketMapZoomService` (ese es zoom propio de
2038
+ * la app sobre el SVG del mapa, con sus propios botones +/-, y debe seguir
2039
+ * funcionando tal cual).
2040
+ */
2041
+ declare class BrowserZoomLockService {
2042
+ constructor(platformId: Object);
2043
+ private onWheel;
2044
+ private onKeydown;
2045
+ private onTouchMove;
2046
+ private onGesture;
2047
+ static ɵfac: i0.ɵɵFactoryDeclaration<BrowserZoomLockService, never>;
2048
+ static ɵprov: i0.ɵɵInjectableDeclaration<BrowserZoomLockService>;
2049
+ }
2050
+
1139
2051
  type ToastType = 'success' | 'error' | 'info';
1140
2052
  declare class ToastService {
2053
+ private platformId;
2054
+ constructor(platformId: Object);
1141
2055
  show(message: string, type?: ToastType): void;
1142
2056
  static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
1143
2057
  static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
1144
2058
  }
1145
2059
 
1146
- declare class LoadingModalService {
1147
- title: WritableSignal<string>;
1148
- isOpen: WritableSignal<boolean>;
1149
- get modalIsOpen(): WritableSignal<boolean>;
1150
- open(title?: string): void;
1151
- close(): void;
1152
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingModalService, never>;
1153
- static ɵprov: i0.ɵɵInjectableDeclaration<LoadingModalService>;
1154
- }
1155
-
1156
2060
  declare class DeleteConfirmationService {
1157
2061
  title: WritableSignal<string>;
1158
2062
  resourceName: WritableSignal<string>;
@@ -1196,7 +2100,7 @@ declare class DateService {
1196
2100
  declare class AdminService {
1197
2101
  private apiService;
1198
2102
  constructor(apiService: ApiService);
1199
- fetchAdmins(page?: number, search?: string, limit?: number): Observable<AdminsResponse>;
2103
+ fetchAdmins(params: FetchAdminsParams): Observable<AdminsResponse>;
1200
2104
  deleteOne(id: number): Observable<any>;
1201
2105
  createOne(data: any): Observable<any>;
1202
2106
  updateOne(id: number, data: any): Observable<any>;
@@ -1207,7 +2111,7 @@ declare class AdminService {
1207
2111
  declare class CitiesService {
1208
2112
  private apiService;
1209
2113
  constructor(apiService: ApiService);
1210
- fetchCities({ page, search, stateId }: FetchCitiesParams): Observable<CitiesResponse>;
2114
+ fetchCities(params: FetchCitiesParams): Observable<CitiesResponse>;
1211
2115
  createOne(data: City): Observable<CityResponse>;
1212
2116
  updateOne(id: number, data: City): Observable<CityResponse>;
1213
2117
  deleteOne(id: number): Observable<any>;
@@ -1218,7 +2122,7 @@ declare class CitiesService {
1218
2122
  declare class CountryService {
1219
2123
  private apiService;
1220
2124
  constructor(apiService: ApiService);
1221
- fetchCountries(page?: number, search?: string): Observable<CountriesResponse>;
2125
+ fetchCountries(params: FetchCountriesParams): Observable<CountriesResponse>;
1222
2126
  createOne(data: Country): Observable<CountryResponse>;
1223
2127
  updateOne(id: number, data: Country): Observable<CountryResponse>;
1224
2128
  deleteOne(id: number): Observable<any>;
@@ -1229,7 +2133,7 @@ declare class CountryService {
1229
2133
  declare class StatesService {
1230
2134
  private apiService;
1231
2135
  constructor(apiService: ApiService);
1232
- fetchStates(page?: number, search?: string, countryId?: number): Observable<StatesResponse>;
2136
+ fetchStates(params: FetchStatesParams): Observable<StatesResponse>;
1233
2137
  fetchStatesByCountryId(countryId: number): Observable<StatesResponse>;
1234
2138
  createOne(data: State): Observable<StateResponse>;
1235
2139
  updateOne(id: number, data: State): Observable<StateResponse>;
@@ -1243,7 +2147,7 @@ declare class PerformanceService {
1243
2147
  private performancesSubject;
1244
2148
  performances$: Observable<Performance[]>;
1245
2149
  constructor(apiService: ApiService);
1246
- fetchPerformances(showId?: number, search?: string): Observable<PerformancesResponseInterface>;
2150
+ fetchPerformances({ showId, roomMapId, hallId, search, page, limit, }: FindAllPerformancesParams): Observable<PerformancesResponseInterface>;
1247
2151
  fetchDailyPerformances({ show_id, search, limit, date, }: FetchDailyPerformancesParams): Observable<DailyPerformancesResponse>;
1248
2152
  loadPerformances({ showId, search }?: {
1249
2153
  showId?: number;
@@ -1251,7 +2155,7 @@ declare class PerformanceService {
1251
2155
  }): void;
1252
2156
  getCurrentPerformances(): Performance[];
1253
2157
  fetchOneById(id: number): Observable<PerformanceResponse>;
1254
- fetchOneBookingData(id: number): Observable<PerformanceBookingDataResponse>;
2158
+ fetchOneBookingData(id: number, isAdmin?: boolean): Observable<PerformanceBookingDataResponse>;
1255
2159
  fetchAvailableDays(params?: {
1256
2160
  show_id?: number;
1257
2161
  }): Observable<PerformancesAvailableDaysResponse>;
@@ -1281,25 +2185,6 @@ declare class PerformancesListEventsService {
1281
2185
  static ɵprov: i0.ɵɵInjectableDeclaration<PerformancesListEventsService>;
1282
2186
  }
1283
2187
 
1284
- declare class ProductService {
1285
- private apiService;
1286
- private productsSubject;
1287
- products$: Observable<Product[]>;
1288
- constructor(apiService: ApiService);
1289
- fetchProducts(page: number, search: string): Observable<ProductsResponseInterface>;
1290
- loadProducts({ page, search }?: {
1291
- page?: number;
1292
- search?: string;
1293
- }): void;
1294
- getCurrentProducts(): Product[];
1295
- fetchOneById(id: number): Observable<ProductResponse>;
1296
- createOne(data: Product): Observable<any>;
1297
- updateOne(id: number, data: any): Observable<ProductResponse>;
1298
- deleteOne(id: number): Observable<any>;
1299
- static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
1300
- static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
1301
- }
1302
-
1303
2188
  declare class ShowService {
1304
2189
  private apiService;
1305
2190
  private showsSubject;
@@ -1307,7 +2192,7 @@ declare class ShowService {
1307
2192
  constructor(apiService: ApiService);
1308
2193
  loadShows({ page, search }?: FetchShowsParams): void;
1309
2194
  getCurrentShows(): Show[];
1310
- fetchShows({ limit, page, search }: FetchShowsParams): Observable<ShowsResponseInterface>;
2195
+ fetchShows(params: FetchShowsParams): Observable<ShowsResponseInterface>;
1311
2196
  fetchAvailableShows({ date, limit, page, search, }: FetchShowsParams): Observable<ShowsResponseInterface>;
1312
2197
  fetchOneById(id: number): Observable<ShowResponse>;
1313
2198
  createOne(data: Show): Observable<ShowResponse>;
@@ -1328,7 +2213,7 @@ declare class CustomerService {
1328
2213
  private apiService;
1329
2214
  constructor(apiService: ApiService);
1330
2215
  createOne(data: Customer): Observable<CustomerResponse>;
1331
- fetchCustomers(page: number, search: string, limit?: number): Observable<CustomersResponse>;
2216
+ fetchCustomers(params: FetchCustomersParams): Observable<CustomersResponse>;
1332
2217
  fetchOneById(id: number): Observable<CustomerResponse>;
1333
2218
  updateOne(id: number, data: any): Observable<CustomerResponse>;
1334
2219
  deleteOne(id: number): Observable<any>;
@@ -1380,6 +2265,498 @@ declare class PriceZoneFormModalService {
1380
2265
  static ɵprov: i0.ɵɵInjectableDeclaration<PriceZoneFormModalService>;
1381
2266
  }
1382
2267
 
2268
+ declare class ProductCategoryService {
2269
+ private apiService;
2270
+ constructor(apiService: ApiService);
2271
+ fetchCategories(params: FetchProductCategoriesParams): Observable<ProductCategoriesResponse>;
2272
+ fetchOneById(id: number): Observable<ProductCategoryResponse>;
2273
+ createOne(data: ProductCategory): Observable<any>;
2274
+ updateOne(id: number, data: ProductCategory): Observable<ProductCategoryResponse>;
2275
+ deleteOne(id: number): Observable<any>;
2276
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductCategoryService, never>;
2277
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductCategoryService>;
2278
+ }
2279
+
2280
+ declare class ProductTagService {
2281
+ private apiService;
2282
+ constructor(apiService: ApiService);
2283
+ fetchTags(params: FetchProductTagsParams): Observable<ProductTagsResponse>;
2284
+ fetchOneById(id: number): Observable<ProductTagResponse>;
2285
+ createOne(data: ProductTag): Observable<any>;
2286
+ updateOne(id: number, data: ProductTag): Observable<ProductTagResponse>;
2287
+ deleteOne(id: number): Observable<any>;
2288
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTagService, never>;
2289
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTagService>;
2290
+ }
2291
+
2292
+ declare class ProductTypeService {
2293
+ private apiService;
2294
+ constructor(apiService: ApiService);
2295
+ fetchTypes(params: FetchProductTypesParams): Observable<ProductTypesResponse>;
2296
+ fetchOneById(id: number): Observable<ProductTypeResponse>;
2297
+ createOne(data: ProductType): Observable<any>;
2298
+ updateOne(id: number, data: ProductType): Observable<ProductTypeResponse>;
2299
+ deleteOne(id: number): Observable<any>;
2300
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTypeService, never>;
2301
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTypeService>;
2302
+ }
2303
+
2304
+ declare class ProductService {
2305
+ private apiService;
2306
+ private productsSubject;
2307
+ products$: Observable<Product[]>;
2308
+ constructor(apiService: ApiService);
2309
+ fetchProducts(params: FetchProductsParams): Observable<ProductsResponseInterface>;
2310
+ loadProducts(params: FetchProductsParams): void;
2311
+ getCurrentProducts(): Product[];
2312
+ fetchOneById(id: number): Observable<ProductResponse>;
2313
+ createOne(data: Product): Observable<any>;
2314
+ updateOne(id: number, data: any): Observable<ProductResponse>;
2315
+ deleteOne(id: number): Observable<any>;
2316
+ fetchImages(id: number): Observable<{
2317
+ data: ProductImage[];
2318
+ }>;
2319
+ uploadImages(id: number, files?: FormData): Observable<{
2320
+ data: ProductImage[];
2321
+ }>;
2322
+ deleteOneImage(productId: number, imageId: number): Observable<any>;
2323
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
2324
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
2325
+ }
2326
+
2327
+ declare class BaseModalService {
2328
+ readonly isOpen: WritableSignal<boolean>;
2329
+ get modalIsOpen(): WritableSignal<boolean>;
2330
+ open(): void;
2331
+ close(): void;
2332
+ }
2333
+
2334
+ declare class FeedbackModalService {
2335
+ private _modals;
2336
+ readonly modals: i0.Signal<FeedbackModalElement[]>;
2337
+ addModal(modal: FeedbackModalElement): void;
2338
+ removeModal(id: string): void;
2339
+ removeAllModals(): void;
2340
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalService, never>;
2341
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackModalService>;
2342
+ }
2343
+
2344
+ /**
2345
+ * Tope de entradas por selección/compra. Por defecto es `null` (sin límite),
2346
+ * que es lo que necesita el backoffice (admin puede seleccionar todo).
2347
+ * El ecommerce, que sí debe limitar, llama a `load()` una vez al iniciar la
2348
+ * app para traer el valor configurado en el formulario de personalización.
2349
+ */
2350
+ declare class PurchaseLimitService {
2351
+ private apiService;
2352
+ private _maxTicketsPerSelection;
2353
+ readonly maxTicketsPerSelection: i0.Signal<number | null>;
2354
+ constructor(apiService: ApiService);
2355
+ setMaxTicketsPerSelection(max: number | null): void;
2356
+ load(): Observable<number | null>;
2357
+ static ɵfac: i0.ɵɵFactoryDeclaration<PurchaseLimitService, never>;
2358
+ static ɵprov: i0.ɵɵInjectableDeclaration<PurchaseLimitService>;
2359
+ }
2360
+
2361
+ declare class OrderTransactionDetailsModalService {
2362
+ readonly isOpen: WritableSignal<boolean>;
2363
+ transaction: WritableSignal<Transaction | null>;
2364
+ get modalIsOpen(): WritableSignal<boolean>;
2365
+ open(transaction: Transaction): void;
2366
+ close(): void;
2367
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalService, never>;
2368
+ static ɵprov: i0.ɵɵInjectableDeclaration<OrderTransactionDetailsModalService>;
2369
+ }
2370
+
2371
+ declare class PerformanceBookingDataService {
2372
+ private _show;
2373
+ private _performance;
2374
+ private _roomMap;
2375
+ private _hallFloors;
2376
+ private _selectedHallFloor;
2377
+ private _allRenderData;
2378
+ private _visibleFloorIds;
2379
+ private _stageConfig;
2380
+ private _lastTickets;
2381
+ readonly show: i0.Signal<Show | null>;
2382
+ readonly hallFloors: i0.Signal<HallFloor[]>;
2383
+ readonly selectedHallFloor: i0.Signal<HallFloor | null>;
2384
+ readonly performance: i0.Signal<Performance | null>;
2385
+ readonly stageConfig: i0.Signal<{
2386
+ [x: string]: any;
2387
+ }>;
2388
+ readonly roomMap: i0.Signal<RoomMap | null>;
2389
+ readonly visibleFloorIds: i0.Signal<Set<number>>;
2390
+ readonly availableFloors: i0.Signal<HallFloor[]>;
2391
+ readonly renderData: i0.Signal<ElementRenderData[]>;
2392
+ setPerformanceBookingData({ data }: PerformanceBookingDataResponse): void;
2393
+ /** Aplica actualizaciones de estado de tickets recibidas por SSE (ver
2394
+ * SeatAvailabilitySseService) sin volver a pedir todo el booking-data:
2395
+ * parcha `_lastTickets` y vuelve a calcular el render data del mapa con
2396
+ * los mismos `elements`/`price_zones` (que no cambian en vivo). */
2397
+ applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
2398
+ setRoomMap(roomMap: RoomMap | null): void;
2399
+ setAllRenderData(data: ElementRenderData[]): void;
2400
+ setPerformance(performance: Performance | null): void;
2401
+ setShow(show: Show | null): void;
2402
+ setHallFloors(data: HallFloor[]): void;
2403
+ setSelectedHallFloor(id: number): void;
2404
+ toggleFloorVisibility(floorId: number): void;
2405
+ isFloorVisible(floorId: number): boolean;
2406
+ updateStageConfig(data: {
2407
+ [x: string]: any;
2408
+ }): void;
2409
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceBookingDataService, never>;
2410
+ static ɵprov: i0.ɵɵInjectableDeclaration<PerformanceBookingDataService>;
2411
+ }
2412
+
2413
+ declare class TicketSelectionDetailsService {
2414
+ private _customerEmail;
2415
+ private _customerId;
2416
+ private _paymentMethod;
2417
+ private _billingInformation;
2418
+ readonly customerEmail: i0.Signal<string | null>;
2419
+ readonly customerId: i0.Signal<number | null>;
2420
+ readonly paymentMethod: i0.Signal<string | null>;
2421
+ readonly billingInformation: i0.Signal<Customer | null>;
2422
+ setCustomerEmail(email: string | null): void;
2423
+ setCustomerId(id: number | null): void;
2424
+ setPaymentMethod(method: string | null): void;
2425
+ setBillingInformation(values: Customer): void;
2426
+ clearSelection(): void;
2427
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDetailsService, never>;
2428
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDetailsService>;
2429
+ }
2430
+
2431
+ declare class TicketSelectionDiscountService {
2432
+ private _coupon;
2433
+ private _corporateBond;
2434
+ private _corporateBondCode;
2435
+ private _giftBond;
2436
+ private _giftBondCode;
2437
+ private _vipCard;
2438
+ /**
2439
+ * Abono (subscription) como metodo de pago. Solo se usa el campo
2440
+ * `service_fee_exempt`: el valor del descuento es siempre 100% (una obra
2441
+ * del abono cubre el ticket por completo), igual que un cupon del 100%.
2442
+ */
2443
+ private _subscription;
2444
+ readonly coupon: Signal<Coupon | null>;
2445
+ readonly corporateBond: Signal<CorporateBond | null>;
2446
+ readonly corporateBondCode: Signal<string | null>;
2447
+ readonly giftBond: Signal<GiftBondPurchase | null>;
2448
+ readonly giftBondCode: Signal<string | null>;
2449
+ readonly vipCard: Signal<VipCard | null>;
2450
+ readonly subscription: Signal<{
2451
+ service_fee_exempt: boolean;
2452
+ } | null>;
2453
+ readonly selectedDiscount: Signal<SelectedDiscountCard | null>;
2454
+ readonly selectedDiscountType: Signal<SelectedDiscountCardType | undefined>;
2455
+ readonly selectedDiscountValue: Signal<number | undefined>;
2456
+ setCoupon(coupon: Coupon | null): void;
2457
+ setCorporateBond(corporateBond: CorporateBond | null): void;
2458
+ setCorporateBondCode(code: string | null): void;
2459
+ setGiftBond(giftBond: GiftBondPurchase | null): void;
2460
+ setGiftBondCode(code: string | null): void;
2461
+ /**
2462
+ * Saldo VIP como método de pago (VIP-HU-04). Solo debe contar como
2463
+ * descuento "seleccionado" mientras el cliente efectivamente eligió
2464
+ * pagar con su saldo VIP, no solo por tener una tarjeta activa —
2465
+ * llamar con `null` en cuanto deje de ser el método de pago elegido.
2466
+ */
2467
+ setVipCard(card: VipCard | null): void;
2468
+ /**
2469
+ * Abono como metodo de pago (paralelo a `setVipCard`). Llamar con `null`
2470
+ * en cuanto deje de ser el metodo de pago elegido.
2471
+ */
2472
+ setSubscription(subscription: {
2473
+ service_fee_exempt: boolean;
2474
+ } | null): void;
2475
+ clearSelection(): void;
2476
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDiscountService, never>;
2477
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDiscountService>;
2478
+ }
2479
+
2480
+ declare class TicketSelectionTotalsService {
2481
+ private bookingDataService;
2482
+ private selectionService;
2483
+ private selectionDiscountService;
2484
+ readonly selectedProductEntries: i0.Signal<{
2485
+ id: number;
2486
+ quantity: number;
2487
+ }[]>;
2488
+ readonly selectedProductCount: i0.Signal<number>;
2489
+ readonly productSubtotal: i0.Signal<number>;
2490
+ readonly ticketSubtotal: i0.Signal<number>;
2491
+ readonly serviceFee: i0.Signal<number>;
2492
+ readonly discountAmount: i0.Signal<number | null>;
2493
+ subtotalValue(): number;
2494
+ totalValue(): number;
2495
+ totalDiscounted(): number | null;
2496
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionTotalsService, never>;
2497
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionTotalsService>;
2498
+ }
2499
+
2500
+ declare class TicketSelectionService {
2501
+ private bookingDataService;
2502
+ private feedbackModalService;
2503
+ private purchaseLimitService;
2504
+ private selectionDetailsService;
2505
+ private selectionDiscountService;
2506
+ private _zoneQuantities;
2507
+ private _allTickets;
2508
+ private _selectedTickets;
2509
+ private _selectedBlockedTickets;
2510
+ private _products;
2511
+ private _productQuantities;
2512
+ readonly selectedTickets: i0.Signal<PerformanceTicket[]>;
2513
+ readonly selectedBlockedTickets: i0.Signal<PerformanceTicket[]>;
2514
+ readonly selectedCount: i0.Signal<number>;
2515
+ readonly blockedSelectedCount: i0.Signal<number>;
2516
+ readonly selectedTicketIds: i0.Signal<Set<PerformanceTicket>>;
2517
+ readonly selectedBlockedTicketIds: i0.Signal<number[]>;
2518
+ readonly selectedTicketIdList: i0.Signal<number[]>;
2519
+ readonly summaryItems: i0.Signal<PerformanceTicket[]>;
2520
+ readonly products: i0.Signal<Product[]>;
2521
+ readonly productQuantities: i0.Signal<Map<number, number>>;
2522
+ readonly selectedProductEntries: i0.Signal<{
2523
+ id: number;
2524
+ quantity: number;
2525
+ }[]>;
2526
+ readonly selectedProductCount: i0.Signal<number>;
2527
+ readonly serviceFee: i0.Signal<number>;
2528
+ setTickets(tickets: PerformanceTicket[]): void;
2529
+ /** Aplica actualizaciones de estado recibidas por SSE (ver
2530
+ * SeatAvailabilitySseService). Muta los tickets existentes EN VEZ de
2531
+ * reemplazarlos por objetos nuevos: `_selectedTickets`/
2532
+ * `_selectedBlockedTickets` son Sets de referencias de objeto, no de ids,
2533
+ * así que reemplazar el array rompería la selección activa del usuario. */
2534
+ applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
2535
+ setProducts(products: Product[]): void;
2536
+ updateProductQuantity(productId: number, delta: number): void;
2537
+ getProductQuantity(productId: number): number;
2538
+ private getListByStatus;
2539
+ setSelectedTickets(tickets: PerformanceTicket[]): void;
2540
+ toggle(ticket: PerformanceTicket): void;
2541
+ select(ticket: PerformanceTicket): void;
2542
+ deselect(ticket: PerformanceTicket): void;
2543
+ clearBlockedSelection(): void;
2544
+ clearSelection(): void;
2545
+ isSelected(ticket: PerformanceTicket): boolean;
2546
+ initZoneQuantity(elementId: number, maxCapacity: number): void;
2547
+ getZoneMax(elementId: number): number;
2548
+ getZoneSelectedCount(elementId: number): number;
2549
+ setZoneQuantity(elementId: number, target: number): void;
2550
+ adjustZoneQuantity(elementId: number, delta: number): void;
2551
+ private remainingSelectionAllowance;
2552
+ private canAddMoreToSelection;
2553
+ private notifyPurchaseLimitReached;
2554
+ getZoneTickets(elementId: number): PerformanceTicket[];
2555
+ buildTooltipData(ticket: PerformanceTicket, elementName: string, seatLabel: string | null, x: number, y: number): TicketMapTooltipData;
2556
+ buildReservePerformanceDto(paymentMethod?: string, termsAccepted?: boolean, dataProcessingAccepted?: boolean): ReservePerformanceDto;
2557
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionService, never>;
2558
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionService>;
2559
+ }
2560
+
2561
+ declare class TicketMapZoomService {
2562
+ readonly currentZoom: i0.WritableSignal<number>;
2563
+ private stage?;
2564
+ private bookingDataService;
2565
+ private readonly defaultConfig;
2566
+ constructor();
2567
+ /**
2568
+ * Set the Konva stage instance
2569
+ */
2570
+ setStage(stage: Stage): void;
2571
+ /**
2572
+ * Zoom in by one step
2573
+ */
2574
+ zoomIn(): void;
2575
+ /**
2576
+ * Zoom out by one step
2577
+ */
2578
+ zoomOut(): void;
2579
+ /**
2580
+ * Reset zoom to 100%
2581
+ */
2582
+ resetZoom(): void;
2583
+ /**
2584
+ * Get current zoom as percentage string
2585
+ */
2586
+ getZoomPercentage(): string;
2587
+ /**
2588
+ * Get current zoom value
2589
+ */
2590
+ getCurrentZoom(): number;
2591
+ /**
2592
+ * Apply zoom with center point
2593
+ */
2594
+ private applyZoom;
2595
+ /**
2596
+ * Apply zoom scale with specific center point
2597
+ */
2598
+ private applyZoomScale;
2599
+ /**
2600
+ * Handle mouse wheel zoom toward the cursor position
2601
+ */
2602
+ handleWheelZoom(deltaY: number): void;
2603
+ /**
2604
+ * Fit the content bounds to fill the stage container
2605
+ */
2606
+ fitToContainer(padding?: number): void;
2607
+ /**
2608
+ * Get current stage position
2609
+ */
2610
+ getStagePosition(): {
2611
+ x: number;
2612
+ y: number;
2613
+ };
2614
+ /**
2615
+ * Set stage position (useful for programmatic panning)
2616
+ */
2617
+ setStagePosition(position: {
2618
+ x: number;
2619
+ y: number;
2620
+ }): void;
2621
+ /**
2622
+ * Fit the stage content bounds to the container, centering and scaling
2623
+ * to show the full content with optional padding.
2624
+ */
2625
+ fitToBounds(contentBounds: {
2626
+ x: number;
2627
+ y: number;
2628
+ width: number;
2629
+ height: number;
2630
+ }, containerWidth: number, containerHeight: number, padding?: number): void;
2631
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomService, never>;
2632
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketMapZoomService>;
2633
+ }
2634
+
2635
+ declare class ConfirmationOrderModalService extends BaseModalService {
2636
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalService, never>;
2637
+ static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationOrderModalService>;
2638
+ }
2639
+
2640
+ /**
2641
+ * Transporte SSE del estado de asientos en vivo. Es el único punto de la
2642
+ * librería que sabe de EventSource/HTTP para esto — aplica cada snapshot
2643
+ * recibido sobre PerformanceBookingDataService (repinta el mapa) y
2644
+ * TicketSelectionService (mantiene la disponibilidad al día para
2645
+ * validaciones de zona/límite de compra).
2646
+ *
2647
+ * Cada intento de reconexión pide un ticket NUEVO (el anterior es de un
2648
+ * solo uso y expira a los ~30s), con backoff exponencial acotado.
2649
+ */
2650
+ declare class SeatAvailabilitySseService {
2651
+ private apiService;
2652
+ private bookingDataService;
2653
+ private ticketSelectionService;
2654
+ private platformId;
2655
+ private config;
2656
+ private eventSource;
2657
+ private reconnectTimer;
2658
+ private reconnectAttempts;
2659
+ private currentPerformanceId;
2660
+ private currentIsAdmin;
2661
+ private stopped;
2662
+ constructor(apiService: ApiService, bookingDataService: PerformanceBookingDataService, ticketSelectionService: TicketSelectionService, platformId: Object, config: TickeraComponentsConfig);
2663
+ connect(performanceId: number, opts?: {
2664
+ isAdmin?: boolean;
2665
+ }): void;
2666
+ disconnect(): void;
2667
+ private openConnection;
2668
+ private startStream;
2669
+ private scheduleReconnect;
2670
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatAvailabilitySseService, never>;
2671
+ static ɵprov: i0.ɵɵInjectableDeclaration<SeatAvailabilitySseService>;
2672
+ }
2673
+
2674
+ /**
2675
+ * Cliente de la cola adaptativa (fase 4). No decide CUÁNDO se activa la
2676
+ * cola — eso es enteramente responsabilidad del backend (AdmissionGuard +
2677
+ * LoadBasedAdmissionPolicy) — este servicio solo sabe reaccionar al 429
2678
+ * `ADMISSION_QUEUE_REQUIRED` que ese guard puede devolver en
2679
+ * /carts/reserve y /orders/checkout.
2680
+ *
2681
+ * Uso típico en el punto de llamada (ver reservation-confirmation y
2682
+ * checkout-form): reintentar la request original dentro de un catchError:
2683
+ *
2684
+ * this.cartService.reserve(dto).pipe(
2685
+ * catchError((err) => {
2686
+ * if (!this.admissionQueueService.isAdmissionRequired(err)) return throwError(() => err);
2687
+ * const performanceId = this.admissionQueueService.getPerformanceId(err)!;
2688
+ * return this.admissionQueueService.waitForAdmission(performanceId).pipe(
2689
+ * switchMap(() => this.cartService.reserve(dto)),
2690
+ * );
2691
+ * }),
2692
+ * )
2693
+ *
2694
+ * Reutiliza el mismo transporte SSE con ticket de un solo uso de la fase 3
2695
+ * (ver SeatAvailabilitySseService) — acá el ticket llega directo en la
2696
+ * respuesta de /join, así que no hace falta un endpoint de ticket aparte;
2697
+ * cada reintento de conexión vuelve a hacer /join (el ticket anterior es
2698
+ * de un solo uso y expira a los ~30s).
2699
+ */
2700
+ declare class AdmissionQueueService {
2701
+ private apiService;
2702
+ private feedbackModalService;
2703
+ private platformId;
2704
+ private config;
2705
+ constructor(apiService: ApiService, feedbackModalService: FeedbackModalService, platformId: Object, config: TickeraComponentsConfig);
2706
+ /** True si el error es el 429 específico de "alta demanda, únete a la fila". */
2707
+ isAdmissionRequired(error: unknown): error is HttpErrorResponse;
2708
+ getPerformanceId(error: HttpErrorResponse): number | null;
2709
+ /**
2710
+ * Se une a la fila de `performanceId` y completa (emite una vez y cierra)
2711
+ * en cuanto el usuario queda admitido. Mientras espera, muestra un modal
2712
+ * ligero con la posición vigente, actualizado por SSE. Si quien se
2713
+ * suscribió se desuscribe antes de ser admitido (el usuario navega a
2714
+ * otro lado, cierra el modal, o el componente se destruye), libera el
2715
+ * lugar en la fila con /leave.
2716
+ */
2717
+ waitForAdmission(performanceId: number): Observable<void>;
2718
+ static ɵfac: i0.ɵɵFactoryDeclaration<AdmissionQueueService, never>;
2719
+ static ɵprov: i0.ɵɵInjectableDeclaration<AdmissionQueueService>;
2720
+ }
2721
+
2722
+ declare class TicketQrService {
2723
+ private apiService;
2724
+ constructor(apiService: ApiService);
2725
+ fetchQrToken(ticketUuid: string): Observable<QrTokenResponse>;
2726
+ fetchMyQrToken(ticketUuid: string): Observable<QrTokenResponse>;
2727
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrService, never>;
2728
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrService>;
2729
+ }
2730
+
2731
+ declare class TicketQrModalService {
2732
+ isOpen: WritableSignal<boolean>;
2733
+ ticketUuid: WritableSignal<string | null>;
2734
+ ticketDescription: WritableSignal<string | null>;
2735
+ open(ticketUuid: string, description?: string): void;
2736
+ close(): void;
2737
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalService, never>;
2738
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrModalService>;
2739
+ }
2740
+
2741
+ declare class VipCardService {
2742
+ private apiService;
2743
+ constructor(apiService: ApiService);
2744
+ findMy(): Observable<{
2745
+ data: VipCard | null;
2746
+ }>;
2747
+ activate(data: any): Observable<VipOrderResponse>;
2748
+ recharge(data: any): Observable<VipOrderResponse>;
2749
+ fetchAll(params?: FetchVipCardsParams): Observable<VipCardsResponse>;
2750
+ fetchOneById(id: number): Observable<VipCardResponse>;
2751
+ activateAdmin(data: ActivateVipCardParams): Observable<VipOrderResponse>;
2752
+ rechargeAdmin(id: number, data: any): Observable<VipOrderResponse>;
2753
+ updateStatus(id: number, status: VipCardStatus): Observable<VipCardResponse>;
2754
+ updateTerms(id: number): Observable<VipCardResponse>;
2755
+ fetchTransactions(id: number, page?: number, limit?: number): Observable<VipTransactionsResponse>;
2756
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipCardService, never>;
2757
+ static ɵprov: i0.ɵɵInjectableDeclaration<VipCardService>;
2758
+ }
2759
+
1383
2760
  declare const authInterceptor: HttpInterceptorFn;
1384
2761
 
1385
2762
  declare class AppButtonComponent {
@@ -1392,10 +2769,11 @@ declare class AppButtonComponent {
1392
2769
  size: 'xs' | 'sm' | 'md' | 'lg';
1393
2770
  loadingText: string;
1394
2771
  icon: string;
2772
+ tooltip: string;
1395
2773
  handleClick(): void;
1396
2774
  get buttonClasses(): string;
1397
2775
  static ɵfac: i0.ɵɵFactoryDeclaration<AppButtonComponent, never>;
1398
- static ɵcmp: i0.ɵɵComponentDeclaration<AppButtonComponent, "app-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "text": { "alias": "text"; "required": false; }; "size": { "alias": "size"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
2776
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppButtonComponent, "app-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "text": { "alias": "text"; "required": false; }; "size": { "alias": "size"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
1399
2777
  }
1400
2778
 
1401
2779
  declare class AppLinkButtonComponent {
@@ -1409,9 +2787,10 @@ declare class AppLinkButtonComponent {
1409
2787
  queryParams: Record<string, any>;
1410
2788
  size: 'xs' | 'sm' | 'md' | 'lg';
1411
2789
  variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent';
2790
+ tooltip: string;
1412
2791
  get buttonClasses(): string;
1413
2792
  static ɵfac: i0.ɵɵFactoryDeclaration<AppLinkButtonComponent, never>;
1414
- static ɵcmp: i0.ɵɵComponentDeclaration<AppLinkButtonComponent, "app-link-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "target": { "alias": "target"; "required": false; }; "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "route": { "alias": "route"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, never, true, never>;
2793
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppLinkButtonComponent, "app-link-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "target": { "alias": "target"; "required": false; }; "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "route": { "alias": "route"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, {}, never, never, true, never>;
1415
2794
  }
1416
2795
 
1417
2796
  declare class AppAlertComponent {
@@ -1424,15 +2803,29 @@ declare class AppAlertComponent {
1424
2803
  static ɵcmp: i0.ɵɵComponentDeclaration<AppAlertComponent, "app-alert", never, { "type": { "alias": "type"; "required": false; }; "text": { "alias": "text"; "required": false; }; "closeable": { "alias": "closeable"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
1425
2804
  }
1426
2805
 
1427
- declare class LoadingmModalComponent {
1428
- private loadingModalService;
1429
- constructor(loadingModalService: LoadingModalService);
1430
- get isOpen(): i0.WritableSignal<boolean>;
1431
- get title(): i0.WritableSignal<string>;
2806
+ declare class FeedbackModalComponent implements OnChanges, OnDestroy {
2807
+ isOpen: WritableSignal<boolean>;
2808
+ type: FeedbackModalType;
2809
+ title: string;
2810
+ message: string;
2811
+ showHeader: boolean;
2812
+ showCloseButton: boolean;
2813
+ showTitle: boolean;
2814
+ autoClose: boolean;
2815
+ autoCloseDuration: number;
2816
+ buttonText: string;
2817
+ closed: EventEmitter<void>;
2818
+ private autoCloseTimeout;
2819
+ get defaultButtonText(): string;
2820
+ get resolvedButtonText(): string;
2821
+ get buttonVariant(): 'primary' | 'secondary';
2822
+ ngOnChanges(changes: SimpleChanges): void;
2823
+ ngOnDestroy(): void;
1432
2824
  closeModal(): void;
1433
- onCitySaved(): void;
1434
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingmModalComponent, never>;
1435
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingmModalComponent, "loading-modal", never, {}, {}, never, never, true, never>;
2825
+ private scheduleAutoClose;
2826
+ private clearAutoClose;
2827
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
2828
+ static ɵcmp: i0.ɵɵComponentDeclaration<FeedbackModalComponent, "feedback-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "type": { "alias": "type"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "autoCloseDuration": { "alias": "autoCloseDuration"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; }, { "closed": "closed"; }, never, never, true, never>;
1436
2829
  }
1437
2830
 
1438
2831
  declare class DeleteConfirmationComponent {
@@ -1455,12 +2848,29 @@ declare class DeleteConfirmationComponent {
1455
2848
  declare class AppModalComponent {
1456
2849
  title: string;
1457
2850
  disableClose: boolean;
2851
+ showHeader: boolean;
2852
+ showCloseButton: boolean;
2853
+ showTitle: boolean;
2854
+ interactiveClose: boolean;
1458
2855
  isOpen: WritableSignal<boolean>;
1459
- size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
2856
+ size: ModalSize;
1460
2857
  closeModal: EventEmitter<void>;
1461
2858
  onCloseModal(): void;
2859
+ onInteractiveClose(): void;
2860
+ onKeydownEscape(): void;
1462
2861
  static ɵfac: i0.ɵɵFactoryDeclaration<AppModalComponent, never>;
1463
- static ɵcmp: i0.ɵɵComponentDeclaration<AppModalComponent, "app-modal", never, { "title": { "alias": "title"; "required": false; }; "disableClose": { "alias": "disableClose"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "closeModal": "closeModal"; }, never, ["*"], true, never>;
2862
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppModalComponent, "app-modal", never, { "title": { "alias": "title"; "required": false; }; "disableClose": { "alias": "disableClose"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; "interactiveClose": { "alias": "interactiveClose"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "closeModal": "closeModal"; }, never, ["*"], true, never>;
2863
+ }
2864
+
2865
+ declare class AppBadgeComponent {
2866
+ text: string;
2867
+ color: BadgeColor;
2868
+ size: BadgeSize;
2869
+ bordered: boolean;
2870
+ backgroundColor: string;
2871
+ textColor: string;
2872
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppBadgeComponent, never>;
2873
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppBadgeComponent, "app-badge", never, { "text": { "alias": "text"; "required": false; }; "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "textColor": { "alias": "textColor"; "required": false; }; }, {}, never, never, true, never>;
1464
2874
  }
1465
2875
 
1466
2876
  declare class AuditInformationComponent {
@@ -1475,6 +2885,7 @@ declare class DynamicTableComponent {
1475
2885
  title: string;
1476
2886
  data: any[];
1477
2887
  headers: any[];
2888
+ searcherPlaceholder: string;
1478
2889
  columnComponents: {
1479
2890
  [key: string]: Type<any>;
1480
2891
  };
@@ -1482,17 +2893,79 @@ declare class DynamicTableComponent {
1482
2893
  totalItems: number;
1483
2894
  itemsPerPage: number;
1484
2895
  currentPage: number;
2896
+ searchValue: string;
1485
2897
  pageChange: EventEmitter<number>;
1486
2898
  searchChange: EventEmitter<string>;
2899
+ pageSizeChange: EventEmitter<number>;
2900
+ pageSizeOptions: number[];
1487
2901
  showPagination: boolean;
1488
2902
  showSearch: boolean;
1489
2903
  showTitle: boolean;
1490
2904
  get totalPages(): number;
1491
2905
  onSearch(event: any): void;
1492
2906
  changePage(delta: number): void;
2907
+ changePageSize(event: any): void;
1493
2908
  createInjector(row: any): Injector;
1494
2909
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicTableComponent, never>;
1495
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicTableComponent, "dynamic-table", never, { "title": { "alias": "title"; "required": false; }; "data": { "alias": "data"; "required": false; }; "headers": { "alias": "headers"; "required": false; }; "columnComponents": { "alias": "columnComponents"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "totalItems": { "alias": "totalItems"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; "showPagination": { "alias": "showPagination"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; }, { "pageChange": "pageChange"; "searchChange": "searchChange"; }, never, never, true, never>;
2910
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicTableComponent, "dynamic-table", never, { "title": { "alias": "title"; "required": false; }; "data": { "alias": "data"; "required": false; }; "headers": { "alias": "headers"; "required": false; }; "searcherPlaceholder": { "alias": "searcherPlaceholder"; "required": false; }; "columnComponents": { "alias": "columnComponents"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "totalItems": { "alias": "totalItems"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; "searchValue": { "alias": "searchValue"; "required": false; }; "showPagination": { "alias": "showPagination"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; }, { "pageChange": "pageChange"; "searchChange": "searchChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
2911
+ }
2912
+
2913
+ declare class TextExpandableComponent implements OnChanges {
2914
+ text: string;
2915
+ maxLength: number;
2916
+ fontSize: TextFontSize;
2917
+ allowHtml: boolean;
2918
+ maxLines?: number;
2919
+ protected expanded: boolean;
2920
+ ngOnChanges(): void;
2921
+ get plainText(): string;
2922
+ get truncated(): boolean;
2923
+ get visibleText(): string;
2924
+ get lines(): number;
2925
+ toggleExpanded(): void;
2926
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextExpandableComponent, never>;
2927
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextExpandableComponent, "text-expandable", never, { "text": { "alias": "text"; "required": true; }; "maxLength": { "alias": "maxLength"; "required": false; }; "fontSize": { "alias": "fontSize"; "required": false; }; "allowHtml": { "alias": "allowHtml"; "required": false; }; "maxLines": { "alias": "maxLines"; "required": false; }; }, {}, never, never, true, never>;
2928
+ }
2929
+
2930
+ declare class ShowCardComponent {
2931
+ show: Show;
2932
+ linkText: string;
2933
+ linkUrlFn?: (show: Show) => string;
2934
+ linkQueryParams?: Record<string, any>;
2935
+ transloco: TranslocoService;
2936
+ dateService: DateService;
2937
+ get showTypeColor(): {
2938
+ bg: string;
2939
+ text: string;
2940
+ };
2941
+ formatTimeDate(date: string): Date;
2942
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardComponent, never>;
2943
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShowCardComponent, "show-card", never, { "show": { "alias": "show"; "required": true; }; "linkText": { "alias": "linkText"; "required": false; }; "linkUrlFn": { "alias": "linkUrlFn"; "required": false; }; "linkQueryParams": { "alias": "linkQueryParams"; "required": false; }; }, {}, never, never, true, never>;
2944
+ }
2945
+
2946
+ declare class ShowTypeBadgeComponent {
2947
+ show: Show;
2948
+ size: BadgeSize;
2949
+ transloco: TranslocoService;
2950
+ get showTypeColor(): {
2951
+ bg: string;
2952
+ text: string;
2953
+ };
2954
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowTypeBadgeComponent, never>;
2955
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShowTypeBadgeComponent, "show-type-badge", never, { "show": { "alias": "show"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
2956
+ }
2957
+
2958
+ declare class ShowCardSkeletonComponent {
2959
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardSkeletonComponent, never>;
2960
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShowCardSkeletonComponent, "show-card-skeleton", never, {}, {}, never, never, true, never>;
2961
+ }
2962
+
2963
+ declare class AppBreadcumbComponent {
2964
+ homeUrl: string | undefined;
2965
+ steps: BreadcrumbStep[];
2966
+ theme: BreadcrumbTheme;
2967
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppBreadcumbComponent, never>;
2968
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppBreadcumbComponent, "app-breadcrumb", never, { "homeUrl": { "alias": "homeUrl"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, never, true, never>;
1496
2969
  }
1497
2970
 
1498
2971
  declare class LanguageSwitcherComponent {
@@ -1515,12 +2988,14 @@ declare class FormInputComponent implements ControlValueAccessor {
1515
2988
  placeholder: string;
1516
2989
  required: boolean;
1517
2990
  readonly: boolean;
2991
+ maxlength: number | null;
1518
2992
  minlength: number | null;
2993
+ max: number | null;
1519
2994
  min: number | null;
1520
2995
  step: number | null;
1521
2996
  pattern: string | null;
1522
2997
  fieldGroupClass: string;
1523
- autocomplete: boolean;
2998
+ autocomplete: string;
1524
2999
  value: any;
1525
3000
  disabled: boolean;
1526
3001
  onChange: any;
@@ -1537,12 +3012,12 @@ declare class FormInputComponent implements ControlValueAccessor {
1537
3012
  get inputClasses(): string;
1538
3013
  get fieldGroupClasses(): string;
1539
3014
  static ɵfac: i0.ɵɵFactoryDeclaration<FormInputComponent, [{ optional: true; self: true; }, null]>;
1540
- static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, true, never>;
3015
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, true, never>;
1541
3016
  }
1542
3017
 
1543
3018
  declare class FormSelectComponent implements ControlValueAccessor {
1544
3019
  ngControl: NgControl;
1545
- private transloco;
3020
+ protected transloco: TranslocoService;
1546
3021
  label: string;
1547
3022
  name: string;
1548
3023
  id: string;
@@ -1566,7 +3041,6 @@ declare class FormSelectComponent implements ControlValueAccessor {
1566
3041
  get inputId(): string;
1567
3042
  get showError(): boolean;
1568
3043
  get errorMessage(): string;
1569
- get resolvedDefaultOptionLabel(): string;
1570
3044
  get fieldGroupClasses(): string;
1571
3045
  static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [{ optional: true; self: true; }, null]>;
1572
3046
  static ɵcmp: i0.ɵɵComponentDeclaration<FormSelectComponent, "form-select", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "options": { "alias": "options"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "showDefaultOption": { "alias": "showDefaultOption"; "required": false; }; "defaultOptionLabel": { "alias": "defaultOptionLabel"; "required": false; }; }, {}, never, never, true, never>;
@@ -1604,6 +3078,105 @@ declare class FormTextareaComponent implements ControlValueAccessor {
1604
3078
  static ɵcmp: i0.ɵɵComponentDeclaration<FormTextareaComponent, "form-textarea", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
1605
3079
  }
1606
3080
 
3081
+ declare class NumberInputComponent implements ControlValueAccessor, Validator, OnChanges {
3082
+ transloco: TranslocoService;
3083
+ private injector;
3084
+ private elementRef;
3085
+ label: string;
3086
+ name: string;
3087
+ id: string;
3088
+ placeholder: string;
3089
+ required: boolean;
3090
+ readonly: boolean;
3091
+ min: number | null;
3092
+ max: number | null;
3093
+ step: number;
3094
+ fieldGroupClass: string;
3095
+ value: number | null;
3096
+ disabled: boolean;
3097
+ onChange: any;
3098
+ onTouched: any;
3099
+ private _ngControl;
3100
+ constructor(transloco: TranslocoService, injector: Injector, elementRef: ElementRef);
3101
+ get ngControl(): NgControl | null;
3102
+ ngOnChanges(changes: SimpleChanges): void;
3103
+ validate(control: AbstractControl): ValidationErrors | null;
3104
+ writeValue(value: any): void;
3105
+ registerOnChange(fn: any): void;
3106
+ registerOnTouched(fn: any): void;
3107
+ setDisabledState(isDisabled: boolean): void;
3108
+ onInput(value: any): void;
3109
+ increment(): void;
3110
+ decrement(): void;
3111
+ get canIncrement(): boolean;
3112
+ get canDecrement(): boolean;
3113
+ get inputId(): string;
3114
+ get showError(): boolean;
3115
+ get errorMessage(): string;
3116
+ get fieldGroupClasses(): string;
3117
+ private clamp;
3118
+ private round;
3119
+ private emitNativeChange;
3120
+ private minValidator;
3121
+ private maxValidator;
3122
+ static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputComponent, never>;
3123
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumberInputComponent, "number-input", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
3124
+ }
3125
+
3126
+ declare class PhoneInputComponent implements ControlValueAccessor, Validator, OnChanges {
3127
+ private transloco;
3128
+ private injector;
3129
+ label: string;
3130
+ name: string;
3131
+ id: string;
3132
+ placeholder: string;
3133
+ required: boolean;
3134
+ readonly: boolean;
3135
+ maxNationalDigits: number | null;
3136
+ minNationalDigits: number | null;
3137
+ defaultCountry: string;
3138
+ fieldGroupClass: string;
3139
+ readonly countries: tickera_angular_components.PhoneCountry[];
3140
+ readonly phoneOptions: {
3141
+ search: string;
3142
+ name: string;
3143
+ isoCode: string;
3144
+ dialCode: string;
3145
+ }[];
3146
+ selectedIso: string;
3147
+ nationalNumber: string;
3148
+ disabled: boolean;
3149
+ onChange: any;
3150
+ onTouched: any;
3151
+ onValidatorChange: () => void;
3152
+ private _ngControl;
3153
+ constructor(transloco: TranslocoService, injector: Injector);
3154
+ get ngControl(): NgControl | null;
3155
+ get selectedCountry(): tickera_angular_components.PhoneCountry;
3156
+ get dialCode(): string;
3157
+ dialCodeOf(isoCode: string): string;
3158
+ get value(): string;
3159
+ ngOnChanges(changes: SimpleChanges): void;
3160
+ registerOnValidatorChange(fn: () => void): void;
3161
+ validate(control: AbstractControl): ValidationErrors | null;
3162
+ writeValue(value: string | null | undefined): void;
3163
+ registerOnChange(fn: any): void;
3164
+ registerOnTouched(fn: any): void;
3165
+ setDisabledState(isDisabled: boolean): void;
3166
+ onInput(event: Event): void;
3167
+ onCountryChange(isoCode: string): void;
3168
+ get inputId(): string;
3169
+ get showError(): boolean;
3170
+ get errorMessage(): string;
3171
+ get effectivePlaceholder(): string;
3172
+ get fieldGroupClasses(): string;
3173
+ flag(isoCode: string): string;
3174
+ private sanitize;
3175
+ private nationalDigits;
3176
+ static ɵfac: i0.ɵɵFactoryDeclaration<PhoneInputComponent, never>;
3177
+ static ɵcmp: i0.ɵɵComponentDeclaration<PhoneInputComponent, "phone-input", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxNationalDigits": { "alias": "maxNationalDigits"; "required": false; }; "minNationalDigits": { "alias": "minNationalDigits"; "required": false; }; "defaultCountry": { "alias": "defaultCountry"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
3178
+ }
3179
+
1607
3180
  declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {
1608
3181
  ngControl: NgControl;
1609
3182
  private transloco;
@@ -1621,7 +3194,8 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
1621
3194
  onChange: any;
1622
3195
  onTouched: any;
1623
3196
  private subscription;
1624
- constructor(ngControl: NgControl, transloco: TranslocoService);
3197
+ isBrowser: boolean;
3198
+ constructor(ngControl: NgControl, transloco: TranslocoService, platformId: object);
1625
3199
  ngOnInit(): void;
1626
3200
  ngOnDestroy(): void;
1627
3201
  writeValue(value: any): void;
@@ -1632,7 +3206,7 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
1632
3206
  get showError(): boolean;
1633
3207
  get errorMessage(): string;
1634
3208
  get fieldGroupClasses(): string;
1635
- static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null]>;
3209
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null, null]>;
1636
3210
  static ɵcmp: i0.ɵɵComponentDeclaration<FormEditorComponent, "form-editor", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "toolbar": { "alias": "toolbar"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
1637
3211
  }
1638
3212
 
@@ -2283,6 +3857,28 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
2283
3857
  static ɵcmp: i0.ɵɵComponentDeclaration<PriceZoneSelectComponent, "price-zone-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, { "priceZoneChange": "priceZoneChange"; }, never, never, true, never>;
2284
3858
  }
2285
3859
 
3860
+ declare class PerformanceTicketStatusBadgeComponent {
3861
+ ticket: PerformanceTicket;
3862
+ size: BadgeSize;
3863
+ protected get statusColors(): {
3864
+ text: string;
3865
+ bg: string;
3866
+ };
3867
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketStatusBadgeComponent, never>;
3868
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceTicketStatusBadgeComponent, "performance-ticket-status-badge", never, { "ticket": { "alias": "ticket"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
3869
+ }
3870
+
3871
+ declare class PerformanceStatusBadgeComponent {
3872
+ performance: Performance;
3873
+ size: BadgeSize;
3874
+ protected get statusColors(): {
3875
+ text: string;
3876
+ bg: string;
3877
+ };
3878
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceStatusBadgeComponent, never>;
3879
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceStatusBadgeComponent, "performance-status-badge", never, { "performance": { "alias": "performance"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
3880
+ }
3881
+
2286
3882
  declare class DaySelectorGridComponent {
2287
3883
  private platformId;
2288
3884
  protected performanceService: PerformanceService;
@@ -2304,11 +3900,15 @@ declare class DaySelectorGridComponent {
2304
3900
  declare class PerformanceCardComponent {
2305
3901
  protected listEventService: PerformancesListEventsService;
2306
3902
  card: DailyPerformanceItem;
3903
+ linkText: string;
3904
+ linkUrlFn?: (card: DailyPerformanceItem) => string;
3905
+ linkQueryParams?: Record<string, any>;
2307
3906
  constructor(listEventService: PerformancesListEventsService);
3907
+ get badgeColor(): 'success' | 'error';
2308
3908
  onSelect(): void;
2309
3909
  isSelected(): boolean;
2310
3910
  static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardComponent, never>;
2311
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardComponent, "performance-card", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
3911
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardComponent, "performance-card", never, { "card": { "alias": "card"; "required": true; }; "linkText": { "alias": "linkText"; "required": false; }; "linkUrlFn": { "alias": "linkUrlFn"; "required": false; }; "linkQueryParams": { "alias": "linkQueryParams"; "required": false; }; }, {}, never, never, true, never>;
2312
3912
  }
2313
3913
 
2314
3914
  declare class PerformanceCardListComponent {
@@ -2316,6 +3916,9 @@ declare class PerformanceCardListComponent {
2316
3916
  protected performanceService: PerformanceService;
2317
3917
  protected listEventService: PerformancesListEventsService;
2318
3918
  protected toastService: ToastService;
3919
+ linkText: string;
3920
+ linkUrlFn?: (card: DailyPerformanceItem) => string;
3921
+ linkQueryParams?: Record<string, any>;
2319
3922
  loadingData: WritableSignal<boolean>;
2320
3923
  performances: WritableSignal<DailyPerformanceItem[]>;
2321
3924
  constructor(platformId: object, performanceService: PerformanceService, listEventService: PerformancesListEventsService, toastService: ToastService);
@@ -2323,7 +3926,7 @@ declare class PerformanceCardListComponent {
2323
3926
  private loadData;
2324
3927
  get selectedDayDate(): string | null;
2325
3928
  static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardListComponent, never>;
2326
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, {}, {}, never, never, true, never>;
3929
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, { "linkText": { "alias": "linkText"; "required": false; }; "linkUrlFn": { "alias": "linkUrlFn"; "required": false; }; "linkQueryParams": { "alias": "linkQueryParams"; "required": false; }; }, {}, never, never, true, never>;
2327
3930
  }
2328
3931
 
2329
3932
  declare class PerformanceStepperComponent {
@@ -2352,9 +3955,9 @@ declare class ShowsFilterComponent {
2352
3955
  }
2353
3956
 
2354
3957
  interface PriceZoneItem {
2355
- colorClass: string;
3958
+ color: string;
2356
3959
  name: string;
2357
- seatsAvailable: number;
3960
+ available_seats: number;
2358
3961
  price: string;
2359
3962
  }
2360
3963
 
@@ -2370,5 +3973,425 @@ declare class ZonePriceListComponent {
2370
3973
  static ɵcmp: i0.ɵɵComponentDeclaration<ZonePriceListComponent, "zone-price-list", never, { "zones": { "alias": "zones"; "required": true; }; }, {}, never, never, true, never>;
2371
3974
  }
2372
3975
 
2373
- 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, CITY_API_ENDPOINTS, COUNTRY_API_ENDPOINTS, CUSTOMERS_API_ROUTES, ChangePasswordFormComponent, ChangePasswordFormService, CitiesService, CitySelectComponent, ColorPickerComponent, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, CustomerSelectComponent, CustomerService, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, GiftBondStatus, LanguageSwitcherComponent, LoadingModalService, LoadingmModalComponent, MinTodayValidator, MustMatchValidator, OrderItemType, OrderStatus, PERFORMANCES_API_ROUTES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStepperComponent, PerformanceTicketStatus, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TickeraTranslocoLoader, ToastService, ToggleSwitchComponent, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, formatCitiesResponseToSelect, getBrowserLanguage, getCustomerFullname, getStoredLanguage, parseJsonToFormDataAdvanced, provideTickeraComponents, resolveLanguage, setStoredLanguage, transformImageToFile };
2374
- export type { Admin, AdminsResponse, AsyncSelectConfig, Auditable, CitiesResponse, City, CityResponse, CorporateBond, CorporateBondCode, CorporateBondResponse, CountriesResponse, Country, CountryResponse, Coupon, CouponResponse, Customer, CustomerResponse, CustomersResponse, DailyPerformanceHall, DailyPerformanceItem, DailyPerformancePriceZone, DailyPerformanceShow, DailyPerformanceVenue, DailyPerformancesResponse, DeleteConfirmationOpen, DragDropEvent, DynamicTableHeader, ElementPropertiesTab, FetchCitiesParams, FetchDailyPerformancesParams, FetchShowsParams, FileUploadConfig, FindAllPriceZoneParams, GiftBond, GiftBondResponse, GiftBondsResponse, Hall, HallFloor, NumerationConfig, Order, OrderItem, OrderResponse, OrdersResponse, Performance, PerformanceAvailableDay, PerformanceBookingDataResponse, PerformanceResponse, PerformanceTicket, PerformancesAvailableDaysResponse, PerformancesResponseInterface, PriceZone, PriceZoneResponse, PriceZoneUpdateResponse, PriceZonesResponseInterface, Product, ProductResponse, ProductsResponseInterface, RoomMap, RoomMapBaseElement, RoomMapCanvasConfiguration, RoomMapCanvasElement, RoomMapChairPosition, RoomMapElementTemplate, RoomMapExitElement, RoomMapGridPosition, RoomMapPosition, RoomMapProductionAreaElement, RoomMapSeatDisplayState, RoomMapSeatElement, RoomMapSeatState, RoomMapSize, RoomMapStageElement, RoomMapTableElement, RoomMapUnavailableElement, RoomMapZoneElement, SelectOption, Show, ShowImage, ShowResponse, ShowType, ShowsResponseInterface, State, StateResponse, StatesResponse, TickeraComponentsConfig, UploadedFile, ValidateCorporateBondResponse, ValidateCouponResponse, ValidateGiftBondResponse, Venue, VenueImage };
3976
+ declare class TicketMapWidgetComponent {
3977
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetComponent, never>;
3978
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetComponent, "ticket-map-widget", never, {}, {}, never, ["*"], true, never>;
3979
+ }
3980
+
3981
+ declare class TicketMapWidgetHeaderComponent {
3982
+ title: string;
3983
+ subtitle: string;
3984
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetHeaderComponent, never>;
3985
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetHeaderComponent, "ticket-map-widget-header", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, ["*"], true, never>;
3986
+ }
3987
+
3988
+ declare class TicketMapZoomControlsComponent {
3989
+ private zoomService;
3990
+ readonly currentZoom: i0.Signal<number>;
3991
+ readonly zoomPercentage: i0.Signal<string>;
3992
+ constructor(zoomService: TicketMapZoomService);
3993
+ zoomIn(): void;
3994
+ zoomOut(): void;
3995
+ resetZoom(): void;
3996
+ fitToContainer(): void;
3997
+ handleZoomAction(action: string): void;
3998
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomControlsComponent, never>;
3999
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapZoomControlsComponent, "ticket-map-zoom-controls", never, {}, {}, never, never, true, never>;
4000
+ }
4001
+
4002
+ declare class TicketMapFloorSelectorComponent {
4003
+ private bookingDataService;
4004
+ readonly availableFloors: i0.Signal<tickera_angular_components.HallFloor[]>;
4005
+ readonly visibleFloorIds: i0.Signal<Set<number>>;
4006
+ readonly hasMultipleVisible: i0.Signal<boolean>;
4007
+ constructor(bookingDataService: PerformanceBookingDataService);
4008
+ isFloorVisible(floorId: number): boolean;
4009
+ canToggleOff(floorId: number): boolean;
4010
+ toggleFloor(floorId: number): void;
4011
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapFloorSelectorComponent, never>;
4012
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapFloorSelectorComponent, "ticket-map-floor-selector", never, {}, {}, never, never, true, never>;
4013
+ }
4014
+
4015
+ declare class PerformanceTicketMapComponent implements OnDestroy, AfterViewInit {
4016
+ private platformId;
4017
+ protected bookingDataService: PerformanceBookingDataService;
4018
+ protected feedbackModalService: FeedbackModalService;
4019
+ protected selectionService: TicketSelectionService;
4020
+ protected zoomService: TicketMapZoomService;
4021
+ selectionChange: EventEmitter<PerformanceTicket[]>;
4022
+ needsLoginError: EventEmitter<any>;
4023
+ readOnly: boolean;
4024
+ needsLogin: boolean;
4025
+ isLoggedIn: boolean;
4026
+ stageComponent?: StageComponent;
4027
+ protected tooltipData: i0.WritableSignal<TicketMapTooltipData | null>;
4028
+ protected renderData: i0.Signal<ElementRenderData[]>;
4029
+ private stageReady;
4030
+ private autoFitDone;
4031
+ private resizeObserver?;
4032
+ constructor(platformId: object, bookingDataService: PerformanceBookingDataService, feedbackModalService: FeedbackModalService, selectionService: TicketSelectionService, zoomService: TicketMapZoomService);
4033
+ protected get isBrowser(): boolean;
4034
+ ngAfterViewInit(): void;
4035
+ private setupResizeObserver;
4036
+ private syncStageToContainer;
4037
+ ngOnDestroy(): void;
4038
+ private getInternalPointer;
4039
+ protected selectHallFloor(floorId: number): void;
4040
+ protected handleStageClick(konvaEvent: any): void;
4041
+ protected handleStageMouseMove(konvaEvent: any): void;
4042
+ protected handleStageMouseLeave(): void;
4043
+ protected handleWheel(konvaEvent: any): void;
4044
+ protected trackByElementId(_index: number, item: ElementRenderData): number;
4045
+ protected trackByFloorId(_index: number, floor: HallFloorOption): HallFloorOption;
4046
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketMapComponent, never>;
4047
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceTicketMapComponent, "performance-ticket-map", never, { "readOnly": { "alias": "readOnly"; "required": false; }; "needsLogin": { "alias": "needsLogin"; "required": false; }; "isLoggedIn": { "alias": "isLoggedIn"; "required": false; }; }, { "selectionChange": "selectionChange"; "needsLoginError": "needsLoginError"; }, never, never, true, never>;
4048
+ }
4049
+
4050
+ declare class TicketMapPriceZonesComponent {
4051
+ title: string;
4052
+ protected bookingDataService: PerformanceBookingDataService;
4053
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapPriceZonesComponent, never>;
4054
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapPriceZonesComponent, "ticket-map-price-zones", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never>;
4055
+ }
4056
+
4057
+ declare class TicketMapProductSelectionItemComponent {
4058
+ protected selectionService: TicketSelectionService;
4059
+ product: Product;
4060
+ constructor(selectionService: TicketSelectionService);
4061
+ get quantity(): number;
4062
+ get firstImage(): string | undefined;
4063
+ increment(): void;
4064
+ decrement(): void;
4065
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapProductSelectionItemComponent, never>;
4066
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapProductSelectionItemComponent, "ticket-map-product-selection-item", never, { "product": { "alias": "product"; "required": true; }; }, {}, never, never, true, never>;
4067
+ }
4068
+
4069
+ declare class TIcketMapProductSelectionComponent {
4070
+ title: string;
4071
+ subtitle: string;
4072
+ private bookingDataService;
4073
+ readonly products: i0.Signal<tickera_angular_components.Product[]>;
4074
+ static ɵfac: i0.ɵɵFactoryDeclaration<TIcketMapProductSelectionComponent, never>;
4075
+ static ɵcmp: i0.ɵɵComponentDeclaration<TIcketMapProductSelectionComponent, "ticket-map-product-selection", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, never, true, never>;
4076
+ }
4077
+
4078
+ declare class TicketMapTotalsComponent {
4079
+ protected bookingDataService: PerformanceBookingDataService;
4080
+ protected selectionDetailsService: TicketSelectionDetailsService;
4081
+ protected selectionDiscountService: TicketSelectionDiscountService;
4082
+ protected selectionTotalsService: TicketSelectionTotalsService;
4083
+ protected selectionService: TicketSelectionService;
4084
+ private activatedRoute;
4085
+ title: string;
4086
+ buttonText: string;
4087
+ loadingButtonText: string;
4088
+ isLoading: boolean;
4089
+ onPurchaseClick: EventEmitter<void>;
4090
+ constructor(bookingDataService: PerformanceBookingDataService, selectionDetailsService: TicketSelectionDetailsService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, activatedRoute: ActivatedRoute);
4091
+ get serviceFee(): number;
4092
+ get performanceId(): number;
4093
+ get selectedTicketIds(): number[];
4094
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapTotalsComponent, never>;
4095
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapTotalsComponent, "ticket-map-totals", never, { "title": { "alias": "title"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "loadingButtonText": { "alias": "loadingButtonText"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, { "onPurchaseClick": "onPurchaseClick"; }, never, never, true, never>;
4096
+ }
4097
+
4098
+ declare class TicketMapWrapperComponent {
4099
+ selectionChange: EventEmitter<PerformanceTicket[]>;
4100
+ needsLoginError: EventEmitter<any>;
4101
+ readOnly: boolean;
4102
+ needsLogin: boolean;
4103
+ isLoggedIn: boolean;
4104
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWrapperComponent, never>;
4105
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWrapperComponent, "ticket-map-wrapper", never, { "readOnly": { "alias": "readOnly"; "required": false; }; "needsLogin": { "alias": "needsLogin"; "required": false; }; "isLoggedIn": { "alias": "isLoggedIn"; "required": false; }; }, { "selectionChange": "selectionChange"; "needsLoginError": "needsLoginError"; }, never, never, true, never>;
4106
+ }
4107
+
4108
+ declare class SeatSelectionEmptySummaryComponent {
4109
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionEmptySummaryComponent, never>;
4110
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionEmptySummaryComponent, "seat-selection-empty-summary", never, {}, {}, never, never, true, never>;
4111
+ }
4112
+
4113
+ declare class SeatSelectionSummaryComponent {
4114
+ protected selectionService: TicketSelectionService;
4115
+ title: string;
4116
+ clearButtonText: string;
4117
+ constructor(selectionService: TicketSelectionService);
4118
+ trackByItem(item: PerformanceTicket): string | number;
4119
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryComponent, never>;
4120
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryComponent, "seat-selection-summary", never, { "title": { "alias": "title"; "required": false; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; }; }, {}, never, never, true, never>;
4121
+ }
4122
+
4123
+ declare class SeatSelectionSummaryItemComponent {
4124
+ protected selectionService: TicketSelectionService;
4125
+ item: PerformanceTicket;
4126
+ constructor(selectionService: TicketSelectionService);
4127
+ getItemTypeIcon: (ticket: PerformanceTicket) => string;
4128
+ get isZone(): boolean;
4129
+ get zoneMax(): number;
4130
+ onZoneQuantityChange(value: number | null): void;
4131
+ removeItem(ticket: PerformanceTicket): void;
4132
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryItemComponent, never>;
4133
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryItemComponent, "seat-selection-summary-item", never, { "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
4134
+ }
4135
+
4136
+ declare class ConfirmationOrderModalComponent {
4137
+ private confirmationOrderModalService;
4138
+ private selectionDiscountService;
4139
+ private selectionTotalsService;
4140
+ private selectionService;
4141
+ private bookingDataService;
4142
+ modalTitle: string;
4143
+ confirmButtonText: string;
4144
+ confirmButtonTextLoading: string;
4145
+ loading: boolean;
4146
+ onConfirm: EventEmitter<any>;
4147
+ constructor(confirmationOrderModalService: ConfirmationOrderModalService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, bookingDataService: PerformanceBookingDataService);
4148
+ get isOpen(): i0.WritableSignal<boolean>;
4149
+ get selectedCount(): number;
4150
+ get serviceFee(): number;
4151
+ get subtotalValue(): number;
4152
+ get ticketSubtotal(): number;
4153
+ get productSubtotal(): number;
4154
+ get productCount(): number;
4155
+ get totalValue(): number;
4156
+ get totalDiscounted(): number | null;
4157
+ get coupon(): tickera_angular_components.Coupon | null;
4158
+ get corporateBond(): tickera_angular_components.CorporateBond | null;
4159
+ get giftBond(): tickera_angular_components.GiftBondPurchase | null;
4160
+ get vipCard(): tickera_angular_components.VipCard | null;
4161
+ /**
4162
+ * A diferencia de coupon/corporateBond/giftBond (que aquí muestran su
4163
+ * valor crudo sin pasar por `discountAmount()`), para VIP sí se calcula
4164
+ * el monto real en pesos, ya que el descuento es un porcentaje.
4165
+ */
4166
+ get vipDiscountAmount(): number;
4167
+ onClose(): void;
4168
+ confirmOrder(): void;
4169
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalComponent, never>;
4170
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationOrderModalComponent, "confirmation-order-modal", never, { "modalTitle": { "alias": "modalTitle"; "required": false; }; "confirmButtonText": { "alias": "confirmButtonText"; "required": false; }; "confirmButtonTextLoading": { "alias": "confirmButtonTextLoading"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "onConfirm": "onConfirm"; }, never, never, true, never>;
4171
+ }
4172
+
4173
+ declare class OrderInformationComponent {
4174
+ readonly transloco: TranslocoService;
4175
+ private readonly toastService;
4176
+ order: Order;
4177
+ showPayButton: boolean;
4178
+ createMpPreference?: (order: Order) => Observable<MercadoPagoPreference>;
4179
+ paymentLinkCreated: EventEmitter<MercadoPagoPreference>;
4180
+ isLoading: boolean;
4181
+ constructor(transloco: TranslocoService, toastService: ToastService);
4182
+ get showMpButton(): boolean;
4183
+ payWithMercadoPago(): void;
4184
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderInformationComponent, never>;
4185
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderInformationComponent, "order-information", never, { "order": { "alias": "order"; "required": true; }; "showPayButton": { "alias": "showPayButton"; "required": false; }; "createMpPreference": { "alias": "createMpPreference"; "required": false; }; }, { "paymentLinkCreated": "paymentLinkCreated"; }, never, never, true, never>;
4186
+ }
4187
+
4188
+ declare class OrderStatusBadgeComponent {
4189
+ protected transloco: TranslocoService;
4190
+ order: Order | RecentOrder;
4191
+ size: BadgeSize;
4192
+ constructor(transloco: TranslocoService);
4193
+ protected get statusColors(): {
4194
+ text: string;
4195
+ bg: string;
4196
+ };
4197
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderStatusBadgeComponent, never>;
4198
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderStatusBadgeComponent, "order-status-badge", never, { "order": { "alias": "order"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
4199
+ }
4200
+
4201
+ declare class OrderItemTypeBadgeComponent {
4202
+ protected transloco: TranslocoService;
4203
+ item: OrderItem;
4204
+ size: BadgeSize;
4205
+ constructor(transloco: TranslocoService);
4206
+ protected get statusColors(): {
4207
+ text: string;
4208
+ bg: string;
4209
+ };
4210
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemTypeBadgeComponent, never>;
4211
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemTypeBadgeComponent, "order-item-type-badge", never, { "item": { "alias": "item"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
4212
+ }
4213
+
4214
+ declare class OrderItemsComponent {
4215
+ private ticketQrModalService;
4216
+ order: Order;
4217
+ isCustomer: boolean;
4218
+ ticketCanOpenQr: (order: Order, ticket: tickera_angular_components.PerformanceTicket) => boolean;
4219
+ constructor(ticketQrModalService: TicketQrModalService);
4220
+ protected get orderItems(): Order['order_items'];
4221
+ protected get products(): Order['order_items'];
4222
+ protected get tickets(): Order['order_items'];
4223
+ protected get giftBonds(): Order['order_items'];
4224
+ protected get corporateBonds(): Order['order_items'];
4225
+ protected get vipRecharges(): Order['order_items'];
4226
+ protected get showActionColumn(): boolean;
4227
+ protected itemTotal(quantity: number, price: number): number;
4228
+ protected hasDiscount(): boolean;
4229
+ protected get totals(): {
4230
+ giftBonds: number;
4231
+ corporateBonds: number;
4232
+ products: number;
4233
+ tickets: number;
4234
+ vipRecharges: number;
4235
+ };
4236
+ openTicketQr(ticketUuid: string, description: string): void;
4237
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemsComponent, never>;
4238
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemsComponent, "order-items", never, { "order": { "alias": "order"; "required": true; }; "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
4239
+ }
4240
+
4241
+ declare class OrderDiscountAppliedComponent {
4242
+ order: Order;
4243
+ protected get discountInfo(): OrderDiscountInfo;
4244
+ protected get hasDiscount(): boolean;
4245
+ protected get discountPercentage(): number | null;
4246
+ protected get badgeColors(): {
4247
+ text: string;
4248
+ bg: string;
4249
+ };
4250
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderDiscountAppliedComponent, never>;
4251
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderDiscountAppliedComponent, "order-discount-applied", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4252
+ }
4253
+
4254
+ interface BillingField {
4255
+ label: string;
4256
+ value: string | number | null;
4257
+ }
4258
+ declare class OrderBillingInfoComponent {
4259
+ order: Order;
4260
+ protected get fields(): BillingField[];
4261
+ protected get hasFields(): boolean;
4262
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderBillingInfoComponent, never>;
4263
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderBillingInfoComponent, "order-billing-info", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4264
+ }
4265
+
4266
+ declare class OrderTransactionsComponent {
4267
+ private transactionDetailsModalService;
4268
+ order: Order;
4269
+ constructor(transactionDetailsModalService: OrderTransactionDetailsModalService);
4270
+ protected get transactions(): Transaction[];
4271
+ protected get hasTransactions(): boolean;
4272
+ protected get txColors(): Record<string, {
4273
+ text: string;
4274
+ bg: string;
4275
+ }>;
4276
+ protected openTransaction(transaction: Transaction): void;
4277
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionsComponent, never>;
4278
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionsComponent, "order-transactions", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4279
+ }
4280
+
4281
+ declare class OrderTransactionDetailsModalComponent {
4282
+ private modalService;
4283
+ isOpen: WritableSignal<boolean> | null;
4284
+ transaction: Transaction | null;
4285
+ get modalIsOpen(): WritableSignal<boolean>;
4286
+ get selectedTransaction(): WritableSignal<Transaction | null>;
4287
+ protected get txColors(): Record<TransactionStatus, {
4288
+ text: string;
4289
+ bg: string;
4290
+ }>;
4291
+ protected get gatewayResponse(): string;
4292
+ onClose(): void;
4293
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalComponent, never>;
4294
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionDetailsModalComponent, "order-transaction-details-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, true, never>;
4295
+ }
4296
+
4297
+ declare class TicketQrComponent implements OnInit, OnDestroy {
4298
+ private ticketQrService;
4299
+ private platformId;
4300
+ ticketUuid: string;
4301
+ isCustomer: boolean;
4302
+ qrCanvas: ElementRef<HTMLCanvasElement>;
4303
+ loading: i0.WritableSignal<boolean>;
4304
+ error: i0.WritableSignal<boolean>;
4305
+ refreshing: i0.WritableSignal<boolean>;
4306
+ countdown: i0.WritableSignal<number>;
4307
+ private destroy$;
4308
+ private refreshTimeout;
4309
+ private countdownInterval;
4310
+ private isFetching;
4311
+ constructor(ticketQrService: TicketQrService, platformId: Object);
4312
+ ngOnInit(): void;
4313
+ ngOnDestroy(): void;
4314
+ private onVisibilityChange;
4315
+ private onFocus;
4316
+ private refreshFromReenter;
4317
+ retry(): void;
4318
+ private clearTimers;
4319
+ private fetchAndRender;
4320
+ private scheduleRefresh;
4321
+ private startCountdown;
4322
+ private renderQr;
4323
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrComponent, never>;
4324
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrComponent, "performance-ticket-qr", never, { "ticketUuid": { "alias": "ticketUuid"; "required": true; }; "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
4325
+ }
4326
+
4327
+ declare class TicketQrModalComponent {
4328
+ private ticketQrModalService;
4329
+ isCustomer: boolean;
4330
+ constructor(ticketQrModalService: TicketQrModalService);
4331
+ get isOpen(): i0.WritableSignal<boolean>;
4332
+ get ticketUuid(): i0.WritableSignal<string | null>;
4333
+ get ticketDescription(): i0.WritableSignal<string | null>;
4334
+ onClose(): void;
4335
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalComponent, never>;
4336
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrModalComponent, "ticket-qr-modal", never, { "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
4337
+ }
4338
+
4339
+ declare class VipBalanceCardComponent {
4340
+ card: VipCard | null;
4341
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipBalanceCardComponent, never>;
4342
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipBalanceCardComponent, "vip-balance-card", never, { "card": { "alias": "card"; "required": false; }; }, {}, never, never, true, never>;
4343
+ }
4344
+
4345
+ declare class VipCardStatusBadgeComponent {
4346
+ protected readonly tranloco: TranslocoService;
4347
+ card: VipCard;
4348
+ get statusColor(): BadgeColor;
4349
+ get statusTranslationKey(): string;
4350
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipCardStatusBadgeComponent, never>;
4351
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipCardStatusBadgeComponent, "vip-card-status-badge", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
4352
+ }
4353
+
4354
+ declare class VipRechargeModalComponent implements OnChanges {
4355
+ private fb;
4356
+ protected transloco: TranslocoService;
4357
+ title: string;
4358
+ submitLabel: string;
4359
+ loading: boolean;
4360
+ amountStep: number;
4361
+ minAmount: number;
4362
+ maxAmount: number;
4363
+ isOpen: WritableSignal<boolean>;
4364
+ /**
4365
+ * Cuando es true (uso desde el ecommerce/cliente), el método de pago queda
4366
+ * fijo en Mercado Pago y no se muestra el selector: desde el lado del
4367
+ * cliente no se pueden elegir métodos de pago administrativos (efectivo,
4368
+ * datáfono, nómina, cambios internos, etc.), esos son exclusivos del
4369
+ * backoffice.
4370
+ */
4371
+ restrictToMercadoPago: boolean;
4372
+ closeModal: EventEmitter<void>;
4373
+ confirm: EventEmitter<VipRechargeConfirmPayload>;
4374
+ rechargeForm: FormGroup;
4375
+ paymentMethodOptions: {
4376
+ label: string;
4377
+ value: string;
4378
+ }[];
4379
+ constructor(fb: FormBuilder, transloco: TranslocoService);
4380
+ ngOnChanges(changes: SimpleChanges): void;
4381
+ private applyPaymentMethodRestriction;
4382
+ onClose(): void;
4383
+ onSubmit(): void;
4384
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipRechargeModalComponent, never>;
4385
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipRechargeModalComponent, "vip-recharge-modal", never, { "title": { "alias": "title"; "required": false; }; "submitLabel": { "alias": "submitLabel"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "amountStep": { "alias": "amountStep"; "required": false; }; "minAmount": { "alias": "minAmount"; "required": false; }; "maxAmount": { "alias": "maxAmount"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "restrictToMercadoPago": { "alias": "restrictToMercadoPago"; "required": false; }; }, { "closeModal": "closeModal"; "confirm": "confirm"; }, never, never, true, never>;
4386
+ }
4387
+
4388
+ declare class VipTransactionsTableComponent {
4389
+ transactions: VipTransaction[];
4390
+ loading: boolean;
4391
+ typeLabel(type: VipTransactionType): string;
4392
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipTransactionsTableComponent, never>;
4393
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipTransactionsTableComponent, "vip-transactions-table", never, { "transactions": { "alias": "transactions"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
4394
+ }
4395
+
4396
+ export { ADMIN_API_ROUTES, ADMISSION_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, AdmissionQueueService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, BrowserZoomLockService, 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, PurchaseLimitService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, SHOW_TYPE_COLORS, STATE_API_ENDPOINTS, SeatAvailabilitySseService, 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, drawHappyFace, drawRoundedRect, drawWheelchairIcon, emailValidator, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, ticketCanOpenQr, tintColor, transformImageToFile, transformUrlParams };
4397
+ export type { ActivateVipCardParams, Admin, AdminsResponse, AdmissionEventMessage, AdmissionJoinResponse, AdmissionStatus, AsyncSelectConfig, Auditable, BadgeColor, BadgeSize, BreadcrumbStep, BreadcrumbTheme, CitiesResponse, City, CityResponse, CommonFetchAllParams, CorporateBond, CorporateBondCode, CorporateBondResponse, CountriesResponse, Country, CountryResponse, Coupon, CouponResponse, Customer, CustomerResponse, CustomersResponse, DailyPerformanceHall, DailyPerformanceItem, DailyPerformancePriceZone, DailyPerformanceShow, DailyPerformanceVenue, DailyPerformancesResponse, DeleteConfirmationOpen, DragDropEvent, DynamicTableHeader, ElementPropertiesTab, ElementRenderData, FeedbackModalElement, FeedbackModalType, FetchAdminsParams, FetchCitiesParams, FetchCountriesParams, FetchCustomersParams, FetchDailyPerformancesParams, FetchProductCategoriesParams, FetchProductTagsParams, FetchProductTypesParams, FetchProductsParams, FetchShowCategoriesParams, FetchShowGendersParams, FetchShowsParams, FetchStatesParams, FetchVipCardsParams, FileUploadConfig, FindAllPerformancesParams, FindAllPriceZoneParams, GiftBond, GiftBondImage, GiftBondPurchase, GiftBondPurchaseResponse, GiftBondPurchasesResponse, GiftBondResponse, GiftBondsResponse, Hall, HallFloor, HallFloorOption, KonvaShapeConfig, Membership, MercadoPagoPreference, ModalSize, NumerationConfig, Order, OrderBillingInfo, OrderDiscountInfo, OrderDiscountType, OrderItem, OrderPerformanceSnapshot, OrderResponse, OrderShowSnapshot, OrdersResponse, Performance, PerformanceAvailableDay, PerformanceBookingDataResponse, PerformanceResponse, PerformanceTicket, PerformancesAvailableDaysResponse, PerformancesResponseInterface, PhoneCountry, PriceZone, PriceZoneResponse, PriceZoneUpdateResponse, PriceZonesResponseInterface, Product, ProductCategoriesResponse, ProductCategory, ProductCategoryResponse, ProductImage, ProductResponse, ProductTag, ProductTagResponse, ProductTagsResponse, ProductTaxonomy, ProductType, ProductTypeResponse, ProductTypesResponse, ProductsResponseInterface, QrTokenData, QrTokenResponse, RecentOrder, RecentRoomMap, ReservePerformanceDto, RoomMap, RoomMapBaseElement, RoomMapCanvasConfiguration, RoomMapCanvasElement, RoomMapChairPosition, RoomMapElementTemplate, RoomMapExitElement, RoomMapGridPosition, RoomMapPosition, RoomMapProductionAreaElement, RoomMapSeatDisplayState, RoomMapSeatElement, RoomMapSeatState, RoomMapSize, RoomMapStageElement, RoomMapTableElement, RoomMapUnavailableElement, RoomMapZoneElement, SeatEventMessage, SeatStatusUpdate, SelectOption, SelectedDiscountCard, Show, ShowCategoriesResponse, ShowCategory, ShowCategoryResponse, ShowGender, ShowGenderResponse, ShowGendersResponse, ShowImage, ShowResponse, ShowsResponseInterface, State, StateResponse, StatesResponse, TextFontSize, TickeraComponentsConfig, TicketMapSeatPosition, TicketMapTableChairPosition, TicketMapTooltipData, TicketMapZoneQuantityState, TicketMapZoomConfig, Transaction, UploadedFile, ValidateCorporateBondResponse, ValidateCouponResponse, ValidateGiftBondResponse, Venue, VenueImage, VipCard, VipCardResponse, VipCardsResponse, VipCategorySnapshot, VipOrderResponse, VipRechargeConfirmPayload, VipTransaction, VipTransactionsResponse };