tickera-angular-components 0.0.1-dev.8 → 0.0.1-dev.81

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,17 @@
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, OnInit, ElementRef, AfterViewInit } from '@angular/core';
3
3
  import { TranslocoLoader, TranslocoService } from '@jsverse/transloco';
4
4
  import * as rxjs from 'rxjs';
5
5
  import { Observable, Subject } from 'rxjs';
6
+ import { ShapeConfig, Shape } from 'konva/lib/Shape';
7
+ import { Context } from 'konva/lib/Context';
6
8
  import { ValidatorFn, FormGroup, FormBuilder, ControlValueAccessor, NgControl, Validator, AbstractControl, FormControl } from '@angular/forms';
7
9
  import { HttpClient, HttpInterceptorFn } from '@angular/common/http';
10
+ import { Stage } from 'konva/lib/Stage';
8
11
  import { Toolbar, Editor } from 'ngx-editor';
9
- import { Router } from '@angular/router';
12
+ import { Router, ActivatedRoute } from '@angular/router';
13
+ import { StageComponent } from 'ng2-konva';
14
+ import * as tickera_angular_components from 'tickera-angular-components';
10
15
 
11
16
  interface TickeraComponentsConfig {
12
17
  apiUrl: string;
@@ -14,6 +19,7 @@ interface TickeraComponentsConfig {
14
19
  defaultLang?: string;
15
20
  availableLangs?: string[];
16
21
  }
22
+
17
23
  declare const TICKERA_COMPONENTS_CONFIG: InjectionToken<TickeraComponentsConfig>;
18
24
  declare function provideTickeraComponents(config: TickeraComponentsConfig): EnvironmentProviders;
19
25
 
@@ -33,15 +39,6 @@ declare const ALERT_ICONS: {
33
39
  info: string;
34
40
  };
35
41
 
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
42
  declare const ADMIN_API_ROUTES: {
46
43
  FIND_ALL: string;
47
44
  CREATE: string;
@@ -65,10 +62,10 @@ declare const COUNTRY_API_ENDPOINTS: {
65
62
  delete: (id: number) => string;
66
63
  };
67
64
 
68
- declare const STATE_API_ENDPOINTS: {
65
+ declare const CUSTOMERS_API_ROUTES: {
69
66
  findAll: string;
70
67
  create: string;
71
- findById: (id: number) => string;
68
+ findOne: (id: number) => string;
72
69
  update: (id: number) => string;
73
70
  delete: (id: number) => string;
74
71
  };
@@ -90,12 +87,49 @@ declare const PERFORMANCES_API_ROUTES: {
90
87
  publicAvailablePerformances: string;
91
88
  };
92
89
 
90
+ declare const PRICE_ZONES_API_ROUTES: {
91
+ FIND_ALL: string;
92
+ CREATE: string;
93
+ findOneById: (id: number) => string;
94
+ update: (id: number) => string;
95
+ delete: (id: number) => string;
96
+ updateElements: (id: number) => string;
97
+ duplicate: (id: number) => string;
98
+ };
99
+
100
+ declare const PRODUCT_CATEGORIES_API_ROUTES: {
101
+ FIND_ALL: string;
102
+ CREATE: string;
103
+ findById: (id: number) => string;
104
+ update: (id: number) => string;
105
+ delete: (id: number) => string;
106
+ };
107
+
108
+ declare const PRODUCT_TAGS_API_ROUTES: {
109
+ FIND_ALL: string;
110
+ CREATE: string;
111
+ findById: (id: number) => string;
112
+ update: (id: number) => string;
113
+ delete: (id: number) => string;
114
+ };
115
+
116
+ declare const PRODUCT_TYPES_API_ROUTES: {
117
+ FIND_ALL: string;
118
+ CREATE: string;
119
+ findById: (id: number) => string;
120
+ update: (id: number) => string;
121
+ delete: (id: number) => string;
122
+ };
123
+
93
124
  declare const PRODUCTS_API_ROUTES: {
94
125
  FIND_ALL: string;
95
126
  CREATE: string;
96
127
  findOneById: (id: number) => string;
97
128
  update: (id: number) => string;
98
129
  delete: (id: number) => string;
130
+ fetchImages: (id: number) => string;
131
+ uploadImages: (id: number) => string;
132
+ deleteOneImage: (productId: number, imageId: number) => string;
99
133
  };
100
134
 
101
135
  declare const SHOWS_API_ROUTES: {
@@ -110,22 +144,12 @@ declare const SHOWS_API_ROUTES: {
110
144
  publicAvailablePerformances: string;
111
145
  };
112
146
 
113
- declare const CUSTOMERS_API_ROUTES: {
147
+ declare const STATE_API_ENDPOINTS: {
114
148
  findAll: string;
115
149
  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;
150
+ findById: (id: number) => string;
125
151
  update: (id: number) => string;
126
152
  delete: (id: number) => string;
127
- updateElements: (id: number) => string;
128
- duplicate: (id: number) => string;
129
153
  };
130
154
 
131
155
  declare const VENUES_API_ROUTES: {
@@ -139,152 +163,14 @@ declare const VENUES_API_ROUTES: {
139
163
  deleteOneImage: (venueId: number, imageId: number) => string;
140
164
  };
141
165
 
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 CorporateBondStatus {
165
- ACTIVE = "ACTIVE",
166
- INACTIVE = "INACTIVE",
167
- EXPIRED = "EXPIRED"
168
- }
169
-
170
- declare enum PerformanceStatus {
171
- ACTIVE = "active",
172
- CANCELLED = "cancelled",
173
- FINISHED = "finished",
174
- POSTPONED = "postponed"
175
- }
176
-
177
- declare enum PerformanceTicketStatus {
178
- AVAILABLE = "available",
179
- RESERVED = "reserved",
180
- SOLD = "sold",
181
- BLOCKED = "blocked"
182
- }
183
-
184
- declare enum RoomMapElementOrientation {
185
- TOP = "top",
186
- RIGHT = "right",
187
- BOTTOM = "bottom",
188
- LEFT = "left",
189
- CENTER = "center"
190
- }
191
-
192
- declare enum RoomMapElementType {
193
- SEAT_BLOCK = "seat_block",
194
- TABLE = "table",
195
- ZONE = "zone",
196
- EXIT = "exit",
197
- STAGE = "stage",
198
- PRODUCTION_AREA = "production_area",
199
- UNAVAILABLE_SPACE = "unavailable_space",
200
- STAIR = "stair",
201
- HALLWAY = "hallway"
202
- }
203
-
204
- declare enum OrderItemType {
205
- TICKET = "TICKET",
206
- PRODUCT = "PRODUCT"
207
- }
208
-
209
- declare enum OrderStatus {
210
- PENDING = "PENDING",
211
- COMPLETED = "COMPLETED",
212
- FAILED = "FAILED",
213
- CANCELLED = "CANCELLED"
214
- }
215
-
216
- interface RoomMapPosition {
217
- x: number;
218
- y: number;
219
- }
220
-
221
- interface RoomMapSize {
222
- width: number;
223
- height: number;
224
- }
225
-
226
- interface RoomMapBaseElement {
227
- id: string;
228
- type: RoomMapElementType;
229
- position: RoomMapPosition;
230
- size: RoomMapSize;
231
- rotation: number;
232
- name?: string;
233
- isLocked: boolean;
234
- isVisible: boolean;
235
- zIndex: number;
236
- }
237
-
238
- interface RoomMapExitElement extends RoomMapBaseElement {
239
- type: RoomMapElementType.EXIT;
240
- exitName?: string;
241
- exitType: 'emergency' | 'regular';
242
- width: number;
243
- }
244
-
245
- interface RoomMapProductionAreaElement extends RoomMapBaseElement {
246
- type: RoomMapElementType.PRODUCTION_AREA;
247
- areaName?: string;
248
- areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
249
- }
250
-
251
- interface RoomMapSeatElement extends RoomMapBaseElement {
252
- type: RoomMapElementType.SEAT_BLOCK;
253
- seatNumber?: string;
254
- isAvailable: boolean;
255
- priceCategory?: string;
256
- }
257
-
258
- interface RoomMapStageElement extends RoomMapBaseElement {
259
- type: RoomMapElementType.STAGE;
260
- stageName?: string;
261
- orientation: RoomMapElementOrientation;
262
- isMainStage: boolean;
263
- }
264
-
265
- interface RoomMapTableElement extends RoomMapBaseElement {
266
- type: RoomMapElementType.TABLE;
267
- tableNumber?: string;
268
- capacity: number;
269
- shape: 'round' | 'rectangular' | 'square';
270
- }
271
-
272
- interface RoomMapUnavailableElement extends RoomMapBaseElement {
273
- type: RoomMapElementType.UNAVAILABLE_SPACE;
274
- reason?: string;
275
- }
276
-
277
- interface RoomMapZoneElement extends RoomMapBaseElement {
278
- type: RoomMapElementType.ZONE;
279
- zoneName: string;
280
- zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
281
- color: string;
282
- capacity?: number;
283
- }
166
+ declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
167
+ declare const BASE_BUTTON_CLASSES = "btn";
168
+ declare const BUTTON_SIZES_CLASSES: Record<string, string>;
284
169
 
285
- type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
170
+ declare const FORM_ERROR_MESSAGES: Record<string, string>;
286
171
 
287
- type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
172
+ declare const BASE_INPUT_CLASSES: string;
173
+ declare const ERROR_INPUT_CLASSES: string;
288
174
 
289
175
  interface SelectOption {
290
176
  value: any;
@@ -292,7 +178,7 @@ interface SelectOption {
292
178
  disabled?: boolean;
293
179
  }
294
180
 
295
- interface Admin {
181
+ interface Admin extends Auditable {
296
182
  id: number;
297
183
  username: string;
298
184
  email: string;
@@ -308,16 +194,17 @@ interface Admin {
308
194
  reset_password_expires: Date;
309
195
  email_verified_at: Date;
310
196
  last_login: Date;
311
- created_at: Date;
312
- updated_at: Date;
313
- deleted_at: Date;
314
197
  }
315
198
 
316
199
  interface Auditable {
317
200
  created_at: Date;
318
201
  updated_at: Date;
202
+ deleted_at?: Date | null;
319
203
  is_published?: boolean;
320
204
  published_at?: Date;
205
+ published_by?: number;
206
+ deleted_by?: number;
207
+ deleted_by_admin?: Admin;
321
208
  created_by_admin?: Admin;
322
209
  updated_by_admin?: Admin;
323
210
  published_by_admin?: Admin;
@@ -360,20 +247,20 @@ interface AdminsResponse {
360
247
  }
361
248
 
362
249
  interface Country {
363
- id: string;
250
+ id: number;
364
251
  name: string;
365
252
  iso2: string;
366
253
  }
367
254
 
368
255
  interface State {
369
- id: string;
256
+ id: number;
370
257
  name: string;
371
258
  country_id: number;
372
259
  country?: Country;
373
260
  }
374
261
 
375
262
  interface City {
376
- id: string;
263
+ id: number;
377
264
  name: string;
378
265
  search_text: string | null;
379
266
  state_id: number;
@@ -412,27 +299,21 @@ interface Venue extends Auditable {
412
299
  images: VenueImage[];
413
300
  }
414
301
 
415
- interface HallFloor {
302
+ interface HallFloor extends Auditable {
416
303
  id: number;
417
304
  name: string;
418
305
  level: number;
419
306
  max_capacity: number;
420
307
  description: string;
421
308
  hall_id: number;
422
- created_at: Date;
423
- updated_at: Date;
424
- deleted_at: Date | null;
425
309
  }
426
310
 
427
- interface Hall {
311
+ interface Hall extends Auditable {
428
312
  id: number;
429
313
  name: string;
430
314
  venue_id: number;
431
315
  venue?: Venue;
432
316
  hall_floors?: HallFloor[];
433
- created_at: Date;
434
- updated_at: Date;
435
- deleted_at: Date | null;
436
317
  }
437
318
 
438
319
  interface CountryResponse {
@@ -486,7 +367,7 @@ interface FetchCitiesParams {
486
367
  search?: string;
487
368
  }
488
369
 
489
- interface Customer {
370
+ interface Customer extends Auditable {
490
371
  username: string;
491
372
  email: string;
492
373
  mobile: string;
@@ -517,9 +398,6 @@ interface Customer {
517
398
  membership_expires_at: Date | null;
518
399
  id: number;
519
400
  is_active: boolean;
520
- created_at: Date;
521
- updated_at: Date;
522
- deleted_at: Date | null;
523
401
  }
524
402
 
525
403
  interface CustomerResponse {
@@ -537,76 +415,330 @@ interface CustomersResponse {
537
415
  message: string;
538
416
  }
539
417
 
540
- type ShowType = 'play' | 'musical' | 'concert' | 'dance' | 'opera' | 'comedy' | 'other';
418
+ declare enum OrderItemType {
419
+ TICKET = "TICKET",
420
+ PRODUCT = "PRODUCT",
421
+ GIFT_BOND = "GIFT_BOND"
422
+ }
541
423
 
542
- interface ShowImage {
543
- id: number;
544
- path: string;
545
- full_url: string;
546
- original_name: string;
547
- extension: string;
548
- size: number;
549
- mime_type: string;
550
- width: number;
551
- height: number;
552
- show_id: number;
553
- created_at: Date;
424
+ declare enum OrderStatus {
425
+ ON_HOLD = "on-hold",
426
+ PENDING_PAYMENT = "pending-payment",
427
+ PROCESSING = "processing",
428
+ COMPLETED = "completed",
429
+ FAILED = "failed",
430
+ CANCELLED = "cancelled",
431
+ REFUNDED = "refunded"
554
432
  }
555
433
 
556
- interface Show extends Auditable {
557
- id: number;
558
- title: string;
559
- slug: string;
560
- description: string;
561
- duration_minutes: number | null;
562
- type_of_costs: string | null;
563
- service_fee: number | null;
564
- show_type: ShowType | null;
565
- pulep: string | null;
566
- minimum_age: number | null;
567
- show_category_id: number | null;
568
- default_room_map_id: number | null;
569
- published_at?: Date;
570
- is_published: boolean;
571
- images: ShowImage[];
572
- terms_and_conditions: string;
573
- performances_quantity?: number;
434
+ declare enum CreatorType {
435
+ ADMIN = "admin",
436
+ CUSTOMER = "customer"
574
437
  }
575
438
 
576
- interface ShowResponse {
577
- statusCode: number;
578
- data: Show;
439
+ declare enum PaymentMethod {
440
+ PAYROLL = "payroll",
441
+ CASH = "cash",
442
+ DATAFONO = "datafono",
443
+ INTERNAL_EXCHANGE = "internal_exchange",
444
+ CLIENT_EXCHANGE = "client_exchange",
445
+ MERCADO_PAGO = "mercado_pago"
446
+ }
447
+
448
+ declare enum RoomMapElementType {
449
+ SEAT_BLOCK = "seat_block",
450
+ TABLE = "table",
451
+ ZONE = "zone",
452
+ EXIT = "exit",
453
+ STAGE = "stage",
454
+ PRODUCTION_AREA = "production_area",
455
+ UNAVAILABLE_SPACE = "unavailable_space",
456
+ STAIR = "stair",
457
+ HALLWAY = "hallway"
458
+ }
459
+
460
+ interface RoomMapPosition {
461
+ x: number;
462
+ y: number;
463
+ }
464
+
465
+ interface RoomMapSize {
466
+ width: number;
467
+ height: number;
468
+ }
469
+
470
+ interface RoomMapBaseElement {
471
+ id: string;
472
+ type: RoomMapElementType;
473
+ position: RoomMapPosition;
474
+ size: RoomMapSize;
475
+ rotation: number;
476
+ name?: string;
477
+ isLocked: boolean;
478
+ isVisible: boolean;
479
+ zIndex: number;
480
+ }
481
+
482
+ interface RoomMapExitElement extends RoomMapBaseElement {
483
+ type: RoomMapElementType.EXIT;
484
+ exitName?: string;
485
+ exitType: 'emergency' | 'regular';
486
+ width: number;
487
+ }
488
+
489
+ interface RoomMapProductionAreaElement extends RoomMapBaseElement {
490
+ type: RoomMapElementType.PRODUCTION_AREA;
491
+ areaName?: string;
492
+ areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
493
+ }
494
+
495
+ interface RoomMapSeatElement extends RoomMapBaseElement {
496
+ type: RoomMapElementType.SEAT_BLOCK;
497
+ seatNumber?: string;
498
+ isAvailable: boolean;
499
+ priceCategory?: string;
500
+ }
501
+
502
+ declare enum RoomMapElementOrientation {
503
+ TOP = "top",
504
+ RIGHT = "right",
505
+ BOTTOM = "bottom",
506
+ LEFT = "left",
507
+ CENTER = "center"
508
+ }
509
+
510
+ interface RoomMapStageElement extends RoomMapBaseElement {
511
+ type: RoomMapElementType.STAGE;
512
+ stageName?: string;
513
+ orientation: RoomMapElementOrientation;
514
+ isMainStage: boolean;
515
+ }
516
+
517
+ interface RoomMapTableElement extends RoomMapBaseElement {
518
+ type: RoomMapElementType.TABLE;
519
+ tableNumber?: string;
520
+ capacity: number;
521
+ shape: 'round' | 'rectangular' | 'square';
522
+ }
523
+
524
+ interface RoomMapUnavailableElement extends RoomMapBaseElement {
525
+ type: RoomMapElementType.UNAVAILABLE_SPACE;
526
+ reason?: string;
527
+ }
528
+
529
+ interface RoomMapZoneElement extends RoomMapBaseElement {
530
+ type: RoomMapElementType.ZONE;
531
+ zoneName: string;
532
+ zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
533
+ color: string;
534
+ capacity?: number;
535
+ }
536
+
537
+ type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
538
+
539
+ type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
540
+
541
+ declare enum ShowType {
542
+ PLAY = "PLAY",
543
+ CONCERT = "CONCERT",
544
+ STAND_UP_COMEDY = "STAND_UP_COMEDY",
545
+ OPERA = "OPERA",
546
+ MUSICAL = "MUSICAL",
547
+ DANCE = "DANCE",
548
+ SPORT = "SPORT",
549
+ OTHER = "OTHER",
550
+ DEFAULT = "DEFAULT"
551
+ }
552
+
553
+ type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
554
+
555
+ type FeedbackModalType = 'loading' | 'success' | 'info' | 'warning' | 'error';
556
+
557
+ type BadgeSize = 'xs' | 'sm' | 'md' | 'lg';
558
+
559
+ interface FeedbackModalElement {
560
+ id: string;
561
+ type: FeedbackModalType;
562
+ title: string;
563
+ isOpen: WritableSignal<boolean>;
564
+ message?: string;
565
+ showHeader?: boolean;
566
+ showCloseButton?: boolean;
567
+ showTitle?: boolean;
568
+ closeModal?: void;
569
+ }
570
+
571
+ declare enum FileType {
572
+ IMAGE = "image",
573
+ PDF = "pdf",
574
+ EXCEL = "excel",
575
+ WORD = "word",
576
+ TEXT = "text",
577
+ DEFAULT = "default"
578
+ }
579
+
580
+ declare enum CouponApplicability {
581
+ GENERAL = "GENERAL",
582
+ CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
583
+ MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
584
+ SHOWS = "SHOWS",
585
+ PERFORMANCES = "PERFORMANCES"
586
+ }
587
+
588
+ declare enum CouponDiscountType {
589
+ PERCENTAGE = "PERCENTAGE",
590
+ FIXED = "FIXED"
591
+ }
592
+
593
+ declare enum CouponStatus {
594
+ ACTIVE = "ACTIVE",
595
+ INACTIVE = "INACTIVE",
596
+ EXPIRED = "EXPIRED",
597
+ CONSUMED = "CONSUMED"
598
+ }
599
+
600
+ declare enum CorporateBondStatus {
601
+ ACTIVE = "ACTIVE",
602
+ INACTIVE = "INACTIVE",
603
+ EXPIRED = "EXPIRED",
604
+ CONSUMED = "CONSUMED"
605
+ }
606
+
607
+ declare enum PerformanceStatus {
608
+ SCHEDULED = "scheduled",
609
+ OPEN = "open",
610
+ CLOSED = "closed",
611
+ CANCELLED = "cancelled",
612
+ COMPLETED = "completed",
613
+ POSTPONED = "postponed"
614
+ }
615
+
616
+ declare enum PerformanceTicketStatus {
617
+ AVAILABLE = "available",
618
+ RESERVED = "reserved",
619
+ SOLD = "sold",
620
+ BLOCKED = "blocked"
621
+ }
622
+
623
+ declare enum GiftBondStatus {
624
+ ACTIVE = "ACTIVE",
625
+ INACTIVE = "INACTIVE"
626
+ }
627
+
628
+ declare enum GiftBondPurchaseStatus {
629
+ AVAILABLE = "AVAILABLE",
630
+ REDEEMED = "REDEEMED",
631
+ EXPIRED = "EXPIRED",
632
+ CANCELLED = "CANCELLED"
633
+ }
634
+
635
+ declare enum TransactionStatus {
636
+ PENDING = "PENDING",
637
+ APPROVED = "APPROVED",
638
+ REJECTED = "REJECTED",
639
+ ERROR = "ERROR"
640
+ }
641
+
642
+ interface FetchProductCategoriesParams {
643
+ name?: string;
644
+ slug?: string;
645
+ page?: number;
646
+ limit?: number;
647
+ search?: string;
648
+ }
649
+
650
+ interface ProductCategory extends Auditable {
651
+ id: number;
652
+ name: string;
653
+ slug: string;
654
+ }
655
+
656
+ interface ProductCategoriesResponse {
657
+ statusCode: number;
658
+ data: {
659
+ categories: ProductCategory[];
660
+ total: number;
661
+ };
579
662
  message: string;
580
663
  }
581
664
 
582
- interface ShowsResponseInterface {
665
+ interface ProductCategoryResponse {
666
+ statusCode: number;
667
+ data: ProductCategory;
668
+ message: string;
669
+ }
670
+
671
+ interface FetchProductTagsParams {
672
+ name?: string;
673
+ slug?: string;
674
+ page?: number;
675
+ limit?: number;
676
+ search?: string;
677
+ }
678
+
679
+ interface ProductTag extends Auditable {
680
+ id: number;
681
+ name: string;
682
+ slug: string;
683
+ }
684
+
685
+ interface ProductTagResponse {
686
+ statusCode: number;
687
+ data: ProductTag;
688
+ message: string;
689
+ }
690
+
691
+ interface ProductTagsResponse {
583
692
  statusCode: number;
584
693
  data: {
585
- shows: Show[];
694
+ tags: ProductTag[];
586
695
  total: number;
587
696
  };
588
697
  message: string;
589
698
  }
590
699
 
591
- interface FetchShowsParams {
700
+ interface FetchProductTypesParams {
701
+ name?: string;
702
+ slug?: string;
592
703
  page?: number;
593
704
  limit?: number;
594
705
  search?: string;
595
- date?: string;
596
706
  }
597
707
 
598
- interface PriceZone {
708
+ interface ProductType extends Auditable {
599
709
  id: number;
600
710
  name: string;
601
- color: string;
602
- normal_price: number | null;
603
- is_active: boolean;
604
- elements: any[];
605
- room_map_id: number | null;
711
+ slug: string;
712
+ }
713
+
714
+ interface ProductTypeResponse {
715
+ statusCode: number;
716
+ data: ProductType;
717
+ message: string;
718
+ }
719
+
720
+ interface ProductTypesResponse {
721
+ statusCode: number;
722
+ data: {
723
+ types: ProductType[];
724
+ total: number;
725
+ };
726
+ message: string;
727
+ }
728
+
729
+ interface ProductImage {
730
+ id: number;
731
+ path: string;
732
+ full_url: string;
733
+ original_name: string;
734
+ extension: string;
735
+ size: number;
736
+ mime_type: string;
737
+ width: number;
738
+ height: number;
739
+ product_id: number;
740
+ product: Product;
606
741
  created_at: Date;
607
- updated_at: Date;
608
- created_by: number;
609
- updated_by: number;
610
742
  }
611
743
 
612
744
  interface Product extends Auditable {
@@ -621,10 +753,34 @@ interface Product extends Auditable {
621
753
  is_limited_edition: boolean;
622
754
  is_active: boolean;
623
755
  deleted_at: Date | null;
624
- categories?: any[];
625
- tags?: any[];
626
- types?: any[];
627
- images?: any[];
756
+ categories?: ProductCategory[];
757
+ tags?: ProductTag[];
758
+ types?: ProductType[];
759
+ images?: ProductImage[];
760
+ }
761
+
762
+ interface ShowImage {
763
+ id: number;
764
+ path: string;
765
+ full_url: string;
766
+ original_name: string;
767
+ extension: string;
768
+ size: number;
769
+ mime_type: string;
770
+ width: number;
771
+ height: number;
772
+ show_id: number;
773
+ created_at: Date;
774
+ }
775
+
776
+ interface PriceZone extends Auditable {
777
+ id: number;
778
+ name: string;
779
+ color: string;
780
+ normal_price: number | null;
781
+ is_active: boolean;
782
+ elements: any[];
783
+ room_map_id: number | null;
628
784
  }
629
785
 
630
786
  interface NumerationConfig {
@@ -662,7 +818,7 @@ interface RoomMapElementTemplate {
662
818
  price_zone?: PriceZone;
663
819
  }
664
820
 
665
- interface RoomMap {
821
+ interface RoomMap extends Auditable {
666
822
  id: number;
667
823
  name: string;
668
824
  canvas_settings: {
@@ -678,8 +834,6 @@ interface RoomMap {
678
834
  related_product_ids: number[];
679
835
  products?: Product[];
680
836
  venue_name?: string;
681
- created_at: Date;
682
- updated_at: Date;
683
837
  }
684
838
 
685
839
  interface RoomMapCanvasConfiguration {
@@ -721,7 +875,7 @@ interface ElementPropertiesTab {
721
875
  elements_access: string[];
722
876
  }
723
877
 
724
- interface Performance {
878
+ interface Performance extends Auditable {
725
879
  id: number;
726
880
  start_time: Date | string;
727
881
  end_time: Date | string;
@@ -731,26 +885,78 @@ interface Performance {
731
885
  show?: Show;
732
886
  room_map: RoomMap;
733
887
  room_map_id: number;
734
- created_at: Date;
735
- updated_at: Date;
736
888
  }
737
889
 
738
- interface PerformanceResponse {
890
+ interface ShowCategory extends Auditable {
891
+ id: number;
892
+ name: string;
893
+ slug: string;
894
+ }
895
+
896
+ interface ShowCategoriesResponse {
739
897
  statusCode: number;
740
- data: Performance;
898
+ data: {
899
+ categories: ShowCategory[];
900
+ total: number;
901
+ };
741
902
  message: string;
742
903
  }
743
904
 
744
- interface PerformancesResponseInterface {
905
+ interface ShowCategoryResponse {
906
+ statusCode: number;
907
+ data: ShowCategory;
908
+ message: string;
909
+ }
910
+
911
+ interface ShowGender extends Auditable {
912
+ id: number;
913
+ name: string;
914
+ slug: string;
915
+ }
916
+
917
+ interface ShowGenderResponse {
918
+ statusCode: number;
919
+ data: ShowGender;
920
+ message: string;
921
+ }
922
+
923
+ interface ShowGendersResponse {
745
924
  statusCode: number;
746
925
  data: {
747
- performances: Performance[];
926
+ genders: ShowGender[];
748
927
  total: number;
749
928
  };
750
929
  message: string;
751
930
  }
752
931
 
753
- interface OrderItem {
932
+ interface Show extends Auditable {
933
+ id: number;
934
+ title: string;
935
+ slug: string;
936
+ description: string;
937
+ duration_minutes: number | null;
938
+ type_of_costs: string | null;
939
+ service_fee: number | null;
940
+ show_type: ShowType | null;
941
+ pulep: string | null;
942
+ minimum_age: number | null;
943
+ show_gender: ShowGender | null;
944
+ show_gender_id: number | null;
945
+ show_category: ShowCategory | null;
946
+ show_category_id: number | null;
947
+ default_room_map: RoomMap | null;
948
+ default_room_map_id: number | null;
949
+ is_published: boolean;
950
+ images: ShowImage[];
951
+ terms_and_conditions: string | null;
952
+ performances_quantity?: number;
953
+ performances?: Performance[];
954
+ next_performance?: Performance;
955
+ days_of_week?: number[];
956
+ unique_start_times?: string[];
957
+ }
958
+
959
+ interface OrderItem extends Auditable {
754
960
  id: number;
755
961
  order: Order;
756
962
  item_type: OrderItemType;
@@ -763,26 +969,21 @@ interface OrderItem {
763
969
  ticket_id?: number;
764
970
  ticket_uuid?: string;
765
971
  item: Show | Product;
766
- created_at: Date;
767
- updated_at: Date;
768
- created_by: number;
769
- updated_by: number;
770
972
  }
771
973
 
772
974
  interface Coupon extends Auditable {
773
975
  id: number;
774
976
  code: string;
977
+ billing_code: string;
775
978
  description?: string;
776
979
  discount_type: CouponDiscountType;
777
- discount_type_string?: string;
778
980
  discount_value: number;
779
- discount_value_string?: string;
780
981
  start_date: Date | null;
781
982
  end_date: Date | null;
782
983
  max_uses: number | null;
783
- max_uses_per_user?: number | null;
984
+ max_uses_per_customer?: number | null;
784
985
  uses_count: number;
785
- is_active: boolean;
986
+ status: CouponStatus;
786
987
  applicability_type: CouponApplicability;
787
988
  applicable_customer_emails: string[] | null;
788
989
  applicable_membership_types: string[] | null;
@@ -790,9 +991,11 @@ interface Coupon extends Auditable {
790
991
  applicable_performance_ids?: number[];
791
992
  applicable_price_zone_ids?: number[];
792
993
  applies_to_service_fee?: boolean;
994
+ orders?: Order[];
995
+ customers?: Customer[];
793
996
  }
794
997
 
795
- interface CorporateBond {
998
+ interface CorporateBond extends Auditable {
796
999
  id: number;
797
1000
  name: string;
798
1001
  description?: string;
@@ -803,10 +1006,6 @@ interface CorporateBond {
803
1006
  status: CorporateBondStatus;
804
1007
  value: number;
805
1008
  codes: CorporateBondCode[];
806
- created_at: Date;
807
- updated_at: Date;
808
- created_by: number;
809
- updated_by: number;
810
1009
  }
811
1010
 
812
1011
  interface CorporateBondCode {
@@ -836,38 +1035,162 @@ interface ValidateCorporateBondResponse {
836
1035
  statusCode: number;
837
1036
  }
838
1037
 
839
- interface Order {
1038
+ interface GiftBondImage {
1039
+ id: number;
1040
+ path: string;
1041
+ full_url: string;
1042
+ original_name: string;
1043
+ extension: string;
1044
+ size: number;
1045
+ mime_type: string;
1046
+ width: number;
1047
+ height: number;
1048
+ is_featured: boolean;
1049
+ gift_bond_id: number;
1050
+ gift_bond: GiftBond;
1051
+ created_at: Date;
1052
+ }
1053
+
1054
+ interface GiftBond extends Auditable {
1055
+ id: number;
1056
+ name: string;
1057
+ description?: string;
1058
+ status: GiftBondStatus;
1059
+ value: number;
1060
+ page_content?: string;
1061
+ images?: GiftBondImage[];
1062
+ }
1063
+
1064
+ interface GiftBondResponse {
1065
+ statusCode: number;
1066
+ data: GiftBond;
1067
+ message: string;
1068
+ }
1069
+
1070
+ interface GiftBondsResponse {
1071
+ statusCode: number;
1072
+ data: {
1073
+ gift_bonds: GiftBond[];
1074
+ total: number;
1075
+ };
1076
+ message: string;
1077
+ }
1078
+
1079
+ interface GiftBondPurchase extends Auditable {
1080
+ id: number;
1081
+ code: string;
1082
+ original_value: number;
1083
+ used_value: number | null;
1084
+ lost_value: number | null;
1085
+ beneficiary_email: string;
1086
+ beneficiary: Customer | null;
1087
+ personalized_message: string | null;
1088
+ status: GiftBondPurchaseStatus;
1089
+ purchased_at: string;
1090
+ expires_at: string;
1091
+ redeemed_at: string | null;
1092
+ gift_bond_id: number;
1093
+ buyer_id: number;
1094
+ buyer: Admin;
1095
+ }
1096
+
1097
+ interface ValidateGiftBondResponse {
1098
+ data: {
1099
+ valid: boolean;
1100
+ message: string;
1101
+ code: string;
1102
+ bond?: GiftBondPurchase;
1103
+ };
1104
+ statusCode: number;
1105
+ message: string;
1106
+ }
1107
+
1108
+ interface GiftBondPurchaseResponse {
1109
+ statusCode: number;
1110
+ data: GiftBondPurchase;
1111
+ message: string;
1112
+ }
1113
+
1114
+ interface GiftBondPurchasesResponse {
1115
+ statusCode: number;
1116
+ data: {
1117
+ items: GiftBondPurchase[];
1118
+ total: number;
1119
+ };
1120
+ message: string;
1121
+ }
1122
+
1123
+ interface Transaction extends Auditable {
1124
+ id: number;
1125
+ status: TransactionStatus;
1126
+ amount: number;
1127
+ currency: string;
1128
+ payment_gateway: string;
1129
+ gateway_transaction_id: string;
1130
+ gateway_response: any;
1131
+ order: Order;
1132
+ }
1133
+
1134
+ interface OrderBillingInfo {
1135
+ first_name: string;
1136
+ last_name: string;
1137
+ email: string;
1138
+ mobile: string;
1139
+ document_type: string;
1140
+ document_number: string;
1141
+ address: string;
1142
+ city_id: number;
1143
+ postal_code?: string;
1144
+ address_notes?: string;
1145
+ payment_method: PaymentMethod;
1146
+ terms_accepted: boolean;
1147
+ data_processing_accepted: boolean;
1148
+ comments?: string;
1149
+ products?: Array<{
1150
+ id: number;
1151
+ quantity: number;
1152
+ }>;
1153
+ }
1154
+
1155
+ interface Order extends Auditable {
840
1156
  id: number;
841
1157
  uuid: string;
842
- customer: Customer;
1158
+ customer_id: number | null;
1159
+ customer: Customer | null;
843
1160
  customer_name?: string;
844
1161
  customer_email?: string;
845
1162
  order_items: OrderItem[];
846
1163
  order_items_quantity?: number;
847
- discount_amount: number;
1164
+ transactions: Transaction[];
1165
+ sub_total: number;
1166
+ discount_amount: number | null;
848
1167
  total: number;
1168
+ sub_total_discounted: number | null;
849
1169
  total_discounted: number;
850
- sub_total: number;
851
- sub_total_discounted: number;
852
- service_fee: number;
853
- service_fee_discounted: number;
854
- coupon: Coupon;
855
- coupon_snapshot: Record<string, any>;
856
- corporate_bond_code: CorporateBondCode;
857
- corporate_bond_code_snapshot: Record<string, any>;
1170
+ service_fee: number | null;
1171
+ service_fee_discounted: number | null;
1172
+ coupon: Coupon | null;
1173
+ coupon_snapshot: Record<string, any> | null;
858
1174
  status: OrderStatus;
859
- show_snapshot: Record<string, any>;
860
- performance_snapshot: Record<string, any>;
861
- created_at: Date;
862
- updated_at: Date;
863
- payment_method: string;
1175
+ show_snapshot: Record<string, any> | null;
1176
+ performance_snapshot: Record<string, any> | null;
1177
+ payment_method: PaymentMethod | null;
864
1178
  terms_accepted: boolean;
865
1179
  data_processing_accepted: boolean;
866
- billing_info: Partial<Customer>;
867
- comments: string;
868
- address_notes: string;
1180
+ billing_info: OrderBillingInfo | null;
1181
+ corporate_bond_code_snapshot: Record<string, any> | null;
1182
+ gift_bond_snapshot: Record<string, any> | null;
1183
+ corporate_bond_code: CorporateBondCode | null;
1184
+ corporate_bond_code_id: number | null;
1185
+ gift_bond: GiftBond | null;
1186
+ gift_bond_id: number | null;
1187
+ comments: string | null;
1188
+ address_notes: string | null;
1189
+ mercado_pago_preference_id: string;
869
1190
  created_by: number;
1191
+ created_by_type: CreatorType;
870
1192
  updated_by: number;
1193
+ updated_by_type: CreatorType;
871
1194
  }
872
1195
 
873
1196
  interface OrderResponse {
@@ -885,7 +1208,7 @@ interface OrdersResponse {
885
1208
  message: string;
886
1209
  }
887
1210
 
888
- interface PerformanceTicket {
1211
+ interface PerformanceTicket extends Auditable {
889
1212
  id: number;
890
1213
  uuid: string;
891
1214
  is_accessible: boolean;
@@ -905,8 +1228,139 @@ interface PerformanceTicket {
905
1228
  checked_in_at: Date | null;
906
1229
  order_items: OrderItem[];
907
1230
  element_qty?: number;
908
- created_at: Date;
909
- updated_at: Date;
1231
+ }
1232
+
1233
+ interface TicketMapSeatPosition {
1234
+ rowIndex: number;
1235
+ colIndex: number;
1236
+ seatLabel: string;
1237
+ }
1238
+
1239
+ interface TicketMapTableChairPosition {
1240
+ index: number;
1241
+ angle: number;
1242
+ x: number;
1243
+ y: number;
1244
+ }
1245
+
1246
+ interface ElementRenderData {
1247
+ elementId: number;
1248
+ hallFloorId: number | null;
1249
+ type: RoomMapElementType;
1250
+ shapeConfig: Record<string, any>;
1251
+ tickets: PerformanceTicket[];
1252
+ ticketByNumeration: Map<string, PerformanceTicket>;
1253
+ elementName: string;
1254
+ seatPositions?: TicketMapSeatPosition[][];
1255
+ chairPositions?: TicketMapTableChairPosition[];
1256
+ zoneCapacity?: number;
1257
+ }
1258
+
1259
+ interface TicketMapTooltipData {
1260
+ x: number;
1261
+ y: number;
1262
+ elementName: string;
1263
+ seatLabel: string | null;
1264
+ price: number;
1265
+ status: PerformanceTicketStatus;
1266
+ statusLabel: string;
1267
+ statusColor: string;
1268
+ isSelected: boolean;
1269
+ ticketId: number;
1270
+ }
1271
+
1272
+ interface TicketMapZoneQuantityState {
1273
+ elementId: number;
1274
+ selectedCount: number;
1275
+ maxCapacity: number;
1276
+ }
1277
+
1278
+ interface ReservePerformanceDto {
1279
+ ticket_ids: number[];
1280
+ products?: {
1281
+ id: number;
1282
+ quantity: number;
1283
+ }[];
1284
+ coupon_code?: string;
1285
+ gift_bond_code?: string;
1286
+ corporate_bond_code?: string;
1287
+ payment_method?: string;
1288
+ billing?: {
1289
+ first_name: string;
1290
+ last_name: string;
1291
+ email: string;
1292
+ mobile: string;
1293
+ document_type: string;
1294
+ document_number: string;
1295
+ address: string;
1296
+ city_id: number;
1297
+ postal_code?: string;
1298
+ address_notes?: string;
1299
+ terms_accepted: boolean;
1300
+ data_processing_accepted: boolean;
1301
+ comments?: string;
1302
+ };
1303
+ }
1304
+
1305
+ interface TicketMapZoomConfig {
1306
+ minZoom: number;
1307
+ maxZoom: number;
1308
+ zoomStep: number;
1309
+ scaleBy: number;
1310
+ }
1311
+
1312
+ interface HallFloorOption {
1313
+ id: number | null;
1314
+ name: string;
1315
+ }
1316
+
1317
+ declare enum SelectedDiscountCardType {
1318
+ COUPON = "COUPON",
1319
+ CORPORATE_BOND = "CORPORATE_BOND",
1320
+ GIFT_BOND = "GIFT_BOND"
1321
+ }
1322
+
1323
+ interface SelectedDiscountCard {
1324
+ name: string;
1325
+ type: SelectedDiscountCardType;
1326
+ value: number;
1327
+ }
1328
+
1329
+ interface FetchShowsParams {
1330
+ page?: number;
1331
+ limit?: number;
1332
+ search?: string;
1333
+ date?: string;
1334
+ }
1335
+
1336
+ interface ShowResponse {
1337
+ statusCode: number;
1338
+ data: Show;
1339
+ message: string;
1340
+ }
1341
+
1342
+ interface ShowsResponseInterface {
1343
+ statusCode: number;
1344
+ data: {
1345
+ shows: Show[];
1346
+ total: number;
1347
+ };
1348
+ message: string;
1349
+ }
1350
+
1351
+ interface PerformanceResponse {
1352
+ statusCode: number;
1353
+ data: Performance;
1354
+ message: string;
1355
+ }
1356
+
1357
+ interface PerformancesResponseInterface {
1358
+ statusCode: number;
1359
+ data: {
1360
+ performances: Performance[];
1361
+ total: number;
1362
+ };
1363
+ message: string;
910
1364
  }
911
1365
 
912
1366
  interface PerformanceBookingDataResponse {
@@ -990,6 +1444,13 @@ interface ProductResponse {
990
1444
  message: string;
991
1445
  }
992
1446
 
1447
+ interface ProductTaxonomy extends Auditable {
1448
+ id: number;
1449
+ name: string;
1450
+ slug: string;
1451
+ selected?: boolean;
1452
+ }
1453
+
993
1454
  interface ProductsResponseInterface {
994
1455
  statusCode: number;
995
1456
  data: {
@@ -1043,17 +1504,157 @@ interface ValidateCouponResponse {
1043
1504
  };
1044
1505
  }
1045
1506
 
1507
+ interface RecentOrder {
1508
+ id: number;
1509
+ customer_name: string;
1510
+ event: string;
1511
+ total: number;
1512
+ status: string;
1513
+ uuid: string;
1514
+ }
1515
+
1516
+ interface RecentRoomMap {
1517
+ id: number;
1518
+ name: string;
1519
+ capacity: number;
1520
+ created_at: Date;
1521
+ updated_at: Date;
1522
+ }
1523
+
1524
+ interface QrTokenData {
1525
+ token: string;
1526
+ expires_at: string;
1527
+ refresh_in: number;
1528
+ }
1529
+
1530
+ interface QrTokenResponse {
1531
+ statusCode: number;
1532
+ data: QrTokenData;
1533
+ message: string;
1534
+ }
1535
+
1536
+ declare const DOCUMENT_TYPES_OPTIONS: SelectOption[];
1537
+
1538
+ declare const PAYMENT_METHODS_OPTIONS: SelectOption[];
1539
+ declare const ORDER_STATUS_COLORS: Record<OrderStatus, {
1540
+ text: string;
1541
+ bg: string;
1542
+ }>;
1543
+ declare const ORDER_ITEM_TYPES_COLORS: Record<OrderItemType, {
1544
+ text: string;
1545
+ bg: string;
1546
+ }>;
1547
+ declare const ORDER_DISCOUNT_COLORS: Record<string, {
1548
+ text: string;
1549
+ bg: string;
1550
+ }>;
1551
+ declare const TRANSACTION_STATUS_COLORS: Record<TransactionStatus, {
1552
+ text: string;
1553
+ bg: string;
1554
+ }>;
1555
+
1556
+ declare const TICKET_MAP_LAST_TICKETS_LIMIT = 10;
1557
+ declare const TICKET_ELEMENT_TYPES: RoomMapElementType[];
1558
+ declare const DEFAULT_STAGE_CONFIG: {
1559
+ [x: string]: any;
1560
+ };
1561
+ declare const TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, string>;
1562
+ declare const TICKET_STATUS_FILLS: Record<PerformanceTicketStatus, string>;
1563
+ declare const TICKET_STATUS_LABELS: Record<PerformanceTicketStatus, string>;
1564
+ declare const TICKET_MAP_GRID_SIZE = 30;
1565
+ declare const TICKET_MAP_TITLE_HEIGHT = 30;
1566
+
1567
+ interface KonvaShapeConfig {
1568
+ config: ShapeConfig;
1569
+ layer: 'background' | 'elements' | 'foreground' | 'overlay';
1570
+ }
1571
+
1572
+ declare function drawRoundedRect(con: Context, shape: Shape, x: number, y: number, width: number, height: number, cornerRadius: number): void;
1573
+
1574
+ declare const generateExitScene: (con: Context, shape: Shape) => void;
1575
+
1576
+ declare const generateHallwayScene: (con: Context, shape: Shape) => void;
1577
+
1578
+ declare const generateProductionAreaScene: (con: Context, shape: Shape) => void;
1579
+
1580
+ declare const generateSeatBlockScene: (con: Context, shape: Shape, numerationConfig?: {
1581
+ start_row_letter: string;
1582
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1583
+ start_column_number: number;
1584
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1585
+ }) => void;
1586
+
1587
+ declare const generateStageScene: (con: Context, shape: Shape) => void;
1588
+
1589
+ declare const generateStairScene: (con: Context, shape: Shape) => void;
1590
+
1591
+ declare const generateTableScene: (con: Context, shape: Shape) => void;
1592
+
1593
+ declare const generateUnavailableSpaceScene: (con: Context, shape: Shape) => void;
1594
+
1595
+ declare const generateZoneScene: (con: Context, shape: Shape) => void;
1596
+
1597
+ declare const KONVA_SHAPE_MAPPINGS: Record<RoomMapElementType, KonvaShapeConfig>;
1598
+
1599
+ declare const SHOW_TYPE_COLORS: Record<ShowType, {
1600
+ bg: string;
1601
+ text: string;
1602
+ }>;
1603
+
1046
1604
  declare const getCustomerFullname: (customer: Customer) => string;
1047
1605
 
1606
+ type OrderDiscountType = 'coupon' | 'corporate_bond' | 'gift_bond';
1607
+ interface OrderDiscountInfo {
1608
+ type: OrderDiscountType | null;
1609
+ code: string | null;
1610
+ name: string | null;
1611
+ value: number;
1612
+ discountType: 'percentage' | 'fixed' | null;
1613
+ icon: string;
1614
+ }
1615
+ declare function getOrderDiscount(order: Order): OrderDiscountInfo;
1616
+
1048
1617
  declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
1049
1618
 
1050
1619
  declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
1051
1620
 
1052
1621
  declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
1053
- value: string;
1622
+ value: number;
1054
1623
  label: string;
1055
1624
  }[];
1056
1625
 
1626
+ declare function tintColor(hex: string, amount?: number): string;
1627
+
1628
+ declare const drawChairIcon: (con: Context, cx: number, cy: number, size: number) => void;
1629
+
1630
+ declare const drawHappyFace: (con: Context, cx: number, cy: number, size: number) => void;
1631
+
1632
+ declare const drawWheelchairIcon: (con: Context, shape: Shape, cx: number, cy: number, size: number, fillColor?: string, strokeColor?: string) => void;
1633
+
1634
+ declare const numberToLetter: (num: number) => string;
1635
+
1636
+ declare const getItemTypeIcon: (ticket: PerformanceTicket) => string;
1637
+
1638
+ declare const generateSeatBlockTicketScene: (con: Context, shape: Shape, numerationConfig?: {
1639
+ start_row_letter: string;
1640
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1641
+ start_column_number: number;
1642
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1643
+ }, ticketStatusMap?: Map<string, PerformanceTicketStatus>) => void;
1644
+
1645
+ declare const generateTableTicketScene: (con: Context, shape: Shape, chairTicketStatuses?: PerformanceTicketStatus[], tableSeats?: RoomMapSeatState[][]) => void;
1646
+
1647
+ declare function processElementsToRenderData(elements: RoomMapElementTemplate[], tickets: PerformanceTicket[], priceZones?: {
1648
+ id: number;
1649
+ color: string;
1650
+ }[]): ElementRenderData[];
1651
+ declare function findTicketAtPosition(renderData: ElementRenderData, relX: number, relY: number): PerformanceTicket | null;
1652
+ declare function findElementAtPosition(renderDataList: ElementRenderData[], stageX: number, stageY: number): {
1653
+ element: ElementRenderData;
1654
+ relX: number;
1655
+ relY: number;
1656
+ } | null;
1657
+
1057
1658
  declare function MinTodayValidator(controlName: string): ValidatorFn;
1058
1659
  declare function EndDateGreaterThanStartValidator(startDateControlName: string, endDateControlName: string): ValidatorFn;
1059
1660
 
@@ -1084,16 +1685,6 @@ declare class ToastService {
1084
1685
  static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
1085
1686
  }
1086
1687
 
1087
- declare class LoadingModalService {
1088
- title: WritableSignal<string>;
1089
- isOpen: WritableSignal<boolean>;
1090
- get modalIsOpen(): WritableSignal<boolean>;
1091
- open(title?: string): void;
1092
- close(): void;
1093
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingModalService, never>;
1094
- static ɵprov: i0.ɵɵInjectableDeclaration<LoadingModalService>;
1095
- }
1096
-
1097
1688
  declare class DeleteConfirmationService {
1098
1689
  title: WritableSignal<string>;
1099
1690
  resourceName: WritableSignal<string>;
@@ -1222,25 +1813,6 @@ declare class PerformancesListEventsService {
1222
1813
  static ɵprov: i0.ɵɵInjectableDeclaration<PerformancesListEventsService>;
1223
1814
  }
1224
1815
 
1225
- declare class ProductService {
1226
- private apiService;
1227
- private productsSubject;
1228
- products$: Observable<Product[]>;
1229
- constructor(apiService: ApiService);
1230
- fetchProducts(page: number, search: string): Observable<ProductsResponseInterface>;
1231
- loadProducts({ page, search }?: {
1232
- page?: number;
1233
- search?: string;
1234
- }): void;
1235
- getCurrentProducts(): Product[];
1236
- fetchOneById(id: number): Observable<ProductResponse>;
1237
- createOne(data: Product): Observable<any>;
1238
- updateOne(id: number, data: any): Observable<ProductResponse>;
1239
- deleteOne(id: number): Observable<any>;
1240
- static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
1241
- static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
1242
- }
1243
-
1244
1816
  declare class ShowService {
1245
1817
  private apiService;
1246
1818
  private showsSubject;
@@ -1321,6 +1893,332 @@ declare class PriceZoneFormModalService {
1321
1893
  static ɵprov: i0.ɵɵInjectableDeclaration<PriceZoneFormModalService>;
1322
1894
  }
1323
1895
 
1896
+ declare class ProductCategoryService {
1897
+ private apiService;
1898
+ constructor(apiService: ApiService);
1899
+ fetchCategories({ page, search, limit, }: FetchProductCategoriesParams): Observable<ProductCategoriesResponse>;
1900
+ fetchOneById(id: number): Observable<ProductCategoryResponse>;
1901
+ createOne(data: ProductCategory): Observable<any>;
1902
+ updateOne(id: number, data: ProductCategory): Observable<ProductCategoryResponse>;
1903
+ deleteOne(id: number): Observable<any>;
1904
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductCategoryService, never>;
1905
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductCategoryService>;
1906
+ }
1907
+
1908
+ declare class ProductTagService {
1909
+ private apiService;
1910
+ constructor(apiService: ApiService);
1911
+ fetchTags({ page, search, limit }: FetchProductTagsParams): Observable<ProductTagsResponse>;
1912
+ fetchOneById(id: number): Observable<ProductTagResponse>;
1913
+ createOne(data: ProductTag): Observable<any>;
1914
+ updateOne(id: number, data: ProductTag): Observable<ProductTagResponse>;
1915
+ deleteOne(id: number): Observable<any>;
1916
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTagService, never>;
1917
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTagService>;
1918
+ }
1919
+
1920
+ declare class ProductTypeService {
1921
+ private apiService;
1922
+ constructor(apiService: ApiService);
1923
+ fetchTypes({ page, search, limit }: FetchProductTypesParams): Observable<ProductTypesResponse>;
1924
+ fetchOneById(id: number): Observable<ProductTypeResponse>;
1925
+ createOne(data: ProductType): Observable<any>;
1926
+ updateOne(id: number, data: ProductType): Observable<ProductTypeResponse>;
1927
+ deleteOne(id: number): Observable<any>;
1928
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTypeService, never>;
1929
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTypeService>;
1930
+ }
1931
+
1932
+ interface FetchProductsParams {
1933
+ page?: number;
1934
+ limit?: number;
1935
+ search?: string;
1936
+ }
1937
+
1938
+ declare class ProductService {
1939
+ private apiService;
1940
+ private productsSubject;
1941
+ products$: Observable<Product[]>;
1942
+ constructor(apiService: ApiService);
1943
+ fetchProducts({ page, search, limit, }: FetchProductsParams): Observable<ProductsResponseInterface>;
1944
+ loadProducts(params: FetchProductsParams): void;
1945
+ getCurrentProducts(): Product[];
1946
+ fetchOneById(id: number): Observable<ProductResponse>;
1947
+ createOne(data: Product): Observable<any>;
1948
+ updateOne(id: number, data: any): Observable<ProductResponse>;
1949
+ deleteOne(id: number): Observable<any>;
1950
+ fetchImages(id: number): Observable<{
1951
+ data: ProductImage[];
1952
+ }>;
1953
+ uploadImages(id: number, files?: FormData): Observable<{
1954
+ data: ProductImage[];
1955
+ }>;
1956
+ deleteOneImage(productId: number, imageId: number): Observable<any>;
1957
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
1958
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
1959
+ }
1960
+
1961
+ declare class BaseModalService {
1962
+ readonly isOpen: WritableSignal<boolean>;
1963
+ get modalIsOpen(): WritableSignal<boolean>;
1964
+ open(): void;
1965
+ close(): void;
1966
+ }
1967
+
1968
+ declare class FeedbackModalService {
1969
+ private _modals;
1970
+ readonly modals: i0.Signal<FeedbackModalElement[]>;
1971
+ addModal(modal: FeedbackModalElement): void;
1972
+ removeModal(id: string): void;
1973
+ removeAllModals(): void;
1974
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalService, never>;
1975
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackModalService>;
1976
+ }
1977
+
1978
+ declare class OrderTransactionDetailsModalService {
1979
+ readonly isOpen: WritableSignal<boolean>;
1980
+ transaction: WritableSignal<Transaction | null>;
1981
+ get modalIsOpen(): WritableSignal<boolean>;
1982
+ open(transaction: Transaction): void;
1983
+ close(): void;
1984
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalService, never>;
1985
+ static ɵprov: i0.ɵɵInjectableDeclaration<OrderTransactionDetailsModalService>;
1986
+ }
1987
+
1988
+ declare class PerformanceBookingDataService {
1989
+ private _show;
1990
+ private _performance;
1991
+ private _roomMap;
1992
+ private _hallFloors;
1993
+ private _selectedHallFloor;
1994
+ private _allRenderData;
1995
+ private _stageConfig;
1996
+ readonly show: i0.Signal<Show | null>;
1997
+ readonly hallFloors: i0.Signal<HallFloor[]>;
1998
+ readonly selectedHallFloor: i0.Signal<HallFloor | null>;
1999
+ readonly performance: i0.Signal<Performance | null>;
2000
+ readonly stageConfig: i0.Signal<{
2001
+ [x: string]: any;
2002
+ }>;
2003
+ readonly roomMap: i0.Signal<RoomMap | null>;
2004
+ readonly renderData: i0.Signal<ElementRenderData[]>;
2005
+ setPerformanceBookingData({ data }: PerformanceBookingDataResponse): void;
2006
+ setRoomMap(roomMap: RoomMap | null): void;
2007
+ setPerformance(performance: Performance | null): void;
2008
+ setShow(show: Show | null): void;
2009
+ setSelectedHallFloor(id: number): void;
2010
+ updateStageConfig(data: {
2011
+ [x: string]: any;
2012
+ }): void;
2013
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceBookingDataService, never>;
2014
+ static ɵprov: i0.ɵɵInjectableDeclaration<PerformanceBookingDataService>;
2015
+ }
2016
+
2017
+ declare class TicketSelectionDetailsService {
2018
+ private _customerEmail;
2019
+ private _customerId;
2020
+ private _paymentMethod;
2021
+ private _billingInformation;
2022
+ readonly customerEmail: i0.Signal<string | null>;
2023
+ readonly customerId: i0.Signal<number | null>;
2024
+ readonly paymentMethod: i0.Signal<string | null>;
2025
+ readonly billingInformation: i0.Signal<Customer | null>;
2026
+ setCustomerEmail(email: string | null): void;
2027
+ setCustomerId(id: number | null): void;
2028
+ setPaymentMethod(method: string | null): void;
2029
+ setBillingInformation(values: Customer): void;
2030
+ clearSelection(): void;
2031
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDetailsService, never>;
2032
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDetailsService>;
2033
+ }
2034
+
2035
+ declare class TicketSelectionDiscountService {
2036
+ private _coupon;
2037
+ private _corporateBond;
2038
+ private _corporateBondCode;
2039
+ private _giftBond;
2040
+ private _giftBondCode;
2041
+ readonly coupon: Signal<Coupon | null>;
2042
+ readonly corporateBond: Signal<CorporateBond | null>;
2043
+ readonly corporateBondCode: Signal<string | null>;
2044
+ readonly giftBond: Signal<GiftBondPurchase | null>;
2045
+ readonly giftBondCode: Signal<string | null>;
2046
+ readonly selectedDiscount: Signal<SelectedDiscountCard | null>;
2047
+ readonly selectedDiscountType: Signal<SelectedDiscountCardType | undefined>;
2048
+ readonly selectedDiscountValue: Signal<number | undefined>;
2049
+ setCoupon(coupon: Coupon | null): void;
2050
+ setCorporateBond(corporateBond: CorporateBond | null): void;
2051
+ setCorporateBondCode(code: string | null): void;
2052
+ setGiftBond(giftBond: GiftBondPurchase | null): void;
2053
+ setGiftBondCode(code: string | null): void;
2054
+ clearSelection(): void;
2055
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDiscountService, never>;
2056
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDiscountService>;
2057
+ }
2058
+
2059
+ declare class TicketSelectionTotalsService {
2060
+ private bookingDataService;
2061
+ private selectionService;
2062
+ private selectionDiscountService;
2063
+ readonly selectedProductEntries: i0.Signal<{
2064
+ id: number;
2065
+ quantity: number;
2066
+ }[]>;
2067
+ readonly selectedProductCount: i0.Signal<number>;
2068
+ readonly productSubtotal: i0.Signal<number>;
2069
+ readonly ticketSubtotal: i0.Signal<number>;
2070
+ readonly serviceFee: i0.Signal<number>;
2071
+ subtotalValue(): number;
2072
+ totalValue(): number;
2073
+ totalDiscounted(): number | null;
2074
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionTotalsService, never>;
2075
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionTotalsService>;
2076
+ }
2077
+
2078
+ declare class TicketSelectionService {
2079
+ private bookingDataService;
2080
+ private feedbackModalService;
2081
+ private selectionDetailsService;
2082
+ private selectionDiscountService;
2083
+ private _zoneQuantities;
2084
+ private _allTickets;
2085
+ private _selectedTickets;
2086
+ private _selectedBlockedTickets;
2087
+ private _products;
2088
+ private _productQuantities;
2089
+ readonly selectedTickets: i0.Signal<PerformanceTicket[]>;
2090
+ readonly selectedBlockedTickets: i0.Signal<PerformanceTicket[]>;
2091
+ readonly selectedCount: i0.Signal<number>;
2092
+ readonly blockedSelectedCount: i0.Signal<number>;
2093
+ readonly selectedTicketIds: i0.Signal<Set<PerformanceTicket>>;
2094
+ readonly selectedBlockedTicketIds: i0.Signal<number[]>;
2095
+ readonly selectedTicketIdList: i0.Signal<number[]>;
2096
+ readonly products: i0.Signal<Product[]>;
2097
+ readonly productQuantities: i0.Signal<Map<number, number>>;
2098
+ readonly selectedProductEntries: i0.Signal<{
2099
+ id: number;
2100
+ quantity: number;
2101
+ }[]>;
2102
+ readonly selectedProductCount: i0.Signal<number>;
2103
+ readonly serviceFee: i0.Signal<number>;
2104
+ setTickets(tickets: PerformanceTicket[]): void;
2105
+ setProducts(products: Product[]): void;
2106
+ updateProductQuantity(productId: number, delta: number): void;
2107
+ getProductQuantity(productId: number): number;
2108
+ private getListByStatus;
2109
+ setSelectedTickets(tickets: PerformanceTicket[]): void;
2110
+ toggle(ticket: PerformanceTicket): void;
2111
+ select(ticket: PerformanceTicket): void;
2112
+ deselect(ticket: PerformanceTicket): void;
2113
+ clearBlockedSelection(): void;
2114
+ clearSelection(): void;
2115
+ isSelected(ticket: PerformanceTicket): boolean;
2116
+ initZoneQuantity(elementId: number, maxCapacity: number): void;
2117
+ adjustZoneQuantity(elementId: number, delta: number): void;
2118
+ getZoneTickets(elementId: number): PerformanceTicket[];
2119
+ buildTooltipData(ticket: PerformanceTicket, elementName: string, seatLabel: string | null, x: number, y: number): TicketMapTooltipData;
2120
+ buildReservePerformanceDto(paymentMethod?: string, termsAccepted?: boolean, dataProcessingAccepted?: boolean): ReservePerformanceDto;
2121
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionService, never>;
2122
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionService>;
2123
+ }
2124
+
2125
+ declare class TicketMapZoomService {
2126
+ readonly currentZoom: i0.WritableSignal<number>;
2127
+ private stage?;
2128
+ private bookingDataService;
2129
+ private readonly defaultConfig;
2130
+ constructor();
2131
+ /**
2132
+ * Set the Konva stage instance
2133
+ */
2134
+ setStage(stage: Stage): void;
2135
+ /**
2136
+ * Zoom in by one step
2137
+ */
2138
+ zoomIn(): void;
2139
+ /**
2140
+ * Zoom out by one step
2141
+ */
2142
+ zoomOut(): void;
2143
+ /**
2144
+ * Reset zoom to 100%
2145
+ */
2146
+ resetZoom(): void;
2147
+ /**
2148
+ * Get current zoom as percentage string
2149
+ */
2150
+ getZoomPercentage(): string;
2151
+ /**
2152
+ * Get current zoom value
2153
+ */
2154
+ getCurrentZoom(): number;
2155
+ /**
2156
+ * Apply zoom with center point
2157
+ */
2158
+ private applyZoom;
2159
+ /**
2160
+ * Apply zoom scale with specific center point
2161
+ */
2162
+ private applyZoomScale;
2163
+ /**
2164
+ * Handle mouse wheel zoom toward the cursor position
2165
+ */
2166
+ handleWheelZoom(deltaY: number): void;
2167
+ /**
2168
+ * Fit the content bounds to fill the stage container
2169
+ */
2170
+ fitToContainer(padding?: number): void;
2171
+ /**
2172
+ * Get current stage position
2173
+ */
2174
+ getStagePosition(): {
2175
+ x: number;
2176
+ y: number;
2177
+ };
2178
+ /**
2179
+ * Set stage position (useful for programmatic panning)
2180
+ */
2181
+ setStagePosition(position: {
2182
+ x: number;
2183
+ y: number;
2184
+ }): void;
2185
+ /**
2186
+ * Fit the stage content bounds to the container, centering and scaling
2187
+ * to show the full content with optional padding.
2188
+ */
2189
+ fitToBounds(contentBounds: {
2190
+ x: number;
2191
+ y: number;
2192
+ width: number;
2193
+ height: number;
2194
+ }, containerWidth: number, containerHeight: number, padding?: number): void;
2195
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomService, never>;
2196
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketMapZoomService>;
2197
+ }
2198
+
2199
+ declare class ConfirmationOrderModalService extends BaseModalService {
2200
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalService, never>;
2201
+ static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationOrderModalService>;
2202
+ }
2203
+
2204
+ declare class TicketQrService {
2205
+ private apiService;
2206
+ constructor(apiService: ApiService);
2207
+ fetchQrToken(ticketUuid: string): Observable<QrTokenResponse>;
2208
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrService, never>;
2209
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrService>;
2210
+ }
2211
+
2212
+ declare class TicketQrModalService {
2213
+ isOpen: WritableSignal<boolean>;
2214
+ ticketUuid: WritableSignal<string | null>;
2215
+ ticketDescription: WritableSignal<string | null>;
2216
+ open(ticketUuid: string, description?: string): void;
2217
+ close(): void;
2218
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalService, never>;
2219
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrModalService>;
2220
+ }
2221
+
1324
2222
  declare const authInterceptor: HttpInterceptorFn;
1325
2223
 
1326
2224
  declare class AppButtonComponent {
@@ -1365,15 +2263,29 @@ declare class AppAlertComponent {
1365
2263
  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>;
1366
2264
  }
1367
2265
 
1368
- declare class LoadingmModalComponent {
1369
- private loadingModalService;
1370
- constructor(loadingModalService: LoadingModalService);
1371
- get isOpen(): i0.WritableSignal<boolean>;
1372
- get title(): i0.WritableSignal<string>;
2266
+ declare class FeedbackModalComponent implements OnChanges, OnDestroy {
2267
+ isOpen: WritableSignal<boolean>;
2268
+ type: FeedbackModalType;
2269
+ title: string;
2270
+ message: string;
2271
+ showHeader: boolean;
2272
+ showCloseButton: boolean;
2273
+ showTitle: boolean;
2274
+ autoClose: boolean;
2275
+ autoCloseDuration: number;
2276
+ buttonText: string;
2277
+ closed: EventEmitter<void>;
2278
+ private autoCloseTimeout;
2279
+ get defaultButtonText(): string;
2280
+ get resolvedButtonText(): string;
2281
+ get buttonVariant(): 'primary' | 'secondary';
2282
+ ngOnChanges(changes: SimpleChanges): void;
2283
+ ngOnDestroy(): void;
1373
2284
  closeModal(): void;
1374
- onCitySaved(): void;
1375
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingmModalComponent, never>;
1376
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingmModalComponent, "loading-modal", never, {}, {}, never, never, true, never>;
2285
+ private scheduleAutoClose;
2286
+ private clearAutoClose;
2287
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
2288
+ 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>;
1377
2289
  }
1378
2290
 
1379
2291
  declare class DeleteConfirmationComponent {
@@ -1396,12 +2308,27 @@ declare class DeleteConfirmationComponent {
1396
2308
  declare class AppModalComponent {
1397
2309
  title: string;
1398
2310
  disableClose: boolean;
2311
+ showHeader: boolean;
2312
+ showCloseButton: boolean;
2313
+ showTitle: boolean;
1399
2314
  isOpen: WritableSignal<boolean>;
1400
- size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
2315
+ size: ModalSize;
1401
2316
  closeModal: EventEmitter<void>;
1402
2317
  onCloseModal(): void;
2318
+ onKeydownEscape(): void;
1403
2319
  static ɵfac: i0.ɵɵFactoryDeclaration<AppModalComponent, never>;
1404
- 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>;
2320
+ 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; }; "isOpen": { "alias": "isOpen"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "closeModal": "closeModal"; }, never, ["*"], true, never>;
2321
+ }
2322
+
2323
+ declare class AppBadgeComponent {
2324
+ text: string;
2325
+ color: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
2326
+ size: BadgeSize;
2327
+ bordered: boolean;
2328
+ backgroundColor: string;
2329
+ textColor: string;
2330
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppBadgeComponent, never>;
2331
+ 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>;
1405
2332
  }
1406
2333
 
1407
2334
  declare class AuditInformationComponent {
@@ -1436,6 +2363,27 @@ declare class DynamicTableComponent {
1436
2363
  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>;
1437
2364
  }
1438
2365
 
2366
+ declare class ShowCardComponent {
2367
+ show: Show;
2368
+ linkText: string;
2369
+ linkUrlFn?: (show: Show) => string;
2370
+ linkQueryParams?: Record<string, any>;
2371
+ transloco: TranslocoService;
2372
+ dateService: DateService;
2373
+ get showTypeColor(): {
2374
+ bg: string;
2375
+ text: string;
2376
+ };
2377
+ formatTimeDate(date: string): Date;
2378
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardComponent, never>;
2379
+ 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>;
2380
+ }
2381
+
2382
+ declare class ShowCardSkeletonComponent {
2383
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardSkeletonComponent, never>;
2384
+ static ɵcmp: i0.ɵɵComponentDeclaration<ShowCardSkeletonComponent, "show-card-skeleton", never, {}, {}, never, never, true, never>;
2385
+ }
2386
+
1439
2387
  declare class LanguageSwitcherComponent {
1440
2388
  protected transloco: TranslocoService;
1441
2389
  availableLangs: string[];
@@ -1483,7 +2431,7 @@ declare class FormInputComponent implements ControlValueAccessor {
1483
2431
 
1484
2432
  declare class FormSelectComponent implements ControlValueAccessor {
1485
2433
  ngControl: NgControl;
1486
- private transloco;
2434
+ protected transloco: TranslocoService;
1487
2435
  label: string;
1488
2436
  name: string;
1489
2437
  id: string;
@@ -1507,7 +2455,6 @@ declare class FormSelectComponent implements ControlValueAccessor {
1507
2455
  get inputId(): string;
1508
2456
  get showError(): boolean;
1509
2457
  get errorMessage(): string;
1510
- get resolvedDefaultOptionLabel(): string;
1511
2458
  get fieldGroupClasses(): string;
1512
2459
  static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [{ optional: true; self: true; }, null]>;
1513
2460
  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>;
@@ -1562,7 +2509,8 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
1562
2509
  onChange: any;
1563
2510
  onTouched: any;
1564
2511
  private subscription;
1565
- constructor(ngControl: NgControl, transloco: TranslocoService);
2512
+ isBrowser: boolean;
2513
+ constructor(ngControl: NgControl, transloco: TranslocoService, platformId: object);
1566
2514
  ngOnInit(): void;
1567
2515
  ngOnDestroy(): void;
1568
2516
  writeValue(value: any): void;
@@ -1573,7 +2521,7 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
1573
2521
  get showError(): boolean;
1574
2522
  get errorMessage(): string;
1575
2523
  get fieldGroupClasses(): string;
1576
- static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null]>;
2524
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null, null]>;
1577
2525
  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>;
1578
2526
  }
1579
2527
 
@@ -1757,6 +2705,7 @@ declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, Cont
1757
2705
  notFoundText: string;
1758
2706
  bindLabel: string;
1759
2707
  bindValue: string;
2708
+ disabled: boolean;
1760
2709
  value: any;
1761
2710
  onChange: any;
1762
2711
  onTouched: any;
@@ -1786,7 +2735,7 @@ declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, Cont
1786
2735
  registerOnTouched(fn: any): void;
1787
2736
  setDisabledState(isDisabled: boolean): void;
1788
2737
  static ɵfac: i0.ɵɵFactoryDeclaration<AsyncSelectComponent, never>;
1789
- static ɵcmp: i0.ɵɵComponentDeclaration<AsyncSelectComponent, "async-select", never, { "config": { "alias": "config"; "required": false; }; "items": { "alias": "items"; "required": false; }; "parentId": { "alias": "parentId"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; }, {}, never, never, true, never>;
2738
+ static ɵcmp: i0.ɵɵComponentDeclaration<AsyncSelectComponent, "async-select", never, { "config": { "alias": "config"; "required": false; }; "items": { "alias": "items"; "required": false; }; "parentId": { "alias": "parentId"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "bindLabel": { "alias": "bindLabel"; "required": false; }; "bindValue": { "alias": "bindValue"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
1790
2739
  }
1791
2740
 
1792
2741
  declare class ChangePasswordFormComponent {
@@ -2244,11 +3193,15 @@ declare class DaySelectorGridComponent {
2244
3193
  declare class PerformanceCardComponent {
2245
3194
  protected listEventService: PerformancesListEventsService;
2246
3195
  card: DailyPerformanceItem;
3196
+ linkText: string;
3197
+ linkUrlFn?: (card: DailyPerformanceItem) => string;
3198
+ linkQueryParams?: Record<string, any>;
2247
3199
  constructor(listEventService: PerformancesListEventsService);
3200
+ get badgeColor(): 'success' | 'error';
2248
3201
  onSelect(): void;
2249
3202
  isSelected(): boolean;
2250
3203
  static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardComponent, never>;
2251
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardComponent, "performance-card", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
3204
+ 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>;
2252
3205
  }
2253
3206
 
2254
3207
  declare class PerformanceCardListComponent {
@@ -2256,6 +3209,9 @@ declare class PerformanceCardListComponent {
2256
3209
  protected performanceService: PerformanceService;
2257
3210
  protected listEventService: PerformancesListEventsService;
2258
3211
  protected toastService: ToastService;
3212
+ linkText: string;
3213
+ linkUrlFn?: (card: DailyPerformanceItem) => string;
3214
+ linkQueryParams?: Record<string, any>;
2259
3215
  loadingData: WritableSignal<boolean>;
2260
3216
  performances: WritableSignal<DailyPerformanceItem[]>;
2261
3217
  constructor(platformId: object, performanceService: PerformanceService, listEventService: PerformancesListEventsService, toastService: ToastService);
@@ -2263,7 +3219,7 @@ declare class PerformanceCardListComponent {
2263
3219
  private loadData;
2264
3220
  get selectedDayDate(): string | null;
2265
3221
  static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardListComponent, never>;
2266
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, {}, {}, never, never, true, never>;
3222
+ 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>;
2267
3223
  }
2268
3224
 
2269
3225
  declare class PerformanceStepperComponent {
@@ -2292,9 +3248,9 @@ declare class ShowsFilterComponent {
2292
3248
  }
2293
3249
 
2294
3250
  interface PriceZoneItem {
2295
- colorClass: string;
3251
+ color: string;
2296
3252
  name: string;
2297
- seatsAvailable: number;
3253
+ available_seats: number;
2298
3254
  price: string;
2299
3255
  }
2300
3256
 
@@ -2310,5 +3266,320 @@ declare class ZonePriceListComponent {
2310
3266
  static ɵcmp: i0.ɵɵComponentDeclaration<ZonePriceListComponent, "zone-price-list", never, { "zones": { "alias": "zones"; "required": true; }; }, {}, never, never, true, never>;
2311
3267
  }
2312
3268
 
2313
- 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, CustomerSelectComponent, CustomerService, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, 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 };
2314
- 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, 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, Venue, VenueImage };
3269
+ declare class TicketMapWidgetComponent {
3270
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetComponent, never>;
3271
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetComponent, "ticket-map-widget", never, {}, {}, never, ["*"], true, never>;
3272
+ }
3273
+
3274
+ declare class TicketMapWidgetHeaderComponent {
3275
+ title: string;
3276
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetHeaderComponent, never>;
3277
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetHeaderComponent, "ticket-map-widget-header", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], true, never>;
3278
+ }
3279
+
3280
+ declare class TicketMapZoomControlsComponent {
3281
+ private zoomService;
3282
+ readonly currentZoom: i0.Signal<number>;
3283
+ readonly zoomPercentage: i0.Signal<string>;
3284
+ constructor(zoomService: TicketMapZoomService);
3285
+ zoomIn(): void;
3286
+ zoomOut(): void;
3287
+ resetZoom(): void;
3288
+ fitToContainer(): void;
3289
+ handleZoomAction(action: string): void;
3290
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomControlsComponent, never>;
3291
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapZoomControlsComponent, "ticket-map-zoom-controls", never, {}, {}, never, never, true, never>;
3292
+ }
3293
+
3294
+ declare class PerformanceTicketMapComponent implements OnDestroy, AfterViewInit {
3295
+ private platformId;
3296
+ protected bookingDataService: PerformanceBookingDataService;
3297
+ protected feedbackModalService: FeedbackModalService;
3298
+ protected selectionService: TicketSelectionService;
3299
+ protected zoomService: TicketMapZoomService;
3300
+ selectionChange: EventEmitter<PerformanceTicket[]>;
3301
+ needsLoginError: EventEmitter<any>;
3302
+ readOnly: boolean;
3303
+ needsLogin: boolean;
3304
+ isLoggedIn: boolean;
3305
+ stageComponent?: StageComponent;
3306
+ protected tooltipData: i0.WritableSignal<TicketMapTooltipData | null>;
3307
+ private stageReady;
3308
+ private autoFitDone;
3309
+ private resizeObserver?;
3310
+ constructor(platformId: object, bookingDataService: PerformanceBookingDataService, feedbackModalService: FeedbackModalService, selectionService: TicketSelectionService, zoomService: TicketMapZoomService);
3311
+ protected get isBrowser(): boolean;
3312
+ ngAfterViewInit(): void;
3313
+ private setupResizeObserver;
3314
+ private syncStageToContainer;
3315
+ ngOnDestroy(): void;
3316
+ private getInternalPointer;
3317
+ protected selectHallFloor(floorId: number): void;
3318
+ protected handleStageClick(konvaEvent: any): void;
3319
+ protected handleStageMouseMove(konvaEvent: any): void;
3320
+ protected handleStageMouseLeave(): void;
3321
+ protected handleWheel(konvaEvent: any): void;
3322
+ protected trackByElementId(_index: number, item: ElementRenderData): number;
3323
+ protected trackByFloorId(_index: number, floor: HallFloorOption): HallFloorOption;
3324
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketMapComponent, never>;
3325
+ 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>;
3326
+ }
3327
+
3328
+ declare class TicketMapPriceZonesComponent {
3329
+ title: string;
3330
+ protected bookingDataService: PerformanceBookingDataService;
3331
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapPriceZonesComponent, never>;
3332
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapPriceZonesComponent, "ticket-map-price-zones", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never>;
3333
+ }
3334
+
3335
+ declare class TicketMapProductSelectionItemComponent {
3336
+ protected selectionService: TicketSelectionService;
3337
+ product: Product;
3338
+ constructor(selectionService: TicketSelectionService);
3339
+ get quantity(): number;
3340
+ get firstImage(): string | undefined;
3341
+ increment(): void;
3342
+ decrement(): void;
3343
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapProductSelectionItemComponent, never>;
3344
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapProductSelectionItemComponent, "ticket-map-product-selection-item", never, { "product": { "alias": "product"; "required": true; }; }, {}, never, never, true, never>;
3345
+ }
3346
+
3347
+ declare class TIcketMapProductSelectionComponent {
3348
+ private bookingDataService;
3349
+ readonly products: i0.Signal<tickera_angular_components.Product[]>;
3350
+ static ɵfac: i0.ɵɵFactoryDeclaration<TIcketMapProductSelectionComponent, never>;
3351
+ static ɵcmp: i0.ɵɵComponentDeclaration<TIcketMapProductSelectionComponent, "ticket-map-product-selection", never, {}, {}, never, never, true, never>;
3352
+ }
3353
+
3354
+ declare class TicketMapTotalsComponent {
3355
+ protected bookingDataService: PerformanceBookingDataService;
3356
+ protected selectionDetailsService: TicketSelectionDetailsService;
3357
+ protected selectionDiscountService: TicketSelectionDiscountService;
3358
+ protected selectionTotalsService: TicketSelectionTotalsService;
3359
+ protected selectionService: TicketSelectionService;
3360
+ private activatedRoute;
3361
+ title: string;
3362
+ buttonText: string;
3363
+ loadingButtonText: string;
3364
+ isLoading: boolean;
3365
+ onPurchaseClick: EventEmitter<void>;
3366
+ constructor(bookingDataService: PerformanceBookingDataService, selectionDetailsService: TicketSelectionDetailsService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, activatedRoute: ActivatedRoute);
3367
+ get serviceFee(): number;
3368
+ get performanceId(): number;
3369
+ get selectedTicketIds(): number[];
3370
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapTotalsComponent, never>;
3371
+ 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>;
3372
+ }
3373
+
3374
+ declare class TicketMapWrapperComponent {
3375
+ selectionChange: EventEmitter<PerformanceTicket[]>;
3376
+ needsLoginError: EventEmitter<any>;
3377
+ readOnly: boolean;
3378
+ needsLogin: boolean;
3379
+ isLoggedIn: boolean;
3380
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWrapperComponent, never>;
3381
+ 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>;
3382
+ }
3383
+
3384
+ declare class SeatSelectionEmptySummaryComponent {
3385
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionEmptySummaryComponent, never>;
3386
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionEmptySummaryComponent, "seat-selection-empty-summary", never, {}, {}, never, never, true, never>;
3387
+ }
3388
+
3389
+ declare class SeatSelectionSummaryComponent {
3390
+ protected selectionService: TicketSelectionService;
3391
+ title: string;
3392
+ clearButtonText: string;
3393
+ constructor(selectionService: TicketSelectionService);
3394
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryComponent, never>;
3395
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryComponent, "seat-selection-summary", never, { "title": { "alias": "title"; "required": false; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; }; }, {}, never, never, true, never>;
3396
+ }
3397
+
3398
+ declare class SeatSelectionSummaryItemComponent {
3399
+ protected selectionService: TicketSelectionService;
3400
+ item: PerformanceTicket;
3401
+ constructor(selectionService: TicketSelectionService);
3402
+ getItemTypeIcon: (ticket: PerformanceTicket) => string;
3403
+ removeItem(ticket: PerformanceTicket): void;
3404
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryItemComponent, never>;
3405
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryItemComponent, "seat-selection-summary-item", never, { "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
3406
+ }
3407
+
3408
+ declare class ConfirmationOrderModalComponent {
3409
+ private confirmationOrderModalService;
3410
+ private selectionDiscountService;
3411
+ private selectionTotalsService;
3412
+ private selectionService;
3413
+ private bookingDataService;
3414
+ modalTitle: string;
3415
+ confirmButtonText: string;
3416
+ confirmButtonTextLoading: string;
3417
+ loading: boolean;
3418
+ onConfirm: EventEmitter<any>;
3419
+ constructor(confirmationOrderModalService: ConfirmationOrderModalService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, bookingDataService: PerformanceBookingDataService);
3420
+ get isOpen(): i0.WritableSignal<boolean>;
3421
+ get selectedCount(): number;
3422
+ get serviceFee(): number;
3423
+ get subtotalValue(): number;
3424
+ get ticketSubtotal(): number;
3425
+ get productSubtotal(): number;
3426
+ get productCount(): number;
3427
+ get totalValue(): number;
3428
+ get totalDiscounted(): number | null;
3429
+ get coupon(): tickera_angular_components.Coupon | null;
3430
+ get corporateBond(): tickera_angular_components.CorporateBond | null;
3431
+ get giftBond(): tickera_angular_components.GiftBondPurchase | null;
3432
+ onClose(): void;
3433
+ confirmOrder(): void;
3434
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalComponent, never>;
3435
+ 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>;
3436
+ }
3437
+
3438
+ declare class OrderInformationComponent {
3439
+ readonly transloco: TranslocoService;
3440
+ order: Order;
3441
+ constructor(transloco: TranslocoService);
3442
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderInformationComponent, never>;
3443
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderInformationComponent, "order-information", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
3444
+ }
3445
+
3446
+ declare class OrderStatusBadgeComponent {
3447
+ protected transloco: TranslocoService;
3448
+ order: Order | RecentOrder;
3449
+ size: BadgeSize;
3450
+ constructor(transloco: TranslocoService);
3451
+ protected get statusColors(): {
3452
+ text: string;
3453
+ bg: string;
3454
+ };
3455
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderStatusBadgeComponent, never>;
3456
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderStatusBadgeComponent, "order-status-badge", never, { "order": { "alias": "order"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
3457
+ }
3458
+
3459
+ declare class OrderItemTypeBadgeComponent {
3460
+ protected transloco: TranslocoService;
3461
+ item: OrderItem;
3462
+ size: BadgeSize;
3463
+ constructor(transloco: TranslocoService);
3464
+ protected get statusColors(): {
3465
+ text: string;
3466
+ bg: string;
3467
+ };
3468
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemTypeBadgeComponent, never>;
3469
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemTypeBadgeComponent, "order-item-type-badge", never, { "item": { "alias": "item"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
3470
+ }
3471
+
3472
+ declare class OrderItemsComponent {
3473
+ private ticketQrModalService;
3474
+ order: Order;
3475
+ constructor(ticketQrModalService: TicketQrModalService);
3476
+ protected get orderItems(): Order['order_items'];
3477
+ protected get products(): Order['order_items'];
3478
+ protected get tickets(): Order['order_items'];
3479
+ protected get giftBonds(): Order['order_items'];
3480
+ protected get showActionColumn(): boolean;
3481
+ protected itemTotal(quantity: number, price: number): number;
3482
+ protected hasDiscount(): boolean;
3483
+ protected get totals(): {
3484
+ giftBonds: number;
3485
+ products: number;
3486
+ tickets: number;
3487
+ };
3488
+ openTicketQr(ticketUuid: string, description: string): void;
3489
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemsComponent, never>;
3490
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemsComponent, "order-items", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
3491
+ }
3492
+
3493
+ declare class OrderDiscountAppliedComponent {
3494
+ order: Order;
3495
+ protected get discountInfo(): OrderDiscountInfo;
3496
+ protected get hasDiscount(): boolean;
3497
+ protected get discountPct(): number | null;
3498
+ protected get badgeColors(): {
3499
+ text: string;
3500
+ bg: string;
3501
+ };
3502
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderDiscountAppliedComponent, never>;
3503
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderDiscountAppliedComponent, "order-discount-applied", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
3504
+ }
3505
+
3506
+ interface BillingField {
3507
+ label: string;
3508
+ value: string | number | null;
3509
+ }
3510
+ declare class OrderBillingInfoComponent {
3511
+ order: Order;
3512
+ protected get fields(): BillingField[];
3513
+ protected get hasFields(): boolean;
3514
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderBillingInfoComponent, never>;
3515
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderBillingInfoComponent, "order-billing-info", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
3516
+ }
3517
+
3518
+ declare class OrderTransactionsComponent {
3519
+ private transactionDetailsModalService;
3520
+ order: Order;
3521
+ constructor(transactionDetailsModalService: OrderTransactionDetailsModalService);
3522
+ protected get transactions(): Transaction[];
3523
+ protected get hasTransactions(): boolean;
3524
+ protected get txColors(): Record<string, {
3525
+ text: string;
3526
+ bg: string;
3527
+ }>;
3528
+ protected openTransaction(transaction: Transaction): void;
3529
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionsComponent, never>;
3530
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionsComponent, "order-transactions", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
3531
+ }
3532
+
3533
+ declare class OrderTransactionDetailsModalComponent {
3534
+ private modalService;
3535
+ isOpen: WritableSignal<boolean> | null;
3536
+ transaction: Transaction | null;
3537
+ get modalIsOpen(): WritableSignal<boolean>;
3538
+ get selectedTransaction(): WritableSignal<Transaction | null>;
3539
+ protected get txColors(): Record<TransactionStatus, {
3540
+ text: string;
3541
+ bg: string;
3542
+ }>;
3543
+ protected get gatewayResponse(): string;
3544
+ onClose(): void;
3545
+ static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalComponent, never>;
3546
+ static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionDetailsModalComponent, "order-transaction-details-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, true, never>;
3547
+ }
3548
+
3549
+ declare class TicketQrComponent implements OnInit, OnDestroy {
3550
+ private ticketQrService;
3551
+ ticketUuid: string;
3552
+ qrCanvas: ElementRef<HTMLCanvasElement>;
3553
+ loading: i0.WritableSignal<boolean>;
3554
+ error: i0.WritableSignal<boolean>;
3555
+ refreshing: i0.WritableSignal<boolean>;
3556
+ countdown: i0.WritableSignal<number>;
3557
+ private destroy$;
3558
+ private refreshTimeout;
3559
+ private countdownInterval;
3560
+ constructor(ticketQrService: TicketQrService);
3561
+ ngOnInit(): void;
3562
+ ngOnDestroy(): void;
3563
+ retry(): void;
3564
+ private clearTimers;
3565
+ private fetchAndRender;
3566
+ private scheduleRefresh;
3567
+ private startCountdown;
3568
+ private renderQr;
3569
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrComponent, never>;
3570
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrComponent, "performance-ticket-qr", never, { "ticketUuid": { "alias": "ticketUuid"; "required": true; }; }, {}, never, never, true, never>;
3571
+ }
3572
+
3573
+ declare class TicketQrModalComponent {
3574
+ private ticketQrModalService;
3575
+ constructor(ticketQrModalService: TicketQrModalService);
3576
+ get isOpen(): i0.WritableSignal<boolean>;
3577
+ get ticketUuid(): i0.WritableSignal<string | null>;
3578
+ get ticketDescription(): i0.WritableSignal<string | null>;
3579
+ onClose(): void;
3580
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalComponent, never>;
3581
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrModalComponent, "ticket-qr-modal", never, {}, {}, never, never, true, never>;
3582
+ }
3583
+
3584
+ export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, AppBadgeComponent, 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, MinTodayValidator, MustMatchValidator, 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, 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, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, SHOW_TYPE_COLORS, STATE_API_ENDPOINTS, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowType, 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, TickeraTranslocoLoader, TicketMapPriceZonesComponent, TicketMapProductSelectionItemComponent, TicketMapTotalsComponent, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapWrapperComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketQrComponent, TicketQrModalComponent, TicketQrModalService, TicketQrService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, TransactionStatus, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter, parseJsonToFormDataAdvanced, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile };
3585
+ export type { Admin, AdminsResponse, AsyncSelectConfig, Auditable, BadgeSize, CitiesResponse, City, CityResponse, CorporateBond, CorporateBondCode, CorporateBondResponse, CountriesResponse, Country, CountryResponse, Coupon, CouponResponse, Customer, CustomerResponse, CustomersResponse, DailyPerformanceHall, DailyPerformanceItem, DailyPerformancePriceZone, DailyPerformanceShow, DailyPerformanceVenue, DailyPerformancesResponse, DeleteConfirmationOpen, DragDropEvent, DynamicTableHeader, ElementPropertiesTab, ElementRenderData, FeedbackModalElement, FeedbackModalType, FetchCitiesParams, FetchDailyPerformancesParams, FetchProductCategoriesParams, FetchProductTagsParams, FetchProductTypesParams, FetchShowsParams, FileUploadConfig, FindAllPriceZoneParams, GiftBond, GiftBondImage, GiftBondPurchase, GiftBondPurchaseResponse, GiftBondPurchasesResponse, GiftBondResponse, GiftBondsResponse, Hall, HallFloor, HallFloorOption, KonvaShapeConfig, ModalSize, NumerationConfig, Order, OrderBillingInfo, OrderDiscountInfo, OrderDiscountType, OrderItem, OrderResponse, OrdersResponse, Performance, PerformanceAvailableDay, PerformanceBookingDataResponse, PerformanceResponse, PerformanceTicket, PerformancesAvailableDaysResponse, PerformancesResponseInterface, 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, SelectOption, SelectedDiscountCard, Show, ShowCategoriesResponse, ShowCategory, ShowCategoryResponse, ShowGender, ShowGenderResponse, ShowGendersResponse, ShowImage, ShowResponse, ShowsResponseInterface, State, StateResponse, StatesResponse, TickeraComponentsConfig, TicketMapSeatPosition, TicketMapTableChairPosition, TicketMapTooltipData, TicketMapZoneQuantityState, TicketMapZoomConfig, Transaction, UploadedFile, ValidateCorporateBondResponse, ValidateCouponResponse, ValidateGiftBondResponse, Venue, VenueImage };