tickera-angular-components 0.0.1-dev.4 → 0.0.1-dev.40

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,33 +1,35 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders, WritableSignal, EventEmitter, Injector, Type, OnInit, OnDestroy, ElementRef, OnChanges, SimpleChanges } from '@angular/core';
3
- import { ValidatorFn, FormGroup, FormBuilder, ControlValueAccessor, NgControl, Validator, AbstractControl, FormControl } from '@angular/forms';
4
- import { HttpClient, HttpInterceptorFn } from '@angular/common/http';
2
+ import { InjectionToken, EnvironmentProviders, WritableSignal, Signal, EventEmitter, OnChanges, OnDestroy, SimpleChanges, Injector, Type, OnInit, ElementRef, AfterViewInit } from '@angular/core';
3
+ import { TranslocoLoader, TranslocoService } from '@jsverse/transloco';
5
4
  import * as rxjs from 'rxjs';
6
5
  import { Observable, Subject } from 'rxjs';
7
- import { TranslocoService } from '@jsverse/transloco';
6
+ import { ShapeConfig, Shape } from 'konva/lib/Shape';
7
+ import { Context } from 'konva/lib/Context';
8
+ import { ValidatorFn, FormGroup, FormBuilder, ControlValueAccessor, NgControl, Validator, AbstractControl, FormControl } from '@angular/forms';
9
+ import { HttpClient, HttpInterceptorFn } from '@angular/common/http';
10
+ import { Stage } from 'konva/lib/Stage';
8
11
  import { Toolbar, Editor } from 'ngx-editor';
9
12
  import { Router } from '@angular/router';
13
+ import { StageComponent } from 'ng2-konva';
10
14
 
11
15
  interface TickeraComponentsConfig {
12
16
  apiUrl: string;
13
17
  accessTokenKey?: string;
18
+ defaultLang?: string;
19
+ availableLangs?: string[];
14
20
  }
15
21
  declare const TICKERA_COMPONENTS_CONFIG: InjectionToken<TickeraComponentsConfig>;
16
22
  declare function provideTickeraComponents(config: TickeraComponentsConfig): EnvironmentProviders;
17
23
 
18
- declare const ALERT_BASE_CLASSES = "border rounded relative flex items-center gap-2 px-4 py-2";
19
- declare const ALERT_COLOR_CLASSES: {
20
- success: string;
21
- error: string;
22
- warning: string;
23
- info: string;
24
- };
25
- declare const ALERT_SIZE_CLASSES: {
26
- xs: string;
27
- sm: string;
28
- md: string;
29
- lg: string;
30
- };
24
+ declare class TickeraTranslocoLoader implements TranslocoLoader {
25
+ getTranslation(lang: string): Observable<Record<string, unknown>>;
26
+ }
27
+
28
+ declare function getStoredLanguage(): string;
29
+ declare function setStoredLanguage(lang: string): void;
30
+ declare function getBrowserLanguage(): string;
31
+ declare function resolveLanguage(): string;
32
+
31
33
  declare const ALERT_ICONS: {
32
34
  success: string;
33
35
  error: string;
@@ -35,26 +37,6 @@ declare const ALERT_ICONS: {
35
37
  info: string;
36
38
  };
37
39
 
38
- declare const BUTTON_VARIANT_CLASSES: {
39
- primary: string;
40
- secondary: string;
41
- terciary: string;
42
- success: string;
43
- transparent: string;
44
- };
45
- declare const BASE_BUTTON_CLASSES: string;
46
- declare const BUTTON_SIZES_CLASSES: {
47
- xs: string;
48
- sm: string;
49
- md: string;
50
- lg: string;
51
- };
52
-
53
- declare const FORM_ERROR_MESSAGES: Record<string, string>;
54
-
55
- declare const BASE_INPUT_CLASSES: string;
56
- declare const ERROR_INPUT_CLASSES: string;
57
-
58
40
  declare const ADMIN_API_ROUTES: {
59
41
  FIND_ALL: string;
60
42
  CREATE: string;
@@ -78,10 +60,10 @@ declare const COUNTRY_API_ENDPOINTS: {
78
60
  delete: (id: number) => string;
79
61
  };
80
62
 
81
- declare const STATE_API_ENDPOINTS: {
63
+ declare const CUSTOMERS_API_ROUTES: {
82
64
  findAll: string;
83
65
  create: string;
84
- findById: (id: number) => string;
66
+ findOne: (id: number) => string;
85
67
  update: (id: number) => string;
86
68
  delete: (id: number) => string;
87
69
  };
@@ -103,12 +85,49 @@ declare const PERFORMANCES_API_ROUTES: {
103
85
  publicAvailablePerformances: string;
104
86
  };
105
87
 
88
+ declare const PRICE_ZONES_API_ROUTES: {
89
+ FIND_ALL: string;
90
+ CREATE: string;
91
+ findOneById: (id: number) => string;
92
+ update: (id: number) => string;
93
+ delete: (id: number) => string;
94
+ updateElements: (id: number) => string;
95
+ duplicate: (id: number) => string;
96
+ };
97
+
98
+ declare const PRODUCT_CATEGORIES_API_ROUTES: {
99
+ FIND_ALL: string;
100
+ CREATE: string;
101
+ findById: (id: number) => string;
102
+ update: (id: number) => string;
103
+ delete: (id: number) => string;
104
+ };
105
+
106
+ declare const PRODUCT_TAGS_API_ROUTES: {
107
+ FIND_ALL: string;
108
+ CREATE: string;
109
+ findById: (id: number) => string;
110
+ update: (id: number) => string;
111
+ delete: (id: number) => string;
112
+ };
113
+
114
+ declare const PRODUCT_TYPES_API_ROUTES: {
115
+ FIND_ALL: string;
116
+ CREATE: string;
117
+ findById: (id: number) => string;
118
+ update: (id: number) => string;
119
+ delete: (id: number) => string;
120
+ };
121
+
106
122
  declare const PRODUCTS_API_ROUTES: {
107
123
  FIND_ALL: string;
108
124
  CREATE: string;
109
125
  findOneById: (id: number) => string;
110
126
  update: (id: number) => string;
111
127
  delete: (id: number) => string;
128
+ fetchImages: (id: number) => string;
129
+ uploadImages: (id: number) => string;
130
+ deleteOneImage: (productId: number, imageId: number) => string;
112
131
  };
113
132
 
114
133
  declare const SHOWS_API_ROUTES: {
@@ -123,22 +142,12 @@ declare const SHOWS_API_ROUTES: {
123
142
  publicAvailablePerformances: string;
124
143
  };
125
144
 
126
- declare const CUSTOMERS_API_ROUTES: {
145
+ declare const STATE_API_ENDPOINTS: {
127
146
  findAll: string;
128
147
  create: string;
129
- findOne: (id: number) => string;
130
- update: (id: number) => string;
131
- delete: (id: number) => string;
132
- };
133
-
134
- declare const PRICE_ZONES_API_ROUTES: {
135
- FIND_ALL: string;
136
- CREATE: string;
137
- findOneById: (id: number) => string;
148
+ findById: (id: number) => string;
138
149
  update: (id: number) => string;
139
150
  delete: (id: number) => string;
140
- updateElements: (id: number) => string;
141
- duplicate: (id: number) => string;
142
151
  };
143
152
 
144
153
  declare const VENUES_API_ROUTES: {
@@ -152,152 +161,14 @@ declare const VENUES_API_ROUTES: {
152
161
  deleteOneImage: (venueId: number, imageId: number) => string;
153
162
  };
154
163
 
155
- declare enum FileType {
156
- IMAGE = "image",
157
- PDF = "pdf",
158
- EXCEL = "excel",
159
- WORD = "word",
160
- TEXT = "text",
161
- DEFAULT = "default"
162
- }
163
-
164
- declare enum CouponApplicability {
165
- GENERAL = "GENERAL",
166
- CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
167
- MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
168
- SHOWS = "SHOWS",
169
- PERFORMANCES = "PERFORMANCES"
170
- }
171
-
172
- declare enum CouponDiscountType {
173
- PERCENTAGE = "PERCENTAGE",
174
- FIXED = "FIXED"
175
- }
176
-
177
- declare enum CorporateBondStatus {
178
- ACTIVE = "ACTIVE",
179
- INACTIVE = "INACTIVE",
180
- EXPIRED = "EXPIRED"
181
- }
182
-
183
- declare enum PerformanceStatus {
184
- ACTIVE = "active",
185
- CANCELLED = "cancelled",
186
- FINISHED = "finished",
187
- POSTPONED = "postponed"
188
- }
189
-
190
- declare enum PerformanceTicketStatus {
191
- AVAILABLE = "available",
192
- RESERVED = "reserved",
193
- SOLD = "sold",
194
- BLOCKED = "blocked"
195
- }
196
-
197
- declare enum RoomMapElementOrientation {
198
- TOP = "top",
199
- RIGHT = "right",
200
- BOTTOM = "bottom",
201
- LEFT = "left",
202
- CENTER = "center"
203
- }
204
-
205
- declare enum RoomMapElementType {
206
- SEAT_BLOCK = "seat_block",
207
- TABLE = "table",
208
- ZONE = "zone",
209
- EXIT = "exit",
210
- STAGE = "stage",
211
- PRODUCTION_AREA = "production_area",
212
- UNAVAILABLE_SPACE = "unavailable_space",
213
- STAIR = "stair",
214
- HALLWAY = "hallway"
215
- }
216
-
217
- declare enum OrderItemType {
218
- TICKET = "TICKET",
219
- PRODUCT = "PRODUCT"
220
- }
221
-
222
- declare enum OrderStatus {
223
- PENDING = "PENDING",
224
- COMPLETED = "COMPLETED",
225
- FAILED = "FAILED",
226
- CANCELLED = "CANCELLED"
227
- }
228
-
229
- interface RoomMapPosition {
230
- x: number;
231
- y: number;
232
- }
233
-
234
- interface RoomMapSize {
235
- width: number;
236
- height: number;
237
- }
238
-
239
- interface RoomMapBaseElement {
240
- id: string;
241
- type: RoomMapElementType;
242
- position: RoomMapPosition;
243
- size: RoomMapSize;
244
- rotation: number;
245
- name?: string;
246
- isLocked: boolean;
247
- isVisible: boolean;
248
- zIndex: number;
249
- }
250
-
251
- interface RoomMapExitElement extends RoomMapBaseElement {
252
- type: RoomMapElementType.EXIT;
253
- exitName?: string;
254
- exitType: 'emergency' | 'regular';
255
- width: number;
256
- }
257
-
258
- interface RoomMapProductionAreaElement extends RoomMapBaseElement {
259
- type: RoomMapElementType.PRODUCTION_AREA;
260
- areaName?: string;
261
- areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
262
- }
263
-
264
- interface RoomMapSeatElement extends RoomMapBaseElement {
265
- type: RoomMapElementType.SEAT_BLOCK;
266
- seatNumber?: string;
267
- isAvailable: boolean;
268
- priceCategory?: string;
269
- }
270
-
271
- interface RoomMapStageElement extends RoomMapBaseElement {
272
- type: RoomMapElementType.STAGE;
273
- stageName?: string;
274
- orientation: RoomMapElementOrientation;
275
- isMainStage: boolean;
276
- }
277
-
278
- interface RoomMapTableElement extends RoomMapBaseElement {
279
- type: RoomMapElementType.TABLE;
280
- tableNumber?: string;
281
- capacity: number;
282
- shape: 'round' | 'rectangular' | 'square';
283
- }
284
-
285
- interface RoomMapUnavailableElement extends RoomMapBaseElement {
286
- type: RoomMapElementType.UNAVAILABLE_SPACE;
287
- reason?: string;
288
- }
289
-
290
- interface RoomMapZoneElement extends RoomMapBaseElement {
291
- type: RoomMapElementType.ZONE;
292
- zoneName: string;
293
- zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
294
- color: string;
295
- capacity?: number;
296
- }
164
+ declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
165
+ declare const BASE_BUTTON_CLASSES = "btn";
166
+ declare const BUTTON_SIZES_CLASSES: Record<string, string>;
297
167
 
298
- type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
168
+ declare const FORM_ERROR_MESSAGES: Record<string, string>;
299
169
 
300
- type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
170
+ declare const BASE_INPUT_CLASSES: string;
171
+ declare const ERROR_INPUT_CLASSES: string;
301
172
 
302
173
  interface SelectOption {
303
174
  value: any;
@@ -305,7 +176,7 @@ interface SelectOption {
305
176
  disabled?: boolean;
306
177
  }
307
178
 
308
- interface Admin {
179
+ interface Admin extends Auditable {
309
180
  id: number;
310
181
  username: string;
311
182
  email: string;
@@ -321,16 +192,17 @@ interface Admin {
321
192
  reset_password_expires: Date;
322
193
  email_verified_at: Date;
323
194
  last_login: Date;
324
- created_at: Date;
325
- updated_at: Date;
326
- deleted_at: Date;
327
195
  }
328
196
 
329
197
  interface Auditable {
330
198
  created_at: Date;
331
199
  updated_at: Date;
200
+ deleted_at?: Date | null;
332
201
  is_published?: boolean;
333
202
  published_at?: Date;
203
+ published_by?: number;
204
+ deleted_by?: number;
205
+ deleted_by_admin?: Admin;
334
206
  created_by_admin?: Admin;
335
207
  updated_by_admin?: Admin;
336
208
  published_by_admin?: Admin;
@@ -373,20 +245,20 @@ interface AdminsResponse {
373
245
  }
374
246
 
375
247
  interface Country {
376
- id: string;
248
+ id: number;
377
249
  name: string;
378
250
  iso2: string;
379
251
  }
380
252
 
381
253
  interface State {
382
- id: string;
254
+ id: number;
383
255
  name: string;
384
256
  country_id: number;
385
257
  country?: Country;
386
258
  }
387
259
 
388
260
  interface City {
389
- id: string;
261
+ id: number;
390
262
  name: string;
391
263
  search_text: string | null;
392
264
  state_id: number;
@@ -425,27 +297,21 @@ interface Venue extends Auditable {
425
297
  images: VenueImage[];
426
298
  }
427
299
 
428
- interface HallFloor {
300
+ interface HallFloor extends Auditable {
429
301
  id: number;
430
302
  name: string;
431
303
  level: number;
432
304
  max_capacity: number;
433
305
  description: string;
434
306
  hall_id: number;
435
- created_at: Date;
436
- updated_at: Date;
437
- deleted_at: Date | null;
438
307
  }
439
308
 
440
- interface Hall {
309
+ interface Hall extends Auditable {
441
310
  id: number;
442
311
  name: string;
443
312
  venue_id: number;
444
313
  venue?: Venue;
445
314
  hall_floors?: HallFloor[];
446
- created_at: Date;
447
- updated_at: Date;
448
- deleted_at: Date | null;
449
315
  }
450
316
 
451
317
  interface CountryResponse {
@@ -499,7 +365,7 @@ interface FetchCitiesParams {
499
365
  search?: string;
500
366
  }
501
367
 
502
- interface Customer {
368
+ interface Customer extends Auditable {
503
369
  username: string;
504
370
  email: string;
505
371
  mobile: string;
@@ -530,9 +396,6 @@ interface Customer {
530
396
  membership_expires_at: Date | null;
531
397
  id: number;
532
398
  is_active: boolean;
533
- created_at: Date;
534
- updated_at: Date;
535
- deleted_at: Date | null;
536
399
  }
537
400
 
538
401
  interface CustomerResponse {
@@ -550,76 +413,291 @@ interface CustomersResponse {
550
413
  message: string;
551
414
  }
552
415
 
553
- type ShowType = 'play' | 'musical' | 'concert' | 'dance' | 'opera' | 'comedy' | 'other';
416
+ declare enum OrderItemType {
417
+ TICKET = "TICKET",
418
+ PRODUCT = "PRODUCT"
419
+ }
554
420
 
555
- interface ShowImage {
556
- id: number;
557
- path: string;
558
- full_url: string;
559
- original_name: string;
560
- extension: string;
561
- size: number;
562
- mime_type: string;
563
- width: number;
564
- height: number;
565
- show_id: number;
566
- created_at: Date;
421
+ declare enum OrderStatus {
422
+ ON_HOLD = "on-hold",
423
+ PENDING_PAYMENT = "pending-payment",
424
+ PROCESSING = "processing",
425
+ COMPLETED = "completed",
426
+ FAILED = "failed",
427
+ CANCELLED = "cancelled",
428
+ REFUNDED = "refunded"
567
429
  }
568
430
 
569
- interface Show extends Auditable {
570
- id: number;
571
- title: string;
572
- slug: string;
573
- description: string;
574
- duration_minutes: number | null;
575
- type_of_costs: string | null;
576
- service_fee: number | null;
577
- show_type: ShowType | null;
578
- pulep: string | null;
579
- minimum_age: number | null;
580
- show_category_id: number | null;
581
- default_room_map_id: number | null;
582
- published_at?: Date;
583
- is_published: boolean;
584
- images: ShowImage[];
585
- terms_and_conditions: string;
586
- performances_quantity?: number;
431
+ declare enum RoomMapElementType {
432
+ SEAT_BLOCK = "seat_block",
433
+ TABLE = "table",
434
+ ZONE = "zone",
435
+ EXIT = "exit",
436
+ STAGE = "stage",
437
+ PRODUCTION_AREA = "production_area",
438
+ UNAVAILABLE_SPACE = "unavailable_space",
439
+ STAIR = "stair",
440
+ HALLWAY = "hallway"
587
441
  }
588
442
 
589
- interface ShowResponse {
443
+ interface RoomMapPosition {
444
+ x: number;
445
+ y: number;
446
+ }
447
+
448
+ interface RoomMapSize {
449
+ width: number;
450
+ height: number;
451
+ }
452
+
453
+ interface RoomMapBaseElement {
454
+ id: string;
455
+ type: RoomMapElementType;
456
+ position: RoomMapPosition;
457
+ size: RoomMapSize;
458
+ rotation: number;
459
+ name?: string;
460
+ isLocked: boolean;
461
+ isVisible: boolean;
462
+ zIndex: number;
463
+ }
464
+
465
+ interface RoomMapExitElement extends RoomMapBaseElement {
466
+ type: RoomMapElementType.EXIT;
467
+ exitName?: string;
468
+ exitType: 'emergency' | 'regular';
469
+ width: number;
470
+ }
471
+
472
+ interface RoomMapProductionAreaElement extends RoomMapBaseElement {
473
+ type: RoomMapElementType.PRODUCTION_AREA;
474
+ areaName?: string;
475
+ areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
476
+ }
477
+
478
+ interface RoomMapSeatElement extends RoomMapBaseElement {
479
+ type: RoomMapElementType.SEAT_BLOCK;
480
+ seatNumber?: string;
481
+ isAvailable: boolean;
482
+ priceCategory?: string;
483
+ }
484
+
485
+ declare enum RoomMapElementOrientation {
486
+ TOP = "top",
487
+ RIGHT = "right",
488
+ BOTTOM = "bottom",
489
+ LEFT = "left",
490
+ CENTER = "center"
491
+ }
492
+
493
+ interface RoomMapStageElement extends RoomMapBaseElement {
494
+ type: RoomMapElementType.STAGE;
495
+ stageName?: string;
496
+ orientation: RoomMapElementOrientation;
497
+ isMainStage: boolean;
498
+ }
499
+
500
+ interface RoomMapTableElement extends RoomMapBaseElement {
501
+ type: RoomMapElementType.TABLE;
502
+ tableNumber?: string;
503
+ capacity: number;
504
+ shape: 'round' | 'rectangular' | 'square';
505
+ }
506
+
507
+ interface RoomMapUnavailableElement extends RoomMapBaseElement {
508
+ type: RoomMapElementType.UNAVAILABLE_SPACE;
509
+ reason?: string;
510
+ }
511
+
512
+ interface RoomMapZoneElement extends RoomMapBaseElement {
513
+ type: RoomMapElementType.ZONE;
514
+ zoneName: string;
515
+ zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
516
+ color: string;
517
+ capacity?: number;
518
+ }
519
+
520
+ type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
521
+
522
+ type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
523
+
524
+ type ShowType = 'play' | 'musical' | 'concert' | 'dance' | 'opera' | 'comedy' | 'other';
525
+
526
+ type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
527
+
528
+ type FeedbackModalType = 'loading' | 'success' | 'info' | 'warning' | 'error';
529
+
530
+ interface FeedbackModalElement {
531
+ id: string;
532
+ type: FeedbackModalType;
533
+ title: string;
534
+ isOpen: WritableSignal<boolean>;
535
+ message?: string;
536
+ showHeader?: boolean;
537
+ showCloseButton?: boolean;
538
+ showTitle?: boolean;
539
+ closeModal?: void;
540
+ }
541
+
542
+ declare enum FileType {
543
+ IMAGE = "image",
544
+ PDF = "pdf",
545
+ EXCEL = "excel",
546
+ WORD = "word",
547
+ TEXT = "text",
548
+ DEFAULT = "default"
549
+ }
550
+
551
+ declare enum CouponApplicability {
552
+ GENERAL = "GENERAL",
553
+ CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
554
+ MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
555
+ SHOWS = "SHOWS",
556
+ PERFORMANCES = "PERFORMANCES"
557
+ }
558
+
559
+ declare enum CouponDiscountType {
560
+ PERCENTAGE = "PERCENTAGE",
561
+ FIXED = "FIXED"
562
+ }
563
+
564
+ declare enum CouponStatus {
565
+ ACTIVE = "ACTIVE",
566
+ INACTIVE = "INACTIVE",
567
+ EXPIRED = "EXPIRED",
568
+ CONSUMED = "CONSUMED"
569
+ }
570
+
571
+ declare enum CorporateBondStatus {
572
+ ACTIVE = "ACTIVE",
573
+ INACTIVE = "INACTIVE",
574
+ EXPIRED = "EXPIRED",
575
+ CONSUMED = "CONSUMED"
576
+ }
577
+
578
+ declare enum PerformanceStatus {
579
+ SCHEDULED = "scheduled",
580
+ OPEN = "open",
581
+ CLOSED = "closed",
582
+ CANCELLED = "cancelled",
583
+ COMPLETED = "completed",
584
+ POSTPONED = "postponed"
585
+ }
586
+
587
+ declare enum PerformanceTicketStatus {
588
+ AVAILABLE = "available",
589
+ RESERVED = "reserved",
590
+ SOLD = "sold",
591
+ BLOCKED = "blocked"
592
+ }
593
+
594
+ declare enum GiftBondStatus {
595
+ ACTIVE = "ACTIVE",
596
+ INACTIVE = "INACTIVE",
597
+ EXPIRED = "EXPIRED",
598
+ CONSUMED = "CONSUMED"
599
+ }
600
+
601
+ interface FetchProductCategoriesParams {
602
+ name?: string;
603
+ slug?: string;
604
+ page?: number;
605
+ limit?: number;
606
+ search?: string;
607
+ }
608
+
609
+ interface ProductCategory extends Auditable {
610
+ id: number;
611
+ name: string;
612
+ slug: string;
613
+ }
614
+
615
+ interface ProductCategoriesResponse {
590
616
  statusCode: number;
591
- data: Show;
617
+ data: {
618
+ categories: ProductCategory[];
619
+ total: number;
620
+ };
592
621
  message: string;
593
622
  }
594
623
 
595
- interface ShowsResponseInterface {
624
+ interface ProductCategoryResponse {
625
+ statusCode: number;
626
+ data: ProductCategory;
627
+ message: string;
628
+ }
629
+
630
+ interface FetchProductTagsParams {
631
+ name?: string;
632
+ slug?: string;
633
+ page?: number;
634
+ limit?: number;
635
+ search?: string;
636
+ }
637
+
638
+ interface ProductTag extends Auditable {
639
+ id: number;
640
+ name: string;
641
+ slug: string;
642
+ }
643
+
644
+ interface ProductTagResponse {
645
+ statusCode: number;
646
+ data: ProductTag;
647
+ message: string;
648
+ }
649
+
650
+ interface ProductTagsResponse {
596
651
  statusCode: number;
597
652
  data: {
598
- shows: Show[];
653
+ tags: ProductTag[];
599
654
  total: number;
600
655
  };
601
656
  message: string;
602
657
  }
603
658
 
604
- interface FetchShowsParams {
659
+ interface FetchProductTypesParams {
660
+ name?: string;
661
+ slug?: string;
605
662
  page?: number;
606
663
  limit?: number;
607
664
  search?: string;
608
- date?: string;
609
665
  }
610
666
 
611
- interface PriceZone {
667
+ interface ProductType extends Auditable {
612
668
  id: number;
613
669
  name: string;
614
- color: string;
615
- normal_price: number | null;
616
- is_active: boolean;
617
- elements: any[];
618
- room_map_id: number | null;
670
+ slug: string;
671
+ }
672
+
673
+ interface ProductTypeResponse {
674
+ statusCode: number;
675
+ data: ProductType;
676
+ message: string;
677
+ }
678
+
679
+ interface ProductTypesResponse {
680
+ statusCode: number;
681
+ data: {
682
+ types: ProductType[];
683
+ total: number;
684
+ };
685
+ message: string;
686
+ }
687
+
688
+ interface ProductImage {
689
+ id: number;
690
+ path: string;
691
+ full_url: string;
692
+ original_name: string;
693
+ extension: string;
694
+ size: number;
695
+ mime_type: string;
696
+ width: number;
697
+ height: number;
698
+ product_id: number;
699
+ product: Product;
619
700
  created_at: Date;
620
- updated_at: Date;
621
- created_by: number;
622
- updated_by: number;
623
701
  }
624
702
 
625
703
  interface Product extends Auditable {
@@ -634,10 +712,34 @@ interface Product extends Auditable {
634
712
  is_limited_edition: boolean;
635
713
  is_active: boolean;
636
714
  deleted_at: Date | null;
637
- categories?: any[];
638
- tags?: any[];
639
- types?: any[];
640
- images?: any[];
715
+ categories?: ProductCategory[];
716
+ tags?: ProductTag[];
717
+ types?: ProductType[];
718
+ images?: ProductImage[];
719
+ }
720
+
721
+ interface ShowImage {
722
+ id: number;
723
+ path: string;
724
+ full_url: string;
725
+ original_name: string;
726
+ extension: string;
727
+ size: number;
728
+ mime_type: string;
729
+ width: number;
730
+ height: number;
731
+ show_id: number;
732
+ created_at: Date;
733
+ }
734
+
735
+ interface PriceZone extends Auditable {
736
+ id: number;
737
+ name: string;
738
+ color: string;
739
+ normal_price: number | null;
740
+ is_active: boolean;
741
+ elements: any[];
742
+ room_map_id: number | null;
641
743
  }
642
744
 
643
745
  interface NumerationConfig {
@@ -675,7 +777,7 @@ interface RoomMapElementTemplate {
675
777
  price_zone?: PriceZone;
676
778
  }
677
779
 
678
- interface RoomMap {
780
+ interface RoomMap extends Auditable {
679
781
  id: number;
680
782
  name: string;
681
783
  canvas_settings: {
@@ -691,8 +793,6 @@ interface RoomMap {
691
793
  related_product_ids: number[];
692
794
  products?: Product[];
693
795
  venue_name?: string;
694
- created_at: Date;
695
- updated_at: Date;
696
796
  }
697
797
 
698
798
  interface RoomMapCanvasConfiguration {
@@ -734,7 +834,7 @@ interface ElementPropertiesTab {
734
834
  elements_access: string[];
735
835
  }
736
836
 
737
- interface Performance {
837
+ interface Performance extends Auditable {
738
838
  id: number;
739
839
  start_time: Date | string;
740
840
  end_time: Date | string;
@@ -744,26 +844,31 @@ interface Performance {
744
844
  show?: Show;
745
845
  room_map: RoomMap;
746
846
  room_map_id: number;
747
- created_at: Date;
748
- updated_at: Date;
749
847
  }
750
848
 
751
- interface PerformanceResponse {
752
- statusCode: number;
753
- data: Performance;
754
- message: string;
755
- }
756
-
757
- interface PerformancesResponseInterface {
758
- statusCode: number;
759
- data: {
760
- performances: Performance[];
761
- total: number;
762
- };
763
- message: string;
849
+ interface Show extends Auditable {
850
+ id: number;
851
+ title: string;
852
+ slug: string;
853
+ description: string;
854
+ duration_minutes: number | null;
855
+ type_of_costs: string | null;
856
+ service_fee: number | null;
857
+ show_type: ShowType | null;
858
+ pulep: string | null;
859
+ minimum_age: number | null;
860
+ show_category_id: number | null;
861
+ default_room_map_id: number | null;
862
+ published_at?: Date;
863
+ is_published: boolean;
864
+ images: ShowImage[];
865
+ terms_and_conditions: string;
866
+ performances_quantity?: number;
867
+ performances?: Performance[];
868
+ next_performance?: Performance;
764
869
  }
765
870
 
766
- interface OrderItem {
871
+ interface OrderItem extends Auditable {
767
872
  id: number;
768
873
  order: Order;
769
874
  item_type: OrderItemType;
@@ -776,26 +881,21 @@ interface OrderItem {
776
881
  ticket_id?: number;
777
882
  ticket_uuid?: string;
778
883
  item: Show | Product;
779
- created_at: Date;
780
- updated_at: Date;
781
- created_by: number;
782
- updated_by: number;
783
884
  }
784
885
 
785
886
  interface Coupon extends Auditable {
786
887
  id: number;
787
888
  code: string;
889
+ billing_code: string;
788
890
  description?: string;
789
891
  discount_type: CouponDiscountType;
790
- discount_type_string?: string;
791
892
  discount_value: number;
792
- discount_value_string?: string;
793
893
  start_date: Date | null;
794
894
  end_date: Date | null;
795
895
  max_uses: number | null;
796
- max_uses_per_user?: number | null;
896
+ max_uses_per_customer?: number | null;
797
897
  uses_count: number;
798
- is_active: boolean;
898
+ status: CouponStatus;
799
899
  applicability_type: CouponApplicability;
800
900
  applicable_customer_emails: string[] | null;
801
901
  applicable_membership_types: string[] | null;
@@ -803,9 +903,11 @@ interface Coupon extends Auditable {
803
903
  applicable_performance_ids?: number[];
804
904
  applicable_price_zone_ids?: number[];
805
905
  applies_to_service_fee?: boolean;
906
+ orders?: Order[];
907
+ customers?: Customer[];
806
908
  }
807
909
 
808
- interface CorporateBond {
910
+ interface CorporateBond extends Auditable {
809
911
  id: number;
810
912
  name: string;
811
913
  description?: string;
@@ -816,10 +918,6 @@ interface CorporateBond {
816
918
  status: CorporateBondStatus;
817
919
  value: number;
818
920
  codes: CorporateBondCode[];
819
- created_at: Date;
820
- updated_at: Date;
821
- created_by: number;
822
- updated_by: number;
823
921
  }
824
922
 
825
923
  interface CorporateBondCode {
@@ -832,94 +930,263 @@ interface CorporateBondCode {
832
930
  created_at: Date;
833
931
  }
834
932
 
835
- interface CorporateBondResponse {
933
+ interface CorporateBondResponse {
934
+ statusCode: number;
935
+ data: CorporateBond;
936
+ message: string;
937
+ }
938
+
939
+ interface ValidateCorporateBondResponse {
940
+ data: {
941
+ valid: boolean;
942
+ message: string;
943
+ code: string;
944
+ bond?: CorporateBond;
945
+ };
946
+ message: string;
947
+ statusCode: number;
948
+ }
949
+
950
+ interface Order extends Auditable {
951
+ id: number;
952
+ uuid: string;
953
+ customer: Customer;
954
+ customer_name?: string;
955
+ customer_email?: string;
956
+ order_items: OrderItem[];
957
+ order_items_quantity?: number;
958
+ discount_amount: number;
959
+ total: number;
960
+ total_discounted: number;
961
+ sub_total: number;
962
+ sub_total_discounted: number;
963
+ service_fee: number;
964
+ service_fee_discounted: number;
965
+ coupon: Coupon;
966
+ coupon_snapshot: Record<string, any>;
967
+ corporate_bond_code: CorporateBondCode;
968
+ corporate_bond_code_snapshot: Record<string, any>;
969
+ status: OrderStatus;
970
+ show_snapshot: Record<string, any>;
971
+ performance_snapshot: Record<string, any>;
972
+ payment_method: string;
973
+ terms_accepted: boolean;
974
+ data_processing_accepted: boolean;
975
+ billing_info: Partial<Customer>;
976
+ comments: string;
977
+ address_notes: string;
978
+ }
979
+
980
+ interface OrderResponse {
981
+ statusCode: number;
982
+ data: Order;
983
+ message: string;
984
+ }
985
+
986
+ interface OrdersResponse {
987
+ statusCode: number;
988
+ data: {
989
+ orders: Order[];
990
+ total: number;
991
+ };
992
+ message: string;
993
+ }
994
+
995
+ interface PerformanceTicket extends Auditable {
996
+ id: number;
997
+ uuid: string;
998
+ is_accessible: boolean;
999
+ performance_id: number;
1000
+ room_map_element_id: number;
1001
+ element_type: RoomMapElementType;
1002
+ seat_label: string | null;
1003
+ seat_numeration: string | null;
1004
+ normal_price: number;
1005
+ discount_price: number | null;
1006
+ presale_price: number | null;
1007
+ status: PerformanceTicketStatus;
1008
+ reserved_until: Date | null;
1009
+ order_id: number | null;
1010
+ customer_id: number | null;
1011
+ checked_in: boolean;
1012
+ checked_in_at: Date | null;
1013
+ order_items: OrderItem[];
1014
+ element_qty?: number;
1015
+ }
1016
+
1017
+ interface TicketMapSeatPosition {
1018
+ rowIndex: number;
1019
+ colIndex: number;
1020
+ seatLabel: string;
1021
+ }
1022
+
1023
+ interface TicketMapTableChairPosition {
1024
+ index: number;
1025
+ angle: number;
1026
+ x: number;
1027
+ y: number;
1028
+ }
1029
+
1030
+ interface ElementRenderData {
1031
+ elementId: number;
1032
+ hallFloorId: number | null;
1033
+ type: RoomMapElementType;
1034
+ shapeConfig: Record<string, any>;
1035
+ tickets: PerformanceTicket[];
1036
+ ticketByNumeration: Map<string, PerformanceTicket>;
1037
+ elementName: string;
1038
+ seatPositions?: TicketMapSeatPosition[][];
1039
+ chairPositions?: TicketMapTableChairPosition[];
1040
+ zoneCapacity?: number;
1041
+ }
1042
+
1043
+ interface TicketMapTooltipData {
1044
+ x: number;
1045
+ y: number;
1046
+ elementName: string;
1047
+ seatLabel: string | null;
1048
+ price: number;
1049
+ status: PerformanceTicketStatus;
1050
+ statusLabel: string;
1051
+ statusColor: string;
1052
+ isSelected: boolean;
1053
+ ticketId: number;
1054
+ }
1055
+
1056
+ interface TicketMapZoneQuantityState {
1057
+ elementId: number;
1058
+ selectedCount: number;
1059
+ maxCapacity: number;
1060
+ }
1061
+
1062
+ interface ReservePerformanceDto {
1063
+ ticket_ids: number[];
1064
+ products?: {
1065
+ id: number;
1066
+ quantity: number;
1067
+ }[];
1068
+ coupon_code?: string;
1069
+ gift_bond_code?: string;
1070
+ corporate_bond_code?: string;
1071
+ billing: {
1072
+ first_name: string;
1073
+ last_name: string;
1074
+ email: string;
1075
+ mobile: string;
1076
+ document_type: string;
1077
+ document_number: string;
1078
+ address: string;
1079
+ city_id: number;
1080
+ postal_code?: string;
1081
+ address_notes?: string;
1082
+ payment_method: string;
1083
+ terms_accepted: boolean;
1084
+ data_processing_accepted: boolean;
1085
+ comments?: string;
1086
+ };
1087
+ }
1088
+
1089
+ interface TicketMapZoomConfig {
1090
+ minZoom: number;
1091
+ maxZoom: number;
1092
+ zoomStep: number;
1093
+ scaleBy: number;
1094
+ }
1095
+
1096
+ interface HallFloorOption {
1097
+ id: number | null;
1098
+ name: string;
1099
+ }
1100
+
1101
+ declare enum SelectedDiscountCardType {
1102
+ COUPON = "COUPON",
1103
+ CORPORATE_BOND = "CORPORATE_BOND",
1104
+ GIFT_BOND = "GIFT_BOND"
1105
+ }
1106
+
1107
+ interface SelectedDiscountCard {
1108
+ name: string;
1109
+ type: SelectedDiscountCardType;
1110
+ value: number;
1111
+ }
1112
+
1113
+ interface FetchShowsParams {
1114
+ page?: number;
1115
+ limit?: number;
1116
+ search?: string;
1117
+ date?: string;
1118
+ }
1119
+
1120
+ interface ShowResponse {
1121
+ statusCode: number;
1122
+ data: Show;
1123
+ message: string;
1124
+ }
1125
+
1126
+ interface ShowsResponseInterface {
836
1127
  statusCode: number;
837
- data: CorporateBond;
1128
+ data: {
1129
+ shows: Show[];
1130
+ total: number;
1131
+ };
838
1132
  message: string;
839
1133
  }
840
1134
 
841
- interface ValidateCorporateBondResponse {
1135
+ interface ShowCategory extends Auditable {
1136
+ id: number;
1137
+ name: string;
1138
+ slug: string;
1139
+ }
1140
+
1141
+ interface ShowCategoriesResponse {
1142
+ statusCode: number;
842
1143
  data: {
843
- valid: boolean;
844
- message: string;
845
- code: string;
846
- bond?: CorporateBond;
1144
+ categories: ShowCategory[];
1145
+ total: number;
847
1146
  };
848
1147
  message: string;
1148
+ }
1149
+
1150
+ interface ShowCategoryResponse {
849
1151
  statusCode: number;
1152
+ data: ShowCategory;
1153
+ message: string;
850
1154
  }
851
1155
 
852
- interface Order {
1156
+ interface ShowGender extends Auditable {
853
1157
  id: number;
854
- uuid: string;
855
- customer: Customer;
856
- customer_name?: string;
857
- customer_email?: string;
858
- order_items: OrderItem[];
859
- order_items_quantity?: number;
860
- discount_amount: number;
861
- total: number;
862
- total_discounted: number;
863
- sub_total: number;
864
- sub_total_discounted: number;
865
- service_fee: number;
866
- service_fee_discounted: number;
867
- coupon: Coupon;
868
- coupon_snapshot: Record<string, any>;
869
- corporate_bond_code: CorporateBondCode;
870
- corporate_bond_code_snapshot: Record<string, any>;
871
- status: OrderStatus;
872
- show_snapshot: Record<string, any>;
873
- performance_snapshot: Record<string, any>;
874
- created_at: Date;
875
- updated_at: Date;
876
- payment_method: string;
877
- terms_accepted: boolean;
878
- data_processing_accepted: boolean;
879
- billing_info: Partial<Customer>;
880
- comments: string;
881
- address_notes: string;
882
- created_by: number;
883
- updated_by: number;
1158
+ name: string;
1159
+ slug: string;
884
1160
  }
885
1161
 
886
- interface OrderResponse {
1162
+ interface ShowGenderResponse {
887
1163
  statusCode: number;
888
- data: Order;
1164
+ data: ShowGender;
889
1165
  message: string;
890
1166
  }
891
1167
 
892
- interface OrdersResponse {
1168
+ interface ShowGendersResponse {
893
1169
  statusCode: number;
894
1170
  data: {
895
- orders: Order[];
1171
+ genders: ShowGender[];
896
1172
  total: number;
897
1173
  };
898
1174
  message: string;
899
1175
  }
900
1176
 
901
- interface PerformanceTicket {
902
- id: number;
903
- uuid: string;
904
- is_accessible: boolean;
905
- performance_id: number;
906
- room_map_element_id: number;
907
- element_type: RoomMapElementType;
908
- seat_label: string | null;
909
- seat_numeration: string | null;
910
- normal_price: number;
911
- discount_price: number | null;
912
- presale_price: number | null;
913
- status: PerformanceTicketStatus;
914
- reserved_until: Date | null;
915
- order_id: number | null;
916
- customer_id: number | null;
917
- checked_in: boolean;
918
- checked_in_at: Date | null;
919
- order_items: OrderItem[];
920
- element_qty?: number;
921
- created_at: Date;
922
- updated_at: Date;
1177
+ interface PerformanceResponse {
1178
+ statusCode: number;
1179
+ data: Performance;
1180
+ message: string;
1181
+ }
1182
+
1183
+ interface PerformancesResponseInterface {
1184
+ statusCode: number;
1185
+ data: {
1186
+ performances: Performance[];
1187
+ total: number;
1188
+ };
1189
+ message: string;
923
1190
  }
924
1191
 
925
1192
  interface PerformanceBookingDataResponse {
@@ -1003,6 +1270,13 @@ interface ProductResponse {
1003
1270
  message: string;
1004
1271
  }
1005
1272
 
1273
+ interface ProductTaxonomy extends Auditable {
1274
+ id: number;
1275
+ name: string;
1276
+ slug: string;
1277
+ selected?: boolean;
1278
+ }
1279
+
1006
1280
  interface ProductsResponseInterface {
1007
1281
  statusCode: number;
1008
1282
  data: {
@@ -1043,6 +1317,43 @@ interface FindAllPriceZoneParams {
1043
1317
  limit?: number;
1044
1318
  }
1045
1319
 
1320
+ interface GiftBond extends Auditable {
1321
+ id: number;
1322
+ uuid: string;
1323
+ name: string;
1324
+ description?: string;
1325
+ status: GiftBondStatus;
1326
+ value: number;
1327
+ customer: Customer;
1328
+ customer_id: number;
1329
+ }
1330
+
1331
+ interface GiftBondResponse {
1332
+ statusCode: number;
1333
+ data: GiftBond;
1334
+ message: string;
1335
+ }
1336
+
1337
+ interface GiftBondsResponse {
1338
+ statusCode: number;
1339
+ data: {
1340
+ gift_bonds: GiftBond[];
1341
+ total: number;
1342
+ };
1343
+ message: string;
1344
+ }
1345
+
1346
+ interface ValidateGiftBondResponse {
1347
+ data: {
1348
+ valid: boolean;
1349
+ message: string;
1350
+ code: string;
1351
+ bond?: GiftBond;
1352
+ };
1353
+ statusCode: number;
1354
+ message: string;
1355
+ }
1356
+
1046
1357
  interface CouponResponse {
1047
1358
  statusCode: number;
1048
1359
  data: Coupon;
@@ -1056,6 +1367,52 @@ interface ValidateCouponResponse {
1056
1367
  };
1057
1368
  }
1058
1369
 
1370
+ declare const DOCUMENT_TYPES_OPTIONS: SelectOption[];
1371
+
1372
+ declare const PAYMENT_METHODS_OPTIONS: SelectOption[];
1373
+
1374
+ declare const TICKET_ELEMENT_TYPES: RoomMapElementType[];
1375
+ declare const DEFAULT_STAGE_CONFIG: {
1376
+ [x: string]: any;
1377
+ };
1378
+ declare const TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, string>;
1379
+ declare const TICKET_STATUS_FILLS: Record<PerformanceTicketStatus, string>;
1380
+ declare const TICKET_STATUS_LABELS: Record<PerformanceTicketStatus, string>;
1381
+ declare const TICKET_MAP_GRID_SIZE = 30;
1382
+ declare const TICKET_MAP_TITLE_HEIGHT = 30;
1383
+
1384
+ interface KonvaShapeConfig {
1385
+ config: ShapeConfig;
1386
+ layer: 'background' | 'elements' | 'foreground' | 'overlay';
1387
+ }
1388
+
1389
+ declare function drawRoundedRect(con: Context, shape: Shape, x: number, y: number, width: number, height: number, cornerRadius: number): void;
1390
+
1391
+ declare const generateExitScene: (con: Context, shape: Shape) => void;
1392
+
1393
+ declare const generateHallwayScene: (con: Context, shape: Shape) => void;
1394
+
1395
+ declare const generateProductionAreaScene: (con: Context, shape: Shape) => void;
1396
+
1397
+ declare const generateSeatBlockScene: (con: Context, shape: Shape, numerationConfig?: {
1398
+ start_row_letter: string;
1399
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1400
+ start_column_number: number;
1401
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1402
+ }) => void;
1403
+
1404
+ declare const generateStageScene: (con: Context, shape: Shape) => void;
1405
+
1406
+ declare const generateStairScene: (con: Context, shape: Shape) => void;
1407
+
1408
+ declare const generateTableScene: (con: Context, shape: Shape) => void;
1409
+
1410
+ declare const generateUnavailableSpaceScene: (con: Context, shape: Shape) => void;
1411
+
1412
+ declare const generateZoneScene: (con: Context, shape: Shape) => void;
1413
+
1414
+ declare const KONVA_SHAPE_MAPPINGS: Record<RoomMapElementType, KonvaShapeConfig>;
1415
+
1059
1416
  declare const getCustomerFullname: (customer: Customer) => string;
1060
1417
 
1061
1418
  declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
@@ -1063,10 +1420,42 @@ declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
1063
1420
  declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
1064
1421
 
1065
1422
  declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
1066
- value: string;
1423
+ value: number;
1067
1424
  label: string;
1068
1425
  }[];
1069
1426
 
1427
+ declare function tintColor(hex: string, amount?: number): string;
1428
+
1429
+ declare const drawChairIcon: (con: Context, cx: number, cy: number, size: number) => void;
1430
+
1431
+ declare const drawHappyFace: (con: Context, cx: number, cy: number, size: number) => void;
1432
+
1433
+ declare const drawWheelchairIcon: (con: Context, shape: Shape, cx: number, cy: number, size: number, fillColor?: string, strokeColor?: string) => void;
1434
+
1435
+ declare const numberToLetter: (num: number) => string;
1436
+
1437
+ declare const getItemTypeIcon: (ticket: PerformanceTicket) => string;
1438
+
1439
+ declare const generateSeatBlockTicketScene: (con: Context, shape: Shape, numerationConfig?: {
1440
+ start_row_letter: string;
1441
+ row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
1442
+ start_column_number: number;
1443
+ column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
1444
+ }, ticketStatusMap?: Map<string, PerformanceTicketStatus>) => void;
1445
+
1446
+ declare const generateTableTicketScene: (con: Context, shape: Shape, chairTicketStatuses?: PerformanceTicketStatus[], tableSeats?: RoomMapSeatState[][]) => void;
1447
+
1448
+ declare function processElementsToRenderData(elements: RoomMapElementTemplate[], tickets: PerformanceTicket[], priceZones?: {
1449
+ id: number;
1450
+ color: string;
1451
+ }[]): ElementRenderData[];
1452
+ declare function findTicketAtPosition(renderData: ElementRenderData, relX: number, relY: number): PerformanceTicket | null;
1453
+ declare function findElementAtPosition(renderDataList: ElementRenderData[], stageX: number, stageY: number): {
1454
+ element: ElementRenderData;
1455
+ relX: number;
1456
+ relY: number;
1457
+ } | null;
1458
+
1070
1459
  declare function MinTodayValidator(controlName: string): ValidatorFn;
1071
1460
  declare function EndDateGreaterThanStartValidator(startDateControlName: string, endDateControlName: string): ValidatorFn;
1072
1461
 
@@ -1097,16 +1486,6 @@ declare class ToastService {
1097
1486
  static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
1098
1487
  }
1099
1488
 
1100
- declare class LoadingModalService {
1101
- title: WritableSignal<string>;
1102
- isOpen: WritableSignal<boolean>;
1103
- get modalIsOpen(): WritableSignal<boolean>;
1104
- open(title?: string): void;
1105
- close(): void;
1106
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingModalService, never>;
1107
- static ɵprov: i0.ɵɵInjectableDeclaration<LoadingModalService>;
1108
- }
1109
-
1110
1489
  declare class DeleteConfirmationService {
1111
1490
  title: WritableSignal<string>;
1112
1491
  resourceName: WritableSignal<string>;
@@ -1235,25 +1614,6 @@ declare class PerformancesListEventsService {
1235
1614
  static ɵprov: i0.ɵɵInjectableDeclaration<PerformancesListEventsService>;
1236
1615
  }
1237
1616
 
1238
- declare class ProductService {
1239
- private apiService;
1240
- private productsSubject;
1241
- products$: Observable<Product[]>;
1242
- constructor(apiService: ApiService);
1243
- fetchProducts(page: number, search: string): Observable<ProductsResponseInterface>;
1244
- loadProducts({ page, search }?: {
1245
- page?: number;
1246
- search?: string;
1247
- }): void;
1248
- getCurrentProducts(): Product[];
1249
- fetchOneById(id: number): Observable<ProductResponse>;
1250
- createOne(data: Product): Observable<any>;
1251
- updateOne(id: number, data: any): Observable<ProductResponse>;
1252
- deleteOne(id: number): Observable<any>;
1253
- static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
1254
- static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
1255
- }
1256
-
1257
1617
  declare class ShowService {
1258
1618
  private apiService;
1259
1619
  private showsSubject;
@@ -1334,6 +1694,296 @@ declare class PriceZoneFormModalService {
1334
1694
  static ɵprov: i0.ɵɵInjectableDeclaration<PriceZoneFormModalService>;
1335
1695
  }
1336
1696
 
1697
+ declare class ProductCategoryService {
1698
+ private apiService;
1699
+ constructor(apiService: ApiService);
1700
+ fetchCategories({ page, search, limit, }: FetchProductCategoriesParams): Observable<ProductCategoriesResponse>;
1701
+ fetchOneById(id: number): Observable<ProductCategoryResponse>;
1702
+ createOne(data: ProductCategory): Observable<any>;
1703
+ updateOne(id: number, data: ProductCategory): Observable<ProductCategoryResponse>;
1704
+ deleteOne(id: number): Observable<any>;
1705
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductCategoryService, never>;
1706
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductCategoryService>;
1707
+ }
1708
+
1709
+ declare class ProductTagService {
1710
+ private apiService;
1711
+ constructor(apiService: ApiService);
1712
+ fetchTags({ page, search, limit }: FetchProductTagsParams): Observable<ProductTagsResponse>;
1713
+ fetchOneById(id: number): Observable<ProductTagResponse>;
1714
+ createOne(data: ProductTag): Observable<any>;
1715
+ updateOne(id: number, data: ProductTag): Observable<ProductTagResponse>;
1716
+ deleteOne(id: number): Observable<any>;
1717
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTagService, never>;
1718
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTagService>;
1719
+ }
1720
+
1721
+ declare class ProductTypeService {
1722
+ private apiService;
1723
+ constructor(apiService: ApiService);
1724
+ fetchTypes({ page, search, limit }: FetchProductTypesParams): Observable<ProductTypesResponse>;
1725
+ fetchOneById(id: number): Observable<ProductTypeResponse>;
1726
+ createOne(data: ProductType): Observable<any>;
1727
+ updateOne(id: number, data: ProductType): Observable<ProductTypeResponse>;
1728
+ deleteOne(id: number): Observable<any>;
1729
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductTypeService, never>;
1730
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductTypeService>;
1731
+ }
1732
+
1733
+ interface FetchProductsParams {
1734
+ page?: number;
1735
+ limit?: number;
1736
+ search?: string;
1737
+ }
1738
+
1739
+ declare class ProductService {
1740
+ private apiService;
1741
+ private productsSubject;
1742
+ products$: Observable<Product[]>;
1743
+ constructor(apiService: ApiService);
1744
+ fetchProducts({ page, search, limit, }: FetchProductsParams): Observable<ProductsResponseInterface>;
1745
+ loadProducts(params: FetchProductsParams): void;
1746
+ getCurrentProducts(): Product[];
1747
+ fetchOneById(id: number): Observable<ProductResponse>;
1748
+ createOne(data: Product): Observable<any>;
1749
+ updateOne(id: number, data: any): Observable<ProductResponse>;
1750
+ deleteOne(id: number): Observable<any>;
1751
+ fetchImages(id: number): Observable<{
1752
+ data: ProductImage[];
1753
+ }>;
1754
+ uploadImages(id: number, files?: FormData): Observable<{
1755
+ data: ProductImage[];
1756
+ }>;
1757
+ deleteOneImage(productId: number, imageId: number): Observable<any>;
1758
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProductService, never>;
1759
+ static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
1760
+ }
1761
+
1762
+ declare class BaseModalService {
1763
+ readonly isOpen: WritableSignal<boolean>;
1764
+ get modalIsOpen(): WritableSignal<boolean>;
1765
+ open(): void;
1766
+ close(): void;
1767
+ }
1768
+
1769
+ declare class FeedbackModalService {
1770
+ private _modals;
1771
+ readonly modals: i0.Signal<FeedbackModalElement[]>;
1772
+ addModal(modal: FeedbackModalElement): void;
1773
+ removeModal(id: string): void;
1774
+ removeAllModals(): void;
1775
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalService, never>;
1776
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackModalService>;
1777
+ }
1778
+
1779
+ declare class PerformanceBookingDataService {
1780
+ private _show;
1781
+ private _performance;
1782
+ private _roomMap;
1783
+ private _hallFloors;
1784
+ private _selectedHallFloor;
1785
+ private _selectedTicketIds;
1786
+ private _allRenderData;
1787
+ private _stageConfig;
1788
+ readonly selectedCount: i0.Signal<number>;
1789
+ readonly selectedTicketIds: i0.Signal<Set<number>>;
1790
+ readonly show: i0.Signal<Show | null>;
1791
+ readonly hallFloors: i0.Signal<HallFloor[]>;
1792
+ readonly selectedHallFloor: i0.Signal<HallFloor | null>;
1793
+ readonly performance: i0.Signal<Performance | null>;
1794
+ readonly stageConfig: i0.Signal<{
1795
+ [x: string]: any;
1796
+ }>;
1797
+ readonly roomMap: i0.Signal<RoomMap | null>;
1798
+ readonly renderData: i0.Signal<ElementRenderData[]>;
1799
+ setPerformanceBookingData({ data }: PerformanceBookingDataResponse): void;
1800
+ setSelectedHallFloor(id: number): void;
1801
+ updateStageConfig(data: {
1802
+ [x: string]: any;
1803
+ }): void;
1804
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceBookingDataService, never>;
1805
+ static ɵprov: i0.ɵɵInjectableDeclaration<PerformanceBookingDataService>;
1806
+ }
1807
+
1808
+ declare class TicketSelectionDetailsService {
1809
+ private _customerEmail;
1810
+ private _customerId;
1811
+ private _paymentMethod;
1812
+ private _billingInformation;
1813
+ readonly customerEmail: i0.Signal<string | null>;
1814
+ readonly customerId: i0.Signal<number | null>;
1815
+ readonly paymentMethod: i0.Signal<string | null>;
1816
+ readonly billingInformation: i0.Signal<Customer | null>;
1817
+ setCustomerEmail(email: string | null): void;
1818
+ setCustomerId(id: number | null): void;
1819
+ setPaymentMethod(method: string | null): void;
1820
+ setBillingInformation(values: Customer): void;
1821
+ clearSelection(): void;
1822
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDetailsService, never>;
1823
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDetailsService>;
1824
+ }
1825
+
1826
+ declare class TicketSelectionDiscountService {
1827
+ private _coupon;
1828
+ private _corporateBond;
1829
+ private _corporateBondCode;
1830
+ private _giftBond;
1831
+ private _giftBondCode;
1832
+ readonly coupon: Signal<Coupon | null>;
1833
+ readonly corporateBond: Signal<CorporateBond | null>;
1834
+ readonly corporateBondCode: Signal<string | null>;
1835
+ readonly giftBond: Signal<GiftBond | null>;
1836
+ readonly giftBondCode: Signal<string | null>;
1837
+ readonly selectedDiscount: Signal<SelectedDiscountCard | null>;
1838
+ readonly selectedDiscountType: Signal<SelectedDiscountCardType | undefined>;
1839
+ readonly selectedDiscountValue: Signal<number | undefined>;
1840
+ setCoupon(coupon: Coupon | null): void;
1841
+ setCorporateBond(corporateBond: CorporateBond | null): void;
1842
+ setCorporateBondCode(code: string | null): void;
1843
+ setGiftBond(giftBond: GiftBond | null): void;
1844
+ setGiftBondCode(code: string | null): void;
1845
+ clearSelection(): void;
1846
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDiscountService, never>;
1847
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDiscountService>;
1848
+ }
1849
+
1850
+ declare class TicketSelectionTotalsService {
1851
+ private bookingDataService;
1852
+ private selectionService;
1853
+ private selectionDiscountService;
1854
+ readonly selectedProductEntries: i0.Signal<{
1855
+ id: number;
1856
+ quantity: number;
1857
+ }[]>;
1858
+ readonly selectedProductCount: i0.Signal<number>;
1859
+ readonly productSubtotal: i0.Signal<number>;
1860
+ readonly serviceFee: i0.Signal<number>;
1861
+ subtotalValue(): number;
1862
+ totalValue(): number;
1863
+ totalDiscounted(): number | null;
1864
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionTotalsService, never>;
1865
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionTotalsService>;
1866
+ }
1867
+
1868
+ declare class TicketSelectionService {
1869
+ private bookingDataService;
1870
+ private selectionDetailsService;
1871
+ private selectionDiscountService;
1872
+ private _zoneQuantities;
1873
+ private _allTickets;
1874
+ private _selectedTickets;
1875
+ private _selectedBlockedTickets;
1876
+ private _products;
1877
+ private _productQuantities;
1878
+ readonly selectedTickets: i0.Signal<PerformanceTicket[]>;
1879
+ readonly selectedBlockedTickets: i0.Signal<PerformanceTicket[]>;
1880
+ readonly selectedCount: i0.Signal<number>;
1881
+ readonly blockedSelectedCount: i0.Signal<number>;
1882
+ readonly selectedTicketIds: i0.Signal<Set<PerformanceTicket>>;
1883
+ readonly selectedBlockedTicketIds: i0.Signal<number[]>;
1884
+ readonly selectedTicketIdList: i0.Signal<number[]>;
1885
+ readonly products: i0.Signal<Product[]>;
1886
+ readonly productQuantities: i0.Signal<Map<number, number>>;
1887
+ readonly selectedProductEntries: i0.Signal<{
1888
+ id: number;
1889
+ quantity: number;
1890
+ }[]>;
1891
+ readonly selectedProductCount: i0.Signal<number>;
1892
+ readonly serviceFee: i0.Signal<number>;
1893
+ setTickets(tickets: PerformanceTicket[]): void;
1894
+ setProducts(products: Product[]): void;
1895
+ updateProductQuantity(productId: number, delta: number): void;
1896
+ getProductQuantity(productId: number): number;
1897
+ private getListByStatus;
1898
+ toggle(ticket: PerformanceTicket): void;
1899
+ select(ticket: PerformanceTicket): void;
1900
+ deselect(ticket: PerformanceTicket): void;
1901
+ clearBlockedSelection(): void;
1902
+ clearSelection(): void;
1903
+ isSelected(ticket: PerformanceTicket): boolean;
1904
+ initZoneQuantity(elementId: number, maxCapacity: number): void;
1905
+ adjustZoneQuantity(elementId: number, delta: number): void;
1906
+ getZoneTickets(elementId: number): PerformanceTicket[];
1907
+ buildTooltipData(ticket: PerformanceTicket, elementName: string, seatLabel: string | null, x: number, y: number): TicketMapTooltipData;
1908
+ buildReservePerformanceDto(paymentMethod?: string, termsAccepted?: boolean, dataProcessingAccepted?: boolean): ReservePerformanceDto;
1909
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionService, never>;
1910
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionService>;
1911
+ }
1912
+
1913
+ declare class TicketMapZoomService {
1914
+ readonly currentZoom: i0.WritableSignal<number>;
1915
+ private stage?;
1916
+ private bookingDataService;
1917
+ private readonly defaultConfig;
1918
+ constructor();
1919
+ /**
1920
+ * Set the Konva stage instance
1921
+ */
1922
+ setStage(stage: Stage): void;
1923
+ /**
1924
+ * Zoom in by one step
1925
+ */
1926
+ zoomIn(): void;
1927
+ /**
1928
+ * Zoom out by one step
1929
+ */
1930
+ zoomOut(): void;
1931
+ /**
1932
+ * Reset zoom to 100%
1933
+ */
1934
+ resetZoom(): void;
1935
+ /**
1936
+ * Get current zoom as percentage string
1937
+ */
1938
+ getZoomPercentage(): string;
1939
+ /**
1940
+ * Get current zoom value
1941
+ */
1942
+ getCurrentZoom(): number;
1943
+ /**
1944
+ * Apply zoom with center point
1945
+ */
1946
+ private applyZoom;
1947
+ /**
1948
+ * Apply zoom scale with specific center point
1949
+ */
1950
+ private applyZoomScale;
1951
+ /**
1952
+ * Handle mouse wheel zoom toward the cursor position
1953
+ */
1954
+ handleWheelZoom(deltaY: number): void;
1955
+ /**
1956
+ * Fit the content bounds to fill the stage container
1957
+ */
1958
+ fitToContainer(padding?: number): void;
1959
+ /**
1960
+ * Get current stage position
1961
+ */
1962
+ getStagePosition(): {
1963
+ x: number;
1964
+ y: number;
1965
+ };
1966
+ /**
1967
+ * Set stage position (useful for programmatic panning)
1968
+ */
1969
+ setStagePosition(position: {
1970
+ x: number;
1971
+ y: number;
1972
+ }): void;
1973
+ /**
1974
+ * Fit the stage content bounds to the container, centering and scaling
1975
+ * to show the full content with optional padding.
1976
+ */
1977
+ fitToBounds(contentBounds: {
1978
+ x: number;
1979
+ y: number;
1980
+ width: number;
1981
+ height: number;
1982
+ }, containerWidth: number, containerHeight: number, padding?: number): void;
1983
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomService, never>;
1984
+ static ɵprov: i0.ɵɵInjectableDeclaration<TicketMapZoomService>;
1985
+ }
1986
+
1337
1987
  declare const authInterceptor: HttpInterceptorFn;
1338
1988
 
1339
1989
  declare class AppButtonComponent {
@@ -1341,7 +1991,7 @@ declare class AppButtonComponent {
1341
1991
  disabled: boolean;
1342
1992
  loading: boolean;
1343
1993
  type: 'button' | 'submit';
1344
- variant: 'primary' | 'secondary' | 'terciary' | 'success' | 'transparent';
1994
+ variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent';
1345
1995
  text: string;
1346
1996
  size: 'xs' | 'sm' | 'md' | 'lg';
1347
1997
  loadingText: string;
@@ -1353,7 +2003,6 @@ declare class AppButtonComponent {
1353
2003
  }
1354
2004
 
1355
2005
  declare class AppLinkButtonComponent {
1356
- protected readonly BASE_BUTTON_CLASSES: string;
1357
2006
  disabled: boolean;
1358
2007
  loading: boolean;
1359
2008
  target: '_blank' | '_self' | '_parent' | '_top';
@@ -1363,7 +2012,7 @@ declare class AppLinkButtonComponent {
1363
2012
  route: string;
1364
2013
  queryParams: Record<string, any>;
1365
2014
  size: 'xs' | 'sm' | 'md' | 'lg';
1366
- variant: 'primary' | 'secondary' | 'terciary' | 'success' | 'transparent';
2015
+ variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent';
1367
2016
  get buttonClasses(): string;
1368
2017
  static ɵfac: i0.ɵɵFactoryDeclaration<AppLinkButtonComponent, never>;
1369
2018
  static ɵcmp: i0.ɵɵComponentDeclaration<AppLinkButtonComponent, "app-link-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "target": { "alias": "target"; "required": false; }; "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "route": { "alias": "route"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; }, {}, never, never, true, never>;
@@ -1374,23 +2023,34 @@ declare class AppAlertComponent {
1374
2023
  text: string;
1375
2024
  closeable: boolean;
1376
2025
  size: 'xs' | 'sm' | 'md' | 'lg';
1377
- get alertColorClasses(): string;
1378
- get alertSizeClasses(): string;
1379
- get alertClasses(): string;
1380
2026
  get alertIcon(): string;
1381
2027
  static ɵfac: i0.ɵɵFactoryDeclaration<AppAlertComponent, never>;
1382
2028
  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>;
1383
2029
  }
1384
2030
 
1385
- declare class LoadingmModalComponent {
1386
- private loadingModalService;
1387
- constructor(loadingModalService: LoadingModalService);
1388
- get isOpen(): i0.WritableSignal<boolean>;
1389
- get title(): i0.WritableSignal<string>;
2031
+ declare class FeedbackModalComponent implements OnChanges, OnDestroy {
2032
+ isOpen: WritableSignal<boolean>;
2033
+ type: FeedbackModalType;
2034
+ title: string;
2035
+ message: string;
2036
+ showHeader: boolean;
2037
+ showCloseButton: boolean;
2038
+ showTitle: boolean;
2039
+ autoClose: boolean;
2040
+ autoCloseDuration: number;
2041
+ buttonText: string;
2042
+ closed: EventEmitter<void>;
2043
+ private autoCloseTimeout;
2044
+ get defaultButtonText(): string;
2045
+ get resolvedButtonText(): string;
2046
+ get buttonVariant(): 'primary' | 'secondary';
2047
+ ngOnChanges(changes: SimpleChanges): void;
2048
+ ngOnDestroy(): void;
1390
2049
  closeModal(): void;
1391
- onCitySaved(): void;
1392
- static ɵfac: i0.ɵɵFactoryDeclaration<LoadingmModalComponent, never>;
1393
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingmModalComponent, "loading-modal", never, {}, {}, never, never, true, never>;
2050
+ private scheduleAutoClose;
2051
+ private clearAutoClose;
2052
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
2053
+ 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>;
1394
2054
  }
1395
2055
 
1396
2056
  declare class DeleteConfirmationComponent {
@@ -1413,14 +2073,16 @@ declare class DeleteConfirmationComponent {
1413
2073
  declare class AppModalComponent {
1414
2074
  title: string;
1415
2075
  disableClose: boolean;
2076
+ showHeader: boolean;
2077
+ showCloseButton: boolean;
2078
+ showTitle: boolean;
1416
2079
  isOpen: WritableSignal<boolean>;
1417
- size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
2080
+ size: ModalSize;
1418
2081
  closeModal: EventEmitter<void>;
1419
- private readonly SIZE_CLASSES;
1420
- get sizeClass(): string;
1421
2082
  onCloseModal(): void;
2083
+ onKeydownEscape(): void;
1422
2084
  static ɵfac: i0.ɵɵFactoryDeclaration<AppModalComponent, never>;
1423
- 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>;
2085
+ 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>;
1424
2086
  }
1425
2087
 
1426
2088
  declare class AuditInformationComponent {
@@ -1527,7 +2189,6 @@ declare class FormSelectComponent implements ControlValueAccessor {
1527
2189
  get showError(): boolean;
1528
2190
  get errorMessage(): string;
1529
2191
  get resolvedDefaultOptionLabel(): string;
1530
- get selectClasses(): string;
1531
2192
  get fieldGroupClasses(): string;
1532
2193
  static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [{ optional: true; self: true; }, null]>;
1533
2194
  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>;
@@ -1560,7 +2221,6 @@ declare class FormTextareaComponent implements ControlValueAccessor {
1560
2221
  get inputId(): string;
1561
2222
  get showError(): boolean;
1562
2223
  get errorMessage(): string;
1563
- get inputClasses(): string;
1564
2224
  get fieldGroupClasses(): string;
1565
2225
  static ɵfac: i0.ɵɵFactoryDeclaration<FormTextareaComponent, [{ optional: true; self: true; }, null]>;
1566
2226
  static ɵcmp: i0.ɵɵComponentDeclaration<FormTextareaComponent, "form-textarea", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
@@ -1628,7 +2288,6 @@ declare class ColorPickerComponent implements ControlValueAccessor {
1628
2288
  selectPresetColor(color: string): void;
1629
2289
  get inputId(): string;
1630
2290
  get showError(): boolean;
1631
- get inputClasses(): string;
1632
2291
  get fieldGroupClasses(): string;
1633
2292
  isValidHexColor(color: string): boolean;
1634
2293
  static ɵfac: i0.ɵɵFactoryDeclaration<ColorPickerComponent, [{ optional: true; self: true; }, null]>;
@@ -1665,7 +2324,6 @@ declare class DateInputComponent implements ControlValueAccessor {
1665
2324
  get inputId(): string;
1666
2325
  get showError(): boolean;
1667
2326
  get errorMessage(): string;
1668
- get inputClasses(): string;
1669
2327
  get fieldGroupClasses(): string;
1670
2328
  static ɵfac: i0.ɵɵFactoryDeclaration<DateInputComponent, [{ optional: true; self: true; }, null]>;
1671
2329
  static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent, "date-input", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "includeTime": { "alias": "includeTime"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; }, {}, never, never, true, never>;
@@ -1692,9 +2350,6 @@ declare class ToggleSwitchComponent implements ControlValueAccessor {
1692
2350
  setDisabledState(isDisabled: boolean): void;
1693
2351
  onToggle(): void;
1694
2352
  get inputId(): string;
1695
- get toggleSizeClasses(): string;
1696
- get toggleThumbSizeClasses(): string;
1697
- get toggleThumbTranslateClasses(): string;
1698
2353
  get fieldGroupClasses(): string;
1699
2354
  static ɵfac: i0.ɵɵFactoryDeclaration<ToggleSwitchComponent, [{ optional: true; self: true; }]>;
1700
2355
  static ɵcmp: i0.ɵɵComponentDeclaration<ToggleSwitchComponent, "toggle-switch", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "description": { "alias": "description"; "required": false; }; }, { "toggleClick": "toggleClick"; }, never, never, true, never>;
@@ -1783,6 +2438,7 @@ declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, Cont
1783
2438
  notFoundText: string;
1784
2439
  bindLabel: string;
1785
2440
  bindValue: string;
2441
+ disabled: boolean;
1786
2442
  value: any;
1787
2443
  onChange: any;
1788
2444
  onTouched: any;
@@ -1812,7 +2468,7 @@ declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, Cont
1812
2468
  registerOnTouched(fn: any): void;
1813
2469
  setDisabledState(isDisabled: boolean): void;
1814
2470
  static ɵfac: i0.ɵɵFactoryDeclaration<AsyncSelectComponent, never>;
1815
- 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>;
2471
+ 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>;
1816
2472
  }
1817
2473
 
1818
2474
  declare class ChangePasswordFormComponent {
@@ -2336,5 +2992,61 @@ declare class ZonePriceListComponent {
2336
2992
  static ɵcmp: i0.ɵɵComponentDeclaration<ZonePriceListComponent, "zone-price-list", never, { "zones": { "alias": "zones"; "required": true; }; }, {}, never, never, true, never>;
2337
2993
  }
2338
2994
 
2339
- export { ADMIN_API_ROUTES, ALERT_BASE_CLASSES, ALERT_COLOR_CLASSES, ALERT_ICONS, ALERT_SIZE_CLASSES, 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, ToastService, ToggleSwitchComponent, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, formatCitiesResponseToSelect, getCustomerFullname, parseJsonToFormDataAdvanced, provideTickeraComponents, transformImageToFile };
2340
- 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 };
2995
+ declare class TicketMapWidgetComponent {
2996
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetComponent, never>;
2997
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetComponent, "ticket-map-widget", never, {}, {}, never, ["*"], true, never>;
2998
+ }
2999
+
3000
+ declare class TicketMapWidgetHeaderComponent {
3001
+ title: string;
3002
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetHeaderComponent, never>;
3003
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetHeaderComponent, "ticket-map-widget-header", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], true, never>;
3004
+ }
3005
+
3006
+ declare class TicketMapZoomControlsComponent {
3007
+ private zoomService;
3008
+ readonly currentZoom: i0.Signal<number>;
3009
+ readonly zoomPercentage: i0.Signal<string>;
3010
+ constructor(zoomService: TicketMapZoomService);
3011
+ zoomIn(): void;
3012
+ zoomOut(): void;
3013
+ resetZoom(): void;
3014
+ fitToContainer(): void;
3015
+ handleZoomAction(action: string): void;
3016
+ static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomControlsComponent, never>;
3017
+ static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapZoomControlsComponent, "ticket-map-zoom-controls", never, {}, {}, never, never, true, never>;
3018
+ }
3019
+
3020
+ declare class PerformanceTicketMapComponent implements OnDestroy, AfterViewInit {
3021
+ private platformId;
3022
+ protected bookingDataService: PerformanceBookingDataService;
3023
+ protected feedbackModalService: FeedbackModalService;
3024
+ protected selectionService: TicketSelectionService;
3025
+ protected zoomService: TicketMapZoomService;
3026
+ selectionChange: EventEmitter<PerformanceTicket[]>;
3027
+ readOnly: boolean;
3028
+ stageComponent?: StageComponent;
3029
+ protected tooltipData: i0.WritableSignal<TicketMapTooltipData | null>;
3030
+ private stageReady;
3031
+ private autoFitDone;
3032
+ private resizeObserver?;
3033
+ constructor(platformId: object, bookingDataService: PerformanceBookingDataService, feedbackModalService: FeedbackModalService, selectionService: TicketSelectionService, zoomService: TicketMapZoomService);
3034
+ protected get isBrowser(): boolean;
3035
+ ngAfterViewInit(): void;
3036
+ private setupResizeObserver;
3037
+ private syncStageToContainer;
3038
+ ngOnDestroy(): void;
3039
+ private getInternalPointer;
3040
+ protected selectHallFloor(floorId: number): void;
3041
+ protected handleStageClick(konvaEvent: any): void;
3042
+ protected handleStageMouseMove(konvaEvent: any): void;
3043
+ protected handleStageMouseLeave(): void;
3044
+ protected handleWheel(konvaEvent: any): void;
3045
+ protected trackByElementId(_index: number, item: ElementRenderData): number;
3046
+ protected trackByFloorId(_index: number, floor: HallFloorOption): HallFloorOption;
3047
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketMapComponent, never>;
3048
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceTicketMapComponent, "performance-ticket-map", never, { "readOnly": { "alias": "readOnly"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
3049
+ }
3050
+
3051
+ export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, CITY_API_ENDPOINTS, COUNTRY_API_ENDPOINTS, CUSTOMERS_API_ROUTES, ChangePasswordFormComponent, ChangePasswordFormService, CitiesService, CitySelectComponent, ColorPickerComponent, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, CustomerSelectComponent, CustomerService, DEFAULT_STAGE_CONFIG, DOCUMENT_TYPES_OPTIONS, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FeedbackModalComponent, FeedbackModalService, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, GiftBondStatus, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MinTodayValidator, MustMatchValidator, OrderItemType, OrderStatus, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, SelectedDiscountCardType, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_GRID_SIZE, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TickeraTranslocoLoader, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getStoredLanguage, numberToLetter, parseJsonToFormDataAdvanced, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile };
3052
+ 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, ElementRenderData, FeedbackModalElement, FeedbackModalType, FetchCitiesParams, FetchDailyPerformancesParams, FetchProductCategoriesParams, FetchProductTagsParams, FetchProductTypesParams, FetchShowsParams, FileUploadConfig, FindAllPriceZoneParams, GiftBond, GiftBondResponse, GiftBondsResponse, Hall, HallFloor, HallFloorOption, KonvaShapeConfig, ModalSize, NumerationConfig, Order, 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, 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, ShowType, ShowsResponseInterface, State, StateResponse, StatesResponse, TickeraComponentsConfig, TicketMapSeatPosition, TicketMapTableChairPosition, TicketMapTooltipData, TicketMapZoneQuantityState, TicketMapZoomConfig, UploadedFile, ValidateCorporateBondResponse, ValidateCouponResponse, ValidateGiftBondResponse, Venue, VenueImage };