tickera-angular-components 0.0.1-dev.20 → 0.0.1-dev.200
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/fesm2022/tickera-angular-components.mjs +7949 -1527
- package/fesm2022/tickera-angular-components.mjs.map +1 -1
- package/i18n/en.json +134 -4
- package/i18n/es.json +134 -4
- package/index.d.ts +2655 -468
- package/package.json +5 -2
- package/tickera.styles.css +1 -1
package/index.d.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, WritableSignal, EventEmitter, Injector, Type, OnInit,
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, WritableSignal, Signal, EventEmitter, OnChanges, OnDestroy, SimpleChanges, Injector, Type, OnInit, ElementRef, AfterViewInit } from '@angular/core';
|
|
3
|
+
export { TippyDirective } from '@ngneat/helipopper';
|
|
4
|
+
export * from '@ngneat/helipopper/config';
|
|
3
5
|
import { TranslocoLoader, TranslocoService } from '@jsverse/transloco';
|
|
4
6
|
import * as rxjs from 'rxjs';
|
|
5
7
|
import { Observable, Subject } from 'rxjs';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
+
import { ShapeConfig, Shape } from 'konva/lib/Shape';
|
|
9
|
+
import { Context } from 'konva/lib/Context';
|
|
10
|
+
import { ValidatorFn, FormGroup, FormBuilder, ControlValueAccessor, NgControl, Validator, AbstractControl, ValidationErrors, FormControl } from '@angular/forms';
|
|
11
|
+
import { HttpClient, HttpErrorResponse, HttpInterceptorFn } from '@angular/common/http';
|
|
12
|
+
import { Stage } from 'konva/lib/Stage';
|
|
13
|
+
import { Router, ActivatedRoute } from '@angular/router';
|
|
14
|
+
import * as tickera_angular_components from 'tickera-angular-components';
|
|
8
15
|
import { Toolbar, Editor } from 'ngx-editor';
|
|
9
|
-
import {
|
|
16
|
+
import { StageComponent, CoreShapeComponent } from 'ng2-konva';
|
|
10
17
|
|
|
11
18
|
interface TickeraComponentsConfig {
|
|
12
19
|
apiUrl: string;
|
|
@@ -14,6 +21,7 @@ interface TickeraComponentsConfig {
|
|
|
14
21
|
defaultLang?: string;
|
|
15
22
|
availableLangs?: string[];
|
|
16
23
|
}
|
|
24
|
+
|
|
17
25
|
declare const TICKERA_COMPONENTS_CONFIG: InjectionToken<TickeraComponentsConfig>;
|
|
18
26
|
declare function provideTickeraComponents(config: TickeraComponentsConfig): EnvironmentProviders;
|
|
19
27
|
|
|
@@ -33,22 +41,21 @@ declare const ALERT_ICONS: {
|
|
|
33
41
|
info: string;
|
|
34
42
|
};
|
|
35
43
|
|
|
36
|
-
declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
|
|
37
|
-
declare const BASE_BUTTON_CLASSES = "btn";
|
|
38
|
-
declare const BUTTON_SIZES_CLASSES: Record<string, string>;
|
|
39
|
-
|
|
40
|
-
declare const FORM_ERROR_MESSAGES: Record<string, string>;
|
|
41
|
-
|
|
42
|
-
declare const BASE_INPUT_CLASSES: string;
|
|
43
|
-
declare const ERROR_INPUT_CLASSES: string;
|
|
44
|
-
|
|
45
44
|
declare const ADMIN_API_ROUTES: {
|
|
46
45
|
FIND_ALL: string;
|
|
47
46
|
CREATE: string;
|
|
47
|
+
findOne: (id: number) => string;
|
|
48
48
|
updateOne: (id: number) => string;
|
|
49
49
|
deleteOne: (id: number) => string;
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
+
declare const ADMISSION_API_ROUTES: {
|
|
53
|
+
join: (performanceId: number) => string;
|
|
54
|
+
leave: (performanceId: number) => string;
|
|
55
|
+
status: (performanceId: number) => string;
|
|
56
|
+
events: (performanceId: number) => string;
|
|
57
|
+
};
|
|
58
|
+
|
|
52
59
|
declare const CITY_API_ENDPOINTS: {
|
|
53
60
|
findAll: string;
|
|
54
61
|
create: string;
|
|
@@ -65,10 +72,10 @@ declare const COUNTRY_API_ENDPOINTS: {
|
|
|
65
72
|
delete: (id: number) => string;
|
|
66
73
|
};
|
|
67
74
|
|
|
68
|
-
declare const
|
|
75
|
+
declare const CUSTOMERS_API_ROUTES: {
|
|
69
76
|
findAll: string;
|
|
70
77
|
create: string;
|
|
71
|
-
|
|
78
|
+
findOne: (id: number) => string;
|
|
72
79
|
update: (id: number) => string;
|
|
73
80
|
delete: (id: number) => string;
|
|
74
81
|
};
|
|
@@ -79,35 +86,23 @@ declare const PERFORMANCES_API_ROUTES: {
|
|
|
79
86
|
createBulk: string;
|
|
80
87
|
findOneById: (id: number) => string;
|
|
81
88
|
findOneBookingData: (id: number) => string;
|
|
89
|
+
findOneBookingDataAdmin: (id: number) => string;
|
|
82
90
|
update: (id: number) => string;
|
|
83
91
|
delete: (id: number) => string;
|
|
84
92
|
deleteMany: string;
|
|
93
|
+
bulkPublished: string;
|
|
85
94
|
cancel: (id: number) => string;
|
|
86
95
|
publishInventory: (id: number) => string;
|
|
87
96
|
reserve: (id: number) => string;
|
|
88
97
|
ticketQrToken: (uuid: string) => string;
|
|
89
98
|
getAvailableDays: string;
|
|
90
99
|
publicAvailablePerformances: string;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
update: (id: number) => string;
|
|
98
|
-
delete: (id: number) => string;
|
|
99
|
-
getImages: (id: number) => string;
|
|
100
|
-
uploadGallery: (id: number) => string;
|
|
101
|
-
deleteOneImage: (showId: number, imageId: number) => string;
|
|
102
|
-
publicAvailablePerformances: string;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
declare const CUSTOMERS_API_ROUTES: {
|
|
106
|
-
findAll: string;
|
|
107
|
-
create: string;
|
|
108
|
-
findOne: (id: number) => string;
|
|
109
|
-
update: (id: number) => string;
|
|
110
|
-
delete: (id: number) => string;
|
|
100
|
+
seatEventsTicket: (id: number) => string;
|
|
101
|
+
seatEventsTicketAdmin: (id: number) => string;
|
|
102
|
+
seatEvents: (id: number) => string;
|
|
103
|
+
myQrToken: (ticketUuid: string) => string;
|
|
104
|
+
ticketPdf: (ticketUuid: string) => string;
|
|
105
|
+
myTicketPdf: (ticketUuid: string) => string;
|
|
111
106
|
};
|
|
112
107
|
|
|
113
108
|
declare const PRICE_ZONES_API_ROUTES: {
|
|
@@ -120,18 +115,7 @@ declare const PRICE_ZONES_API_ROUTES: {
|
|
|
120
115
|
duplicate: (id: number) => string;
|
|
121
116
|
};
|
|
122
117
|
|
|
123
|
-
declare const
|
|
124
|
-
findAll: string;
|
|
125
|
-
create: string;
|
|
126
|
-
findOneById: (id: number) => string;
|
|
127
|
-
update: (id: number) => string;
|
|
128
|
-
delete: (id: number) => string;
|
|
129
|
-
getGallery: (id: number) => string;
|
|
130
|
-
uploadGallery: (id: number) => string;
|
|
131
|
-
deleteOneImage: (venueId: number, imageId: number) => string;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
declare const PRODUCT_TYPES_API_ROUTES: {
|
|
118
|
+
declare const PRODUCT_CATEGORIES_API_ROUTES: {
|
|
135
119
|
FIND_ALL: string;
|
|
136
120
|
CREATE: string;
|
|
137
121
|
findById: (id: number) => string;
|
|
@@ -147,7 +131,7 @@ declare const PRODUCT_TAGS_API_ROUTES: {
|
|
|
147
131
|
delete: (id: number) => string;
|
|
148
132
|
};
|
|
149
133
|
|
|
150
|
-
declare const
|
|
134
|
+
declare const PRODUCT_TYPES_API_ROUTES: {
|
|
151
135
|
FIND_ALL: string;
|
|
152
136
|
CREATE: string;
|
|
153
137
|
findById: (id: number) => string;
|
|
@@ -166,170 +150,67 @@ declare const PRODUCTS_API_ROUTES: {
|
|
|
166
150
|
deleteOneImage: (productId: number, imageId: number) => string;
|
|
167
151
|
};
|
|
168
152
|
|
|
169
|
-
declare
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
|
|
181
|
-
MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
|
|
182
|
-
SHOWS = "SHOWS",
|
|
183
|
-
PERFORMANCES = "PERFORMANCES"
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
declare enum CouponDiscountType {
|
|
187
|
-
PERCENTAGE = "PERCENTAGE",
|
|
188
|
-
FIXED = "FIXED"
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
declare enum CouponStatus {
|
|
192
|
-
ACTIVE = "ACTIVE",
|
|
193
|
-
INACTIVE = "INACTIVE",
|
|
194
|
-
EXPIRED = "EXPIRED",
|
|
195
|
-
CONSUMED = "CONSUMED"
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
declare enum CorporateBondStatus {
|
|
199
|
-
ACTIVE = "ACTIVE",
|
|
200
|
-
INACTIVE = "INACTIVE",
|
|
201
|
-
EXPIRED = "EXPIRED",
|
|
202
|
-
CONSUMED = "CONSUMED"
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
declare enum PerformanceStatus {
|
|
206
|
-
ACTIVE = "active",
|
|
207
|
-
CANCELLED = "cancelled",
|
|
208
|
-
FINISHED = "finished",
|
|
209
|
-
POSTPONED = "postponed"
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
declare enum PerformanceTicketStatus {
|
|
213
|
-
AVAILABLE = "available",
|
|
214
|
-
RESERVED = "reserved",
|
|
215
|
-
SOLD = "sold",
|
|
216
|
-
BLOCKED = "blocked"
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
declare enum RoomMapElementOrientation {
|
|
220
|
-
TOP = "top",
|
|
221
|
-
RIGHT = "right",
|
|
222
|
-
BOTTOM = "bottom",
|
|
223
|
-
LEFT = "left",
|
|
224
|
-
CENTER = "center"
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
declare enum RoomMapElementType {
|
|
228
|
-
SEAT_BLOCK = "seat_block",
|
|
229
|
-
TABLE = "table",
|
|
230
|
-
ZONE = "zone",
|
|
231
|
-
EXIT = "exit",
|
|
232
|
-
STAGE = "stage",
|
|
233
|
-
PRODUCTION_AREA = "production_area",
|
|
234
|
-
UNAVAILABLE_SPACE = "unavailable_space",
|
|
235
|
-
STAIR = "stair",
|
|
236
|
-
HALLWAY = "hallway"
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
declare enum GiftBondStatus {
|
|
240
|
-
ACTIVE = "ACTIVE",
|
|
241
|
-
INACTIVE = "INACTIVE",
|
|
242
|
-
EXPIRED = "EXPIRED",
|
|
243
|
-
CONSUMED = "CONSUMED"
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
declare enum OrderItemType {
|
|
247
|
-
TICKET = "TICKET",
|
|
248
|
-
PRODUCT = "PRODUCT"
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
declare enum OrderStatus {
|
|
252
|
-
ON_HOLD = "on-hold",
|
|
253
|
-
PENDING_PAYMENT = "pending-payment",
|
|
254
|
-
PROCESSING = "processing",
|
|
255
|
-
COMPLETED = "completed",
|
|
256
|
-
FAILED = "failed",
|
|
257
|
-
CANCELLED = "cancelled",
|
|
258
|
-
REFUNDED = "refunded"
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
interface RoomMapPosition {
|
|
262
|
-
x: number;
|
|
263
|
-
y: number;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
interface RoomMapSize {
|
|
267
|
-
width: number;
|
|
268
|
-
height: number;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
interface RoomMapBaseElement {
|
|
272
|
-
id: string;
|
|
273
|
-
type: RoomMapElementType;
|
|
274
|
-
position: RoomMapPosition;
|
|
275
|
-
size: RoomMapSize;
|
|
276
|
-
rotation: number;
|
|
277
|
-
name?: string;
|
|
278
|
-
isLocked: boolean;
|
|
279
|
-
isVisible: boolean;
|
|
280
|
-
zIndex: number;
|
|
281
|
-
}
|
|
153
|
+
declare const SHOWS_API_ROUTES: {
|
|
154
|
+
findAll: string;
|
|
155
|
+
create: string;
|
|
156
|
+
findOneById: (id: number) => string;
|
|
157
|
+
update: (id: number) => string;
|
|
158
|
+
delete: (id: number) => string;
|
|
159
|
+
getImages: (id: number) => string;
|
|
160
|
+
uploadGallery: (id: number) => string;
|
|
161
|
+
deleteOneImage: (showId: number, imageId: number) => string;
|
|
162
|
+
publicAvailablePerformances: string;
|
|
163
|
+
};
|
|
282
164
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
165
|
+
declare const STATE_API_ENDPOINTS: {
|
|
166
|
+
findAll: string;
|
|
167
|
+
create: string;
|
|
168
|
+
findById: (id: number) => string;
|
|
169
|
+
update: (id: number) => string;
|
|
170
|
+
delete: (id: number) => string;
|
|
171
|
+
};
|
|
289
172
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
173
|
+
declare const VENUES_API_ROUTES: {
|
|
174
|
+
findAll: string;
|
|
175
|
+
create: string;
|
|
176
|
+
findOneById: (id: number) => string;
|
|
177
|
+
update: (id: number) => string;
|
|
178
|
+
delete: (id: number) => string;
|
|
179
|
+
getGallery: (id: number) => string;
|
|
180
|
+
uploadGallery: (id: number) => string;
|
|
181
|
+
deleteOneImage: (venueId: number, imageId: number) => string;
|
|
182
|
+
};
|
|
295
183
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
184
|
+
declare const VIP_CARDS_API_ROUTES: {
|
|
185
|
+
findAll: string;
|
|
186
|
+
findOne: (id: number) => string;
|
|
187
|
+
activateAdmin: string;
|
|
188
|
+
rechargeAdmin: (id: number) => string;
|
|
189
|
+
updateStatus: (id: number) => string;
|
|
190
|
+
updateTerms: (id: number) => string;
|
|
191
|
+
transactions: (id: number) => string;
|
|
192
|
+
findMy: string;
|
|
193
|
+
activate: string;
|
|
194
|
+
recharge: string;
|
|
195
|
+
};
|
|
302
196
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
orientation: RoomMapElementOrientation;
|
|
307
|
-
isMainStage: boolean;
|
|
308
|
-
}
|
|
197
|
+
declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
|
|
198
|
+
declare const BASE_BUTTON_CLASSES = "btn";
|
|
199
|
+
declare const BUTTON_SIZES_CLASSES: Record<string, string>;
|
|
309
200
|
|
|
310
|
-
|
|
311
|
-
type: RoomMapElementType.TABLE;
|
|
312
|
-
tableNumber?: string;
|
|
313
|
-
capacity: number;
|
|
314
|
-
shape: 'round' | 'rectangular' | 'square';
|
|
315
|
-
}
|
|
201
|
+
declare const FORM_ERROR_MESSAGES: Record<string, string>;
|
|
316
202
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
reason?: string;
|
|
320
|
-
}
|
|
203
|
+
declare const BASE_INPUT_CLASSES: string;
|
|
204
|
+
declare const ERROR_INPUT_CLASSES: string;
|
|
321
205
|
|
|
322
|
-
interface
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
color: string;
|
|
327
|
-
capacity?: number;
|
|
206
|
+
interface PhoneCountry {
|
|
207
|
+
name: string;
|
|
208
|
+
isoCode: string;
|
|
209
|
+
dialCode: string;
|
|
328
210
|
}
|
|
329
211
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
|
|
212
|
+
declare function phoneCountryFlag(isoCode: string): string;
|
|
213
|
+
declare const PHONE_COUNTRIES: PhoneCountry[];
|
|
333
214
|
|
|
334
215
|
interface SelectOption {
|
|
335
216
|
value: any;
|
|
@@ -337,7 +218,7 @@ interface SelectOption {
|
|
|
337
218
|
disabled?: boolean;
|
|
338
219
|
}
|
|
339
220
|
|
|
340
|
-
interface Admin {
|
|
221
|
+
interface Admin extends Auditable {
|
|
341
222
|
id: number;
|
|
342
223
|
username: string;
|
|
343
224
|
email: string;
|
|
@@ -353,16 +234,17 @@ interface Admin {
|
|
|
353
234
|
reset_password_expires: Date;
|
|
354
235
|
email_verified_at: Date;
|
|
355
236
|
last_login: Date;
|
|
356
|
-
created_at: Date;
|
|
357
|
-
updated_at: Date;
|
|
358
|
-
deleted_at: Date;
|
|
359
237
|
}
|
|
360
238
|
|
|
361
239
|
interface Auditable {
|
|
362
240
|
created_at: Date;
|
|
363
241
|
updated_at: Date;
|
|
242
|
+
deleted_at?: Date | null;
|
|
364
243
|
is_published?: boolean;
|
|
365
244
|
published_at?: Date;
|
|
245
|
+
published_by?: number;
|
|
246
|
+
deleted_by?: number;
|
|
247
|
+
deleted_by_admin?: Admin;
|
|
366
248
|
created_by_admin?: Admin;
|
|
367
249
|
updated_by_admin?: Admin;
|
|
368
250
|
published_by_admin?: Admin;
|
|
@@ -395,30 +277,21 @@ interface DeleteConfirmationOpen {
|
|
|
395
277
|
confirmationText: string;
|
|
396
278
|
}
|
|
397
279
|
|
|
398
|
-
interface AdminsResponse {
|
|
399
|
-
statusCode: number;
|
|
400
|
-
data: {
|
|
401
|
-
admins: Admin[];
|
|
402
|
-
total: number;
|
|
403
|
-
};
|
|
404
|
-
message: string;
|
|
405
|
-
}
|
|
406
|
-
|
|
407
280
|
interface Country {
|
|
408
|
-
id:
|
|
281
|
+
id: number;
|
|
409
282
|
name: string;
|
|
410
283
|
iso2: string;
|
|
411
284
|
}
|
|
412
285
|
|
|
413
286
|
interface State {
|
|
414
|
-
id:
|
|
287
|
+
id: number;
|
|
415
288
|
name: string;
|
|
416
289
|
country_id: number;
|
|
417
290
|
country?: Country;
|
|
418
291
|
}
|
|
419
292
|
|
|
420
293
|
interface City {
|
|
421
|
-
id:
|
|
294
|
+
id: number;
|
|
422
295
|
name: string;
|
|
423
296
|
search_text: string | null;
|
|
424
297
|
state_id: number;
|
|
@@ -457,33 +330,48 @@ interface Venue extends Auditable {
|
|
|
457
330
|
images: VenueImage[];
|
|
458
331
|
}
|
|
459
332
|
|
|
460
|
-
interface HallFloor {
|
|
333
|
+
interface HallFloor extends Auditable {
|
|
461
334
|
id: number;
|
|
462
335
|
name: string;
|
|
463
336
|
level: number;
|
|
464
337
|
max_capacity: number;
|
|
465
338
|
description: string;
|
|
466
339
|
hall_id: number;
|
|
467
|
-
created_at: Date;
|
|
468
|
-
updated_at: Date;
|
|
469
|
-
deleted_at: Date | null;
|
|
470
340
|
}
|
|
471
341
|
|
|
472
|
-
interface Hall {
|
|
342
|
+
interface Hall extends Auditable {
|
|
473
343
|
id: number;
|
|
474
344
|
name: string;
|
|
475
345
|
venue_id: number;
|
|
476
346
|
venue?: Venue;
|
|
477
347
|
hall_floors?: HallFloor[];
|
|
478
|
-
created_at: Date;
|
|
479
|
-
updated_at: Date;
|
|
480
|
-
deleted_at: Date | null;
|
|
481
348
|
}
|
|
482
349
|
|
|
483
|
-
interface
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
350
|
+
interface BreadcrumbStep {
|
|
351
|
+
label: string;
|
|
352
|
+
href?: string;
|
|
353
|
+
icon?: string;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
interface CommonFetchAllParams {
|
|
357
|
+
id?: number;
|
|
358
|
+
page?: number;
|
|
359
|
+
limit?: number;
|
|
360
|
+
search?: string;
|
|
361
|
+
sort_by?: string;
|
|
362
|
+
sort_order?: 'ASC' | 'DESC';
|
|
363
|
+
is_published?: boolean;
|
|
364
|
+
ids_in?: number[];
|
|
365
|
+
ids_not_in?: number[];
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
interface SidebarMenuItem {
|
|
369
|
+
labelKey: string;
|
|
370
|
+
icon: string;
|
|
371
|
+
path?: string;
|
|
372
|
+
role?: string[];
|
|
373
|
+
isOpen?: boolean;
|
|
374
|
+
submenu?: SidebarMenuItem[];
|
|
487
375
|
}
|
|
488
376
|
|
|
489
377
|
interface CountriesResponse {
|
|
@@ -495,6 +383,21 @@ interface CountriesResponse {
|
|
|
495
383
|
status: string;
|
|
496
384
|
}
|
|
497
385
|
|
|
386
|
+
interface CountryResponse {
|
|
387
|
+
data: Country;
|
|
388
|
+
message: string;
|
|
389
|
+
status: string;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
interface FetchCountriesParams extends CommonFetchAllParams {
|
|
393
|
+
sort_by?: 'country.id' | 'country.name' | 'country.iso2' | 'country.created_at' | 'country.updated_at';
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
interface FetchStatesParams extends CommonFetchAllParams {
|
|
397
|
+
country_id?: number;
|
|
398
|
+
sort_by?: 'state.id' | 'state.name' | 'state.country_id' | 'state.search_text' | 'state.created_at' | 'state.updated_at';
|
|
399
|
+
}
|
|
400
|
+
|
|
498
401
|
interface StateResponse {
|
|
499
402
|
data: State;
|
|
500
403
|
message: string;
|
|
@@ -510,28 +413,40 @@ interface StatesResponse {
|
|
|
510
413
|
statusCode: number;
|
|
511
414
|
}
|
|
512
415
|
|
|
416
|
+
interface CitiesResponse {
|
|
417
|
+
data: {
|
|
418
|
+
cities: City[];
|
|
419
|
+
total: number;
|
|
420
|
+
};
|
|
421
|
+
message: string;
|
|
422
|
+
status: string;
|
|
423
|
+
}
|
|
424
|
+
|
|
513
425
|
interface CityResponse {
|
|
514
426
|
data: City;
|
|
515
427
|
message: string;
|
|
516
428
|
status: string;
|
|
517
429
|
}
|
|
518
430
|
|
|
519
|
-
interface
|
|
431
|
+
interface FetchCitiesParams extends CommonFetchAllParams {
|
|
432
|
+
state_id?: number;
|
|
433
|
+
sort_by?: 'city.id' | 'city.name' | 'city.state_id' | 'city.search_text' | 'city.created_at' | 'city.updated_at';
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
interface AdminsResponse {
|
|
437
|
+
statusCode: number;
|
|
520
438
|
data: {
|
|
521
|
-
|
|
439
|
+
admins: Admin[];
|
|
522
440
|
total: number;
|
|
523
441
|
};
|
|
524
442
|
message: string;
|
|
525
|
-
status: string;
|
|
526
443
|
}
|
|
527
444
|
|
|
528
|
-
interface
|
|
529
|
-
|
|
530
|
-
page?: number;
|
|
531
|
-
search?: string;
|
|
445
|
+
interface FetchAdminsParams extends CommonFetchAllParams {
|
|
446
|
+
sort_by?: 'admin.id' | 'admin.username' | 'admin.email' | 'admin.mobile' | 'admin.first_name' | 'admin.last_name' | 'admin.full_name' | 'admin.principal_role' | 'admin.email_verified_at' | 'admin.last_login' | 'admin.created_at' | 'admin.updated_at';
|
|
532
447
|
}
|
|
533
448
|
|
|
534
|
-
interface Customer {
|
|
449
|
+
interface Customer extends Auditable {
|
|
535
450
|
username: string;
|
|
536
451
|
email: string;
|
|
537
452
|
mobile: string;
|
|
@@ -562,9 +477,6 @@ interface Customer {
|
|
|
562
477
|
membership_expires_at: Date | null;
|
|
563
478
|
id: number;
|
|
564
479
|
is_active: boolean;
|
|
565
|
-
created_at: Date;
|
|
566
|
-
updated_at: Date;
|
|
567
|
-
deleted_at: Date | null;
|
|
568
480
|
}
|
|
569
481
|
|
|
570
482
|
interface CustomerResponse {
|
|
@@ -582,88 +494,265 @@ interface CustomersResponse {
|
|
|
582
494
|
message: string;
|
|
583
495
|
}
|
|
584
496
|
|
|
585
|
-
|
|
497
|
+
interface FetchCustomersParams extends CommonFetchAllParams {
|
|
498
|
+
first_name?: string;
|
|
499
|
+
last_name?: string;
|
|
500
|
+
email?: string;
|
|
501
|
+
username?: string;
|
|
502
|
+
mobile?: string;
|
|
503
|
+
document_type?: Customer['document_type'];
|
|
504
|
+
document_number?: string;
|
|
505
|
+
address?: string;
|
|
506
|
+
sort_by?: 'customer.id' | 'customer.email' | 'customer.mobile' | 'customer.first_name' | 'customer.last_name' | 'customer.birthday_date' | 'customer.document_type' | 'customer.document_number' | 'customer.address' | 'customer.postal_code' | 'customer.country_id' | 'customer.city_id' | 'customer.state_id' | 'customer.phone' | 'customer.created_at';
|
|
507
|
+
}
|
|
586
508
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
509
|
+
declare enum OrderItemType {
|
|
510
|
+
TICKET = "TICKET",
|
|
511
|
+
PRODUCT = "PRODUCT",
|
|
512
|
+
GIFT_BOND = "GIFT_BOND",
|
|
513
|
+
CORPORATE_BOND = "CORPORATE_BOND",
|
|
514
|
+
VIP_RECHARGE = "VIP_RECHARGE"
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
declare enum OrderStatus {
|
|
518
|
+
ON_HOLD = "on-hold",
|
|
519
|
+
PENDING_PAYMENT = "pending-payment",
|
|
520
|
+
PROCESSING = "processing",
|
|
521
|
+
COMPLETED = "completed",
|
|
522
|
+
FAILED = "failed",
|
|
523
|
+
CANCELLED = "cancelled",
|
|
524
|
+
REFUNDED = "refunded"
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
declare enum CreatorType {
|
|
528
|
+
ADMIN = "admin",
|
|
529
|
+
CUSTOMER = "customer"
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
declare enum PaymentMethod {
|
|
533
|
+
PAYROLL = "payroll",
|
|
534
|
+
CASH = "cash",
|
|
535
|
+
DATAFONO = "datafono",
|
|
536
|
+
INTERNAL_EXCHANGE = "internal_exchange",
|
|
537
|
+
CLIENT_EXCHANGE = "client_exchange",
|
|
538
|
+
MERCADO_PAGO = "mercado_pago"
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
declare enum RoomMapElementType {
|
|
542
|
+
SEAT_BLOCK = "seat_block",
|
|
543
|
+
TABLE = "table",
|
|
544
|
+
ZONE = "zone",
|
|
545
|
+
EXIT = "exit",
|
|
546
|
+
STAGE = "stage",
|
|
547
|
+
PRODUCTION_AREA = "production_area",
|
|
548
|
+
UNAVAILABLE_SPACE = "unavailable_space",
|
|
549
|
+
STAIR = "stair",
|
|
550
|
+
HALLWAY = "hallway"
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
interface RoomMapPosition {
|
|
554
|
+
x: number;
|
|
555
|
+
y: number;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
interface RoomMapSize {
|
|
595
559
|
width: number;
|
|
596
560
|
height: number;
|
|
597
|
-
show_id: number;
|
|
598
|
-
created_at: Date;
|
|
599
561
|
}
|
|
600
562
|
|
|
601
|
-
interface
|
|
602
|
-
id:
|
|
563
|
+
interface RoomMapBaseElement {
|
|
564
|
+
id: string;
|
|
565
|
+
type: RoomMapElementType;
|
|
566
|
+
position: RoomMapPosition;
|
|
567
|
+
size: RoomMapSize;
|
|
568
|
+
rotation: number;
|
|
569
|
+
name?: string;
|
|
570
|
+
isLocked: boolean;
|
|
571
|
+
isVisible: boolean;
|
|
572
|
+
zIndex: number;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
interface RoomMapExitElement extends RoomMapBaseElement {
|
|
576
|
+
type: RoomMapElementType.EXIT;
|
|
577
|
+
exitName?: string;
|
|
578
|
+
exitType: 'emergency' | 'regular';
|
|
579
|
+
width: number;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
interface RoomMapProductionAreaElement extends RoomMapBaseElement {
|
|
583
|
+
type: RoomMapElementType.PRODUCTION_AREA;
|
|
584
|
+
areaName?: string;
|
|
585
|
+
areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
interface RoomMapSeatElement extends RoomMapBaseElement {
|
|
589
|
+
type: RoomMapElementType.SEAT_BLOCK;
|
|
590
|
+
seatNumber?: string;
|
|
591
|
+
isAvailable: boolean;
|
|
592
|
+
priceCategory?: string;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
declare enum RoomMapElementOrientation {
|
|
596
|
+
TOP = "top",
|
|
597
|
+
RIGHT = "right",
|
|
598
|
+
BOTTOM = "bottom",
|
|
599
|
+
LEFT = "left",
|
|
600
|
+
CENTER = "center"
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
interface RoomMapStageElement extends RoomMapBaseElement {
|
|
604
|
+
type: RoomMapElementType.STAGE;
|
|
605
|
+
stageName?: string;
|
|
606
|
+
orientation: RoomMapElementOrientation;
|
|
607
|
+
isMainStage: boolean;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
interface RoomMapTableElement extends RoomMapBaseElement {
|
|
611
|
+
type: RoomMapElementType.TABLE;
|
|
612
|
+
tableNumber?: string;
|
|
613
|
+
capacity: number;
|
|
614
|
+
shape: 'round' | 'rectangular' | 'square';
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
interface RoomMapUnavailableElement extends RoomMapBaseElement {
|
|
618
|
+
type: RoomMapElementType.UNAVAILABLE_SPACE;
|
|
619
|
+
reason?: string;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
interface RoomMapZoneElement extends RoomMapBaseElement {
|
|
623
|
+
type: RoomMapElementType.ZONE;
|
|
624
|
+
zoneName: string;
|
|
625
|
+
zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
|
|
626
|
+
color: string;
|
|
627
|
+
capacity?: number;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
|
|
631
|
+
|
|
632
|
+
type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
|
|
633
|
+
|
|
634
|
+
type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
|
|
635
|
+
|
|
636
|
+
type FeedbackModalType = 'loading' | 'success' | 'info' | 'warning' | 'error';
|
|
637
|
+
|
|
638
|
+
type BadgeSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
639
|
+
|
|
640
|
+
type BadgeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
|
|
641
|
+
|
|
642
|
+
type BreadcrumbTheme = 'light' | 'dark';
|
|
643
|
+
|
|
644
|
+
type TextFontSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';
|
|
645
|
+
|
|
646
|
+
interface FeedbackModalElement {
|
|
647
|
+
id: string;
|
|
648
|
+
type: FeedbackModalType;
|
|
603
649
|
title: string;
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
650
|
+
isOpen: WritableSignal<boolean>;
|
|
651
|
+
message?: string;
|
|
652
|
+
showHeader?: boolean;
|
|
653
|
+
showCloseButton?: boolean;
|
|
654
|
+
showTitle?: boolean;
|
|
655
|
+
closeModal?: void;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
declare enum FileType {
|
|
659
|
+
IMAGE = "image",
|
|
660
|
+
PDF = "pdf",
|
|
661
|
+
EXCEL = "excel",
|
|
662
|
+
WORD = "word",
|
|
663
|
+
TEXT = "text",
|
|
664
|
+
DEFAULT = "default"
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
declare enum CouponApplicability {
|
|
668
|
+
GENERAL = "GENERAL",
|
|
669
|
+
CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
|
|
670
|
+
MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
|
|
671
|
+
SHOWS = "SHOWS",
|
|
672
|
+
PERFORMANCES = "PERFORMANCES"
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
declare enum CouponDiscountType {
|
|
676
|
+
PERCENTAGE = "PERCENTAGE",
|
|
677
|
+
FIXED = "FIXED"
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
declare enum CouponStatus {
|
|
681
|
+
ACTIVE = "ACTIVE",
|
|
682
|
+
INACTIVE = "INACTIVE",
|
|
683
|
+
EXPIRED = "EXPIRED",
|
|
684
|
+
CONSUMED = "CONSUMED"
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
declare enum CorporateBondStatus {
|
|
688
|
+
ACTIVE = "ACTIVE",
|
|
689
|
+
INACTIVE = "INACTIVE",
|
|
690
|
+
PENDING = "PENDING",
|
|
691
|
+
PAYMENT_FAILED = "PAYMENT_FAILED",
|
|
692
|
+
EXPIRED = "EXPIRED",
|
|
693
|
+
CONSUMED = "CONSUMED"
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
declare enum PerformanceStatus {
|
|
697
|
+
SCHEDULED = "scheduled",
|
|
698
|
+
OPEN = "open",
|
|
699
|
+
CLOSED = "closed",
|
|
700
|
+
CANCELLED = "cancelled",
|
|
701
|
+
COMPLETED = "completed",
|
|
702
|
+
POSTPONED = "postponed"
|
|
619
703
|
}
|
|
620
704
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
705
|
+
declare enum PerformanceTicketStatus {
|
|
706
|
+
AVAILABLE = "available",
|
|
707
|
+
RESERVED = "reserved",
|
|
708
|
+
SOLD = "sold",
|
|
709
|
+
BLOCKED = "blocked"
|
|
625
710
|
}
|
|
626
711
|
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
shows: Show[];
|
|
631
|
-
total: number;
|
|
632
|
-
};
|
|
633
|
-
message: string;
|
|
712
|
+
declare enum GiftBondStatus {
|
|
713
|
+
ACTIVE = "ACTIVE",
|
|
714
|
+
INACTIVE = "INACTIVE"
|
|
634
715
|
}
|
|
635
716
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
717
|
+
declare enum GiftBondPurchaseStatus {
|
|
718
|
+
AVAILABLE = "AVAILABLE",
|
|
719
|
+
REDEEMED = "REDEEMED",
|
|
720
|
+
EXPIRED = "EXPIRED",
|
|
721
|
+
CANCELLED = "CANCELLED"
|
|
641
722
|
}
|
|
642
723
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
724
|
+
declare enum TransactionStatus {
|
|
725
|
+
PENDING = "PENDING",
|
|
726
|
+
APPROVED = "APPROVED",
|
|
727
|
+
REJECTED = "REJECTED",
|
|
728
|
+
ERROR = "ERROR"
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
declare enum VipCardStatus {
|
|
732
|
+
ACTIVE = "ACTIVE",
|
|
733
|
+
INACTIVE = "INACTIVE",
|
|
734
|
+
EXPIRED = "EXPIRED"
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
declare enum VipTransactionType {
|
|
738
|
+
INITIAL_RECHARGE = "INITIAL_RECHARGE",
|
|
739
|
+
RECHARGE = "RECHARGE",
|
|
740
|
+
PURCHASE_PAYMENT = "PURCHASE_PAYMENT"
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
declare enum MembershipStatus {
|
|
744
|
+
ACTIVE = "ACTIVE",
|
|
745
|
+
INACTIVE = "INACTIVE"
|
|
655
746
|
}
|
|
656
747
|
|
|
657
|
-
interface FetchProductCategoriesParams {
|
|
748
|
+
interface FetchProductCategoriesParams extends CommonFetchAllParams {
|
|
658
749
|
name?: string;
|
|
659
750
|
slug?: string;
|
|
660
|
-
|
|
661
|
-
limit?: number;
|
|
662
|
-
search?: string;
|
|
751
|
+
sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
|
|
663
752
|
}
|
|
664
753
|
|
|
665
754
|
interface ProductCategory extends Auditable {
|
|
666
|
-
id:
|
|
755
|
+
id: number;
|
|
667
756
|
name: string;
|
|
668
757
|
slug: string;
|
|
669
758
|
}
|
|
@@ -683,16 +772,14 @@ interface ProductCategoryResponse {
|
|
|
683
772
|
message: string;
|
|
684
773
|
}
|
|
685
774
|
|
|
686
|
-
interface FetchProductTagsParams {
|
|
775
|
+
interface FetchProductTagsParams extends CommonFetchAllParams {
|
|
687
776
|
name?: string;
|
|
688
777
|
slug?: string;
|
|
689
|
-
|
|
690
|
-
limit?: number;
|
|
691
|
-
search?: string;
|
|
778
|
+
sort_by?: 'tag.id' | 'tag.name' | 'tag.slug' | 'tag.created_at';
|
|
692
779
|
}
|
|
693
780
|
|
|
694
781
|
interface ProductTag extends Auditable {
|
|
695
|
-
id:
|
|
782
|
+
id: number;
|
|
696
783
|
name: string;
|
|
697
784
|
slug: string;
|
|
698
785
|
}
|
|
@@ -712,16 +799,14 @@ interface ProductTagsResponse {
|
|
|
712
799
|
message: string;
|
|
713
800
|
}
|
|
714
801
|
|
|
715
|
-
interface FetchProductTypesParams {
|
|
802
|
+
interface FetchProductTypesParams extends CommonFetchAllParams {
|
|
716
803
|
name?: string;
|
|
717
804
|
slug?: string;
|
|
718
|
-
|
|
719
|
-
limit?: number;
|
|
720
|
-
search?: string;
|
|
805
|
+
sort_by?: 'type.id' | 'type.name' | 'type.slug' | 'type.created_at';
|
|
721
806
|
}
|
|
722
807
|
|
|
723
808
|
interface ProductType extends Auditable {
|
|
724
|
-
id:
|
|
809
|
+
id: number;
|
|
725
810
|
name: string;
|
|
726
811
|
slug: string;
|
|
727
812
|
}
|
|
@@ -766,7 +851,6 @@ interface Product extends Auditable {
|
|
|
766
851
|
slug: string;
|
|
767
852
|
sku?: string;
|
|
768
853
|
is_limited_edition: boolean;
|
|
769
|
-
is_active: boolean;
|
|
770
854
|
deleted_at: Date | null;
|
|
771
855
|
categories?: ProductCategory[];
|
|
772
856
|
tags?: ProductTag[];
|
|
@@ -774,6 +858,31 @@ interface Product extends Auditable {
|
|
|
774
858
|
images?: ProductImage[];
|
|
775
859
|
}
|
|
776
860
|
|
|
861
|
+
interface ShowImage {
|
|
862
|
+
id: number;
|
|
863
|
+
path: string;
|
|
864
|
+
full_url: string;
|
|
865
|
+
original_name: string;
|
|
866
|
+
extension: string;
|
|
867
|
+
size: number;
|
|
868
|
+
mime_type: string;
|
|
869
|
+
width: number;
|
|
870
|
+
height: number;
|
|
871
|
+
show_id: number;
|
|
872
|
+
created_at: Date;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
interface PriceZone extends Auditable {
|
|
876
|
+
id: number;
|
|
877
|
+
name: string;
|
|
878
|
+
color: string;
|
|
879
|
+
normal_price: number | null;
|
|
880
|
+
is_active: boolean;
|
|
881
|
+
elements: any[];
|
|
882
|
+
room_map_id: number | null;
|
|
883
|
+
room_map?: RoomMap;
|
|
884
|
+
}
|
|
885
|
+
|
|
777
886
|
interface NumerationConfig {
|
|
778
887
|
start_row_letter: string;
|
|
779
888
|
row_order: 'TOP_TO_BOTTOM' | 'BOTTOM_TO_TOP';
|
|
@@ -809,7 +918,7 @@ interface RoomMapElementTemplate {
|
|
|
809
918
|
price_zone?: PriceZone;
|
|
810
919
|
}
|
|
811
920
|
|
|
812
|
-
interface RoomMap {
|
|
921
|
+
interface RoomMap extends Auditable {
|
|
813
922
|
id: number;
|
|
814
923
|
name: string;
|
|
815
924
|
canvas_settings: {
|
|
@@ -825,8 +934,6 @@ interface RoomMap {
|
|
|
825
934
|
related_product_ids: number[];
|
|
826
935
|
products?: Product[];
|
|
827
936
|
venue_name?: string;
|
|
828
|
-
created_at: Date;
|
|
829
|
-
updated_at: Date;
|
|
830
937
|
}
|
|
831
938
|
|
|
832
939
|
interface RoomMapCanvasConfiguration {
|
|
@@ -868,7 +975,7 @@ interface ElementPropertiesTab {
|
|
|
868
975
|
elements_access: string[];
|
|
869
976
|
}
|
|
870
977
|
|
|
871
|
-
interface Performance {
|
|
978
|
+
interface Performance extends Auditable {
|
|
872
979
|
id: number;
|
|
873
980
|
start_time: Date | string;
|
|
874
981
|
end_time: Date | string;
|
|
@@ -878,8 +985,140 @@ interface Performance {
|
|
|
878
985
|
show?: Show;
|
|
879
986
|
room_map: RoomMap;
|
|
880
987
|
room_map_id: number;
|
|
881
|
-
|
|
882
|
-
|
|
988
|
+
performance_tickets?: PerformanceTicket[];
|
|
989
|
+
can_delete?: boolean;
|
|
990
|
+
can_cancel?: boolean;
|
|
991
|
+
can_modify?: boolean;
|
|
992
|
+
can_reserve?: boolean;
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
interface FetchShowCategoriesParams extends CommonFetchAllParams {
|
|
996
|
+
name?: string;
|
|
997
|
+
slug?: string;
|
|
998
|
+
sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
interface ShowCategory extends Auditable {
|
|
1002
|
+
id: number;
|
|
1003
|
+
name: string;
|
|
1004
|
+
slug: string;
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
interface ShowCategoriesResponse {
|
|
1008
|
+
statusCode: number;
|
|
1009
|
+
data: {
|
|
1010
|
+
categories: ShowCategory[];
|
|
1011
|
+
total: number;
|
|
1012
|
+
};
|
|
1013
|
+
message: string;
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
interface ShowCategoryResponse {
|
|
1017
|
+
statusCode: number;
|
|
1018
|
+
data: ShowCategory;
|
|
1019
|
+
message: string;
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
interface FetchShowGendersParams extends CommonFetchAllParams {
|
|
1023
|
+
name?: string;
|
|
1024
|
+
slug?: string;
|
|
1025
|
+
sort_by?: 'gender.id' | 'gender.name' | 'gender.slug' | 'gender.created_at';
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
interface ShowGender extends Auditable {
|
|
1029
|
+
id: number;
|
|
1030
|
+
name: string;
|
|
1031
|
+
slug: string;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
interface ShowGenderResponse {
|
|
1035
|
+
statusCode: number;
|
|
1036
|
+
data: ShowGender;
|
|
1037
|
+
message: string;
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
interface ShowGendersResponse {
|
|
1041
|
+
statusCode: number;
|
|
1042
|
+
data: {
|
|
1043
|
+
genders: ShowGender[];
|
|
1044
|
+
total: number;
|
|
1045
|
+
};
|
|
1046
|
+
message: string;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
interface FetchShowTypesParams extends CommonFetchAllParams {
|
|
1050
|
+
name?: string;
|
|
1051
|
+
slug?: string;
|
|
1052
|
+
sort_by?: 'type.id' | 'type.name' | 'type.slug' | 'type.created_at';
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
interface ShowType extends Auditable {
|
|
1056
|
+
id: number;
|
|
1057
|
+
name: string;
|
|
1058
|
+
slug: string;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
interface ShowTypesResponse {
|
|
1062
|
+
statusCode: number;
|
|
1063
|
+
data: {
|
|
1064
|
+
types: ShowType[];
|
|
1065
|
+
total: number;
|
|
1066
|
+
};
|
|
1067
|
+
message: string;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
interface ShowTypeResponse {
|
|
1071
|
+
statusCode: number;
|
|
1072
|
+
data: ShowType;
|
|
1073
|
+
message: string;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
interface Show extends Auditable {
|
|
1077
|
+
id: number;
|
|
1078
|
+
title: string;
|
|
1079
|
+
slug: string;
|
|
1080
|
+
description: string;
|
|
1081
|
+
duration_minutes: number | null;
|
|
1082
|
+
type_of_costs: string | null;
|
|
1083
|
+
service_fee: number | null;
|
|
1084
|
+
show_type_id?: number | null;
|
|
1085
|
+
show_type?: ShowType | null;
|
|
1086
|
+
pulep: string | null;
|
|
1087
|
+
minimum_age: number | null;
|
|
1088
|
+
show_gender?: ShowGender | null;
|
|
1089
|
+
show_gender_id: number | null;
|
|
1090
|
+
show_category?: ShowCategory | null;
|
|
1091
|
+
show_category_id: number | null;
|
|
1092
|
+
default_room_map?: RoomMap | null;
|
|
1093
|
+
default_room_map_id: number | null;
|
|
1094
|
+
is_published: boolean;
|
|
1095
|
+
images: ShowImage[];
|
|
1096
|
+
terms_and_conditions: string | null;
|
|
1097
|
+
performances_quantity?: number;
|
|
1098
|
+
performances?: Performance[];
|
|
1099
|
+
next_performance?: Performance;
|
|
1100
|
+
days_of_week?: number[];
|
|
1101
|
+
unique_start_times?: string[];
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
interface FindAllPerformancesParams {
|
|
1105
|
+
roomMapId?: number;
|
|
1106
|
+
showId?: number;
|
|
1107
|
+
hallId?: number;
|
|
1108
|
+
page?: number;
|
|
1109
|
+
search?: string;
|
|
1110
|
+
limit?: number;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
interface PerformanceBookingDataResponse {
|
|
1114
|
+
statusCode: number;
|
|
1115
|
+
data: {
|
|
1116
|
+
performance: Performance;
|
|
1117
|
+
room_map: RoomMap;
|
|
1118
|
+
show: Show;
|
|
1119
|
+
tickets: PerformanceTicket[];
|
|
1120
|
+
};
|
|
1121
|
+
message: string;
|
|
883
1122
|
}
|
|
884
1123
|
|
|
885
1124
|
interface PerformanceResponse {
|
|
@@ -888,6 +1127,18 @@ interface PerformanceResponse {
|
|
|
888
1127
|
message: string;
|
|
889
1128
|
}
|
|
890
1129
|
|
|
1130
|
+
interface PerformanceAvailableDay {
|
|
1131
|
+
date: string;
|
|
1132
|
+
count: number;
|
|
1133
|
+
}
|
|
1134
|
+
interface PerformancesAvailableDaysResponse {
|
|
1135
|
+
statusCode: number;
|
|
1136
|
+
data: {
|
|
1137
|
+
days: PerformanceAvailableDay[];
|
|
1138
|
+
};
|
|
1139
|
+
message: string;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
891
1142
|
interface PerformancesResponseInterface {
|
|
892
1143
|
statusCode: number;
|
|
893
1144
|
data: {
|
|
@@ -897,7 +1148,7 @@ interface PerformancesResponseInterface {
|
|
|
897
1148
|
message: string;
|
|
898
1149
|
}
|
|
899
1150
|
|
|
900
|
-
interface OrderItem {
|
|
1151
|
+
interface OrderItem extends Auditable {
|
|
901
1152
|
id: number;
|
|
902
1153
|
order: Order;
|
|
903
1154
|
item_type: OrderItemType;
|
|
@@ -906,14 +1157,11 @@ interface OrderItem {
|
|
|
906
1157
|
quantity: number;
|
|
907
1158
|
unit_price: number;
|
|
908
1159
|
normal_price: number;
|
|
909
|
-
discounted_price: number;
|
|
1160
|
+
discounted_price: number | null;
|
|
910
1161
|
ticket_id?: number;
|
|
911
1162
|
ticket_uuid?: string;
|
|
1163
|
+
ticket?: PerformanceTicket;
|
|
912
1164
|
item: Show | Product;
|
|
913
|
-
created_at: Date;
|
|
914
|
-
updated_at: Date;
|
|
915
|
-
created_by: number;
|
|
916
|
-
updated_by: number;
|
|
917
1165
|
}
|
|
918
1166
|
|
|
919
1167
|
interface Coupon extends Auditable {
|
|
@@ -940,7 +1188,7 @@ interface Coupon extends Auditable {
|
|
|
940
1188
|
customers?: Customer[];
|
|
941
1189
|
}
|
|
942
1190
|
|
|
943
|
-
interface CorporateBond {
|
|
1191
|
+
interface CorporateBond extends Auditable {
|
|
944
1192
|
id: number;
|
|
945
1193
|
name: string;
|
|
946
1194
|
description?: string;
|
|
@@ -950,11 +1198,13 @@ interface CorporateBond {
|
|
|
950
1198
|
quantity: number;
|
|
951
1199
|
status: CorporateBondStatus;
|
|
952
1200
|
value: number;
|
|
1201
|
+
purchase_value: number;
|
|
1202
|
+
buyer_customer_id: number | null;
|
|
1203
|
+
buyer: Customer | null;
|
|
1204
|
+
order_id: number | null;
|
|
1205
|
+
order: Order | null;
|
|
1206
|
+
payment_method?: PaymentMethod;
|
|
953
1207
|
codes: CorporateBondCode[];
|
|
954
|
-
created_at: Date;
|
|
955
|
-
updated_at: Date;
|
|
956
|
-
created_by: number;
|
|
957
|
-
updated_by: number;
|
|
958
1208
|
}
|
|
959
1209
|
|
|
960
1210
|
interface CorporateBondCode {
|
|
@@ -963,59 +1213,214 @@ interface CorporateBondCode {
|
|
|
963
1213
|
corporate_bond_id: number;
|
|
964
1214
|
code: string;
|
|
965
1215
|
is_used: boolean;
|
|
1216
|
+
status: CorporateBondStatus;
|
|
966
1217
|
used_at: Date | null;
|
|
967
1218
|
created_at: Date;
|
|
968
1219
|
}
|
|
969
1220
|
|
|
970
|
-
interface CorporateBondResponse {
|
|
971
|
-
statusCode: number;
|
|
972
|
-
data: CorporateBond;
|
|
973
|
-
message: string;
|
|
1221
|
+
interface CorporateBondResponse {
|
|
1222
|
+
statusCode: number;
|
|
1223
|
+
data: CorporateBond;
|
|
1224
|
+
message: string;
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
interface ValidateCorporateBondResponse {
|
|
1228
|
+
data: {
|
|
1229
|
+
valid: boolean;
|
|
1230
|
+
message: string;
|
|
1231
|
+
code: string;
|
|
1232
|
+
bond?: CorporateBond;
|
|
1233
|
+
};
|
|
1234
|
+
message: string;
|
|
1235
|
+
statusCode: number;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
interface GiftBondImage {
|
|
1239
|
+
id: number;
|
|
1240
|
+
path: string;
|
|
1241
|
+
full_url: string;
|
|
1242
|
+
original_name: string;
|
|
1243
|
+
extension: string;
|
|
1244
|
+
size: number;
|
|
1245
|
+
mime_type: string;
|
|
1246
|
+
width: number;
|
|
1247
|
+
height: number;
|
|
1248
|
+
is_featured: boolean;
|
|
1249
|
+
gift_bond_id: number;
|
|
1250
|
+
gift_bond: GiftBond;
|
|
1251
|
+
created_at: Date;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
interface GiftBond extends Auditable {
|
|
1255
|
+
id: number;
|
|
1256
|
+
name: string;
|
|
1257
|
+
description?: string;
|
|
1258
|
+
slug?: string;
|
|
1259
|
+
status: GiftBondStatus;
|
|
1260
|
+
value: number;
|
|
1261
|
+
duration_days: number;
|
|
1262
|
+
page_content?: string;
|
|
1263
|
+
purchases_total?: number;
|
|
1264
|
+
purchases_redeemed?: number;
|
|
1265
|
+
images?: GiftBondImage[];
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
interface GiftBondResponse {
|
|
1269
|
+
statusCode: number;
|
|
1270
|
+
data: GiftBond;
|
|
1271
|
+
message: string;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
interface GiftBondsResponse {
|
|
1275
|
+
statusCode: number;
|
|
1276
|
+
data: {
|
|
1277
|
+
gift_bonds: GiftBond[];
|
|
1278
|
+
total: number;
|
|
1279
|
+
};
|
|
1280
|
+
message: string;
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
interface GiftBondPurchase extends Auditable {
|
|
1284
|
+
id: number;
|
|
1285
|
+
code: string;
|
|
1286
|
+
original_value: number;
|
|
1287
|
+
used_value: number | null;
|
|
1288
|
+
lost_value: number | null;
|
|
1289
|
+
beneficiary_email: string;
|
|
1290
|
+
beneficiary: Customer | null;
|
|
1291
|
+
personalized_message: string | null;
|
|
1292
|
+
status: GiftBondPurchaseStatus;
|
|
1293
|
+
purchased_at: string;
|
|
1294
|
+
expires_at: string;
|
|
1295
|
+
redeemed_at: string | null;
|
|
1296
|
+
gift_bond?: GiftBond;
|
|
1297
|
+
gift_bond_id: number;
|
|
1298
|
+
buyer_customer_id: number;
|
|
1299
|
+
buyer: Customer;
|
|
1300
|
+
order: Order | null;
|
|
1301
|
+
order_id: number;
|
|
1302
|
+
redemption_order_id: number | null;
|
|
1303
|
+
redemption_order: Order | null;
|
|
974
1304
|
}
|
|
975
1305
|
|
|
976
|
-
interface
|
|
1306
|
+
interface ValidateGiftBondResponse {
|
|
977
1307
|
data: {
|
|
978
1308
|
valid: boolean;
|
|
979
1309
|
message: string;
|
|
980
1310
|
code: string;
|
|
981
|
-
bond?:
|
|
1311
|
+
bond?: GiftBondPurchase;
|
|
982
1312
|
};
|
|
1313
|
+
statusCode: number;
|
|
1314
|
+
message: string;
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
interface GiftBondPurchaseResponse {
|
|
1318
|
+
statusCode: number;
|
|
1319
|
+
data: GiftBondPurchase;
|
|
983
1320
|
message: string;
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
interface GiftBondPurchasesResponse {
|
|
984
1324
|
statusCode: number;
|
|
1325
|
+
data: {
|
|
1326
|
+
items: GiftBondPurchase[];
|
|
1327
|
+
total: number;
|
|
1328
|
+
};
|
|
1329
|
+
message: string;
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
interface Transaction extends Auditable {
|
|
1333
|
+
id: number;
|
|
1334
|
+
status: TransactionStatus;
|
|
1335
|
+
amount: number;
|
|
1336
|
+
currency: string;
|
|
1337
|
+
payment_gateway: string;
|
|
1338
|
+
gateway_transaction_id: string;
|
|
1339
|
+
gateway_response: any;
|
|
1340
|
+
order: Order;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
interface OrderBillingInfo {
|
|
1344
|
+
first_name: string;
|
|
1345
|
+
last_name: string;
|
|
1346
|
+
email: string;
|
|
1347
|
+
mobile: string;
|
|
1348
|
+
document_type: string;
|
|
1349
|
+
document_number: string;
|
|
1350
|
+
address: string;
|
|
1351
|
+
city_id: number;
|
|
1352
|
+
postal_code?: string;
|
|
1353
|
+
address_notes?: string;
|
|
1354
|
+
payment_method: PaymentMethod;
|
|
1355
|
+
terms_accepted: boolean;
|
|
1356
|
+
data_processing_accepted: boolean;
|
|
1357
|
+
comments?: string;
|
|
1358
|
+
products?: Array<{
|
|
1359
|
+
id: number;
|
|
1360
|
+
quantity: number;
|
|
1361
|
+
}>;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
interface OrderShowSnapshot {
|
|
1365
|
+
id: number;
|
|
1366
|
+
title: string;
|
|
1367
|
+
description: string | null;
|
|
1368
|
+
service_fee: number | null;
|
|
985
1369
|
}
|
|
986
1370
|
|
|
987
|
-
interface
|
|
1371
|
+
interface OrderPerformanceSnapshot {
|
|
1372
|
+
id: number;
|
|
1373
|
+
start_time: Performance['start_time'];
|
|
1374
|
+
end_time: Performance['end_time'];
|
|
1375
|
+
published: boolean;
|
|
1376
|
+
status: PerformanceStatus;
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
interface Order extends Auditable {
|
|
988
1380
|
id: number;
|
|
989
1381
|
uuid: string;
|
|
990
|
-
|
|
1382
|
+
customer_id: number | null;
|
|
1383
|
+
customer: Customer | null;
|
|
991
1384
|
customer_name?: string;
|
|
992
1385
|
customer_email?: string;
|
|
993
1386
|
order_items: OrderItem[];
|
|
994
1387
|
order_items_quantity?: number;
|
|
995
|
-
|
|
1388
|
+
transactions: Transaction[];
|
|
1389
|
+
sub_total: number;
|
|
1390
|
+
discount_amount: number | null;
|
|
996
1391
|
total: number;
|
|
1392
|
+
sub_total_discounted: number | null;
|
|
997
1393
|
total_discounted: number;
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
coupon: Coupon;
|
|
1003
|
-
coupon_snapshot: Record<string, any>;
|
|
1004
|
-
corporate_bond_code: CorporateBondCode;
|
|
1005
|
-
corporate_bond_code_snapshot: Record<string, any>;
|
|
1394
|
+
service_fee: number | null;
|
|
1395
|
+
service_fee_discounted: number | null;
|
|
1396
|
+
coupon: Coupon | null;
|
|
1397
|
+
coupon_snapshot: Record<string, any> | null;
|
|
1006
1398
|
status: OrderStatus;
|
|
1007
|
-
show_snapshot:
|
|
1008
|
-
performance_snapshot:
|
|
1009
|
-
|
|
1010
|
-
updated_at: Date;
|
|
1011
|
-
payment_method: string;
|
|
1399
|
+
show_snapshot: OrderShowSnapshot | null;
|
|
1400
|
+
performance_snapshot: OrderPerformanceSnapshot | null;
|
|
1401
|
+
payment_method: PaymentMethod | null;
|
|
1012
1402
|
terms_accepted: boolean;
|
|
1013
1403
|
data_processing_accepted: boolean;
|
|
1014
|
-
billing_info:
|
|
1015
|
-
|
|
1016
|
-
|
|
1404
|
+
billing_info: OrderBillingInfo | null;
|
|
1405
|
+
corporate_bond_code_snapshot: Record<string, any> | null;
|
|
1406
|
+
gift_bond_snapshot: Record<string, any> | null;
|
|
1407
|
+
corporate_bond_code: CorporateBondCode | null;
|
|
1408
|
+
corporate_bond_code_id: number | null;
|
|
1409
|
+
gift_bond: GiftBond | null;
|
|
1410
|
+
gift_bond_id: number | null;
|
|
1411
|
+
/** Snapshot de la Tarjeta VIP usada como método de pago (VIP_BALANCE). */
|
|
1412
|
+
vip_snapshot: Record<string, any> | null;
|
|
1413
|
+
vip_card_id: number | null;
|
|
1414
|
+
/** Snapshot del Abono (subscription) usado para redimir la boleta. */
|
|
1415
|
+
subscription_snapshot: Record<string, any> | null;
|
|
1416
|
+
subscription_id: number | null;
|
|
1417
|
+
comments: string | null;
|
|
1418
|
+
address_notes: string | null;
|
|
1419
|
+
mercado_pago_preference_id: string;
|
|
1017
1420
|
created_by: number;
|
|
1421
|
+
created_by_type: CreatorType;
|
|
1018
1422
|
updated_by: number;
|
|
1423
|
+
updated_by_type: CreatorType;
|
|
1019
1424
|
}
|
|
1020
1425
|
|
|
1021
1426
|
interface OrderResponse {
|
|
@@ -1033,7 +1438,15 @@ interface OrdersResponse {
|
|
|
1033
1438
|
message: string;
|
|
1034
1439
|
}
|
|
1035
1440
|
|
|
1036
|
-
interface
|
|
1441
|
+
interface MercadoPagoPreference {
|
|
1442
|
+
data: {
|
|
1443
|
+
id: string;
|
|
1444
|
+
init_point: string;
|
|
1445
|
+
sandbox_init_point: string;
|
|
1446
|
+
};
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
interface PerformanceTicket extends Auditable {
|
|
1037
1450
|
id: number;
|
|
1038
1451
|
uuid: string;
|
|
1039
1452
|
is_accessible: boolean;
|
|
@@ -1047,35 +1460,181 @@ interface PerformanceTicket {
|
|
|
1047
1460
|
presale_price: number | null;
|
|
1048
1461
|
status: PerformanceTicketStatus;
|
|
1049
1462
|
reserved_until: Date | null;
|
|
1463
|
+
reserved_by_type: CreatorType | null;
|
|
1464
|
+
reserved_by: number | null;
|
|
1465
|
+
reserved_by_admin: Admin | null;
|
|
1466
|
+
reserved_by_customer: number | null;
|
|
1467
|
+
reserved_customer: Customer | null;
|
|
1468
|
+
order: Order | null;
|
|
1050
1469
|
order_id: number | null;
|
|
1051
1470
|
customer_id: number | null;
|
|
1052
1471
|
checked_in: boolean;
|
|
1053
1472
|
checked_in_at: Date | null;
|
|
1473
|
+
checked_in_by: number | null;
|
|
1474
|
+
checked_in_by_admin: Admin | null;
|
|
1054
1475
|
order_items: OrderItem[];
|
|
1055
1476
|
element_qty?: number;
|
|
1056
|
-
|
|
1057
|
-
|
|
1477
|
+
blocked_at: Date | null;
|
|
1478
|
+
blocked_by: number | null;
|
|
1479
|
+
blocked_by_admin: Admin | null;
|
|
1058
1480
|
}
|
|
1059
1481
|
|
|
1060
|
-
interface
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1482
|
+
interface TicketMapSeatPosition {
|
|
1483
|
+
rowIndex: number;
|
|
1484
|
+
colIndex: number;
|
|
1485
|
+
seatLabel: string;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
interface TicketMapTableChairPosition {
|
|
1489
|
+
index: number;
|
|
1490
|
+
angle: number;
|
|
1491
|
+
x: number;
|
|
1492
|
+
y: number;
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
interface ElementRenderData {
|
|
1496
|
+
elementId: number;
|
|
1497
|
+
hallFloorId: number | null;
|
|
1498
|
+
type: RoomMapElementType;
|
|
1499
|
+
shapeConfig: Record<string, any>;
|
|
1500
|
+
tickets: PerformanceTicket[];
|
|
1501
|
+
ticketByNumeration: Map<string, PerformanceTicket>;
|
|
1502
|
+
elementName: string;
|
|
1503
|
+
seatPositions?: TicketMapSeatPosition[][];
|
|
1504
|
+
chairPositions?: TicketMapTableChairPosition[];
|
|
1505
|
+
zoneCapacity?: number;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
interface TicketMapTooltipData {
|
|
1509
|
+
x: number;
|
|
1510
|
+
y: number;
|
|
1511
|
+
elementName: string;
|
|
1512
|
+
seatLabel: string | null;
|
|
1513
|
+
price: number;
|
|
1514
|
+
status: PerformanceTicketStatus;
|
|
1515
|
+
statusLabel: string;
|
|
1516
|
+
statusColor: string;
|
|
1517
|
+
isSelected: boolean;
|
|
1518
|
+
ticketId: number;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1521
|
+
interface TicketMapZoneQuantityState {
|
|
1522
|
+
elementId: number;
|
|
1523
|
+
selectedCount: number;
|
|
1524
|
+
maxCapacity: number;
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
interface ReservePerformanceDto {
|
|
1528
|
+
ticket_ids: number[];
|
|
1529
|
+
products?: {
|
|
1530
|
+
id: number;
|
|
1531
|
+
quantity: number;
|
|
1532
|
+
}[];
|
|
1533
|
+
coupon_code?: string;
|
|
1534
|
+
gift_bond_code?: string;
|
|
1535
|
+
corporate_bond_code?: string;
|
|
1536
|
+
payment_method?: string;
|
|
1537
|
+
billing?: {
|
|
1538
|
+
first_name: string;
|
|
1539
|
+
last_name: string;
|
|
1540
|
+
email: string;
|
|
1541
|
+
mobile: string;
|
|
1542
|
+
document_type: string;
|
|
1543
|
+
document_number: string;
|
|
1544
|
+
address: string;
|
|
1545
|
+
city_id: number;
|
|
1546
|
+
postal_code?: string;
|
|
1547
|
+
address_notes?: string;
|
|
1548
|
+
terms_accepted: boolean;
|
|
1549
|
+
data_processing_accepted: boolean;
|
|
1550
|
+
comments?: string;
|
|
1067
1551
|
};
|
|
1068
|
-
message: string;
|
|
1069
1552
|
}
|
|
1070
1553
|
|
|
1071
|
-
interface
|
|
1072
|
-
|
|
1073
|
-
|
|
1554
|
+
interface TicketMapZoomConfig {
|
|
1555
|
+
minZoom: number;
|
|
1556
|
+
maxZoom: number;
|
|
1557
|
+
zoomStep: number;
|
|
1558
|
+
scaleBy: number;
|
|
1074
1559
|
}
|
|
1075
|
-
|
|
1560
|
+
|
|
1561
|
+
interface HallFloorOption {
|
|
1562
|
+
id: number | null;
|
|
1563
|
+
name: string;
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
declare enum SelectedDiscountCardType {
|
|
1567
|
+
COUPON = "COUPON",
|
|
1568
|
+
CORPORATE_BOND = "CORPORATE_BOND",
|
|
1569
|
+
GIFT_BOND = "GIFT_BOND",
|
|
1570
|
+
VIP = "VIP",
|
|
1571
|
+
SUBSCRIPTION = "SUBSCRIPTION"
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
interface SelectedDiscountCard {
|
|
1575
|
+
name: string;
|
|
1576
|
+
type: SelectedDiscountCardType;
|
|
1577
|
+
value: number;
|
|
1578
|
+
discountType: 'percentage' | 'fixed';
|
|
1579
|
+
/**
|
|
1580
|
+
* Si el descuento seleccionado exonera la tarifa de servicio (Tarjeta
|
|
1581
|
+
* VIP o Abono, según su `service_fee_exempt`).
|
|
1582
|
+
*/
|
|
1583
|
+
serviceFeeExempt?: boolean;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
/** Forma compacta de un ticket recibida por SSE (ver
|
|
1587
|
+
* SeatAvailabilitySseService) — sin relaciones, solo lo necesario para
|
|
1588
|
+
* repintar el mapa y validar disponibilidad en el cliente. */
|
|
1589
|
+
interface SeatStatusUpdate {
|
|
1590
|
+
id: number;
|
|
1591
|
+
status: PerformanceTicketStatus;
|
|
1592
|
+
room_map_element_id: number;
|
|
1593
|
+
reserved_until: Date | null;
|
|
1594
|
+
}
|
|
1595
|
+
type SeatEventMessage = {
|
|
1596
|
+
type: 'snapshot';
|
|
1597
|
+
performance_id: number;
|
|
1598
|
+
tickets: SeatStatusUpdate[];
|
|
1599
|
+
ts: number;
|
|
1600
|
+
} | {
|
|
1601
|
+
type: 'heartbeat';
|
|
1602
|
+
ts: number;
|
|
1603
|
+
};
|
|
1604
|
+
|
|
1605
|
+
interface AdmissionStatus {
|
|
1606
|
+
active: boolean;
|
|
1607
|
+
position: number | null;
|
|
1608
|
+
}
|
|
1609
|
+
interface AdmissionJoinResponse extends AdmissionStatus {
|
|
1610
|
+
ticket: string;
|
|
1611
|
+
expires_in: number;
|
|
1612
|
+
}
|
|
1613
|
+
type AdmissionEventMessage = ({
|
|
1614
|
+
type: 'status';
|
|
1615
|
+
} & AdmissionStatus & {
|
|
1616
|
+
ts: number;
|
|
1617
|
+
}) | {
|
|
1618
|
+
type: 'heartbeat';
|
|
1619
|
+
ts: number;
|
|
1620
|
+
};
|
|
1621
|
+
|
|
1622
|
+
interface FetchShowsParams extends CommonFetchAllParams {
|
|
1623
|
+
date?: string;
|
|
1624
|
+
sort_by?: 'show.id' | 'show.created_at' | 'show.title' | 'show.slug' | 'show.type_of_costs' | 'show.pulep' | 'show_category.name' | 'show_gender.name';
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
interface ShowResponse {
|
|
1628
|
+
statusCode: number;
|
|
1629
|
+
data: Show;
|
|
1630
|
+
message: string;
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
interface ShowsResponseInterface {
|
|
1076
1634
|
statusCode: number;
|
|
1077
1635
|
data: {
|
|
1078
|
-
|
|
1636
|
+
shows: Show[];
|
|
1637
|
+
total: number;
|
|
1079
1638
|
};
|
|
1080
1639
|
message: string;
|
|
1081
1640
|
}
|
|
@@ -1132,14 +1691,26 @@ interface FetchDailyPerformancesParams {
|
|
|
1132
1691
|
limit?: number;
|
|
1133
1692
|
}
|
|
1134
1693
|
|
|
1694
|
+
interface FetchProductsParams extends CommonFetchAllParams {
|
|
1695
|
+
name?: string;
|
|
1696
|
+
category_id?: number;
|
|
1697
|
+
tag_id?: number;
|
|
1698
|
+
type_id?: number;
|
|
1699
|
+
min_price?: number;
|
|
1700
|
+
max_price?: number;
|
|
1701
|
+
min_stock?: number;
|
|
1702
|
+
max_stock?: number;
|
|
1703
|
+
sort_by?: 'product.id' | 'product.name' | 'product.price' | 'product.stock_quantity' | 'product.slug' | 'product.sku' | 'product.created_at' | 'category.name' | 'tag.name' | 'type.name';
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1135
1706
|
interface ProductResponse {
|
|
1136
1707
|
statusCode: number;
|
|
1137
1708
|
data: Product;
|
|
1138
1709
|
message: string;
|
|
1139
1710
|
}
|
|
1140
1711
|
|
|
1141
|
-
interface ProductTaxonomy {
|
|
1142
|
-
id:
|
|
1712
|
+
interface ProductTaxonomy extends Auditable {
|
|
1713
|
+
id: number;
|
|
1143
1714
|
name: string;
|
|
1144
1715
|
slug: string;
|
|
1145
1716
|
selected?: boolean;
|
|
@@ -1179,82 +1750,302 @@ interface PriceZonesResponseInterface {
|
|
|
1179
1750
|
}
|
|
1180
1751
|
|
|
1181
1752
|
interface FindAllPriceZoneParams {
|
|
1182
|
-
|
|
1753
|
+
room_map_id?: number;
|
|
1754
|
+
show_ids?: number[];
|
|
1183
1755
|
page?: number;
|
|
1184
1756
|
search?: string;
|
|
1185
1757
|
limit?: number;
|
|
1186
1758
|
}
|
|
1187
1759
|
|
|
1188
|
-
interface
|
|
1760
|
+
interface CouponResponse {
|
|
1761
|
+
statusCode: number;
|
|
1762
|
+
data: Coupon;
|
|
1763
|
+
message: string;
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
interface ValidateCouponResponse {
|
|
1767
|
+
data: {
|
|
1768
|
+
coupon: Coupon;
|
|
1769
|
+
message: string;
|
|
1770
|
+
};
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
interface RecentOrder {
|
|
1189
1774
|
id: number;
|
|
1775
|
+
customer_name: string;
|
|
1776
|
+
event: string;
|
|
1777
|
+
total: number;
|
|
1778
|
+
status: string;
|
|
1190
1779
|
uuid: string;
|
|
1780
|
+
}
|
|
1781
|
+
|
|
1782
|
+
interface RecentRoomMap {
|
|
1783
|
+
id: number;
|
|
1191
1784
|
name: string;
|
|
1192
|
-
|
|
1193
|
-
status: GiftBondStatus;
|
|
1194
|
-
value: number;
|
|
1195
|
-
customer: Customer;
|
|
1196
|
-
customer_id: number;
|
|
1785
|
+
capacity: number;
|
|
1197
1786
|
created_at: Date;
|
|
1198
1787
|
updated_at: Date;
|
|
1199
|
-
created_by: number;
|
|
1200
|
-
updated_by: number;
|
|
1201
1788
|
}
|
|
1202
1789
|
|
|
1203
|
-
interface
|
|
1790
|
+
interface QrTokenData {
|
|
1791
|
+
token: string;
|
|
1792
|
+
expires_at: string;
|
|
1793
|
+
refresh_in: number;
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
interface QrTokenResponse {
|
|
1204
1797
|
statusCode: number;
|
|
1205
|
-
data:
|
|
1798
|
+
data: QrTokenData;
|
|
1206
1799
|
message: string;
|
|
1207
1800
|
}
|
|
1208
1801
|
|
|
1209
|
-
interface
|
|
1210
|
-
|
|
1802
|
+
interface VipCategorySnapshot {
|
|
1803
|
+
membership_id: number;
|
|
1804
|
+
name: string;
|
|
1805
|
+
discount_percentage: number;
|
|
1806
|
+
service_fee_exempt: boolean;
|
|
1807
|
+
applicable_show_ids: number[] | null;
|
|
1808
|
+
excluded_show_ids: number[] | null;
|
|
1809
|
+
duration_days: number;
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
interface VipCard extends Auditable {
|
|
1813
|
+
id: number;
|
|
1814
|
+
uuid: string;
|
|
1815
|
+
customer: Customer;
|
|
1816
|
+
customer_id: number;
|
|
1817
|
+
membership: {
|
|
1818
|
+
id: number;
|
|
1819
|
+
name: string;
|
|
1820
|
+
} | null;
|
|
1821
|
+
membership_id: number;
|
|
1822
|
+
category_snapshot: VipCategorySnapshot;
|
|
1823
|
+
balance: number;
|
|
1824
|
+
status: VipCardStatus;
|
|
1825
|
+
activated_at: string | null;
|
|
1826
|
+
last_activity_at: string | null;
|
|
1827
|
+
expires_at: string | null;
|
|
1828
|
+
last_low_balance_alert_at: string | null;
|
|
1829
|
+
last_expiry_alert_at: string | null;
|
|
1830
|
+
}
|
|
1831
|
+
|
|
1832
|
+
interface VipTransaction {
|
|
1833
|
+
id: number;
|
|
1834
|
+
uuid: string;
|
|
1835
|
+
vip_card_id: number;
|
|
1836
|
+
type: VipTransactionType;
|
|
1837
|
+
amount: number;
|
|
1838
|
+
balance_before: number;
|
|
1839
|
+
balance_after: number;
|
|
1840
|
+
order: Order | null;
|
|
1841
|
+
order_id: number | null;
|
|
1842
|
+
description: string | null;
|
|
1843
|
+
created_at: string;
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
interface VipCardResponse {
|
|
1847
|
+
data: VipCard;
|
|
1848
|
+
}
|
|
1849
|
+
interface VipCardsResponse {
|
|
1211
1850
|
data: {
|
|
1212
|
-
|
|
1851
|
+
vip_cards: VipCard[];
|
|
1213
1852
|
total: number;
|
|
1214
1853
|
};
|
|
1215
|
-
message: string;
|
|
1216
1854
|
}
|
|
1217
|
-
|
|
1218
|
-
interface ValidateGiftBondResponse {
|
|
1855
|
+
interface VipTransactionsResponse {
|
|
1219
1856
|
data: {
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
code: string;
|
|
1223
|
-
bond?: GiftBond;
|
|
1857
|
+
transactions: VipTransaction[];
|
|
1858
|
+
total: number;
|
|
1224
1859
|
};
|
|
1225
|
-
|
|
1226
|
-
|
|
1860
|
+
}
|
|
1861
|
+
interface VipOrderResponse {
|
|
1862
|
+
data: Order;
|
|
1227
1863
|
}
|
|
1228
1864
|
|
|
1229
|
-
interface
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1865
|
+
interface Membership extends Auditable {
|
|
1866
|
+
id: number;
|
|
1867
|
+
name: string;
|
|
1868
|
+
description: string;
|
|
1869
|
+
benefits: string[] | null;
|
|
1870
|
+
price: number;
|
|
1871
|
+
duration_days: number;
|
|
1872
|
+
min_recharge: number;
|
|
1873
|
+
status: MembershipStatus;
|
|
1874
|
+
discount_percentage: number;
|
|
1875
|
+
service_fee_exempt: boolean;
|
|
1876
|
+
applicable_show_ids: number[] | null;
|
|
1877
|
+
excluded_show_ids: number[] | null;
|
|
1233
1878
|
}
|
|
1234
1879
|
|
|
1235
|
-
interface
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1880
|
+
interface FetchVipCardsParams extends CommonFetchAllParams {
|
|
1881
|
+
status?: VipCardStatus;
|
|
1882
|
+
membership_id?: number;
|
|
1883
|
+
customer_id?: number;
|
|
1884
|
+
sort_by?: 'vip_card.id' | 'vip_card.uuid' | 'vip_card.customer_id' | 'vip_card.membership_id' | 'vip_card.balance' | 'vip_card.status' | 'vip_card.activated_at' | 'vip_card.last_activity_at' | 'vip_card.expires_at' | 'vip_card.last_low_balance_alert_at' | 'vip_card.last_expiry_alert_at' | 'vip_card.created_at' | 'vip_card.updated_at';
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
interface ActivateVipCardParams {
|
|
1888
|
+
customer_id: number;
|
|
1889
|
+
membership_id: number;
|
|
1890
|
+
amount: number;
|
|
1891
|
+
payment_method?: string | null;
|
|
1892
|
+
terms_accepted: boolean;
|
|
1893
|
+
data_processing_accepted: boolean;
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
interface VipRechargeConfirmPayload {
|
|
1897
|
+
amount: number;
|
|
1898
|
+
payment_method: string;
|
|
1899
|
+
terms_accepted: boolean;
|
|
1900
|
+
data_processing_accepted: boolean;
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
declare const DOCUMENT_TYPES_OPTIONS: SelectOption[];
|
|
1904
|
+
|
|
1905
|
+
declare const PAYMENT_METHODS_OPTIONS: SelectOption[];
|
|
1906
|
+
declare const ORDER_STATUS_COLORS: Record<OrderStatus, {
|
|
1907
|
+
text: string;
|
|
1908
|
+
bg: string;
|
|
1909
|
+
}>;
|
|
1910
|
+
declare const ORDER_ITEM_TYPES_COLORS: Record<OrderItemType, {
|
|
1911
|
+
text: string;
|
|
1912
|
+
bg: string;
|
|
1913
|
+
}>;
|
|
1914
|
+
declare const ORDER_DISCOUNT_COLORS: Record<string, {
|
|
1915
|
+
text: string;
|
|
1916
|
+
bg: string;
|
|
1917
|
+
}>;
|
|
1918
|
+
declare const TRANSACTION_STATUS_COLORS: Record<TransactionStatus, {
|
|
1919
|
+
text: string;
|
|
1920
|
+
bg: string;
|
|
1921
|
+
}>;
|
|
1922
|
+
|
|
1923
|
+
declare const PERFORMANCE_TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, {
|
|
1924
|
+
text: string;
|
|
1925
|
+
bg: string;
|
|
1926
|
+
}>;
|
|
1927
|
+
declare const PERFORMANCE_STATUS_COLORS: Record<PerformanceStatus, {
|
|
1928
|
+
text: string;
|
|
1929
|
+
bg: string;
|
|
1930
|
+
}>;
|
|
1931
|
+
|
|
1932
|
+
declare const TICKET_MAP_LAST_TICKETS_LIMIT = 10;
|
|
1933
|
+
declare const TICKET_ELEMENT_TYPES: RoomMapElementType[];
|
|
1934
|
+
declare const DEFAULT_STAGE_CONFIG: {
|
|
1935
|
+
[x: string]: any;
|
|
1936
|
+
};
|
|
1937
|
+
declare const TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, string>;
|
|
1938
|
+
declare const TICKET_STATUS_FILLS: Record<PerformanceTicketStatus, string>;
|
|
1939
|
+
declare const TICKET_STATUS_LABELS: Record<PerformanceTicketStatus, string>;
|
|
1940
|
+
declare const TICKET_MAP_GRID_SIZE = 30;
|
|
1941
|
+
declare const TICKET_MAP_TITLE_HEIGHT = 30;
|
|
1942
|
+
declare const TICKET_MAP_FLOOR_HOVER_OPACITY = 0.25;
|
|
1943
|
+
declare const TICKET_MAP_FLOOR_HOVER_FADE_MS = 150;
|
|
1944
|
+
|
|
1945
|
+
interface KonvaShapeConfig {
|
|
1946
|
+
config: ShapeConfig;
|
|
1947
|
+
layer: 'background' | 'elements' | 'foreground' | 'overlay';
|
|
1240
1948
|
}
|
|
1241
1949
|
|
|
1950
|
+
declare function drawRoundedRect(con: Context, shape: Shape, x: number, y: number, width: number, height: number, cornerRadius: number): void;
|
|
1951
|
+
|
|
1952
|
+
declare const generateExitScene: (con: Context, shape: Shape) => void;
|
|
1953
|
+
|
|
1954
|
+
declare const generateHallwayScene: (con: Context, shape: Shape) => void;
|
|
1955
|
+
|
|
1956
|
+
declare const generateProductionAreaScene: (con: Context, shape: Shape) => void;
|
|
1957
|
+
|
|
1958
|
+
declare const generateSeatBlockScene: (con: Context, shape: Shape, numerationConfig?: {
|
|
1959
|
+
start_row_letter: string;
|
|
1960
|
+
row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
|
|
1961
|
+
start_column_number: number;
|
|
1962
|
+
column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
|
|
1963
|
+
}) => void;
|
|
1964
|
+
|
|
1965
|
+
declare const generateStageScene: (con: Context, shape: Shape) => void;
|
|
1966
|
+
|
|
1967
|
+
declare const generateStairScene: (con: Context, shape: Shape) => void;
|
|
1968
|
+
|
|
1969
|
+
declare const generateTableScene: (con: Context, shape: Shape) => void;
|
|
1970
|
+
|
|
1971
|
+
declare const generateUnavailableSpaceScene: (con: Context, shape: Shape) => void;
|
|
1972
|
+
|
|
1973
|
+
declare const generateZoneScene: (con: Context, shape: Shape) => void;
|
|
1974
|
+
|
|
1975
|
+
declare const KONVA_SHAPE_MAPPINGS: Record<RoomMapElementType, KonvaShapeConfig>;
|
|
1976
|
+
|
|
1242
1977
|
declare const getCustomerFullname: (customer: Customer) => string;
|
|
1243
1978
|
|
|
1979
|
+
declare const getAdminFullname: (admin: Admin) => string;
|
|
1980
|
+
|
|
1981
|
+
type OrderDiscountType = 'coupon' | 'corporate_bond' | 'gift_bond' | 'vip' | 'subscription';
|
|
1982
|
+
interface OrderDiscountInfo {
|
|
1983
|
+
type: OrderDiscountType | null;
|
|
1984
|
+
code: string | null;
|
|
1985
|
+
name: string | null;
|
|
1986
|
+
value: number;
|
|
1987
|
+
discountType: 'percentage' | 'fixed' | null;
|
|
1988
|
+
icon: string;
|
|
1989
|
+
/**
|
|
1990
|
+
* true cuando esta fuente de descuento tambien exonero la tarifa de
|
|
1991
|
+
* servicio de la orden (VIP/Abono con `service_fee_exempt`).
|
|
1992
|
+
*/
|
|
1993
|
+
serviceFeeExempt: boolean;
|
|
1994
|
+
}
|
|
1995
|
+
declare function getOrderDiscount(order: Order): OrderDiscountInfo;
|
|
1996
|
+
|
|
1244
1997
|
declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
|
|
1245
1998
|
|
|
1246
1999
|
declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
|
|
1247
2000
|
|
|
2001
|
+
declare const transformUrlParams: (params: any) => URLSearchParams;
|
|
2002
|
+
|
|
1248
2003
|
declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
|
|
1249
|
-
value:
|
|
2004
|
+
value: number;
|
|
1250
2005
|
label: string;
|
|
1251
2006
|
}[];
|
|
1252
2007
|
|
|
2008
|
+
declare function tintColor(hex: string, amount?: number): string;
|
|
2009
|
+
|
|
2010
|
+
declare const drawChairIcon: (con: Context, cx: number, cy: number, size: number) => void;
|
|
2011
|
+
|
|
2012
|
+
declare const drawHappyFace: (con: Context, cx: number, cy: number, size: number) => void;
|
|
2013
|
+
|
|
2014
|
+
declare const drawWheelchairIcon: (con: Context, shape: Shape, cx: number, cy: number, size: number, fillColor?: string, strokeColor?: string) => void;
|
|
2015
|
+
|
|
2016
|
+
declare const numberToLetter: (num: number) => string;
|
|
2017
|
+
|
|
2018
|
+
declare const getItemTypeIcon: (ticket: PerformanceTicket) => string;
|
|
2019
|
+
|
|
2020
|
+
declare const generateSeatBlockTicketScene: (con: Context, shape: Shape, numerationConfig?: {
|
|
2021
|
+
start_row_letter: string;
|
|
2022
|
+
row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
|
|
2023
|
+
start_column_number: number;
|
|
2024
|
+
column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
|
|
2025
|
+
}, ticketStatusMap?: Map<string, PerformanceTicketStatus>) => void;
|
|
2026
|
+
|
|
2027
|
+
declare const generateTableTicketScene: (con: Context, shape: Shape, chairTicketStatuses?: PerformanceTicketStatus[], tableSeats?: RoomMapSeatState[][]) => void;
|
|
2028
|
+
|
|
2029
|
+
declare function processElementsToRenderData(elements: RoomMapElementTemplate[], tickets: PerformanceTicket[], priceZones?: {
|
|
2030
|
+
id: number;
|
|
2031
|
+
color: string;
|
|
2032
|
+
}[]): ElementRenderData[];
|
|
2033
|
+
declare function findTicketAtPosition(renderData: ElementRenderData, relX: number, relY: number): PerformanceTicket | null;
|
|
2034
|
+
declare function findElementAtPosition(renderDataList: ElementRenderData[], stageX: number, stageY: number): {
|
|
2035
|
+
element: ElementRenderData;
|
|
2036
|
+
relX: number;
|
|
2037
|
+
relY: number;
|
|
2038
|
+
} | null;
|
|
2039
|
+
|
|
2040
|
+
declare const ticketCanOpenQr: (order: Order, ticket: PerformanceTicket) => boolean;
|
|
2041
|
+
|
|
1253
2042
|
declare function MinTodayValidator(controlName: string): ValidatorFn;
|
|
1254
2043
|
declare function EndDateGreaterThanStartValidator(startDateControlName: string, endDateControlName: string): ValidatorFn;
|
|
1255
2044
|
|
|
1256
2045
|
declare function MustMatchValidator(controlName: string, matchingControlName: string): ValidatorFn;
|
|
1257
2046
|
|
|
2047
|
+
declare function emailValidator(): ValidatorFn;
|
|
2048
|
+
|
|
1258
2049
|
declare class ApiService {
|
|
1259
2050
|
private http;
|
|
1260
2051
|
private platformId;
|
|
@@ -1265,6 +2056,7 @@ declare class ApiService {
|
|
|
1265
2056
|
private validateContentType;
|
|
1266
2057
|
private handleError;
|
|
1267
2058
|
get<T>(path: string): Observable<T>;
|
|
2059
|
+
getBlob(path: string): Observable<Blob>;
|
|
1268
2060
|
post<T>(path: string, body: any): Observable<T>;
|
|
1269
2061
|
patch<T>(path: string, body: any): Observable<T>;
|
|
1270
2062
|
put<T>(path: string, body: any): Observable<T>;
|
|
@@ -1273,23 +2065,58 @@ declare class ApiService {
|
|
|
1273
2065
|
static ɵprov: i0.ɵɵInjectableDeclaration<ApiService>;
|
|
1274
2066
|
}
|
|
1275
2067
|
|
|
2068
|
+
/**
|
|
2069
|
+
* Shared open/close state for the mobile off-canvas sidebar.
|
|
2070
|
+
* On viewports >= lg the sidebar is always visible (see sidebar-menu.component.html),
|
|
2071
|
+
* so this state only has a visual effect below the `lg` breakpoint.
|
|
2072
|
+
*/
|
|
2073
|
+
declare class SidebarStateService {
|
|
2074
|
+
isMobileOpen: WritableSignal<boolean>;
|
|
2075
|
+
open(): void;
|
|
2076
|
+
close(): void;
|
|
2077
|
+
toggle(): void;
|
|
2078
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarStateService, never>;
|
|
2079
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SidebarStateService>;
|
|
2080
|
+
}
|
|
2081
|
+
|
|
2082
|
+
/**
|
|
2083
|
+
* Deshabilita el zoom del NAVEGADOR (no el zoom interno del mapa de
|
|
2084
|
+
* asientos, que sigue funcionando igual). Se instancia una sola vez —
|
|
2085
|
+
* inyectarlo en el componente raíz de la app alcanza, porque es
|
|
2086
|
+
* `providedIn: 'root'` — y cubre las cuatro formas en que un navegador
|
|
2087
|
+
* deja hacer zoom:
|
|
2088
|
+
*
|
|
2089
|
+
* - Ctrl/Cmd + rueda del mouse (desktop, todos los navegadores).
|
|
2090
|
+
* - Ctrl/Cmd + "+"/"-"/"0" por teclado (desktop, todos los navegadores).
|
|
2091
|
+
* - Gesto de pellizco en trackpad en Safari, que no dispara `wheel` sino
|
|
2092
|
+
* sus propios eventos `gesture*` (no estándar, solo Safari/WebKit).
|
|
2093
|
+
* - Pellizco con dos dedos en pantallas táctiles, como respaldo además
|
|
2094
|
+
* del `user-scalable=no` del viewport (que ya lo bloquea en la mayoría
|
|
2095
|
+
* de los navegadores, pero no en todos de forma consistente).
|
|
2096
|
+
*
|
|
2097
|
+
* No toca el zoom interno de `TicketMapZoomService` (ese es zoom propio de
|
|
2098
|
+
* la app sobre el SVG del mapa, con sus propios botones +/-, y debe seguir
|
|
2099
|
+
* funcionando tal cual).
|
|
2100
|
+
*/
|
|
2101
|
+
declare class BrowserZoomLockService {
|
|
2102
|
+
constructor(platformId: Object);
|
|
2103
|
+
private onWheel;
|
|
2104
|
+
private onKeydown;
|
|
2105
|
+
private onTouchMove;
|
|
2106
|
+
private onGesture;
|
|
2107
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BrowserZoomLockService, never>;
|
|
2108
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BrowserZoomLockService>;
|
|
2109
|
+
}
|
|
2110
|
+
|
|
1276
2111
|
type ToastType = 'success' | 'error' | 'info';
|
|
1277
2112
|
declare class ToastService {
|
|
2113
|
+
private platformId;
|
|
2114
|
+
constructor(platformId: Object);
|
|
1278
2115
|
show(message: string, type?: ToastType): void;
|
|
1279
2116
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
|
|
1280
2117
|
static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
|
|
1281
2118
|
}
|
|
1282
2119
|
|
|
1283
|
-
declare class LoadingModalService {
|
|
1284
|
-
title: WritableSignal<string>;
|
|
1285
|
-
isOpen: WritableSignal<boolean>;
|
|
1286
|
-
get modalIsOpen(): WritableSignal<boolean>;
|
|
1287
|
-
open(title?: string): void;
|
|
1288
|
-
close(): void;
|
|
1289
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LoadingModalService, never>;
|
|
1290
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LoadingModalService>;
|
|
1291
|
-
}
|
|
1292
|
-
|
|
1293
2120
|
declare class DeleteConfirmationService {
|
|
1294
2121
|
title: WritableSignal<string>;
|
|
1295
2122
|
resourceName: WritableSignal<string>;
|
|
@@ -1330,12 +2157,19 @@ declare class DateService {
|
|
|
1330
2157
|
static ɵprov: i0.ɵɵInjectableDeclaration<DateService>;
|
|
1331
2158
|
}
|
|
1332
2159
|
|
|
2160
|
+
interface AdminResponse {
|
|
2161
|
+
statusCode: number;
|
|
2162
|
+
data: Admin;
|
|
2163
|
+
message: string;
|
|
2164
|
+
}
|
|
2165
|
+
|
|
1333
2166
|
declare class AdminService {
|
|
1334
2167
|
private apiService;
|
|
1335
2168
|
constructor(apiService: ApiService);
|
|
1336
|
-
fetchAdmins(
|
|
2169
|
+
fetchAdmins(params: FetchAdminsParams): Observable<AdminsResponse>;
|
|
2170
|
+
fetchOneById(id: number): Observable<AdminResponse>;
|
|
1337
2171
|
deleteOne(id: number): Observable<any>;
|
|
1338
|
-
createOne(data: any): Observable<
|
|
2172
|
+
createOne(data: any): Observable<AdminResponse>;
|
|
1339
2173
|
updateOne(id: number, data: any): Observable<any>;
|
|
1340
2174
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminService, never>;
|
|
1341
2175
|
static ɵprov: i0.ɵɵInjectableDeclaration<AdminService>;
|
|
@@ -1344,7 +2178,7 @@ declare class AdminService {
|
|
|
1344
2178
|
declare class CitiesService {
|
|
1345
2179
|
private apiService;
|
|
1346
2180
|
constructor(apiService: ApiService);
|
|
1347
|
-
fetchCities(
|
|
2181
|
+
fetchCities(params: FetchCitiesParams): Observable<CitiesResponse>;
|
|
1348
2182
|
createOne(data: City): Observable<CityResponse>;
|
|
1349
2183
|
updateOne(id: number, data: City): Observable<CityResponse>;
|
|
1350
2184
|
deleteOne(id: number): Observable<any>;
|
|
@@ -1355,7 +2189,7 @@ declare class CitiesService {
|
|
|
1355
2189
|
declare class CountryService {
|
|
1356
2190
|
private apiService;
|
|
1357
2191
|
constructor(apiService: ApiService);
|
|
1358
|
-
fetchCountries(
|
|
2192
|
+
fetchCountries(params: FetchCountriesParams): Observable<CountriesResponse>;
|
|
1359
2193
|
createOne(data: Country): Observable<CountryResponse>;
|
|
1360
2194
|
updateOne(id: number, data: Country): Observable<CountryResponse>;
|
|
1361
2195
|
deleteOne(id: number): Observable<any>;
|
|
@@ -1366,7 +2200,7 @@ declare class CountryService {
|
|
|
1366
2200
|
declare class StatesService {
|
|
1367
2201
|
private apiService;
|
|
1368
2202
|
constructor(apiService: ApiService);
|
|
1369
|
-
fetchStates(
|
|
2203
|
+
fetchStates(params: FetchStatesParams): Observable<StatesResponse>;
|
|
1370
2204
|
fetchStatesByCountryId(countryId: number): Observable<StatesResponse>;
|
|
1371
2205
|
createOne(data: State): Observable<StateResponse>;
|
|
1372
2206
|
updateOne(id: number, data: State): Observable<StateResponse>;
|
|
@@ -1380,7 +2214,7 @@ declare class PerformanceService {
|
|
|
1380
2214
|
private performancesSubject;
|
|
1381
2215
|
performances$: Observable<Performance[]>;
|
|
1382
2216
|
constructor(apiService: ApiService);
|
|
1383
|
-
fetchPerformances(showId
|
|
2217
|
+
fetchPerformances({ showId, roomMapId, hallId, search, page, limit, }: FindAllPerformancesParams): Observable<PerformancesResponseInterface>;
|
|
1384
2218
|
fetchDailyPerformances({ show_id, search, limit, date, }: FetchDailyPerformancesParams): Observable<DailyPerformancesResponse>;
|
|
1385
2219
|
loadPerformances({ showId, search }?: {
|
|
1386
2220
|
showId?: number;
|
|
@@ -1388,7 +2222,7 @@ declare class PerformanceService {
|
|
|
1388
2222
|
}): void;
|
|
1389
2223
|
getCurrentPerformances(): Performance[];
|
|
1390
2224
|
fetchOneById(id: number): Observable<PerformanceResponse>;
|
|
1391
|
-
fetchOneBookingData(id: number): Observable<PerformanceBookingDataResponse>;
|
|
2225
|
+
fetchOneBookingData(id: number, isAdmin?: boolean): Observable<PerformanceBookingDataResponse>;
|
|
1392
2226
|
fetchAvailableDays(params?: {
|
|
1393
2227
|
show_id?: number;
|
|
1394
2228
|
}): Observable<PerformancesAvailableDaysResponse>;
|
|
@@ -1397,6 +2231,13 @@ declare class PerformanceService {
|
|
|
1397
2231
|
updateOne(id: number, data: any): Observable<PerformanceResponse>;
|
|
1398
2232
|
deleteOne(id: number): Observable<any>;
|
|
1399
2233
|
deleteMany(ids: number[]): Observable<any>;
|
|
2234
|
+
updatePublishedBulk(ids: number[], published: boolean): Observable<{
|
|
2235
|
+
statusCode: number;
|
|
2236
|
+
data: {
|
|
2237
|
+
updated: number[];
|
|
2238
|
+
};
|
|
2239
|
+
message: string;
|
|
2240
|
+
}>;
|
|
1400
2241
|
cancelPerformance(id: number, notifyUsers: boolean): Observable<any>;
|
|
1401
2242
|
publishInvenotry(id: number): Observable<any>;
|
|
1402
2243
|
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceService, never>;
|
|
@@ -1425,7 +2266,7 @@ declare class ShowService {
|
|
|
1425
2266
|
constructor(apiService: ApiService);
|
|
1426
2267
|
loadShows({ page, search }?: FetchShowsParams): void;
|
|
1427
2268
|
getCurrentShows(): Show[];
|
|
1428
|
-
fetchShows(
|
|
2269
|
+
fetchShows(params: FetchShowsParams): Observable<ShowsResponseInterface>;
|
|
1429
2270
|
fetchAvailableShows({ date, limit, page, search, }: FetchShowsParams): Observable<ShowsResponseInterface>;
|
|
1430
2271
|
fetchOneById(id: number): Observable<ShowResponse>;
|
|
1431
2272
|
createOne(data: Show): Observable<ShowResponse>;
|
|
@@ -1446,7 +2287,7 @@ declare class CustomerService {
|
|
|
1446
2287
|
private apiService;
|
|
1447
2288
|
constructor(apiService: ApiService);
|
|
1448
2289
|
createOne(data: Customer): Observable<CustomerResponse>;
|
|
1449
|
-
fetchCustomers(
|
|
2290
|
+
fetchCustomers(params: FetchCustomersParams): Observable<CustomersResponse>;
|
|
1450
2291
|
fetchOneById(id: number): Observable<CustomerResponse>;
|
|
1451
2292
|
updateOne(id: number, data: any): Observable<CustomerResponse>;
|
|
1452
2293
|
deleteOne(id: number): Observable<any>;
|
|
@@ -1459,8 +2300,8 @@ declare class PriceZoneService {
|
|
|
1459
2300
|
private priceZonesSubject;
|
|
1460
2301
|
priceZones$: Observable<PriceZone[]>;
|
|
1461
2302
|
constructor(apiService: ApiService);
|
|
1462
|
-
fetchPriceZones(
|
|
1463
|
-
loadPriceZones(
|
|
2303
|
+
fetchPriceZones(params?: FindAllPriceZoneParams): Observable<PriceZonesResponseInterface>;
|
|
2304
|
+
loadPriceZones(params?: FindAllPriceZoneParams): void;
|
|
1464
2305
|
getCurrentPriceZones(): PriceZone[];
|
|
1465
2306
|
fetchOneById(id: number): Observable<PriceZoneResponse>;
|
|
1466
2307
|
createOne(data: PriceZone): Observable<any>;
|
|
@@ -1501,7 +2342,7 @@ declare class PriceZoneFormModalService {
|
|
|
1501
2342
|
declare class ProductCategoryService {
|
|
1502
2343
|
private apiService;
|
|
1503
2344
|
constructor(apiService: ApiService);
|
|
1504
|
-
fetchCategories(
|
|
2345
|
+
fetchCategories(params: FetchProductCategoriesParams): Observable<ProductCategoriesResponse>;
|
|
1505
2346
|
fetchOneById(id: number): Observable<ProductCategoryResponse>;
|
|
1506
2347
|
createOne(data: ProductCategory): Observable<any>;
|
|
1507
2348
|
updateOne(id: number, data: ProductCategory): Observable<ProductCategoryResponse>;
|
|
@@ -1513,7 +2354,7 @@ declare class ProductCategoryService {
|
|
|
1513
2354
|
declare class ProductTagService {
|
|
1514
2355
|
private apiService;
|
|
1515
2356
|
constructor(apiService: ApiService);
|
|
1516
|
-
fetchTags(
|
|
2357
|
+
fetchTags(params: FetchProductTagsParams): Observable<ProductTagsResponse>;
|
|
1517
2358
|
fetchOneById(id: number): Observable<ProductTagResponse>;
|
|
1518
2359
|
createOne(data: ProductTag): Observable<any>;
|
|
1519
2360
|
updateOne(id: number, data: ProductTag): Observable<ProductTagResponse>;
|
|
@@ -1525,7 +2366,7 @@ declare class ProductTagService {
|
|
|
1525
2366
|
declare class ProductTypeService {
|
|
1526
2367
|
private apiService;
|
|
1527
2368
|
constructor(apiService: ApiService);
|
|
1528
|
-
fetchTypes(
|
|
2369
|
+
fetchTypes(params: FetchProductTypesParams): Observable<ProductTypesResponse>;
|
|
1529
2370
|
fetchOneById(id: number): Observable<ProductTypeResponse>;
|
|
1530
2371
|
createOne(data: ProductType): Observable<any>;
|
|
1531
2372
|
updateOne(id: number, data: ProductType): Observable<ProductTypeResponse>;
|
|
@@ -1534,18 +2375,12 @@ declare class ProductTypeService {
|
|
|
1534
2375
|
static ɵprov: i0.ɵɵInjectableDeclaration<ProductTypeService>;
|
|
1535
2376
|
}
|
|
1536
2377
|
|
|
1537
|
-
interface FetchProductsParams {
|
|
1538
|
-
page?: number;
|
|
1539
|
-
limit?: number;
|
|
1540
|
-
search?: string;
|
|
1541
|
-
}
|
|
1542
|
-
|
|
1543
2378
|
declare class ProductService {
|
|
1544
2379
|
private apiService;
|
|
1545
2380
|
private productsSubject;
|
|
1546
2381
|
products$: Observable<Product[]>;
|
|
1547
2382
|
constructor(apiService: ApiService);
|
|
1548
|
-
fetchProducts(
|
|
2383
|
+
fetchProducts(params: FetchProductsParams): Observable<ProductsResponseInterface>;
|
|
1549
2384
|
loadProducts(params: FetchProductsParams): void;
|
|
1550
2385
|
getCurrentProducts(): Product[];
|
|
1551
2386
|
fetchOneById(id: number): Observable<ProductResponse>;
|
|
@@ -1563,6 +2398,505 @@ declare class ProductService {
|
|
|
1563
2398
|
static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
|
|
1564
2399
|
}
|
|
1565
2400
|
|
|
2401
|
+
declare class BaseModalService {
|
|
2402
|
+
readonly isOpen: WritableSignal<boolean>;
|
|
2403
|
+
get modalIsOpen(): WritableSignal<boolean>;
|
|
2404
|
+
open(): void;
|
|
2405
|
+
close(): void;
|
|
2406
|
+
}
|
|
2407
|
+
|
|
2408
|
+
declare class FeedbackModalService {
|
|
2409
|
+
private _modals;
|
|
2410
|
+
readonly modals: i0.Signal<FeedbackModalElement[]>;
|
|
2411
|
+
addModal(modal: FeedbackModalElement): void;
|
|
2412
|
+
removeModal(id: string): void;
|
|
2413
|
+
removeAllModals(): void;
|
|
2414
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalService, never>;
|
|
2415
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackModalService>;
|
|
2416
|
+
}
|
|
2417
|
+
|
|
2418
|
+
/**
|
|
2419
|
+
* Tope de entradas por selección/compra. Por defecto es `null` (sin límite),
|
|
2420
|
+
* que es lo que necesita el backoffice (admin puede seleccionar todo).
|
|
2421
|
+
* El ecommerce, que sí debe limitar, llama a `load()` una vez al iniciar la
|
|
2422
|
+
* app para traer el valor configurado en el formulario de personalización.
|
|
2423
|
+
*/
|
|
2424
|
+
declare class PurchaseLimitService {
|
|
2425
|
+
private apiService;
|
|
2426
|
+
private _maxTicketsPerSelection;
|
|
2427
|
+
readonly maxTicketsPerSelection: i0.Signal<number | null>;
|
|
2428
|
+
constructor(apiService: ApiService);
|
|
2429
|
+
setMaxTicketsPerSelection(max: number | null): void;
|
|
2430
|
+
load(): Observable<number | null>;
|
|
2431
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PurchaseLimitService, never>;
|
|
2432
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PurchaseLimitService>;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
declare class OrderTransactionDetailsModalService {
|
|
2436
|
+
readonly isOpen: WritableSignal<boolean>;
|
|
2437
|
+
transaction: WritableSignal<Transaction | null>;
|
|
2438
|
+
get modalIsOpen(): WritableSignal<boolean>;
|
|
2439
|
+
open(transaction: Transaction): void;
|
|
2440
|
+
close(): void;
|
|
2441
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalService, never>;
|
|
2442
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OrderTransactionDetailsModalService>;
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
declare class PerformanceBookingDataService {
|
|
2446
|
+
private _show;
|
|
2447
|
+
private _performance;
|
|
2448
|
+
private _roomMap;
|
|
2449
|
+
private _hallFloors;
|
|
2450
|
+
private _selectedHallFloor;
|
|
2451
|
+
private _allRenderData;
|
|
2452
|
+
private _visibleFloorIds;
|
|
2453
|
+
private _hoveredFloorId;
|
|
2454
|
+
private _stageConfig;
|
|
2455
|
+
private _lastTickets;
|
|
2456
|
+
readonly show: i0.Signal<Show | null>;
|
|
2457
|
+
readonly hallFloors: i0.Signal<HallFloor[]>;
|
|
2458
|
+
readonly selectedHallFloor: i0.Signal<HallFloor | null>;
|
|
2459
|
+
readonly performance: i0.Signal<Performance | null>;
|
|
2460
|
+
readonly stageConfig: i0.Signal<{
|
|
2461
|
+
[x: string]: any;
|
|
2462
|
+
}>;
|
|
2463
|
+
readonly roomMap: i0.Signal<RoomMap | null>;
|
|
2464
|
+
readonly visibleFloorIds: i0.Signal<Set<number>>;
|
|
2465
|
+
readonly hoveredFloorId: i0.Signal<number | null>;
|
|
2466
|
+
readonly availableFloors: i0.Signal<HallFloor[]>;
|
|
2467
|
+
readonly floorZOrder: i0.Signal<number[]>;
|
|
2468
|
+
readonly renderData: i0.Signal<ElementRenderData[]>;
|
|
2469
|
+
setPerformanceBookingData({ data }: PerformanceBookingDataResponse): void;
|
|
2470
|
+
/** Aplica actualizaciones de estado de tickets recibidas por SSE (ver
|
|
2471
|
+
* SeatAvailabilitySseService) sin volver a pedir todo el booking-data:
|
|
2472
|
+
* parcha `_lastTickets` y vuelve a calcular el render data del mapa con
|
|
2473
|
+
* los mismos `elements`/`price_zones` (que no cambian en vivo). */
|
|
2474
|
+
applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
|
|
2475
|
+
setRoomMap(roomMap: RoomMap | null): void;
|
|
2476
|
+
setAllRenderData(data: ElementRenderData[]): void;
|
|
2477
|
+
setPerformance(performance: Performance | null): void;
|
|
2478
|
+
setShow(show: Show | null): void;
|
|
2479
|
+
setHallFloors(data: HallFloor[]): void;
|
|
2480
|
+
setSelectedHallFloor(id: number): void;
|
|
2481
|
+
setHoveredFloor(floorId: number | null): void;
|
|
2482
|
+
toggleFloorVisibility(floorId: number): void;
|
|
2483
|
+
isFloorVisible(floorId: number): boolean;
|
|
2484
|
+
updateStageConfig(data: {
|
|
2485
|
+
[x: string]: any;
|
|
2486
|
+
}): void;
|
|
2487
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceBookingDataService, never>;
|
|
2488
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PerformanceBookingDataService>;
|
|
2489
|
+
}
|
|
2490
|
+
|
|
2491
|
+
declare class TicketSelectionDetailsService {
|
|
2492
|
+
private _customerEmail;
|
|
2493
|
+
private _customerId;
|
|
2494
|
+
private _paymentMethod;
|
|
2495
|
+
private _billingInformation;
|
|
2496
|
+
readonly customerEmail: i0.Signal<string | null>;
|
|
2497
|
+
readonly customerId: i0.Signal<number | null>;
|
|
2498
|
+
readonly paymentMethod: i0.Signal<string | null>;
|
|
2499
|
+
readonly billingInformation: i0.Signal<Customer | null>;
|
|
2500
|
+
setCustomerEmail(email: string | null): void;
|
|
2501
|
+
setCustomerId(id: number | null): void;
|
|
2502
|
+
setPaymentMethod(method: string | null): void;
|
|
2503
|
+
setBillingInformation(values: Customer): void;
|
|
2504
|
+
clearSelection(): void;
|
|
2505
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDetailsService, never>;
|
|
2506
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDetailsService>;
|
|
2507
|
+
}
|
|
2508
|
+
|
|
2509
|
+
declare class TicketSelectionDiscountService {
|
|
2510
|
+
private _coupon;
|
|
2511
|
+
private _corporateBond;
|
|
2512
|
+
private _corporateBondCode;
|
|
2513
|
+
private _giftBond;
|
|
2514
|
+
private _giftBondCode;
|
|
2515
|
+
private _vipCard;
|
|
2516
|
+
/**
|
|
2517
|
+
* Abono (subscription) como metodo de pago. Solo se usa el campo
|
|
2518
|
+
* `service_fee_exempt`: el valor del descuento es siempre 100% (una obra
|
|
2519
|
+
* del abono cubre el ticket por completo), igual que un cupon del 100%.
|
|
2520
|
+
*/
|
|
2521
|
+
private _subscription;
|
|
2522
|
+
readonly coupon: Signal<Coupon | null>;
|
|
2523
|
+
readonly corporateBond: Signal<CorporateBond | null>;
|
|
2524
|
+
readonly corporateBondCode: Signal<string | null>;
|
|
2525
|
+
readonly giftBond: Signal<GiftBondPurchase | null>;
|
|
2526
|
+
readonly giftBondCode: Signal<string | null>;
|
|
2527
|
+
readonly vipCard: Signal<VipCard | null>;
|
|
2528
|
+
readonly subscription: Signal<{
|
|
2529
|
+
service_fee_exempt: boolean;
|
|
2530
|
+
} | null>;
|
|
2531
|
+
readonly selectedDiscount: Signal<SelectedDiscountCard | null>;
|
|
2532
|
+
readonly selectedDiscountType: Signal<SelectedDiscountCardType | undefined>;
|
|
2533
|
+
readonly selectedDiscountValue: Signal<number | undefined>;
|
|
2534
|
+
setCoupon(coupon: Coupon | null): void;
|
|
2535
|
+
setCorporateBond(corporateBond: CorporateBond | null): void;
|
|
2536
|
+
setCorporateBondCode(code: string | null): void;
|
|
2537
|
+
setGiftBond(giftBond: GiftBondPurchase | null): void;
|
|
2538
|
+
setGiftBondCode(code: string | null): void;
|
|
2539
|
+
/**
|
|
2540
|
+
* Saldo VIP como método de pago (VIP-HU-04). Solo debe contar como
|
|
2541
|
+
* descuento "seleccionado" mientras el cliente efectivamente eligió
|
|
2542
|
+
* pagar con su saldo VIP, no solo por tener una tarjeta activa —
|
|
2543
|
+
* llamar con `null` en cuanto deje de ser el método de pago elegido.
|
|
2544
|
+
*/
|
|
2545
|
+
setVipCard(card: VipCard | null): void;
|
|
2546
|
+
/**
|
|
2547
|
+
* Abono como metodo de pago (paralelo a `setVipCard`). Llamar con `null`
|
|
2548
|
+
* en cuanto deje de ser el metodo de pago elegido.
|
|
2549
|
+
*/
|
|
2550
|
+
setSubscription(subscription: {
|
|
2551
|
+
service_fee_exempt: boolean;
|
|
2552
|
+
} | null): void;
|
|
2553
|
+
clearSelection(): void;
|
|
2554
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDiscountService, never>;
|
|
2555
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDiscountService>;
|
|
2556
|
+
}
|
|
2557
|
+
|
|
2558
|
+
declare class TicketSelectionTotalsService {
|
|
2559
|
+
private bookingDataService;
|
|
2560
|
+
private selectionService;
|
|
2561
|
+
private selectionDiscountService;
|
|
2562
|
+
readonly selectedProductEntries: i0.Signal<{
|
|
2563
|
+
id: number;
|
|
2564
|
+
quantity: number;
|
|
2565
|
+
}[]>;
|
|
2566
|
+
readonly selectedProductCount: i0.Signal<number>;
|
|
2567
|
+
readonly productSubtotal: i0.Signal<number>;
|
|
2568
|
+
readonly ticketSubtotal: i0.Signal<number>;
|
|
2569
|
+
/**
|
|
2570
|
+
* Tarifa de servicio del Show cobrada una vez por cada boleta seleccionada
|
|
2571
|
+
* (no un monto fijo por orden), igual que el backend
|
|
2572
|
+
* (`create-pending-order.service.ts`): 2 boletas x $10.000 = $20.000.
|
|
2573
|
+
* Ya refleja la exoneración de VIP/Abono (retorna 0 en ese caso).
|
|
2574
|
+
*/
|
|
2575
|
+
readonly serviceFee: i0.Signal<number>;
|
|
2576
|
+
/**
|
|
2577
|
+
* Valor "crudo" de la tarifa de servicio (sin exonerar), para poder
|
|
2578
|
+
* mostrar explícitamente en la UI el "antes" cuando una membresía o
|
|
2579
|
+
* abono la exonera (en vez de perder el dato mostrando solo $0).
|
|
2580
|
+
*/
|
|
2581
|
+
readonly rawServiceFee: i0.Signal<number>;
|
|
2582
|
+
readonly isServiceFeeExempt: i0.Signal<boolean>;
|
|
2583
|
+
/**
|
|
2584
|
+
* El descuento (cupón, bono corporativo, bono de regalo, VIP, abono) se
|
|
2585
|
+
* calcula UNICAMENTE sobre el valor de las boletas: los productos nunca
|
|
2586
|
+
* reciben descuento (ver orders-discounts-applications.md).
|
|
2587
|
+
*/
|
|
2588
|
+
readonly discountAmount: i0.Signal<number | null>;
|
|
2589
|
+
subtotalValue(): number;
|
|
2590
|
+
totalValue(): number;
|
|
2591
|
+
totalDiscounted(): number | null;
|
|
2592
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionTotalsService, never>;
|
|
2593
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionTotalsService>;
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2596
|
+
declare class TicketSelectionService {
|
|
2597
|
+
private bookingDataService;
|
|
2598
|
+
private feedbackModalService;
|
|
2599
|
+
private purchaseLimitService;
|
|
2600
|
+
private selectionDetailsService;
|
|
2601
|
+
private selectionDiscountService;
|
|
2602
|
+
private _zoneQuantities;
|
|
2603
|
+
private _allTickets;
|
|
2604
|
+
private _selectedTickets;
|
|
2605
|
+
private _selectedBlockedTickets;
|
|
2606
|
+
private _products;
|
|
2607
|
+
private _productQuantities;
|
|
2608
|
+
readonly selectedTickets: i0.Signal<PerformanceTicket[]>;
|
|
2609
|
+
readonly selectedBlockedTickets: i0.Signal<PerformanceTicket[]>;
|
|
2610
|
+
readonly selectedCount: i0.Signal<number>;
|
|
2611
|
+
readonly blockedSelectedCount: i0.Signal<number>;
|
|
2612
|
+
readonly selectedTicketIds: i0.Signal<Set<PerformanceTicket>>;
|
|
2613
|
+
readonly selectedBlockedTicketIds: i0.Signal<number[]>;
|
|
2614
|
+
readonly selectedTicketIdList: i0.Signal<number[]>;
|
|
2615
|
+
readonly summaryItems: i0.Signal<PerformanceTicket[]>;
|
|
2616
|
+
readonly products: i0.Signal<Product[]>;
|
|
2617
|
+
readonly productQuantities: i0.Signal<Map<number, number>>;
|
|
2618
|
+
readonly selectedProductEntries: i0.Signal<{
|
|
2619
|
+
id: number;
|
|
2620
|
+
quantity: number;
|
|
2621
|
+
}[]>;
|
|
2622
|
+
readonly selectedProductCount: i0.Signal<number>;
|
|
2623
|
+
readonly serviceFee: i0.Signal<number>;
|
|
2624
|
+
setTickets(tickets: PerformanceTicket[]): void;
|
|
2625
|
+
/** Aplica actualizaciones de estado recibidas por SSE (ver
|
|
2626
|
+
* SeatAvailabilitySseService). Muta los tickets existentes EN VEZ de
|
|
2627
|
+
* reemplazarlos por objetos nuevos: `_selectedTickets`/
|
|
2628
|
+
* `_selectedBlockedTickets` son Sets de referencias de objeto, no de ids,
|
|
2629
|
+
* así que reemplazar el array rompería la selección activa del usuario. */
|
|
2630
|
+
applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
|
|
2631
|
+
setProducts(products: Product[]): void;
|
|
2632
|
+
updateProductQuantity(productId: number, delta: number): void;
|
|
2633
|
+
getProductQuantity(productId: number): number;
|
|
2634
|
+
private getListByStatus;
|
|
2635
|
+
setSelectedTickets(tickets: PerformanceTicket[]): void;
|
|
2636
|
+
toggle(ticket: PerformanceTicket): void;
|
|
2637
|
+
select(ticket: PerformanceTicket): void;
|
|
2638
|
+
deselect(ticket: PerformanceTicket): void;
|
|
2639
|
+
clearBlockedSelection(): void;
|
|
2640
|
+
clearSelection(): void;
|
|
2641
|
+
isSelected(ticket: PerformanceTicket): boolean;
|
|
2642
|
+
initZoneQuantity(elementId: number, maxCapacity: number): void;
|
|
2643
|
+
getZoneMax(elementId: number): number;
|
|
2644
|
+
getZoneSelectedCount(elementId: number): number;
|
|
2645
|
+
setZoneQuantity(elementId: number, target: number): void;
|
|
2646
|
+
adjustZoneQuantity(elementId: number, delta: number): void;
|
|
2647
|
+
private remainingSelectionAllowance;
|
|
2648
|
+
private canAddMoreToSelection;
|
|
2649
|
+
private notifyPurchaseLimitReached;
|
|
2650
|
+
getZoneTickets(elementId: number): PerformanceTicket[];
|
|
2651
|
+
buildTooltipData(ticket: PerformanceTicket, elementName: string, seatLabel: string | null, x: number, y: number): TicketMapTooltipData;
|
|
2652
|
+
buildReservePerformanceDto(paymentMethod?: string, termsAccepted?: boolean, dataProcessingAccepted?: boolean): ReservePerformanceDto;
|
|
2653
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionService, never>;
|
|
2654
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionService>;
|
|
2655
|
+
}
|
|
2656
|
+
|
|
2657
|
+
declare class TicketMapZoomService {
|
|
2658
|
+
readonly currentZoom: i0.WritableSignal<number>;
|
|
2659
|
+
private stage?;
|
|
2660
|
+
private bookingDataService;
|
|
2661
|
+
private readonly defaultConfig;
|
|
2662
|
+
constructor();
|
|
2663
|
+
/**
|
|
2664
|
+
* Set the Konva stage instance
|
|
2665
|
+
*/
|
|
2666
|
+
setStage(stage: Stage): void;
|
|
2667
|
+
/**
|
|
2668
|
+
* Zoom in by one step
|
|
2669
|
+
*/
|
|
2670
|
+
zoomIn(): void;
|
|
2671
|
+
/**
|
|
2672
|
+
* Zoom out by one step
|
|
2673
|
+
*/
|
|
2674
|
+
zoomOut(): void;
|
|
2675
|
+
/**
|
|
2676
|
+
* Reset zoom to 100%
|
|
2677
|
+
*/
|
|
2678
|
+
resetZoom(): void;
|
|
2679
|
+
/**
|
|
2680
|
+
* Get current zoom as percentage string
|
|
2681
|
+
*/
|
|
2682
|
+
getZoomPercentage(): string;
|
|
2683
|
+
/**
|
|
2684
|
+
* Get current zoom value
|
|
2685
|
+
*/
|
|
2686
|
+
getCurrentZoom(): number;
|
|
2687
|
+
/**
|
|
2688
|
+
* Apply zoom with center point
|
|
2689
|
+
*/
|
|
2690
|
+
private applyZoom;
|
|
2691
|
+
/**
|
|
2692
|
+
* Apply zoom scale with specific center point
|
|
2693
|
+
*/
|
|
2694
|
+
private applyZoomScale;
|
|
2695
|
+
/**
|
|
2696
|
+
* Handle mouse wheel zoom toward the cursor position
|
|
2697
|
+
*/
|
|
2698
|
+
handleWheelZoom(deltaY: number): void;
|
|
2699
|
+
/**
|
|
2700
|
+
* Fit the content bounds to fill the stage container
|
|
2701
|
+
*/
|
|
2702
|
+
fitToContainer(padding?: number): void;
|
|
2703
|
+
/**
|
|
2704
|
+
* Get current stage position
|
|
2705
|
+
*/
|
|
2706
|
+
getStagePosition(): {
|
|
2707
|
+
x: number;
|
|
2708
|
+
y: number;
|
|
2709
|
+
};
|
|
2710
|
+
/**
|
|
2711
|
+
* Set stage position (useful for programmatic panning)
|
|
2712
|
+
*/
|
|
2713
|
+
setStagePosition(position: {
|
|
2714
|
+
x: number;
|
|
2715
|
+
y: number;
|
|
2716
|
+
}): void;
|
|
2717
|
+
/**
|
|
2718
|
+
* Fit the stage content bounds to the container, centering and scaling
|
|
2719
|
+
* to show the full content with optional padding.
|
|
2720
|
+
*/
|
|
2721
|
+
fitToBounds(contentBounds: {
|
|
2722
|
+
x: number;
|
|
2723
|
+
y: number;
|
|
2724
|
+
width: number;
|
|
2725
|
+
height: number;
|
|
2726
|
+
}, containerWidth: number, containerHeight: number, padding?: number): void;
|
|
2727
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomService, never>;
|
|
2728
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketMapZoomService>;
|
|
2729
|
+
}
|
|
2730
|
+
|
|
2731
|
+
declare class ConfirmationOrderModalService extends BaseModalService {
|
|
2732
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalService, never>;
|
|
2733
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationOrderModalService>;
|
|
2734
|
+
}
|
|
2735
|
+
|
|
2736
|
+
/**
|
|
2737
|
+
* Transporte SSE del estado de asientos en vivo. Es el único punto de la
|
|
2738
|
+
* librería que sabe de EventSource/HTTP para esto — aplica cada snapshot
|
|
2739
|
+
* recibido sobre PerformanceBookingDataService (repinta el mapa) y
|
|
2740
|
+
* TicketSelectionService (mantiene la disponibilidad al día para
|
|
2741
|
+
* validaciones de zona/límite de compra).
|
|
2742
|
+
*
|
|
2743
|
+
* Cada intento de reconexión pide un ticket NUEVO (el anterior es de un
|
|
2744
|
+
* solo uso y expira a los ~30s), con backoff exponencial acotado.
|
|
2745
|
+
*/
|
|
2746
|
+
declare class SeatAvailabilitySseService {
|
|
2747
|
+
private apiService;
|
|
2748
|
+
private bookingDataService;
|
|
2749
|
+
private ticketSelectionService;
|
|
2750
|
+
private platformId;
|
|
2751
|
+
private config;
|
|
2752
|
+
private eventSource;
|
|
2753
|
+
private reconnectTimer;
|
|
2754
|
+
private reconnectAttempts;
|
|
2755
|
+
private currentPerformanceId;
|
|
2756
|
+
private currentIsAdmin;
|
|
2757
|
+
private stopped;
|
|
2758
|
+
constructor(apiService: ApiService, bookingDataService: PerformanceBookingDataService, ticketSelectionService: TicketSelectionService, platformId: Object, config: TickeraComponentsConfig);
|
|
2759
|
+
connect(performanceId: number, opts?: {
|
|
2760
|
+
isAdmin?: boolean;
|
|
2761
|
+
}): void;
|
|
2762
|
+
disconnect(): void;
|
|
2763
|
+
private openConnection;
|
|
2764
|
+
private startStream;
|
|
2765
|
+
private scheduleReconnect;
|
|
2766
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatAvailabilitySseService, never>;
|
|
2767
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SeatAvailabilitySseService>;
|
|
2768
|
+
}
|
|
2769
|
+
|
|
2770
|
+
/**
|
|
2771
|
+
* Cliente de la cola adaptativa (fase 4). No decide CUÁNDO se activa la
|
|
2772
|
+
* cola — eso es enteramente responsabilidad del backend (AdmissionGuard +
|
|
2773
|
+
* LoadBasedAdmissionPolicy) — este servicio solo sabe reaccionar al 429
|
|
2774
|
+
* `ADMISSION_QUEUE_REQUIRED` que ese guard puede devolver en
|
|
2775
|
+
* /carts/reserve y /orders/checkout.
|
|
2776
|
+
*
|
|
2777
|
+
* Uso típico en el punto de llamada (ver reservation-confirmation y
|
|
2778
|
+
* checkout-form): reintentar la request original dentro de un catchError:
|
|
2779
|
+
*
|
|
2780
|
+
* this.cartService.reserve(dto).pipe(
|
|
2781
|
+
* catchError((err) => {
|
|
2782
|
+
* if (!this.admissionQueueService.isAdmissionRequired(err)) return throwError(() => err);
|
|
2783
|
+
* const performanceId = this.admissionQueueService.getPerformanceId(err)!;
|
|
2784
|
+
* return this.admissionQueueService.waitForAdmission(performanceId).pipe(
|
|
2785
|
+
* switchMap(() => this.cartService.reserve(dto)),
|
|
2786
|
+
* );
|
|
2787
|
+
* }),
|
|
2788
|
+
* )
|
|
2789
|
+
*
|
|
2790
|
+
* Reutiliza el mismo transporte SSE con ticket de un solo uso de la fase 3
|
|
2791
|
+
* (ver SeatAvailabilitySseService) — acá el ticket llega directo en la
|
|
2792
|
+
* respuesta de /join, así que no hace falta un endpoint de ticket aparte;
|
|
2793
|
+
* cada reintento de conexión vuelve a hacer /join (el ticket anterior es
|
|
2794
|
+
* de un solo uso y expira a los ~30s).
|
|
2795
|
+
*/
|
|
2796
|
+
declare class AdmissionQueueService {
|
|
2797
|
+
private apiService;
|
|
2798
|
+
private feedbackModalService;
|
|
2799
|
+
private platformId;
|
|
2800
|
+
private config;
|
|
2801
|
+
constructor(apiService: ApiService, feedbackModalService: FeedbackModalService, platformId: Object, config: TickeraComponentsConfig);
|
|
2802
|
+
/** True si el error es el 429 específico de "alta demanda, únete a la fila". */
|
|
2803
|
+
isAdmissionRequired(error: unknown): error is HttpErrorResponse;
|
|
2804
|
+
getPerformanceId(error: HttpErrorResponse): number | null;
|
|
2805
|
+
/**
|
|
2806
|
+
* Se une a la fila de `performanceId` y completa (emite una vez y cierra)
|
|
2807
|
+
* en cuanto el usuario queda admitido. Mientras espera, muestra un modal
|
|
2808
|
+
* ligero con la posición vigente, actualizado por SSE. Si quien se
|
|
2809
|
+
* suscribió se desuscribe antes de ser admitido (el usuario navega a
|
|
2810
|
+
* otro lado, cierra el modal, o el componente se destruye), libera el
|
|
2811
|
+
* lugar en la fila con /leave.
|
|
2812
|
+
*/
|
|
2813
|
+
waitForAdmission(performanceId: number): Observable<void>;
|
|
2814
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdmissionQueueService, never>;
|
|
2815
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AdmissionQueueService>;
|
|
2816
|
+
}
|
|
2817
|
+
|
|
2818
|
+
declare class TicketQrService {
|
|
2819
|
+
private apiService;
|
|
2820
|
+
constructor(apiService: ApiService);
|
|
2821
|
+
fetchQrToken(ticketUuid: string): Observable<QrTokenResponse>;
|
|
2822
|
+
fetchMyQrToken(ticketUuid: string): Observable<QrTokenResponse>;
|
|
2823
|
+
downloadTicketPdf(ticketUuid: string): Observable<Blob>;
|
|
2824
|
+
downloadMyTicketPdf(ticketUuid: string): Observable<Blob>;
|
|
2825
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrService, never>;
|
|
2826
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrService>;
|
|
2827
|
+
}
|
|
2828
|
+
|
|
2829
|
+
declare class TicketQrModalService {
|
|
2830
|
+
isOpen: WritableSignal<boolean>;
|
|
2831
|
+
ticketUuid: WritableSignal<string | null>;
|
|
2832
|
+
ticketDescription: WritableSignal<string | null>;
|
|
2833
|
+
open(ticketUuid: string, description?: string): void;
|
|
2834
|
+
close(): void;
|
|
2835
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalService, never>;
|
|
2836
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrModalService>;
|
|
2837
|
+
}
|
|
2838
|
+
|
|
2839
|
+
declare class VipCardService {
|
|
2840
|
+
private apiService;
|
|
2841
|
+
constructor(apiService: ApiService);
|
|
2842
|
+
findMy(): Observable<{
|
|
2843
|
+
data: VipCard | null;
|
|
2844
|
+
}>;
|
|
2845
|
+
activate(data: any): Observable<VipOrderResponse>;
|
|
2846
|
+
recharge(data: any): Observable<VipOrderResponse>;
|
|
2847
|
+
fetchAll(params?: FetchVipCardsParams): Observable<VipCardsResponse>;
|
|
2848
|
+
fetchOneById(id: number): Observable<VipCardResponse>;
|
|
2849
|
+
activateAdmin(data: ActivateVipCardParams): Observable<VipOrderResponse>;
|
|
2850
|
+
rechargeAdmin(id: number, data: any): Observable<VipOrderResponse>;
|
|
2851
|
+
updateStatus(id: number, status: VipCardStatus): Observable<VipCardResponse>;
|
|
2852
|
+
updateTerms(id: number): Observable<VipCardResponse>;
|
|
2853
|
+
fetchTransactions(id: number, page?: number, limit?: number): Observable<VipTransactionsResponse>;
|
|
2854
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipCardService, never>;
|
|
2855
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<VipCardService>;
|
|
2856
|
+
}
|
|
2857
|
+
|
|
2858
|
+
/**
|
|
2859
|
+
* Servicio genérico de "cambios pendientes" para tablas con edición rápida
|
|
2860
|
+
* + guardado masivo (QTN-49, primer consumidor: Bonos de Regalo en
|
|
2861
|
+
* tickera-backoffice-frontend).
|
|
2862
|
+
*
|
|
2863
|
+
* IMPORTANTE: proveerlo a nivel de componente/página
|
|
2864
|
+
* (`providers: [PendingChangesService]` en el `@Component` que lo usa),
|
|
2865
|
+
* NUNCA en `providedIn: 'root'` — si no, dos tablas con edición rápida
|
|
2866
|
+
* abiertas al mismo tiempo (dos pestañas, o dos listados en la misma
|
|
2867
|
+
* sesión) compartirían el mismo estado de cambios pendientes. Mismo
|
|
2868
|
+
* criterio que ya sigue este repo con GiftBondService, provisto a nivel de
|
|
2869
|
+
* GiftBondDetailsComponent en vez de en 'root'.
|
|
2870
|
+
*/
|
|
2871
|
+
declare class PendingChangesService<TValue = any> {
|
|
2872
|
+
private readonly changesSignal;
|
|
2873
|
+
private readonly originalValues;
|
|
2874
|
+
readonly changes: Signal<Map<number, TValue>>;
|
|
2875
|
+
readonly changeCount: Signal<number>;
|
|
2876
|
+
readonly hasChanges: Signal<boolean>;
|
|
2877
|
+
/**
|
|
2878
|
+
* Registra (o actualiza) el cambio pendiente de `id`. `originalValue` es
|
|
2879
|
+
* el valor que tenía la fila antes de cualquier edición en esta sesión de
|
|
2880
|
+
* la tabla — solo se guarda la primera vez que se llama para ese id, así
|
|
2881
|
+
* que no importa pasarlo en cada llamada subsiguiente.
|
|
2882
|
+
*
|
|
2883
|
+
* Si `newValue` termina siendo igual al valor original, el id se
|
|
2884
|
+
* elimina automáticamente de los cambios pendientes (evita que quede
|
|
2885
|
+
* marcado como "modificado" un valor que el usuario cambió y luego
|
|
2886
|
+
* revirtió a mano).
|
|
2887
|
+
*/
|
|
2888
|
+
setChange(id: number, originalValue: TValue, newValue: TValue): void;
|
|
2889
|
+
getPendingValue(id: number): TValue | undefined;
|
|
2890
|
+
/** Descarta el cambio pendiente de una fila puntual (botón "Deshacer" por fila, si aplica). */
|
|
2891
|
+
discard(id: number): void;
|
|
2892
|
+
/** Descarta todos los cambios pendientes sin guardar nada (botón "Deshacer" de la barra flotante). */
|
|
2893
|
+
discardAll(): void;
|
|
2894
|
+
/** Llamar después de que el guardado en lote fue exitoso, para limpiar el estado. */
|
|
2895
|
+
clearAfterSave(): void;
|
|
2896
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PendingChangesService<any>, never>;
|
|
2897
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PendingChangesService<any>>;
|
|
2898
|
+
}
|
|
2899
|
+
|
|
1566
2900
|
declare const authInterceptor: HttpInterceptorFn;
|
|
1567
2901
|
|
|
1568
2902
|
declare class AppButtonComponent {
|
|
@@ -1575,10 +2909,11 @@ declare class AppButtonComponent {
|
|
|
1575
2909
|
size: 'xs' | 'sm' | 'md' | 'lg';
|
|
1576
2910
|
loadingText: string;
|
|
1577
2911
|
icon: string;
|
|
2912
|
+
tooltip: string;
|
|
1578
2913
|
handleClick(): void;
|
|
1579
2914
|
get buttonClasses(): string;
|
|
1580
2915
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppButtonComponent, never>;
|
|
1581
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AppButtonComponent, "app-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "text": { "alias": "text"; "required": false; }; "size": { "alias": "size"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
2916
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppButtonComponent, "app-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "text": { "alias": "text"; "required": false; }; "size": { "alias": "size"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
1582
2917
|
}
|
|
1583
2918
|
|
|
1584
2919
|
declare class AppLinkButtonComponent {
|
|
@@ -1592,9 +2927,10 @@ declare class AppLinkButtonComponent {
|
|
|
1592
2927
|
queryParams: Record<string, any>;
|
|
1593
2928
|
size: 'xs' | 'sm' | 'md' | 'lg';
|
|
1594
2929
|
variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent';
|
|
2930
|
+
tooltip: string;
|
|
1595
2931
|
get buttonClasses(): string;
|
|
1596
2932
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppLinkButtonComponent, never>;
|
|
1597
|
-
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>;
|
|
2933
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppLinkButtonComponent, "app-link-button", never, { "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "target": { "alias": "target"; "required": false; }; "text": { "alias": "text"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "route": { "alias": "route"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, {}, never, never, true, never>;
|
|
1598
2934
|
}
|
|
1599
2935
|
|
|
1600
2936
|
declare class AppAlertComponent {
|
|
@@ -1607,30 +2943,65 @@ declare class AppAlertComponent {
|
|
|
1607
2943
|
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>;
|
|
1608
2944
|
}
|
|
1609
2945
|
|
|
1610
|
-
declare class
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
2946
|
+
declare class FeedbackModalComponent implements OnChanges, OnDestroy {
|
|
2947
|
+
isOpen: WritableSignal<boolean>;
|
|
2948
|
+
type: FeedbackModalType;
|
|
2949
|
+
title: string;
|
|
2950
|
+
message: string;
|
|
2951
|
+
showHeader: boolean;
|
|
2952
|
+
showCloseButton: boolean;
|
|
2953
|
+
showTitle: boolean;
|
|
2954
|
+
autoClose: boolean;
|
|
2955
|
+
autoCloseDuration: number;
|
|
2956
|
+
buttonText: string;
|
|
2957
|
+
closed: EventEmitter<void>;
|
|
2958
|
+
private autoCloseTimeout;
|
|
2959
|
+
get defaultButtonText(): string;
|
|
2960
|
+
get resolvedButtonText(): string;
|
|
2961
|
+
get buttonVariant(): 'primary' | 'secondary';
|
|
2962
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2963
|
+
ngOnDestroy(): void;
|
|
1615
2964
|
closeModal(): void;
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
static
|
|
2965
|
+
private scheduleAutoClose;
|
|
2966
|
+
private clearAutoClose;
|
|
2967
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
|
|
2968
|
+
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>;
|
|
1619
2969
|
}
|
|
1620
2970
|
|
|
2971
|
+
type DeleteConfirmationStep = 'input' | 'final';
|
|
1621
2972
|
declare class DeleteConfirmationComponent {
|
|
1622
2973
|
private fb;
|
|
1623
2974
|
private deleteConfirmationService;
|
|
1624
2975
|
protected transloco: TranslocoService;
|
|
1625
2976
|
deleteConfirmationForm: FormGroup;
|
|
2977
|
+
/**
|
|
2978
|
+
* Two-step flow:
|
|
2979
|
+
* 1. 'input' -> the user must type the resource name to unlock the delete action.
|
|
2980
|
+
* 2. 'final' -> a last feedback/confirmation step is shown before the delete
|
|
2981
|
+
* callback actually runs, so a slip of the mouse on the first
|
|
2982
|
+
* step can never trigger a real deletion by itself.
|
|
2983
|
+
*/
|
|
2984
|
+
step: DeleteConfirmationStep;
|
|
1626
2985
|
constructor(fb: FormBuilder, deleteConfirmationService: DeleteConfirmationService, transloco: TranslocoService);
|
|
1627
2986
|
get title(): string;
|
|
1628
2987
|
get resourceName(): string;
|
|
1629
2988
|
get confirmationText(): string;
|
|
1630
2989
|
get isOpen(): i0.WritableSignal<boolean>;
|
|
1631
2990
|
get isConfirmationValid(): boolean;
|
|
2991
|
+
get isFinalStep(): boolean;
|
|
2992
|
+
/** Cancels the whole flow (from either step) without deleting anything. */
|
|
1632
2993
|
onCloseModal(): void;
|
|
2994
|
+
/** Step 1 submit: only advances to the final confirmation, never deletes. */
|
|
1633
2995
|
onConfirmDelete(): void;
|
|
2996
|
+
/**
|
|
2997
|
+
* Step 2 cancel: goes back to the input step without touching what the
|
|
2998
|
+
* user typed, so they don't have to retype it if they just want to
|
|
2999
|
+
* double-check before deleting.
|
|
3000
|
+
*/
|
|
3001
|
+
onBackToInput(): void;
|
|
3002
|
+
/** Step 2 submit: this is the only place that actually triggers deletion. */
|
|
3003
|
+
onFinalConfirm(): void;
|
|
3004
|
+
private resetState;
|
|
1634
3005
|
static ɵfac: i0.ɵɵFactoryDeclaration<DeleteConfirmationComponent, never>;
|
|
1635
3006
|
static ɵcmp: i0.ɵɵComponentDeclaration<DeleteConfirmationComponent, "delete-confirmation", never, {}, {}, never, never, true, never>;
|
|
1636
3007
|
}
|
|
@@ -1638,12 +3009,29 @@ declare class DeleteConfirmationComponent {
|
|
|
1638
3009
|
declare class AppModalComponent {
|
|
1639
3010
|
title: string;
|
|
1640
3011
|
disableClose: boolean;
|
|
3012
|
+
showHeader: boolean;
|
|
3013
|
+
showCloseButton: boolean;
|
|
3014
|
+
showTitle: boolean;
|
|
3015
|
+
interactiveClose: boolean;
|
|
1641
3016
|
isOpen: WritableSignal<boolean>;
|
|
1642
|
-
size:
|
|
3017
|
+
size: ModalSize;
|
|
1643
3018
|
closeModal: EventEmitter<void>;
|
|
1644
3019
|
onCloseModal(): void;
|
|
3020
|
+
onInteractiveClose(): void;
|
|
3021
|
+
onKeydownEscape(): void;
|
|
1645
3022
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppModalComponent, never>;
|
|
1646
|
-
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>;
|
|
3023
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppModalComponent, "app-modal", never, { "title": { "alias": "title"; "required": false; }; "disableClose": { "alias": "disableClose"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; "interactiveClose": { "alias": "interactiveClose"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "closeModal": "closeModal"; }, never, ["*"], true, never>;
|
|
3024
|
+
}
|
|
3025
|
+
|
|
3026
|
+
declare class AppBadgeComponent {
|
|
3027
|
+
text: string;
|
|
3028
|
+
color: BadgeColor;
|
|
3029
|
+
size: BadgeSize;
|
|
3030
|
+
bordered: boolean;
|
|
3031
|
+
backgroundColor: string;
|
|
3032
|
+
textColor: string;
|
|
3033
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppBadgeComponent, never>;
|
|
3034
|
+
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>;
|
|
1647
3035
|
}
|
|
1648
3036
|
|
|
1649
3037
|
declare class AuditInformationComponent {
|
|
@@ -1652,12 +3040,13 @@ declare class AuditInformationComponent {
|
|
|
1652
3040
|
static ɵcmp: i0.ɵɵComponentDeclaration<AuditInformationComponent, "app-audit-information", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
|
|
1653
3041
|
}
|
|
1654
3042
|
|
|
1655
|
-
declare class DynamicTableComponent {
|
|
3043
|
+
declare class DynamicTableComponent implements OnChanges {
|
|
1656
3044
|
private injector;
|
|
1657
3045
|
constructor(injector: Injector);
|
|
1658
3046
|
title: string;
|
|
1659
3047
|
data: any[];
|
|
1660
3048
|
headers: any[];
|
|
3049
|
+
searcherPlaceholder: string;
|
|
1661
3050
|
columnComponents: {
|
|
1662
3051
|
[key: string]: Type<any>;
|
|
1663
3052
|
};
|
|
@@ -1665,17 +3054,116 @@ declare class DynamicTableComponent {
|
|
|
1665
3054
|
totalItems: number;
|
|
1666
3055
|
itemsPerPage: number;
|
|
1667
3056
|
currentPage: number;
|
|
3057
|
+
searchValue: string;
|
|
1668
3058
|
pageChange: EventEmitter<number>;
|
|
1669
3059
|
searchChange: EventEmitter<string>;
|
|
3060
|
+
pageSizeChange: EventEmitter<number>;
|
|
3061
|
+
pageSizeOptions: number[];
|
|
1670
3062
|
showPagination: boolean;
|
|
1671
3063
|
showSearch: boolean;
|
|
1672
3064
|
showTitle: boolean;
|
|
1673
3065
|
get totalPages(): number;
|
|
1674
3066
|
onSearch(event: any): void;
|
|
1675
3067
|
changePage(delta: number): void;
|
|
3068
|
+
changePageSize(event: any): void;
|
|
3069
|
+
private rowInjectors;
|
|
3070
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1676
3071
|
createInjector(row: any): Injector;
|
|
1677
3072
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicTableComponent, never>;
|
|
1678
|
-
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>;
|
|
3073
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicTableComponent, "dynamic-table", never, { "title": { "alias": "title"; "required": false; }; "data": { "alias": "data"; "required": false; }; "headers": { "alias": "headers"; "required": false; }; "searcherPlaceholder": { "alias": "searcherPlaceholder"; "required": false; }; "columnComponents": { "alias": "columnComponents"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "totalItems": { "alias": "totalItems"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; "searchValue": { "alias": "searchValue"; "required": false; }; "showPagination": { "alias": "showPagination"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; }, { "pageChange": "pageChange"; "searchChange": "searchChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
|
|
3074
|
+
}
|
|
3075
|
+
|
|
3076
|
+
declare class TextExpandableComponent implements OnChanges {
|
|
3077
|
+
text: string;
|
|
3078
|
+
maxLength: number;
|
|
3079
|
+
fontSize: TextFontSize;
|
|
3080
|
+
allowHtml: boolean;
|
|
3081
|
+
maxLines?: number;
|
|
3082
|
+
protected expanded: boolean;
|
|
3083
|
+
ngOnChanges(): void;
|
|
3084
|
+
get plainText(): string;
|
|
3085
|
+
get truncated(): boolean;
|
|
3086
|
+
get visibleText(): string;
|
|
3087
|
+
get lines(): number;
|
|
3088
|
+
toggleExpanded(): void;
|
|
3089
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextExpandableComponent, never>;
|
|
3090
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextExpandableComponent, "text-expandable", never, { "text": { "alias": "text"; "required": true; }; "maxLength": { "alias": "maxLength"; "required": false; }; "fontSize": { "alias": "fontSize"; "required": false; }; "allowHtml": { "alias": "allowHtml"; "required": false; }; "maxLines": { "alias": "maxLines"; "required": false; }; }, {}, never, never, true, never>;
|
|
3091
|
+
}
|
|
3092
|
+
|
|
3093
|
+
/**
|
|
3094
|
+
* Select genérico para editar un campo (típicamente "estado") directamente
|
|
3095
|
+
* en una celda de tabla, sin guardar de inmediato (QTN-49).
|
|
3096
|
+
*
|
|
3097
|
+
* Este componente es deliberadamente "tonto": no sabe a qué recurso
|
|
3098
|
+
* pertenece la fila ni cómo guardarla — solo muestra `options`, refleja
|
|
3099
|
+
* `value`, y emite `valueChange` cuando el usuario elige otra opción.
|
|
3100
|
+
* El componente que lo envuelve (p. ej. gift-bond-table-status en
|
|
3101
|
+
* tickera-backoffice-frontend) es quien conoce el id de la fila y decide
|
|
3102
|
+
* si guarda de inmediato o acumula el cambio en un
|
|
3103
|
+
* PendingChangesService + bulk-save-bar para guardado masivo.
|
|
3104
|
+
*/
|
|
3105
|
+
declare class QuickStatusEditComponent {
|
|
3106
|
+
options: SelectOption[];
|
|
3107
|
+
value: any;
|
|
3108
|
+
/** Resalta visualmente la celda como "modificada, sin guardar". */
|
|
3109
|
+
dirty: boolean;
|
|
3110
|
+
disabled: boolean;
|
|
3111
|
+
valueChange: EventEmitter<any>;
|
|
3112
|
+
onChange(newValue: any): void;
|
|
3113
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QuickStatusEditComponent, never>;
|
|
3114
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<QuickStatusEditComponent, "quick-status-edit", never, { "options": { "alias": "options"; "required": true; }; "value": { "alias": "value"; "required": false; }; "dirty": { "alias": "dirty"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
3115
|
+
}
|
|
3116
|
+
|
|
3117
|
+
/**
|
|
3118
|
+
* Barra flotante "Guardar cambios" para guardado masivo (QTN-49).
|
|
3119
|
+
*
|
|
3120
|
+
* No conoce el recurso concreto ni cómo persistir los cambios — el
|
|
3121
|
+
* componente que la usa le pasa `[count]` (típicamente
|
|
3122
|
+
* `pendingChangesService.changeCount()`) y escucha `(save)`/`(discard)`
|
|
3123
|
+
* para llamar al endpoint bulk correspondiente.
|
|
3124
|
+
*/
|
|
3125
|
+
declare class BulkSaveBarComponent {
|
|
3126
|
+
count: number;
|
|
3127
|
+
loading: boolean;
|
|
3128
|
+
saveLabel: string;
|
|
3129
|
+
discardLabel: string;
|
|
3130
|
+
save: EventEmitter<void>;
|
|
3131
|
+
discard: EventEmitter<void>;
|
|
3132
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BulkSaveBarComponent, never>;
|
|
3133
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BulkSaveBarComponent, "bulk-save-bar", never, { "count": { "alias": "count"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "saveLabel": { "alias": "saveLabel"; "required": false; }; "discardLabel": { "alias": "discardLabel"; "required": false; }; }, { "save": "save"; "discard": "discard"; }, never, never, true, never>;
|
|
3134
|
+
}
|
|
3135
|
+
|
|
3136
|
+
declare class ShowCardComponent {
|
|
3137
|
+
show: Show;
|
|
3138
|
+
linkText: string;
|
|
3139
|
+
linkUrlFn?: (show: Show) => string;
|
|
3140
|
+
linkQueryParams?: Record<string, any>;
|
|
3141
|
+
transloco: TranslocoService;
|
|
3142
|
+
dateService: DateService;
|
|
3143
|
+
formatTimeDate(date: string): Date;
|
|
3144
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardComponent, never>;
|
|
3145
|
+
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>;
|
|
3146
|
+
}
|
|
3147
|
+
|
|
3148
|
+
declare class ShowTypeBadgeComponent {
|
|
3149
|
+
show: Show;
|
|
3150
|
+
size: BadgeSize;
|
|
3151
|
+
transloco: TranslocoService;
|
|
3152
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShowTypeBadgeComponent, never>;
|
|
3153
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ShowTypeBadgeComponent, "show-type-badge", never, { "show": { "alias": "show"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
3154
|
+
}
|
|
3155
|
+
|
|
3156
|
+
declare class ShowCardSkeletonComponent {
|
|
3157
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardSkeletonComponent, never>;
|
|
3158
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ShowCardSkeletonComponent, "show-card-skeleton", never, {}, {}, never, never, true, never>;
|
|
3159
|
+
}
|
|
3160
|
+
|
|
3161
|
+
declare class AppBreadcumbComponent {
|
|
3162
|
+
homeUrl: string | undefined;
|
|
3163
|
+
steps: BreadcrumbStep[];
|
|
3164
|
+
theme: BreadcrumbTheme;
|
|
3165
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppBreadcumbComponent, never>;
|
|
3166
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppBreadcumbComponent, "app-breadcrumb", never, { "homeUrl": { "alias": "homeUrl"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, never, true, never>;
|
|
1679
3167
|
}
|
|
1680
3168
|
|
|
1681
3169
|
declare class LanguageSwitcherComponent {
|
|
@@ -1688,6 +3176,67 @@ declare class LanguageSwitcherComponent {
|
|
|
1688
3176
|
static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSwitcherComponent, "language-switcher", never, {}, {}, never, never, true, never>;
|
|
1689
3177
|
}
|
|
1690
3178
|
|
|
3179
|
+
declare class SidebarMenuComponent implements OnInit {
|
|
3180
|
+
private router;
|
|
3181
|
+
protected sidebarState: SidebarStateService;
|
|
3182
|
+
/** Menu items to render. Each app owns its own routes/roles and passes them in here. */
|
|
3183
|
+
items: SidebarMenuItem[];
|
|
3184
|
+
/** Route the brand/logo link should navigate to (e.g. the dashboard). */
|
|
3185
|
+
homePath: string;
|
|
3186
|
+
/** Optional brand logo shown in the sidebar header. Omit to render no logo. */
|
|
3187
|
+
logoUrl: string;
|
|
3188
|
+
logoAlt: string;
|
|
3189
|
+
private readonly IS_ACTIVE_MATCH_OPTIONS;
|
|
3190
|
+
constructor(router: Router, sidebarState: SidebarStateService);
|
|
3191
|
+
ngOnInit(): void;
|
|
3192
|
+
private updateSubmenuState;
|
|
3193
|
+
isSubmenuActive(item: SidebarMenuItem): boolean;
|
|
3194
|
+
toggleSubmenu(item: SidebarMenuItem): void;
|
|
3195
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarMenuComponent, never>;
|
|
3196
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SidebarMenuComponent, "sidebar-menu", never, { "items": { "alias": "items"; "required": true; }; "homePath": { "alias": "homePath"; "required": true; }; "logoUrl": { "alias": "logoUrl"; "required": false; }; "logoAlt": { "alias": "logoAlt"; "required": false; }; }, {}, never, never, true, never>;
|
|
3197
|
+
}
|
|
3198
|
+
|
|
3199
|
+
declare class AdminNavbarComponent {
|
|
3200
|
+
protected sidebarState: SidebarStateService;
|
|
3201
|
+
/** Currently logged-in admin, or null while it hasn't loaded yet. */
|
|
3202
|
+
admin: Admin | null;
|
|
3203
|
+
/** Route the "my account" menu item should link to. */
|
|
3204
|
+
myAccountPath: string;
|
|
3205
|
+
/** Emitted when the admin clicks "log out" in the profile menu. */
|
|
3206
|
+
logout: EventEmitter<void>;
|
|
3207
|
+
isProfileMenuOpen: WritableSignal<boolean>;
|
|
3208
|
+
constructor(sidebarState: SidebarStateService);
|
|
3209
|
+
toggleProfileMenu(): void;
|
|
3210
|
+
onLogout(): void;
|
|
3211
|
+
clickout(event: Event): void;
|
|
3212
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdminNavbarComponent, never>;
|
|
3213
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AdminNavbarComponent, "admin-navbar", never, { "admin": { "alias": "admin"; "required": false; }; "myAccountPath": { "alias": "myAccountPath"; "required": false; }; }, { "logout": "logout"; }, never, never, true, never>;
|
|
3214
|
+
}
|
|
3215
|
+
|
|
3216
|
+
/**
|
|
3217
|
+
* Reusable admin shell: sidebar + navbar + router-outlet.
|
|
3218
|
+
*
|
|
3219
|
+
* This component is intentionally free of any auth/session logic — that stays
|
|
3220
|
+
* in the consuming app. Project app-specific global UI (e.g. a session-timeout
|
|
3221
|
+
* modal) through the default content slot.
|
|
3222
|
+
*/
|
|
3223
|
+
declare class AdminLayoutComponent {
|
|
3224
|
+
items: SidebarMenuItem[];
|
|
3225
|
+
homePath: string;
|
|
3226
|
+
admin: Admin | null;
|
|
3227
|
+
myAccountPath: string;
|
|
3228
|
+
logoUrl: string;
|
|
3229
|
+
logoAlt: string;
|
|
3230
|
+
logout: EventEmitter<void>;
|
|
3231
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdminLayoutComponent, never>;
|
|
3232
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AdminLayoutComponent, "admin-layout", never, { "items": { "alias": "items"; "required": true; }; "homePath": { "alias": "homePath"; "required": true; }; "admin": { "alias": "admin"; "required": false; }; "myAccountPath": { "alias": "myAccountPath"; "required": false; }; "logoUrl": { "alias": "logoUrl"; "required": false; }; "logoAlt": { "alias": "logoAlt"; "required": false; }; }, { "logout": "logout"; }, never, ["*"], true, never>;
|
|
3233
|
+
}
|
|
3234
|
+
|
|
3235
|
+
declare class PublicLayoutComponent {
|
|
3236
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PublicLayoutComponent, never>;
|
|
3237
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PublicLayoutComponent, "app-public-layout", never, {}, {}, never, never, true, never>;
|
|
3238
|
+
}
|
|
3239
|
+
|
|
1691
3240
|
declare class FormInputComponent implements ControlValueAccessor {
|
|
1692
3241
|
ngControl: NgControl;
|
|
1693
3242
|
private transloco;
|
|
@@ -1698,12 +3247,14 @@ declare class FormInputComponent implements ControlValueAccessor {
|
|
|
1698
3247
|
placeholder: string;
|
|
1699
3248
|
required: boolean;
|
|
1700
3249
|
readonly: boolean;
|
|
3250
|
+
maxlength: number | null;
|
|
1701
3251
|
minlength: number | null;
|
|
3252
|
+
max: number | null;
|
|
1702
3253
|
min: number | null;
|
|
1703
3254
|
step: number | null;
|
|
1704
3255
|
pattern: string | null;
|
|
1705
3256
|
fieldGroupClass: string;
|
|
1706
|
-
autocomplete:
|
|
3257
|
+
autocomplete: string;
|
|
1707
3258
|
value: any;
|
|
1708
3259
|
disabled: boolean;
|
|
1709
3260
|
onChange: any;
|
|
@@ -1720,12 +3271,68 @@ declare class FormInputComponent implements ControlValueAccessor {
|
|
|
1720
3271
|
get inputClasses(): string;
|
|
1721
3272
|
get fieldGroupClasses(): string;
|
|
1722
3273
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormInputComponent, [{ optional: true; self: true; }, null]>;
|
|
1723
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, true, never>;
|
|
3274
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "step": { "alias": "step"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, true, never>;
|
|
3275
|
+
}
|
|
3276
|
+
|
|
3277
|
+
type IdentityDocumentType = 'CC' | 'CE' | 'PA' | 'NIT' | 'TI' | 'RC';
|
|
3278
|
+
/**
|
|
3279
|
+
* Campo de documento de identidad (QTN-44).
|
|
3280
|
+
*
|
|
3281
|
+
* Componente compartido que, dado un `documentType` (CC, CE, PA, NIT, TI, RC),
|
|
3282
|
+
* aplica automáticamente el formato y las validaciones correspondientes a los
|
|
3283
|
+
* lineamientos de documentos de identidad de Colombia: solo dígitos y rango de
|
|
3284
|
+
* longitud para CC/TI/RC/NIT, alfanumérico con longitud máxima para CE/PA, y
|
|
3285
|
+
* validación opcional del dígito de verificación (DV) para NIT.
|
|
3286
|
+
*
|
|
3287
|
+
* Sigue el mismo patrón que `NumberInputComponent`: standalone,
|
|
3288
|
+
* `ControlValueAccessor` + `Validator` vía `NG_VALUE_ACCESSOR`/`NG_VALIDATORS`.
|
|
3289
|
+
*/
|
|
3290
|
+
declare class IdentityDocumentInputComponent implements ControlValueAccessor, Validator, OnChanges {
|
|
3291
|
+
transloco: TranslocoService;
|
|
3292
|
+
private injector;
|
|
3293
|
+
private elementRef;
|
|
3294
|
+
label: string;
|
|
3295
|
+
name: string;
|
|
3296
|
+
id: string;
|
|
3297
|
+
placeholder: string;
|
|
3298
|
+
required: boolean;
|
|
3299
|
+
readonly: boolean;
|
|
3300
|
+
fieldGroupClass: string;
|
|
3301
|
+
documentType: IdentityDocumentType | '';
|
|
3302
|
+
validateCheckDigit: boolean;
|
|
3303
|
+
value: string | null;
|
|
3304
|
+
disabled: boolean;
|
|
3305
|
+
onChange: any;
|
|
3306
|
+
onTouched: any;
|
|
3307
|
+
private _ngControl;
|
|
3308
|
+
constructor(transloco: TranslocoService, injector: Injector, elementRef: ElementRef);
|
|
3309
|
+
get ngControl(): NgControl | null;
|
|
3310
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3311
|
+
private get rule();
|
|
3312
|
+
get isDigitsOnly(): boolean;
|
|
3313
|
+
get inputMode(): string;
|
|
3314
|
+
get maxLength(): number | null;
|
|
3315
|
+
writeValue(value: any): void;
|
|
3316
|
+
registerOnChange(fn: any): void;
|
|
3317
|
+
registerOnTouched(fn: any): void;
|
|
3318
|
+
setDisabledState(isDisabled: boolean): void;
|
|
3319
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
3320
|
+
onInput(rawValue: string): void;
|
|
3321
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
3322
|
+
private validateLength;
|
|
3323
|
+
private validateNitWithCheckDigit;
|
|
3324
|
+
static computeNitCheckDigit(nit: string): number;
|
|
3325
|
+
get inputId(): string;
|
|
3326
|
+
get showError(): boolean;
|
|
3327
|
+
get errorMessage(): string;
|
|
3328
|
+
get fieldGroupClasses(): string;
|
|
3329
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdentityDocumentInputComponent, never>;
|
|
3330
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IdentityDocumentInputComponent, "identity-document-input", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; "documentType": { "alias": "documentType"; "required": false; }; "validateCheckDigit": { "alias": "validateCheckDigit"; "required": false; }; }, {}, never, never, true, never>;
|
|
1724
3331
|
}
|
|
1725
3332
|
|
|
1726
3333
|
declare class FormSelectComponent implements ControlValueAccessor {
|
|
1727
3334
|
ngControl: NgControl;
|
|
1728
|
-
|
|
3335
|
+
protected transloco: TranslocoService;
|
|
1729
3336
|
label: string;
|
|
1730
3337
|
name: string;
|
|
1731
3338
|
id: string;
|
|
@@ -1749,7 +3356,6 @@ declare class FormSelectComponent implements ControlValueAccessor {
|
|
|
1749
3356
|
get inputId(): string;
|
|
1750
3357
|
get showError(): boolean;
|
|
1751
3358
|
get errorMessage(): string;
|
|
1752
|
-
get resolvedDefaultOptionLabel(): string;
|
|
1753
3359
|
get fieldGroupClasses(): string;
|
|
1754
3360
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [{ optional: true; self: true; }, null]>;
|
|
1755
3361
|
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>;
|
|
@@ -1787,6 +3393,105 @@ declare class FormTextareaComponent implements ControlValueAccessor {
|
|
|
1787
3393
|
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>;
|
|
1788
3394
|
}
|
|
1789
3395
|
|
|
3396
|
+
declare class NumberInputComponent implements ControlValueAccessor, Validator, OnChanges {
|
|
3397
|
+
transloco: TranslocoService;
|
|
3398
|
+
private injector;
|
|
3399
|
+
private elementRef;
|
|
3400
|
+
label: string;
|
|
3401
|
+
name: string;
|
|
3402
|
+
id: string;
|
|
3403
|
+
placeholder: string;
|
|
3404
|
+
required: boolean;
|
|
3405
|
+
readonly: boolean;
|
|
3406
|
+
min: number | null;
|
|
3407
|
+
max: number | null;
|
|
3408
|
+
step: number;
|
|
3409
|
+
fieldGroupClass: string;
|
|
3410
|
+
value: number | null;
|
|
3411
|
+
disabled: boolean;
|
|
3412
|
+
onChange: any;
|
|
3413
|
+
onTouched: any;
|
|
3414
|
+
private _ngControl;
|
|
3415
|
+
constructor(transloco: TranslocoService, injector: Injector, elementRef: ElementRef);
|
|
3416
|
+
get ngControl(): NgControl | null;
|
|
3417
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3418
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
3419
|
+
writeValue(value: any): void;
|
|
3420
|
+
registerOnChange(fn: any): void;
|
|
3421
|
+
registerOnTouched(fn: any): void;
|
|
3422
|
+
setDisabledState(isDisabled: boolean): void;
|
|
3423
|
+
onInput(value: any): void;
|
|
3424
|
+
increment(): void;
|
|
3425
|
+
decrement(): void;
|
|
3426
|
+
get canIncrement(): boolean;
|
|
3427
|
+
get canDecrement(): boolean;
|
|
3428
|
+
get inputId(): string;
|
|
3429
|
+
get showError(): boolean;
|
|
3430
|
+
get errorMessage(): string;
|
|
3431
|
+
get fieldGroupClasses(): string;
|
|
3432
|
+
private clamp;
|
|
3433
|
+
private round;
|
|
3434
|
+
private emitNativeChange;
|
|
3435
|
+
private minValidator;
|
|
3436
|
+
private maxValidator;
|
|
3437
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputComponent, never>;
|
|
3438
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NumberInputComponent, "number-input", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
|
|
3439
|
+
}
|
|
3440
|
+
|
|
3441
|
+
declare class PhoneInputComponent implements ControlValueAccessor, Validator, OnChanges {
|
|
3442
|
+
private transloco;
|
|
3443
|
+
private injector;
|
|
3444
|
+
label: string;
|
|
3445
|
+
name: string;
|
|
3446
|
+
id: string;
|
|
3447
|
+
placeholder: string;
|
|
3448
|
+
required: boolean;
|
|
3449
|
+
readonly: boolean;
|
|
3450
|
+
maxNationalDigits: number | null;
|
|
3451
|
+
minNationalDigits: number | null;
|
|
3452
|
+
defaultCountry: string;
|
|
3453
|
+
fieldGroupClass: string;
|
|
3454
|
+
readonly countries: tickera_angular_components.PhoneCountry[];
|
|
3455
|
+
readonly phoneOptions: {
|
|
3456
|
+
search: string;
|
|
3457
|
+
name: string;
|
|
3458
|
+
isoCode: string;
|
|
3459
|
+
dialCode: string;
|
|
3460
|
+
}[];
|
|
3461
|
+
selectedIso: string;
|
|
3462
|
+
nationalNumber: string;
|
|
3463
|
+
disabled: boolean;
|
|
3464
|
+
onChange: any;
|
|
3465
|
+
onTouched: any;
|
|
3466
|
+
onValidatorChange: () => void;
|
|
3467
|
+
private _ngControl;
|
|
3468
|
+
constructor(transloco: TranslocoService, injector: Injector);
|
|
3469
|
+
get ngControl(): NgControl | null;
|
|
3470
|
+
get selectedCountry(): tickera_angular_components.PhoneCountry;
|
|
3471
|
+
get dialCode(): string;
|
|
3472
|
+
dialCodeOf(isoCode: string): string;
|
|
3473
|
+
get value(): string;
|
|
3474
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3475
|
+
registerOnValidatorChange(fn: () => void): void;
|
|
3476
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
3477
|
+
writeValue(value: string | null | undefined): void;
|
|
3478
|
+
registerOnChange(fn: any): void;
|
|
3479
|
+
registerOnTouched(fn: any): void;
|
|
3480
|
+
setDisabledState(isDisabled: boolean): void;
|
|
3481
|
+
onInput(event: Event): void;
|
|
3482
|
+
onCountryChange(isoCode: string): void;
|
|
3483
|
+
get inputId(): string;
|
|
3484
|
+
get showError(): boolean;
|
|
3485
|
+
get errorMessage(): string;
|
|
3486
|
+
get effectivePlaceholder(): string;
|
|
3487
|
+
get fieldGroupClasses(): string;
|
|
3488
|
+
flag(isoCode: string): string;
|
|
3489
|
+
private sanitize;
|
|
3490
|
+
private nationalDigits;
|
|
3491
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PhoneInputComponent, never>;
|
|
3492
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PhoneInputComponent, "phone-input", never, { "label": { "alias": "label"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "maxNationalDigits": { "alias": "maxNationalDigits"; "required": false; }; "minNationalDigits": { "alias": "minNationalDigits"; "required": false; }; "defaultCountry": { "alias": "defaultCountry"; "required": false; }; "fieldGroupClass": { "alias": "fieldGroupClass"; "required": false; }; }, {}, never, never, true, never>;
|
|
3493
|
+
}
|
|
3494
|
+
|
|
1790
3495
|
declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {
|
|
1791
3496
|
ngControl: NgControl;
|
|
1792
3497
|
private transloco;
|
|
@@ -1804,7 +3509,8 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
|
|
|
1804
3509
|
onChange: any;
|
|
1805
3510
|
onTouched: any;
|
|
1806
3511
|
private subscription;
|
|
1807
|
-
|
|
3512
|
+
isBrowser: boolean;
|
|
3513
|
+
constructor(ngControl: NgControl, transloco: TranslocoService, platformId: object);
|
|
1808
3514
|
ngOnInit(): void;
|
|
1809
3515
|
ngOnDestroy(): void;
|
|
1810
3516
|
writeValue(value: any): void;
|
|
@@ -1815,7 +3521,7 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
|
|
|
1815
3521
|
get showError(): boolean;
|
|
1816
3522
|
get errorMessage(): string;
|
|
1817
3523
|
get fieldGroupClasses(): string;
|
|
1818
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null]>;
|
|
3524
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null, null]>;
|
|
1819
3525
|
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>;
|
|
1820
3526
|
}
|
|
1821
3527
|
|
|
@@ -1979,14 +3685,14 @@ declare class FileUploadPreviewComponent {
|
|
|
1979
3685
|
interface AsyncSelectConfig<T = any> {
|
|
1980
3686
|
load: (params?: {
|
|
1981
3687
|
search?: string;
|
|
1982
|
-
parentId?: number;
|
|
3688
|
+
parentId?: number | number[];
|
|
1983
3689
|
}) => Observable<T>;
|
|
1984
3690
|
map: (response: T) => SelectOption[];
|
|
1985
3691
|
}
|
|
1986
3692
|
declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {
|
|
1987
3693
|
config?: AsyncSelectConfig<any>;
|
|
1988
3694
|
items: SelectOption[];
|
|
1989
|
-
parentId?: number | null;
|
|
3695
|
+
parentId?: number | number[] | null;
|
|
1990
3696
|
label: string;
|
|
1991
3697
|
placeholder: string;
|
|
1992
3698
|
name: string;
|
|
@@ -2018,6 +3724,7 @@ declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, Cont
|
|
|
2018
3724
|
private searchMode;
|
|
2019
3725
|
private loadAndMap;
|
|
2020
3726
|
private fetchData;
|
|
3727
|
+
private hasParentId;
|
|
2021
3728
|
private handleParentIdChange;
|
|
2022
3729
|
onSearch(event: any): void;
|
|
2023
3730
|
onSelectChange(value: any): void;
|
|
@@ -2429,7 +4136,7 @@ declare class ShowMultiSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2429
4136
|
static ɵcmp: i0.ɵɵComponentDeclaration<ShowMultiSelectComponent, "show-multi-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, true, never>;
|
|
2430
4137
|
}
|
|
2431
4138
|
|
|
2432
|
-
declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
4139
|
+
declare class PriceZoneSelectComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, Validator {
|
|
2433
4140
|
private platformId;
|
|
2434
4141
|
private priceZoneService;
|
|
2435
4142
|
label: string;
|
|
@@ -2440,6 +4147,7 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2440
4147
|
showError: boolean;
|
|
2441
4148
|
customClass: string;
|
|
2442
4149
|
control?: AbstractControl | null;
|
|
4150
|
+
showIds: number[];
|
|
2443
4151
|
priceZoneChange: EventEmitter<number | null>;
|
|
2444
4152
|
priceZones: WritableSignal<SelectOption[]>;
|
|
2445
4153
|
loading: WritableSignal<boolean>;
|
|
@@ -2451,6 +4159,7 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2451
4159
|
onTouched: any;
|
|
2452
4160
|
constructor(platformId: string, priceZoneService: PriceZoneService);
|
|
2453
4161
|
ngOnInit(): void;
|
|
4162
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2454
4163
|
get formControl(): FormControl;
|
|
2455
4164
|
ngOnDestroy(): void;
|
|
2456
4165
|
onSearchChange(search: string): void;
|
|
@@ -2463,7 +4172,29 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2463
4172
|
} | null;
|
|
2464
4173
|
get isInvalid(): boolean;
|
|
2465
4174
|
static ɵfac: i0.ɵɵFactoryDeclaration<PriceZoneSelectComponent, never>;
|
|
2466
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PriceZoneSelectComponent, "price-zone-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, { "priceZoneChange": "priceZoneChange"; }, never, never, true, never>;
|
|
4175
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PriceZoneSelectComponent, "price-zone-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showError": { "alias": "showError"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "control": { "alias": "control"; "required": false; }; "showIds": { "alias": "showIds"; "required": false; }; }, { "priceZoneChange": "priceZoneChange"; }, never, never, true, never>;
|
|
4176
|
+
}
|
|
4177
|
+
|
|
4178
|
+
declare class PerformanceTicketStatusBadgeComponent {
|
|
4179
|
+
ticket: PerformanceTicket;
|
|
4180
|
+
size: BadgeSize;
|
|
4181
|
+
protected get statusColors(): {
|
|
4182
|
+
text: string;
|
|
4183
|
+
bg: string;
|
|
4184
|
+
};
|
|
4185
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketStatusBadgeComponent, never>;
|
|
4186
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceTicketStatusBadgeComponent, "performance-ticket-status-badge", never, { "ticket": { "alias": "ticket"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
4187
|
+
}
|
|
4188
|
+
|
|
4189
|
+
declare class PerformanceStatusBadgeComponent {
|
|
4190
|
+
performance: Performance;
|
|
4191
|
+
size: BadgeSize;
|
|
4192
|
+
protected get statusColors(): {
|
|
4193
|
+
text: string;
|
|
4194
|
+
bg: string;
|
|
4195
|
+
};
|
|
4196
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceStatusBadgeComponent, never>;
|
|
4197
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceStatusBadgeComponent, "performance-status-badge", never, { "performance": { "alias": "performance"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
2467
4198
|
}
|
|
2468
4199
|
|
|
2469
4200
|
declare class DaySelectorGridComponent {
|
|
@@ -2487,11 +4218,15 @@ declare class DaySelectorGridComponent {
|
|
|
2487
4218
|
declare class PerformanceCardComponent {
|
|
2488
4219
|
protected listEventService: PerformancesListEventsService;
|
|
2489
4220
|
card: DailyPerformanceItem;
|
|
4221
|
+
linkText: string;
|
|
4222
|
+
linkUrlFn?: (card: DailyPerformanceItem) => string;
|
|
4223
|
+
linkQueryParams?: Record<string, any>;
|
|
2490
4224
|
constructor(listEventService: PerformancesListEventsService);
|
|
4225
|
+
get badgeColor(): 'success' | 'error';
|
|
2491
4226
|
onSelect(): void;
|
|
2492
4227
|
isSelected(): boolean;
|
|
2493
4228
|
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardComponent, never>;
|
|
2494
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardComponent, "performance-card", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
|
|
4229
|
+
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>;
|
|
2495
4230
|
}
|
|
2496
4231
|
|
|
2497
4232
|
declare class PerformanceCardListComponent {
|
|
@@ -2499,6 +4234,9 @@ declare class PerformanceCardListComponent {
|
|
|
2499
4234
|
protected performanceService: PerformanceService;
|
|
2500
4235
|
protected listEventService: PerformancesListEventsService;
|
|
2501
4236
|
protected toastService: ToastService;
|
|
4237
|
+
linkText: string;
|
|
4238
|
+
linkUrlFn?: (card: DailyPerformanceItem) => string;
|
|
4239
|
+
linkQueryParams?: Record<string, any>;
|
|
2502
4240
|
loadingData: WritableSignal<boolean>;
|
|
2503
4241
|
performances: WritableSignal<DailyPerformanceItem[]>;
|
|
2504
4242
|
constructor(platformId: object, performanceService: PerformanceService, listEventService: PerformancesListEventsService, toastService: ToastService);
|
|
@@ -2506,7 +4244,7 @@ declare class PerformanceCardListComponent {
|
|
|
2506
4244
|
private loadData;
|
|
2507
4245
|
get selectedDayDate(): string | null;
|
|
2508
4246
|
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardListComponent, never>;
|
|
2509
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, {}, {}, never, never, true, never>;
|
|
4247
|
+
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>;
|
|
2510
4248
|
}
|
|
2511
4249
|
|
|
2512
4250
|
declare class PerformanceStepperComponent {
|
|
@@ -2535,9 +4273,9 @@ declare class ShowsFilterComponent {
|
|
|
2535
4273
|
}
|
|
2536
4274
|
|
|
2537
4275
|
interface PriceZoneItem {
|
|
2538
|
-
|
|
4276
|
+
color: string;
|
|
2539
4277
|
name: string;
|
|
2540
|
-
|
|
4278
|
+
available_seats: number;
|
|
2541
4279
|
price: string;
|
|
2542
4280
|
}
|
|
2543
4281
|
|
|
@@ -2553,5 +4291,454 @@ declare class ZonePriceListComponent {
|
|
|
2553
4291
|
static ɵcmp: i0.ɵɵComponentDeclaration<ZonePriceListComponent, "zone-price-list", never, { "zones": { "alias": "zones"; "required": true; }; }, {}, never, never, true, never>;
|
|
2554
4292
|
}
|
|
2555
4293
|
|
|
2556
|
-
|
|
2557
|
-
|
|
4294
|
+
declare class TicketMapWidgetComponent {
|
|
4295
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetComponent, never>;
|
|
4296
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetComponent, "ticket-map-widget", never, {}, {}, never, ["*"], true, never>;
|
|
4297
|
+
}
|
|
4298
|
+
|
|
4299
|
+
declare class TicketMapWidgetHeaderComponent {
|
|
4300
|
+
title: string;
|
|
4301
|
+
subtitle: string;
|
|
4302
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetHeaderComponent, never>;
|
|
4303
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetHeaderComponent, "ticket-map-widget-header", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
4304
|
+
}
|
|
4305
|
+
|
|
4306
|
+
declare class TicketMapZoomControlsComponent {
|
|
4307
|
+
private zoomService;
|
|
4308
|
+
readonly currentZoom: i0.Signal<number>;
|
|
4309
|
+
readonly zoomPercentage: i0.Signal<string>;
|
|
4310
|
+
constructor(zoomService: TicketMapZoomService);
|
|
4311
|
+
zoomIn(): void;
|
|
4312
|
+
zoomOut(): void;
|
|
4313
|
+
resetZoom(): void;
|
|
4314
|
+
fitToContainer(): void;
|
|
4315
|
+
handleZoomAction(action: string): void;
|
|
4316
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomControlsComponent, never>;
|
|
4317
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapZoomControlsComponent, "ticket-map-zoom-controls", never, {}, {}, never, never, true, never>;
|
|
4318
|
+
}
|
|
4319
|
+
|
|
4320
|
+
declare class TicketMapFloorSelectorComponent {
|
|
4321
|
+
private bookingDataService;
|
|
4322
|
+
readonly availableFloors: i0.Signal<tickera_angular_components.HallFloor[]>;
|
|
4323
|
+
readonly visibleFloorIds: i0.Signal<Set<number>>;
|
|
4324
|
+
readonly hasMultipleVisible: i0.Signal<boolean>;
|
|
4325
|
+
constructor(bookingDataService: PerformanceBookingDataService);
|
|
4326
|
+
isFloorVisible(floorId: number): boolean;
|
|
4327
|
+
canToggleOff(floorId: number): boolean;
|
|
4328
|
+
toggleFloor(floorId: number): void;
|
|
4329
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapFloorSelectorComponent, never>;
|
|
4330
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapFloorSelectorComponent, "ticket-map-floor-selector", never, {}, {}, never, never, true, never>;
|
|
4331
|
+
}
|
|
4332
|
+
|
|
4333
|
+
declare class PerformanceTicketMapComponent implements OnDestroy, AfterViewInit {
|
|
4334
|
+
private platformId;
|
|
4335
|
+
protected bookingDataService: PerformanceBookingDataService;
|
|
4336
|
+
protected feedbackModalService: FeedbackModalService;
|
|
4337
|
+
protected selectionService: TicketSelectionService;
|
|
4338
|
+
protected zoomService: TicketMapZoomService;
|
|
4339
|
+
selectionChange: EventEmitter<PerformanceTicket[]>;
|
|
4340
|
+
needsLoginError: EventEmitter<any>;
|
|
4341
|
+
readOnly: boolean;
|
|
4342
|
+
needsLogin: boolean;
|
|
4343
|
+
isLoggedIn: boolean;
|
|
4344
|
+
stageComponent?: StageComponent;
|
|
4345
|
+
protected tooltipData: i0.WritableSignal<TicketMapTooltipData | null>;
|
|
4346
|
+
protected renderData: i0.Signal<ElementRenderData[]>;
|
|
4347
|
+
private stageReady;
|
|
4348
|
+
private autoFitDone;
|
|
4349
|
+
private resizeObserver?;
|
|
4350
|
+
protected floorLayerRefs: i0.Signal<readonly CoreShapeComponent[]>;
|
|
4351
|
+
protected floorLayerName(floorId: number): string;
|
|
4352
|
+
protected floorGroups: i0.Signal<{
|
|
4353
|
+
floorId: number;
|
|
4354
|
+
elements: ElementRenderData[];
|
|
4355
|
+
}[]>;
|
|
4356
|
+
constructor(platformId: object, bookingDataService: PerformanceBookingDataService, feedbackModalService: FeedbackModalService, selectionService: TicketSelectionService, zoomService: TicketMapZoomService);
|
|
4357
|
+
protected get isBrowser(): boolean;
|
|
4358
|
+
ngAfterViewInit(): void;
|
|
4359
|
+
private setupResizeObserver;
|
|
4360
|
+
private syncStageToContainer;
|
|
4361
|
+
ngOnDestroy(): void;
|
|
4362
|
+
private getInternalPointer;
|
|
4363
|
+
protected selectHallFloor(floorId: number): void;
|
|
4364
|
+
protected handleStageClick(konvaEvent: any): void;
|
|
4365
|
+
protected handleStageMouseMove(konvaEvent: any): void;
|
|
4366
|
+
protected handleStageMouseLeave(): void;
|
|
4367
|
+
protected handleWheel(konvaEvent: any): void;
|
|
4368
|
+
protected trackByElementId(_index: number, item: ElementRenderData): number;
|
|
4369
|
+
protected trackByFloorId(_index: number, floor: HallFloorOption): HallFloorOption;
|
|
4370
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketMapComponent, never>;
|
|
4371
|
+
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>;
|
|
4372
|
+
}
|
|
4373
|
+
|
|
4374
|
+
declare class TicketMapPriceZonesComponent {
|
|
4375
|
+
title: string;
|
|
4376
|
+
protected bookingDataService: PerformanceBookingDataService;
|
|
4377
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapPriceZonesComponent, never>;
|
|
4378
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapPriceZonesComponent, "ticket-map-price-zones", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, never, true, never>;
|
|
4379
|
+
}
|
|
4380
|
+
|
|
4381
|
+
declare class TicketMapProductSelectionItemComponent {
|
|
4382
|
+
protected selectionService: TicketSelectionService;
|
|
4383
|
+
product: Product;
|
|
4384
|
+
constructor(selectionService: TicketSelectionService);
|
|
4385
|
+
get quantity(): number;
|
|
4386
|
+
get firstImage(): string | undefined;
|
|
4387
|
+
increment(): void;
|
|
4388
|
+
decrement(): void;
|
|
4389
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapProductSelectionItemComponent, never>;
|
|
4390
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapProductSelectionItemComponent, "ticket-map-product-selection-item", never, { "product": { "alias": "product"; "required": true; }; }, {}, never, never, true, never>;
|
|
4391
|
+
}
|
|
4392
|
+
|
|
4393
|
+
declare class TIcketMapProductSelectionComponent {
|
|
4394
|
+
title: string;
|
|
4395
|
+
subtitle: string;
|
|
4396
|
+
private bookingDataService;
|
|
4397
|
+
readonly products: i0.Signal<tickera_angular_components.Product[]>;
|
|
4398
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TIcketMapProductSelectionComponent, never>;
|
|
4399
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TIcketMapProductSelectionComponent, "ticket-map-product-selection", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, never, true, never>;
|
|
4400
|
+
}
|
|
4401
|
+
|
|
4402
|
+
declare class TicketMapTotalsComponent {
|
|
4403
|
+
protected bookingDataService: PerformanceBookingDataService;
|
|
4404
|
+
protected selectionDetailsService: TicketSelectionDetailsService;
|
|
4405
|
+
protected selectionDiscountService: TicketSelectionDiscountService;
|
|
4406
|
+
protected selectionTotalsService: TicketSelectionTotalsService;
|
|
4407
|
+
protected selectionService: TicketSelectionService;
|
|
4408
|
+
private activatedRoute;
|
|
4409
|
+
title: string;
|
|
4410
|
+
buttonText: string;
|
|
4411
|
+
loadingButtonText: string;
|
|
4412
|
+
isLoading: boolean;
|
|
4413
|
+
onPurchaseClick: EventEmitter<void>;
|
|
4414
|
+
constructor(bookingDataService: PerformanceBookingDataService, selectionDetailsService: TicketSelectionDetailsService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, activatedRoute: ActivatedRoute);
|
|
4415
|
+
get serviceFee(): number;
|
|
4416
|
+
get performanceId(): number;
|
|
4417
|
+
get selectedTicketIds(): number[];
|
|
4418
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapTotalsComponent, never>;
|
|
4419
|
+
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>;
|
|
4420
|
+
}
|
|
4421
|
+
|
|
4422
|
+
declare class TicketMapWrapperComponent {
|
|
4423
|
+
selectionChange: EventEmitter<PerformanceTicket[]>;
|
|
4424
|
+
needsLoginError: EventEmitter<any>;
|
|
4425
|
+
readOnly: boolean;
|
|
4426
|
+
needsLogin: boolean;
|
|
4427
|
+
isLoggedIn: boolean;
|
|
4428
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWrapperComponent, never>;
|
|
4429
|
+
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>;
|
|
4430
|
+
}
|
|
4431
|
+
|
|
4432
|
+
declare class SeatSelectionEmptySummaryComponent {
|
|
4433
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionEmptySummaryComponent, never>;
|
|
4434
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionEmptySummaryComponent, "seat-selection-empty-summary", never, {}, {}, never, never, true, never>;
|
|
4435
|
+
}
|
|
4436
|
+
|
|
4437
|
+
declare class SeatSelectionSummaryComponent {
|
|
4438
|
+
protected selectionService: TicketSelectionService;
|
|
4439
|
+
title: string;
|
|
4440
|
+
clearButtonText: string;
|
|
4441
|
+
constructor(selectionService: TicketSelectionService);
|
|
4442
|
+
trackByItem(item: PerformanceTicket): string | number;
|
|
4443
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryComponent, never>;
|
|
4444
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryComponent, "seat-selection-summary", never, { "title": { "alias": "title"; "required": false; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; }; }, {}, never, never, true, never>;
|
|
4445
|
+
}
|
|
4446
|
+
|
|
4447
|
+
declare class SeatSelectionSummaryItemComponent {
|
|
4448
|
+
protected selectionService: TicketSelectionService;
|
|
4449
|
+
item: PerformanceTicket;
|
|
4450
|
+
constructor(selectionService: TicketSelectionService);
|
|
4451
|
+
getItemTypeIcon: (ticket: PerformanceTicket) => string;
|
|
4452
|
+
get isZone(): boolean;
|
|
4453
|
+
get zoneMax(): number;
|
|
4454
|
+
onZoneQuantityChange(value: number | null): void;
|
|
4455
|
+
removeItem(ticket: PerformanceTicket): void;
|
|
4456
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryItemComponent, never>;
|
|
4457
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryItemComponent, "seat-selection-summary-item", never, { "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
|
|
4458
|
+
}
|
|
4459
|
+
|
|
4460
|
+
declare class ConfirmationOrderModalComponent {
|
|
4461
|
+
private confirmationOrderModalService;
|
|
4462
|
+
private selectionDiscountService;
|
|
4463
|
+
private selectionTotalsService;
|
|
4464
|
+
private selectionService;
|
|
4465
|
+
private bookingDataService;
|
|
4466
|
+
modalTitle: string;
|
|
4467
|
+
confirmButtonText: string;
|
|
4468
|
+
confirmButtonTextLoading: string;
|
|
4469
|
+
loading: boolean;
|
|
4470
|
+
onConfirm: EventEmitter<any>;
|
|
4471
|
+
constructor(confirmationOrderModalService: ConfirmationOrderModalService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, bookingDataService: PerformanceBookingDataService);
|
|
4472
|
+
get isOpen(): i0.WritableSignal<boolean>;
|
|
4473
|
+
get showTitle(): string | null;
|
|
4474
|
+
get performanceStartTime(): Date | string | null;
|
|
4475
|
+
get hallName(): string | null;
|
|
4476
|
+
get venueName(): string | null;
|
|
4477
|
+
get ticketItems(): PerformanceTicket[];
|
|
4478
|
+
get selectedProducts(): {
|
|
4479
|
+
product: Product;
|
|
4480
|
+
quantity: number;
|
|
4481
|
+
}[];
|
|
4482
|
+
ticketItemLabel(ticket: PerformanceTicket): string;
|
|
4483
|
+
ticketItemPrice(ticket: PerformanceTicket): number;
|
|
4484
|
+
private elementTypeLabel;
|
|
4485
|
+
get selectedCount(): number;
|
|
4486
|
+
get serviceFee(): number;
|
|
4487
|
+
get subtotalValue(): number;
|
|
4488
|
+
get ticketSubtotal(): number;
|
|
4489
|
+
get productSubtotal(): number;
|
|
4490
|
+
get productCount(): number;
|
|
4491
|
+
get totalValue(): number;
|
|
4492
|
+
get totalDiscounted(): number | null;
|
|
4493
|
+
get coupon(): tickera_angular_components.Coupon | null;
|
|
4494
|
+
get corporateBond(): tickera_angular_components.CorporateBond | null;
|
|
4495
|
+
get giftBond(): tickera_angular_components.GiftBondPurchase | null;
|
|
4496
|
+
get vipCard(): tickera_angular_components.VipCard | null;
|
|
4497
|
+
get subscription(): {
|
|
4498
|
+
service_fee_exempt: boolean;
|
|
4499
|
+
} | null;
|
|
4500
|
+
/**
|
|
4501
|
+
* A diferencia de coupon/corporateBond/giftBond (que aquí muestran su
|
|
4502
|
+
* valor crudo sin pasar por `discountAmount()`), para VIP y Abono sí se
|
|
4503
|
+
* calcula el monto real en pesos, ya que el descuento es un porcentaje.
|
|
4504
|
+
*/
|
|
4505
|
+
get vipDiscountAmount(): number;
|
|
4506
|
+
get rawServiceFee(): number;
|
|
4507
|
+
get isServiceFeeExempt(): boolean;
|
|
4508
|
+
onClose(): void;
|
|
4509
|
+
confirmOrder(): void;
|
|
4510
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalComponent, never>;
|
|
4511
|
+
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>;
|
|
4512
|
+
}
|
|
4513
|
+
|
|
4514
|
+
declare class OrderInformationComponent {
|
|
4515
|
+
readonly transloco: TranslocoService;
|
|
4516
|
+
private readonly toastService;
|
|
4517
|
+
order: Order;
|
|
4518
|
+
showPayButton: boolean;
|
|
4519
|
+
createMpPreference?: (order: Order) => Observable<MercadoPagoPreference>;
|
|
4520
|
+
paymentLinkCreated: EventEmitter<MercadoPagoPreference>;
|
|
4521
|
+
isLoading: boolean;
|
|
4522
|
+
constructor(transloco: TranslocoService, toastService: ToastService);
|
|
4523
|
+
get hasServiceFeeExemption(): boolean;
|
|
4524
|
+
get showMpButton(): boolean;
|
|
4525
|
+
payWithMercadoPago(): void;
|
|
4526
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderInformationComponent, never>;
|
|
4527
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderInformationComponent, "order-information", never, { "order": { "alias": "order"; "required": true; }; "showPayButton": { "alias": "showPayButton"; "required": false; }; "createMpPreference": { "alias": "createMpPreference"; "required": false; }; }, { "paymentLinkCreated": "paymentLinkCreated"; }, never, never, true, never>;
|
|
4528
|
+
}
|
|
4529
|
+
|
|
4530
|
+
declare class OrderStatusBadgeComponent {
|
|
4531
|
+
protected transloco: TranslocoService;
|
|
4532
|
+
order: Order | RecentOrder;
|
|
4533
|
+
size: BadgeSize;
|
|
4534
|
+
constructor(transloco: TranslocoService);
|
|
4535
|
+
protected get statusColors(): {
|
|
4536
|
+
text: string;
|
|
4537
|
+
bg: string;
|
|
4538
|
+
};
|
|
4539
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderStatusBadgeComponent, never>;
|
|
4540
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderStatusBadgeComponent, "order-status-badge", never, { "order": { "alias": "order"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
declare class OrderItemTypeBadgeComponent {
|
|
4544
|
+
protected transloco: TranslocoService;
|
|
4545
|
+
item: OrderItem;
|
|
4546
|
+
size: BadgeSize;
|
|
4547
|
+
constructor(transloco: TranslocoService);
|
|
4548
|
+
protected get statusColors(): {
|
|
4549
|
+
text: string;
|
|
4550
|
+
bg: string;
|
|
4551
|
+
};
|
|
4552
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemTypeBadgeComponent, never>;
|
|
4553
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemTypeBadgeComponent, "order-item-type-badge", never, { "item": { "alias": "item"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
4554
|
+
}
|
|
4555
|
+
|
|
4556
|
+
declare class OrderItemsComponent {
|
|
4557
|
+
private ticketQrModalService;
|
|
4558
|
+
order: Order;
|
|
4559
|
+
isCustomer: boolean;
|
|
4560
|
+
ticketCanOpenQr: (order: Order, ticket: tickera_angular_components.PerformanceTicket) => boolean;
|
|
4561
|
+
constructor(ticketQrModalService: TicketQrModalService);
|
|
4562
|
+
protected get orderItems(): Order['order_items'];
|
|
4563
|
+
protected get products(): Order['order_items'];
|
|
4564
|
+
protected get tickets(): Order['order_items'];
|
|
4565
|
+
protected get giftBonds(): Order['order_items'];
|
|
4566
|
+
protected get corporateBonds(): Order['order_items'];
|
|
4567
|
+
protected get vipRecharges(): Order['order_items'];
|
|
4568
|
+
protected get showActionColumn(): boolean;
|
|
4569
|
+
protected itemTotal(quantity: number, price: number | null): number;
|
|
4570
|
+
protected hasDiscount(): boolean;
|
|
4571
|
+
protected hasServiceFeeExemption(): boolean;
|
|
4572
|
+
protected hasTicketDiscount(item: OrderItem): boolean;
|
|
4573
|
+
protected get totals(): {
|
|
4574
|
+
giftBonds: number;
|
|
4575
|
+
corporateBonds: number;
|
|
4576
|
+
products: number;
|
|
4577
|
+
tickets: number;
|
|
4578
|
+
vipRecharges: number;
|
|
4579
|
+
};
|
|
4580
|
+
openTicketQr(ticketUuid: string, description: string): void;
|
|
4581
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemsComponent, never>;
|
|
4582
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemsComponent, "order-items", never, { "order": { "alias": "order"; "required": true; }; "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
|
|
4583
|
+
}
|
|
4584
|
+
|
|
4585
|
+
declare class OrderDiscountAppliedComponent {
|
|
4586
|
+
order: Order;
|
|
4587
|
+
protected get discountInfo(): OrderDiscountInfo;
|
|
4588
|
+
protected get hasDiscount(): boolean;
|
|
4589
|
+
protected get discountPercentage(): number | null;
|
|
4590
|
+
protected get serviceFeeExemptValue(): number;
|
|
4591
|
+
protected get badgeColors(): {
|
|
4592
|
+
text: string;
|
|
4593
|
+
bg: string;
|
|
4594
|
+
};
|
|
4595
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderDiscountAppliedComponent, never>;
|
|
4596
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderDiscountAppliedComponent, "order-discount-applied", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
|
|
4597
|
+
}
|
|
4598
|
+
|
|
4599
|
+
interface BillingField {
|
|
4600
|
+
label: string;
|
|
4601
|
+
value: string | number | null;
|
|
4602
|
+
}
|
|
4603
|
+
declare class OrderBillingInfoComponent {
|
|
4604
|
+
order: Order;
|
|
4605
|
+
protected get fields(): BillingField[];
|
|
4606
|
+
protected get hasFields(): boolean;
|
|
4607
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderBillingInfoComponent, never>;
|
|
4608
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderBillingInfoComponent, "order-billing-info", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
|
|
4609
|
+
}
|
|
4610
|
+
|
|
4611
|
+
declare class OrderTransactionsComponent {
|
|
4612
|
+
private transactionDetailsModalService;
|
|
4613
|
+
order: Order;
|
|
4614
|
+
constructor(transactionDetailsModalService: OrderTransactionDetailsModalService);
|
|
4615
|
+
protected get transactions(): Transaction[];
|
|
4616
|
+
protected get hasTransactions(): boolean;
|
|
4617
|
+
protected get txColors(): Record<string, {
|
|
4618
|
+
text: string;
|
|
4619
|
+
bg: string;
|
|
4620
|
+
}>;
|
|
4621
|
+
protected openTransaction(transaction: Transaction): void;
|
|
4622
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionsComponent, never>;
|
|
4623
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionsComponent, "order-transactions", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
|
|
4624
|
+
}
|
|
4625
|
+
|
|
4626
|
+
declare class OrderTransactionDetailsModalComponent {
|
|
4627
|
+
private modalService;
|
|
4628
|
+
isOpen: WritableSignal<boolean> | null;
|
|
4629
|
+
transaction: Transaction | null;
|
|
4630
|
+
get modalIsOpen(): WritableSignal<boolean>;
|
|
4631
|
+
get selectedTransaction(): WritableSignal<Transaction | null>;
|
|
4632
|
+
protected get txColors(): Record<TransactionStatus, {
|
|
4633
|
+
text: string;
|
|
4634
|
+
bg: string;
|
|
4635
|
+
}>;
|
|
4636
|
+
protected get gatewayResponse(): string;
|
|
4637
|
+
onClose(): void;
|
|
4638
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalComponent, never>;
|
|
4639
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionDetailsModalComponent, "order-transaction-details-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, true, never>;
|
|
4640
|
+
}
|
|
4641
|
+
|
|
4642
|
+
declare class TicketQrComponent implements OnInit, OnDestroy {
|
|
4643
|
+
private ticketQrService;
|
|
4644
|
+
private platformId;
|
|
4645
|
+
ticketUuid: string;
|
|
4646
|
+
isCustomer: boolean;
|
|
4647
|
+
qrCanvas: ElementRef<HTMLCanvasElement>;
|
|
4648
|
+
loading: i0.WritableSignal<boolean>;
|
|
4649
|
+
error: i0.WritableSignal<boolean>;
|
|
4650
|
+
refreshing: i0.WritableSignal<boolean>;
|
|
4651
|
+
countdown: i0.WritableSignal<number>;
|
|
4652
|
+
downloading: i0.WritableSignal<boolean>;
|
|
4653
|
+
private destroy$;
|
|
4654
|
+
private refreshTimeout;
|
|
4655
|
+
private countdownInterval;
|
|
4656
|
+
private isFetching;
|
|
4657
|
+
constructor(ticketQrService: TicketQrService, platformId: Object);
|
|
4658
|
+
ngOnInit(): void;
|
|
4659
|
+
ngOnDestroy(): void;
|
|
4660
|
+
private onVisibilityChange;
|
|
4661
|
+
private onFocus;
|
|
4662
|
+
private refreshFromReenter;
|
|
4663
|
+
retry(): void;
|
|
4664
|
+
downloadPdf(): void;
|
|
4665
|
+
private clearTimers;
|
|
4666
|
+
private fetchAndRender;
|
|
4667
|
+
private scheduleRefresh;
|
|
4668
|
+
private startCountdown;
|
|
4669
|
+
private renderQr;
|
|
4670
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrComponent, never>;
|
|
4671
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrComponent, "performance-ticket-qr", never, { "ticketUuid": { "alias": "ticketUuid"; "required": true; }; "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
|
|
4672
|
+
}
|
|
4673
|
+
|
|
4674
|
+
declare class TicketQrModalComponent {
|
|
4675
|
+
private ticketQrModalService;
|
|
4676
|
+
isCustomer: boolean;
|
|
4677
|
+
constructor(ticketQrModalService: TicketQrModalService);
|
|
4678
|
+
get isOpen(): i0.WritableSignal<boolean>;
|
|
4679
|
+
get ticketUuid(): i0.WritableSignal<string | null>;
|
|
4680
|
+
get ticketDescription(): i0.WritableSignal<string | null>;
|
|
4681
|
+
onClose(): void;
|
|
4682
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalComponent, never>;
|
|
4683
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrModalComponent, "ticket-qr-modal", never, { "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
|
|
4684
|
+
}
|
|
4685
|
+
|
|
4686
|
+
declare class VipBalanceCardComponent {
|
|
4687
|
+
card: VipCard | null;
|
|
4688
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipBalanceCardComponent, never>;
|
|
4689
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipBalanceCardComponent, "vip-balance-card", never, { "card": { "alias": "card"; "required": false; }; }, {}, never, never, true, never>;
|
|
4690
|
+
}
|
|
4691
|
+
|
|
4692
|
+
declare class VipCardStatusBadgeComponent {
|
|
4693
|
+
protected readonly tranloco: TranslocoService;
|
|
4694
|
+
card: VipCard;
|
|
4695
|
+
get statusColor(): BadgeColor;
|
|
4696
|
+
get statusTranslationKey(): string;
|
|
4697
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipCardStatusBadgeComponent, never>;
|
|
4698
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipCardStatusBadgeComponent, "vip-card-status-badge", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
|
|
4699
|
+
}
|
|
4700
|
+
|
|
4701
|
+
declare class VipRechargeModalComponent implements OnChanges {
|
|
4702
|
+
private fb;
|
|
4703
|
+
protected transloco: TranslocoService;
|
|
4704
|
+
title: string;
|
|
4705
|
+
submitLabel: string;
|
|
4706
|
+
loading: boolean;
|
|
4707
|
+
amountStep: number;
|
|
4708
|
+
minAmount: number;
|
|
4709
|
+
maxAmount: number;
|
|
4710
|
+
isOpen: WritableSignal<boolean>;
|
|
4711
|
+
/**
|
|
4712
|
+
* Cuando es true (uso desde el ecommerce/cliente), el método de pago queda
|
|
4713
|
+
* fijo en Mercado Pago y no se muestra el selector: desde el lado del
|
|
4714
|
+
* cliente no se pueden elegir métodos de pago administrativos (efectivo,
|
|
4715
|
+
* datáfono, nómina, cambios internos, etc.), esos son exclusivos del
|
|
4716
|
+
* backoffice.
|
|
4717
|
+
*/
|
|
4718
|
+
restrictToMercadoPago: boolean;
|
|
4719
|
+
closeModal: EventEmitter<void>;
|
|
4720
|
+
confirm: EventEmitter<VipRechargeConfirmPayload>;
|
|
4721
|
+
rechargeForm: FormGroup;
|
|
4722
|
+
paymentMethodOptions: {
|
|
4723
|
+
label: string;
|
|
4724
|
+
value: string;
|
|
4725
|
+
}[];
|
|
4726
|
+
constructor(fb: FormBuilder, transloco: TranslocoService);
|
|
4727
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
4728
|
+
private applyPaymentMethodRestriction;
|
|
4729
|
+
onClose(): void;
|
|
4730
|
+
onSubmit(): void;
|
|
4731
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipRechargeModalComponent, never>;
|
|
4732
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipRechargeModalComponent, "vip-recharge-modal", never, { "title": { "alias": "title"; "required": false; }; "submitLabel": { "alias": "submitLabel"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "amountStep": { "alias": "amountStep"; "required": false; }; "minAmount": { "alias": "minAmount"; "required": false; }; "maxAmount": { "alias": "maxAmount"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "restrictToMercadoPago": { "alias": "restrictToMercadoPago"; "required": false; }; }, { "closeModal": "closeModal"; "confirm": "confirm"; }, never, never, true, never>;
|
|
4733
|
+
}
|
|
4734
|
+
|
|
4735
|
+
declare class VipTransactionsTableComponent {
|
|
4736
|
+
transactions: VipTransaction[];
|
|
4737
|
+
loading: boolean;
|
|
4738
|
+
typeLabel(type: VipTransactionType): string;
|
|
4739
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipTransactionsTableComponent, never>;
|
|
4740
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipTransactionsTableComponent, "vip-transactions-table", never, { "transactions": { "alias": "transactions"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
|
|
4741
|
+
}
|
|
4742
|
+
|
|
4743
|
+
export { ADMIN_API_ROUTES, ADMISSION_API_ROUTES, ALERT_ICONS, AdminLayoutComponent, AdminNavbarComponent, AdminSelectComponent, AdminService, AdmissionQueueService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, BrowserZoomLockService, BulkSaveBarComponent, 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, IdentityDocumentInputComponent, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MembershipStatus, MinTodayValidator, MustMatchValidator, NumberInputComponent, ORDER_DISCOUNT_COLORS, ORDER_ITEM_TYPES_COLORS, ORDER_STATUS_COLORS, OrderBillingInfoComponent, OrderDiscountAppliedComponent, OrderInformationComponent, OrderItemType, OrderItemTypeBadgeComponent, OrderItemsComponent, OrderStatus, OrderStatusBadgeComponent, OrderTransactionDetailsModalComponent, OrderTransactionDetailsModalService, OrderTransactionsComponent, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PERFORMANCE_STATUS_COLORS, PERFORMANCE_TICKET_STATUS_COLORS, PHONE_COUNTRIES, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PaymentMethod, PendingChangesService, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformancesListEventsService, PhoneInputComponent, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, PublicLayoutComponent, PurchaseLimitService, QuickStatusEditComponent, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, STATE_API_ENDPOINTS, SeatAvailabilitySseService, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowTypeBadgeComponent, ShowsFilterComponent, SidebarMenuComponent, SidebarStateService, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_FLOOR_HOVER_FADE_MS, TICKET_MAP_FLOOR_HOVER_OPACITY, TICKET_MAP_GRID_SIZE, TICKET_MAP_LAST_TICKETS_LIMIT, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TIcketMapProductSelectionComponent, TRANSACTION_STATUS_COLORS, TextExpandableComponent, TickeraTranslocoLoader, TicketMapFloorSelectorComponent, TicketMapPriceZonesComponent, TicketMapProductSelectionItemComponent, TicketMapTotalsComponent, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapWrapperComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketQrComponent, TicketQrModalComponent, TicketQrModalService, TicketQrService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, TransactionStatus, VENUES_API_ROUTES, VIP_CARDS_API_ROUTES, VipBalanceCardComponent, VipCardService, VipCardStatus, VipCardStatusBadgeComponent, VipRechargeModalComponent, VipTransactionType, VipTransactionsTableComponent, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, emailValidator, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getAdminFullname, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, ticketCanOpenQr, tintColor, transformImageToFile, transformUrlParams };
|
|
4744
|
+
export type { ActivateVipCardParams, Admin, AdminsResponse, AdmissionEventMessage, AdmissionJoinResponse, AdmissionStatus, AsyncSelectConfig, Auditable, BadgeColor, BadgeSize, BreadcrumbStep, BreadcrumbTheme, CitiesResponse, City, CityResponse, CommonFetchAllParams, CorporateBond, CorporateBondCode, CorporateBondResponse, CountriesResponse, Country, CountryResponse, Coupon, CouponResponse, Customer, CustomerResponse, CustomersResponse, DailyPerformanceHall, DailyPerformanceItem, DailyPerformancePriceZone, DailyPerformanceShow, DailyPerformanceVenue, DailyPerformancesResponse, DeleteConfirmationOpen, DragDropEvent, DynamicTableHeader, ElementPropertiesTab, ElementRenderData, FeedbackModalElement, FeedbackModalType, FetchAdminsParams, FetchCitiesParams, FetchCountriesParams, FetchCustomersParams, FetchDailyPerformancesParams, FetchProductCategoriesParams, FetchProductTagsParams, FetchProductTypesParams, FetchProductsParams, FetchShowCategoriesParams, FetchShowGendersParams, FetchShowTypesParams, FetchShowsParams, FetchStatesParams, FetchVipCardsParams, FileUploadConfig, FindAllPerformancesParams, FindAllPriceZoneParams, GiftBond, GiftBondImage, GiftBondPurchase, GiftBondPurchaseResponse, GiftBondPurchasesResponse, GiftBondResponse, GiftBondsResponse, Hall, HallFloor, HallFloorOption, IdentityDocumentType, KonvaShapeConfig, Membership, MercadoPagoPreference, ModalSize, NumerationConfig, Order, OrderBillingInfo, OrderDiscountInfo, OrderDiscountType, OrderItem, OrderPerformanceSnapshot, OrderResponse, OrderShowSnapshot, OrdersResponse, Performance, PerformanceAvailableDay, PerformanceBookingDataResponse, PerformanceResponse, PerformanceTicket, PerformancesAvailableDaysResponse, PerformancesResponseInterface, PhoneCountry, PriceZone, PriceZoneResponse, PriceZoneUpdateResponse, PriceZonesResponseInterface, Product, ProductCategoriesResponse, ProductCategory, ProductCategoryResponse, ProductImage, ProductResponse, ProductTag, ProductTagResponse, ProductTagsResponse, ProductTaxonomy, ProductType, ProductTypeResponse, ProductTypesResponse, ProductsResponseInterface, QrTokenData, QrTokenResponse, RecentOrder, RecentRoomMap, ReservePerformanceDto, RoomMap, RoomMapBaseElement, RoomMapCanvasConfiguration, RoomMapCanvasElement, RoomMapChairPosition, RoomMapElementTemplate, RoomMapExitElement, RoomMapGridPosition, RoomMapPosition, RoomMapProductionAreaElement, RoomMapSeatDisplayState, RoomMapSeatElement, RoomMapSeatState, RoomMapSize, RoomMapStageElement, RoomMapTableElement, RoomMapUnavailableElement, RoomMapZoneElement, SeatEventMessage, SeatStatusUpdate, SelectOption, SelectedDiscountCard, Show, ShowCategoriesResponse, ShowCategory, ShowCategoryResponse, ShowGender, ShowGenderResponse, ShowGendersResponse, ShowImage, ShowResponse, ShowType, ShowTypeResponse, ShowTypesResponse, ShowsResponseInterface, SidebarMenuItem, State, StateResponse, StatesResponse, TextFontSize, TickeraComponentsConfig, TicketMapSeatPosition, TicketMapTableChairPosition, TicketMapTooltipData, TicketMapZoneQuantityState, TicketMapZoomConfig, Transaction, UploadedFile, ValidateCorporateBondResponse, ValidateCouponResponse, ValidateGiftBondResponse, Venue, VenueImage, VipCard, VipCardResponse, VipCardsResponse, VipCategorySnapshot, VipOrderResponse, VipRechargeConfirmPayload, VipTransaction, VipTransactionsResponse };
|