tickera-angular-components 0.0.1-dev.21 → 0.0.1-dev.212
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 +9328 -2687
- 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 +2742 -465
- 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;
|
|
@@ -79,15 +86,28 @@ 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;
|
|
99
|
+
getAvailableDaysAdmin: string;
|
|
90
100
|
publicAvailablePerformances: string;
|
|
101
|
+
dailyPerformancesAdmin: string;
|
|
102
|
+
pedagogicList: string;
|
|
103
|
+
pedagogicAvailability: (id: number) => string;
|
|
104
|
+
createPedagogicOrder: (id: number) => string;
|
|
105
|
+
seatEventsTicket: (id: number) => string;
|
|
106
|
+
seatEventsTicketAdmin: (id: number) => string;
|
|
107
|
+
seatEvents: (id: number) => string;
|
|
108
|
+
myQrToken: (ticketUuid: string) => string;
|
|
109
|
+
ticketPdf: (ticketUuid: string) => string;
|
|
110
|
+
myTicketPdf: (ticketUuid: string) => string;
|
|
91
111
|
};
|
|
92
112
|
|
|
93
113
|
declare const PRICE_ZONES_API_ROUTES: {
|
|
@@ -166,172 +186,36 @@ declare const VENUES_API_ROUTES: {
|
|
|
166
186
|
deleteOneImage: (venueId: number, imageId: number) => string;
|
|
167
187
|
};
|
|
168
188
|
|
|
169
|
-
declare
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
}
|
|
282
|
-
|
|
283
|
-
interface RoomMapExitElement extends RoomMapBaseElement {
|
|
284
|
-
type: RoomMapElementType.EXIT;
|
|
285
|
-
exitName?: string;
|
|
286
|
-
exitType: 'emergency' | 'regular';
|
|
287
|
-
width: number;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
interface RoomMapProductionAreaElement extends RoomMapBaseElement {
|
|
291
|
-
type: RoomMapElementType.PRODUCTION_AREA;
|
|
292
|
-
areaName?: string;
|
|
293
|
-
areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
interface RoomMapSeatElement extends RoomMapBaseElement {
|
|
297
|
-
type: RoomMapElementType.SEAT_BLOCK;
|
|
298
|
-
seatNumber?: string;
|
|
299
|
-
isAvailable: boolean;
|
|
300
|
-
priceCategory?: string;
|
|
301
|
-
}
|
|
189
|
+
declare const VIP_CARDS_API_ROUTES: {
|
|
190
|
+
findAll: string;
|
|
191
|
+
findOne: (id: number) => string;
|
|
192
|
+
activateAdmin: string;
|
|
193
|
+
rechargeAdmin: (id: number) => string;
|
|
194
|
+
updateStatus: (id: number) => string;
|
|
195
|
+
updateTerms: (id: number) => string;
|
|
196
|
+
transactions: (id: number) => string;
|
|
197
|
+
findMy: string;
|
|
198
|
+
activate: string;
|
|
199
|
+
recharge: string;
|
|
200
|
+
};
|
|
302
201
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
orientation: RoomMapElementOrientation;
|
|
307
|
-
isMainStage: boolean;
|
|
308
|
-
}
|
|
202
|
+
declare const BUTTON_VARIANT_CLASSES: Record<string, string>;
|
|
203
|
+
declare const BASE_BUTTON_CLASSES = "btn";
|
|
204
|
+
declare const BUTTON_SIZES_CLASSES: Record<string, string>;
|
|
309
205
|
|
|
310
|
-
|
|
311
|
-
type: RoomMapElementType.TABLE;
|
|
312
|
-
tableNumber?: string;
|
|
313
|
-
capacity: number;
|
|
314
|
-
shape: 'round' | 'rectangular' | 'square';
|
|
315
|
-
}
|
|
206
|
+
declare const FORM_ERROR_MESSAGES: Record<string, string>;
|
|
316
207
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
reason?: string;
|
|
320
|
-
}
|
|
208
|
+
declare const BASE_INPUT_CLASSES: string;
|
|
209
|
+
declare const ERROR_INPUT_CLASSES: string;
|
|
321
210
|
|
|
322
|
-
interface
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
color: string;
|
|
327
|
-
capacity?: number;
|
|
211
|
+
interface PhoneCountry {
|
|
212
|
+
name: string;
|
|
213
|
+
isoCode: string;
|
|
214
|
+
dialCode: string;
|
|
328
215
|
}
|
|
329
216
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
|
|
333
|
-
|
|
334
|
-
type ShowType = 'play' | 'musical' | 'concert' | 'dance' | 'opera' | 'comedy' | 'other';
|
|
217
|
+
declare function phoneCountryFlag(isoCode: string): string;
|
|
218
|
+
declare const PHONE_COUNTRIES: PhoneCountry[];
|
|
335
219
|
|
|
336
220
|
interface SelectOption {
|
|
337
221
|
value: any;
|
|
@@ -339,7 +223,7 @@ interface SelectOption {
|
|
|
339
223
|
disabled?: boolean;
|
|
340
224
|
}
|
|
341
225
|
|
|
342
|
-
interface Admin {
|
|
226
|
+
interface Admin extends Auditable {
|
|
343
227
|
id: number;
|
|
344
228
|
username: string;
|
|
345
229
|
email: string;
|
|
@@ -355,16 +239,17 @@ interface Admin {
|
|
|
355
239
|
reset_password_expires: Date;
|
|
356
240
|
email_verified_at: Date;
|
|
357
241
|
last_login: Date;
|
|
358
|
-
created_at: Date;
|
|
359
|
-
updated_at: Date;
|
|
360
|
-
deleted_at: Date;
|
|
361
242
|
}
|
|
362
243
|
|
|
363
244
|
interface Auditable {
|
|
364
245
|
created_at: Date;
|
|
365
246
|
updated_at: Date;
|
|
247
|
+
deleted_at?: Date | null;
|
|
366
248
|
is_published?: boolean;
|
|
367
249
|
published_at?: Date;
|
|
250
|
+
published_by?: number;
|
|
251
|
+
deleted_by?: number;
|
|
252
|
+
deleted_by_admin?: Admin;
|
|
368
253
|
created_by_admin?: Admin;
|
|
369
254
|
updated_by_admin?: Admin;
|
|
370
255
|
published_by_admin?: Admin;
|
|
@@ -397,30 +282,21 @@ interface DeleteConfirmationOpen {
|
|
|
397
282
|
confirmationText: string;
|
|
398
283
|
}
|
|
399
284
|
|
|
400
|
-
interface AdminsResponse {
|
|
401
|
-
statusCode: number;
|
|
402
|
-
data: {
|
|
403
|
-
admins: Admin[];
|
|
404
|
-
total: number;
|
|
405
|
-
};
|
|
406
|
-
message: string;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
285
|
interface Country {
|
|
410
|
-
id:
|
|
286
|
+
id: number;
|
|
411
287
|
name: string;
|
|
412
288
|
iso2: string;
|
|
413
289
|
}
|
|
414
290
|
|
|
415
291
|
interface State {
|
|
416
|
-
id:
|
|
292
|
+
id: number;
|
|
417
293
|
name: string;
|
|
418
294
|
country_id: number;
|
|
419
295
|
country?: Country;
|
|
420
296
|
}
|
|
421
297
|
|
|
422
298
|
interface City {
|
|
423
|
-
id:
|
|
299
|
+
id: number;
|
|
424
300
|
name: string;
|
|
425
301
|
search_text: string | null;
|
|
426
302
|
state_id: number;
|
|
@@ -459,33 +335,48 @@ interface Venue extends Auditable {
|
|
|
459
335
|
images: VenueImage[];
|
|
460
336
|
}
|
|
461
337
|
|
|
462
|
-
interface HallFloor {
|
|
338
|
+
interface HallFloor extends Auditable {
|
|
463
339
|
id: number;
|
|
464
340
|
name: string;
|
|
465
341
|
level: number;
|
|
466
342
|
max_capacity: number;
|
|
467
343
|
description: string;
|
|
468
344
|
hall_id: number;
|
|
469
|
-
created_at: Date;
|
|
470
|
-
updated_at: Date;
|
|
471
|
-
deleted_at: Date | null;
|
|
472
345
|
}
|
|
473
346
|
|
|
474
|
-
interface Hall {
|
|
347
|
+
interface Hall extends Auditable {
|
|
475
348
|
id: number;
|
|
476
349
|
name: string;
|
|
477
350
|
venue_id: number;
|
|
478
351
|
venue?: Venue;
|
|
479
352
|
hall_floors?: HallFloor[];
|
|
480
|
-
created_at: Date;
|
|
481
|
-
updated_at: Date;
|
|
482
|
-
deleted_at: Date | null;
|
|
483
353
|
}
|
|
484
354
|
|
|
485
|
-
interface
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
355
|
+
interface BreadcrumbStep {
|
|
356
|
+
label: string;
|
|
357
|
+
href?: string;
|
|
358
|
+
icon?: string;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
interface CommonFetchAllParams {
|
|
362
|
+
id?: number;
|
|
363
|
+
page?: number;
|
|
364
|
+
limit?: number;
|
|
365
|
+
search?: string;
|
|
366
|
+
sort_by?: string;
|
|
367
|
+
sort_order?: 'ASC' | 'DESC';
|
|
368
|
+
is_published?: boolean;
|
|
369
|
+
ids_in?: number[];
|
|
370
|
+
ids_not_in?: number[];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
interface SidebarMenuItem {
|
|
374
|
+
labelKey: string;
|
|
375
|
+
icon: string;
|
|
376
|
+
path?: string;
|
|
377
|
+
role?: string[];
|
|
378
|
+
isOpen?: boolean;
|
|
379
|
+
submenu?: SidebarMenuItem[];
|
|
489
380
|
}
|
|
490
381
|
|
|
491
382
|
interface CountriesResponse {
|
|
@@ -497,6 +388,21 @@ interface CountriesResponse {
|
|
|
497
388
|
status: string;
|
|
498
389
|
}
|
|
499
390
|
|
|
391
|
+
interface CountryResponse {
|
|
392
|
+
data: Country;
|
|
393
|
+
message: string;
|
|
394
|
+
status: string;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
interface FetchCountriesParams extends CommonFetchAllParams {
|
|
398
|
+
sort_by?: 'country.id' | 'country.name' | 'country.iso2' | 'country.created_at' | 'country.updated_at';
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
interface FetchStatesParams extends CommonFetchAllParams {
|
|
402
|
+
country_id?: number;
|
|
403
|
+
sort_by?: 'state.id' | 'state.name' | 'state.country_id' | 'state.search_text' | 'state.created_at' | 'state.updated_at';
|
|
404
|
+
}
|
|
405
|
+
|
|
500
406
|
interface StateResponse {
|
|
501
407
|
data: State;
|
|
502
408
|
message: string;
|
|
@@ -512,28 +418,40 @@ interface StatesResponse {
|
|
|
512
418
|
statusCode: number;
|
|
513
419
|
}
|
|
514
420
|
|
|
421
|
+
interface CitiesResponse {
|
|
422
|
+
data: {
|
|
423
|
+
cities: City[];
|
|
424
|
+
total: number;
|
|
425
|
+
};
|
|
426
|
+
message: string;
|
|
427
|
+
status: string;
|
|
428
|
+
}
|
|
429
|
+
|
|
515
430
|
interface CityResponse {
|
|
516
431
|
data: City;
|
|
517
432
|
message: string;
|
|
518
433
|
status: string;
|
|
519
434
|
}
|
|
520
435
|
|
|
521
|
-
interface
|
|
436
|
+
interface FetchCitiesParams extends CommonFetchAllParams {
|
|
437
|
+
state_id?: number;
|
|
438
|
+
sort_by?: 'city.id' | 'city.name' | 'city.state_id' | 'city.search_text' | 'city.created_at' | 'city.updated_at';
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
interface AdminsResponse {
|
|
442
|
+
statusCode: number;
|
|
522
443
|
data: {
|
|
523
|
-
|
|
444
|
+
admins: Admin[];
|
|
524
445
|
total: number;
|
|
525
446
|
};
|
|
526
447
|
message: string;
|
|
527
|
-
status: string;
|
|
528
448
|
}
|
|
529
449
|
|
|
530
|
-
interface
|
|
531
|
-
|
|
532
|
-
page?: number;
|
|
533
|
-
search?: string;
|
|
450
|
+
interface FetchAdminsParams extends CommonFetchAllParams {
|
|
451
|
+
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';
|
|
534
452
|
}
|
|
535
453
|
|
|
536
|
-
interface Customer {
|
|
454
|
+
interface Customer extends Auditable {
|
|
537
455
|
username: string;
|
|
538
456
|
email: string;
|
|
539
457
|
mobile: string;
|
|
@@ -564,9 +482,6 @@ interface Customer {
|
|
|
564
482
|
membership_expires_at: Date | null;
|
|
565
483
|
id: number;
|
|
566
484
|
is_active: boolean;
|
|
567
|
-
created_at: Date;
|
|
568
|
-
updated_at: Date;
|
|
569
|
-
deleted_at: Date | null;
|
|
570
485
|
}
|
|
571
486
|
|
|
572
487
|
interface CustomerResponse {
|
|
@@ -584,128 +499,277 @@ interface CustomersResponse {
|
|
|
584
499
|
message: string;
|
|
585
500
|
}
|
|
586
501
|
|
|
587
|
-
interface
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
502
|
+
interface FetchCustomersParams extends CommonFetchAllParams {
|
|
503
|
+
first_name?: string;
|
|
504
|
+
last_name?: string;
|
|
505
|
+
email?: string;
|
|
506
|
+
username?: string;
|
|
507
|
+
mobile?: string;
|
|
508
|
+
document_type?: Customer['document_type'];
|
|
509
|
+
document_number?: string;
|
|
510
|
+
address?: string;
|
|
511
|
+
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';
|
|
592
512
|
}
|
|
593
513
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
514
|
+
declare enum OrderItemType {
|
|
515
|
+
TICKET = "TICKET",
|
|
516
|
+
PRODUCT = "PRODUCT",
|
|
517
|
+
GIFT_BOND = "GIFT_BOND",
|
|
518
|
+
CORPORATE_BOND = "CORPORATE_BOND",
|
|
519
|
+
VIP_RECHARGE = "VIP_RECHARGE",
|
|
520
|
+
SUBSCRIPTION_ACTIVATION = "SUBSCRIPTION_ACTIVATION"
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
declare enum OrderStatus {
|
|
524
|
+
ON_HOLD = "on-hold",
|
|
525
|
+
PENDING_PAYMENT = "pending-payment",
|
|
526
|
+
PROCESSING = "processing",
|
|
527
|
+
COMPLETED = "completed",
|
|
528
|
+
FAILED = "failed",
|
|
529
|
+
CANCELLED = "cancelled",
|
|
530
|
+
REFUNDED = "refunded"
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
declare enum CreatorType {
|
|
534
|
+
ADMIN = "admin",
|
|
535
|
+
CUSTOMER = "customer"
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
declare enum PaymentMethod {
|
|
539
|
+
PAYROLL = "payroll",
|
|
540
|
+
CASH = "cash",
|
|
541
|
+
DATAFONO = "datafono",
|
|
542
|
+
INTERNAL_EXCHANGE = "internal_exchange",
|
|
543
|
+
CLIENT_EXCHANGE = "client_exchange",
|
|
544
|
+
MERCADO_PAGO = "mercado_pago",
|
|
545
|
+
COURTESY = "courtesy"
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
declare enum RoomMapElementType {
|
|
549
|
+
SEAT_BLOCK = "seat_block",
|
|
550
|
+
TABLE = "table",
|
|
551
|
+
ZONE = "zone",
|
|
552
|
+
EXIT = "exit",
|
|
553
|
+
STAGE = "stage",
|
|
554
|
+
PRODUCTION_AREA = "production_area",
|
|
555
|
+
UNAVAILABLE_SPACE = "unavailable_space",
|
|
556
|
+
STAIR = "stair",
|
|
557
|
+
HALLWAY = "hallway"
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
interface RoomMapPosition {
|
|
561
|
+
x: number;
|
|
562
|
+
y: number;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
interface RoomMapSize {
|
|
602
566
|
width: number;
|
|
603
567
|
height: number;
|
|
604
|
-
show_id: number;
|
|
605
|
-
created_at: Date;
|
|
606
568
|
}
|
|
607
569
|
|
|
608
|
-
interface
|
|
609
|
-
id:
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
minimum_age: number | null;
|
|
619
|
-
show_category_id: number | null;
|
|
620
|
-
default_room_map_id: number | null;
|
|
621
|
-
published_at?: Date;
|
|
622
|
-
is_published: boolean;
|
|
623
|
-
images: ShowImage[];
|
|
624
|
-
terms_and_conditions: string;
|
|
625
|
-
performances_quantity?: number;
|
|
570
|
+
interface RoomMapBaseElement {
|
|
571
|
+
id: string;
|
|
572
|
+
type: RoomMapElementType;
|
|
573
|
+
position: RoomMapPosition;
|
|
574
|
+
size: RoomMapSize;
|
|
575
|
+
rotation: number;
|
|
576
|
+
name?: string;
|
|
577
|
+
isLocked: boolean;
|
|
578
|
+
isVisible: boolean;
|
|
579
|
+
zIndex: number;
|
|
626
580
|
}
|
|
627
581
|
|
|
628
|
-
interface
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
582
|
+
interface RoomMapExitElement extends RoomMapBaseElement {
|
|
583
|
+
type: RoomMapElementType.EXIT;
|
|
584
|
+
exitName?: string;
|
|
585
|
+
exitType: 'emergency' | 'regular';
|
|
586
|
+
width: number;
|
|
632
587
|
}
|
|
633
588
|
|
|
634
|
-
interface
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
total: number;
|
|
639
|
-
};
|
|
640
|
-
message: string;
|
|
589
|
+
interface RoomMapProductionAreaElement extends RoomMapBaseElement {
|
|
590
|
+
type: RoomMapElementType.PRODUCTION_AREA;
|
|
591
|
+
areaName?: string;
|
|
592
|
+
areaType: 'lighting' | 'sound' | 'backstage' | 'orchestra' | 'custom';
|
|
641
593
|
}
|
|
642
594
|
|
|
643
|
-
interface
|
|
595
|
+
interface RoomMapSeatElement extends RoomMapBaseElement {
|
|
596
|
+
type: RoomMapElementType.SEAT_BLOCK;
|
|
597
|
+
seatNumber?: string;
|
|
598
|
+
isAvailable: boolean;
|
|
599
|
+
priceCategory?: string;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
declare enum RoomMapElementOrientation {
|
|
603
|
+
TOP = "top",
|
|
604
|
+
RIGHT = "right",
|
|
605
|
+
BOTTOM = "bottom",
|
|
606
|
+
LEFT = "left",
|
|
607
|
+
CENTER = "center"
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
interface RoomMapStageElement extends RoomMapBaseElement {
|
|
611
|
+
type: RoomMapElementType.STAGE;
|
|
612
|
+
stageName?: string;
|
|
613
|
+
orientation: RoomMapElementOrientation;
|
|
614
|
+
isMainStage: boolean;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
interface RoomMapTableElement extends RoomMapBaseElement {
|
|
618
|
+
type: RoomMapElementType.TABLE;
|
|
619
|
+
tableNumber?: string;
|
|
620
|
+
capacity: number;
|
|
621
|
+
shape: 'round' | 'rectangular' | 'square';
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
interface RoomMapUnavailableElement extends RoomMapBaseElement {
|
|
625
|
+
type: RoomMapElementType.UNAVAILABLE_SPACE;
|
|
626
|
+
reason?: string;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
interface RoomMapZoneElement extends RoomMapBaseElement {
|
|
630
|
+
type: RoomMapElementType.ZONE;
|
|
631
|
+
zoneName: string;
|
|
632
|
+
zoneType: 'vip' | 'general' | 'premium' | 'balcony' | 'custom';
|
|
633
|
+
color: string;
|
|
634
|
+
capacity?: number;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
type RoomMapCanvasElement = RoomMapSeatElement | RoomMapTableElement | RoomMapZoneElement | RoomMapExitElement | RoomMapStageElement | RoomMapProductionAreaElement | RoomMapUnavailableElement;
|
|
638
|
+
|
|
639
|
+
type RoomMapSeatDisplayState = 'normal' | 'accessible' | 'non_existent';
|
|
640
|
+
|
|
641
|
+
type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
|
|
642
|
+
|
|
643
|
+
type FeedbackModalType = 'loading' | 'success' | 'info' | 'warning' | 'error';
|
|
644
|
+
|
|
645
|
+
type BadgeSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
646
|
+
|
|
647
|
+
type BadgeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
|
|
648
|
+
|
|
649
|
+
type BreadcrumbTheme = 'light' | 'dark';
|
|
650
|
+
|
|
651
|
+
type TextFontSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';
|
|
652
|
+
|
|
653
|
+
interface FeedbackModalElement {
|
|
644
654
|
id: string;
|
|
645
|
-
|
|
646
|
-
|
|
655
|
+
type: FeedbackModalType;
|
|
656
|
+
title: string;
|
|
657
|
+
isOpen: WritableSignal<boolean>;
|
|
658
|
+
message?: string;
|
|
659
|
+
showHeader?: boolean;
|
|
660
|
+
showCloseButton?: boolean;
|
|
661
|
+
showTitle?: boolean;
|
|
662
|
+
closeModal?: void;
|
|
647
663
|
}
|
|
648
664
|
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
665
|
+
declare enum FileType {
|
|
666
|
+
IMAGE = "image",
|
|
667
|
+
PDF = "pdf",
|
|
668
|
+
EXCEL = "excel",
|
|
669
|
+
WORD = "word",
|
|
670
|
+
TEXT = "text",
|
|
671
|
+
DEFAULT = "default"
|
|
656
672
|
}
|
|
657
673
|
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
674
|
+
declare enum CouponApplicability {
|
|
675
|
+
GENERAL = "GENERAL",
|
|
676
|
+
CUSTOMER_EMAIL = "CUSTOMER_EMAIL",
|
|
677
|
+
MEMBERSHIP_TYPE = "MEMBERSHIP_TYPE",
|
|
678
|
+
SHOWS = "SHOWS",
|
|
679
|
+
PERFORMANCES = "PERFORMANCES"
|
|
662
680
|
}
|
|
663
681
|
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
slug: string;
|
|
682
|
+
declare enum CouponDiscountType {
|
|
683
|
+
PERCENTAGE = "PERCENTAGE",
|
|
684
|
+
FIXED = "FIXED"
|
|
668
685
|
}
|
|
669
686
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
687
|
+
declare enum CouponStatus {
|
|
688
|
+
ACTIVE = "ACTIVE",
|
|
689
|
+
INACTIVE = "INACTIVE",
|
|
690
|
+
EXPIRED = "EXPIRED",
|
|
691
|
+
CONSUMED = "CONSUMED"
|
|
674
692
|
}
|
|
675
693
|
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
694
|
+
declare enum CorporateBondStatus {
|
|
695
|
+
ACTIVE = "ACTIVE",
|
|
696
|
+
INACTIVE = "INACTIVE",
|
|
697
|
+
PENDING = "PENDING",
|
|
698
|
+
PAYMENT_FAILED = "PAYMENT_FAILED",
|
|
699
|
+
EXPIRED = "EXPIRED",
|
|
700
|
+
CONSUMED = "CONSUMED"
|
|
683
701
|
}
|
|
684
702
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
703
|
+
declare enum PerformanceStatus {
|
|
704
|
+
SCHEDULED = "scheduled",
|
|
705
|
+
OPEN = "open",
|
|
706
|
+
CLOSED = "closed",
|
|
707
|
+
CANCELLED = "cancelled",
|
|
708
|
+
COMPLETED = "completed",
|
|
709
|
+
POSTPONED = "postponed"
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
declare enum PerformanceTicketStatus {
|
|
713
|
+
AVAILABLE = "available",
|
|
714
|
+
RESERVED = "reserved",
|
|
715
|
+
SOLD = "sold",
|
|
716
|
+
BLOCKED = "blocked"
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* How a Performance is exposed for booking/browsing.
|
|
721
|
+
* Mirrors `PerformanceVisibilityType` in tickera-backend.
|
|
722
|
+
*/
|
|
723
|
+
declare enum PerformanceVisibilityType {
|
|
724
|
+
PUBLIC = "public",
|
|
725
|
+
PRIVATE = "private",
|
|
726
|
+
PEDAGOGIC = "pedagogic"
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
declare enum GiftBondStatus {
|
|
730
|
+
ACTIVE = "ACTIVE",
|
|
731
|
+
INACTIVE = "INACTIVE"
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
declare enum GiftBondPurchaseStatus {
|
|
735
|
+
AVAILABLE = "AVAILABLE",
|
|
736
|
+
REDEEMED = "REDEEMED",
|
|
737
|
+
EXPIRED = "EXPIRED",
|
|
738
|
+
CANCELLED = "CANCELLED"
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
declare enum TransactionStatus {
|
|
742
|
+
PENDING = "PENDING",
|
|
743
|
+
APPROVED = "APPROVED",
|
|
744
|
+
REJECTED = "REJECTED",
|
|
745
|
+
ERROR = "ERROR"
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
declare enum VipCardStatus {
|
|
749
|
+
ACTIVE = "ACTIVE",
|
|
750
|
+
INACTIVE = "INACTIVE",
|
|
751
|
+
EXPIRED = "EXPIRED"
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
declare enum VipTransactionType {
|
|
755
|
+
INITIAL_RECHARGE = "INITIAL_RECHARGE",
|
|
756
|
+
RECHARGE = "RECHARGE",
|
|
757
|
+
PURCHASE_PAYMENT = "PURCHASE_PAYMENT"
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
declare enum MembershipStatus {
|
|
761
|
+
ACTIVE = "ACTIVE",
|
|
762
|
+
INACTIVE = "INACTIVE"
|
|
697
763
|
}
|
|
698
764
|
|
|
699
|
-
interface FetchProductCategoriesParams {
|
|
765
|
+
interface FetchProductCategoriesParams extends CommonFetchAllParams {
|
|
700
766
|
name?: string;
|
|
701
767
|
slug?: string;
|
|
702
|
-
|
|
703
|
-
limit?: number;
|
|
704
|
-
search?: string;
|
|
768
|
+
sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
|
|
705
769
|
}
|
|
706
770
|
|
|
707
771
|
interface ProductCategory extends Auditable {
|
|
708
|
-
id:
|
|
772
|
+
id: number;
|
|
709
773
|
name: string;
|
|
710
774
|
slug: string;
|
|
711
775
|
}
|
|
@@ -725,16 +789,14 @@ interface ProductCategoryResponse {
|
|
|
725
789
|
message: string;
|
|
726
790
|
}
|
|
727
791
|
|
|
728
|
-
interface FetchProductTagsParams {
|
|
792
|
+
interface FetchProductTagsParams extends CommonFetchAllParams {
|
|
729
793
|
name?: string;
|
|
730
794
|
slug?: string;
|
|
731
|
-
|
|
732
|
-
limit?: number;
|
|
733
|
-
search?: string;
|
|
795
|
+
sort_by?: 'tag.id' | 'tag.name' | 'tag.slug' | 'tag.created_at';
|
|
734
796
|
}
|
|
735
797
|
|
|
736
798
|
interface ProductTag extends Auditable {
|
|
737
|
-
id:
|
|
799
|
+
id: number;
|
|
738
800
|
name: string;
|
|
739
801
|
slug: string;
|
|
740
802
|
}
|
|
@@ -754,16 +816,14 @@ interface ProductTagsResponse {
|
|
|
754
816
|
message: string;
|
|
755
817
|
}
|
|
756
818
|
|
|
757
|
-
interface FetchProductTypesParams {
|
|
819
|
+
interface FetchProductTypesParams extends CommonFetchAllParams {
|
|
758
820
|
name?: string;
|
|
759
821
|
slug?: string;
|
|
760
|
-
|
|
761
|
-
limit?: number;
|
|
762
|
-
search?: string;
|
|
822
|
+
sort_by?: 'type.id' | 'type.name' | 'type.slug' | 'type.created_at';
|
|
763
823
|
}
|
|
764
824
|
|
|
765
825
|
interface ProductType extends Auditable {
|
|
766
|
-
id:
|
|
826
|
+
id: number;
|
|
767
827
|
name: string;
|
|
768
828
|
slug: string;
|
|
769
829
|
}
|
|
@@ -808,7 +868,6 @@ interface Product extends Auditable {
|
|
|
808
868
|
slug: string;
|
|
809
869
|
sku?: string;
|
|
810
870
|
is_limited_edition: boolean;
|
|
811
|
-
is_active: boolean;
|
|
812
871
|
deleted_at: Date | null;
|
|
813
872
|
categories?: ProductCategory[];
|
|
814
873
|
tags?: ProductTag[];
|
|
@@ -816,6 +875,31 @@ interface Product extends Auditable {
|
|
|
816
875
|
images?: ProductImage[];
|
|
817
876
|
}
|
|
818
877
|
|
|
878
|
+
interface ShowImage {
|
|
879
|
+
id: number;
|
|
880
|
+
path: string;
|
|
881
|
+
full_url: string;
|
|
882
|
+
original_name: string;
|
|
883
|
+
extension: string;
|
|
884
|
+
size: number;
|
|
885
|
+
mime_type: string;
|
|
886
|
+
width: number;
|
|
887
|
+
height: number;
|
|
888
|
+
show_id: number;
|
|
889
|
+
created_at: Date;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
interface PriceZone extends Auditable {
|
|
893
|
+
id: number;
|
|
894
|
+
name: string;
|
|
895
|
+
color: string;
|
|
896
|
+
normal_price: number | null;
|
|
897
|
+
is_active: boolean;
|
|
898
|
+
elements: any[];
|
|
899
|
+
room_map_id: number | null;
|
|
900
|
+
room_map?: RoomMap;
|
|
901
|
+
}
|
|
902
|
+
|
|
819
903
|
interface NumerationConfig {
|
|
820
904
|
start_row_letter: string;
|
|
821
905
|
row_order: 'TOP_TO_BOTTOM' | 'BOTTOM_TO_TOP';
|
|
@@ -851,7 +935,7 @@ interface RoomMapElementTemplate {
|
|
|
851
935
|
price_zone?: PriceZone;
|
|
852
936
|
}
|
|
853
937
|
|
|
854
|
-
interface RoomMap {
|
|
938
|
+
interface RoomMap extends Auditable {
|
|
855
939
|
id: number;
|
|
856
940
|
name: string;
|
|
857
941
|
canvas_settings: {
|
|
@@ -867,8 +951,6 @@ interface RoomMap {
|
|
|
867
951
|
related_product_ids: number[];
|
|
868
952
|
products?: Product[];
|
|
869
953
|
venue_name?: string;
|
|
870
|
-
created_at: Date;
|
|
871
|
-
updated_at: Date;
|
|
872
954
|
}
|
|
873
955
|
|
|
874
956
|
interface RoomMapCanvasConfiguration {
|
|
@@ -910,18 +992,153 @@ interface ElementPropertiesTab {
|
|
|
910
992
|
elements_access: string[];
|
|
911
993
|
}
|
|
912
994
|
|
|
913
|
-
interface Performance {
|
|
995
|
+
interface Performance extends Auditable {
|
|
914
996
|
id: number;
|
|
915
997
|
start_time: Date | string;
|
|
916
998
|
end_time: Date | string;
|
|
917
999
|
status: PerformanceStatus;
|
|
918
1000
|
published: boolean;
|
|
1001
|
+
visibility_type?: PerformanceVisibilityType;
|
|
1002
|
+
private_audience_label?: string | null;
|
|
1003
|
+
pedagogic_ticket_price?: number | null;
|
|
919
1004
|
show_id: number;
|
|
920
1005
|
show?: Show;
|
|
921
1006
|
room_map: RoomMap;
|
|
922
1007
|
room_map_id: number;
|
|
923
|
-
|
|
924
|
-
|
|
1008
|
+
performance_tickets?: PerformanceTicket[];
|
|
1009
|
+
can_delete?: boolean;
|
|
1010
|
+
can_cancel?: boolean;
|
|
1011
|
+
can_modify?: boolean;
|
|
1012
|
+
can_reserve?: boolean;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
interface FetchShowCategoriesParams extends CommonFetchAllParams {
|
|
1016
|
+
name?: string;
|
|
1017
|
+
slug?: string;
|
|
1018
|
+
sort_by?: 'category.id' | 'category.name' | 'category.slug' | 'category.created_at';
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
interface ShowCategory extends Auditable {
|
|
1022
|
+
id: number;
|
|
1023
|
+
name: string;
|
|
1024
|
+
slug: string;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
interface ShowCategoriesResponse {
|
|
1028
|
+
statusCode: number;
|
|
1029
|
+
data: {
|
|
1030
|
+
categories: ShowCategory[];
|
|
1031
|
+
total: number;
|
|
1032
|
+
};
|
|
1033
|
+
message: string;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
interface ShowCategoryResponse {
|
|
1037
|
+
statusCode: number;
|
|
1038
|
+
data: ShowCategory;
|
|
1039
|
+
message: string;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
interface FetchShowGendersParams extends CommonFetchAllParams {
|
|
1043
|
+
name?: string;
|
|
1044
|
+
slug?: string;
|
|
1045
|
+
sort_by?: 'gender.id' | 'gender.name' | 'gender.slug' | 'gender.created_at';
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
interface ShowGender extends Auditable {
|
|
1049
|
+
id: number;
|
|
1050
|
+
name: string;
|
|
1051
|
+
slug: string;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
interface ShowGenderResponse {
|
|
1055
|
+
statusCode: number;
|
|
1056
|
+
data: ShowGender;
|
|
1057
|
+
message: string;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
interface ShowGendersResponse {
|
|
1061
|
+
statusCode: number;
|
|
1062
|
+
data: {
|
|
1063
|
+
genders: ShowGender[];
|
|
1064
|
+
total: number;
|
|
1065
|
+
};
|
|
1066
|
+
message: string;
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
interface FetchShowTypesParams extends CommonFetchAllParams {
|
|
1070
|
+
name?: string;
|
|
1071
|
+
slug?: string;
|
|
1072
|
+
sort_by?: 'type.id' | 'type.name' | 'type.slug' | 'type.created_at';
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
interface ShowType extends Auditable {
|
|
1076
|
+
id: number;
|
|
1077
|
+
name: string;
|
|
1078
|
+
slug: string;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
interface ShowTypesResponse {
|
|
1082
|
+
statusCode: number;
|
|
1083
|
+
data: {
|
|
1084
|
+
types: ShowType[];
|
|
1085
|
+
total: number;
|
|
1086
|
+
};
|
|
1087
|
+
message: string;
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
interface ShowTypeResponse {
|
|
1091
|
+
statusCode: number;
|
|
1092
|
+
data: ShowType;
|
|
1093
|
+
message: string;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
interface Show extends Auditable {
|
|
1097
|
+
id: number;
|
|
1098
|
+
title: string;
|
|
1099
|
+
slug: string;
|
|
1100
|
+
description: string;
|
|
1101
|
+
duration_minutes: number | null;
|
|
1102
|
+
type_of_costs: string | null;
|
|
1103
|
+
service_fee: number | null;
|
|
1104
|
+
show_type_id?: number | null;
|
|
1105
|
+
show_type?: ShowType | null;
|
|
1106
|
+
pulep: string | null;
|
|
1107
|
+
minimum_age: number | null;
|
|
1108
|
+
show_gender?: ShowGender | null;
|
|
1109
|
+
show_gender_id: number | null;
|
|
1110
|
+
show_category?: ShowCategory | null;
|
|
1111
|
+
show_category_id: number | null;
|
|
1112
|
+
default_room_map?: RoomMap | null;
|
|
1113
|
+
default_room_map_id: number | null;
|
|
1114
|
+
is_published: boolean;
|
|
1115
|
+
images: ShowImage[];
|
|
1116
|
+
terms_and_conditions: string | null;
|
|
1117
|
+
performances_quantity?: number;
|
|
1118
|
+
performances?: Performance[];
|
|
1119
|
+
next_performance?: Performance;
|
|
1120
|
+
days_of_week?: number[];
|
|
1121
|
+
unique_start_times?: string[];
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
interface FindAllPerformancesParams {
|
|
1125
|
+
roomMapId?: number;
|
|
1126
|
+
showId?: number;
|
|
1127
|
+
hallId?: number;
|
|
1128
|
+
page?: number;
|
|
1129
|
+
search?: string;
|
|
1130
|
+
limit?: number;
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
interface PerformanceBookingDataResponse {
|
|
1134
|
+
statusCode: number;
|
|
1135
|
+
data: {
|
|
1136
|
+
performance: Performance;
|
|
1137
|
+
room_map: RoomMap;
|
|
1138
|
+
show: Show;
|
|
1139
|
+
tickets: PerformanceTicket[];
|
|
1140
|
+
};
|
|
1141
|
+
message: string;
|
|
925
1142
|
}
|
|
926
1143
|
|
|
927
1144
|
interface PerformanceResponse {
|
|
@@ -930,6 +1147,18 @@ interface PerformanceResponse {
|
|
|
930
1147
|
message: string;
|
|
931
1148
|
}
|
|
932
1149
|
|
|
1150
|
+
interface PerformanceAvailableDay {
|
|
1151
|
+
date: string;
|
|
1152
|
+
count: number;
|
|
1153
|
+
}
|
|
1154
|
+
interface PerformancesAvailableDaysResponse {
|
|
1155
|
+
statusCode: number;
|
|
1156
|
+
data: {
|
|
1157
|
+
days: PerformanceAvailableDay[];
|
|
1158
|
+
};
|
|
1159
|
+
message: string;
|
|
1160
|
+
}
|
|
1161
|
+
|
|
933
1162
|
interface PerformancesResponseInterface {
|
|
934
1163
|
statusCode: number;
|
|
935
1164
|
data: {
|
|
@@ -939,7 +1168,26 @@ interface PerformancesResponseInterface {
|
|
|
939
1168
|
message: string;
|
|
940
1169
|
}
|
|
941
1170
|
|
|
942
|
-
interface
|
|
1171
|
+
interface PedagogicZoneAvailability {
|
|
1172
|
+
price_zone_id: number | null;
|
|
1173
|
+
price_zone_name: string | null;
|
|
1174
|
+
available: number;
|
|
1175
|
+
occupied: number;
|
|
1176
|
+
}
|
|
1177
|
+
interface PedagogicAvailabilityResponse {
|
|
1178
|
+
data: {
|
|
1179
|
+
zones: PedagogicZoneAvailability[];
|
|
1180
|
+
total_available: number;
|
|
1181
|
+
total_occupied: number;
|
|
1182
|
+
};
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
interface CreatePedagogicOrderPayload {
|
|
1186
|
+
quantity: number;
|
|
1187
|
+
courtesy_beneficiary: string;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
interface OrderItem extends Auditable {
|
|
943
1191
|
id: number;
|
|
944
1192
|
order: Order;
|
|
945
1193
|
item_type: OrderItemType;
|
|
@@ -948,14 +1196,11 @@ interface OrderItem {
|
|
|
948
1196
|
quantity: number;
|
|
949
1197
|
unit_price: number;
|
|
950
1198
|
normal_price: number;
|
|
951
|
-
discounted_price: number;
|
|
1199
|
+
discounted_price: number | null;
|
|
952
1200
|
ticket_id?: number;
|
|
953
1201
|
ticket_uuid?: string;
|
|
1202
|
+
ticket?: PerformanceTicket;
|
|
954
1203
|
item: Show | Product;
|
|
955
|
-
created_at: Date;
|
|
956
|
-
updated_at: Date;
|
|
957
|
-
created_by: number;
|
|
958
|
-
updated_by: number;
|
|
959
1204
|
}
|
|
960
1205
|
|
|
961
1206
|
interface Coupon extends Auditable {
|
|
@@ -982,7 +1227,7 @@ interface Coupon extends Auditable {
|
|
|
982
1227
|
customers?: Customer[];
|
|
983
1228
|
}
|
|
984
1229
|
|
|
985
|
-
interface CorporateBond {
|
|
1230
|
+
interface CorporateBond extends Auditable {
|
|
986
1231
|
id: number;
|
|
987
1232
|
name: string;
|
|
988
1233
|
description?: string;
|
|
@@ -992,11 +1237,13 @@ interface CorporateBond {
|
|
|
992
1237
|
quantity: number;
|
|
993
1238
|
status: CorporateBondStatus;
|
|
994
1239
|
value: number;
|
|
1240
|
+
purchase_value: number;
|
|
1241
|
+
buyer_customer_id: number | null;
|
|
1242
|
+
buyer: Customer | null;
|
|
1243
|
+
order_id: number | null;
|
|
1244
|
+
order: Order | null;
|
|
1245
|
+
payment_method?: PaymentMethod;
|
|
995
1246
|
codes: CorporateBondCode[];
|
|
996
|
-
created_at: Date;
|
|
997
|
-
updated_at: Date;
|
|
998
|
-
created_by: number;
|
|
999
|
-
updated_by: number;
|
|
1000
1247
|
}
|
|
1001
1248
|
|
|
1002
1249
|
interface CorporateBondCode {
|
|
@@ -1005,59 +1252,219 @@ interface CorporateBondCode {
|
|
|
1005
1252
|
corporate_bond_id: number;
|
|
1006
1253
|
code: string;
|
|
1007
1254
|
is_used: boolean;
|
|
1255
|
+
status: CorporateBondStatus;
|
|
1008
1256
|
used_at: Date | null;
|
|
1009
1257
|
created_at: Date;
|
|
1010
1258
|
}
|
|
1011
1259
|
|
|
1012
|
-
interface CorporateBondResponse {
|
|
1013
|
-
statusCode: number;
|
|
1014
|
-
data: CorporateBond;
|
|
1015
|
-
message: string;
|
|
1260
|
+
interface CorporateBondResponse {
|
|
1261
|
+
statusCode: number;
|
|
1262
|
+
data: CorporateBond;
|
|
1263
|
+
message: string;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
interface ValidateCorporateBondResponse {
|
|
1267
|
+
data: {
|
|
1268
|
+
valid: boolean;
|
|
1269
|
+
message: string;
|
|
1270
|
+
code: string;
|
|
1271
|
+
bond?: CorporateBond;
|
|
1272
|
+
};
|
|
1273
|
+
message: string;
|
|
1274
|
+
statusCode: number;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
interface GiftBondImage {
|
|
1278
|
+
id: number;
|
|
1279
|
+
path: string;
|
|
1280
|
+
full_url: string;
|
|
1281
|
+
original_name: string;
|
|
1282
|
+
extension: string;
|
|
1283
|
+
size: number;
|
|
1284
|
+
mime_type: string;
|
|
1285
|
+
width: number;
|
|
1286
|
+
height: number;
|
|
1287
|
+
is_featured: boolean;
|
|
1288
|
+
gift_bond_id: number;
|
|
1289
|
+
gift_bond: GiftBond;
|
|
1290
|
+
created_at: Date;
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
interface GiftBond extends Auditable {
|
|
1294
|
+
id: number;
|
|
1295
|
+
name: string;
|
|
1296
|
+
description?: string;
|
|
1297
|
+
slug?: string;
|
|
1298
|
+
status: GiftBondStatus;
|
|
1299
|
+
value: number;
|
|
1300
|
+
duration_days: number;
|
|
1301
|
+
page_content?: string;
|
|
1302
|
+
purchases_total?: number;
|
|
1303
|
+
purchases_redeemed?: number;
|
|
1304
|
+
images?: GiftBondImage[];
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
interface GiftBondResponse {
|
|
1308
|
+
statusCode: number;
|
|
1309
|
+
data: GiftBond;
|
|
1310
|
+
message: string;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
interface GiftBondsResponse {
|
|
1314
|
+
statusCode: number;
|
|
1315
|
+
data: {
|
|
1316
|
+
gift_bonds: GiftBond[];
|
|
1317
|
+
total: number;
|
|
1318
|
+
};
|
|
1319
|
+
message: string;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
interface GiftBondPurchase extends Auditable {
|
|
1323
|
+
id: number;
|
|
1324
|
+
code: string;
|
|
1325
|
+
original_value: number;
|
|
1326
|
+
used_value: number | null;
|
|
1327
|
+
lost_value: number | null;
|
|
1328
|
+
beneficiary_email: string;
|
|
1329
|
+
beneficiary: Customer | null;
|
|
1330
|
+
personalized_message: string | null;
|
|
1331
|
+
status: GiftBondPurchaseStatus;
|
|
1332
|
+
purchased_at: string;
|
|
1333
|
+
expires_at: string;
|
|
1334
|
+
redeemed_at: string | null;
|
|
1335
|
+
gift_bond?: GiftBond;
|
|
1336
|
+
gift_bond_id: number;
|
|
1337
|
+
buyer_customer_id: number;
|
|
1338
|
+
buyer: Customer;
|
|
1339
|
+
order: Order | null;
|
|
1340
|
+
order_id: number;
|
|
1341
|
+
redemption_order_id: number | null;
|
|
1342
|
+
redemption_order: Order | null;
|
|
1016
1343
|
}
|
|
1017
1344
|
|
|
1018
|
-
interface
|
|
1345
|
+
interface ValidateGiftBondResponse {
|
|
1019
1346
|
data: {
|
|
1020
1347
|
valid: boolean;
|
|
1021
1348
|
message: string;
|
|
1022
1349
|
code: string;
|
|
1023
|
-
bond?:
|
|
1350
|
+
bond?: GiftBondPurchase;
|
|
1024
1351
|
};
|
|
1352
|
+
statusCode: number;
|
|
1353
|
+
message: string;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
interface GiftBondPurchaseResponse {
|
|
1357
|
+
statusCode: number;
|
|
1358
|
+
data: GiftBondPurchase;
|
|
1025
1359
|
message: string;
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
interface GiftBondPurchasesResponse {
|
|
1026
1363
|
statusCode: number;
|
|
1364
|
+
data: {
|
|
1365
|
+
items: GiftBondPurchase[];
|
|
1366
|
+
total: number;
|
|
1367
|
+
};
|
|
1368
|
+
message: string;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
interface Transaction extends Auditable {
|
|
1372
|
+
id: number;
|
|
1373
|
+
status: TransactionStatus;
|
|
1374
|
+
amount: number;
|
|
1375
|
+
currency: string;
|
|
1376
|
+
payment_gateway: string;
|
|
1377
|
+
gateway_transaction_id: string;
|
|
1378
|
+
gateway_response: any;
|
|
1379
|
+
order: Order;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
interface OrderBillingInfo {
|
|
1383
|
+
first_name: string;
|
|
1384
|
+
last_name: string;
|
|
1385
|
+
email: string;
|
|
1386
|
+
mobile: string;
|
|
1387
|
+
document_type: string;
|
|
1388
|
+
document_number: string;
|
|
1389
|
+
address: string;
|
|
1390
|
+
city_id: number;
|
|
1391
|
+
postal_code?: string;
|
|
1392
|
+
address_notes?: string;
|
|
1393
|
+
payment_method: PaymentMethod;
|
|
1394
|
+
terms_accepted: boolean;
|
|
1395
|
+
data_processing_accepted: boolean;
|
|
1396
|
+
comments?: string;
|
|
1397
|
+
products?: Array<{
|
|
1398
|
+
id: number;
|
|
1399
|
+
quantity: number;
|
|
1400
|
+
}>;
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
interface OrderShowSnapshot {
|
|
1404
|
+
id: number;
|
|
1405
|
+
title: string;
|
|
1406
|
+
description: string | null;
|
|
1407
|
+
service_fee: number | null;
|
|
1408
|
+
}
|
|
1409
|
+
|
|
1410
|
+
interface OrderPerformanceSnapshot {
|
|
1411
|
+
id: number;
|
|
1412
|
+
start_time: Performance['start_time'];
|
|
1413
|
+
end_time: Performance['end_time'];
|
|
1414
|
+
published: boolean;
|
|
1415
|
+
status: PerformanceStatus;
|
|
1027
1416
|
}
|
|
1028
1417
|
|
|
1029
|
-
interface Order {
|
|
1418
|
+
interface Order extends Auditable {
|
|
1030
1419
|
id: number;
|
|
1031
1420
|
uuid: string;
|
|
1032
|
-
|
|
1421
|
+
customer_id: number | null;
|
|
1422
|
+
customer: Customer | null;
|
|
1033
1423
|
customer_name?: string;
|
|
1034
1424
|
customer_email?: string;
|
|
1035
1425
|
order_items: OrderItem[];
|
|
1036
1426
|
order_items_quantity?: number;
|
|
1037
|
-
|
|
1427
|
+
transactions: Transaction[];
|
|
1428
|
+
sub_total: number;
|
|
1429
|
+
discount_amount: number | null;
|
|
1038
1430
|
total: number;
|
|
1431
|
+
sub_total_discounted: number | null;
|
|
1039
1432
|
total_discounted: number;
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
coupon: Coupon;
|
|
1045
|
-
coupon_snapshot: Record<string, any>;
|
|
1046
|
-
corporate_bond_code: CorporateBondCode;
|
|
1047
|
-
corporate_bond_code_snapshot: Record<string, any>;
|
|
1433
|
+
service_fee: number | null;
|
|
1434
|
+
service_fee_discounted: number | null;
|
|
1435
|
+
coupon: Coupon | null;
|
|
1436
|
+
coupon_snapshot: Record<string, any> | null;
|
|
1048
1437
|
status: OrderStatus;
|
|
1049
|
-
show_snapshot:
|
|
1050
|
-
performance_snapshot:
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1438
|
+
show_snapshot: OrderShowSnapshot | null;
|
|
1439
|
+
performance_snapshot: OrderPerformanceSnapshot | null;
|
|
1440
|
+
is_courtesy: boolean;
|
|
1441
|
+
courtesy_beneficiary: string | null;
|
|
1442
|
+
performance_visibility_snapshot: string | null;
|
|
1443
|
+
payment_method: PaymentMethod | null;
|
|
1054
1444
|
terms_accepted: boolean;
|
|
1055
1445
|
data_processing_accepted: boolean;
|
|
1056
|
-
billing_info:
|
|
1057
|
-
|
|
1058
|
-
|
|
1446
|
+
billing_info: OrderBillingInfo | null;
|
|
1447
|
+
corporate_bond_code_snapshot: Record<string, any> | null;
|
|
1448
|
+
gift_bond_snapshot: Record<string, any> | null;
|
|
1449
|
+
corporate_bond_code: CorporateBondCode | null;
|
|
1450
|
+
corporate_bond_code_id: number | null;
|
|
1451
|
+
gift_bond: GiftBond | null;
|
|
1452
|
+
gift_bond_id: number | null;
|
|
1453
|
+
vip_snapshot: Record<string, any> | null;
|
|
1454
|
+
vip_card_id: number | null;
|
|
1455
|
+
subscription_snapshot: Record<string, any> | null;
|
|
1456
|
+
subscription_id: number | null;
|
|
1457
|
+
subscription_redeemed_tickets_count?: number | null;
|
|
1458
|
+
comments: string | null;
|
|
1459
|
+
address_notes: string | null;
|
|
1460
|
+
mercado_pago_preference_id: string;
|
|
1059
1461
|
created_by: number;
|
|
1462
|
+
created_by_type: CreatorType;
|
|
1060
1463
|
updated_by: number;
|
|
1464
|
+
updated_by_type: CreatorType;
|
|
1465
|
+
replacement_order_id?: number | null;
|
|
1466
|
+
replacement_order?: Order | null;
|
|
1467
|
+
replaced_order?: Order | null;
|
|
1061
1468
|
}
|
|
1062
1469
|
|
|
1063
1470
|
interface OrderResponse {
|
|
@@ -1075,7 +1482,15 @@ interface OrdersResponse {
|
|
|
1075
1482
|
message: string;
|
|
1076
1483
|
}
|
|
1077
1484
|
|
|
1078
|
-
interface
|
|
1485
|
+
interface MercadoPagoPreference {
|
|
1486
|
+
data: {
|
|
1487
|
+
id: string;
|
|
1488
|
+
init_point: string;
|
|
1489
|
+
sandbox_init_point: string;
|
|
1490
|
+
};
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
interface PerformanceTicket extends Auditable {
|
|
1079
1494
|
id: number;
|
|
1080
1495
|
uuid: string;
|
|
1081
1496
|
is_accessible: boolean;
|
|
@@ -1089,35 +1504,182 @@ interface PerformanceTicket {
|
|
|
1089
1504
|
presale_price: number | null;
|
|
1090
1505
|
status: PerformanceTicketStatus;
|
|
1091
1506
|
reserved_until: Date | null;
|
|
1507
|
+
reserved_by_type: CreatorType | null;
|
|
1508
|
+
reserved_by: number | null;
|
|
1509
|
+
reserved_by_admin: Admin | null;
|
|
1510
|
+
reserved_by_customer: number | null;
|
|
1511
|
+
reserved_customer: Customer | null;
|
|
1512
|
+
order: Order | null;
|
|
1092
1513
|
order_id: number | null;
|
|
1093
1514
|
customer_id: number | null;
|
|
1094
1515
|
checked_in: boolean;
|
|
1095
1516
|
checked_in_at: Date | null;
|
|
1517
|
+
checked_in_by: number | null;
|
|
1518
|
+
checked_in_by_admin: Admin | null;
|
|
1096
1519
|
order_items: OrderItem[];
|
|
1097
1520
|
element_qty?: number;
|
|
1098
|
-
|
|
1099
|
-
|
|
1521
|
+
blocked_at: Date | null;
|
|
1522
|
+
blocked_by: number | null;
|
|
1523
|
+
blocked_by_admin: Admin | null;
|
|
1100
1524
|
}
|
|
1101
1525
|
|
|
1102
|
-
interface
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1526
|
+
interface TicketMapSeatPosition {
|
|
1527
|
+
rowIndex: number;
|
|
1528
|
+
colIndex: number;
|
|
1529
|
+
seatLabel: string;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
interface TicketMapTableChairPosition {
|
|
1533
|
+
index: number;
|
|
1534
|
+
angle: number;
|
|
1535
|
+
x: number;
|
|
1536
|
+
y: number;
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
interface ElementRenderData {
|
|
1540
|
+
elementId: number;
|
|
1541
|
+
hallFloorId: number | null;
|
|
1542
|
+
priceZoneId: number | null;
|
|
1543
|
+
type: RoomMapElementType;
|
|
1544
|
+
shapeConfig: Record<string, any>;
|
|
1545
|
+
tickets: PerformanceTicket[];
|
|
1546
|
+
ticketByNumeration: Map<string, PerformanceTicket>;
|
|
1547
|
+
elementName: string;
|
|
1548
|
+
seatPositions?: TicketMapSeatPosition[][];
|
|
1549
|
+
chairPositions?: TicketMapTableChairPosition[];
|
|
1550
|
+
zoneCapacity?: number;
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
interface TicketMapTooltipData {
|
|
1554
|
+
x: number;
|
|
1555
|
+
y: number;
|
|
1556
|
+
elementName: string;
|
|
1557
|
+
seatLabel: string | null;
|
|
1558
|
+
price: number;
|
|
1559
|
+
status: PerformanceTicketStatus;
|
|
1560
|
+
statusLabel: string;
|
|
1561
|
+
statusColor: string;
|
|
1562
|
+
isSelected: boolean;
|
|
1563
|
+
ticketId: number;
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
interface TicketMapZoneQuantityState {
|
|
1567
|
+
elementId: number;
|
|
1568
|
+
selectedCount: number;
|
|
1569
|
+
maxCapacity: number;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
interface ReservePerformanceDto {
|
|
1573
|
+
ticket_ids: number[];
|
|
1574
|
+
products?: {
|
|
1575
|
+
id: number;
|
|
1576
|
+
quantity: number;
|
|
1577
|
+
}[];
|
|
1578
|
+
coupon_code?: string;
|
|
1579
|
+
gift_bond_code?: string;
|
|
1580
|
+
corporate_bond_code?: string;
|
|
1581
|
+
payment_method?: string;
|
|
1582
|
+
billing?: {
|
|
1583
|
+
first_name: string;
|
|
1584
|
+
last_name: string;
|
|
1585
|
+
email: string;
|
|
1586
|
+
mobile: string;
|
|
1587
|
+
document_type: string;
|
|
1588
|
+
document_number: string;
|
|
1589
|
+
address: string;
|
|
1590
|
+
city_id: number;
|
|
1591
|
+
postal_code?: string;
|
|
1592
|
+
address_notes?: string;
|
|
1593
|
+
terms_accepted: boolean;
|
|
1594
|
+
data_processing_accepted: boolean;
|
|
1595
|
+
comments?: string;
|
|
1109
1596
|
};
|
|
1110
|
-
message: string;
|
|
1111
1597
|
}
|
|
1112
1598
|
|
|
1113
|
-
interface
|
|
1114
|
-
|
|
1115
|
-
|
|
1599
|
+
interface TicketMapZoomConfig {
|
|
1600
|
+
minZoom: number;
|
|
1601
|
+
maxZoom: number;
|
|
1602
|
+
zoomStep: number;
|
|
1603
|
+
scaleBy: number;
|
|
1116
1604
|
}
|
|
1117
|
-
|
|
1605
|
+
|
|
1606
|
+
interface HallFloorOption {
|
|
1607
|
+
id: number | null;
|
|
1608
|
+
name: string;
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
declare enum SelectedDiscountCardType {
|
|
1612
|
+
COUPON = "COUPON",
|
|
1613
|
+
CORPORATE_BOND = "CORPORATE_BOND",
|
|
1614
|
+
GIFT_BOND = "GIFT_BOND",
|
|
1615
|
+
VIP = "VIP",
|
|
1616
|
+
SUBSCRIPTION = "SUBSCRIPTION"
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
interface SelectedDiscountCard {
|
|
1620
|
+
name: string;
|
|
1621
|
+
type: SelectedDiscountCardType;
|
|
1622
|
+
value: number;
|
|
1623
|
+
discountType: 'percentage' | 'fixed';
|
|
1624
|
+
/**
|
|
1625
|
+
* Si el descuento seleccionado exonera la tarifa de servicio (Tarjeta
|
|
1626
|
+
* VIP o Abono, según su `service_fee_exempt`).
|
|
1627
|
+
*/
|
|
1628
|
+
serviceFeeExempt?: boolean;
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
/** Forma compacta de un ticket recibida por SSE (ver
|
|
1632
|
+
* SeatAvailabilitySseService) — sin relaciones, solo lo necesario para
|
|
1633
|
+
* repintar el mapa y validar disponibilidad en el cliente. */
|
|
1634
|
+
interface SeatStatusUpdate {
|
|
1635
|
+
id: number;
|
|
1636
|
+
status: PerformanceTicketStatus;
|
|
1637
|
+
room_map_element_id: number;
|
|
1638
|
+
reserved_until: Date | null;
|
|
1639
|
+
}
|
|
1640
|
+
type SeatEventMessage = {
|
|
1641
|
+
type: 'snapshot';
|
|
1642
|
+
performance_id: number;
|
|
1643
|
+
tickets: SeatStatusUpdate[];
|
|
1644
|
+
ts: number;
|
|
1645
|
+
} | {
|
|
1646
|
+
type: 'heartbeat';
|
|
1647
|
+
ts: number;
|
|
1648
|
+
};
|
|
1649
|
+
|
|
1650
|
+
interface AdmissionStatus {
|
|
1651
|
+
active: boolean;
|
|
1652
|
+
position: number | null;
|
|
1653
|
+
}
|
|
1654
|
+
interface AdmissionJoinResponse extends AdmissionStatus {
|
|
1655
|
+
ticket: string;
|
|
1656
|
+
expires_in: number;
|
|
1657
|
+
}
|
|
1658
|
+
type AdmissionEventMessage = ({
|
|
1659
|
+
type: 'status';
|
|
1660
|
+
} & AdmissionStatus & {
|
|
1661
|
+
ts: number;
|
|
1662
|
+
}) | {
|
|
1663
|
+
type: 'heartbeat';
|
|
1664
|
+
ts: number;
|
|
1665
|
+
};
|
|
1666
|
+
|
|
1667
|
+
interface FetchShowsParams extends CommonFetchAllParams {
|
|
1668
|
+
date?: string;
|
|
1669
|
+
sort_by?: 'show.id' | 'show.created_at' | 'show.title' | 'show.slug' | 'show.type_of_costs' | 'show.pulep' | 'show_category.name' | 'show_gender.name';
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
interface ShowResponse {
|
|
1673
|
+
statusCode: number;
|
|
1674
|
+
data: Show;
|
|
1675
|
+
message: string;
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
interface ShowsResponseInterface {
|
|
1118
1679
|
statusCode: number;
|
|
1119
1680
|
data: {
|
|
1120
|
-
|
|
1681
|
+
shows: Show[];
|
|
1682
|
+
total: number;
|
|
1121
1683
|
};
|
|
1122
1684
|
message: string;
|
|
1123
1685
|
}
|
|
@@ -1155,6 +1717,8 @@ interface DailyPerformanceItem {
|
|
|
1155
1717
|
venue: DailyPerformanceVenue;
|
|
1156
1718
|
price_zones: DailyPerformancePriceZone[];
|
|
1157
1719
|
zone_price_cheapest: number | null;
|
|
1720
|
+
visibility_type: PerformanceVisibilityType;
|
|
1721
|
+
private_audience_label: string | null;
|
|
1158
1722
|
}
|
|
1159
1723
|
|
|
1160
1724
|
interface DailyPerformancesResponse {
|
|
@@ -1174,14 +1738,26 @@ interface FetchDailyPerformancesParams {
|
|
|
1174
1738
|
limit?: number;
|
|
1175
1739
|
}
|
|
1176
1740
|
|
|
1741
|
+
interface FetchProductsParams extends CommonFetchAllParams {
|
|
1742
|
+
name?: string;
|
|
1743
|
+
category_id?: number;
|
|
1744
|
+
tag_id?: number;
|
|
1745
|
+
type_id?: number;
|
|
1746
|
+
min_price?: number;
|
|
1747
|
+
max_price?: number;
|
|
1748
|
+
min_stock?: number;
|
|
1749
|
+
max_stock?: number;
|
|
1750
|
+
sort_by?: 'product.id' | 'product.name' | 'product.price' | 'product.stock_quantity' | 'product.slug' | 'product.sku' | 'product.created_at' | 'category.name' | 'tag.name' | 'type.name';
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1177
1753
|
interface ProductResponse {
|
|
1178
1754
|
statusCode: number;
|
|
1179
1755
|
data: Product;
|
|
1180
1756
|
message: string;
|
|
1181
1757
|
}
|
|
1182
1758
|
|
|
1183
|
-
interface ProductTaxonomy {
|
|
1184
|
-
id:
|
|
1759
|
+
interface ProductTaxonomy extends Auditable {
|
|
1760
|
+
id: number;
|
|
1185
1761
|
name: string;
|
|
1186
1762
|
slug: string;
|
|
1187
1763
|
selected?: boolean;
|
|
@@ -1221,51 +1797,110 @@ interface PriceZonesResponseInterface {
|
|
|
1221
1797
|
}
|
|
1222
1798
|
|
|
1223
1799
|
interface FindAllPriceZoneParams {
|
|
1224
|
-
|
|
1800
|
+
room_map_id?: number;
|
|
1801
|
+
show_ids?: number[];
|
|
1225
1802
|
page?: number;
|
|
1226
1803
|
search?: string;
|
|
1227
1804
|
limit?: number;
|
|
1228
1805
|
}
|
|
1229
1806
|
|
|
1230
|
-
interface
|
|
1807
|
+
interface CustomerBenefitApplicableShow {
|
|
1808
|
+
id: number;
|
|
1809
|
+
title: string;
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
interface CustomerBenefitVenueChain {
|
|
1813
|
+
price_zone_id: number;
|
|
1814
|
+
price_zone_name: string;
|
|
1815
|
+
room_map_id: number | null;
|
|
1816
|
+
room_map_name: string | null;
|
|
1817
|
+
hall_id: number | null;
|
|
1818
|
+
hall_name: string | null;
|
|
1819
|
+
venue_id: number | null;
|
|
1820
|
+
venue_name: string | null;
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
interface CustomerBenefitSubscription {
|
|
1231
1824
|
id: number;
|
|
1232
1825
|
uuid: string;
|
|
1826
|
+
shows_count: number;
|
|
1827
|
+
shows_redeemed: number;
|
|
1828
|
+
shows_remaining: number;
|
|
1829
|
+
valid_until: string;
|
|
1830
|
+
discount_percentage: number | null;
|
|
1831
|
+
service_fee_exempt: boolean;
|
|
1832
|
+
venue: CustomerBenefitVenueChain;
|
|
1833
|
+
applies_to_all_shows: boolean;
|
|
1834
|
+
applicable_shows: CustomerBenefitApplicableShow[];
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
interface VipCategorySnapshot {
|
|
1838
|
+
membership_id: number;
|
|
1233
1839
|
name: string;
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1840
|
+
discount_percentage: number;
|
|
1841
|
+
service_fee_exempt: boolean;
|
|
1842
|
+
applicable_show_ids: number[] | null;
|
|
1843
|
+
excluded_show_ids: number[] | null;
|
|
1844
|
+
duration_days: number;
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
interface VipCard extends Auditable {
|
|
1848
|
+
id: number;
|
|
1849
|
+
uuid: string;
|
|
1237
1850
|
customer: Customer;
|
|
1238
1851
|
customer_id: number;
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1852
|
+
membership: {
|
|
1853
|
+
id: number;
|
|
1854
|
+
name: string;
|
|
1855
|
+
} | null;
|
|
1856
|
+
membership_id: number;
|
|
1857
|
+
category_snapshot: VipCategorySnapshot;
|
|
1858
|
+
balance: number;
|
|
1859
|
+
status: VipCardStatus;
|
|
1860
|
+
activated_at: string | null;
|
|
1861
|
+
last_activity_at: string | null;
|
|
1862
|
+
expires_at: string | null;
|
|
1863
|
+
last_low_balance_alert_at: string | null;
|
|
1864
|
+
last_expiry_alert_at: string | null;
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
interface VipTransaction {
|
|
1868
|
+
id: number;
|
|
1869
|
+
uuid: string;
|
|
1870
|
+
vip_card_id: number;
|
|
1871
|
+
type: VipTransactionType;
|
|
1872
|
+
amount: number;
|
|
1873
|
+
balance_before: number;
|
|
1874
|
+
balance_after: number;
|
|
1875
|
+
order: Order | null;
|
|
1876
|
+
order_id: number | null;
|
|
1877
|
+
description: string | null;
|
|
1878
|
+
created_at: string;
|
|
1243
1879
|
}
|
|
1244
1880
|
|
|
1245
|
-
interface
|
|
1246
|
-
|
|
1247
|
-
data: GiftBond;
|
|
1248
|
-
message: string;
|
|
1881
|
+
interface VipCardResponse {
|
|
1882
|
+
data: VipCard;
|
|
1249
1883
|
}
|
|
1250
|
-
|
|
1251
|
-
interface GiftBondsResponse {
|
|
1252
|
-
statusCode: number;
|
|
1884
|
+
interface VipCardsResponse {
|
|
1253
1885
|
data: {
|
|
1254
|
-
|
|
1886
|
+
vip_cards: VipCard[];
|
|
1255
1887
|
total: number;
|
|
1256
1888
|
};
|
|
1257
|
-
message: string;
|
|
1258
1889
|
}
|
|
1259
|
-
|
|
1260
|
-
interface ValidateGiftBondResponse {
|
|
1890
|
+
interface VipTransactionsResponse {
|
|
1261
1891
|
data: {
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
code: string;
|
|
1265
|
-
bond?: GiftBond;
|
|
1892
|
+
transactions: VipTransaction[];
|
|
1893
|
+
total: number;
|
|
1266
1894
|
};
|
|
1267
|
-
|
|
1268
|
-
|
|
1895
|
+
}
|
|
1896
|
+
interface VipOrderResponse {
|
|
1897
|
+
data: Order;
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1900
|
+
interface CustomerBenefits {
|
|
1901
|
+
subscription: CustomerBenefitSubscription | null;
|
|
1902
|
+
vip_card: VipCard | null;
|
|
1903
|
+
gift_bonds: GiftBondPurchase[];
|
|
1269
1904
|
}
|
|
1270
1905
|
|
|
1271
1906
|
interface CouponResponse {
|
|
@@ -1281,22 +1916,224 @@ interface ValidateCouponResponse {
|
|
|
1281
1916
|
};
|
|
1282
1917
|
}
|
|
1283
1918
|
|
|
1919
|
+
interface RecentOrder {
|
|
1920
|
+
id: number;
|
|
1921
|
+
customer_name: string;
|
|
1922
|
+
event: string;
|
|
1923
|
+
total: number;
|
|
1924
|
+
status: string;
|
|
1925
|
+
uuid: string;
|
|
1926
|
+
}
|
|
1927
|
+
|
|
1928
|
+
interface RecentRoomMap {
|
|
1929
|
+
id: number;
|
|
1930
|
+
name: string;
|
|
1931
|
+
capacity: number;
|
|
1932
|
+
created_at: Date;
|
|
1933
|
+
updated_at: Date;
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
interface QrTokenData {
|
|
1937
|
+
token: string;
|
|
1938
|
+
expires_at: string;
|
|
1939
|
+
refresh_in: number;
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
interface QrTokenResponse {
|
|
1943
|
+
statusCode: number;
|
|
1944
|
+
data: QrTokenData;
|
|
1945
|
+
message: string;
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1948
|
+
interface Membership extends Auditable {
|
|
1949
|
+
id: number;
|
|
1950
|
+
name: string;
|
|
1951
|
+
description: string;
|
|
1952
|
+
benefits: string[] | null;
|
|
1953
|
+
price: number;
|
|
1954
|
+
duration_days: number;
|
|
1955
|
+
min_recharge: number;
|
|
1956
|
+
status: MembershipStatus;
|
|
1957
|
+
discount_percentage: number;
|
|
1958
|
+
service_fee_exempt: boolean;
|
|
1959
|
+
applicable_show_ids: number[] | null;
|
|
1960
|
+
excluded_show_ids: number[] | null;
|
|
1961
|
+
}
|
|
1962
|
+
|
|
1963
|
+
interface FetchVipCardsParams extends CommonFetchAllParams {
|
|
1964
|
+
status?: VipCardStatus;
|
|
1965
|
+
membership_id?: number;
|
|
1966
|
+
customer_id?: number;
|
|
1967
|
+
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';
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
interface ActivateVipCardParams {
|
|
1971
|
+
customer_id: number;
|
|
1972
|
+
membership_id: number;
|
|
1973
|
+
amount: number;
|
|
1974
|
+
payment_method?: string | null;
|
|
1975
|
+
terms_accepted: boolean;
|
|
1976
|
+
data_processing_accepted: boolean;
|
|
1977
|
+
}
|
|
1978
|
+
|
|
1979
|
+
interface VipRechargeConfirmPayload {
|
|
1980
|
+
amount: number;
|
|
1981
|
+
payment_method: string;
|
|
1982
|
+
terms_accepted: boolean;
|
|
1983
|
+
data_processing_accepted: boolean;
|
|
1984
|
+
}
|
|
1985
|
+
|
|
1986
|
+
declare const DOCUMENT_TYPES_OPTIONS: SelectOption[];
|
|
1987
|
+
|
|
1988
|
+
declare const PAYMENT_METHODS_OPTIONS: SelectOption[];
|
|
1989
|
+
declare const ORDER_STATUS_COLORS: Record<OrderStatus, {
|
|
1990
|
+
text: string;
|
|
1991
|
+
bg: string;
|
|
1992
|
+
}>;
|
|
1993
|
+
declare const ORDER_ITEM_TYPES_COLORS: Record<OrderItemType, {
|
|
1994
|
+
text: string;
|
|
1995
|
+
bg: string;
|
|
1996
|
+
}>;
|
|
1997
|
+
declare const ORDER_DISCOUNT_COLORS: Record<string, {
|
|
1998
|
+
text: string;
|
|
1999
|
+
bg: string;
|
|
2000
|
+
}>;
|
|
2001
|
+
declare const TRANSACTION_STATUS_COLORS: Record<TransactionStatus, {
|
|
2002
|
+
text: string;
|
|
2003
|
+
bg: string;
|
|
2004
|
+
}>;
|
|
2005
|
+
|
|
2006
|
+
declare const PERFORMANCE_TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, {
|
|
2007
|
+
text: string;
|
|
2008
|
+
bg: string;
|
|
2009
|
+
}>;
|
|
2010
|
+
declare const PERFORMANCE_STATUS_COLORS: Record<PerformanceStatus, {
|
|
2011
|
+
text: string;
|
|
2012
|
+
bg: string;
|
|
2013
|
+
}>;
|
|
2014
|
+
|
|
2015
|
+
declare const TICKET_MAP_LAST_TICKETS_LIMIT = 10;
|
|
2016
|
+
declare const TICKET_ELEMENT_TYPES: RoomMapElementType[];
|
|
2017
|
+
declare const DEFAULT_STAGE_CONFIG: {
|
|
2018
|
+
[x: string]: any;
|
|
2019
|
+
};
|
|
2020
|
+
declare const TICKET_STATUS_COLORS: Record<PerformanceTicketStatus, string>;
|
|
2021
|
+
declare const TICKET_STATUS_FILLS: Record<PerformanceTicketStatus, string>;
|
|
2022
|
+
declare const TICKET_STATUS_LABELS: Record<PerformanceTicketStatus, string>;
|
|
2023
|
+
declare const TICKET_MAP_GRID_SIZE = 30;
|
|
2024
|
+
declare const TICKET_MAP_TITLE_HEIGHT = 30;
|
|
2025
|
+
declare const TICKET_MAP_FLOOR_HOVER_OPACITY = 0.25;
|
|
2026
|
+
declare const TICKET_MAP_FLOOR_HOVER_FADE_MS = 150;
|
|
2027
|
+
declare const TICKET_MAP_PRICE_ZONE_FILTER_OPACITY = 0.25;
|
|
2028
|
+
|
|
2029
|
+
interface KonvaShapeConfig {
|
|
2030
|
+
config: ShapeConfig;
|
|
2031
|
+
layer: 'background' | 'elements' | 'foreground' | 'overlay';
|
|
2032
|
+
}
|
|
2033
|
+
|
|
2034
|
+
declare function drawRoundedRect(con: Context, shape: Shape, x: number, y: number, width: number, height: number, cornerRadius: number): void;
|
|
2035
|
+
|
|
2036
|
+
declare const generateExitScene: (con: Context, shape: Shape) => void;
|
|
2037
|
+
|
|
2038
|
+
declare const generateHallwayScene: (con: Context, shape: Shape) => void;
|
|
2039
|
+
|
|
2040
|
+
declare const generateProductionAreaScene: (con: Context, shape: Shape) => void;
|
|
2041
|
+
|
|
2042
|
+
declare const generateSeatBlockScene: (con: Context, shape: Shape, numerationConfig?: {
|
|
2043
|
+
start_row_letter: string;
|
|
2044
|
+
row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
|
|
2045
|
+
start_column_number: number;
|
|
2046
|
+
column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
|
|
2047
|
+
}) => void;
|
|
2048
|
+
|
|
2049
|
+
declare const generateStageScene: (con: Context, shape: Shape) => void;
|
|
2050
|
+
|
|
2051
|
+
declare const generateStairScene: (con: Context, shape: Shape) => void;
|
|
2052
|
+
|
|
2053
|
+
declare const generateTableScene: (con: Context, shape: Shape) => void;
|
|
2054
|
+
|
|
2055
|
+
declare const generateUnavailableSpaceScene: (con: Context, shape: Shape) => void;
|
|
2056
|
+
|
|
2057
|
+
declare const generateZoneScene: (con: Context, shape: Shape) => void;
|
|
2058
|
+
|
|
2059
|
+
declare const KONVA_SHAPE_MAPPINGS: Record<RoomMapElementType, KonvaShapeConfig>;
|
|
2060
|
+
|
|
1284
2061
|
declare const getCustomerFullname: (customer: Customer) => string;
|
|
1285
2062
|
|
|
2063
|
+
declare const getAdminFullname: (admin: Admin) => string;
|
|
2064
|
+
|
|
2065
|
+
type OrderDiscountType = 'coupon' | 'corporate_bond' | 'gift_bond' | 'vip' | 'subscription';
|
|
2066
|
+
interface OrderDiscountInfo {
|
|
2067
|
+
type: OrderDiscountType | null;
|
|
2068
|
+
code: string | null;
|
|
2069
|
+
name: string | null;
|
|
2070
|
+
value: number;
|
|
2071
|
+
discountType: 'percentage' | 'fixed' | null;
|
|
2072
|
+
icon: string;
|
|
2073
|
+
redeemedTicketsCount?: number | null;
|
|
2074
|
+
serviceFeeExempt: boolean;
|
|
2075
|
+
}
|
|
2076
|
+
declare function getOrderDiscount(order: Order): OrderDiscountInfo;
|
|
2077
|
+
|
|
2078
|
+
interface BenefitToastMessage {
|
|
2079
|
+
title: string;
|
|
2080
|
+
description: string;
|
|
2081
|
+
}
|
|
2082
|
+
type CustomerBenefitsPerspective = 'customer' | 'staff';
|
|
2083
|
+
declare function getCustomerBenefitToasts(benefits: CustomerBenefits, perspective?: CustomerBenefitsPerspective): BenefitToastMessage[];
|
|
2084
|
+
|
|
1286
2085
|
declare function parseJsonToFormDataAdvanced(imageGallery: any[]): FormData;
|
|
1287
2086
|
|
|
1288
2087
|
declare const transformImageToFile: (image: ShowImage | VenueImage) => UploadedFile;
|
|
1289
2088
|
|
|
2089
|
+
declare const transformUrlParams: (params: any) => URLSearchParams;
|
|
2090
|
+
|
|
1290
2091
|
declare const formatCitiesResponseToSelect: (res: CitiesResponse) => {
|
|
1291
|
-
value:
|
|
2092
|
+
value: number;
|
|
1292
2093
|
label: string;
|
|
1293
2094
|
}[];
|
|
1294
2095
|
|
|
2096
|
+
declare function tintColor(hex: string, amount?: number): string;
|
|
2097
|
+
|
|
2098
|
+
declare const drawChairIcon: (con: Context, cx: number, cy: number, size: number) => void;
|
|
2099
|
+
|
|
2100
|
+
declare const drawHappyFace: (con: Context, cx: number, cy: number, size: number) => void;
|
|
2101
|
+
|
|
2102
|
+
declare const drawWheelchairIcon: (con: Context, shape: Shape, cx: number, cy: number, size: number, fillColor?: string, strokeColor?: string) => void;
|
|
2103
|
+
|
|
2104
|
+
declare const numberToLetter: (num: number) => string;
|
|
2105
|
+
|
|
2106
|
+
declare const getItemTypeIcon: (ticket: PerformanceTicket) => string;
|
|
2107
|
+
|
|
2108
|
+
declare const generateSeatBlockTicketScene: (con: Context, shape: Shape, numerationConfig?: {
|
|
2109
|
+
start_row_letter: string;
|
|
2110
|
+
row_order: "TOP_TO_BOTTOM" | "BOTTOM_TO_TOP";
|
|
2111
|
+
start_column_number: number;
|
|
2112
|
+
column_order: "LEFT_TO_RIGHT" | "RIGHT_TO_LEFT";
|
|
2113
|
+
}, ticketStatusMap?: Map<string, PerformanceTicketStatus>) => void;
|
|
2114
|
+
|
|
2115
|
+
declare const generateTableTicketScene: (con: Context, shape: Shape, chairTicketStatuses?: PerformanceTicketStatus[], tableSeats?: RoomMapSeatState[][]) => void;
|
|
2116
|
+
|
|
2117
|
+
declare function processElementsToRenderData(elements: RoomMapElementTemplate[], tickets: PerformanceTicket[], priceZones?: {
|
|
2118
|
+
id: number;
|
|
2119
|
+
color: string;
|
|
2120
|
+
}[]): ElementRenderData[];
|
|
2121
|
+
declare function findTicketAtPosition(renderData: ElementRenderData, relX: number, relY: number): PerformanceTicket | null;
|
|
2122
|
+
declare function findElementAtPosition(renderDataList: ElementRenderData[], stageX: number, stageY: number): {
|
|
2123
|
+
element: ElementRenderData;
|
|
2124
|
+
relX: number;
|
|
2125
|
+
relY: number;
|
|
2126
|
+
} | null;
|
|
2127
|
+
|
|
2128
|
+
declare const ticketCanOpenQr: (order: Order, ticket: PerformanceTicket) => boolean;
|
|
2129
|
+
|
|
1295
2130
|
declare function MinTodayValidator(controlName: string): ValidatorFn;
|
|
1296
2131
|
declare function EndDateGreaterThanStartValidator(startDateControlName: string, endDateControlName: string): ValidatorFn;
|
|
1297
2132
|
|
|
1298
2133
|
declare function MustMatchValidator(controlName: string, matchingControlName: string): ValidatorFn;
|
|
1299
2134
|
|
|
2135
|
+
declare function emailValidator(): ValidatorFn;
|
|
2136
|
+
|
|
1300
2137
|
declare class ApiService {
|
|
1301
2138
|
private http;
|
|
1302
2139
|
private platformId;
|
|
@@ -1307,6 +2144,7 @@ declare class ApiService {
|
|
|
1307
2144
|
private validateContentType;
|
|
1308
2145
|
private handleError;
|
|
1309
2146
|
get<T>(path: string): Observable<T>;
|
|
2147
|
+
getBlob(path: string): Observable<Blob>;
|
|
1310
2148
|
post<T>(path: string, body: any): Observable<T>;
|
|
1311
2149
|
patch<T>(path: string, body: any): Observable<T>;
|
|
1312
2150
|
put<T>(path: string, body: any): Observable<T>;
|
|
@@ -1315,23 +2153,58 @@ declare class ApiService {
|
|
|
1315
2153
|
static ɵprov: i0.ɵɵInjectableDeclaration<ApiService>;
|
|
1316
2154
|
}
|
|
1317
2155
|
|
|
2156
|
+
/**
|
|
2157
|
+
* Shared open/close state for the mobile off-canvas sidebar.
|
|
2158
|
+
* On viewports >= lg the sidebar is always visible (see sidebar-menu.component.html),
|
|
2159
|
+
* so this state only has a visual effect below the `lg` breakpoint.
|
|
2160
|
+
*/
|
|
2161
|
+
declare class SidebarStateService {
|
|
2162
|
+
isMobileOpen: WritableSignal<boolean>;
|
|
2163
|
+
open(): void;
|
|
2164
|
+
close(): void;
|
|
2165
|
+
toggle(): void;
|
|
2166
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarStateService, never>;
|
|
2167
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SidebarStateService>;
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
/**
|
|
2171
|
+
* Deshabilita el zoom del NAVEGADOR (no el zoom interno del mapa de
|
|
2172
|
+
* asientos, que sigue funcionando igual). Se instancia una sola vez —
|
|
2173
|
+
* inyectarlo en el componente raíz de la app alcanza, porque es
|
|
2174
|
+
* `providedIn: 'root'` — y cubre las cuatro formas en que un navegador
|
|
2175
|
+
* deja hacer zoom:
|
|
2176
|
+
*
|
|
2177
|
+
* - Ctrl/Cmd + rueda del mouse (desktop, todos los navegadores).
|
|
2178
|
+
* - Ctrl/Cmd + "+"/"-"/"0" por teclado (desktop, todos los navegadores).
|
|
2179
|
+
* - Gesto de pellizco en trackpad en Safari, que no dispara `wheel` sino
|
|
2180
|
+
* sus propios eventos `gesture*` (no estándar, solo Safari/WebKit).
|
|
2181
|
+
* - Pellizco con dos dedos en pantallas táctiles, como respaldo además
|
|
2182
|
+
* del `user-scalable=no` del viewport (que ya lo bloquea en la mayoría
|
|
2183
|
+
* de los navegadores, pero no en todos de forma consistente).
|
|
2184
|
+
*
|
|
2185
|
+
* No toca el zoom interno de `TicketMapZoomService` (ese es zoom propio de
|
|
2186
|
+
* la app sobre el SVG del mapa, con sus propios botones +/-, y debe seguir
|
|
2187
|
+
* funcionando tal cual).
|
|
2188
|
+
*/
|
|
2189
|
+
declare class BrowserZoomLockService {
|
|
2190
|
+
constructor(platformId: Object);
|
|
2191
|
+
private onWheel;
|
|
2192
|
+
private onKeydown;
|
|
2193
|
+
private onTouchMove;
|
|
2194
|
+
private onGesture;
|
|
2195
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BrowserZoomLockService, never>;
|
|
2196
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BrowserZoomLockService>;
|
|
2197
|
+
}
|
|
2198
|
+
|
|
1318
2199
|
type ToastType = 'success' | 'error' | 'info';
|
|
1319
2200
|
declare class ToastService {
|
|
1320
|
-
|
|
2201
|
+
private platformId;
|
|
2202
|
+
constructor(platformId: Object);
|
|
2203
|
+
show(message: string, type?: ToastType, description?: string): void;
|
|
1321
2204
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
|
|
1322
2205
|
static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
|
|
1323
2206
|
}
|
|
1324
2207
|
|
|
1325
|
-
declare class LoadingModalService {
|
|
1326
|
-
title: WritableSignal<string>;
|
|
1327
|
-
isOpen: WritableSignal<boolean>;
|
|
1328
|
-
get modalIsOpen(): WritableSignal<boolean>;
|
|
1329
|
-
open(title?: string): void;
|
|
1330
|
-
close(): void;
|
|
1331
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LoadingModalService, never>;
|
|
1332
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<LoadingModalService>;
|
|
1333
|
-
}
|
|
1334
|
-
|
|
1335
2208
|
declare class DeleteConfirmationService {
|
|
1336
2209
|
title: WritableSignal<string>;
|
|
1337
2210
|
resourceName: WritableSignal<string>;
|
|
@@ -1372,12 +2245,19 @@ declare class DateService {
|
|
|
1372
2245
|
static ɵprov: i0.ɵɵInjectableDeclaration<DateService>;
|
|
1373
2246
|
}
|
|
1374
2247
|
|
|
2248
|
+
interface AdminResponse {
|
|
2249
|
+
statusCode: number;
|
|
2250
|
+
data: Admin;
|
|
2251
|
+
message: string;
|
|
2252
|
+
}
|
|
2253
|
+
|
|
1375
2254
|
declare class AdminService {
|
|
1376
2255
|
private apiService;
|
|
1377
2256
|
constructor(apiService: ApiService);
|
|
1378
|
-
fetchAdmins(
|
|
2257
|
+
fetchAdmins(params: FetchAdminsParams): Observable<AdminsResponse>;
|
|
2258
|
+
fetchOneById(id: number): Observable<AdminResponse>;
|
|
1379
2259
|
deleteOne(id: number): Observable<any>;
|
|
1380
|
-
createOne(data: any): Observable<
|
|
2260
|
+
createOne(data: any): Observable<AdminResponse>;
|
|
1381
2261
|
updateOne(id: number, data: any): Observable<any>;
|
|
1382
2262
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminService, never>;
|
|
1383
2263
|
static ɵprov: i0.ɵɵInjectableDeclaration<AdminService>;
|
|
@@ -1386,7 +2266,7 @@ declare class AdminService {
|
|
|
1386
2266
|
declare class CitiesService {
|
|
1387
2267
|
private apiService;
|
|
1388
2268
|
constructor(apiService: ApiService);
|
|
1389
|
-
fetchCities(
|
|
2269
|
+
fetchCities(params: FetchCitiesParams): Observable<CitiesResponse>;
|
|
1390
2270
|
createOne(data: City): Observable<CityResponse>;
|
|
1391
2271
|
updateOne(id: number, data: City): Observable<CityResponse>;
|
|
1392
2272
|
deleteOne(id: number): Observable<any>;
|
|
@@ -1397,7 +2277,7 @@ declare class CitiesService {
|
|
|
1397
2277
|
declare class CountryService {
|
|
1398
2278
|
private apiService;
|
|
1399
2279
|
constructor(apiService: ApiService);
|
|
1400
|
-
fetchCountries(
|
|
2280
|
+
fetchCountries(params: FetchCountriesParams): Observable<CountriesResponse>;
|
|
1401
2281
|
createOne(data: Country): Observable<CountryResponse>;
|
|
1402
2282
|
updateOne(id: number, data: Country): Observable<CountryResponse>;
|
|
1403
2283
|
deleteOne(id: number): Observable<any>;
|
|
@@ -1408,7 +2288,7 @@ declare class CountryService {
|
|
|
1408
2288
|
declare class StatesService {
|
|
1409
2289
|
private apiService;
|
|
1410
2290
|
constructor(apiService: ApiService);
|
|
1411
|
-
fetchStates(
|
|
2291
|
+
fetchStates(params: FetchStatesParams): Observable<StatesResponse>;
|
|
1412
2292
|
fetchStatesByCountryId(countryId: number): Observable<StatesResponse>;
|
|
1413
2293
|
createOne(data: State): Observable<StateResponse>;
|
|
1414
2294
|
updateOne(id: number, data: State): Observable<StateResponse>;
|
|
@@ -1422,23 +2302,36 @@ declare class PerformanceService {
|
|
|
1422
2302
|
private performancesSubject;
|
|
1423
2303
|
performances$: Observable<Performance[]>;
|
|
1424
2304
|
constructor(apiService: ApiService);
|
|
1425
|
-
fetchPerformances(showId
|
|
1426
|
-
fetchDailyPerformances({ show_id, search, limit, date
|
|
2305
|
+
fetchPerformances({ showId, roomMapId, hallId, search, page, limit, }: FindAllPerformancesParams): Observable<PerformancesResponseInterface>;
|
|
2306
|
+
fetchDailyPerformances({ show_id, search, limit, date }: FetchDailyPerformancesParams, isAdmin?: boolean): Observable<DailyPerformancesResponse>;
|
|
1427
2307
|
loadPerformances({ showId, search }?: {
|
|
1428
2308
|
showId?: number;
|
|
1429
2309
|
search?: string;
|
|
1430
2310
|
}): void;
|
|
1431
2311
|
getCurrentPerformances(): Performance[];
|
|
1432
2312
|
fetchOneById(id: number): Observable<PerformanceResponse>;
|
|
1433
|
-
fetchOneBookingData(id: number): Observable<PerformanceBookingDataResponse>;
|
|
2313
|
+
fetchOneBookingData(id: number, isAdmin?: boolean): Observable<PerformanceBookingDataResponse>;
|
|
1434
2314
|
fetchAvailableDays(params?: {
|
|
1435
2315
|
show_id?: number;
|
|
1436
|
-
}): Observable<PerformancesAvailableDaysResponse>;
|
|
2316
|
+
}, isAdmin?: boolean): Observable<PerformancesAvailableDaysResponse>;
|
|
1437
2317
|
createOne(data: Performance): Observable<any>;
|
|
1438
2318
|
createMany(data: Partial<Performance>[]): Observable<any>;
|
|
1439
2319
|
updateOne(id: number, data: any): Observable<PerformanceResponse>;
|
|
1440
2320
|
deleteOne(id: number): Observable<any>;
|
|
1441
2321
|
deleteMany(ids: number[]): Observable<any>;
|
|
2322
|
+
fetchPedagogicPerformances(params?: {
|
|
2323
|
+
page?: number;
|
|
2324
|
+
limit?: number;
|
|
2325
|
+
}): Observable<PerformancesResponseInterface>;
|
|
2326
|
+
fetchPedagogicAvailability(id: number): Observable<PedagogicAvailabilityResponse>;
|
|
2327
|
+
createPedagogicOrder(id: number, payload: CreatePedagogicOrderPayload): Observable<any>;
|
|
2328
|
+
updatePublishedBulk(ids: number[], published: boolean): Observable<{
|
|
2329
|
+
statusCode: number;
|
|
2330
|
+
data: {
|
|
2331
|
+
updated: number[];
|
|
2332
|
+
};
|
|
2333
|
+
message: string;
|
|
2334
|
+
}>;
|
|
1442
2335
|
cancelPerformance(id: number, notifyUsers: boolean): Observable<any>;
|
|
1443
2336
|
publishInvenotry(id: number): Observable<any>;
|
|
1444
2337
|
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceService, never>;
|
|
@@ -1467,7 +2360,7 @@ declare class ShowService {
|
|
|
1467
2360
|
constructor(apiService: ApiService);
|
|
1468
2361
|
loadShows({ page, search }?: FetchShowsParams): void;
|
|
1469
2362
|
getCurrentShows(): Show[];
|
|
1470
|
-
fetchShows(
|
|
2363
|
+
fetchShows(params: FetchShowsParams): Observable<ShowsResponseInterface>;
|
|
1471
2364
|
fetchAvailableShows({ date, limit, page, search, }: FetchShowsParams): Observable<ShowsResponseInterface>;
|
|
1472
2365
|
fetchOneById(id: number): Observable<ShowResponse>;
|
|
1473
2366
|
createOne(data: Show): Observable<ShowResponse>;
|
|
@@ -1488,7 +2381,7 @@ declare class CustomerService {
|
|
|
1488
2381
|
private apiService;
|
|
1489
2382
|
constructor(apiService: ApiService);
|
|
1490
2383
|
createOne(data: Customer): Observable<CustomerResponse>;
|
|
1491
|
-
fetchCustomers(
|
|
2384
|
+
fetchCustomers(params: FetchCustomersParams): Observable<CustomersResponse>;
|
|
1492
2385
|
fetchOneById(id: number): Observable<CustomerResponse>;
|
|
1493
2386
|
updateOne(id: number, data: any): Observable<CustomerResponse>;
|
|
1494
2387
|
deleteOne(id: number): Observable<any>;
|
|
@@ -1501,8 +2394,8 @@ declare class PriceZoneService {
|
|
|
1501
2394
|
private priceZonesSubject;
|
|
1502
2395
|
priceZones$: Observable<PriceZone[]>;
|
|
1503
2396
|
constructor(apiService: ApiService);
|
|
1504
|
-
fetchPriceZones(
|
|
1505
|
-
loadPriceZones(
|
|
2397
|
+
fetchPriceZones(params?: FindAllPriceZoneParams): Observable<PriceZonesResponseInterface>;
|
|
2398
|
+
loadPriceZones(params?: FindAllPriceZoneParams): void;
|
|
1506
2399
|
getCurrentPriceZones(): PriceZone[];
|
|
1507
2400
|
fetchOneById(id: number): Observable<PriceZoneResponse>;
|
|
1508
2401
|
createOne(data: PriceZone): Observable<any>;
|
|
@@ -1543,7 +2436,7 @@ declare class PriceZoneFormModalService {
|
|
|
1543
2436
|
declare class ProductCategoryService {
|
|
1544
2437
|
private apiService;
|
|
1545
2438
|
constructor(apiService: ApiService);
|
|
1546
|
-
fetchCategories(
|
|
2439
|
+
fetchCategories(params: FetchProductCategoriesParams): Observable<ProductCategoriesResponse>;
|
|
1547
2440
|
fetchOneById(id: number): Observable<ProductCategoryResponse>;
|
|
1548
2441
|
createOne(data: ProductCategory): Observable<any>;
|
|
1549
2442
|
updateOne(id: number, data: ProductCategory): Observable<ProductCategoryResponse>;
|
|
@@ -1555,7 +2448,7 @@ declare class ProductCategoryService {
|
|
|
1555
2448
|
declare class ProductTagService {
|
|
1556
2449
|
private apiService;
|
|
1557
2450
|
constructor(apiService: ApiService);
|
|
1558
|
-
fetchTags(
|
|
2451
|
+
fetchTags(params: FetchProductTagsParams): Observable<ProductTagsResponse>;
|
|
1559
2452
|
fetchOneById(id: number): Observable<ProductTagResponse>;
|
|
1560
2453
|
createOne(data: ProductTag): Observable<any>;
|
|
1561
2454
|
updateOne(id: number, data: ProductTag): Observable<ProductTagResponse>;
|
|
@@ -1567,7 +2460,7 @@ declare class ProductTagService {
|
|
|
1567
2460
|
declare class ProductTypeService {
|
|
1568
2461
|
private apiService;
|
|
1569
2462
|
constructor(apiService: ApiService);
|
|
1570
|
-
fetchTypes(
|
|
2463
|
+
fetchTypes(params: FetchProductTypesParams): Observable<ProductTypesResponse>;
|
|
1571
2464
|
fetchOneById(id: number): Observable<ProductTypeResponse>;
|
|
1572
2465
|
createOne(data: ProductType): Observable<any>;
|
|
1573
2466
|
updateOne(id: number, data: ProductType): Observable<ProductTypeResponse>;
|
|
@@ -1576,18 +2469,12 @@ declare class ProductTypeService {
|
|
|
1576
2469
|
static ɵprov: i0.ɵɵInjectableDeclaration<ProductTypeService>;
|
|
1577
2470
|
}
|
|
1578
2471
|
|
|
1579
|
-
interface FetchProductsParams {
|
|
1580
|
-
page?: number;
|
|
1581
|
-
limit?: number;
|
|
1582
|
-
search?: string;
|
|
1583
|
-
}
|
|
1584
|
-
|
|
1585
2472
|
declare class ProductService {
|
|
1586
2473
|
private apiService;
|
|
1587
2474
|
private productsSubject;
|
|
1588
2475
|
products$: Observable<Product[]>;
|
|
1589
2476
|
constructor(apiService: ApiService);
|
|
1590
|
-
fetchProducts(
|
|
2477
|
+
fetchProducts(params: FetchProductsParams): Observable<ProductsResponseInterface>;
|
|
1591
2478
|
loadProducts(params: FetchProductsParams): void;
|
|
1592
2479
|
getCurrentProducts(): Product[];
|
|
1593
2480
|
fetchOneById(id: number): Observable<ProductResponse>;
|
|
@@ -1605,6 +2492,514 @@ declare class ProductService {
|
|
|
1605
2492
|
static ɵprov: i0.ɵɵInjectableDeclaration<ProductService>;
|
|
1606
2493
|
}
|
|
1607
2494
|
|
|
2495
|
+
declare class BaseModalService {
|
|
2496
|
+
readonly isOpen: WritableSignal<boolean>;
|
|
2497
|
+
get modalIsOpen(): WritableSignal<boolean>;
|
|
2498
|
+
open(): void;
|
|
2499
|
+
close(): void;
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2502
|
+
declare class FeedbackModalService {
|
|
2503
|
+
private _modals;
|
|
2504
|
+
readonly modals: i0.Signal<FeedbackModalElement[]>;
|
|
2505
|
+
addModal(modal: FeedbackModalElement): void;
|
|
2506
|
+
removeModal(id: string): void;
|
|
2507
|
+
removeAllModals(): void;
|
|
2508
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalService, never>;
|
|
2509
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FeedbackModalService>;
|
|
2510
|
+
}
|
|
2511
|
+
|
|
2512
|
+
/**
|
|
2513
|
+
* Tope de entradas por selección/compra. Por defecto es `null` (sin límite),
|
|
2514
|
+
* que es lo que necesita el backoffice (admin puede seleccionar todo).
|
|
2515
|
+
* El ecommerce, que sí debe limitar, llama a `load()` una vez al iniciar la
|
|
2516
|
+
* app para traer el valor configurado en el formulario de personalización.
|
|
2517
|
+
*/
|
|
2518
|
+
declare class PurchaseLimitService {
|
|
2519
|
+
private apiService;
|
|
2520
|
+
private _maxTicketsPerSelection;
|
|
2521
|
+
readonly maxTicketsPerSelection: i0.Signal<number | null>;
|
|
2522
|
+
constructor(apiService: ApiService);
|
|
2523
|
+
setMaxTicketsPerSelection(max: number | null): void;
|
|
2524
|
+
load(): Observable<number | null>;
|
|
2525
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PurchaseLimitService, never>;
|
|
2526
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PurchaseLimitService>;
|
|
2527
|
+
}
|
|
2528
|
+
|
|
2529
|
+
declare class OrderTransactionDetailsModalService {
|
|
2530
|
+
readonly isOpen: WritableSignal<boolean>;
|
|
2531
|
+
transaction: WritableSignal<Transaction | null>;
|
|
2532
|
+
get modalIsOpen(): WritableSignal<boolean>;
|
|
2533
|
+
open(transaction: Transaction): void;
|
|
2534
|
+
close(): void;
|
|
2535
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalService, never>;
|
|
2536
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OrderTransactionDetailsModalService>;
|
|
2537
|
+
}
|
|
2538
|
+
|
|
2539
|
+
declare class PerformanceBookingDataService {
|
|
2540
|
+
private _show;
|
|
2541
|
+
private _performance;
|
|
2542
|
+
private _roomMap;
|
|
2543
|
+
private _hallFloors;
|
|
2544
|
+
private _selectedHallFloor;
|
|
2545
|
+
private _allRenderData;
|
|
2546
|
+
private _visibleFloorIds;
|
|
2547
|
+
private _hoveredFloorId;
|
|
2548
|
+
private _filteredPriceZoneIds;
|
|
2549
|
+
private _stageConfig;
|
|
2550
|
+
private _lastTickets;
|
|
2551
|
+
readonly show: i0.Signal<Show | null>;
|
|
2552
|
+
readonly hallFloors: i0.Signal<HallFloor[]>;
|
|
2553
|
+
readonly selectedHallFloor: i0.Signal<HallFloor | null>;
|
|
2554
|
+
readonly performance: i0.Signal<Performance | null>;
|
|
2555
|
+
readonly stageConfig: i0.Signal<{
|
|
2556
|
+
[x: string]: any;
|
|
2557
|
+
}>;
|
|
2558
|
+
readonly roomMap: i0.Signal<RoomMap | null>;
|
|
2559
|
+
readonly visibleFloorIds: i0.Signal<Set<number>>;
|
|
2560
|
+
readonly hoveredFloorId: i0.Signal<number | null>;
|
|
2561
|
+
readonly filteredPriceZoneIds: i0.Signal<Set<number>>;
|
|
2562
|
+
readonly priceZoneTicketCounts: i0.Signal<Map<number, {
|
|
2563
|
+
available: number;
|
|
2564
|
+
total: number;
|
|
2565
|
+
}>>;
|
|
2566
|
+
readonly availableFloors: i0.Signal<HallFloor[]>;
|
|
2567
|
+
readonly floorZOrder: i0.Signal<number[]>;
|
|
2568
|
+
readonly renderData: i0.Signal<ElementRenderData[]>;
|
|
2569
|
+
setPerformanceBookingData({ data }: PerformanceBookingDataResponse): void;
|
|
2570
|
+
/** Aplica actualizaciones de estado de tickets recibidas por SSE (ver
|
|
2571
|
+
* SeatAvailabilitySseService) sin volver a pedir todo el booking-data:
|
|
2572
|
+
* parcha `_lastTickets` y vuelve a calcular el render data del mapa con
|
|
2573
|
+
* los mismos `elements`/`price_zones` (que no cambian en vivo). */
|
|
2574
|
+
applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
|
|
2575
|
+
setRoomMap(roomMap: RoomMap | null): void;
|
|
2576
|
+
setAllRenderData(data: ElementRenderData[]): void;
|
|
2577
|
+
setPerformance(performance: Performance | null): void;
|
|
2578
|
+
setShow(show: Show | null): void;
|
|
2579
|
+
setHallFloors(data: HallFloor[]): void;
|
|
2580
|
+
setSelectedHallFloor(id: number): void;
|
|
2581
|
+
setHoveredFloor(floorId: number | null): void;
|
|
2582
|
+
togglePriceZoneFilter(zoneId: number): void;
|
|
2583
|
+
clearPriceZoneFilter(): void;
|
|
2584
|
+
isPriceZoneFiltered(zoneId: number): boolean;
|
|
2585
|
+
toggleFloorVisibility(floorId: number): void;
|
|
2586
|
+
isFloorVisible(floorId: number): boolean;
|
|
2587
|
+
updateStageConfig(data: {
|
|
2588
|
+
[x: string]: any;
|
|
2589
|
+
}): void;
|
|
2590
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceBookingDataService, never>;
|
|
2591
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PerformanceBookingDataService>;
|
|
2592
|
+
}
|
|
2593
|
+
|
|
2594
|
+
declare class TicketSelectionDetailsService {
|
|
2595
|
+
private _customerEmail;
|
|
2596
|
+
private _customerId;
|
|
2597
|
+
private _paymentMethod;
|
|
2598
|
+
private _billingInformation;
|
|
2599
|
+
readonly customerEmail: i0.Signal<string | null>;
|
|
2600
|
+
readonly customerId: i0.Signal<number | null>;
|
|
2601
|
+
readonly paymentMethod: i0.Signal<string | null>;
|
|
2602
|
+
readonly billingInformation: i0.Signal<Customer | null>;
|
|
2603
|
+
setCustomerEmail(email: string | null): void;
|
|
2604
|
+
setCustomerId(id: number | null): void;
|
|
2605
|
+
setPaymentMethod(method: string | null): void;
|
|
2606
|
+
setBillingInformation(values: Customer): void;
|
|
2607
|
+
clearSelection(): void;
|
|
2608
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDetailsService, never>;
|
|
2609
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDetailsService>;
|
|
2610
|
+
}
|
|
2611
|
+
|
|
2612
|
+
declare class TicketSelectionDiscountService {
|
|
2613
|
+
private _coupon;
|
|
2614
|
+
private _corporateBond;
|
|
2615
|
+
private _corporateBondCode;
|
|
2616
|
+
private _giftBond;
|
|
2617
|
+
private _giftBondCode;
|
|
2618
|
+
private _vipCard;
|
|
2619
|
+
/**
|
|
2620
|
+
* Abono (subscription) como metodo de pago. Solo se usa el campo
|
|
2621
|
+
* `service_fee_exempt`: el valor del descuento es siempre 100% (una obra
|
|
2622
|
+
* del abono cubre el ticket por completo), igual que un cupon del 100%.
|
|
2623
|
+
*/
|
|
2624
|
+
private _subscription;
|
|
2625
|
+
readonly coupon: Signal<Coupon | null>;
|
|
2626
|
+
readonly corporateBond: Signal<CorporateBond | null>;
|
|
2627
|
+
readonly corporateBondCode: Signal<string | null>;
|
|
2628
|
+
readonly giftBond: Signal<GiftBondPurchase | null>;
|
|
2629
|
+
readonly giftBondCode: Signal<string | null>;
|
|
2630
|
+
readonly vipCard: Signal<VipCard | null>;
|
|
2631
|
+
readonly subscription: Signal<{
|
|
2632
|
+
service_fee_exempt: boolean;
|
|
2633
|
+
} | null>;
|
|
2634
|
+
readonly selectedDiscount: Signal<SelectedDiscountCard | null>;
|
|
2635
|
+
readonly selectedDiscountType: Signal<SelectedDiscountCardType | undefined>;
|
|
2636
|
+
readonly selectedDiscountValue: Signal<number | undefined>;
|
|
2637
|
+
setCoupon(coupon: Coupon | null): void;
|
|
2638
|
+
setCorporateBond(corporateBond: CorporateBond | null): void;
|
|
2639
|
+
setCorporateBondCode(code: string | null): void;
|
|
2640
|
+
setGiftBond(giftBond: GiftBondPurchase | null): void;
|
|
2641
|
+
setGiftBondCode(code: string | null): void;
|
|
2642
|
+
/**
|
|
2643
|
+
* Saldo VIP como método de pago (VIP-HU-04). Solo debe contar como
|
|
2644
|
+
* descuento "seleccionado" mientras el cliente efectivamente eligió
|
|
2645
|
+
* pagar con su saldo VIP, no solo por tener una tarjeta activa —
|
|
2646
|
+
* llamar con `null` en cuanto deje de ser el método de pago elegido.
|
|
2647
|
+
*/
|
|
2648
|
+
setVipCard(card: VipCard | null): void;
|
|
2649
|
+
/**
|
|
2650
|
+
* Abono como metodo de pago (paralelo a `setVipCard`). Llamar con `null`
|
|
2651
|
+
* en cuanto deje de ser el metodo de pago elegido.
|
|
2652
|
+
*/
|
|
2653
|
+
setSubscription(subscription: {
|
|
2654
|
+
service_fee_exempt: boolean;
|
|
2655
|
+
} | null): void;
|
|
2656
|
+
clearSelection(): void;
|
|
2657
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionDiscountService, never>;
|
|
2658
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionDiscountService>;
|
|
2659
|
+
}
|
|
2660
|
+
|
|
2661
|
+
declare class TicketSelectionTotalsService {
|
|
2662
|
+
private bookingDataService;
|
|
2663
|
+
private selectionService;
|
|
2664
|
+
private selectionDiscountService;
|
|
2665
|
+
readonly selectedProductEntries: i0.Signal<{
|
|
2666
|
+
id: number;
|
|
2667
|
+
quantity: number;
|
|
2668
|
+
}[]>;
|
|
2669
|
+
readonly selectedProductCount: i0.Signal<number>;
|
|
2670
|
+
readonly productSubtotal: i0.Signal<number>;
|
|
2671
|
+
readonly ticketSubtotal: i0.Signal<number>;
|
|
2672
|
+
/**
|
|
2673
|
+
* Tarifa de servicio del Show cobrada una vez por cada boleta seleccionada
|
|
2674
|
+
* (no un monto fijo por orden), igual que el backend
|
|
2675
|
+
* (`create-pending-order.service.ts`): 2 boletas x $10.000 = $20.000.
|
|
2676
|
+
* Ya refleja la exoneración de VIP/Abono (retorna 0 en ese caso).
|
|
2677
|
+
*/
|
|
2678
|
+
readonly serviceFee: i0.Signal<number>;
|
|
2679
|
+
/**
|
|
2680
|
+
* Valor "crudo" de la tarifa de servicio (sin exonerar), para poder
|
|
2681
|
+
* mostrar explícitamente en la UI el "antes" cuando una membresía o
|
|
2682
|
+
* abono la exonera (en vez de perder el dato mostrando solo $0).
|
|
2683
|
+
*/
|
|
2684
|
+
readonly rawServiceFee: i0.Signal<number>;
|
|
2685
|
+
readonly isServiceFeeExempt: i0.Signal<boolean>;
|
|
2686
|
+
/**
|
|
2687
|
+
* El descuento (cupón, bono corporativo, bono de regalo, VIP, abono) se
|
|
2688
|
+
* calcula UNICAMENTE sobre el valor de las boletas: los productos nunca
|
|
2689
|
+
* reciben descuento (ver orders-discounts-applications.md).
|
|
2690
|
+
*/
|
|
2691
|
+
readonly discountAmount: i0.Signal<number | null>;
|
|
2692
|
+
subtotalValue(): number;
|
|
2693
|
+
totalValue(): number;
|
|
2694
|
+
totalDiscounted(): number | null;
|
|
2695
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionTotalsService, never>;
|
|
2696
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionTotalsService>;
|
|
2697
|
+
}
|
|
2698
|
+
|
|
2699
|
+
declare class TicketSelectionService {
|
|
2700
|
+
private bookingDataService;
|
|
2701
|
+
private feedbackModalService;
|
|
2702
|
+
private purchaseLimitService;
|
|
2703
|
+
private selectionDetailsService;
|
|
2704
|
+
private selectionDiscountService;
|
|
2705
|
+
private _zoneQuantities;
|
|
2706
|
+
private _allTickets;
|
|
2707
|
+
private _selectedTickets;
|
|
2708
|
+
private _selectedBlockedTickets;
|
|
2709
|
+
private _products;
|
|
2710
|
+
private _productQuantities;
|
|
2711
|
+
readonly selectedTickets: i0.Signal<PerformanceTicket[]>;
|
|
2712
|
+
readonly selectedBlockedTickets: i0.Signal<PerformanceTicket[]>;
|
|
2713
|
+
readonly selectedCount: i0.Signal<number>;
|
|
2714
|
+
readonly blockedSelectedCount: i0.Signal<number>;
|
|
2715
|
+
readonly selectedTicketIds: i0.Signal<Set<PerformanceTicket>>;
|
|
2716
|
+
readonly selectedBlockedTicketIds: i0.Signal<number[]>;
|
|
2717
|
+
readonly selectedTicketIdList: i0.Signal<number[]>;
|
|
2718
|
+
readonly summaryItems: i0.Signal<PerformanceTicket[]>;
|
|
2719
|
+
readonly products: i0.Signal<Product[]>;
|
|
2720
|
+
readonly productQuantities: i0.Signal<Map<number, number>>;
|
|
2721
|
+
readonly selectedProductEntries: i0.Signal<{
|
|
2722
|
+
id: number;
|
|
2723
|
+
quantity: number;
|
|
2724
|
+
}[]>;
|
|
2725
|
+
readonly selectedProductCount: i0.Signal<number>;
|
|
2726
|
+
readonly serviceFee: i0.Signal<number>;
|
|
2727
|
+
setTickets(tickets: PerformanceTicket[]): void;
|
|
2728
|
+
/** Aplica actualizaciones de estado recibidas por SSE (ver
|
|
2729
|
+
* SeatAvailabilitySseService). Muta los tickets existentes EN VEZ de
|
|
2730
|
+
* reemplazarlos por objetos nuevos: `_selectedTickets`/
|
|
2731
|
+
* `_selectedBlockedTickets` son Sets de referencias de objeto, no de ids,
|
|
2732
|
+
* así que reemplazar el array rompería la selección activa del usuario. */
|
|
2733
|
+
applySeatStatusUpdates(updates: SeatStatusUpdate[]): void;
|
|
2734
|
+
setProducts(products: Product[]): void;
|
|
2735
|
+
updateProductQuantity(productId: number, delta: number): void;
|
|
2736
|
+
getProductQuantity(productId: number): number;
|
|
2737
|
+
private getListByStatus;
|
|
2738
|
+
setSelectedTickets(tickets: PerformanceTicket[]): void;
|
|
2739
|
+
toggle(ticket: PerformanceTicket): void;
|
|
2740
|
+
select(ticket: PerformanceTicket): void;
|
|
2741
|
+
deselect(ticket: PerformanceTicket): void;
|
|
2742
|
+
clearBlockedSelection(): void;
|
|
2743
|
+
clearSelection(): void;
|
|
2744
|
+
isSelected(ticket: PerformanceTicket): boolean;
|
|
2745
|
+
initZoneQuantity(elementId: number, maxCapacity: number): void;
|
|
2746
|
+
getZoneMax(elementId: number): number;
|
|
2747
|
+
getZoneSelectedCount(elementId: number): number;
|
|
2748
|
+
setZoneQuantity(elementId: number, target: number): void;
|
|
2749
|
+
adjustZoneQuantity(elementId: number, delta: number): void;
|
|
2750
|
+
private remainingSelectionAllowance;
|
|
2751
|
+
private canAddMoreToSelection;
|
|
2752
|
+
private notifyPurchaseLimitReached;
|
|
2753
|
+
getZoneTickets(elementId: number): PerformanceTicket[];
|
|
2754
|
+
buildTooltipData(ticket: PerformanceTicket, elementName: string, seatLabel: string | null, x: number, y: number): TicketMapTooltipData;
|
|
2755
|
+
buildReservePerformanceDto(paymentMethod?: string, termsAccepted?: boolean, dataProcessingAccepted?: boolean): ReservePerformanceDto;
|
|
2756
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketSelectionService, never>;
|
|
2757
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketSelectionService>;
|
|
2758
|
+
}
|
|
2759
|
+
|
|
2760
|
+
declare class TicketMapZoomService {
|
|
2761
|
+
readonly currentZoom: i0.WritableSignal<number>;
|
|
2762
|
+
private stage?;
|
|
2763
|
+
private bookingDataService;
|
|
2764
|
+
private readonly defaultConfig;
|
|
2765
|
+
constructor();
|
|
2766
|
+
/**
|
|
2767
|
+
* Set the Konva stage instance
|
|
2768
|
+
*/
|
|
2769
|
+
setStage(stage: Stage): void;
|
|
2770
|
+
/**
|
|
2771
|
+
* Zoom in by one step
|
|
2772
|
+
*/
|
|
2773
|
+
zoomIn(): void;
|
|
2774
|
+
/**
|
|
2775
|
+
* Zoom out by one step
|
|
2776
|
+
*/
|
|
2777
|
+
zoomOut(): void;
|
|
2778
|
+
/**
|
|
2779
|
+
* Reset zoom to 100%
|
|
2780
|
+
*/
|
|
2781
|
+
resetZoom(): void;
|
|
2782
|
+
/**
|
|
2783
|
+
* Get current zoom as percentage string
|
|
2784
|
+
*/
|
|
2785
|
+
getZoomPercentage(): string;
|
|
2786
|
+
/**
|
|
2787
|
+
* Get current zoom value
|
|
2788
|
+
*/
|
|
2789
|
+
getCurrentZoom(): number;
|
|
2790
|
+
/**
|
|
2791
|
+
* Apply zoom with center point
|
|
2792
|
+
*/
|
|
2793
|
+
private applyZoom;
|
|
2794
|
+
/**
|
|
2795
|
+
* Apply zoom scale with specific center point
|
|
2796
|
+
*/
|
|
2797
|
+
private applyZoomScale;
|
|
2798
|
+
/**
|
|
2799
|
+
* Handle mouse wheel zoom toward the cursor position
|
|
2800
|
+
*/
|
|
2801
|
+
handleWheelZoom(deltaY: number): void;
|
|
2802
|
+
/**
|
|
2803
|
+
* Fit the content bounds to fill the stage container
|
|
2804
|
+
*/
|
|
2805
|
+
fitToContainer(padding?: number): void;
|
|
2806
|
+
/**
|
|
2807
|
+
* Get current stage position
|
|
2808
|
+
*/
|
|
2809
|
+
getStagePosition(): {
|
|
2810
|
+
x: number;
|
|
2811
|
+
y: number;
|
|
2812
|
+
};
|
|
2813
|
+
/**
|
|
2814
|
+
* Set stage position (useful for programmatic panning)
|
|
2815
|
+
*/
|
|
2816
|
+
setStagePosition(position: {
|
|
2817
|
+
x: number;
|
|
2818
|
+
y: number;
|
|
2819
|
+
}): void;
|
|
2820
|
+
/**
|
|
2821
|
+
* Fit the stage content bounds to the container, centering and scaling
|
|
2822
|
+
* to show the full content with optional padding.
|
|
2823
|
+
*/
|
|
2824
|
+
fitToBounds(contentBounds: {
|
|
2825
|
+
x: number;
|
|
2826
|
+
y: number;
|
|
2827
|
+
width: number;
|
|
2828
|
+
height: number;
|
|
2829
|
+
}, containerWidth: number, containerHeight: number, padding?: number): void;
|
|
2830
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomService, never>;
|
|
2831
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketMapZoomService>;
|
|
2832
|
+
}
|
|
2833
|
+
|
|
2834
|
+
declare class ConfirmationOrderModalService extends BaseModalService {
|
|
2835
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalService, never>;
|
|
2836
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationOrderModalService>;
|
|
2837
|
+
}
|
|
2838
|
+
|
|
2839
|
+
/**
|
|
2840
|
+
* Transporte SSE del estado de asientos en vivo. Es el único punto de la
|
|
2841
|
+
* librería que sabe de EventSource/HTTP para esto — aplica cada snapshot
|
|
2842
|
+
* recibido sobre PerformanceBookingDataService (repinta el mapa) y
|
|
2843
|
+
* TicketSelectionService (mantiene la disponibilidad al día para
|
|
2844
|
+
* validaciones de zona/límite de compra).
|
|
2845
|
+
*
|
|
2846
|
+
* Cada intento de reconexión pide un ticket NUEVO (el anterior es de un
|
|
2847
|
+
* solo uso y expira a los ~30s), con backoff exponencial acotado.
|
|
2848
|
+
*/
|
|
2849
|
+
declare class SeatAvailabilitySseService {
|
|
2850
|
+
private apiService;
|
|
2851
|
+
private bookingDataService;
|
|
2852
|
+
private ticketSelectionService;
|
|
2853
|
+
private platformId;
|
|
2854
|
+
private config;
|
|
2855
|
+
private eventSource;
|
|
2856
|
+
private reconnectTimer;
|
|
2857
|
+
private reconnectAttempts;
|
|
2858
|
+
private currentPerformanceId;
|
|
2859
|
+
private currentIsAdmin;
|
|
2860
|
+
private stopped;
|
|
2861
|
+
constructor(apiService: ApiService, bookingDataService: PerformanceBookingDataService, ticketSelectionService: TicketSelectionService, platformId: Object, config: TickeraComponentsConfig);
|
|
2862
|
+
connect(performanceId: number, opts?: {
|
|
2863
|
+
isAdmin?: boolean;
|
|
2864
|
+
}): void;
|
|
2865
|
+
disconnect(): void;
|
|
2866
|
+
private openConnection;
|
|
2867
|
+
private startStream;
|
|
2868
|
+
private scheduleReconnect;
|
|
2869
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatAvailabilitySseService, never>;
|
|
2870
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SeatAvailabilitySseService>;
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2873
|
+
/**
|
|
2874
|
+
* Cliente de la cola adaptativa (fase 4). No decide CUÁNDO se activa la
|
|
2875
|
+
* cola — eso es enteramente responsabilidad del backend (AdmissionGuard +
|
|
2876
|
+
* LoadBasedAdmissionPolicy) — este servicio solo sabe reaccionar al 429
|
|
2877
|
+
* `ADMISSION_QUEUE_REQUIRED` que ese guard puede devolver en
|
|
2878
|
+
* /carts/reserve y /orders/checkout.
|
|
2879
|
+
*
|
|
2880
|
+
* Uso típico en el punto de llamada (ver reservation-confirmation y
|
|
2881
|
+
* checkout-form): reintentar la request original dentro de un catchError:
|
|
2882
|
+
*
|
|
2883
|
+
* this.cartService.reserve(dto).pipe(
|
|
2884
|
+
* catchError((err) => {
|
|
2885
|
+
* if (!this.admissionQueueService.isAdmissionRequired(err)) return throwError(() => err);
|
|
2886
|
+
* const performanceId = this.admissionQueueService.getPerformanceId(err)!;
|
|
2887
|
+
* return this.admissionQueueService.waitForAdmission(performanceId).pipe(
|
|
2888
|
+
* switchMap(() => this.cartService.reserve(dto)),
|
|
2889
|
+
* );
|
|
2890
|
+
* }),
|
|
2891
|
+
* )
|
|
2892
|
+
*
|
|
2893
|
+
* Reutiliza el mismo transporte SSE con ticket de un solo uso de la fase 3
|
|
2894
|
+
* (ver SeatAvailabilitySseService) — acá el ticket llega directo en la
|
|
2895
|
+
* respuesta de /join, así que no hace falta un endpoint de ticket aparte;
|
|
2896
|
+
* cada reintento de conexión vuelve a hacer /join (el ticket anterior es
|
|
2897
|
+
* de un solo uso y expira a los ~30s).
|
|
2898
|
+
*/
|
|
2899
|
+
declare class AdmissionQueueService {
|
|
2900
|
+
private apiService;
|
|
2901
|
+
private feedbackModalService;
|
|
2902
|
+
private platformId;
|
|
2903
|
+
private config;
|
|
2904
|
+
constructor(apiService: ApiService, feedbackModalService: FeedbackModalService, platformId: Object, config: TickeraComponentsConfig);
|
|
2905
|
+
/** True si el error es el 429 específico de "alta demanda, únete a la fila". */
|
|
2906
|
+
isAdmissionRequired(error: unknown): error is HttpErrorResponse;
|
|
2907
|
+
getPerformanceId(error: HttpErrorResponse): number | null;
|
|
2908
|
+
/**
|
|
2909
|
+
* Se une a la fila de `performanceId` y completa (emite una vez y cierra)
|
|
2910
|
+
* en cuanto el usuario queda admitido. Mientras espera, muestra un modal
|
|
2911
|
+
* ligero con la posición vigente, actualizado por SSE. Si quien se
|
|
2912
|
+
* suscribió se desuscribe antes de ser admitido (el usuario navega a
|
|
2913
|
+
* otro lado, cierra el modal, o el componente se destruye), libera el
|
|
2914
|
+
* lugar en la fila con /leave.
|
|
2915
|
+
*/
|
|
2916
|
+
waitForAdmission(performanceId: number): Observable<void>;
|
|
2917
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdmissionQueueService, never>;
|
|
2918
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AdmissionQueueService>;
|
|
2919
|
+
}
|
|
2920
|
+
|
|
2921
|
+
declare class TicketQrService {
|
|
2922
|
+
private apiService;
|
|
2923
|
+
constructor(apiService: ApiService);
|
|
2924
|
+
fetchQrToken(ticketUuid: string): Observable<QrTokenResponse>;
|
|
2925
|
+
fetchMyQrToken(ticketUuid: string): Observable<QrTokenResponse>;
|
|
2926
|
+
downloadTicketPdf(ticketUuid: string): Observable<Blob>;
|
|
2927
|
+
downloadMyTicketPdf(ticketUuid: string): Observable<Blob>;
|
|
2928
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrService, never>;
|
|
2929
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrService>;
|
|
2930
|
+
}
|
|
2931
|
+
|
|
2932
|
+
declare class TicketQrModalService {
|
|
2933
|
+
isOpen: WritableSignal<boolean>;
|
|
2934
|
+
ticketUuid: WritableSignal<string | null>;
|
|
2935
|
+
ticketDescription: WritableSignal<string | null>;
|
|
2936
|
+
open(ticketUuid: string, description?: string): void;
|
|
2937
|
+
close(): void;
|
|
2938
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalService, never>;
|
|
2939
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TicketQrModalService>;
|
|
2940
|
+
}
|
|
2941
|
+
|
|
2942
|
+
declare class VipCardService {
|
|
2943
|
+
private apiService;
|
|
2944
|
+
constructor(apiService: ApiService);
|
|
2945
|
+
findMy(): Observable<{
|
|
2946
|
+
data: VipCard | null;
|
|
2947
|
+
}>;
|
|
2948
|
+
activate(data: any): Observable<VipOrderResponse>;
|
|
2949
|
+
recharge(data: any): Observable<VipOrderResponse>;
|
|
2950
|
+
fetchAll(params?: FetchVipCardsParams): Observable<VipCardsResponse>;
|
|
2951
|
+
fetchOneById(id: number): Observable<VipCardResponse>;
|
|
2952
|
+
activateAdmin(data: ActivateVipCardParams): Observable<VipOrderResponse>;
|
|
2953
|
+
rechargeAdmin(id: number, data: any): Observable<VipOrderResponse>;
|
|
2954
|
+
updateStatus(id: number, status: VipCardStatus): Observable<VipCardResponse>;
|
|
2955
|
+
updateTerms(id: number): Observable<VipCardResponse>;
|
|
2956
|
+
fetchTransactions(id: number, page?: number, limit?: number): Observable<VipTransactionsResponse>;
|
|
2957
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipCardService, never>;
|
|
2958
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<VipCardService>;
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
/**
|
|
2962
|
+
* Servicio genérico de "cambios pendientes" para tablas con edición rápida
|
|
2963
|
+
* + guardado masivo (QTN-49, primer consumidor: Bonos de Regalo en
|
|
2964
|
+
* tickera-backoffice-frontend).
|
|
2965
|
+
*
|
|
2966
|
+
* IMPORTANTE: proveerlo a nivel de componente/página
|
|
2967
|
+
* (`providers: [PendingChangesService]` en el `@Component` que lo usa),
|
|
2968
|
+
* NUNCA en `providedIn: 'root'` — si no, dos tablas con edición rápida
|
|
2969
|
+
* abiertas al mismo tiempo (dos pestañas, o dos listados en la misma
|
|
2970
|
+
* sesión) compartirían el mismo estado de cambios pendientes. Mismo
|
|
2971
|
+
* criterio que ya sigue este repo con GiftBondService, provisto a nivel de
|
|
2972
|
+
* GiftBondDetailsComponent en vez de en 'root'.
|
|
2973
|
+
*/
|
|
2974
|
+
declare class PendingChangesService<TValue = any> {
|
|
2975
|
+
private readonly changesSignal;
|
|
2976
|
+
private readonly originalValues;
|
|
2977
|
+
readonly changes: Signal<Map<number, TValue>>;
|
|
2978
|
+
readonly changeCount: Signal<number>;
|
|
2979
|
+
readonly hasChanges: Signal<boolean>;
|
|
2980
|
+
/**
|
|
2981
|
+
* Registra (o actualiza) el cambio pendiente de `id`. `originalValue` es
|
|
2982
|
+
* el valor que tenía la fila antes de cualquier edición en esta sesión de
|
|
2983
|
+
* la tabla — solo se guarda la primera vez que se llama para ese id, así
|
|
2984
|
+
* que no importa pasarlo en cada llamada subsiguiente.
|
|
2985
|
+
*
|
|
2986
|
+
* Si `newValue` termina siendo igual al valor original, el id se
|
|
2987
|
+
* elimina automáticamente de los cambios pendientes (evita que quede
|
|
2988
|
+
* marcado como "modificado" un valor que el usuario cambió y luego
|
|
2989
|
+
* revirtió a mano).
|
|
2990
|
+
*/
|
|
2991
|
+
setChange(id: number, originalValue: TValue, newValue: TValue): void;
|
|
2992
|
+
getPendingValue(id: number): TValue | undefined;
|
|
2993
|
+
/** Descarta el cambio pendiente de una fila puntual (botón "Deshacer" por fila, si aplica). */
|
|
2994
|
+
discard(id: number): void;
|
|
2995
|
+
/** Descarta todos los cambios pendientes sin guardar nada (botón "Deshacer" de la barra flotante). */
|
|
2996
|
+
discardAll(): void;
|
|
2997
|
+
/** Llamar después de que el guardado en lote fue exitoso, para limpiar el estado. */
|
|
2998
|
+
clearAfterSave(): void;
|
|
2999
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PendingChangesService<any>, never>;
|
|
3000
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PendingChangesService<any>>;
|
|
3001
|
+
}
|
|
3002
|
+
|
|
1608
3003
|
declare const authInterceptor: HttpInterceptorFn;
|
|
1609
3004
|
|
|
1610
3005
|
declare class AppButtonComponent {
|
|
@@ -1617,10 +3012,11 @@ declare class AppButtonComponent {
|
|
|
1617
3012
|
size: 'xs' | 'sm' | 'md' | 'lg';
|
|
1618
3013
|
loadingText: string;
|
|
1619
3014
|
icon: string;
|
|
3015
|
+
tooltip: string;
|
|
1620
3016
|
handleClick(): void;
|
|
1621
3017
|
get buttonClasses(): string;
|
|
1622
3018
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppButtonComponent, never>;
|
|
1623
|
-
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>;
|
|
3019
|
+
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>;
|
|
1624
3020
|
}
|
|
1625
3021
|
|
|
1626
3022
|
declare class AppLinkButtonComponent {
|
|
@@ -1634,9 +3030,10 @@ declare class AppLinkButtonComponent {
|
|
|
1634
3030
|
queryParams: Record<string, any>;
|
|
1635
3031
|
size: 'xs' | 'sm' | 'md' | 'lg';
|
|
1636
3032
|
variant: 'primary' | 'secondary' | 'tertiary' | 'success' | 'transparent';
|
|
3033
|
+
tooltip: string;
|
|
1637
3034
|
get buttonClasses(): string;
|
|
1638
3035
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppLinkButtonComponent, never>;
|
|
1639
|
-
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>;
|
|
3036
|
+
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>;
|
|
1640
3037
|
}
|
|
1641
3038
|
|
|
1642
3039
|
declare class AppAlertComponent {
|
|
@@ -1649,30 +3046,65 @@ declare class AppAlertComponent {
|
|
|
1649
3046
|
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>;
|
|
1650
3047
|
}
|
|
1651
3048
|
|
|
1652
|
-
declare class
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
3049
|
+
declare class FeedbackModalComponent implements OnChanges, OnDestroy {
|
|
3050
|
+
isOpen: WritableSignal<boolean>;
|
|
3051
|
+
type: FeedbackModalType;
|
|
3052
|
+
title: string;
|
|
3053
|
+
message: string;
|
|
3054
|
+
showHeader: boolean;
|
|
3055
|
+
showCloseButton: boolean;
|
|
3056
|
+
showTitle: boolean;
|
|
3057
|
+
autoClose: boolean;
|
|
3058
|
+
autoCloseDuration: number;
|
|
3059
|
+
buttonText: string;
|
|
3060
|
+
closed: EventEmitter<void>;
|
|
3061
|
+
private autoCloseTimeout;
|
|
3062
|
+
get defaultButtonText(): string;
|
|
3063
|
+
get resolvedButtonText(): string;
|
|
3064
|
+
get buttonVariant(): 'primary' | 'secondary';
|
|
3065
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3066
|
+
ngOnDestroy(): void;
|
|
1657
3067
|
closeModal(): void;
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
static
|
|
3068
|
+
private scheduleAutoClose;
|
|
3069
|
+
private clearAutoClose;
|
|
3070
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FeedbackModalComponent, never>;
|
|
3071
|
+
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>;
|
|
1661
3072
|
}
|
|
1662
3073
|
|
|
3074
|
+
type DeleteConfirmationStep = 'input' | 'final';
|
|
1663
3075
|
declare class DeleteConfirmationComponent {
|
|
1664
3076
|
private fb;
|
|
1665
3077
|
private deleteConfirmationService;
|
|
1666
3078
|
protected transloco: TranslocoService;
|
|
1667
3079
|
deleteConfirmationForm: FormGroup;
|
|
3080
|
+
/**
|
|
3081
|
+
* Two-step flow:
|
|
3082
|
+
* 1. 'input' -> the user must type the resource name to unlock the delete action.
|
|
3083
|
+
* 2. 'final' -> a last feedback/confirmation step is shown before the delete
|
|
3084
|
+
* callback actually runs, so a slip of the mouse on the first
|
|
3085
|
+
* step can never trigger a real deletion by itself.
|
|
3086
|
+
*/
|
|
3087
|
+
step: DeleteConfirmationStep;
|
|
1668
3088
|
constructor(fb: FormBuilder, deleteConfirmationService: DeleteConfirmationService, transloco: TranslocoService);
|
|
1669
3089
|
get title(): string;
|
|
1670
3090
|
get resourceName(): string;
|
|
1671
3091
|
get confirmationText(): string;
|
|
1672
3092
|
get isOpen(): i0.WritableSignal<boolean>;
|
|
1673
3093
|
get isConfirmationValid(): boolean;
|
|
3094
|
+
get isFinalStep(): boolean;
|
|
3095
|
+
/** Cancels the whole flow (from either step) without deleting anything. */
|
|
1674
3096
|
onCloseModal(): void;
|
|
3097
|
+
/** Step 1 submit: only advances to the final confirmation, never deletes. */
|
|
1675
3098
|
onConfirmDelete(): void;
|
|
3099
|
+
/**
|
|
3100
|
+
* Step 2 cancel: goes back to the input step without touching what the
|
|
3101
|
+
* user typed, so they don't have to retype it if they just want to
|
|
3102
|
+
* double-check before deleting.
|
|
3103
|
+
*/
|
|
3104
|
+
onBackToInput(): void;
|
|
3105
|
+
/** Step 2 submit: this is the only place that actually triggers deletion. */
|
|
3106
|
+
onFinalConfirm(): void;
|
|
3107
|
+
private resetState;
|
|
1676
3108
|
static ɵfac: i0.ɵɵFactoryDeclaration<DeleteConfirmationComponent, never>;
|
|
1677
3109
|
static ɵcmp: i0.ɵɵComponentDeclaration<DeleteConfirmationComponent, "delete-confirmation", never, {}, {}, never, never, true, never>;
|
|
1678
3110
|
}
|
|
@@ -1680,12 +3112,29 @@ declare class DeleteConfirmationComponent {
|
|
|
1680
3112
|
declare class AppModalComponent {
|
|
1681
3113
|
title: string;
|
|
1682
3114
|
disableClose: boolean;
|
|
3115
|
+
showHeader: boolean;
|
|
3116
|
+
showCloseButton: boolean;
|
|
3117
|
+
showTitle: boolean;
|
|
3118
|
+
interactiveClose: boolean;
|
|
1683
3119
|
isOpen: WritableSignal<boolean>;
|
|
1684
|
-
size:
|
|
3120
|
+
size: ModalSize;
|
|
1685
3121
|
closeModal: EventEmitter<void>;
|
|
1686
3122
|
onCloseModal(): void;
|
|
3123
|
+
onInteractiveClose(): void;
|
|
3124
|
+
onKeydownEscape(): void;
|
|
1687
3125
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppModalComponent, never>;
|
|
1688
|
-
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>;
|
|
3126
|
+
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>;
|
|
3127
|
+
}
|
|
3128
|
+
|
|
3129
|
+
declare class AppBadgeComponent {
|
|
3130
|
+
text: string;
|
|
3131
|
+
color: BadgeColor;
|
|
3132
|
+
size: BadgeSize;
|
|
3133
|
+
bordered: boolean;
|
|
3134
|
+
backgroundColor: string;
|
|
3135
|
+
textColor: string;
|
|
3136
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppBadgeComponent, never>;
|
|
3137
|
+
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>;
|
|
1689
3138
|
}
|
|
1690
3139
|
|
|
1691
3140
|
declare class AuditInformationComponent {
|
|
@@ -1694,12 +3143,13 @@ declare class AuditInformationComponent {
|
|
|
1694
3143
|
static ɵcmp: i0.ɵɵComponentDeclaration<AuditInformationComponent, "app-audit-information", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
|
|
1695
3144
|
}
|
|
1696
3145
|
|
|
1697
|
-
declare class DynamicTableComponent {
|
|
3146
|
+
declare class DynamicTableComponent implements OnChanges {
|
|
1698
3147
|
private injector;
|
|
1699
3148
|
constructor(injector: Injector);
|
|
1700
3149
|
title: string;
|
|
1701
3150
|
data: any[];
|
|
1702
3151
|
headers: any[];
|
|
3152
|
+
searcherPlaceholder: string;
|
|
1703
3153
|
columnComponents: {
|
|
1704
3154
|
[key: string]: Type<any>;
|
|
1705
3155
|
};
|
|
@@ -1707,17 +3157,116 @@ declare class DynamicTableComponent {
|
|
|
1707
3157
|
totalItems: number;
|
|
1708
3158
|
itemsPerPage: number;
|
|
1709
3159
|
currentPage: number;
|
|
3160
|
+
searchValue: string;
|
|
1710
3161
|
pageChange: EventEmitter<number>;
|
|
1711
3162
|
searchChange: EventEmitter<string>;
|
|
3163
|
+
pageSizeChange: EventEmitter<number>;
|
|
3164
|
+
pageSizeOptions: number[];
|
|
1712
3165
|
showPagination: boolean;
|
|
1713
3166
|
showSearch: boolean;
|
|
1714
3167
|
showTitle: boolean;
|
|
1715
3168
|
get totalPages(): number;
|
|
1716
3169
|
onSearch(event: any): void;
|
|
1717
3170
|
changePage(delta: number): void;
|
|
3171
|
+
changePageSize(event: any): void;
|
|
3172
|
+
private rowInjectors;
|
|
3173
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1718
3174
|
createInjector(row: any): Injector;
|
|
1719
3175
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicTableComponent, never>;
|
|
1720
|
-
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>;
|
|
3176
|
+
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>;
|
|
3177
|
+
}
|
|
3178
|
+
|
|
3179
|
+
declare class TextExpandableComponent implements OnChanges {
|
|
3180
|
+
text: string;
|
|
3181
|
+
maxLength: number;
|
|
3182
|
+
fontSize: TextFontSize;
|
|
3183
|
+
allowHtml: boolean;
|
|
3184
|
+
maxLines?: number;
|
|
3185
|
+
protected expanded: boolean;
|
|
3186
|
+
ngOnChanges(): void;
|
|
3187
|
+
get plainText(): string;
|
|
3188
|
+
get truncated(): boolean;
|
|
3189
|
+
get visibleText(): string;
|
|
3190
|
+
get lines(): number;
|
|
3191
|
+
toggleExpanded(): void;
|
|
3192
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextExpandableComponent, never>;
|
|
3193
|
+
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>;
|
|
3194
|
+
}
|
|
3195
|
+
|
|
3196
|
+
/**
|
|
3197
|
+
* Select genérico para editar un campo (típicamente "estado") directamente
|
|
3198
|
+
* en una celda de tabla, sin guardar de inmediato (QTN-49).
|
|
3199
|
+
*
|
|
3200
|
+
* Este componente es deliberadamente "tonto": no sabe a qué recurso
|
|
3201
|
+
* pertenece la fila ni cómo guardarla — solo muestra `options`, refleja
|
|
3202
|
+
* `value`, y emite `valueChange` cuando el usuario elige otra opción.
|
|
3203
|
+
* El componente que lo envuelve (p. ej. gift-bond-table-status en
|
|
3204
|
+
* tickera-backoffice-frontend) es quien conoce el id de la fila y decide
|
|
3205
|
+
* si guarda de inmediato o acumula el cambio en un
|
|
3206
|
+
* PendingChangesService + bulk-save-bar para guardado masivo.
|
|
3207
|
+
*/
|
|
3208
|
+
declare class QuickStatusEditComponent {
|
|
3209
|
+
options: SelectOption[];
|
|
3210
|
+
value: any;
|
|
3211
|
+
/** Resalta visualmente la celda como "modificada, sin guardar". */
|
|
3212
|
+
dirty: boolean;
|
|
3213
|
+
disabled: boolean;
|
|
3214
|
+
valueChange: EventEmitter<any>;
|
|
3215
|
+
onChange(newValue: any): void;
|
|
3216
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QuickStatusEditComponent, never>;
|
|
3217
|
+
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>;
|
|
3218
|
+
}
|
|
3219
|
+
|
|
3220
|
+
/**
|
|
3221
|
+
* Barra flotante "Guardar cambios" para guardado masivo (QTN-49).
|
|
3222
|
+
*
|
|
3223
|
+
* No conoce el recurso concreto ni cómo persistir los cambios — el
|
|
3224
|
+
* componente que la usa le pasa `[count]` (típicamente
|
|
3225
|
+
* `pendingChangesService.changeCount()`) y escucha `(save)`/`(discard)`
|
|
3226
|
+
* para llamar al endpoint bulk correspondiente.
|
|
3227
|
+
*/
|
|
3228
|
+
declare class BulkSaveBarComponent {
|
|
3229
|
+
count: number;
|
|
3230
|
+
loading: boolean;
|
|
3231
|
+
saveLabel: string;
|
|
3232
|
+
discardLabel: string;
|
|
3233
|
+
save: EventEmitter<void>;
|
|
3234
|
+
discard: EventEmitter<void>;
|
|
3235
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BulkSaveBarComponent, never>;
|
|
3236
|
+
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>;
|
|
3237
|
+
}
|
|
3238
|
+
|
|
3239
|
+
declare class ShowCardComponent {
|
|
3240
|
+
show: Show;
|
|
3241
|
+
linkText: string;
|
|
3242
|
+
linkUrlFn?: (show: Show) => string;
|
|
3243
|
+
linkQueryParams?: Record<string, any>;
|
|
3244
|
+
transloco: TranslocoService;
|
|
3245
|
+
dateService: DateService;
|
|
3246
|
+
formatTimeDate(date: string): Date;
|
|
3247
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardComponent, never>;
|
|
3248
|
+
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>;
|
|
3249
|
+
}
|
|
3250
|
+
|
|
3251
|
+
declare class ShowTypeBadgeComponent {
|
|
3252
|
+
show: Show;
|
|
3253
|
+
size: BadgeSize;
|
|
3254
|
+
transloco: TranslocoService;
|
|
3255
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShowTypeBadgeComponent, never>;
|
|
3256
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ShowTypeBadgeComponent, "show-type-badge", never, { "show": { "alias": "show"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
declare class ShowCardSkeletonComponent {
|
|
3260
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShowCardSkeletonComponent, never>;
|
|
3261
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ShowCardSkeletonComponent, "show-card-skeleton", never, {}, {}, never, never, true, never>;
|
|
3262
|
+
}
|
|
3263
|
+
|
|
3264
|
+
declare class AppBreadcumbComponent {
|
|
3265
|
+
homeUrl: string | undefined;
|
|
3266
|
+
steps: BreadcrumbStep[];
|
|
3267
|
+
theme: BreadcrumbTheme;
|
|
3268
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppBreadcumbComponent, never>;
|
|
3269
|
+
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>;
|
|
1721
3270
|
}
|
|
1722
3271
|
|
|
1723
3272
|
declare class LanguageSwitcherComponent {
|
|
@@ -1730,6 +3279,67 @@ declare class LanguageSwitcherComponent {
|
|
|
1730
3279
|
static ɵcmp: i0.ɵɵComponentDeclaration<LanguageSwitcherComponent, "language-switcher", never, {}, {}, never, never, true, never>;
|
|
1731
3280
|
}
|
|
1732
3281
|
|
|
3282
|
+
declare class SidebarMenuComponent implements OnInit {
|
|
3283
|
+
private router;
|
|
3284
|
+
protected sidebarState: SidebarStateService;
|
|
3285
|
+
/** Menu items to render. Each app owns its own routes/roles and passes them in here. */
|
|
3286
|
+
items: SidebarMenuItem[];
|
|
3287
|
+
/** Route the brand/logo link should navigate to (e.g. the dashboard). */
|
|
3288
|
+
homePath: string;
|
|
3289
|
+
/** Optional brand logo shown in the sidebar header. Omit to render no logo. */
|
|
3290
|
+
logoUrl: string;
|
|
3291
|
+
logoAlt: string;
|
|
3292
|
+
private readonly IS_ACTIVE_MATCH_OPTIONS;
|
|
3293
|
+
constructor(router: Router, sidebarState: SidebarStateService);
|
|
3294
|
+
ngOnInit(): void;
|
|
3295
|
+
private updateSubmenuState;
|
|
3296
|
+
isSubmenuActive(item: SidebarMenuItem): boolean;
|
|
3297
|
+
toggleSubmenu(item: SidebarMenuItem): void;
|
|
3298
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarMenuComponent, never>;
|
|
3299
|
+
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>;
|
|
3300
|
+
}
|
|
3301
|
+
|
|
3302
|
+
declare class AdminNavbarComponent {
|
|
3303
|
+
protected sidebarState: SidebarStateService;
|
|
3304
|
+
/** Currently logged-in admin, or null while it hasn't loaded yet. */
|
|
3305
|
+
admin: Admin | null;
|
|
3306
|
+
/** Route the "my account" menu item should link to. */
|
|
3307
|
+
myAccountPath: string;
|
|
3308
|
+
/** Emitted when the admin clicks "log out" in the profile menu. */
|
|
3309
|
+
logout: EventEmitter<void>;
|
|
3310
|
+
isProfileMenuOpen: WritableSignal<boolean>;
|
|
3311
|
+
constructor(sidebarState: SidebarStateService);
|
|
3312
|
+
toggleProfileMenu(): void;
|
|
3313
|
+
onLogout(): void;
|
|
3314
|
+
clickout(event: Event): void;
|
|
3315
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdminNavbarComponent, never>;
|
|
3316
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AdminNavbarComponent, "admin-navbar", never, { "admin": { "alias": "admin"; "required": false; }; "myAccountPath": { "alias": "myAccountPath"; "required": false; }; }, { "logout": "logout"; }, never, never, true, never>;
|
|
3317
|
+
}
|
|
3318
|
+
|
|
3319
|
+
/**
|
|
3320
|
+
* Reusable admin shell: sidebar + navbar + router-outlet.
|
|
3321
|
+
*
|
|
3322
|
+
* This component is intentionally free of any auth/session logic — that stays
|
|
3323
|
+
* in the consuming app. Project app-specific global UI (e.g. a session-timeout
|
|
3324
|
+
* modal) through the default content slot.
|
|
3325
|
+
*/
|
|
3326
|
+
declare class AdminLayoutComponent {
|
|
3327
|
+
items: SidebarMenuItem[];
|
|
3328
|
+
homePath: string;
|
|
3329
|
+
admin: Admin | null;
|
|
3330
|
+
myAccountPath: string;
|
|
3331
|
+
logoUrl: string;
|
|
3332
|
+
logoAlt: string;
|
|
3333
|
+
logout: EventEmitter<void>;
|
|
3334
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdminLayoutComponent, never>;
|
|
3335
|
+
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>;
|
|
3336
|
+
}
|
|
3337
|
+
|
|
3338
|
+
declare class PublicLayoutComponent {
|
|
3339
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PublicLayoutComponent, never>;
|
|
3340
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PublicLayoutComponent, "app-public-layout", never, {}, {}, never, never, true, never>;
|
|
3341
|
+
}
|
|
3342
|
+
|
|
1733
3343
|
declare class FormInputComponent implements ControlValueAccessor {
|
|
1734
3344
|
ngControl: NgControl;
|
|
1735
3345
|
private transloco;
|
|
@@ -1740,12 +3350,14 @@ declare class FormInputComponent implements ControlValueAccessor {
|
|
|
1740
3350
|
placeholder: string;
|
|
1741
3351
|
required: boolean;
|
|
1742
3352
|
readonly: boolean;
|
|
3353
|
+
maxlength: number | null;
|
|
1743
3354
|
minlength: number | null;
|
|
3355
|
+
max: number | null;
|
|
1744
3356
|
min: number | null;
|
|
1745
3357
|
step: number | null;
|
|
1746
3358
|
pattern: string | null;
|
|
1747
3359
|
fieldGroupClass: string;
|
|
1748
|
-
autocomplete:
|
|
3360
|
+
autocomplete: string;
|
|
1749
3361
|
value: any;
|
|
1750
3362
|
disabled: boolean;
|
|
1751
3363
|
onChange: any;
|
|
@@ -1762,12 +3374,68 @@ declare class FormInputComponent implements ControlValueAccessor {
|
|
|
1762
3374
|
get inputClasses(): string;
|
|
1763
3375
|
get fieldGroupClasses(): string;
|
|
1764
3376
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormInputComponent, [{ optional: true; self: true; }, null]>;
|
|
1765
|
-
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>;
|
|
3377
|
+
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>;
|
|
3378
|
+
}
|
|
3379
|
+
|
|
3380
|
+
type IdentityDocumentType = 'CC' | 'CE' | 'PA' | 'NIT' | 'TI' | 'RC';
|
|
3381
|
+
/**
|
|
3382
|
+
* Campo de documento de identidad (QTN-44).
|
|
3383
|
+
*
|
|
3384
|
+
* Componente compartido que, dado un `documentType` (CC, CE, PA, NIT, TI, RC),
|
|
3385
|
+
* aplica automáticamente el formato y las validaciones correspondientes a los
|
|
3386
|
+
* lineamientos de documentos de identidad de Colombia: solo dígitos y rango de
|
|
3387
|
+
* longitud para CC/TI/RC/NIT, alfanumérico con longitud máxima para CE/PA, y
|
|
3388
|
+
* validación opcional del dígito de verificación (DV) para NIT.
|
|
3389
|
+
*
|
|
3390
|
+
* Sigue el mismo patrón que `NumberInputComponent`: standalone,
|
|
3391
|
+
* `ControlValueAccessor` + `Validator` vía `NG_VALUE_ACCESSOR`/`NG_VALIDATORS`.
|
|
3392
|
+
*/
|
|
3393
|
+
declare class IdentityDocumentInputComponent implements ControlValueAccessor, Validator, OnChanges {
|
|
3394
|
+
transloco: TranslocoService;
|
|
3395
|
+
private injector;
|
|
3396
|
+
private elementRef;
|
|
3397
|
+
label: string;
|
|
3398
|
+
name: string;
|
|
3399
|
+
id: string;
|
|
3400
|
+
placeholder: string;
|
|
3401
|
+
required: boolean;
|
|
3402
|
+
readonly: boolean;
|
|
3403
|
+
fieldGroupClass: string;
|
|
3404
|
+
documentType: IdentityDocumentType | '';
|
|
3405
|
+
validateCheckDigit: boolean;
|
|
3406
|
+
value: string | null;
|
|
3407
|
+
disabled: boolean;
|
|
3408
|
+
onChange: any;
|
|
3409
|
+
onTouched: any;
|
|
3410
|
+
private _ngControl;
|
|
3411
|
+
constructor(transloco: TranslocoService, injector: Injector, elementRef: ElementRef);
|
|
3412
|
+
get ngControl(): NgControl | null;
|
|
3413
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3414
|
+
private get rule();
|
|
3415
|
+
get isDigitsOnly(): boolean;
|
|
3416
|
+
get inputMode(): string;
|
|
3417
|
+
get maxLength(): number | null;
|
|
3418
|
+
writeValue(value: any): void;
|
|
3419
|
+
registerOnChange(fn: any): void;
|
|
3420
|
+
registerOnTouched(fn: any): void;
|
|
3421
|
+
setDisabledState(isDisabled: boolean): void;
|
|
3422
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
3423
|
+
onInput(rawValue: string): void;
|
|
3424
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
3425
|
+
private validateLength;
|
|
3426
|
+
private validateNitWithCheckDigit;
|
|
3427
|
+
static computeNitCheckDigit(nit: string): number;
|
|
3428
|
+
get inputId(): string;
|
|
3429
|
+
get showError(): boolean;
|
|
3430
|
+
get errorMessage(): string;
|
|
3431
|
+
get fieldGroupClasses(): string;
|
|
3432
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdentityDocumentInputComponent, never>;
|
|
3433
|
+
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>;
|
|
1766
3434
|
}
|
|
1767
3435
|
|
|
1768
3436
|
declare class FormSelectComponent implements ControlValueAccessor {
|
|
1769
3437
|
ngControl: NgControl;
|
|
1770
|
-
|
|
3438
|
+
protected transloco: TranslocoService;
|
|
1771
3439
|
label: string;
|
|
1772
3440
|
name: string;
|
|
1773
3441
|
id: string;
|
|
@@ -1791,7 +3459,6 @@ declare class FormSelectComponent implements ControlValueAccessor {
|
|
|
1791
3459
|
get inputId(): string;
|
|
1792
3460
|
get showError(): boolean;
|
|
1793
3461
|
get errorMessage(): string;
|
|
1794
|
-
get resolvedDefaultOptionLabel(): string;
|
|
1795
3462
|
get fieldGroupClasses(): string;
|
|
1796
3463
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [{ optional: true; self: true; }, null]>;
|
|
1797
3464
|
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>;
|
|
@@ -1829,6 +3496,105 @@ declare class FormTextareaComponent implements ControlValueAccessor {
|
|
|
1829
3496
|
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>;
|
|
1830
3497
|
}
|
|
1831
3498
|
|
|
3499
|
+
declare class NumberInputComponent implements ControlValueAccessor, Validator, OnChanges {
|
|
3500
|
+
transloco: TranslocoService;
|
|
3501
|
+
private injector;
|
|
3502
|
+
private elementRef;
|
|
3503
|
+
label: string;
|
|
3504
|
+
name: string;
|
|
3505
|
+
id: string;
|
|
3506
|
+
placeholder: string;
|
|
3507
|
+
required: boolean;
|
|
3508
|
+
readonly: boolean;
|
|
3509
|
+
min: number | null;
|
|
3510
|
+
max: number | null;
|
|
3511
|
+
step: number;
|
|
3512
|
+
fieldGroupClass: string;
|
|
3513
|
+
value: number | null;
|
|
3514
|
+
disabled: boolean;
|
|
3515
|
+
onChange: any;
|
|
3516
|
+
onTouched: any;
|
|
3517
|
+
private _ngControl;
|
|
3518
|
+
constructor(transloco: TranslocoService, injector: Injector, elementRef: ElementRef);
|
|
3519
|
+
get ngControl(): NgControl | null;
|
|
3520
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3521
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
3522
|
+
writeValue(value: any): void;
|
|
3523
|
+
registerOnChange(fn: any): void;
|
|
3524
|
+
registerOnTouched(fn: any): void;
|
|
3525
|
+
setDisabledState(isDisabled: boolean): void;
|
|
3526
|
+
onInput(value: any): void;
|
|
3527
|
+
increment(): void;
|
|
3528
|
+
decrement(): void;
|
|
3529
|
+
get canIncrement(): boolean;
|
|
3530
|
+
get canDecrement(): boolean;
|
|
3531
|
+
get inputId(): string;
|
|
3532
|
+
get showError(): boolean;
|
|
3533
|
+
get errorMessage(): string;
|
|
3534
|
+
get fieldGroupClasses(): string;
|
|
3535
|
+
private clamp;
|
|
3536
|
+
private round;
|
|
3537
|
+
private emitNativeChange;
|
|
3538
|
+
private minValidator;
|
|
3539
|
+
private maxValidator;
|
|
3540
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputComponent, never>;
|
|
3541
|
+
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>;
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
declare class PhoneInputComponent implements ControlValueAccessor, Validator, OnChanges {
|
|
3545
|
+
private transloco;
|
|
3546
|
+
private injector;
|
|
3547
|
+
label: string;
|
|
3548
|
+
name: string;
|
|
3549
|
+
id: string;
|
|
3550
|
+
placeholder: string;
|
|
3551
|
+
required: boolean;
|
|
3552
|
+
readonly: boolean;
|
|
3553
|
+
maxNationalDigits: number | null;
|
|
3554
|
+
minNationalDigits: number | null;
|
|
3555
|
+
defaultCountry: string;
|
|
3556
|
+
fieldGroupClass: string;
|
|
3557
|
+
readonly countries: tickera_angular_components.PhoneCountry[];
|
|
3558
|
+
readonly phoneOptions: {
|
|
3559
|
+
search: string;
|
|
3560
|
+
name: string;
|
|
3561
|
+
isoCode: string;
|
|
3562
|
+
dialCode: string;
|
|
3563
|
+
}[];
|
|
3564
|
+
selectedIso: string;
|
|
3565
|
+
nationalNumber: string;
|
|
3566
|
+
disabled: boolean;
|
|
3567
|
+
onChange: any;
|
|
3568
|
+
onTouched: any;
|
|
3569
|
+
onValidatorChange: () => void;
|
|
3570
|
+
private _ngControl;
|
|
3571
|
+
constructor(transloco: TranslocoService, injector: Injector);
|
|
3572
|
+
get ngControl(): NgControl | null;
|
|
3573
|
+
get selectedCountry(): tickera_angular_components.PhoneCountry;
|
|
3574
|
+
get dialCode(): string;
|
|
3575
|
+
dialCodeOf(isoCode: string): string;
|
|
3576
|
+
get value(): string;
|
|
3577
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
3578
|
+
registerOnValidatorChange(fn: () => void): void;
|
|
3579
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
3580
|
+
writeValue(value: string | null | undefined): void;
|
|
3581
|
+
registerOnChange(fn: any): void;
|
|
3582
|
+
registerOnTouched(fn: any): void;
|
|
3583
|
+
setDisabledState(isDisabled: boolean): void;
|
|
3584
|
+
onInput(event: Event): void;
|
|
3585
|
+
onCountryChange(isoCode: string): void;
|
|
3586
|
+
get inputId(): string;
|
|
3587
|
+
get showError(): boolean;
|
|
3588
|
+
get errorMessage(): string;
|
|
3589
|
+
get effectivePlaceholder(): string;
|
|
3590
|
+
get fieldGroupClasses(): string;
|
|
3591
|
+
flag(isoCode: string): string;
|
|
3592
|
+
private sanitize;
|
|
3593
|
+
private nationalDigits;
|
|
3594
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PhoneInputComponent, never>;
|
|
3595
|
+
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>;
|
|
3596
|
+
}
|
|
3597
|
+
|
|
1832
3598
|
declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {
|
|
1833
3599
|
ngControl: NgControl;
|
|
1834
3600
|
private transloco;
|
|
@@ -1846,7 +3612,8 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
|
|
|
1846
3612
|
onChange: any;
|
|
1847
3613
|
onTouched: any;
|
|
1848
3614
|
private subscription;
|
|
1849
|
-
|
|
3615
|
+
isBrowser: boolean;
|
|
3616
|
+
constructor(ngControl: NgControl, transloco: TranslocoService, platformId: object);
|
|
1850
3617
|
ngOnInit(): void;
|
|
1851
3618
|
ngOnDestroy(): void;
|
|
1852
3619
|
writeValue(value: any): void;
|
|
@@ -1857,7 +3624,7 @@ declare class FormEditorComponent implements ControlValueAccessor, OnInit, OnDes
|
|
|
1857
3624
|
get showError(): boolean;
|
|
1858
3625
|
get errorMessage(): string;
|
|
1859
3626
|
get fieldGroupClasses(): string;
|
|
1860
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null]>;
|
|
3627
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormEditorComponent, [{ optional: true; self: true; }, null, null]>;
|
|
1861
3628
|
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>;
|
|
1862
3629
|
}
|
|
1863
3630
|
|
|
@@ -2021,14 +3788,14 @@ declare class FileUploadPreviewComponent {
|
|
|
2021
3788
|
interface AsyncSelectConfig<T = any> {
|
|
2022
3789
|
load: (params?: {
|
|
2023
3790
|
search?: string;
|
|
2024
|
-
parentId?: number;
|
|
3791
|
+
parentId?: number | number[];
|
|
2025
3792
|
}) => Observable<T>;
|
|
2026
3793
|
map: (response: T) => SelectOption[];
|
|
2027
3794
|
}
|
|
2028
3795
|
declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {
|
|
2029
3796
|
config?: AsyncSelectConfig<any>;
|
|
2030
3797
|
items: SelectOption[];
|
|
2031
|
-
parentId?: number | null;
|
|
3798
|
+
parentId?: number | number[] | null;
|
|
2032
3799
|
label: string;
|
|
2033
3800
|
placeholder: string;
|
|
2034
3801
|
name: string;
|
|
@@ -2060,6 +3827,7 @@ declare class AsyncSelectComponent implements OnInit, OnDestroy, OnChanges, Cont
|
|
|
2060
3827
|
private searchMode;
|
|
2061
3828
|
private loadAndMap;
|
|
2062
3829
|
private fetchData;
|
|
3830
|
+
private hasParentId;
|
|
2063
3831
|
private handleParentIdChange;
|
|
2064
3832
|
onSearch(event: any): void;
|
|
2065
3833
|
onSelectChange(value: any): void;
|
|
@@ -2471,7 +4239,7 @@ declare class ShowMultiSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2471
4239
|
static ɵcmp: i0.ɵɵComponentDeclaration<ShowMultiSelectComponent, "show-multi-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, true, never>;
|
|
2472
4240
|
}
|
|
2473
4241
|
|
|
2474
|
-
declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
4242
|
+
declare class PriceZoneSelectComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, Validator {
|
|
2475
4243
|
private platformId;
|
|
2476
4244
|
private priceZoneService;
|
|
2477
4245
|
label: string;
|
|
@@ -2482,6 +4250,7 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2482
4250
|
showError: boolean;
|
|
2483
4251
|
customClass: string;
|
|
2484
4252
|
control?: AbstractControl | null;
|
|
4253
|
+
showIds: number[];
|
|
2485
4254
|
priceZoneChange: EventEmitter<number | null>;
|
|
2486
4255
|
priceZones: WritableSignal<SelectOption[]>;
|
|
2487
4256
|
loading: WritableSignal<boolean>;
|
|
@@ -2493,6 +4262,7 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2493
4262
|
onTouched: any;
|
|
2494
4263
|
constructor(platformId: string, priceZoneService: PriceZoneService);
|
|
2495
4264
|
ngOnInit(): void;
|
|
4265
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2496
4266
|
get formControl(): FormControl;
|
|
2497
4267
|
ngOnDestroy(): void;
|
|
2498
4268
|
onSearchChange(search: string): void;
|
|
@@ -2505,7 +4275,29 @@ declare class PriceZoneSelectComponent implements OnInit, OnDestroy, ControlValu
|
|
|
2505
4275
|
} | null;
|
|
2506
4276
|
get isInvalid(): boolean;
|
|
2507
4277
|
static ɵfac: i0.ɵɵFactoryDeclaration<PriceZoneSelectComponent, never>;
|
|
2508
|
-
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>;
|
|
4278
|
+
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>;
|
|
4279
|
+
}
|
|
4280
|
+
|
|
4281
|
+
declare class PerformanceTicketStatusBadgeComponent {
|
|
4282
|
+
ticket: PerformanceTicket;
|
|
4283
|
+
size: BadgeSize;
|
|
4284
|
+
protected get statusColors(): {
|
|
4285
|
+
text: string;
|
|
4286
|
+
bg: string;
|
|
4287
|
+
};
|
|
4288
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketStatusBadgeComponent, never>;
|
|
4289
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceTicketStatusBadgeComponent, "performance-ticket-status-badge", never, { "ticket": { "alias": "ticket"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
4290
|
+
}
|
|
4291
|
+
|
|
4292
|
+
declare class PerformanceStatusBadgeComponent {
|
|
4293
|
+
performance: Performance;
|
|
4294
|
+
size: BadgeSize;
|
|
4295
|
+
protected get statusColors(): {
|
|
4296
|
+
text: string;
|
|
4297
|
+
bg: string;
|
|
4298
|
+
};
|
|
4299
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceStatusBadgeComponent, never>;
|
|
4300
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceStatusBadgeComponent, "performance-status-badge", never, { "performance": { "alias": "performance"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
2509
4301
|
}
|
|
2510
4302
|
|
|
2511
4303
|
declare class DaySelectorGridComponent {
|
|
@@ -2514,6 +4306,13 @@ declare class DaySelectorGridComponent {
|
|
|
2514
4306
|
protected listEventService: PerformancesListEventsService;
|
|
2515
4307
|
protected toastService: ToastService;
|
|
2516
4308
|
displayMode: 'grid' | 'carousel';
|
|
4309
|
+
/**
|
|
4310
|
+
* true cuando este selector se usa desde el canal backoffice: en ese
|
|
4311
|
+
* caso también deben aparecer las funciones PRIVATE (nunca PEDAGOGIC,
|
|
4312
|
+
* que siempre usa su propio flujo). false (por defecto) es el canal
|
|
4313
|
+
* ecommerce, que solo ve funciones PUBLIC.
|
|
4314
|
+
*/
|
|
4315
|
+
isAdmin: boolean;
|
|
2517
4316
|
loadingData: WritableSignal<boolean>;
|
|
2518
4317
|
days: WritableSignal<PerformanceAvailableDay[]>;
|
|
2519
4318
|
carouselTrack?: ElementRef<HTMLElement>;
|
|
@@ -2523,17 +4322,22 @@ declare class DaySelectorGridComponent {
|
|
|
2523
4322
|
onToggle(day: PerformanceAvailableDay): void;
|
|
2524
4323
|
scrollCarousel(direction: 1 | -1): void;
|
|
2525
4324
|
static ɵfac: i0.ɵɵFactoryDeclaration<DaySelectorGridComponent, never>;
|
|
2526
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DaySelectorGridComponent, "day-selector-grid", never, { "displayMode": { "alias": "displayMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
4325
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DaySelectorGridComponent, "day-selector-grid", never, { "displayMode": { "alias": "displayMode"; "required": false; }; "isAdmin": { "alias": "isAdmin"; "required": false; }; }, {}, never, never, true, never>;
|
|
2527
4326
|
}
|
|
2528
4327
|
|
|
2529
4328
|
declare class PerformanceCardComponent {
|
|
2530
4329
|
protected listEventService: PerformancesListEventsService;
|
|
2531
4330
|
card: DailyPerformanceItem;
|
|
4331
|
+
linkText: string;
|
|
4332
|
+
linkUrlFn?: (card: DailyPerformanceItem) => string;
|
|
4333
|
+
linkQueryParams?: Record<string, any>;
|
|
4334
|
+
readonly PerformanceVisibilityType: typeof PerformanceVisibilityType;
|
|
2532
4335
|
constructor(listEventService: PerformancesListEventsService);
|
|
4336
|
+
get badgeColor(): 'success' | 'error';
|
|
2533
4337
|
onSelect(): void;
|
|
2534
4338
|
isSelected(): boolean;
|
|
2535
4339
|
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardComponent, never>;
|
|
2536
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardComponent, "performance-card", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
|
|
4340
|
+
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>;
|
|
2537
4341
|
}
|
|
2538
4342
|
|
|
2539
4343
|
declare class PerformanceCardListComponent {
|
|
@@ -2541,6 +4345,16 @@ declare class PerformanceCardListComponent {
|
|
|
2541
4345
|
protected performanceService: PerformanceService;
|
|
2542
4346
|
protected listEventService: PerformancesListEventsService;
|
|
2543
4347
|
protected toastService: ToastService;
|
|
4348
|
+
linkText: string;
|
|
4349
|
+
linkUrlFn?: (card: DailyPerformanceItem) => string;
|
|
4350
|
+
linkQueryParams?: Record<string, any>;
|
|
4351
|
+
/**
|
|
4352
|
+
* true cuando esta lista se usa desde el canal backoffice: en ese caso
|
|
4353
|
+
* también deben aparecer las funciones PRIVATE (nunca PEDAGOGIC, que
|
|
4354
|
+
* siempre usa su propio flujo). false (por defecto) es el canal
|
|
4355
|
+
* ecommerce, que solo ve funciones PUBLIC.
|
|
4356
|
+
*/
|
|
4357
|
+
isAdmin: boolean;
|
|
2544
4358
|
loadingData: WritableSignal<boolean>;
|
|
2545
4359
|
performances: WritableSignal<DailyPerformanceItem[]>;
|
|
2546
4360
|
constructor(platformId: object, performanceService: PerformanceService, listEventService: PerformancesListEventsService, toastService: ToastService);
|
|
@@ -2548,7 +4362,7 @@ declare class PerformanceCardListComponent {
|
|
|
2548
4362
|
private loadData;
|
|
2549
4363
|
get selectedDayDate(): string | null;
|
|
2550
4364
|
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceCardListComponent, never>;
|
|
2551
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, {}, {}, never, never, true, never>;
|
|
4365
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceCardListComponent, "performance-card-list", never, { "linkText": { "alias": "linkText"; "required": false; }; "linkUrlFn": { "alias": "linkUrlFn"; "required": false; }; "linkQueryParams": { "alias": "linkQueryParams"; "required": false; }; "isAdmin": { "alias": "isAdmin"; "required": false; }; }, {}, never, never, true, never>;
|
|
2552
4366
|
}
|
|
2553
4367
|
|
|
2554
4368
|
declare class PerformanceStepperComponent {
|
|
@@ -2577,9 +4391,9 @@ declare class ShowsFilterComponent {
|
|
|
2577
4391
|
}
|
|
2578
4392
|
|
|
2579
4393
|
interface PriceZoneItem {
|
|
2580
|
-
|
|
4394
|
+
color: string;
|
|
2581
4395
|
name: string;
|
|
2582
|
-
|
|
4396
|
+
available_seats: number;
|
|
2583
4397
|
price: string;
|
|
2584
4398
|
}
|
|
2585
4399
|
|
|
@@ -2595,5 +4409,468 @@ declare class ZonePriceListComponent {
|
|
|
2595
4409
|
static ɵcmp: i0.ɵɵComponentDeclaration<ZonePriceListComponent, "zone-price-list", never, { "zones": { "alias": "zones"; "required": true; }; }, {}, never, never, true, never>;
|
|
2596
4410
|
}
|
|
2597
4411
|
|
|
2598
|
-
|
|
2599
|
-
|
|
4412
|
+
declare class TicketMapWidgetComponent {
|
|
4413
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetComponent, never>;
|
|
4414
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetComponent, "ticket-map-widget", never, {}, {}, never, ["*"], true, never>;
|
|
4415
|
+
}
|
|
4416
|
+
|
|
4417
|
+
declare class TicketMapWidgetHeaderComponent {
|
|
4418
|
+
title: string;
|
|
4419
|
+
subtitle: string;
|
|
4420
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWidgetHeaderComponent, never>;
|
|
4421
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapWidgetHeaderComponent, "ticket-map-widget-header", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
4422
|
+
}
|
|
4423
|
+
|
|
4424
|
+
declare class TicketMapZoomControlsComponent {
|
|
4425
|
+
private zoomService;
|
|
4426
|
+
readonly currentZoom: i0.Signal<number>;
|
|
4427
|
+
readonly zoomPercentage: i0.Signal<string>;
|
|
4428
|
+
constructor(zoomService: TicketMapZoomService);
|
|
4429
|
+
zoomIn(): void;
|
|
4430
|
+
zoomOut(): void;
|
|
4431
|
+
resetZoom(): void;
|
|
4432
|
+
fitToContainer(): void;
|
|
4433
|
+
handleZoomAction(action: string): void;
|
|
4434
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapZoomControlsComponent, never>;
|
|
4435
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapZoomControlsComponent, "ticket-map-zoom-controls", never, {}, {}, never, never, true, never>;
|
|
4436
|
+
}
|
|
4437
|
+
|
|
4438
|
+
declare class TicketMapFloorSelectorComponent {
|
|
4439
|
+
private bookingDataService;
|
|
4440
|
+
readonly availableFloors: i0.Signal<tickera_angular_components.HallFloor[]>;
|
|
4441
|
+
readonly visibleFloorIds: i0.Signal<Set<number>>;
|
|
4442
|
+
readonly hasMultipleVisible: i0.Signal<boolean>;
|
|
4443
|
+
constructor(bookingDataService: PerformanceBookingDataService);
|
|
4444
|
+
isFloorVisible(floorId: number): boolean;
|
|
4445
|
+
canToggleOff(floorId: number): boolean;
|
|
4446
|
+
toggleFloor(floorId: number): void;
|
|
4447
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapFloorSelectorComponent, never>;
|
|
4448
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapFloorSelectorComponent, "ticket-map-floor-selector", never, {}, {}, never, never, true, never>;
|
|
4449
|
+
}
|
|
4450
|
+
|
|
4451
|
+
declare class PerformanceTicketMapComponent implements OnDestroy, AfterViewInit {
|
|
4452
|
+
private platformId;
|
|
4453
|
+
protected bookingDataService: PerformanceBookingDataService;
|
|
4454
|
+
protected feedbackModalService: FeedbackModalService;
|
|
4455
|
+
protected selectionService: TicketSelectionService;
|
|
4456
|
+
protected zoomService: TicketMapZoomService;
|
|
4457
|
+
selectionChange: EventEmitter<PerformanceTicket[]>;
|
|
4458
|
+
needsLoginError: EventEmitter<any>;
|
|
4459
|
+
readOnly: boolean;
|
|
4460
|
+
needsLogin: boolean;
|
|
4461
|
+
isLoggedIn: boolean;
|
|
4462
|
+
stageComponent?: StageComponent;
|
|
4463
|
+
protected tooltipData: i0.WritableSignal<TicketMapTooltipData | null>;
|
|
4464
|
+
protected renderData: i0.Signal<ElementRenderData[]>;
|
|
4465
|
+
private stageReady;
|
|
4466
|
+
private autoFitDone;
|
|
4467
|
+
private resizeObserver?;
|
|
4468
|
+
protected floorLayerRefs: i0.Signal<readonly CoreShapeComponent[]>;
|
|
4469
|
+
protected floorLayerName(floorId: number): string;
|
|
4470
|
+
protected floorGroups: i0.Signal<{
|
|
4471
|
+
floorId: number;
|
|
4472
|
+
elements: ElementRenderData[];
|
|
4473
|
+
}[]>;
|
|
4474
|
+
constructor(platformId: object, bookingDataService: PerformanceBookingDataService, feedbackModalService: FeedbackModalService, selectionService: TicketSelectionService, zoomService: TicketMapZoomService);
|
|
4475
|
+
protected get isBrowser(): boolean;
|
|
4476
|
+
ngAfterViewInit(): void;
|
|
4477
|
+
private setupResizeObserver;
|
|
4478
|
+
private syncStageToContainer;
|
|
4479
|
+
ngOnDestroy(): void;
|
|
4480
|
+
private getInternalPointer;
|
|
4481
|
+
protected selectHallFloor(floorId: number): void;
|
|
4482
|
+
protected handleStageClick(konvaEvent: any): void;
|
|
4483
|
+
protected handleStageMouseMove(konvaEvent: any): void;
|
|
4484
|
+
protected handleStageMouseLeave(): void;
|
|
4485
|
+
protected handleWheel(konvaEvent: any): void;
|
|
4486
|
+
protected trackByElementId(_index: number, item: ElementRenderData): number;
|
|
4487
|
+
protected trackByFloorId(_index: number, floor: HallFloorOption): HallFloorOption;
|
|
4488
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceTicketMapComponent, never>;
|
|
4489
|
+
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>;
|
|
4490
|
+
}
|
|
4491
|
+
|
|
4492
|
+
declare class TicketMapPriceZonesComponent {
|
|
4493
|
+
protected bookingDataService: PerformanceBookingDataService;
|
|
4494
|
+
protected priceZones: i0.Signal<tickera_angular_components.PriceZone[]>;
|
|
4495
|
+
protected isFilterable: i0.Signal<boolean>;
|
|
4496
|
+
protected hasActiveFilter: i0.Signal<boolean>;
|
|
4497
|
+
protected isZoneFiltered(zoneId: number): boolean;
|
|
4498
|
+
protected ticketCount(zoneId: number): number;
|
|
4499
|
+
protected toggleZone(zoneId: number): void;
|
|
4500
|
+
protected clearFilter(): void;
|
|
4501
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapPriceZonesComponent, never>;
|
|
4502
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapPriceZonesComponent, "ticket-map-price-zones", never, {}, {}, never, never, true, never>;
|
|
4503
|
+
}
|
|
4504
|
+
|
|
4505
|
+
declare class TicketMapProductSelectionItemComponent {
|
|
4506
|
+
protected selectionService: TicketSelectionService;
|
|
4507
|
+
product: Product;
|
|
4508
|
+
constructor(selectionService: TicketSelectionService);
|
|
4509
|
+
get quantity(): number;
|
|
4510
|
+
get firstImage(): string | undefined;
|
|
4511
|
+
increment(): void;
|
|
4512
|
+
decrement(): void;
|
|
4513
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapProductSelectionItemComponent, never>;
|
|
4514
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketMapProductSelectionItemComponent, "ticket-map-product-selection-item", never, { "product": { "alias": "product"; "required": true; }; }, {}, never, never, true, never>;
|
|
4515
|
+
}
|
|
4516
|
+
|
|
4517
|
+
declare class TIcketMapProductSelectionComponent {
|
|
4518
|
+
title: string;
|
|
4519
|
+
subtitle: string;
|
|
4520
|
+
private bookingDataService;
|
|
4521
|
+
readonly products: i0.Signal<tickera_angular_components.Product[]>;
|
|
4522
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TIcketMapProductSelectionComponent, never>;
|
|
4523
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TIcketMapProductSelectionComponent, "ticket-map-product-selection", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; }, {}, never, never, true, never>;
|
|
4524
|
+
}
|
|
4525
|
+
|
|
4526
|
+
declare class TicketMapTotalsComponent {
|
|
4527
|
+
protected bookingDataService: PerformanceBookingDataService;
|
|
4528
|
+
protected selectionDetailsService: TicketSelectionDetailsService;
|
|
4529
|
+
protected selectionDiscountService: TicketSelectionDiscountService;
|
|
4530
|
+
protected selectionTotalsService: TicketSelectionTotalsService;
|
|
4531
|
+
protected selectionService: TicketSelectionService;
|
|
4532
|
+
private activatedRoute;
|
|
4533
|
+
title: string;
|
|
4534
|
+
buttonText: string;
|
|
4535
|
+
loadingButtonText: string;
|
|
4536
|
+
isLoading: boolean;
|
|
4537
|
+
onPurchaseClick: EventEmitter<void>;
|
|
4538
|
+
constructor(bookingDataService: PerformanceBookingDataService, selectionDetailsService: TicketSelectionDetailsService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, activatedRoute: ActivatedRoute);
|
|
4539
|
+
get serviceFee(): number;
|
|
4540
|
+
get performanceId(): number;
|
|
4541
|
+
get selectedTicketIds(): number[];
|
|
4542
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapTotalsComponent, never>;
|
|
4543
|
+
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>;
|
|
4544
|
+
}
|
|
4545
|
+
|
|
4546
|
+
declare class TicketMapWrapperComponent {
|
|
4547
|
+
selectionChange: EventEmitter<PerformanceTicket[]>;
|
|
4548
|
+
needsLoginError: EventEmitter<any>;
|
|
4549
|
+
readOnly: boolean;
|
|
4550
|
+
needsLogin: boolean;
|
|
4551
|
+
isLoggedIn: boolean;
|
|
4552
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketMapWrapperComponent, never>;
|
|
4553
|
+
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>;
|
|
4554
|
+
}
|
|
4555
|
+
|
|
4556
|
+
declare class SeatSelectionEmptySummaryComponent {
|
|
4557
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionEmptySummaryComponent, never>;
|
|
4558
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionEmptySummaryComponent, "seat-selection-empty-summary", never, {}, {}, never, never, true, never>;
|
|
4559
|
+
}
|
|
4560
|
+
|
|
4561
|
+
declare class SeatSelectionSummaryComponent {
|
|
4562
|
+
protected selectionService: TicketSelectionService;
|
|
4563
|
+
title: string;
|
|
4564
|
+
clearButtonText: string;
|
|
4565
|
+
constructor(selectionService: TicketSelectionService);
|
|
4566
|
+
trackByItem(item: PerformanceTicket): string | number;
|
|
4567
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryComponent, never>;
|
|
4568
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryComponent, "seat-selection-summary", never, { "title": { "alias": "title"; "required": false; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; }; }, {}, never, never, true, never>;
|
|
4569
|
+
}
|
|
4570
|
+
|
|
4571
|
+
declare class SeatSelectionSummaryItemComponent {
|
|
4572
|
+
protected selectionService: TicketSelectionService;
|
|
4573
|
+
item: PerformanceTicket;
|
|
4574
|
+
constructor(selectionService: TicketSelectionService);
|
|
4575
|
+
getItemTypeIcon: (ticket: PerformanceTicket) => string;
|
|
4576
|
+
get isZone(): boolean;
|
|
4577
|
+
get zoneMax(): number;
|
|
4578
|
+
onZoneQuantityChange(value: number | null): void;
|
|
4579
|
+
removeItem(ticket: PerformanceTicket): void;
|
|
4580
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SeatSelectionSummaryItemComponent, never>;
|
|
4581
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SeatSelectionSummaryItemComponent, "seat-selection-summary-item", never, { "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
|
|
4582
|
+
}
|
|
4583
|
+
|
|
4584
|
+
declare class ConfirmationOrderModalComponent {
|
|
4585
|
+
private confirmationOrderModalService;
|
|
4586
|
+
private selectionDiscountService;
|
|
4587
|
+
private selectionTotalsService;
|
|
4588
|
+
private selectionService;
|
|
4589
|
+
private bookingDataService;
|
|
4590
|
+
modalTitle: string;
|
|
4591
|
+
confirmButtonText: string;
|
|
4592
|
+
confirmButtonTextLoading: string;
|
|
4593
|
+
loading: boolean;
|
|
4594
|
+
onConfirm: EventEmitter<any>;
|
|
4595
|
+
constructor(confirmationOrderModalService: ConfirmationOrderModalService, selectionDiscountService: TicketSelectionDiscountService, selectionTotalsService: TicketSelectionTotalsService, selectionService: TicketSelectionService, bookingDataService: PerformanceBookingDataService);
|
|
4596
|
+
get isOpen(): i0.WritableSignal<boolean>;
|
|
4597
|
+
get showTitle(): string | null;
|
|
4598
|
+
get performanceStartTime(): Date | string | null;
|
|
4599
|
+
get hallName(): string | null;
|
|
4600
|
+
get venueName(): string | null;
|
|
4601
|
+
get ticketItems(): PerformanceTicket[];
|
|
4602
|
+
get selectedProducts(): {
|
|
4603
|
+
product: Product;
|
|
4604
|
+
quantity: number;
|
|
4605
|
+
}[];
|
|
4606
|
+
ticketItemLabel(ticket: PerformanceTicket): string;
|
|
4607
|
+
ticketItemPrice(ticket: PerformanceTicket): number;
|
|
4608
|
+
private elementTypeLabel;
|
|
4609
|
+
get selectedCount(): number;
|
|
4610
|
+
get serviceFee(): number;
|
|
4611
|
+
get subtotalValue(): number;
|
|
4612
|
+
get ticketSubtotal(): number;
|
|
4613
|
+
get productSubtotal(): number;
|
|
4614
|
+
get productCount(): number;
|
|
4615
|
+
get totalValue(): number;
|
|
4616
|
+
get totalDiscounted(): number | null;
|
|
4617
|
+
get coupon(): tickera_angular_components.Coupon | null;
|
|
4618
|
+
get corporateBond(): tickera_angular_components.CorporateBond | null;
|
|
4619
|
+
get giftBond(): tickera_angular_components.GiftBondPurchase | null;
|
|
4620
|
+
get vipCard(): tickera_angular_components.VipCard | null;
|
|
4621
|
+
get subscription(): {
|
|
4622
|
+
service_fee_exempt: boolean;
|
|
4623
|
+
} | null;
|
|
4624
|
+
/**
|
|
4625
|
+
* Monto real del descuento en pesos ya calculado (aplica el % si el
|
|
4626
|
+
* cupón/VIP/abono es porcentual, o el valor fijo si no lo es) sobre el
|
|
4627
|
+
* subtotal de boletas. Se usa para TODAS las fuentes de descuento en el
|
|
4628
|
+
* modal: mostrar `coupon.discount_value` crudo era incorrecto para un
|
|
4629
|
+
* cupón porcentual (mostraba "10%" como si fueran "$10").
|
|
4630
|
+
*/
|
|
4631
|
+
get discountAmount(): number;
|
|
4632
|
+
get isPercentageDiscount(): boolean;
|
|
4633
|
+
get rawServiceFee(): number;
|
|
4634
|
+
get isServiceFeeExempt(): boolean;
|
|
4635
|
+
onClose(): void;
|
|
4636
|
+
confirmOrder(): void;
|
|
4637
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationOrderModalComponent, never>;
|
|
4638
|
+
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>;
|
|
4639
|
+
}
|
|
4640
|
+
|
|
4641
|
+
declare class OrderInformationComponent {
|
|
4642
|
+
readonly transloco: TranslocoService;
|
|
4643
|
+
private readonly toastService;
|
|
4644
|
+
order: Order;
|
|
4645
|
+
showPayButton: boolean;
|
|
4646
|
+
createMpPreference?: (order: Order) => Observable<MercadoPagoPreference>;
|
|
4647
|
+
buildRelatedOrderRoute?: (relatedOrder: Order) => string;
|
|
4648
|
+
paymentLinkCreated: EventEmitter<MercadoPagoPreference>;
|
|
4649
|
+
isLoading: boolean;
|
|
4650
|
+
constructor(transloco: TranslocoService, toastService: ToastService);
|
|
4651
|
+
get relatedOrder(): Order | null;
|
|
4652
|
+
get isReplacementOrder(): boolean;
|
|
4653
|
+
get relatedOrderRoute(): string | null;
|
|
4654
|
+
get hasServiceFeeExemption(): boolean;
|
|
4655
|
+
get showMpButton(): boolean;
|
|
4656
|
+
payWithMercadoPago(): void;
|
|
4657
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderInformationComponent, never>;
|
|
4658
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderInformationComponent, "order-information", never, { "order": { "alias": "order"; "required": true; }; "showPayButton": { "alias": "showPayButton"; "required": false; }; "createMpPreference": { "alias": "createMpPreference"; "required": false; }; "buildRelatedOrderRoute": { "alias": "buildRelatedOrderRoute"; "required": false; }; }, { "paymentLinkCreated": "paymentLinkCreated"; }, never, never, true, never>;
|
|
4659
|
+
}
|
|
4660
|
+
|
|
4661
|
+
declare class OrderStatusBadgeComponent {
|
|
4662
|
+
protected transloco: TranslocoService;
|
|
4663
|
+
order: Order | RecentOrder;
|
|
4664
|
+
size: BadgeSize;
|
|
4665
|
+
constructor(transloco: TranslocoService);
|
|
4666
|
+
protected get statusColors(): {
|
|
4667
|
+
text: string;
|
|
4668
|
+
bg: string;
|
|
4669
|
+
};
|
|
4670
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderStatusBadgeComponent, never>;
|
|
4671
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderStatusBadgeComponent, "order-status-badge", never, { "order": { "alias": "order"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
4672
|
+
}
|
|
4673
|
+
|
|
4674
|
+
declare class OrderItemTypeBadgeComponent {
|
|
4675
|
+
protected transloco: TranslocoService;
|
|
4676
|
+
item: OrderItem;
|
|
4677
|
+
size: BadgeSize;
|
|
4678
|
+
constructor(transloco: TranslocoService);
|
|
4679
|
+
protected get statusColors(): {
|
|
4680
|
+
text: string;
|
|
4681
|
+
bg: string;
|
|
4682
|
+
};
|
|
4683
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemTypeBadgeComponent, never>;
|
|
4684
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemTypeBadgeComponent, "order-item-type-badge", never, { "item": { "alias": "item"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
4685
|
+
}
|
|
4686
|
+
|
|
4687
|
+
declare class OrderItemsComponent {
|
|
4688
|
+
private ticketQrModalService;
|
|
4689
|
+
order: Order;
|
|
4690
|
+
isCustomer: boolean;
|
|
4691
|
+
ticketCanOpenQr: (order: Order, ticket: tickera_angular_components.PerformanceTicket) => boolean;
|
|
4692
|
+
constructor(ticketQrModalService: TicketQrModalService);
|
|
4693
|
+
protected get orderItems(): Order['order_items'];
|
|
4694
|
+
protected get products(): Order['order_items'];
|
|
4695
|
+
protected get tickets(): Order['order_items'];
|
|
4696
|
+
protected get giftBonds(): Order['order_items'];
|
|
4697
|
+
protected get corporateBonds(): Order['order_items'];
|
|
4698
|
+
protected get vipRecharges(): Order['order_items'];
|
|
4699
|
+
protected get showActionColumn(): boolean;
|
|
4700
|
+
protected itemTotal(quantity: number, price: number | null): number;
|
|
4701
|
+
protected hasDiscount(): boolean;
|
|
4702
|
+
protected hasServiceFeeExemption(): boolean;
|
|
4703
|
+
protected hasTicketDiscount(item: OrderItem): boolean;
|
|
4704
|
+
protected get totals(): {
|
|
4705
|
+
giftBonds: number;
|
|
4706
|
+
corporateBonds: number;
|
|
4707
|
+
products: number;
|
|
4708
|
+
tickets: number;
|
|
4709
|
+
vipRecharges: number;
|
|
4710
|
+
};
|
|
4711
|
+
openTicketQr(ticketUuid: string, description: string): void;
|
|
4712
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderItemsComponent, never>;
|
|
4713
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderItemsComponent, "order-items", never, { "order": { "alias": "order"; "required": true; }; "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
|
|
4714
|
+
}
|
|
4715
|
+
|
|
4716
|
+
declare class OrderDiscountAppliedComponent {
|
|
4717
|
+
order: Order;
|
|
4718
|
+
protected get discountInfo(): OrderDiscountInfo;
|
|
4719
|
+
protected get hasDiscount(): boolean;
|
|
4720
|
+
protected get discountPercentage(): number | null;
|
|
4721
|
+
protected get redeemedTicketsCount(): number | null;
|
|
4722
|
+
protected get serviceFeeExemptValue(): number;
|
|
4723
|
+
protected get badgeColors(): {
|
|
4724
|
+
text: string;
|
|
4725
|
+
bg: string;
|
|
4726
|
+
};
|
|
4727
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderDiscountAppliedComponent, never>;
|
|
4728
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderDiscountAppliedComponent, "order-discount-applied", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
|
|
4729
|
+
}
|
|
4730
|
+
|
|
4731
|
+
interface BillingField {
|
|
4732
|
+
label: string;
|
|
4733
|
+
value: string | number | null;
|
|
4734
|
+
}
|
|
4735
|
+
declare class OrderBillingInfoComponent {
|
|
4736
|
+
order: Order;
|
|
4737
|
+
protected get fields(): BillingField[];
|
|
4738
|
+
protected get hasFields(): boolean;
|
|
4739
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderBillingInfoComponent, never>;
|
|
4740
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderBillingInfoComponent, "order-billing-info", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
|
|
4741
|
+
}
|
|
4742
|
+
|
|
4743
|
+
declare class OrderTransactionsComponent {
|
|
4744
|
+
private transactionDetailsModalService;
|
|
4745
|
+
order: Order;
|
|
4746
|
+
constructor(transactionDetailsModalService: OrderTransactionDetailsModalService);
|
|
4747
|
+
protected get transactions(): Transaction[];
|
|
4748
|
+
protected get hasTransactions(): boolean;
|
|
4749
|
+
protected get txColors(): Record<string, {
|
|
4750
|
+
text: string;
|
|
4751
|
+
bg: string;
|
|
4752
|
+
}>;
|
|
4753
|
+
protected openTransaction(transaction: Transaction): void;
|
|
4754
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionsComponent, never>;
|
|
4755
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionsComponent, "order-transactions", never, { "order": { "alias": "order"; "required": true; }; }, {}, never, never, true, never>;
|
|
4756
|
+
}
|
|
4757
|
+
|
|
4758
|
+
declare class OrderTransactionDetailsModalComponent {
|
|
4759
|
+
private modalService;
|
|
4760
|
+
isOpen: WritableSignal<boolean> | null;
|
|
4761
|
+
transaction: Transaction | null;
|
|
4762
|
+
get modalIsOpen(): WritableSignal<boolean>;
|
|
4763
|
+
get selectedTransaction(): WritableSignal<Transaction | null>;
|
|
4764
|
+
protected get txColors(): Record<TransactionStatus, {
|
|
4765
|
+
text: string;
|
|
4766
|
+
bg: string;
|
|
4767
|
+
}>;
|
|
4768
|
+
protected get gatewayResponse(): string;
|
|
4769
|
+
onClose(): void;
|
|
4770
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OrderTransactionDetailsModalComponent, never>;
|
|
4771
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<OrderTransactionDetailsModalComponent, "order-transaction-details-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "transaction": { "alias": "transaction"; "required": false; }; }, {}, never, never, true, never>;
|
|
4772
|
+
}
|
|
4773
|
+
|
|
4774
|
+
declare class TicketQrComponent implements OnInit, OnDestroy {
|
|
4775
|
+
private ticketQrService;
|
|
4776
|
+
private platformId;
|
|
4777
|
+
ticketUuid: string;
|
|
4778
|
+
isCustomer: boolean;
|
|
4779
|
+
qrCanvas: ElementRef<HTMLCanvasElement>;
|
|
4780
|
+
loading: i0.WritableSignal<boolean>;
|
|
4781
|
+
error: i0.WritableSignal<boolean>;
|
|
4782
|
+
refreshing: i0.WritableSignal<boolean>;
|
|
4783
|
+
countdown: i0.WritableSignal<number>;
|
|
4784
|
+
downloading: i0.WritableSignal<boolean>;
|
|
4785
|
+
private destroy$;
|
|
4786
|
+
private refreshTimeout;
|
|
4787
|
+
private countdownInterval;
|
|
4788
|
+
private isFetching;
|
|
4789
|
+
constructor(ticketQrService: TicketQrService, platformId: Object);
|
|
4790
|
+
ngOnInit(): void;
|
|
4791
|
+
ngOnDestroy(): void;
|
|
4792
|
+
private onVisibilityChange;
|
|
4793
|
+
private onFocus;
|
|
4794
|
+
private refreshFromReenter;
|
|
4795
|
+
retry(): void;
|
|
4796
|
+
downloadPdf(): void;
|
|
4797
|
+
private clearTimers;
|
|
4798
|
+
private fetchAndRender;
|
|
4799
|
+
private scheduleRefresh;
|
|
4800
|
+
private startCountdown;
|
|
4801
|
+
private renderQr;
|
|
4802
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrComponent, never>;
|
|
4803
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrComponent, "performance-ticket-qr", never, { "ticketUuid": { "alias": "ticketUuid"; "required": true; }; "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
|
|
4804
|
+
}
|
|
4805
|
+
|
|
4806
|
+
declare class TicketQrModalComponent {
|
|
4807
|
+
private ticketQrModalService;
|
|
4808
|
+
isCustomer: boolean;
|
|
4809
|
+
constructor(ticketQrModalService: TicketQrModalService);
|
|
4810
|
+
get isOpen(): i0.WritableSignal<boolean>;
|
|
4811
|
+
get ticketUuid(): i0.WritableSignal<string | null>;
|
|
4812
|
+
get ticketDescription(): i0.WritableSignal<string | null>;
|
|
4813
|
+
onClose(): void;
|
|
4814
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TicketQrModalComponent, never>;
|
|
4815
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TicketQrModalComponent, "ticket-qr-modal", never, { "isCustomer": { "alias": "isCustomer"; "required": false; }; }, {}, never, never, true, never>;
|
|
4816
|
+
}
|
|
4817
|
+
|
|
4818
|
+
declare class VipBalanceCardComponent {
|
|
4819
|
+
card: VipCard | null;
|
|
4820
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipBalanceCardComponent, never>;
|
|
4821
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipBalanceCardComponent, "vip-balance-card", never, { "card": { "alias": "card"; "required": false; }; }, {}, never, never, true, never>;
|
|
4822
|
+
}
|
|
4823
|
+
|
|
4824
|
+
declare class VipCardStatusBadgeComponent {
|
|
4825
|
+
protected readonly tranloco: TranslocoService;
|
|
4826
|
+
card: VipCard;
|
|
4827
|
+
get statusColor(): BadgeColor;
|
|
4828
|
+
get statusTranslationKey(): string;
|
|
4829
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipCardStatusBadgeComponent, never>;
|
|
4830
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipCardStatusBadgeComponent, "vip-card-status-badge", never, { "card": { "alias": "card"; "required": true; }; }, {}, never, never, true, never>;
|
|
4831
|
+
}
|
|
4832
|
+
|
|
4833
|
+
declare class VipRechargeModalComponent implements OnChanges {
|
|
4834
|
+
private fb;
|
|
4835
|
+
protected transloco: TranslocoService;
|
|
4836
|
+
title: string;
|
|
4837
|
+
submitLabel: string;
|
|
4838
|
+
loading: boolean;
|
|
4839
|
+
amountStep: number;
|
|
4840
|
+
minAmount: number;
|
|
4841
|
+
maxAmount: number;
|
|
4842
|
+
isOpen: WritableSignal<boolean>;
|
|
4843
|
+
/**
|
|
4844
|
+
* Cuando es true (uso desde el ecommerce/cliente), el método de pago queda
|
|
4845
|
+
* fijo en Mercado Pago y no se muestra el selector: desde el lado del
|
|
4846
|
+
* cliente no se pueden elegir métodos de pago administrativos (efectivo,
|
|
4847
|
+
* datáfono, nómina, cambios internos, etc.), esos son exclusivos del
|
|
4848
|
+
* backoffice.
|
|
4849
|
+
*/
|
|
4850
|
+
restrictToMercadoPago: boolean;
|
|
4851
|
+
closeModal: EventEmitter<void>;
|
|
4852
|
+
confirm: EventEmitter<VipRechargeConfirmPayload>;
|
|
4853
|
+
rechargeForm: FormGroup;
|
|
4854
|
+
paymentMethodOptions: {
|
|
4855
|
+
label: string;
|
|
4856
|
+
value: string;
|
|
4857
|
+
}[];
|
|
4858
|
+
constructor(fb: FormBuilder, transloco: TranslocoService);
|
|
4859
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
4860
|
+
private applyPaymentMethodRestriction;
|
|
4861
|
+
onClose(): void;
|
|
4862
|
+
onSubmit(): void;
|
|
4863
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipRechargeModalComponent, never>;
|
|
4864
|
+
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>;
|
|
4865
|
+
}
|
|
4866
|
+
|
|
4867
|
+
declare class VipTransactionsTableComponent {
|
|
4868
|
+
transactions: VipTransaction[];
|
|
4869
|
+
loading: boolean;
|
|
4870
|
+
typeLabel(type: VipTransactionType): string;
|
|
4871
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VipTransactionsTableComponent, never>;
|
|
4872
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VipTransactionsTableComponent, "vip-transactions-table", never, { "transactions": { "alias": "transactions"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
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, PerformanceVisibilityType, 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_PRICE_ZONE_FILTER_OPACITY, 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, getCustomerBenefitToasts, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter, parseJsonToFormDataAdvanced, phoneCountryFlag, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, ticketCanOpenQr, tintColor, transformImageToFile, transformUrlParams };
|
|
4876
|
+
export type { ActivateVipCardParams, Admin, AdminsResponse, AdmissionEventMessage, AdmissionJoinResponse, AdmissionStatus, AsyncSelectConfig, Auditable, BadgeColor, BadgeSize, BenefitToastMessage, BreadcrumbStep, BreadcrumbTheme, CitiesResponse, City, CityResponse, CommonFetchAllParams, CorporateBond, CorporateBondCode, CorporateBondResponse, CountriesResponse, Country, CountryResponse, Coupon, CouponResponse, CreatePedagogicOrderPayload, Customer, CustomerBenefitApplicableShow, CustomerBenefitSubscription, CustomerBenefitVenueChain, CustomerBenefits, CustomerBenefitsPerspective, 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, PedagogicAvailabilityResponse, PedagogicZoneAvailability, 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 };
|