tickera-angular-components 0.0.1-dev.17 → 0.0.1-dev.170

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,43 @@ 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
+ };
102
+
103
+ declare const PRICE_ZONES_API_ROUTES: {
104
+ FIND_ALL: string;
105
+ CREATE: string;
106
+ findOneById: (id: number) => string;
107
+ update: (id: number) => string;
108
+ delete: (id: number) => string;
109
+ updateElements: (id: number) => string;
110
+ duplicate: (id: number) => string;
111
+ };
112
+
113
+ declare const PRODUCT_CATEGORIES_API_ROUTES: {
114
+ FIND_ALL: string;
115
+ CREATE: string;
116
+ findById: (id: number) => string;
117
+ update: (id: number) => string;
118
+ delete: (id: number) => string;
119
+ };
120
+
121
+ declare const PRODUCT_TAGS_API_ROUTES: {
122
+ FIND_ALL: string;
123
+ CREATE: string;
124
+ findById: (id: number) => string;
125
+ update: (id: number) => string;
126
+ delete: (id: number) => string;
127
+ };
128
+
129
+ declare const PRODUCT_TYPES_API_ROUTES: {
130
+ FIND_ALL: string;
131
+ CREATE: string;
132
+ findById: (id: number) => string;
133
+ update: (id: number) => string;
134
+ delete: (id: number) => string;
91
135
  };
92
136
 
93
137
  declare const PRODUCTS_API_ROUTES: {
@@ -96,6 +140,9 @@ declare const PRODUCTS_API_ROUTES: {
96
140
  findOneById: (id: number) => string;
97
141
  update: (id: number) => string;
98
142
  delete: (id: number) => string;
143
+ fetchImages: (id: number) => string;
144
+ uploadImages: (id: number) => string;
145
+ deleteOneImage: (productId: number, imageId: number) => string;
99
146
  };
100
147
 
101
148
  declare const SHOWS_API_ROUTES: {
@@ -110,22 +157,12 @@ declare const SHOWS_API_ROUTES: {
110
157
  publicAvailablePerformances: string;
111
158
  };
112
159
 
113
- declare const CUSTOMERS_API_ROUTES: {
160
+ declare const STATE_API_ENDPOINTS: {
114
161
  findAll: string;
115
162
  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;
163
+ findById: (id: number) => string;
125
164
  update: (id: number) => string;
126
165
  delete: (id: number) => string;
127
- updateElements: (id: number) => string;
128
- duplicate: (id: number) => string;
129
166
  };
130
167
 
131
168
  declare const VENUES_API_ROUTES: {
@@ -139,169 +176,36 @@ declare const VENUES_API_ROUTES: {
139
176
  deleteOneImage: (venueId: number, imageId: number) => string;
140
177
  };
141
178
 
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
- }
179
+ declare const VIP_CARDS_API_ROUTES: {
180
+ findAll: string;
181
+ findOne: (id: number) => string;
182
+ activateAdmin: string;
183
+ rechargeAdmin: (id: number) => string;
184
+ updateStatus: (id: number) => string;
185
+ updateTerms: (id: number) => string;
186
+ transactions: (id: number) => string;
187
+ findMy: string;
188
+ activate: string;
189
+ recharge: string;
190
+ };
274
191
 
275
- interface RoomMapStageElement extends RoomMapBaseElement {
276
- type: RoomMapElementType.STAGE;
277
- stageName?: string;
278
- orientation: RoomMapElementOrientation;
279
- isMainStage: boolean;
280
- }
192
+ declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
193
+ declare const BASE_BUTTON_CLASSES = "btn";
194
+ declare const BUTTON_SIZES_CLASSES: Record<string, string>;
281
195
 
282
- interface RoomMapTableElement extends RoomMapBaseElement {
283
- type: RoomMapElementType.TABLE;
284
- tableNumber?: string;
285
- capacity: number;
286
- shape: 'round' | 'rectangular' | 'square';
287
- }
196
+ declare const FORM_ERROR_MESSAGES: Record<string, string>;
288
197
 
289
- interface RoomMapUnavailableElement extends RoomMapBaseElement {
290
- type: RoomMapElementType.UNAVAILABLE_SPACE;
291
- reason?: string;
292
- }
198
+ declare const BASE_INPUT_CLASSES: string;
199
+ declare const ERROR_INPUT_CLASSES: string;
293
200
 
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;
201
+ interface PhoneCountry {
202
+ name: string;
203
+ isoCode: string;
204
+ dialCode: string;
300
205
  }
301
206
 
302
- type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
303
-
304
- type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
207
+ declare function phoneCountryFlag(isoCode: string): string;
208
+ declare const PHONE_COUNTRIES: PhoneCountry[];
305
209
 
306
210
  interface SelectOption {
307
211
  value: any;
@@ -309,7 +213,7 @@ interface SelectOption {
309
213
  disabled?: boolean;
310
214
  }
311
215
 
312
- interface Admin {
216
+ interface Admin extends Auditable {
313
217
  id: number;
314
218
  username: string;
315
219
  email: string;
@@ -325,16 +229,17 @@ interface Admin {
325
229
  reset_password_expires: Date;
326
230
  email_verified_at: Date;
327
231
  last_login: Date;
328
- created_at: Date;
329
- updated_at: Date;
330
- deleted_at: Date;
331
232
  }
332
233
 
333
234
  interface Auditable {
334
235
  created_at: Date;
335
236
  updated_at: Date;
237
+ deleted_at?: Date | null;
336
238
  is_published?: boolean;
337
239
  published_at?: Date;
240
+ published_by?: number;
241
+ deleted_by?: number;
242
+ deleted_by_admin?: Admin;
338
243
  created_by_admin?: Admin;
339
244
  updated_by_admin?: Admin;
340
245
  published_by_admin?: Admin;
@@ -367,30 +272,21 @@ interface DeleteConfirmationOpen {
367
272
  confirmationText: string;
368
273
  }
369
274
 
370
- interface AdminsResponse {
371
- statusCode: number;
372
- data: {
373
- admins: Admin[];
374
- total: number;
375
- };
376
- message: string;
377
- }
378
-
379
275
  interface Country {
380
- id: string;
276
+ id: number;
381
277
  name: string;
382
278
  iso2: string;
383
279
  }
384
280
 
385
281
  interface State {
386
- id: string;
282
+ id: number;
387
283
  name: string;
388
284
  country_id: number;
389
285
  country?: Country;
390
286
  }
391
287
 
392
288
  interface City {
393
- id: string;
289
+ id: number;
394
290
  name: string;
395
291
  search_text: string | null;
396
292
  state_id: number;
@@ -429,37 +325,43 @@ interface Venue extends Auditable {
429
325
  images: VenueImage[];
430
326
  }
431
327
 
432
- interface HallFloor {
328
+ interface HallFloor extends Auditable {
433
329
  id: number;
434
330
  name: string;
435
331
  level: number;
436
332
  max_capacity: number;
437
333
  description: string;
438
334
  hall_id: number;
439
- created_at: Date;
440
- updated_at: Date;
441
- deleted_at: Date | null;
442
335
  }
443
336
 
444
- interface Hall {
337
+ interface Hall extends Auditable {
445
338
  id: number;
446
339
  name: string;
447
340
  venue_id: number;
448
341
  venue?: Venue;
449
342
  hall_floors?: HallFloor[];
450
- created_at: Date;
451
- updated_at: Date;
452
- deleted_at: Date | null;
453
343
  }
454
344
 
455
- interface CountryResponse {
456
- data: Country;
457
- message: string;
458
- status: string;
345
+ interface BreadcrumbStep {
346
+ label: string;
347
+ href?: string;
348
+ icon?: string;
459
349
  }
460
350
 
461
- interface CountriesResponse {
462
- data: {
351
+ interface CommonFetchAllParams {
352
+ id?: number;
353
+ page?: number;
354
+ limit?: number;
355
+ search?: string;
356
+ sort_by?: string;
357
+ sort_order?: 'ASC' | 'DESC';
358
+ is_published?: boolean;
359
+ ids_in?: number[];
360
+ ids_not_in?: number[];
361
+ }
362
+
363
+ interface CountriesResponse {
364
+ data: {
463
365
  countries: Country[];
464
366
  total: number;
465
367
  };
@@ -467,6 +369,21 @@ interface CountriesResponse {
467
369
  status: string;
468
370
  }
469
371
 
372
+ interface CountryResponse {
373
+ data: Country;
374
+ message: string;
375
+ status: string;
376
+ }
377
+
378
+ interface FetchCountriesParams extends CommonFetchAllParams {
379
+ sort_by?: 'country.id' | 'country.name' | 'country.iso2' | 'country.created_at' | 'country.updated_at';
380
+ }
381
+
382
+ interface FetchStatesParams extends CommonFetchAllParams {
383
+ country_id?: number;
384
+ sort_by?: 'state.id' | 'state.name' | 'state.country_id' | 'state.search_text' | 'state.created_at' | 'state.updated_at';
385
+ }
386
+
470
387
  interface StateResponse {
471
388
  data: State;
472
389
  message: string;
@@ -482,28 +399,40 @@ interface StatesResponse {
482
399
  statusCode: number;
483
400
  }
484
401
 
402
+ interface CitiesResponse {
403
+ data: {
404
+ cities: City[];
405
+ total: number;
406
+ };
407
+ message: string;
408
+ status: string;
409
+ }
410
+
485
411
  interface CityResponse {
486
412
  data: City;
487
413
  message: string;
488
414
  status: string;
489
415
  }
490
416
 
491
- interface CitiesResponse {
417
+ interface FetchCitiesParams extends CommonFetchAllParams {
418
+ state_id?: number;
419
+ sort_by?: 'city.id' | 'city.name' | 'city.state_id' | 'city.search_text' | 'city.created_at' | 'city.updated_at';
420
+ }
421
+
422
+ interface AdminsResponse {
423
+ statusCode: number;
492
424
  data: {
493
- cities: City[];
425
+ admins: Admin[];
494
426
  total: number;
495
427
  };
496
428
  message: string;
497
- status: string;
498
429
  }
499
430
 
500
- interface FetchCitiesParams {
501
- stateId?: number;
502
- page?: number;
503
- search?: string;
431
+ interface FetchAdminsParams extends CommonFetchAllParams {
432
+ 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
433
  }
505
434
 
506
- interface Customer {
435
+ interface Customer extends Auditable {
507
436
  username: string;
508
437
  email: string;
509
438
  mobile: string;
@@ -534,9 +463,6 @@ interface Customer {
534
463
  membership_expires_at: Date | null;
535
464
  id: number;
536
465
  is_active: boolean;
537
- created_at: Date;
538
- updated_at: Date;
539
- deleted_at: Date | null;
540
466
  }
541
467
 
542
468
  interface CustomerResponse {
@@ -554,76 +480,363 @@ interface CustomersResponse {
554
480
  message: string;
555
481
  }
556
482
 
557
- type ShowType = 'play' | 'musical' | 'concert' | 'dance' | 'opera' | 'comedy' | 'other';
483
+ interface FetchCustomersParams extends CommonFetchAllParams {
484
+ first_name?: string;
485
+ last_name?: string;
486
+ email?: string;
487
+ username?: string;
488
+ mobile?: string;
489
+ document_type?: Customer['document_type'];
490
+ document_number?: string;
491
+ address?: string;
492
+ 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';
493
+ }
558
494
 
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;
495
+ declare enum OrderItemType {
496
+ TICKET = "TICKET",
497
+ PRODUCT = "PRODUCT",
498
+ GIFT_BOND = "GIFT_BOND",
499
+ CORPORATE_BOND = "CORPORATE_BOND",
500
+ VIP_RECHARGE = "VIP_RECHARGE"
501
+ }
502
+
503
+ declare enum OrderStatus {
504
+ ON_HOLD = "on-hold",
505
+ PENDING_PAYMENT = "pending-payment",
506
+ PROCESSING = "processing",
507
+ COMPLETED = "completed",
508
+ FAILED = "failed",
509
+ CANCELLED = "cancelled",
510
+ REFUNDED = "refunded"
511
+ }
512
+
513
+ declare enum CreatorType {
514
+ ADMIN = "admin",
515
+ CUSTOMER = "customer"
516
+ }
517
+
518
+ declare enum PaymentMethod {
519
+ PAYROLL = "payroll",
520
+ CASH = "cash",
521
+ DATAFONO = "datafono",
522
+ INTERNAL_EXCHANGE = "internal_exchange",
523
+ CLIENT_EXCHANGE = "client_exchange",
524
+ MERCADO_PAGO = "mercado_pago"
525
+ }
526
+
527
+ declare enum RoomMapElementType {
528
+ SEAT_BLOCK = "seat_block",
529
+ TABLE = "table",
530
+ ZONE = "zone",
531
+ EXIT = "exit",
532
+ STAGE = "stage",
533
+ PRODUCTION_AREA = "production_area",
534
+ UNAVAILABLE_SPACE = "unavailable_space",
535
+ STAIR = "stair",
536
+ HALLWAY = "hallway"
537
+ }
538
+
539
+ interface RoomMapPosition {
540
+ x: number;
541
+ y: number;
542
+ }
543
+
544
+ interface RoomMapSize {
567
545
  width: number;
568
546
  height: number;
569
- show_id: number;
570
- created_at: Date;
571
547
  }
572
548
 
573
- interface Show extends Auditable {
574
- id: number;
549
+ interface RoomMapBaseElement {
550
+ id: string;
551
+ type: RoomMapElementType;
552
+ position: RoomMapPosition;
553
+ size: RoomMapSize;
554
+ rotation: number;
555
+ name?: string;
556
+ isLocked: boolean;
557
+ isVisible: boolean;
558
+ zIndex: number;
559
+ }
560
+
561
+ interface RoomMapExitElement extends RoomMapBaseElement {
562
+ type: RoomMapElementType.EXIT;
563
+ exitName?: string;
564
+ exitType: 'emergency' | 'regular';
565
+ width: number;
566
+ }
567
+
568
+ interface RoomMapProductionAreaElement extends RoomMapBaseElement {
569
+ type: RoomMapElementType.PRODUCTION_AREA;
570
+ areaName?: string;
571
+ areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
572
+ }
573
+
574
+ interface RoomMapSeatElement extends RoomMapBaseElement {
575
+ type: RoomMapElementType.SEAT_BLOCK;
576
+ seatNumber?: string;
577
+ isAvailable: boolean;
578
+ priceCategory?: string;
579
+ }
580
+
581
+ declare enum RoomMapElementOrientation {
582
+ TOP = "top",
583
+ RIGHT = "right",
584
+ BOTTOM = "bottom",
585
+ LEFT = "left",
586
+ CENTER = "center"
587
+ }
588
+
589
+ interface RoomMapStageElement extends RoomMapBaseElement {
590
+ type: RoomMapElementType.STAGE;
591
+ stageName?: string;
592
+ orientation: RoomMapElementOrientation;
593
+ isMainStage: boolean;
594
+ }
595
+
596
+ interface RoomMapTableElement extends RoomMapBaseElement {
597
+ type: RoomMapElementType.TABLE;
598
+ tableNumber?: string;
599
+ capacity: number;
600
+ shape: 'round' | 'rectangular' | 'square';
601
+ }
602
+
603
+ interface RoomMapUnavailableElement extends RoomMapBaseElement {
604
+ type: RoomMapElementType.UNAVAILABLE_SPACE;
605
+ reason?: string;
606
+ }
607
+
608
+ interface RoomMapZoneElement extends RoomMapBaseElement {
609
+ type: RoomMapElementType.ZONE;
610
+ zoneName: string;
611
+ zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
612
+ color: string;
613
+ capacity?: number;
614
+ }
615
+
616
+ type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
617
+
618
+ type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
619
+
620
+ declare enum ShowType {
621
+ PLAY = "PLAY",
622
+ CONCERT = "CONCERT",
623
+ STAND_UP_COMEDY = "STAND_UP_COMEDY",
624
+ OPERA = "OPERA",
625
+ MUSICAL = "MUSICAL",
626
+ DANCE = "DANCE",
627
+ SPORT = "SPORT",
628
+ OTHER = "OTHER",
629
+ DEFAULT = "DEFAULT"
630
+ }
631
+
632
+ type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
633
+
634
+ type FeedbackModalType = 'loading' | 'success' | 'info' | 'warning' | 'error';
635
+
636
+ type BadgeSize = 'xs' | 'sm' | 'md' | 'lg';
637
+
638
+ type BadgeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
639
+
640
+ type BreadcrumbTheme = 'light' | 'dark';
641
+
642
+ type TextFontSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';
643
+
644
+ interface FeedbackModalElement {
645
+ id: string;
646
+ type: FeedbackModalType;
575
647
  title: string;
648
+ isOpen: WritableSignal<boolean>;
649
+ message?: string;
650
+ showHeader?: boolean;
651
+ showCloseButton?: boolean;
652
+ showTitle?: boolean;
653
+ closeModal?: void;
654
+ }
655
+
656
+ declare enum FileType {
657
+ IMAGE = "image",
658
+ PDF = "pdf",
659
+ EXCEL = "excel",
660
+ WORD = "word",
661
+ TEXT = "text",
662
+ DEFAULT = "default"
663
+ }
664
+
665
+ declare enum CouponApplicability {
666
+ GENERAL = "GENERAL",
667
+ CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
668
+ MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
669
+ SHOWS = "SHOWS",
670
+ PERFORMANCES = "PERFORMANCES"
671
+ }
672
+
673
+ declare enum CouponDiscountType {
674
+ PERCENTAGE = "PERCENTAGE",
675
+ FIXED = "FIXED"
676
+ }
677
+
678
+ declare enum CouponStatus {
679
+ ACTIVE = "ACTIVE",
680
+ INACTIVE = "INACTIVE",
681
+ EXPIRED = "EXPIRED",
682
+ CONSUMED = "CONSUMED"
683
+ }
684
+
685
+ declare enum CorporateBondStatus {
686
+ ACTIVE = "ACTIVE",
687
+ INACTIVE = "INACTIVE",
688
+ PENDING = "PENDING",
689
+ PAYMENT_FAILED = "PAYMENT_FAILED",
690
+ EXPIRED = "EXPIRED",
691
+ CONSUMED = "CONSUMED"
692
+ }
693
+
694
+ declare enum PerformanceStatus {
695
+ SCHEDULED = "scheduled",
696
+ OPEN = "open",
697
+ CLOSED = "closed",
698
+ CANCELLED = "cancelled",
699
+ COMPLETED = "completed",
700
+ POSTPONED = "postponed"
701
+ }
702
+
703
+ declare enum PerformanceTicketStatus {
704
+ AVAILABLE = "available",
705
+ RESERVED = "reserved",
706
+ SOLD = "sold",
707
+ BLOCKED = "blocked"
708
+ }
709
+
710
+ declare enum GiftBondStatus {
711
+ ACTIVE = "ACTIVE",
712
+ INACTIVE = "INACTIVE"
713
+ }
714
+
715
+ declare enum GiftBondPurchaseStatus {
716
+ AVAILABLE = "AVAILABLE",
717
+ REDEEMED = "REDEEMED",
718
+ EXPIRED = "EXPIRED",
719
+ CANCELLED = "CANCELLED"
720
+ }
721
+
722
+ declare enum TransactionStatus {
723
+ PENDING = "PENDING",
724
+ APPROVED = "APPROVED",
725
+ REJECTED = "REJECTED",
726
+ ERROR = "ERROR"
727
+ }
728
+
729
+ declare enum VipCardStatus {
730
+ ACTIVE = "ACTIVE",
731
+ INACTIVE = "INACTIVE",
732
+ EXPIRED = "EXPIRED"
733
+ }
734
+
735
+ declare enum VipTransactionType {
736
+ INITIAL_RECHARGE = "INITIAL_RECHARGE",
737
+ RECHARGE = "RECHARGE",
738
+ PURCHASE_PAYMENT = "PURCHASE_PAYMENT"
739
+ }
740
+
741
+ declare enum MembershipStatus {
742
+ ACTIVE = "ACTIVE",
743
+ INACTIVE = "INACTIVE"
744
+ }
745
+
746
+ interface FetchProductCategoriesParams extends CommonFetchAllParams {
747
+ name?: string;
748
+ slug?: string;
749
+ sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
750
+ }
751
+
752
+ interface ProductCategory extends Auditable {
753
+ id: number;
754
+ name: string;
576
755
  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
756
  }
592
757
 
593
- interface ShowResponse {
758
+ interface ProductCategoriesResponse {
594
759
  statusCode: number;
595
- data: Show;
760
+ data: {
761
+ categories: ProductCategory[];
762
+ total: number;
763
+ };
596
764
  message: string;
597
765
  }
598
766
 
599
- interface ShowsResponseInterface {
767
+ interface ProductCategoryResponse {
768
+ statusCode: number;
769
+ data: ProductCategory;
770
+ message: string;
771
+ }
772
+
773
+ interface FetchProductTagsParams extends CommonFetchAllParams {
774
+ name?: string;
775
+ slug?: string;
776
+ sort_by?: 'tag.id' | 'tag.name' | 'tag.slug' | 'tag.created_at';
777
+ }
778
+
779
+ interface ProductTag extends Auditable {
780
+ id: number;
781
+ name: string;
782
+ slug: string;
783
+ }
784
+
785
+ interface ProductTagResponse {
786
+ statusCode: number;
787
+ data: ProductTag;
788
+ message: string;
789
+ }
790
+
791
+ interface ProductTagsResponse {
600
792
  statusCode: number;
601
793
  data: {
602
- shows: Show[];
794
+ tags: ProductTag[];
603
795
  total: number;
604
796
  };
605
797
  message: string;
606
798
  }
607
799
 
608
- interface FetchShowsParams {
609
- page?: number;
610
- limit?: number;
611
- search?: string;
612
- date?: string;
800
+ interface FetchProductTypesParams extends CommonFetchAllParams {
801
+ name?: string;
802
+ slug?: string;
803
+ sort_by?: 'type.id' | 'type.name' | 'type.slug' | 'type.created_at';
613
804
  }
614
805
 
615
- interface PriceZone {
806
+ interface ProductType extends Auditable {
616
807
  id: number;
617
808
  name: string;
618
- color: string;
619
- normal_price: number | null;
620
- is_active: boolean;
621
- elements: any[];
622
- room_map_id: number | null;
809
+ slug: string;
810
+ }
811
+
812
+ interface ProductTypeResponse {
813
+ statusCode: number;
814
+ data: ProductType;
815
+ message: string;
816
+ }
817
+
818
+ interface ProductTypesResponse {
819
+ statusCode: number;
820
+ data: {
821
+ types: ProductType[];
822
+ total: number;
823
+ };
824
+ message: string;
825
+ }
826
+
827
+ interface ProductImage {
828
+ id: number;
829
+ path: string;
830
+ full_url: string;
831
+ original_name: string;
832
+ extension: string;
833
+ size: number;
834
+ mime_type: string;
835
+ width: number;
836
+ height: number;
837
+ product_id: number;
838
+ product: Product;
623
839
  created_at: Date;
624
- updated_at: Date;
625
- created_by: number;
626
- updated_by: number;
627
840
  }
628
841
 
629
842
  interface Product extends Auditable {
@@ -636,12 +849,35 @@ interface Product extends Auditable {
636
849
  slug: string;
637
850
  sku?: string;
638
851
  is_limited_edition: boolean;
639
- is_active: boolean;
640
852
  deleted_at: Date | null;
641
- categories?: any[];
642
- tags?: any[];
643
- types?: any[];
644
- images?: any[];
853
+ categories?: ProductCategory[];
854
+ tags?: ProductTag[];
855
+ types?: ProductType[];
856
+ images?: ProductImage[];
857
+ }
858
+
859
+ interface ShowImage {
860
+ id: number;
861
+ path: string;
862
+ full_url: string;
863
+ original_name: string;
864
+ extension: string;
865
+ size: number;
866
+ mime_type: string;
867
+ width: number;
868
+ height: number;
869
+ show_id: number;
870
+ created_at: Date;
871
+ }
872
+
873
+ interface PriceZone extends Auditable {
874
+ id: number;
875
+ name: string;
876
+ color: string;
877
+ normal_price: number | null;
878
+ is_active: boolean;
879
+ elements: any[];
880
+ room_map_id: number | null;
645
881
  }
646
882
 
647
883
  interface NumerationConfig {
@@ -679,7 +915,7 @@ interface RoomMapElementTemplate {
679
915
  price_zone?: PriceZone;
680
916
  }
681
917
 
682
- interface RoomMap {
918
+ interface RoomMap extends Auditable {
683
919
  id: number;
684
920
  name: string;
685
921
  canvas_settings: {
@@ -695,8 +931,6 @@ interface RoomMap {
695
931
  related_product_ids: number[];
696
932
  products?: Product[];
697
933
  venue_name?: string;
698
- created_at: Date;
699
- updated_at: Date;
700
934
  }
701
935
 
702
936
  interface RoomMapCanvasConfiguration {
@@ -738,7 +972,7 @@ interface ElementPropertiesTab {
738
972
  elements_access: string[];
739
973
  }
740
974
 
741
- interface Performance {
975
+ interface Performance extends Auditable {
742
976
  id: number;
743
977
  start_time: Date | string;
744
978
  end_time: Date | string;
@@ -748,8 +982,112 @@ interface Performance {
748
982
  show?: Show;
749
983
  room_map: RoomMap;
750
984
  room_map_id: number;
751
- created_at: Date;
752
- updated_at: Date;
985
+ performance_tickets?: PerformanceTicket[];
986
+ can_delete?: boolean;
987
+ can_cancel?: boolean;
988
+ can_modify?: boolean;
989
+ can_reserve?: boolean;
990
+ }
991
+
992
+ interface FetchShowCategoriesParams extends CommonFetchAllParams {
993
+ name?: string;
994
+ slug?: string;
995
+ sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
996
+ }
997
+
998
+ interface ShowCategory extends Auditable {
999
+ id: number;
1000
+ name: string;
1001
+ slug: string;
1002
+ }
1003
+
1004
+ interface ShowCategoriesResponse {
1005
+ statusCode: number;
1006
+ data: {
1007
+ categories: ShowCategory[];
1008
+ total: number;
1009
+ };
1010
+ message: string;
1011
+ }
1012
+
1013
+ interface ShowCategoryResponse {
1014
+ statusCode: number;
1015
+ data: ShowCategory;
1016
+ message: string;
1017
+ }
1018
+
1019
+ interface FetchShowGendersParams extends CommonFetchAllParams {
1020
+ name?: string;
1021
+ slug?: string;
1022
+ sort_by?: 'gender.id' | 'gender.name' | 'gender.slug' | 'gender.created_at';
1023
+ }
1024
+
1025
+ interface ShowGender extends Auditable {
1026
+ id: number;
1027
+ name: string;
1028
+ slug: string;
1029
+ }
1030
+
1031
+ interface ShowGenderResponse {
1032
+ statusCode: number;
1033
+ data: ShowGender;
1034
+ message: string;
1035
+ }
1036
+
1037
+ interface ShowGendersResponse {
1038
+ statusCode: number;
1039
+ data: {
1040
+ genders: ShowGender[];
1041
+ total: number;
1042
+ };
1043
+ message: string;
1044
+ }
1045
+
1046
+ interface Show extends Auditable {
1047
+ id: number;
1048
+ title: string;
1049
+ slug: string;
1050
+ description: string;
1051
+ duration_minutes: number | null;
1052
+ type_of_costs: string | null;
1053
+ service_fee: number | null;
1054
+ show_type: ShowType | null;
1055
+ pulep: string | null;
1056
+ minimum_age: number | null;
1057
+ show_gender?: ShowGender | null;
1058
+ show_gender_id: number | null;
1059
+ show_category?: ShowCategory | null;
1060
+ show_category_id: number | null;
1061
+ default_room_map?: RoomMap | null;
1062
+ default_room_map_id: number | null;
1063
+ is_published: boolean;
1064
+ images: ShowImage[];
1065
+ terms_and_conditions: string | null;
1066
+ performances_quantity?: number;
1067
+ performances?: Performance[];
1068
+ next_performance?: Performance;
1069
+ days_of_week?: number[];
1070
+ unique_start_times?: string[];
1071
+ }
1072
+
1073
+ interface FindAllPerformancesParams {
1074
+ roomMapId?: number;
1075
+ showId?: number;
1076
+ hallId?: number;
1077
+ page?: number;
1078
+ search?: string;
1079
+ limit?: number;
1080
+ }
1081
+
1082
+ interface PerformanceBookingDataResponse {
1083
+ statusCode: number;
1084
+ data: {
1085
+ performance: Performance;
1086
+ room_map: RoomMap;
1087
+ show: Show;
1088
+ tickets: PerformanceTicket[];
1089
+ };
1090
+ message: string;
753
1091
  }
754
1092
 
755
1093
  interface PerformanceResponse {
@@ -758,6 +1096,18 @@ interface PerformanceResponse {
758
1096
  message: string;
759
1097
  }
760
1098
 
1099
+ interface PerformanceAvailableDay {
1100
+ date: string;
1101
+ count: number;
1102
+ }
1103
+ interface PerformancesAvailableDaysResponse {
1104
+ statusCode: number;
1105
+ data: {
1106
+ days: PerformanceAvailableDay[];
1107
+ };
1108
+ message: string;
1109
+ }
1110
+
761
1111
  interface PerformancesResponseInterface {
762
1112
  statusCode: number;
763
1113
  data: {
@@ -767,7 +1117,7 @@ interface PerformancesResponseInterface {
767
1117
  message: string;
768
1118
  }
769
1119
 
770
- interface OrderItem {
1120
+ interface OrderItem extends Auditable {
771
1121
  id: number;
772
1122
  order: Order;
773
1123
  item_type: OrderItemType;
@@ -779,16 +1129,14 @@ interface OrderItem {
779
1129
  discounted_price: number;
780
1130
  ticket_id?: number;
781
1131
  ticket_uuid?: string;
1132
+ ticket?: PerformanceTicket;
782
1133
  item: Show | Product;
783
- created_at: Date;
784
- updated_at: Date;
785
- created_by: number;
786
- updated_by: number;
787
1134
  }
788
1135
 
789
1136
  interface Coupon extends Auditable {
790
1137
  id: number;
791
1138
  code: string;
1139
+ billing_code: string;
792
1140
  description?: string;
793
1141
  discount_type: CouponDiscountType;
794
1142
  discount_value: number;
@@ -805,9 +1153,11 @@ interface Coupon extends Auditable {
805
1153
  applicable_performance_ids?: number[];
806
1154
  applicable_price_zone_ids?: number[];
807
1155
  applies_to_service_fee?: boolean;
1156
+ orders?: Order[];
1157
+ customers?: Customer[];
808
1158
  }
809
1159
 
810
- interface CorporateBond {
1160
+ interface CorporateBond extends Auditable {
811
1161
  id: number;
812
1162
  name: string;
813
1163
  description?: string;
@@ -817,11 +1167,13 @@ interface CorporateBond {
817
1167
  quantity: number;
818
1168
  status: CorporateBondStatus;
819
1169
  value: number;
1170
+ purchase_value: number;
1171
+ buyer_customer_id: number | null;
1172
+ buyer: Customer | null;
1173
+ order_id: number | null;
1174
+ order: Order | null;
1175
+ payment_method?: PaymentMethod;
820
1176
  codes: CorporateBondCode[];
821
- created_at: Date;
822
- updated_at: Date;
823
- created_by: number;
824
- updated_by: number;
825
1177
  }
826
1178
 
827
1179
  interface CorporateBondCode {
@@ -834,55 +1186,200 @@ interface CorporateBondCode {
834
1186
  created_at: Date;
835
1187
  }
836
1188
 
837
- interface CorporateBondResponse {
1189
+ interface CorporateBondResponse {
1190
+ statusCode: number;
1191
+ data: CorporateBond;
1192
+ message: string;
1193
+ }
1194
+
1195
+ interface ValidateCorporateBondResponse {
1196
+ data: {
1197
+ valid: boolean;
1198
+ message: string;
1199
+ code: string;
1200
+ bond?: CorporateBond;
1201
+ };
1202
+ message: string;
1203
+ statusCode: number;
1204
+ }
1205
+
1206
+ interface GiftBondImage {
1207
+ id: number;
1208
+ path: string;
1209
+ full_url: string;
1210
+ original_name: string;
1211
+ extension: string;
1212
+ size: number;
1213
+ mime_type: string;
1214
+ width: number;
1215
+ height: number;
1216
+ is_featured: boolean;
1217
+ gift_bond_id: number;
1218
+ gift_bond: GiftBond;
1219
+ created_at: Date;
1220
+ }
1221
+
1222
+ interface GiftBond extends Auditable {
1223
+ id: number;
1224
+ name: string;
1225
+ description?: string;
1226
+ slug?: string;
1227
+ status: GiftBondStatus;
1228
+ value: number;
1229
+ page_content?: string;
1230
+ images?: GiftBondImage[];
1231
+ }
1232
+
1233
+ interface GiftBondResponse {
1234
+ statusCode: number;
1235
+ data: GiftBond;
1236
+ message: string;
1237
+ }
1238
+
1239
+ interface GiftBondsResponse {
838
1240
  statusCode: number;
839
- data: CorporateBond;
1241
+ data: {
1242
+ gift_bonds: GiftBond[];
1243
+ total: number;
1244
+ };
840
1245
  message: string;
841
1246
  }
842
1247
 
843
- interface ValidateCorporateBondResponse {
1248
+ interface GiftBondPurchase extends Auditable {
1249
+ id: number;
1250
+ code: string;
1251
+ original_value: number;
1252
+ used_value: number | null;
1253
+ lost_value: number | null;
1254
+ beneficiary_email: string;
1255
+ beneficiary: Customer | null;
1256
+ personalized_message: string | null;
1257
+ status: GiftBondPurchaseStatus;
1258
+ purchased_at: string;
1259
+ expires_at: string;
1260
+ redeemed_at: string | null;
1261
+ gift_bond?: GiftBond;
1262
+ gift_bond_id: number;
1263
+ buyer_customer_id: number;
1264
+ buyer: Customer;
1265
+ order: Order | null;
1266
+ order_id: number;
1267
+ redemption_order_id: number | null;
1268
+ redemption_order: Order | null;
1269
+ }
1270
+
1271
+ interface ValidateGiftBondResponse {
844
1272
  data: {
845
1273
  valid: boolean;
846
1274
  message: string;
847
1275
  code: string;
848
- bond?: CorporateBond;
1276
+ bond?: GiftBondPurchase;
849
1277
  };
1278
+ statusCode: number;
1279
+ message: string;
1280
+ }
1281
+
1282
+ interface GiftBondPurchaseResponse {
1283
+ statusCode: number;
1284
+ data: GiftBondPurchase;
850
1285
  message: string;
1286
+ }
1287
+
1288
+ interface GiftBondPurchasesResponse {
851
1289
  statusCode: number;
1290
+ data: {
1291
+ items: GiftBondPurchase[];
1292
+ total: number;
1293
+ };
1294
+ message: string;
1295
+ }
1296
+
1297
+ interface Transaction extends Auditable {
1298
+ id: number;
1299
+ status: TransactionStatus;
1300
+ amount: number;
1301
+ currency: string;
1302
+ payment_gateway: string;
1303
+ gateway_transaction_id: string;
1304
+ gateway_response: any;
1305
+ order: Order;
1306
+ }
1307
+
1308
+ interface OrderBillingInfo {
1309
+ first_name: string;
1310
+ last_name: string;
1311
+ email: string;
1312
+ mobile: string;
1313
+ document_type: string;
1314
+ document_number: string;
1315
+ address: string;
1316
+ city_id: number;
1317
+ postal_code?: string;
1318
+ address_notes?: string;
1319
+ payment_method: PaymentMethod;
1320
+ terms_accepted: boolean;
1321
+ data_processing_accepted: boolean;
1322
+ comments?: string;
1323
+ products?: Array<{
1324
+ id: number;
1325
+ quantity: number;
1326
+ }>;
1327
+ }
1328
+
1329
+ interface OrderShowSnapshot {
1330
+ id: number;
1331
+ title: string;
1332
+ description: string | null;
1333
+ service_fee: number | null;
1334
+ }
1335
+
1336
+ interface OrderPerformanceSnapshot {
1337
+ id: number;
1338
+ start_time: Performance['start_time'];
1339
+ end_time: Performance['end_time'];
1340
+ published: boolean;
1341
+ status: PerformanceStatus;
852
1342
  }
853
1343
 
854
- interface Order {
1344
+ interface Order extends Auditable {
855
1345
  id: number;
856
1346
  uuid: string;
857
- customer: Customer;
1347
+ customer_id: number | null;
1348
+ customer: Customer | null;
858
1349
  customer_name?: string;
859
1350
  customer_email?: string;
860
1351
  order_items: OrderItem[];
861
1352
  order_items_quantity?: number;
862
- discount_amount: number;
1353
+ transactions: Transaction[];
1354
+ sub_total: number;
1355
+ discount_amount: number | null;
863
1356
  total: number;
1357
+ sub_total_discounted: number | null;
864
1358
  total_discounted: number;
865
- sub_total: number;
866
- sub_total_discounted: number;
867
- service_fee: number;
868
- service_fee_discounted: number;
869
- coupon: Coupon;
870
- coupon_snapshot: Record<string, any>;
871
- corporate_bond_code: CorporateBondCode;
872
- corporate_bond_code_snapshot: Record<string, any>;
1359
+ service_fee: number | null;
1360
+ service_fee_discounted: number | null;
1361
+ coupon: Coupon | null;
1362
+ coupon_snapshot: Record<string, any> | null;
873
1363
  status: OrderStatus;
874
- show_snapshot: Record<string, any>;
875
- performance_snapshot: Record<string, any>;
876
- created_at: Date;
877
- updated_at: Date;
878
- payment_method: string;
1364
+ show_snapshot: OrderShowSnapshot | null;
1365
+ performance_snapshot: OrderPerformanceSnapshot | null;
1366
+ payment_method: PaymentMethod | null;
879
1367
  terms_accepted: boolean;
880
1368
  data_processing_accepted: boolean;
881
- billing_info: Partial<Customer>;
882
- comments: string;
883
- address_notes: string;
1369
+ billing_info: OrderBillingInfo | null;
1370
+ corporate_bond_code_snapshot: Record<string, any> | null;
1371
+ gift_bond_snapshot: Record<string, any> | null;
1372
+ corporate_bond_code: CorporateBondCode | null;
1373
+ corporate_bond_code_id: number | null;
1374
+ gift_bond: GiftBond | null;
1375
+ gift_bond_id: number | null;
1376
+ comments: string | null;
1377
+ address_notes: string | null;
1378
+ mercado_pago_preference_id: string;
884
1379
  created_by: number;
1380
+ created_by_type: CreatorType;
885
1381
  updated_by: number;
1382
+ updated_by_type: CreatorType;
886
1383
  }
887
1384
 
888
1385
  interface OrderResponse {
@@ -900,7 +1397,15 @@ interface OrdersResponse {
900
1397
  message: string;
901
1398
  }
902
1399
 
903
- interface PerformanceTicket {
1400
+ interface MercadoPagoPreference {
1401
+ data: {
1402
+ id: string;
1403
+ init_point: string;
1404
+ sandbox_init_point: string;
1405
+ };
1406
+ }
1407
+
1408
+ interface PerformanceTicket extends Auditable {
904
1409
  id: number;
905
1410
  uuid: string;
906
1411
  is_accessible: boolean;
@@ -914,35 +1419,174 @@ interface PerformanceTicket {
914
1419
  presale_price: number | null;
915
1420
  status: PerformanceTicketStatus;
916
1421
  reserved_until: Date | null;
1422
+ reserved_by_type: CreatorType | null;
1423
+ reserved_by: number | null;
1424
+ reserved_by_admin: Admin | null;
1425
+ reserved_by_customer: number | null;
1426
+ reserved_customer: Customer | null;
1427
+ order: Order | null;
917
1428
  order_id: number | null;
918
1429
  customer_id: number | null;
919
1430
  checked_in: boolean;
920
1431
  checked_in_at: Date | null;
1432
+ checked_in_by: number | null;
1433
+ checked_in_by_admin: Admin | null;
921
1434
  order_items: OrderItem[];
922
1435
  element_qty?: number;
923
- created_at: Date;
924
- updated_at: Date;
1436
+ blocked_at: Date | null;
1437
+ blocked_by: number | null;
1438
+ blocked_by_admin: Admin | null;
925
1439
  }
926
1440
 
927
- interface PerformanceBookingDataResponse {
928
- statusCode: number;
929
- data: {
930
- performance: Performance;
931
- room_map: RoomMap;
932
- show: Show;
933
- tickets: PerformanceTicket[];
1441
+ interface TicketMapSeatPosition {
1442
+ rowIndex: number;
1443
+ colIndex: number;
1444
+ seatLabel: string;
1445
+ }
1446
+
1447
+ interface TicketMapTableChairPosition {
1448
+ index: number;
1449
+ angle: number;
1450
+ x: number;
1451
+ y: number;
1452
+ }
1453
+
1454
+ interface ElementRenderData {
1455
+ elementId: number;
1456
+ hallFloorId: number | null;
1457
+ type: RoomMapElementType;
1458
+ shapeConfig: Record<string, any>;
1459
+ tickets: PerformanceTicket[];
1460
+ ticketByNumeration: Map<string, PerformanceTicket>;
1461
+ elementName: string;
1462
+ seatPositions?: TicketMapSeatPosition[][];
1463
+ chairPositions?: TicketMapTableChairPosition[];
1464
+ zoneCapacity?: number;
1465
+ }
1466
+
1467
+ interface TicketMapTooltipData {
1468
+ x: number;
1469
+ y: number;
1470
+ elementName: string;
1471
+ seatLabel: string | null;
1472
+ price: number;
1473
+ status: PerformanceTicketStatus;
1474
+ statusLabel: string;
1475
+ statusColor: string;
1476
+ isSelected: boolean;
1477
+ ticketId: number;
1478
+ }
1479
+
1480
+ interface TicketMapZoneQuantityState {
1481
+ elementId: number;
1482
+ selectedCount: number;
1483
+ maxCapacity: number;
1484
+ }
1485
+
1486
+ interface ReservePerformanceDto {
1487
+ ticket_ids: number[];
1488
+ products?: {
1489
+ id: number;
1490
+ quantity: number;
1491
+ }[];
1492
+ coupon_code?: string;
1493
+ gift_bond_code?: string;
1494
+ corporate_bond_code?: string;
1495
+ payment_method?: string;
1496
+ billing?: {
1497
+ first_name: string;
1498
+ last_name: string;
1499
+ email: string;
1500
+ mobile: string;
1501
+ document_type: string;
1502
+ document_number: string;
1503
+ address: string;
1504
+ city_id: number;
1505
+ postal_code?: string;
1506
+ address_notes?: string;
1507
+ terms_accepted: boolean;
1508
+ data_processing_accepted: boolean;
1509
+ comments?: string;
934
1510
  };
935
- message: string;
936
1511
  }
937
1512
 
938
- interface PerformanceAvailableDay {
939
- date: string;
940
- count: number;
1513
+ interface TicketMapZoomConfig {
1514
+ minZoom: number;
1515
+ maxZoom: number;
1516
+ zoomStep: number;
1517
+ scaleBy: number;
941
1518
  }
942
- interface PerformancesAvailableDaysResponse {
1519
+
1520
+ interface HallFloorOption {
1521
+ id: number | null;
1522
+ name: string;
1523
+ }
1524
+
1525
+ declare enum SelectedDiscountCardType {
1526
+ COUPON = "COUPON",
1527
+ CORPORATE_BOND = "CORPORATE_BOND",
1528
+ GIFT_BOND = "GIFT_BOND"
1529
+ }
1530
+
1531
+ interface SelectedDiscountCard {
1532
+ name: string;
1533
+ type: SelectedDiscountCardType;
1534
+ value: number;
1535
+ discountType: 'percentage' | 'fixed';
1536
+ }
1537
+
1538
+ /** Forma compacta de un ticket recibida por SSE (ver
1539
+ * SeatAvailabilitySseService) — sin relaciones, solo lo necesario para
1540
+ * repintar el mapa y validar disponibilidad en el cliente. */
1541
+ interface SeatStatusUpdate {
1542
+ id: number;
1543
+ status: PerformanceTicketStatus;
1544
+ room_map_element_id: number;
1545
+ reserved_until: Date | null;
1546
+ }
1547
+ type SeatEventMessage = {
1548
+ type: 'snapshot';
1549
+ performance_id: number;
1550
+ tickets: SeatStatusUpdate[];
1551
+ ts: number;
1552
+ } | {
1553
+ type: 'heartbeat';
1554
+ ts: number;
1555
+ };
1556
+
1557
+ interface AdmissionStatus {
1558
+ active: boolean;
1559
+ position: number | null;
1560
+ }
1561
+ interface AdmissionJoinResponse extends AdmissionStatus {
1562
+ ticket: string;
1563
+ expires_in: number;
1564
+ }
1565
+ type AdmissionEventMessage = ({
1566
+ type: 'status';
1567
+ } & AdmissionStatus & {
1568
+ ts: number;
1569
+ }) | {
1570
+ type: 'heartbeat';
1571
+ ts: number;
1572
+ };
1573
+
1574
+ interface FetchShowsParams extends CommonFetchAllParams {
1575
+ date?: string;
1576
+ sort_by?: 'show.id' | 'show.created_at' | 'show.title' | 'show.slug' | 'show.type_of_costs' | 'show.pulep' | 'show_category.name' | 'show_gender.name';
1577
+ }
1578
+
1579
+ interface ShowResponse {
1580
+ statusCode: number;
1581
+ data: Show;
1582
+ message: string;
1583
+ }
1584
+
1585
+ interface ShowsResponseInterface {
943
1586
  statusCode: number;
944
1587
  data: {
945
- days: PerformanceAvailableDay[];
1588
+ shows: Show[];
1589
+ total: number;
946
1590
  };
947
1591
  message: string;
948
1592
  }
@@ -999,12 +1643,31 @@ interface FetchDailyPerformancesParams {
999
1643
  limit?: number;
1000
1644
  }
1001
1645
 
1646
+ interface FetchProductsParams extends CommonFetchAllParams {
1647
+ name?: string;
1648
+ category_id?: number;
1649
+ tag_id?: number;
1650
+ type_id?: number;
1651
+ min_price?: number;
1652
+ max_price?: number;
1653
+ min_stock?: number;
1654
+ max_stock?: number;
1655
+ sort_by?: 'product.id' | 'product.name' | 'product.price' | 'product.stock_quantity' | 'product.slug' | 'product.sku' | 'product.created_at' | 'category.name' | 'tag.name' | 'type.name';
1656
+ }
1657
+
1002
1658
  interface ProductResponse {
1003
1659
  statusCode: number;
1004
1660
  data: Product;
1005
1661
  message: string;
1006
1662
  }
1007
1663
 
1664
+ interface ProductTaxonomy extends Auditable {
1665
+ id: number;
1666
+ name: string;
1667
+ slug: string;
1668
+ selected?: boolean;
1669
+ }
1670
+
1008
1671
  interface ProductsResponseInterface {
1009
1672
  statusCode: number;
1010
1673
  data: {
@@ -1045,76 +1708,281 @@ interface FindAllPriceZoneParams {
1045
1708
  limit?: number;
1046
1709
  }
1047
1710
 
1048
- interface GiftBond {
1711
+ interface CouponResponse {
1712
+ statusCode: number;
1713
+ data: Coupon;
1714
+ message: string;
1715
+ }
1716
+
1717
+ interface ValidateCouponResponse {
1718
+ data: {
1719
+ coupon: Coupon;
1720
+ message: string;
1721
+ };
1722
+ }
1723
+
1724
+ interface RecentOrder {
1049
1725
  id: number;
1726
+ customer_name: string;
1727
+ event: string;
1728
+ total: number;
1729
+ status: string;
1050
1730
  uuid: string;
1731
+ }
1732
+
1733
+ interface RecentRoomMap {
1734
+ id: number;
1051
1735
  name: string;
1052
- description?: string;
1053
- status: GiftBondStatus;
1054
- value: number;
1055
- customer: Customer;
1056
- customer_id: number;
1736
+ capacity: number;
1057
1737
  created_at: Date;
1058
1738
  updated_at: Date;
1059
- created_by: number;
1060
- updated_by: number;
1061
1739
  }
1062
1740
 
1063
- interface GiftBondResponse {
1741
+ interface QrTokenData {
1742
+ token: string;
1743
+ expires_at: string;
1744
+ refresh_in: number;
1745
+ }
1746
+
1747
+ interface QrTokenResponse {
1064
1748
  statusCode: number;
1065
- data: GiftBond;
1749
+ data: QrTokenData;
1066
1750
  message: string;
1067
1751
  }
1068
1752
 
1069
- interface GiftBondsResponse {
1070
- statusCode: number;
1753
+ interface VipCategorySnapshot {
1754
+ membership_id: number;
1755
+ name: string;
1756
+ discount_percentage: number;
1757
+ service_fee_exempt: boolean;
1758
+ applicable_show_ids: number[] | null;
1759
+ excluded_show_ids: number[] | null;
1760
+ duration_days: number;
1761
+ }
1762
+
1763
+ interface VipCard extends Auditable {
1764
+ id: number;
1765
+ uuid: string;
1766
+ customer: Customer;
1767
+ customer_id: number;
1768
+ membership: {
1769
+ id: number;
1770
+ name: string;
1771
+ } | null;
1772
+ membership_id: number;
1773
+ category_snapshot: VipCategorySnapshot;
1774
+ balance: number;
1775
+ status: VipCardStatus;
1776
+ activated_at: string | null;
1777
+ last_activity_at: string | null;
1778
+ expires_at: string | null;
1779
+ last_low_balance_alert_at: string | null;
1780
+ last_expiry_alert_at: string | null;
1781
+ }
1782
+
1783
+ interface VipTransaction {
1784
+ id: number;
1785
+ uuid: string;
1786
+ vip_card_id: number;
1787
+ type: VipTransactionType;
1788
+ amount: number;
1789
+ balance_before: number;
1790
+ balance_after: number;
1791
+ order: Order | null;
1792
+ order_id: number | null;
1793
+ description: string | null;
1794
+ created_at: string;
1795
+ }
1796
+
1797
+ interface VipCardResponse {
1798
+ data: VipCard;
1799
+ }
1800
+ interface VipCardsResponse {
1071
1801
  data: {
1072
- gift_bonds: GiftBond[];
1802
+ vip_cards: VipCard[];
1073
1803
  total: number;
1074
1804
  };
1075
- message: string;
1076
1805
  }
1077
-
1078
- interface ValidateGiftBondResponse {
1806
+ interface VipTransactionsResponse {
1079
1807
  data: {
1080
- valid: boolean;
1081
- message: string;
1082
- code: string;
1083
- bond?: GiftBond;
1808
+ transactions: VipTransaction[];
1809
+ total: number;
1084
1810
  };
1085
- statusCode: number;
1086
- message: string;
1811
+ }
1812
+ interface VipOrderResponse {
1813
+ data: Order;
1087
1814
  }
1088
1815
 
1089
- interface CouponResponse {
1090
- statusCode: number;
1091
- data: Coupon;
1092
- message: string;
1816
+ interface Membership extends Auditable {
1817
+ id: number;
1818
+ name: string;
1819
+ description: string;
1820
+ benefits: string[] | null;
1821
+ price: number;
1822
+ duration_days: number;
1823
+ min_recharge: number;
1824
+ status: MembershipStatus;
1825
+ discount_percentage: number;
1826
+ service_fee_exempt: boolean;
1827
+ applicable_show_ids: number[] | null;
1828
+ excluded_show_ids: number[] | null;
1093
1829
  }
1094
1830
 
1095
- interface ValidateCouponResponse {
1096
- data: {
1097
- coupon: Coupon;
1098
- message: string;
1099
- };
1831
+ interface FetchVipCardsParams extends CommonFetchAllParams {
1832
+ status?: VipCardStatus;
1833
+ membership_id?: number;
1834
+ customer_id?: number;
1835
+ 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';
1836
+ }
1837
+
1838
+ interface ActivateVipCardParams {
1839
+ customer_id: number;
1840
+ membership_id: number;
1841
+ amount: number;
1842
+ }
1843
+
1844
+ declare const DOCUMENT_TYPES_OPTIONS: SelectOption[];
1845
+
1846
+ declare const PAYMENT_METHODS_OPTIONS: SelectOption[];
1847
+ declare const ORDER_STATUS_COLORS: Record<OrderStatus, {
1848
+ text: string;
1849
+ bg: string;
1850
+ }>;
1851
+ declare const ORDER_ITEM_TYPES_COLORS: Record<OrderItemType, {
1852
+ text: string;
1853
+ bg: string;
1854
+ }>;
1855
+ declare const ORDER_DISCOUNT_COLORS: Record<string, {
1856
+ text: string;
1857
+ bg: string;
1858
+ }>;
1859
+ declare const TRANSACTION_STATUS_COLORS: Record<TransactionStatus, {
1860
+ text: string;
1861
+ bg: string;
1862
+ }>;
1863
+
1864
+ declare const PERFORMANCE_TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, {
1865
+ text: string;
1866
+ bg: string;
1867
+ }>;
1868
+ declare const PERFORMANCE_STATUS_COLORS: Record<PerformanceStatus, {
1869
+ text: string;
1870
+ bg: string;
1871
+ }>;
1872
+
1873
+ declare const TICKET_MAP_LAST_TICKETS_LIMIT = 10;
1874
+ declare const TICKET_ELEMENT_TYPES: RoomMapElementType[];
1875
+ declare const DEFAULT_STAGE_CONFIG: {
1876
+ [x: string]: any;
1877
+ };
1878
+ declare const TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, string>;
1879
+ declare const TICKET_STATUS_FILLS: Record<PerformanceTicketStatus, string>;
1880
+ declare const TICKET_STATUS_LABELS: Record<PerformanceTicketStatus, string>;
1881
+ declare const TICKET_MAP_GRID_SIZE = 30;
1882
+ declare const TICKET_MAP_TITLE_HEIGHT = 30;
1883
+
1884
+ interface KonvaShapeConfig {
1885
+ config: ShapeConfig;
1886
+ layer: 'background' | 'elements' | 'foreground' | 'overlay';
1100
1887
  }
1101
1888
 
1889
+ declare function drawRoundedRect(con: Context, shape: Shape, x: number, y: number, width: number, height: number, cornerRadius: number): void;
1890
+
1891
+ declare const generateExitScene: (con: Context, shape: Shape) => void;
1892
+
1893
+ declare const generateHallwayScene: (con: Context, shape: Shape) => void;
1894
+
1895
+ declare const generateProductionAreaScene: (con: Context, shape: Shape) => void;
1896
+
1897
+ declare const generateSeatBlockScene: (con: Context, shape: Shape, numerationConfig?: {
1898
+ start_row_letter: string;
1899
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1900
+ start_column_number: number;
1901
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1902
+ }) => void;
1903
+
1904
+ declare const generateStageScene: (con: Context, shape: Shape) => void;
1905
+
1906
+ declare const generateStairScene: (con: Context, shape: Shape) => void;
1907
+
1908
+ declare const generateTableScene: (con: Context, shape: Shape) => void;
1909
+
1910
+ declare const generateUnavailableSpaceScene: (con: Context, shape: Shape) => void;
1911
+
1912
+ declare const generateZoneScene: (con: Context, shape: Shape) => void;
1913
+
1914
+ declare const KONVA_SHAPE_MAPPINGS: Record<RoomMapElementType, KonvaShapeConfig>;
1915
+
1916
+ declare const SHOW_TYPE_COLORS: Record<ShowType, {
1917
+ bg: string;
1918
+ text: string;
1919
+ }>;
1920
+
1102
1921
  declare const getCustomerFullname: (customer: Customer) => string;
1103
1922
 
1923
+ type OrderDiscountType = 'coupon' | 'corporate_bond' | 'gift_bond';
1924
+ interface OrderDiscountInfo {
1925
+ type: OrderDiscountType | null;
1926
+ code: string | null;
1927
+ name: string | null;
1928
+ value: number;
1929
+ discountType: 'percentage' | 'fixed' | null;
1930
+ icon: string;
1931
+ }
1932
+ declare function getOrderDiscount(order: Order): OrderDiscountInfo;
1933
+
1104
1934
  declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
1105
1935
 
1106
- declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
1936
+ declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
1937
+
1938
+ declare const transformUrlParams: (params: any) => URLSearchParams;
1939
+
1940
+ declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
1941
+ value: number;
1942
+ label: string;
1943
+ }[];
1944
+
1945
+ declare function tintColor(hex: string, amount?: number): string;
1946
+
1947
+ declare const drawChairIcon: (con: Context, cx: number, cy: number, size: number) => void;
1948
+
1949
+ declare const drawHappyFace: (con: Context, cx: number, cy: number, size: number) => void;
1950
+
1951
+ declare const drawWheelchairIcon: (con: Context, shape: Shape, cx: number, cy: number, size: number, fillColor?: string, strokeColor?: string) => void;
1952
+
1953
+ declare const numberToLetter: (num: number) => string;
1954
+
1955
+ declare const getItemTypeIcon: (ticket: PerformanceTicket) => string;
1956
+
1957
+ declare const generateSeatBlockTicketScene: (con: Context, shape: Shape, numerationConfig?: {
1958
+ start_row_letter: string;
1959
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1960
+ start_column_number: number;
1961
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1962
+ }, ticketStatusMap?: Map<string, PerformanceTicketStatus>) => void;
1963
+
1964
+ declare const generateTableTicketScene: (con: Context, shape: Shape, chairTicketStatuses?: PerformanceTicketStatus[], tableSeats?: RoomMapSeatState[][]) => void;
1965
+
1966
+ declare function processElementsToRenderData(elements: RoomMapElementTemplate[], tickets: PerformanceTicket[], priceZones?: {
1967
+ id: number;
1968
+ color: string;
1969
+ }[]): ElementRenderData[];
1970
+ declare function findTicketAtPosition(renderData: ElementRenderData, relX: number, relY: number): PerformanceTicket | null;
1971
+ declare function findElementAtPosition(renderDataList: ElementRenderData[], stageX: number, stageY: number): {
1972
+ element: ElementRenderData;
1973
+ relX: number;
1974
+ relY: number;
1975
+ } | null;
1107
1976
 
1108
- declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
1109
- value: string;
1110
- label: string;
1111
- }[];
1977
+ declare const ticketCanOpenQr: (order: Order, ticket: PerformanceTicket) => boolean;
1112
1978
 
1113
1979
  declare function MinTodayValidator(controlName: string): ValidatorFn;
1114
1980
  declare function EndDateGreaterThanStartValidator(startDateControlName: string, endDateControlName: string): ValidatorFn;
1115
1981
 
1116
1982
  declare function MustMatchValidator(controlName: string, matchingControlName: string): ValidatorFn;
1117
1983
 
1984
+ declare function emailValidator(): ValidatorFn;
1985
+
1118
1986
  declare class ApiService {
1119
1987
  private http;
1120
1988
  private platformId;
@@ -1140,16 +2008,6 @@ declare class ToastService {
1140
2008
  static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
1141
2009
  }
1142
2010
 
1143
- declare class LoadingModalService {
1144
- title: WritableSignal<string>;
1145
- isOpen: WritableSignal<boolean>;
1146
- get modalIsOpen(): WritableSignal<boolean>;
1147
- open(title?: string): void;
1148
- close(): void;
1149
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingModalService, never>;
1150
- static ɵprov: i0.ɵɵInjectableDeclaration<LoadingModalService>;
1151
- }
1152
-
1153
2011
  declare class DeleteConfirmationService {
1154
2012
  title: WritableSignal<string>;
1155
2013
  resourceName: WritableSignal<string>;
@@ -1193,7 +2051,7 @@ declare class DateService {
1193
2051
  declare class AdminService {
1194
2052
  private apiService;
1195
2053
  constructor(apiService: ApiService);
1196
- fetchAdmins(page?: number, search?: string, limit?: number): Observable<AdminsResponse>;
2054
+ fetchAdmins(params: FetchAdminsParams): Observable<AdminsResponse>;
1197
2055
  deleteOne(id: number): Observable<any>;
1198
2056
  createOne(data: any): Observable<any>;
1199
2057
  updateOne(id: number, data: any): Observable<any>;
@@ -1204,7 +2062,7 @@ declare class AdminService {
1204
2062
  declare class CitiesService {
1205
2063
  private apiService;
1206
2064
  constructor(apiService: ApiService);
1207
- fetchCities({ page, search, stateId }: FetchCitiesParams): Observable<CitiesResponse>;
2065
+ fetchCities(params: FetchCitiesParams): Observable<CitiesResponse>;
1208
2066
  createOne(data: City): Observable<CityResponse>;
1209
2067
  updateOne(id: number, data: City): Observable<CityResponse>;
1210
2068
  deleteOne(id: number): Observable<any>;
@@ -1215,7 +2073,7 @@ declare class CitiesService {
1215
2073
  declare class CountryService {
1216
2074
  private apiService;
1217
2075
  constructor(apiService: ApiService);
1218
- fetchCountries(page?: number, search?: string): Observable<CountriesResponse>;
2076
+ fetchCountries(params: FetchCountriesParams): Observable<CountriesResponse>;
1219
2077
  createOne(data: Country): Observable<CountryResponse>;
1220
2078
  updateOne(id: number, data: Country): Observable<CountryResponse>;
1221
2079
  deleteOne(id: number): Observable<any>;
@@ -1226,7 +2084,7 @@ declare class CountryService {
1226
2084
  declare class StatesService {
1227
2085
  private apiService;
1228
2086
  constructor(apiService: ApiService);
1229
- fetchStates(page?: number, search?: string, countryId?: number): Observable<StatesResponse>;
2087
+ fetchStates(params: FetchStatesParams): Observable<StatesResponse>;
1230
2088
  fetchStatesByCountryId(countryId: number): Observable<StatesResponse>;
1231
2089
  createOne(data: State): Observable<StateResponse>;
1232
2090
  updateOne(id: number, data: State): Observable<StateResponse>;
@@ -1240,7 +2098,7 @@ declare class PerformanceService {
1240
2098
  private performancesSubject;
1241
2099
  performances$: Observable<Performance[]>;
1242
2100
  constructor(apiService: ApiService);
1243
- fetchPerformances(showId?: number, search?: string): Observable<PerformancesResponseInterface>;
2101
+ fetchPerformances({ showId, roomMapId, hallId, search, page, limit, }: FindAllPerformancesParams): Observable<PerformancesResponseInterface>;
1244
2102
  fetchDailyPerformances({ show_id, search, limit, date, }: FetchDailyPerformancesParams): Observable<DailyPerformancesResponse>;
1245
2103
  loadPerformances({ showId, search }?: {
1246
2104
  showId?: number;
@@ -1248,7 +2106,7 @@ declare class PerformanceService {
1248
2106
  }): void;
1249
2107
  getCurrentPerformances(): Performance[];
1250
2108
  fetchOneById(id: number): Observable<PerformanceResponse>;
1251
- fetchOneBookingData(id: number): Observable<PerformanceBookingDataResponse>;
2109
+ fetchOneBookingData(id: number, isAdmin?: boolean): Observable<PerformanceBookingDataResponse>;
1252
2110
  fetchAvailableDays(params?: {
1253
2111
  show_id?: number;
1254
2112
  }): Observable<PerformancesAvailableDaysResponse>;
@@ -1278,25 +2136,6 @@ declare class PerformancesListEventsService {
1278
2136
  static ɵprov: i0.ɵɵInjectableDeclaration<PerformancesListEventsService>;
1279
2137
  }
1280
2138
 
1281
- declare class ProductService {
1282
- private apiService;
1283
- private productsSubject;
1284
- products$: Observable<Product[]>;
1285
- constructor(apiService: ApiService);
1286
- fetchProducts(page: number, search: string): Observable<ProductsResponseInterface>;
1287
- loadProducts({ page, search }?: {
1288
- page?: number;
1289
- search?: string;
1290
- }): void;
1291
- getCurrentProducts(): Product[];
1292
- fetchOneById(id: number): Observable<ProductResponse>;
1293
- createOne(data: Product): Observable<any>;
1294
- updateOne(id: number, data: any): Observable<ProductResponse>;
1295
- deleteOne(id: number): Observable<any>;
1296
- static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
1297
- static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
1298
- }
1299
-
1300
2139
  declare class ShowService {
1301
2140
  private apiService;
1302
2141
  private showsSubject;
@@ -1304,7 +2143,7 @@ declare class ShowService {
1304
2143
  constructor(apiService: ApiService);
1305
2144
  loadShows({ page, search }?: FetchShowsParams): void;
1306
2145
  getCurrentShows(): Show[];
1307
- fetchShows({ limit, page, search }: FetchShowsParams): Observable<ShowsResponseInterface>;
2146
+ fetchShows(params: FetchShowsParams): Observable<ShowsResponseInterface>;
1308
2147
  fetchAvailableShows({ date, limit, page, search, }: FetchShowsParams): Observable<ShowsResponseInterface>;
1309
2148
  fetchOneById(id: number): Observable<ShowResponse>;
1310
2149
  createOne(data: Show): Observable<ShowResponse>;
@@ -1325,7 +2164,7 @@ declare class CustomerService {
1325
2164
  private apiService;
1326
2165
  constructor(apiService: ApiService);
1327
2166
  createOne(data: Customer): Observable<CustomerResponse>;
1328
- fetchCustomers(page: number, search: string, limit?: number): Observable<CustomersResponse>;
2167
+ fetchCustomers(params: FetchCustomersParams): Observable<CustomersResponse>;
1329
2168
  fetchOneById(id: number): Observable<CustomerResponse>;
1330
2169
  updateOne(id: number, data: any): Observable<CustomerResponse>;
1331
2170
  deleteOne(id: number): Observable<any>;
@@ -1377,6 +2216,472 @@ declare class PriceZoneFormModalService {
1377
2216
  static ɵprov: i0.ɵɵInjectableDeclaration<PriceZoneFormModalService>;
1378
2217
  }
1379
2218
 
2219
+ declare class ProductCategoryService {
2220
+ private apiService;
2221
+ constructor(apiService: ApiService);
2222
+ fetchCategories(params: FetchProductCategoriesParams): Observable<ProductCategoriesResponse>;
2223
+ fetchOneById(id: number): Observable<ProductCategoryResponse>;
2224
+ createOne(data: ProductCategory): Observable<any>;
2225
+ updateOne(id: number, data: ProductCategory): Observable<ProductCategoryResponse>;
2226
+ deleteOne(id: number): Observable<any>;
2227
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductCategoryService, never>;
2228
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductCategoryService>;
2229
+ }
2230
+
2231
+ declare class ProductTagService {
2232
+ private apiService;
2233
+ constructor(apiService: ApiService);
2234
+ fetchTags(params: FetchProductTagsParams): Observable<ProductTagsResponse>;
2235
+ fetchOneById(id: number): Observable<ProductTagResponse>;
2236
+ createOne(data: ProductTag): Observable<any>;
2237
+ updateOne(id: number, data: ProductTag): Observable<ProductTagResponse>;
2238
+ deleteOne(id: number): Observable<any>;
2239
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTagService, never>;
2240
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTagService>;
2241
+ }
2242
+
2243
+ declare class ProductTypeService {
2244
+ private apiService;
2245
+ constructor(apiService: ApiService);
2246
+ fetchTypes(params: FetchProductTypesParams): Observable<ProductTypesResponse>;
2247
+ fetchOneById(id: number): Observable<ProductTypeResponse>;
2248
+ createOne(data: ProductType): Observable<any>;
2249
+ updateOne(id: number, data: ProductType): Observable<ProductTypeResponse>;
2250
+ deleteOne(id: number): Observable<any>;
2251
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTypeService, never>;
2252
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTypeService>;
2253
+ }
2254
+
2255
+ declare class ProductService {
2256
+ private apiService;
2257
+ private productsSubject;
2258
+ products$: Observable<Product[]>;
2259
+ constructor(apiService: ApiService);
2260
+ fetchProducts(params: FetchProductsParams): Observable<ProductsResponseInterface>;
2261
+ loadProducts(params: FetchProductsParams): void;
2262
+ getCurrentProducts(): Product[];
2263
+ fetchOneById(id: number): Observable<ProductResponse>;
2264
+ createOne(data: Product): Observable<any>;
2265
+ updateOne(id: number, data: any): Observable<ProductResponse>;
2266
+ deleteOne(id: number): Observable<any>;
2267
+ fetchImages(id: number): Observable<{
2268
+ data: ProductImage[];
2269
+ }>;
2270
+ uploadImages(id: number, files?: FormData): Observable<{
2271
+ data: ProductImage[];
2272
+ }>;
2273
+ deleteOneImage(productId: number, imageId: number): Observable<any>;
2274
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
2275
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
2276
+ }
2277
+
2278
+ declare class BaseModalService {
2279
+ readonly isOpen: WritableSignal<boolean>;
2280
+ get modalIsOpen(): WritableSignal<boolean>;
2281
+ open(): void;
2282
+ close(): void;
2283
+ }
2284
+
2285
+ declare class FeedbackModalService {
2286
+ private _modals;
2287
+ readonly modals: i0.Signal<FeedbackModalElement[]>;
2288
+ addModal(modal: FeedbackModalElement): void;
2289
+ removeModal(id: string): void;
2290
+ removeAllModals(): void;
2291
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalService, never>;
2292
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackModalService>;
2293
+ }
2294
+
2295
+ /**
2296
+ * Tope de entradas por selección/compra. Por defecto es `null` (sin límite),
2297
+ * que es lo que necesita el backoffice (admin puede seleccionar todo).
2298
+ * El ecommerce, que sí debe limitar, llama a `load()` una vez al iniciar la
2299
+ * app para traer el valor configurado en el formulario de personalización.
2300
+ */
2301
+ declare class PurchaseLimitService {
2302
+ private apiService;
2303
+ private _maxTicketsPerSelection;
2304
+ readonly maxTicketsPerSelection: i0.Signal<number | null>;
2305
+ constructor(apiService: ApiService);
2306
+ setMaxTicketsPerSelection(max: number | null): void;
2307
+ load(): Observable<number | null>;
2308
+ static ɵfac: i0.ɵɵFactoryDeclaration<PurchaseLimitService, never>;
2309
+ static ɵprov: i0.ɵɵInjectableDeclaration<PurchaseLimitService>;
2310
+ }
2311
+
2312
+ declare class OrderTransactionDetailsModalService {
2313
+ readonly isOpen: WritableSignal<boolean>;
2314
+ transaction: WritableSignal<Transaction | null>;
2315
+ get modalIsOpen(): WritableSignal<boolean>;
2316
+ open(transaction: Transaction): void;
2317
+ close(): void;
2318
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalService, never>;
2319
+ static ɵprov: i0.ɵɵInjectableDeclaration<OrderTransactionDetailsModalService>;
2320
+ }
2321
+
2322
+ declare class PerformanceBookingDataService {
2323
+ private _show;
2324
+ private _performance;
2325
+ private _roomMap;
2326
+ private _hallFloors;
2327
+ private _selectedHallFloor;
2328
+ private _allRenderData;
2329
+ private _visibleFloorIds;
2330
+ private _stageConfig;
2331
+ private _lastTickets;
2332
+ readonly show: i0.Signal<Show | null>;
2333
+ readonly hallFloors: i0.Signal<HallFloor[]>;
2334
+ readonly selectedHallFloor: i0.Signal<HallFloor | null>;
2335
+ readonly performance: i0.Signal<Performance | null>;
2336
+ readonly stageConfig: i0.Signal<{
2337
+ [x: string]: any;
2338
+ }>;
2339
+ readonly roomMap: i0.Signal<RoomMap | null>;
2340
+ readonly visibleFloorIds: i0.Signal<Set<number>>;
2341
+ readonly availableFloors: i0.Signal<HallFloor[]>;
2342
+ readonly renderData: i0.Signal<ElementRenderData[]>;
2343
+ setPerformanceBookingData({ data }: PerformanceBookingDataResponse): void;
2344
+ /** Aplica actualizaciones de estado de tickets recibidas por SSE (ver
2345
+ * SeatAvailabilitySseService) sin volver a pedir todo el booking-data:
2346
+ * parcha `_lastTickets` y vuelve a calcular el render data del mapa con
2347
+ * los mismos `elements`/`price_zones` (que no cambian en vivo). */
2348
+ applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
2349
+ setRoomMap(roomMap: RoomMap | null): void;
2350
+ setAllRenderData(data: ElementRenderData[]): void;
2351
+ setPerformance(performance: Performance | null): void;
2352
+ setShow(show: Show | null): void;
2353
+ setHallFloors(data: HallFloor[]): void;
2354
+ setSelectedHallFloor(id: number): void;
2355
+ toggleFloorVisibility(floorId: number): void;
2356
+ isFloorVisible(floorId: number): boolean;
2357
+ updateStageConfig(data: {
2358
+ [x: string]: any;
2359
+ }): void;
2360
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceBookingDataService, never>;
2361
+ static ɵprov: i0.ɵɵInjectableDeclaration<PerformanceBookingDataService>;
2362
+ }
2363
+
2364
+ declare class TicketSelectionDetailsService {
2365
+ private _customerEmail;
2366
+ private _customerId;
2367
+ private _paymentMethod;
2368
+ private _billingInformation;
2369
+ readonly customerEmail: i0.Signal<string | null>;
2370
+ readonly customerId: i0.Signal<number | null>;
2371
+ readonly paymentMethod: i0.Signal<string | null>;
2372
+ readonly billingInformation: i0.Signal<Customer | null>;
2373
+ setCustomerEmail(email: string | null): void;
2374
+ setCustomerId(id: number | null): void;
2375
+ setPaymentMethod(method: string | null): void;
2376
+ setBillingInformation(values: Customer): void;
2377
+ clearSelection(): void;
2378
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDetailsService, never>;
2379
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDetailsService>;
2380
+ }
2381
+
2382
+ declare class TicketSelectionDiscountService {
2383
+ private _coupon;
2384
+ private _corporateBond;
2385
+ private _corporateBondCode;
2386
+ private _giftBond;
2387
+ private _giftBondCode;
2388
+ readonly coupon: Signal<Coupon | null>;
2389
+ readonly corporateBond: Signal<CorporateBond | null>;
2390
+ readonly corporateBondCode: Signal<string | null>;
2391
+ readonly giftBond: Signal<GiftBondPurchase | null>;
2392
+ readonly giftBondCode: Signal<string | null>;
2393
+ readonly selectedDiscount: Signal<SelectedDiscountCard | null>;
2394
+ readonly selectedDiscountType: Signal<SelectedDiscountCardType | undefined>;
2395
+ readonly selectedDiscountValue: Signal<number | undefined>;
2396
+ setCoupon(coupon: Coupon | null): void;
2397
+ setCorporateBond(corporateBond: CorporateBond | null): void;
2398
+ setCorporateBondCode(code: string | null): void;
2399
+ setGiftBond(giftBond: GiftBondPurchase | null): void;
2400
+ setGiftBondCode(code: string | null): void;
2401
+ clearSelection(): void;
2402
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDiscountService, never>;
2403
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDiscountService>;
2404
+ }
2405
+
2406
+ declare class TicketSelectionTotalsService {
2407
+ private bookingDataService;
2408
+ private selectionService;
2409
+ private selectionDiscountService;
2410
+ readonly selectedProductEntries: i0.Signal<{
2411
+ id: number;
2412
+ quantity: number;
2413
+ }[]>;
2414
+ readonly selectedProductCount: i0.Signal<number>;
2415
+ readonly productSubtotal: i0.Signal<number>;
2416
+ readonly ticketSubtotal: i0.Signal<number>;
2417
+ readonly serviceFee: i0.Signal<number>;
2418
+ readonly discountAmount: i0.Signal<number | null>;
2419
+ subtotalValue(): number;
2420
+ totalValue(): number;
2421
+ totalDiscounted(): number | null;
2422
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionTotalsService, never>;
2423
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionTotalsService>;
2424
+ }
2425
+
2426
+ declare class TicketSelectionService {
2427
+ private bookingDataService;
2428
+ private feedbackModalService;
2429
+ private purchaseLimitService;
2430
+ private selectionDetailsService;
2431
+ private selectionDiscountService;
2432
+ private _zoneQuantities;
2433
+ private _allTickets;
2434
+ private _selectedTickets;
2435
+ private _selectedBlockedTickets;
2436
+ private _products;
2437
+ private _productQuantities;
2438
+ readonly selectedTickets: i0.Signal<PerformanceTicket[]>;
2439
+ readonly selectedBlockedTickets: i0.Signal<PerformanceTicket[]>;
2440
+ readonly selectedCount: i0.Signal<number>;
2441
+ readonly blockedSelectedCount: i0.Signal<number>;
2442
+ readonly selectedTicketIds: i0.Signal<Set<PerformanceTicket>>;
2443
+ readonly selectedBlockedTicketIds: i0.Signal<number[]>;
2444
+ readonly selectedTicketIdList: i0.Signal<number[]>;
2445
+ readonly summaryItems: i0.Signal<PerformanceTicket[]>;
2446
+ readonly products: i0.Signal<Product[]>;
2447
+ readonly productQuantities: i0.Signal<Map<number, number>>;
2448
+ readonly selectedProductEntries: i0.Signal<{
2449
+ id: number;
2450
+ quantity: number;
2451
+ }[]>;
2452
+ readonly selectedProductCount: i0.Signal<number>;
2453
+ readonly serviceFee: i0.Signal<number>;
2454
+ setTickets(tickets: PerformanceTicket[]): void;
2455
+ /** Aplica actualizaciones de estado recibidas por SSE (ver
2456
+ * SeatAvailabilitySseService). Muta los tickets existentes EN VEZ de
2457
+ * reemplazarlos por objetos nuevos: `_selectedTickets`/
2458
+ * `_selectedBlockedTickets` son Sets de referencias de objeto, no de ids,
2459
+ * así que reemplazar el array rompería la selección activa del usuario. */
2460
+ applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
2461
+ setProducts(products: Product[]): void;
2462
+ updateProductQuantity(productId: number, delta: number): void;
2463
+ getProductQuantity(productId: number): number;
2464
+ private getListByStatus;
2465
+ setSelectedTickets(tickets: PerformanceTicket[]): void;
2466
+ toggle(ticket: PerformanceTicket): void;
2467
+ select(ticket: PerformanceTicket): void;
2468
+ deselect(ticket: PerformanceTicket): void;
2469
+ clearBlockedSelection(): void;
2470
+ clearSelection(): void;
2471
+ isSelected(ticket: PerformanceTicket): boolean;
2472
+ initZoneQuantity(elementId: number, maxCapacity: number): void;
2473
+ getZoneMax(elementId: number): number;
2474
+ getZoneSelectedCount(elementId: number): number;
2475
+ setZoneQuantity(elementId: number, target: number): void;
2476
+ adjustZoneQuantity(elementId: number, delta: number): void;
2477
+ private remainingSelectionAllowance;
2478
+ private canAddMoreToSelection;
2479
+ private notifyPurchaseLimitReached;
2480
+ getZoneTickets(elementId: number): PerformanceTicket[];
2481
+ buildTooltipData(ticket: PerformanceTicket, elementName: string, seatLabel: string | null, x: number, y: number): TicketMapTooltipData;
2482
+ buildReservePerformanceDto(paymentMethod?: string, termsAccepted?: boolean, dataProcessingAccepted?: boolean): ReservePerformanceDto;
2483
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionService, never>;
2484
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionService>;
2485
+ }
2486
+
2487
+ declare class TicketMapZoomService {
2488
+ readonly currentZoom: i0.WritableSignal<number>;
2489
+ private stage?;
2490
+ private bookingDataService;
2491
+ private readonly defaultConfig;
2492
+ constructor();
2493
+ /**
2494
+ * Set the Konva stage instance
2495
+ */
2496
+ setStage(stage: Stage): void;
2497
+ /**
2498
+ * Zoom in by one step
2499
+ */
2500
+ zoomIn(): void;
2501
+ /**
2502
+ * Zoom out by one step
2503
+ */
2504
+ zoomOut(): void;
2505
+ /**
2506
+ * Reset zoom to 100%
2507
+ */
2508
+ resetZoom(): void;
2509
+ /**
2510
+ * Get current zoom as percentage string
2511
+ */
2512
+ getZoomPercentage(): string;
2513
+ /**
2514
+ * Get current zoom value
2515
+ */
2516
+ getCurrentZoom(): number;
2517
+ /**
2518
+ * Apply zoom with center point
2519
+ */
2520
+ private applyZoom;
2521
+ /**
2522
+ * Apply zoom scale with specific center point
2523
+ */
2524
+ private applyZoomScale;
2525
+ /**
2526
+ * Handle mouse wheel zoom toward the cursor position
2527
+ */
2528
+ handleWheelZoom(deltaY: number): void;
2529
+ /**
2530
+ * Fit the content bounds to fill the stage container
2531
+ */
2532
+ fitToContainer(padding?: number): void;
2533
+ /**
2534
+ * Get current stage position
2535
+ */
2536
+ getStagePosition(): {
2537
+ x: number;
2538
+ y: number;
2539
+ };
2540
+ /**
2541
+ * Set stage position (useful for programmatic panning)
2542
+ */
2543
+ setStagePosition(position: {
2544
+ x: number;
2545
+ y: number;
2546
+ }): void;
2547
+ /**
2548
+ * Fit the stage content bounds to the container, centering and scaling
2549
+ * to show the full content with optional padding.
2550
+ */
2551
+ fitToBounds(contentBounds: {
2552
+ x: number;
2553
+ y: number;
2554
+ width: number;
2555
+ height: number;
2556
+ }, containerWidth: number, containerHeight: number, padding?: number): void;
2557
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomService, never>;
2558
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketMapZoomService>;
2559
+ }
2560
+
2561
+ declare class ConfirmationOrderModalService extends BaseModalService {
2562
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalService, never>;
2563
+ static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationOrderModalService>;
2564
+ }
2565
+
2566
+ /**
2567
+ * Transporte SSE del estado de asientos en vivo. Es el único punto de la
2568
+ * librería que sabe de EventSource/HTTP para esto — aplica cada snapshot
2569
+ * recibido sobre PerformanceBookingDataService (repinta el mapa) y
2570
+ * TicketSelectionService (mantiene la disponibilidad al día para
2571
+ * validaciones de zona/límite de compra).
2572
+ *
2573
+ * Cada intento de reconexión pide un ticket NUEVO (el anterior es de un
2574
+ * solo uso y expira a los ~30s), con backoff exponencial acotado.
2575
+ */
2576
+ declare class SeatAvailabilitySseService {
2577
+ private apiService;
2578
+ private bookingDataService;
2579
+ private ticketSelectionService;
2580
+ private platformId;
2581
+ private config;
2582
+ private eventSource;
2583
+ private reconnectTimer;
2584
+ private reconnectAttempts;
2585
+ private currentPerformanceId;
2586
+ private currentIsAdmin;
2587
+ private stopped;
2588
+ constructor(apiService: ApiService, bookingDataService: PerformanceBookingDataService, ticketSelectionService: TicketSelectionService, platformId: Object, config: TickeraComponentsConfig);
2589
+ connect(performanceId: number, opts?: {
2590
+ isAdmin?: boolean;
2591
+ }): void;
2592
+ disconnect(): void;
2593
+ private openConnection;
2594
+ private startStream;
2595
+ private scheduleReconnect;
2596
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatAvailabilitySseService, never>;
2597
+ static ɵprov: i0.ɵɵInjectableDeclaration<SeatAvailabilitySseService>;
2598
+ }
2599
+
2600
+ /**
2601
+ * Cliente de la cola adaptativa (fase 4). No decide CUÁNDO se activa la
2602
+ * cola — eso es enteramente responsabilidad del backend (AdmissionGuard +
2603
+ * LoadBasedAdmissionPolicy) — este servicio solo sabe reaccionar al 429
2604
+ * `ADMISSION_QUEUE_REQUIRED` que ese guard puede devolver en
2605
+ * /carts/reserve y /orders/checkout.
2606
+ *
2607
+ * Uso típico en el punto de llamada (ver reservation-confirmation y
2608
+ * checkout-form): reintentar la request original dentro de un catchError:
2609
+ *
2610
+ * this.cartService.reserve(dto).pipe(
2611
+ * catchError((err) => {
2612
+ * if (!this.admissionQueueService.isAdmissionRequired(err)) return throwError(() => err);
2613
+ * const performanceId = this.admissionQueueService.getPerformanceId(err)!;
2614
+ * return this.admissionQueueService.waitForAdmission(performanceId).pipe(
2615
+ * switchMap(() => this.cartService.reserve(dto)),
2616
+ * );
2617
+ * }),
2618
+ * )
2619
+ *
2620
+ * Reutiliza el mismo transporte SSE con ticket de un solo uso de la fase 3
2621
+ * (ver SeatAvailabilitySseService) — acá el ticket llega directo en la
2622
+ * respuesta de /join, así que no hace falta un endpoint de ticket aparte;
2623
+ * cada reintento de conexión vuelve a hacer /join (el ticket anterior es
2624
+ * de un solo uso y expira a los ~30s).
2625
+ */
2626
+ declare class AdmissionQueueService {
2627
+ private apiService;
2628
+ private feedbackModalService;
2629
+ private platformId;
2630
+ private config;
2631
+ constructor(apiService: ApiService, feedbackModalService: FeedbackModalService, platformId: Object, config: TickeraComponentsConfig);
2632
+ /** True si el error es el 429 específico de "alta demanda, únete a la fila". */
2633
+ isAdmissionRequired(error: unknown): error is HttpErrorResponse;
2634
+ getPerformanceId(error: HttpErrorResponse): number | null;
2635
+ /**
2636
+ * Se une a la fila de `performanceId` y completa (emite una vez y cierra)
2637
+ * en cuanto el usuario queda admitido. Mientras espera, muestra un modal
2638
+ * ligero con la posición vigente, actualizado por SSE. Si quien se
2639
+ * suscribió se desuscribe antes de ser admitido (el usuario navega a
2640
+ * otro lado, cierra el modal, o el componente se destruye), libera el
2641
+ * lugar en la fila con /leave.
2642
+ */
2643
+ waitForAdmission(performanceId: number): Observable<void>;
2644
+ static ɵfac: i0.ɵɵFactoryDeclaration<AdmissionQueueService, never>;
2645
+ static ɵprov: i0.ɵɵInjectableDeclaration<AdmissionQueueService>;
2646
+ }
2647
+
2648
+ declare class TicketQrService {
2649
+ private apiService;
2650
+ constructor(apiService: ApiService);
2651
+ fetchQrToken(ticketUuid: string): Observable<QrTokenResponse>;
2652
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrService, never>;
2653
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrService>;
2654
+ }
2655
+
2656
+ declare class TicketQrModalService {
2657
+ isOpen: WritableSignal<boolean>;
2658
+ ticketUuid: WritableSignal<string | null>;
2659
+ ticketDescription: WritableSignal<string | null>;
2660
+ open(ticketUuid: string, description?: string): void;
2661
+ close(): void;
2662
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalService, never>;
2663
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrModalService>;
2664
+ }
2665
+
2666
+ declare class VipCardService {
2667
+ private apiService;
2668
+ constructor(apiService: ApiService);
2669
+ findMy(): Observable<{
2670
+ data: VipCard | null;
2671
+ }>;
2672
+ activate(data: any): Observable<VipOrderResponse>;
2673
+ recharge(data: any): Observable<VipOrderResponse>;
2674
+ fetchAll(params?: FetchVipCardsParams): Observable<VipCardsResponse>;
2675
+ fetchOneById(id: number): Observable<VipCardResponse>;
2676
+ activateAdmin(data: ActivateVipCardParams): Observable<VipOrderResponse>;
2677
+ rechargeAdmin(id: number, data: any): Observable<VipOrderResponse>;
2678
+ updateStatus(id: number, status: VipCardStatus): Observable<VipCardResponse>;
2679
+ updateTerms(id: number): Observable<VipCardResponse>;
2680
+ fetchTransactions(id: number, page?: number, limit?: number): Observable<VipTransactionsResponse>;
2681
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipCardService, never>;
2682
+ static ɵprov: i0.ɵɵInjectableDeclaration<VipCardService>;
2683
+ }
2684
+
1380
2685
  declare const authInterceptor: HttpInterceptorFn;
1381
2686
 
1382
2687
  declare class AppButtonComponent {
@@ -1389,10 +2694,11 @@ declare class AppButtonComponent {
1389
2694
  size: 'xs' | 'sm' | 'md' | 'lg';
1390
2695
  loadingText: string;
1391
2696
  icon: string;
2697
+ tooltip: string;
1392
2698
  handleClick(): void;
1393
2699
  get buttonClasses(): string;
1394
2700
  static ɵfac: i0.ɵɵFactoryDeclaration<AppButtonComponent, never>;
1395
- 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>;
2701
+ 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>;
1396
2702
  }
1397
2703
 
1398
2704
  declare class AppLinkButtonComponent {
@@ -1406,9 +2712,10 @@ declare class AppLinkButtonComponent {
1406
2712
  queryParams: Record<string, any>;
1407
2713
  size: 'xs' | 'sm' | 'md' | 'lg';
1408
2714
  variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent';
2715
+ tooltip: string;
1409
2716
  get buttonClasses(): string;
1410
2717
  static ɵfac: i0.ɵɵFactoryDeclaration<AppLinkButtonComponent, never>;
1411
- 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>;
2718
+ 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>;
1412
2719
  }
1413
2720
 
1414
2721
  declare class AppAlertComponent {
@@ -1421,15 +2728,29 @@ declare class AppAlertComponent {
1421
2728
  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>;
1422
2729
  }
1423
2730
 
1424
- declare class LoadingmModalComponent {
1425
- private loadingModalService;
1426
- constructor(loadingModalService: LoadingModalService);
1427
- get isOpen(): i0.WritableSignal<boolean>;
1428
- get title(): i0.WritableSignal<string>;
2731
+ declare class FeedbackModalComponent implements OnChanges, OnDestroy {
2732
+ isOpen: WritableSignal<boolean>;
2733
+ type: FeedbackModalType;
2734
+ title: string;
2735
+ message: string;
2736
+ showHeader: boolean;
2737
+ showCloseButton: boolean;
2738
+ showTitle: boolean;
2739
+ autoClose: boolean;
2740
+ autoCloseDuration: number;
2741
+ buttonText: string;
2742
+ closed: EventEmitter<void>;
2743
+ private autoCloseTimeout;
2744
+ get defaultButtonText(): string;
2745
+ get resolvedButtonText(): string;
2746
+ get buttonVariant(): 'primary' | 'secondary';
2747
+ ngOnChanges(changes: SimpleChanges): void;
2748
+ ngOnDestroy(): void;
1429
2749
  closeModal(): void;
1430
- onCitySaved(): void;
1431
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingmModalComponent, never>;
1432
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingmModalComponent, "loading-modal", never, {}, {}, never, never, true, never>;
2750
+ private scheduleAutoClose;
2751
+ private clearAutoClose;
2752
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
2753
+ 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>;
1433
2754
  }
1434
2755
 
1435
2756
  declare class DeleteConfirmationComponent {
@@ -1452,12 +2773,29 @@ declare class DeleteConfirmationComponent {
1452
2773
  declare class AppModalComponent {
1453
2774
  title: string;
1454
2775
  disableClose: boolean;
2776
+ showHeader: boolean;
2777
+ showCloseButton: boolean;
2778
+ showTitle: boolean;
2779
+ interactiveClose: boolean;
1455
2780
  isOpen: WritableSignal<boolean>;
1456
- size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
2781
+ size: ModalSize;
1457
2782
  closeModal: EventEmitter<void>;
1458
2783
  onCloseModal(): void;
2784
+ onInteractiveClose(): void;
2785
+ onKeydownEscape(): void;
1459
2786
  static ɵfac: i0.ɵɵFactoryDeclaration<AppModalComponent, never>;
1460
- 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>;
2787
+ 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>;
2788
+ }
2789
+
2790
+ declare class AppBadgeComponent {
2791
+ text: string;
2792
+ color: BadgeColor;
2793
+ size: BadgeSize;
2794
+ bordered: boolean;
2795
+ backgroundColor: string;
2796
+ textColor: string;
2797
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppBadgeComponent, never>;
2798
+ 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>;
1461
2799
  }
1462
2800
 
1463
2801
  declare class AuditInformationComponent {
@@ -1472,6 +2810,7 @@ declare class DynamicTableComponent {
1472
2810
  title: string;
1473
2811
  data: any[];
1474
2812
  headers: any[];
2813
+ searcherPlaceholder: string;
1475
2814
  columnComponents: {
1476
2815
  [key: string]: Type<any>;
1477
2816
  };
@@ -1479,17 +2818,79 @@ declare class DynamicTableComponent {
1479
2818
  totalItems: number;
1480
2819
  itemsPerPage: number;
1481
2820
  currentPage: number;
2821
+ searchValue: string;
1482
2822
  pageChange: EventEmitter<number>;
1483
2823
  searchChange: EventEmitter<string>;
2824
+ pageSizeChange: EventEmitter<number>;
2825
+ pageSizeOptions: number[];
1484
2826
  showPagination: boolean;
1485
2827
  showSearch: boolean;
1486
2828
  showTitle: boolean;
1487
2829
  get totalPages(): number;
1488
2830
  onSearch(event: any): void;
1489
2831
  changePage(delta: number): void;
2832
+ changePageSize(event: any): void;
1490
2833
  createInjector(row: any): Injector;
1491
2834
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicTableComponent, never>;
1492
- 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>;
2835
+ 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>;
2836
+ }
2837
+
2838
+ declare class TextExpandableComponent implements OnChanges {
2839
+ text: string;
2840
+ maxLength: number;
2841
+ fontSize: TextFontSize;
2842
+ allowHtml: boolean;
2843
+ maxLines?: number;
2844
+ protected expanded: boolean;
2845
+ ngOnChanges(): void;
2846
+ get plainText(): string;
2847
+ get truncated(): boolean;
2848
+ get visibleText(): string;
2849
+ get lines(): number;
2850
+ toggleExpanded(): void;
2851
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextExpandableComponent, never>;
2852
+ 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>;
2853
+ }
2854
+
2855
+ declare class ShowCardComponent {
2856
+ show: Show;
2857
+ linkText: string;
2858
+ linkUrlFn?: (show: Show) => string;
2859
+ linkQueryParams?: Record<string, any>;
2860
+ transloco: TranslocoService;
2861
+ dateService: DateService;
2862
+ get showTypeColor(): {
2863
+ bg: string;
2864
+ text: string;
2865
+ };
2866
+ formatTimeDate(date: string): Date;
2867
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardComponent, never>;
2868
+ 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>;
2869
+ }
2870
+
2871
+ declare class ShowTypeBadgeComponent {
2872
+ show: Show;
2873
+ size: BadgeSize;
2874
+ transloco: TranslocoService;
2875
+ get showTypeColor(): {
2876
+ bg: string;
2877
+ text: string;
2878
+ };
2879
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowTypeBadgeComponent, never>;
2880
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShowTypeBadgeComponent, "show-type-badge", never, { "show": { "alias": "show"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
2881
+ }
2882
+
2883
+ declare class ShowCardSkeletonComponent {
2884
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardSkeletonComponent, never>;
2885
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShowCardSkeletonComponent, "show-card-skeleton", never, {}, {}, never, never, true, never>;
2886
+ }
2887
+
2888
+ declare class AppBreadcumbComponent {
2889
+ homeUrl: string | undefined;
2890
+ steps: BreadcrumbStep[];
2891
+ theme: BreadcrumbTheme;
2892
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppBreadcumbComponent, never>;
2893
+ 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>;
1493
2894
  }
1494
2895
 
1495
2896
  declare class LanguageSwitcherComponent {
@@ -1512,7 +2913,9 @@ declare class FormInputComponent implements ControlValueAccessor {
1512
2913
  placeholder: string;
1513
2914
  required: boolean;
1514
2915
  readonly: boolean;
2916
+ maxlength: number | null;
1515
2917
  minlength: number | null;
2918
+ max: number | null;
1516
2919
  min: number | null;
1517
2920
  step: number | null;
1518
2921
  pattern: string | null;
@@ -1534,12 +2937,12 @@ declare class FormInputComponent implements ControlValueAccessor {
1534
2937
  get inputClasses(): string;
1535
2938
  get fieldGroupClasses(): string;
1536
2939
  static ɵfac: i0.ɵɵFactoryDeclaration<FormInputComponent, [{ optional: true; self: true; }, null]>;
1537
- 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>;
2940
+ 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>;
1538
2941
  }
1539
2942
 
1540
2943
  declare class FormSelectComponent implements ControlValueAccessor {
1541
2944
  ngControl: NgControl;
1542
- private transloco;
2945
+ protected transloco: TranslocoService;
1543
2946
  label: string;
1544
2947
  name: string;
1545
2948
  id: string;
@@ -1563,7 +2966,6 @@ declare class FormSelectComponent implements ControlValueAccessor {
1563
2966
  get inputId(): string;
1564
2967
  get showError(): boolean;
1565
2968
  get errorMessage(): string;
1566
- get resolvedDefaultOptionLabel(): string;
1567
2969
  get fieldGroupClasses(): string;
1568
2970
  static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [{ optional: true; self: true; }, null]>;
1569
2971
  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>;
@@ -1601,6 +3003,105 @@ declare class FormTextareaComponent implements ControlValueAccessor {
1601
3003
  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>;
1602
3004
  }
1603
3005
 
3006
+ declare class NumberInputComponent implements ControlValueAccessor, Validator, OnChanges {
3007
+ transloco: TranslocoService;
3008
+ private injector;
3009
+ private elementRef;
3010
+ label: string;
3011
+ name: string;
3012
+ id: string;
3013
+ placeholder: string;
3014
+ required: boolean;
3015
+ readonly: boolean;
3016
+ min: number | null;
3017
+ max: number | null;
3018
+ step: number;
3019
+ fieldGroupClass: string;
3020
+ value: number | null;
3021
+ disabled: boolean;
3022
+ onChange: any;
3023
+ onTouched: any;
3024
+ private _ngControl;
3025
+ constructor(transloco: TranslocoService, injector: Injector, elementRef: ElementRef);
3026
+ get ngControl(): NgControl | null;
3027
+ ngOnChanges(changes: SimpleChanges): void;
3028
+ validate(control: AbstractControl): ValidationErrors | null;
3029
+ writeValue(value: any): void;
3030
+ registerOnChange(fn: any): void;
3031
+ registerOnTouched(fn: any): void;
3032
+ setDisabledState(isDisabled: boolean): void;
3033
+ onInput(value: any): void;
3034
+ increment(): void;
3035
+ decrement(): void;
3036
+ get canIncrement(): boolean;
3037
+ get canDecrement(): boolean;
3038
+ get inputId(): string;
3039
+ get showError(): boolean;
3040
+ get errorMessage(): string;
3041
+ get fieldGroupClasses(): string;
3042
+ private clamp;
3043
+ private round;
3044
+ private emitNativeChange;
3045
+ private minValidator;
3046
+ private maxValidator;
3047
+ static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputComponent, never>;
3048
+ 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>;
3049
+ }
3050
+
3051
+ declare class PhoneInputComponent implements ControlValueAccessor, Validator, OnChanges {
3052
+ private transloco;
3053
+ private injector;
3054
+ label: string;
3055
+ name: string;
3056
+ id: string;
3057
+ placeholder: string;
3058
+ required: boolean;
3059
+ readonly: boolean;
3060
+ maxNationalDigits: number | null;
3061
+ minNationalDigits: number | null;
3062
+ defaultCountry: string;
3063
+ fieldGroupClass: string;
3064
+ readonly countries: tickera_angular_components.PhoneCountry[];
3065
+ readonly phoneOptions: {
3066
+ search: string;
3067
+ name: string;
3068
+ isoCode: string;
3069
+ dialCode: string;
3070
+ }[];
3071
+ selectedIso: string;
3072
+ nationalNumber: string;
3073
+ disabled: boolean;
3074
+ onChange: any;
3075
+ onTouched: any;
3076
+ onValidatorChange: () => void;
3077
+ private _ngControl;
3078
+ constructor(transloco: TranslocoService, injector: Injector);
3079
+ get ngControl(): NgControl | null;
3080
+ get selectedCountry(): tickera_angular_components.PhoneCountry;
3081
+ get dialCode(): string;
3082
+ dialCodeOf(isoCode: string): string;
3083
+ get value(): string;
3084
+ ngOnChanges(changes: SimpleChanges): void;
3085
+ registerOnValidatorChange(fn: () => void): void;
3086
+ validate(control: AbstractControl): ValidationErrors | null;
3087
+ writeValue(value: string | null | undefined): void;
3088
+ registerOnChange(fn: any): void;
3089
+ registerOnTouched(fn: any): void;
3090
+ setDisabledState(isDisabled: boolean): void;
3091
+ onInput(event: Event): void;
3092
+ onCountryChange(isoCode: string): void;
3093
+ get inputId(): string;
3094
+ get showError(): boolean;
3095
+ get errorMessage(): string;
3096
+ get effectivePlaceholder(): string;
3097
+ get fieldGroupClasses(): string;
3098
+ flag(isoCode: string): string;
3099
+ private sanitize;
3100
+ private nationalDigits;
3101
+ static ɵfac: i0.ɵɵFactoryDeclaration<PhoneInputComponent, never>;
3102
+ 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>;
3103
+ }
3104
+
1604
3105
  declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {
1605
3106
  ngControl: NgControl;
1606
3107
  private transloco;
@@ -1618,7 +3119,8 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
1618
3119
  onChange: any;
1619
3120
  onTouched: any;
1620
3121
  private subscription;
1621
- constructor(ngControl: NgControl, transloco: TranslocoService);
3122
+ isBrowser: boolean;
3123
+ constructor(ngControl: NgControl, transloco: TranslocoService, platformId: object);
1622
3124
  ngOnInit(): void;
1623
3125
  ngOnDestroy(): void;
1624
3126
  writeValue(value: any): void;
@@ -1629,7 +3131,7 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
1629
3131
  get showError(): boolean;
1630
3132
  get errorMessage(): string;
1631
3133
  get fieldGroupClasses(): string;
1632
- static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null]>;
3134
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null, null]>;
1633
3135
  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>;
1634
3136
  }
1635
3137
 
@@ -2280,6 +3782,28 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
2280
3782
  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>;
2281
3783
  }
2282
3784
 
3785
+ declare class PerformanceTicketStatusBadgeComponent {
3786
+ ticket: PerformanceTicket;
3787
+ size: BadgeSize;
3788
+ protected get statusColors(): {
3789
+ text: string;
3790
+ bg: string;
3791
+ };
3792
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketStatusBadgeComponent, never>;
3793
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceTicketStatusBadgeComponent, "performance-ticket-status-badge", never, { "ticket": { "alias": "ticket"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
3794
+ }
3795
+
3796
+ declare class PerformanceStatusBadgeComponent {
3797
+ performance: Performance;
3798
+ size: BadgeSize;
3799
+ protected get statusColors(): {
3800
+ text: string;
3801
+ bg: string;
3802
+ };
3803
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceStatusBadgeComponent, never>;
3804
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceStatusBadgeComponent, "performance-status-badge", never, { "performance": { "alias": "performance"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
3805
+ }
3806
+
2283
3807
  declare class DaySelectorGridComponent {
2284
3808
  private platformId;
2285
3809
  protected performanceService: PerformanceService;
@@ -2301,11 +3825,15 @@ declare class DaySelectorGridComponent {
2301
3825
  declare class PerformanceCardComponent {
2302
3826
  protected listEventService: PerformancesListEventsService;
2303
3827
  card: DailyPerformanceItem;
3828
+ linkText: string;
3829
+ linkUrlFn?: (card: DailyPerformanceItem) => string;
3830
+ linkQueryParams?: Record<string, any>;
2304
3831
  constructor(listEventService: PerformancesListEventsService);
3832
+ get badgeColor(): 'success' | 'error';
2305
3833
  onSelect(): void;
2306
3834
  isSelected(): boolean;
2307
3835
  static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardComponent, never>;
2308
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardComponent, "performance-card", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
3836
+ 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>;
2309
3837
  }
2310
3838
 
2311
3839
  declare class PerformanceCardListComponent {
@@ -2313,6 +3841,9 @@ declare class PerformanceCardListComponent {
2313
3841
  protected performanceService: PerformanceService;
2314
3842
  protected listEventService: PerformancesListEventsService;
2315
3843
  protected toastService: ToastService;
3844
+ linkText: string;
3845
+ linkUrlFn?: (card: DailyPerformanceItem) => string;
3846
+ linkQueryParams?: Record<string, any>;
2316
3847
  loadingData: WritableSignal<boolean>;
2317
3848
  performances: WritableSignal<DailyPerformanceItem[]>;
2318
3849
  constructor(platformId: object, performanceService: PerformanceService, listEventService: PerformancesListEventsService, toastService: ToastService);
@@ -2320,7 +3851,7 @@ declare class PerformanceCardListComponent {
2320
3851
  private loadData;
2321
3852
  get selectedDayDate(): string | null;
2322
3853
  static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardListComponent, never>;
2323
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, {}, {}, never, never, true, never>;
3854
+ 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>;
2324
3855
  }
2325
3856
 
2326
3857
  declare class PerformanceStepperComponent {
@@ -2349,9 +3880,9 @@ declare class ShowsFilterComponent {
2349
3880
  }
2350
3881
 
2351
3882
  interface PriceZoneItem {
2352
- colorClass: string;
3883
+ color: string;
2353
3884
  name: string;
2354
- seatsAvailable: number;
3885
+ available_seats: number;
2355
3886
  price: string;
2356
3887
  }
2357
3888
 
@@ -2367,5 +3898,405 @@ declare class ZonePriceListComponent {
2367
3898
  static ɵcmp: i0.ɵɵComponentDeclaration<ZonePriceListComponent, "zone-price-list", never, { "zones": { "alias": "zones"; "required": true; }; }, {}, never, never, true, never>;
2368
3899
  }
2369
3900
 
2370
- 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 };
2371
- 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 };
3901
+ declare class TicketMapWidgetComponent {
3902
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetComponent, never>;
3903
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetComponent, "ticket-map-widget", never, {}, {}, never, ["*"], true, never>;
3904
+ }
3905
+
3906
+ declare class TicketMapWidgetHeaderComponent {
3907
+ title: string;
3908
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetHeaderComponent, never>;
3909
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetHeaderComponent, "ticket-map-widget-header", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], true, never>;
3910
+ }
3911
+
3912
+ declare class TicketMapZoomControlsComponent {
3913
+ private zoomService;
3914
+ readonly currentZoom: i0.Signal<number>;
3915
+ readonly zoomPercentage: i0.Signal<string>;
3916
+ constructor(zoomService: TicketMapZoomService);
3917
+ zoomIn(): void;
3918
+ zoomOut(): void;
3919
+ resetZoom(): void;
3920
+ fitToContainer(): void;
3921
+ handleZoomAction(action: string): void;
3922
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomControlsComponent, never>;
3923
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapZoomControlsComponent, "ticket-map-zoom-controls", never, {}, {}, never, never, true, never>;
3924
+ }
3925
+
3926
+ declare class TicketMapFloorSelectorComponent {
3927
+ private bookingDataService;
3928
+ readonly availableFloors: i0.Signal<tickera_angular_components.HallFloor[]>;
3929
+ readonly visibleFloorIds: i0.Signal<Set<number>>;
3930
+ readonly hasMultipleVisible: i0.Signal<boolean>;
3931
+ constructor(bookingDataService: PerformanceBookingDataService);
3932
+ isFloorVisible(floorId: number): boolean;
3933
+ canToggleOff(floorId: number): boolean;
3934
+ toggleFloor(floorId: number): void;
3935
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapFloorSelectorComponent, never>;
3936
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapFloorSelectorComponent, "ticket-map-floor-selector", never, {}, {}, never, never, true, never>;
3937
+ }
3938
+
3939
+ declare class PerformanceTicketMapComponent implements OnDestroy, AfterViewInit {
3940
+ private platformId;
3941
+ protected bookingDataService: PerformanceBookingDataService;
3942
+ protected feedbackModalService: FeedbackModalService;
3943
+ protected selectionService: TicketSelectionService;
3944
+ protected zoomService: TicketMapZoomService;
3945
+ selectionChange: EventEmitter<PerformanceTicket[]>;
3946
+ needsLoginError: EventEmitter<any>;
3947
+ readOnly: boolean;
3948
+ needsLogin: boolean;
3949
+ isLoggedIn: boolean;
3950
+ stageComponent?: StageComponent;
3951
+ protected tooltipData: i0.WritableSignal<TicketMapTooltipData | null>;
3952
+ protected renderData: i0.Signal<ElementRenderData[]>;
3953
+ private stageReady;
3954
+ private autoFitDone;
3955
+ private resizeObserver?;
3956
+ constructor(platformId: object, bookingDataService: PerformanceBookingDataService, feedbackModalService: FeedbackModalService, selectionService: TicketSelectionService, zoomService: TicketMapZoomService);
3957
+ protected get isBrowser(): boolean;
3958
+ ngAfterViewInit(): void;
3959
+ private setupResizeObserver;
3960
+ private syncStageToContainer;
3961
+ ngOnDestroy(): void;
3962
+ private getInternalPointer;
3963
+ protected selectHallFloor(floorId: number): void;
3964
+ protected handleStageClick(konvaEvent: any): void;
3965
+ protected handleStageMouseMove(konvaEvent: any): void;
3966
+ protected handleStageMouseLeave(): void;
3967
+ protected handleWheel(konvaEvent: any): void;
3968
+ protected trackByElementId(_index: number, item: ElementRenderData): number;
3969
+ protected trackByFloorId(_index: number, floor: HallFloorOption): HallFloorOption;
3970
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketMapComponent, never>;
3971
+ 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>;
3972
+ }
3973
+
3974
+ declare class TicketMapPriceZonesComponent {
3975
+ title: string;
3976
+ protected bookingDataService: PerformanceBookingDataService;
3977
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapPriceZonesComponent, never>;
3978
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapPriceZonesComponent, "ticket-map-price-zones", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never>;
3979
+ }
3980
+
3981
+ declare class TicketMapProductSelectionItemComponent {
3982
+ protected selectionService: TicketSelectionService;
3983
+ product: Product;
3984
+ constructor(selectionService: TicketSelectionService);
3985
+ get quantity(): number;
3986
+ get firstImage(): string | undefined;
3987
+ increment(): void;
3988
+ decrement(): void;
3989
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapProductSelectionItemComponent, never>;
3990
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapProductSelectionItemComponent, "ticket-map-product-selection-item", never, { "product": { "alias": "product"; "required": true; }; }, {}, never, never, true, never>;
3991
+ }
3992
+
3993
+ declare class TIcketMapProductSelectionComponent {
3994
+ private bookingDataService;
3995
+ readonly products: i0.Signal<tickera_angular_components.Product[]>;
3996
+ static ɵfac: i0.ɵɵFactoryDeclaration<TIcketMapProductSelectionComponent, never>;
3997
+ static ɵcmp: i0.ɵɵComponentDeclaration<TIcketMapProductSelectionComponent, "ticket-map-product-selection", never, {}, {}, never, never, true, never>;
3998
+ }
3999
+
4000
+ declare class TicketMapTotalsComponent {
4001
+ protected bookingDataService: PerformanceBookingDataService;
4002
+ protected selectionDetailsService: TicketSelectionDetailsService;
4003
+ protected selectionDiscountService: TicketSelectionDiscountService;
4004
+ protected selectionTotalsService: TicketSelectionTotalsService;
4005
+ protected selectionService: TicketSelectionService;
4006
+ private activatedRoute;
4007
+ title: string;
4008
+ buttonText: string;
4009
+ loadingButtonText: string;
4010
+ isLoading: boolean;
4011
+ onPurchaseClick: EventEmitter<void>;
4012
+ constructor(bookingDataService: PerformanceBookingDataService, selectionDetailsService: TicketSelectionDetailsService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, activatedRoute: ActivatedRoute);
4013
+ get serviceFee(): number;
4014
+ get performanceId(): number;
4015
+ get selectedTicketIds(): number[];
4016
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapTotalsComponent, never>;
4017
+ 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>;
4018
+ }
4019
+
4020
+ declare class TicketMapWrapperComponent {
4021
+ selectionChange: EventEmitter<PerformanceTicket[]>;
4022
+ needsLoginError: EventEmitter<any>;
4023
+ readOnly: boolean;
4024
+ needsLogin: boolean;
4025
+ isLoggedIn: boolean;
4026
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWrapperComponent, never>;
4027
+ 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>;
4028
+ }
4029
+
4030
+ declare class SeatSelectionEmptySummaryComponent {
4031
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionEmptySummaryComponent, never>;
4032
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionEmptySummaryComponent, "seat-selection-empty-summary", never, {}, {}, never, never, true, never>;
4033
+ }
4034
+
4035
+ declare class SeatSelectionSummaryComponent {
4036
+ protected selectionService: TicketSelectionService;
4037
+ title: string;
4038
+ clearButtonText: string;
4039
+ constructor(selectionService: TicketSelectionService);
4040
+ trackByItem(item: PerformanceTicket): string | number;
4041
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryComponent, never>;
4042
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryComponent, "seat-selection-summary", never, { "title": { "alias": "title"; "required": false; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; }; }, {}, never, never, true, never>;
4043
+ }
4044
+
4045
+ declare class SeatSelectionSummaryItemComponent {
4046
+ protected selectionService: TicketSelectionService;
4047
+ item: PerformanceTicket;
4048
+ constructor(selectionService: TicketSelectionService);
4049
+ getItemTypeIcon: (ticket: PerformanceTicket) => string;
4050
+ get isZone(): boolean;
4051
+ get zoneMax(): number;
4052
+ onZoneQuantityChange(value: number | null): void;
4053
+ removeItem(ticket: PerformanceTicket): void;
4054
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryItemComponent, never>;
4055
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryItemComponent, "seat-selection-summary-item", never, { "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
4056
+ }
4057
+
4058
+ declare class ConfirmationOrderModalComponent {
4059
+ private confirmationOrderModalService;
4060
+ private selectionDiscountService;
4061
+ private selectionTotalsService;
4062
+ private selectionService;
4063
+ private bookingDataService;
4064
+ modalTitle: string;
4065
+ confirmButtonText: string;
4066
+ confirmButtonTextLoading: string;
4067
+ loading: boolean;
4068
+ onConfirm: EventEmitter<any>;
4069
+ constructor(confirmationOrderModalService: ConfirmationOrderModalService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, bookingDataService: PerformanceBookingDataService);
4070
+ get isOpen(): i0.WritableSignal<boolean>;
4071
+ get selectedCount(): number;
4072
+ get serviceFee(): number;
4073
+ get subtotalValue(): number;
4074
+ get ticketSubtotal(): number;
4075
+ get productSubtotal(): number;
4076
+ get productCount(): number;
4077
+ get totalValue(): number;
4078
+ get totalDiscounted(): number | null;
4079
+ get coupon(): tickera_angular_components.Coupon | null;
4080
+ get corporateBond(): tickera_angular_components.CorporateBond | null;
4081
+ get giftBond(): tickera_angular_components.GiftBondPurchase | null;
4082
+ onClose(): void;
4083
+ confirmOrder(): void;
4084
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalComponent, never>;
4085
+ 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>;
4086
+ }
4087
+
4088
+ declare class OrderInformationComponent {
4089
+ readonly transloco: TranslocoService;
4090
+ private readonly toastService;
4091
+ order: Order;
4092
+ showPayButton: boolean;
4093
+ createMpPreference?: (order: Order) => Observable<MercadoPagoPreference>;
4094
+ paymentLinkCreated: EventEmitter<MercadoPagoPreference>;
4095
+ isLoading: boolean;
4096
+ constructor(transloco: TranslocoService, toastService: ToastService);
4097
+ get showMpButton(): boolean;
4098
+ payWithMercadoPago(): void;
4099
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderInformationComponent, never>;
4100
+ 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>;
4101
+ }
4102
+
4103
+ declare class OrderStatusBadgeComponent {
4104
+ protected transloco: TranslocoService;
4105
+ order: Order | RecentOrder;
4106
+ size: BadgeSize;
4107
+ constructor(transloco: TranslocoService);
4108
+ protected get statusColors(): {
4109
+ text: string;
4110
+ bg: string;
4111
+ };
4112
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderStatusBadgeComponent, never>;
4113
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderStatusBadgeComponent, "order-status-badge", never, { "order": { "alias": "order"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
4114
+ }
4115
+
4116
+ declare class OrderItemTypeBadgeComponent {
4117
+ protected transloco: TranslocoService;
4118
+ item: OrderItem;
4119
+ size: BadgeSize;
4120
+ constructor(transloco: TranslocoService);
4121
+ protected get statusColors(): {
4122
+ text: string;
4123
+ bg: string;
4124
+ };
4125
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemTypeBadgeComponent, never>;
4126
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemTypeBadgeComponent, "order-item-type-badge", never, { "item": { "alias": "item"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
4127
+ }
4128
+
4129
+ declare class OrderItemsComponent {
4130
+ private ticketQrModalService;
4131
+ order: Order;
4132
+ ticketCanOpenQr: (order: Order, ticket: tickera_angular_components.PerformanceTicket) => boolean;
4133
+ constructor(ticketQrModalService: TicketQrModalService);
4134
+ protected get orderItems(): Order['order_items'];
4135
+ protected get products(): Order['order_items'];
4136
+ protected get tickets(): Order['order_items'];
4137
+ protected get giftBonds(): Order['order_items'];
4138
+ protected get corporateBonds(): Order['order_items'];
4139
+ protected get vipRecharges(): Order['order_items'];
4140
+ protected get showActionColumn(): boolean;
4141
+ protected itemTotal(quantity: number, price: number): number;
4142
+ protected hasDiscount(): boolean;
4143
+ protected get totals(): {
4144
+ giftBonds: number;
4145
+ corporateBonds: number;
4146
+ products: number;
4147
+ tickets: number;
4148
+ vipRecharges: number;
4149
+ };
4150
+ openTicketQr(ticketUuid: string, description: string): void;
4151
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemsComponent, never>;
4152
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemsComponent, "order-items", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4153
+ }
4154
+
4155
+ declare class OrderDiscountAppliedComponent {
4156
+ order: Order;
4157
+ protected get discountInfo(): OrderDiscountInfo;
4158
+ protected get hasDiscount(): boolean;
4159
+ protected get discountPercentage(): number | null;
4160
+ protected get badgeColors(): {
4161
+ text: string;
4162
+ bg: string;
4163
+ };
4164
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderDiscountAppliedComponent, never>;
4165
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderDiscountAppliedComponent, "order-discount-applied", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4166
+ }
4167
+
4168
+ interface BillingField {
4169
+ label: string;
4170
+ value: string | number | null;
4171
+ }
4172
+ declare class OrderBillingInfoComponent {
4173
+ order: Order;
4174
+ protected get fields(): BillingField[];
4175
+ protected get hasFields(): boolean;
4176
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderBillingInfoComponent, never>;
4177
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderBillingInfoComponent, "order-billing-info", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4178
+ }
4179
+
4180
+ declare class OrderTransactionsComponent {
4181
+ private transactionDetailsModalService;
4182
+ order: Order;
4183
+ constructor(transactionDetailsModalService: OrderTransactionDetailsModalService);
4184
+ protected get transactions(): Transaction[];
4185
+ protected get hasTransactions(): boolean;
4186
+ protected get txColors(): Record<string, {
4187
+ text: string;
4188
+ bg: string;
4189
+ }>;
4190
+ protected openTransaction(transaction: Transaction): void;
4191
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionsComponent, never>;
4192
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionsComponent, "order-transactions", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
4193
+ }
4194
+
4195
+ declare class OrderTransactionDetailsModalComponent {
4196
+ private modalService;
4197
+ isOpen: WritableSignal<boolean> | null;
4198
+ transaction: Transaction | null;
4199
+ get modalIsOpen(): WritableSignal<boolean>;
4200
+ get selectedTransaction(): WritableSignal<Transaction | null>;
4201
+ protected get txColors(): Record<TransactionStatus, {
4202
+ text: string;
4203
+ bg: string;
4204
+ }>;
4205
+ protected get gatewayResponse(): string;
4206
+ onClose(): void;
4207
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalComponent, never>;
4208
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionDetailsModalComponent, "order-transaction-details-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, true, never>;
4209
+ }
4210
+
4211
+ declare class TicketQrComponent implements OnInit, OnDestroy {
4212
+ private ticketQrService;
4213
+ private platformId;
4214
+ ticketUuid: string;
4215
+ qrCanvas: ElementRef<HTMLCanvasElement>;
4216
+ loading: i0.WritableSignal<boolean>;
4217
+ error: i0.WritableSignal<boolean>;
4218
+ refreshing: i0.WritableSignal<boolean>;
4219
+ countdown: i0.WritableSignal<number>;
4220
+ private destroy$;
4221
+ private refreshTimeout;
4222
+ private countdownInterval;
4223
+ private isFetching;
4224
+ constructor(ticketQrService: TicketQrService, platformId: Object);
4225
+ ngOnInit(): void;
4226
+ ngOnDestroy(): void;
4227
+ private onVisibilityChange;
4228
+ private onFocus;
4229
+ private refreshFromReenter;
4230
+ retry(): void;
4231
+ private clearTimers;
4232
+ private fetchAndRender;
4233
+ private scheduleRefresh;
4234
+ private startCountdown;
4235
+ private renderQr;
4236
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrComponent, never>;
4237
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrComponent, "performance-ticket-qr", never, { "ticketUuid": { "alias": "ticketUuid"; "required": true; }; }, {}, never, never, true, never>;
4238
+ }
4239
+
4240
+ declare class TicketQrModalComponent {
4241
+ private ticketQrModalService;
4242
+ constructor(ticketQrModalService: TicketQrModalService);
4243
+ get isOpen(): i0.WritableSignal<boolean>;
4244
+ get ticketUuid(): i0.WritableSignal<string | null>;
4245
+ get ticketDescription(): i0.WritableSignal<string | null>;
4246
+ onClose(): void;
4247
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalComponent, never>;
4248
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrModalComponent, "ticket-qr-modal", never, {}, {}, never, never, true, never>;
4249
+ }
4250
+
4251
+ declare class VipBalanceCardComponent {
4252
+ card: VipCard | null;
4253
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipBalanceCardComponent, never>;
4254
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipBalanceCardComponent, "vip-balance-card", never, { "card": { "alias": "card"; "required": false; }; }, {}, never, never, true, never>;
4255
+ }
4256
+
4257
+ declare class VipCardStatusBadgeComponent {
4258
+ protected readonly tranloco: TranslocoService;
4259
+ card: VipCard;
4260
+ get statusColor(): BadgeColor;
4261
+ get statusTranslationKey(): string;
4262
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipCardStatusBadgeComponent, never>;
4263
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipCardStatusBadgeComponent, "vip-card-status-badge", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
4264
+ }
4265
+
4266
+ declare class VipRechargeModalComponent {
4267
+ private fb;
4268
+ protected transloco: TranslocoService;
4269
+ title: string;
4270
+ submitLabel: string;
4271
+ loading: boolean;
4272
+ amountStep: number;
4273
+ minAmount: number;
4274
+ maxAmount: number;
4275
+ isOpen: WritableSignal<boolean>;
4276
+ closeModal: EventEmitter<void>;
4277
+ confirm: EventEmitter<{
4278
+ amount: number;
4279
+ payment_method: string;
4280
+ }>;
4281
+ rechargeForm: FormGroup;
4282
+ paymentMethodOptions: {
4283
+ label: string;
4284
+ value: string;
4285
+ }[];
4286
+ constructor(fb: FormBuilder, transloco: TranslocoService);
4287
+ onClose(): void;
4288
+ onSubmit(): void;
4289
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipRechargeModalComponent, never>;
4290
+ 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; }; }, { "closeModal": "closeModal"; "confirm": "confirm"; }, never, never, true, never>;
4291
+ }
4292
+
4293
+ declare class VipTransactionsTableComponent {
4294
+ transactions: VipTransaction[];
4295
+ loading: boolean;
4296
+ typeLabel(type: VipTransactionType): string;
4297
+ static ɵfac: i0.ɵɵFactoryDeclaration<VipTransactionsTableComponent, never>;
4298
+ static ɵcmp: i0.ɵɵComponentDeclaration<VipTransactionsTableComponent, "vip-transactions-table", never, { "transactions": { "alias": "transactions"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
4299
+ }
4300
+
4301
+ 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, 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 };
4302
+ 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, VipTransaction, VipTransactionsResponse };