tickera-angular-components 0.0.1-dev.107 → 0.0.1-dev.109
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 +202 -6
- package/fesm2022/tickera-angular-components.mjs.map +1 -1
- package/i18n/en.json +2 -1
- package/i18n/es.json +2 -1
- package/index.d.ts +144 -3
- package/package.json +1 -1
|
@@ -149,7 +149,8 @@ var order$1 = {
|
|
|
149
149
|
itemType: {
|
|
150
150
|
PRODUCT: "Producto",
|
|
151
151
|
TICKET: "Entrada",
|
|
152
|
-
GIFT_BOND: "Bono de regalo"
|
|
152
|
+
GIFT_BOND: "Bono de regalo",
|
|
153
|
+
CORPORATE_BOND: "Bono corporativo"
|
|
153
154
|
},
|
|
154
155
|
discountTypes: {
|
|
155
156
|
gift_bond: "Bono de regalo",
|
|
@@ -310,7 +311,8 @@ var order = {
|
|
|
310
311
|
itemType: {
|
|
311
312
|
PRODUCT: "Product",
|
|
312
313
|
TICKET: "Ticket",
|
|
313
|
-
GIFT_BOND: "Gift bond"
|
|
314
|
+
GIFT_BOND: "Gift bond",
|
|
315
|
+
CORPORATE_BOND: "Corporate bond"
|
|
314
316
|
},
|
|
315
317
|
discountTypes: {
|
|
316
318
|
gift_bond: "Product",
|
|
@@ -566,6 +568,19 @@ const VENUES_API_ROUTES = {
|
|
|
566
568
|
deleteOneImage: (venueId, imageId) => '/venues/' + venueId + '/images/' + imageId,
|
|
567
569
|
};
|
|
568
570
|
|
|
571
|
+
const VIP_CARDS_API_ROUTES = {
|
|
572
|
+
findAll: '/admin/vip-cards',
|
|
573
|
+
findOne: (id) => `/admin/vip-cards/${id}`,
|
|
574
|
+
activateAdmin: '/admin/vip-cards/activate',
|
|
575
|
+
rechargeAdmin: (id) => `/admin/vip-cards/${id}/recharge`,
|
|
576
|
+
updateStatus: (id) => `/admin/vip-cards/${id}/status`,
|
|
577
|
+
updateTerms: (id) => `/admin/vip-cards/${id}/terms`,
|
|
578
|
+
transactions: (id) => `/admin/vip-cards/${id}/transactions`,
|
|
579
|
+
findMy: '/vip-cards/my',
|
|
580
|
+
activate: '/vip-cards/activate',
|
|
581
|
+
recharge: '/vip-cards/recharge',
|
|
582
|
+
};
|
|
583
|
+
|
|
569
584
|
const BUTTON_VARIANT_CLASSES = {
|
|
570
585
|
primary: 'btn-primary',
|
|
571
586
|
secondary: 'btn-secondary',
|
|
@@ -727,6 +742,7 @@ var OrderItemType;
|
|
|
727
742
|
OrderItemType["TICKET"] = "TICKET";
|
|
728
743
|
OrderItemType["PRODUCT"] = "PRODUCT";
|
|
729
744
|
OrderItemType["GIFT_BOND"] = "GIFT_BOND";
|
|
745
|
+
OrderItemType["CORPORATE_BOND"] = "CORPORATE_BOND";
|
|
730
746
|
})(OrderItemType || (OrderItemType = {}));
|
|
731
747
|
|
|
732
748
|
var OrderStatus;
|
|
@@ -756,6 +772,20 @@ var PaymentMethod;
|
|
|
756
772
|
PaymentMethod["MERCADO_PAGO"] = "mercado_pago";
|
|
757
773
|
})(PaymentMethod || (PaymentMethod = {}));
|
|
758
774
|
|
|
775
|
+
var VipCardStatus;
|
|
776
|
+
(function (VipCardStatus) {
|
|
777
|
+
VipCardStatus["ACTIVE"] = "ACTIVE";
|
|
778
|
+
VipCardStatus["INACTIVE"] = "INACTIVE";
|
|
779
|
+
VipCardStatus["EXPIRED"] = "EXPIRED";
|
|
780
|
+
})(VipCardStatus || (VipCardStatus = {}));
|
|
781
|
+
|
|
782
|
+
var VipTransactionType;
|
|
783
|
+
(function (VipTransactionType) {
|
|
784
|
+
VipTransactionType["INITIAL_RECHARGE"] = "INITIAL_RECHARGE";
|
|
785
|
+
VipTransactionType["RECHARGE"] = "RECHARGE";
|
|
786
|
+
VipTransactionType["PURCHASE_PAYMENT"] = "PURCHASE_PAYMENT";
|
|
787
|
+
})(VipTransactionType || (VipTransactionType = {}));
|
|
788
|
+
|
|
759
789
|
const PAYMENT_METHODS_OPTIONS = [
|
|
760
790
|
{ value: 'credit_card', label: 'paymentMethod.creditCard' },
|
|
761
791
|
{ value: 'debit_card', label: 'paymentMethod.debitCard' },
|
|
@@ -776,6 +806,7 @@ const ORDER_ITEM_TYPES_COLORS = {
|
|
|
776
806
|
TICKET: { text: '#1d4ed8', bg: '#eff6ff' },
|
|
777
807
|
PRODUCT: { text: '#7e22ce', bg: '#faf5ff' },
|
|
778
808
|
GIFT_BOND: { text: '#ca8a04', bg: '#fefce8' },
|
|
809
|
+
CORPORATE_BOND: { text: '#0d9488', bg: '#ccfbf1' },
|
|
779
810
|
};
|
|
780
811
|
const ORDER_DISCOUNT_COLORS = {
|
|
781
812
|
coupon: { text: '#1d4ed8', bg: '#eff6ff' },
|
|
@@ -3914,6 +3945,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3914
3945
|
args: [{ providedIn: 'root' }]
|
|
3915
3946
|
}] });
|
|
3916
3947
|
|
|
3948
|
+
class VipCardService {
|
|
3949
|
+
apiService;
|
|
3950
|
+
constructor(apiService) {
|
|
3951
|
+
this.apiService = apiService;
|
|
3952
|
+
}
|
|
3953
|
+
findMy() {
|
|
3954
|
+
return this.apiService.get(VIP_CARDS_API_ROUTES.findMy);
|
|
3955
|
+
}
|
|
3956
|
+
activate(data) {
|
|
3957
|
+
return this.apiService.post(VIP_CARDS_API_ROUTES.activate, data);
|
|
3958
|
+
}
|
|
3959
|
+
recharge(data) {
|
|
3960
|
+
return this.apiService.post(VIP_CARDS_API_ROUTES.recharge, data);
|
|
3961
|
+
}
|
|
3962
|
+
fetchAll(queryParams = {}) {
|
|
3963
|
+
const searchParams = new URLSearchParams();
|
|
3964
|
+
Object.entries(queryParams).forEach(([key, value]) => {
|
|
3965
|
+
if (value !== undefined && value !== null) {
|
|
3966
|
+
searchParams.append(key, String(value));
|
|
3967
|
+
}
|
|
3968
|
+
});
|
|
3969
|
+
const queryString = searchParams.toString();
|
|
3970
|
+
const route = `${VIP_CARDS_API_ROUTES.findAll}${queryString ? '?' + queryString : ''}`;
|
|
3971
|
+
return this.apiService.get(route);
|
|
3972
|
+
}
|
|
3973
|
+
fetchOneById(id) {
|
|
3974
|
+
return this.apiService.get(VIP_CARDS_API_ROUTES.findOne(id));
|
|
3975
|
+
}
|
|
3976
|
+
activateAdmin(data) {
|
|
3977
|
+
return this.apiService.post(VIP_CARDS_API_ROUTES.activateAdmin, data);
|
|
3978
|
+
}
|
|
3979
|
+
rechargeAdmin(id, data) {
|
|
3980
|
+
return this.apiService.post(VIP_CARDS_API_ROUTES.rechargeAdmin(id), data);
|
|
3981
|
+
}
|
|
3982
|
+
updateStatus(id, status) {
|
|
3983
|
+
return this.apiService.patch(VIP_CARDS_API_ROUTES.updateStatus(id), {
|
|
3984
|
+
status,
|
|
3985
|
+
});
|
|
3986
|
+
}
|
|
3987
|
+
updateTerms(id) {
|
|
3988
|
+
return this.apiService.patch(VIP_CARDS_API_ROUTES.updateTerms(id), {});
|
|
3989
|
+
}
|
|
3990
|
+
fetchTransactions(id, page = 1, limit = 20) {
|
|
3991
|
+
return this.apiService.get(`${VIP_CARDS_API_ROUTES.transactions(id)}?page=${page}&limit=${limit}`);
|
|
3992
|
+
}
|
|
3993
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipCardService, deps: [{ token: ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3994
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipCardService, providedIn: 'root' });
|
|
3995
|
+
}
|
|
3996
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipCardService, decorators: [{
|
|
3997
|
+
type: Injectable,
|
|
3998
|
+
args: [{ providedIn: 'root' }]
|
|
3999
|
+
}], ctorParameters: () => [{ type: ApiService }] });
|
|
4000
|
+
|
|
3917
4001
|
const authInterceptor = (req, next) => {
|
|
3918
4002
|
const platformId = inject(PLATFORM_ID);
|
|
3919
4003
|
const config = inject(TICKERA_COMPONENTS_CONFIG);
|
|
@@ -8611,6 +8695,9 @@ class OrderItemsComponent {
|
|
|
8611
8695
|
get giftBonds() {
|
|
8612
8696
|
return this.orderItems?.filter(({ item_type }) => item_type === OrderItemType.GIFT_BOND) ?? [];
|
|
8613
8697
|
}
|
|
8698
|
+
get corporateBonds() {
|
|
8699
|
+
return this.orderItems?.filter(({ item_type }) => item_type === OrderItemType.CORPORATE_BOND) ?? [];
|
|
8700
|
+
}
|
|
8614
8701
|
get showActionColumn() {
|
|
8615
8702
|
return this.order.status === 'completed' && this.tickets.length > 0;
|
|
8616
8703
|
}
|
|
@@ -8630,13 +8717,16 @@ class OrderItemsComponent {
|
|
|
8630
8717
|
const giftBonds = this.giftBonds?.reduce((accumulator, currentTicket) => {
|
|
8631
8718
|
return accumulator + currentTicket?.normal_price;
|
|
8632
8719
|
}, 0);
|
|
8633
|
-
|
|
8720
|
+
const corporateBonds = this.corporateBonds?.reduce((accumulator, currentTicket) => {
|
|
8721
|
+
return accumulator + currentTicket?.normal_price;
|
|
8722
|
+
}, 0);
|
|
8723
|
+
return { products, tickets, giftBonds, corporateBonds };
|
|
8634
8724
|
}
|
|
8635
8725
|
openTicketQr(ticketUuid, description) {
|
|
8636
8726
|
this.ticketQrModalService.open(ticketUuid, description);
|
|
8637
8727
|
}
|
|
8638
8728
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: OrderItemsComponent, deps: [{ token: TicketQrModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8639
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: OrderItemsComponent, isStandalone: true, selector: "order-items", inputs: { order: "order" }, ngImport: i0, template: "@if (!!order) {\n <div class=\"order-items\">\n <div class=\"order-items__header\">\n <p class=\"order-items__header-title\">\n Informaci\u00F3n de los art\u00EDculos comprados ({{ order.order_items.length | number: '1.0' }})\n </p>\n </div>\n <div class=\"order-items__table-container\">\n <table class=\"order-items__table\">\n <thead class=\"order-items__table-head\">\n <tr class=\"order-items__table-head-row\">\n <th class=\"order-items__table-head-cell\">Tipo</th>\n <th class=\"order-items__table-head-cell\">Descripci\u00F3n</th>\n\n <th class=\"order-items__table-head-cell text-right\">Cant.</th>\n <th class=\"order-items__table-head-cell text-right\">Precio</th>\n <th class=\"order-items__table-head-cell text-right\">Total</th>\n @if (showActionColumn) {\n <th class=\"order-items__table-head-cell\">Acciones</th>\n }\n </tr>\n </thead>\n <tbody class=\"order-items__table-body\">\n @for (item of order.order_items; track $index) {\n <tr class=\"order-items__table-body-row\">\n <td class=\"order-items__table-body-cell\">\n <order-item-type-badge [item]=\"item\" size=\"xs\" />\n </td>\n\n <td class=\"order-items__table-body-cell\">\n {{ item.description }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n {{ item.quantity }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n ${{ item.normal_price | number: '1.0-2' }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n <strong>\n ${{ itemTotal(item.quantity, item.normal_price) | number: '1.0-2' }}\n </strong>\n </td>\n\n @if (item.ticket_uuid && order.status === 'completed' && showActionColumn) {\n <td class=\"order-items__table-body-cell actions\">\n <app-button\n text=\"Ver ticket\"\n size=\"xs\"\n icon=\"ri-eye-line\"\n (clicked)=\"openTicketQr(item.ticket_uuid!, item.description)\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"order-items__totals\">\n <dl class=\"order-items__totals-container\">\n @if (giftBonds.length > 0 && totals.giftBonds > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Bonos de regalo ({{ giftBonds.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.giftBonds > 0) {\n <span class=\"text-gray-900\"> ${{ totals.giftBonds | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (tickets.length > 0 && totals.tickets > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Entradas ({{ tickets.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.tickets > 0) {\n <span class=\"text-gray-900\"> ${{ totals.tickets | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (products.length > 0 && totals.products > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Productos</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.products > 0) {\n <span class=\"text-gray-900\"> ${{ totals.products | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (order.service_fee && order.service_fee > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Tarifa de servicio</dt>\n <dd class=\"order-items__totals-item-value\">\n <span class=\"text-gray-900\"> ${{ order.service_fee | number: '1.0-2' }} </span>\n </dd>\n </div>\n }\n\n @if (hasDiscount()) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Descuento</dt>\n <dd class=\"order-items__totals-item-title\">\n $-{{ order.discount_amount | number: '1.0-2' }}\n </dd>\n </div>\n }\n\n <div class=\"order-items__totals-item total-item\">\n <dt class=\"order-items__totals-item-total\">Total</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (!hasDiscount()) {\n <span class=\"order-items__totals-item-total\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n }\n @if (hasDiscount()) {\n <span class=\"order-items__totals-item-discount-wrapper\">\n <span class=\"order-items__totals-item-discount\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n <span class=\"order-items__totals-item-total\">\n ${{ order.total_discounted | number: '1.0-2' }}\n </span>\n </span>\n }\n </dd>\n </div>\n </dl>\n </div>\n </div>\n\n <ticket-qr-modal />\n}\n", styles: [".order-items{background-color:#fff;border-radius:.5rem;border:1px solid #f3f4f6;box-sizing:border-box;overflow:hidden;position:relative;width:100%}.order-items__header{align-items:center;display:flex;flex-flow:row wrap;gap:1rem;padding:1rem;width:100%}.order-items__header-title{color:#6b7280;font-size:.875rem;font-weight:700;margin:0}.order-items__table-container{overflow-x:auto}.order-items__table{border-collapse:collapse;font-size:.875rem;width:100%}.order-items__table-head-row{background-color:#f9fafb;text-align:left}.order-items__table-head-cell{color:#6b7280;font-size:.75rem;font-weight:700;padding:.75rem 1.5rem;text-transform:uppercase}.order-items__table-head-cell.text-right{text-align:right}.order-items__table-body>:not(:last-child){border-bottom:1px solid #f9fafb}.order-items__table-body-row{transition:all .4s ease}.order-items__table-body-row:hover{background-color:#f9fafb}.order-items__table-body-cell{color:#374151;padding:.75rem 1.5rem;white-space:nowrap}.order-items__table-body-cell.text-right{text-align:right}.order-items__totals{background-color:#f9fafb;border-top:1px solid #f3f4f6;padding:1rem 1.5rem;width:100%}.order-items__totals-container{display:flex;flex-flow:column;gap:.5rem;margin-left:auto;max-width:20rem;width:100%}.order-items__totals-item{display:flex;font-size:.875rem;justify-content:space-between;width:100%}.order-items__totals-item.actions{text-align:left}.order-items__totals-item.total-item{border-top:1px solid #e5e7eb;padding-top:.5rem}.order-items__totals-item-title{color:#6b7280}.order-items__totals-item-total{color:#111827;font-size:1.125rem;font-weight:700;line-height:100%}.order-items__totals-item-discount-wrapper{align-items:flex-end;display:flex;flex-flow:column nowrap;width:100%}.order-items__totals-item-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon", "tooltip"], outputs: ["clicked"] }, { kind: "component", type: TicketQrModalComponent, selector: "ticket-qr-modal" }, { kind: "component", type: OrderItemTypeBadgeComponent, selector: "order-item-type-badge", inputs: ["item", "size"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }], encapsulation: i0.ViewEncapsulation.None });
|
|
8729
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: OrderItemsComponent, isStandalone: true, selector: "order-items", inputs: { order: "order" }, ngImport: i0, template: "@if (!!order) {\n <div class=\"order-items\">\n <div class=\"order-items__header\">\n <p class=\"order-items__header-title\">\n Informaci\u00F3n de los art\u00EDculos comprados ({{ order.order_items.length | number: '1.0' }})\n </p>\n </div>\n <div class=\"order-items__table-container\">\n <table class=\"order-items__table\">\n <thead class=\"order-items__table-head\">\n <tr class=\"order-items__table-head-row\">\n <th class=\"order-items__table-head-cell\">Tipo</th>\n <th class=\"order-items__table-head-cell\">Descripci\u00F3n</th>\n\n <th class=\"order-items__table-head-cell text-right\">Cant.</th>\n <th class=\"order-items__table-head-cell text-right\">Precio</th>\n <th class=\"order-items__table-head-cell text-right\">Total</th>\n @if (showActionColumn) {\n <th class=\"order-items__table-head-cell\">Acciones</th>\n }\n </tr>\n </thead>\n <tbody class=\"order-items__table-body\">\n @for (item of order.order_items; track $index) {\n <tr class=\"order-items__table-body-row\">\n <td class=\"order-items__table-body-cell\">\n <order-item-type-badge [item]=\"item\" size=\"xs\" />\n </td>\n\n <td class=\"order-items__table-body-cell\">\n {{ item.description }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n {{ item.quantity }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n ${{ item.normal_price | number: '1.0-2' }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n <strong>\n ${{ itemTotal(item.quantity, item.normal_price) | number: '1.0-2' }}\n </strong>\n </td>\n\n @if (item.ticket_uuid && order.status === 'completed' && showActionColumn) {\n <td class=\"order-items__table-body-cell actions\">\n <app-button\n text=\"Ver ticket\"\n size=\"xs\"\n icon=\"ri-eye-line\"\n (clicked)=\"openTicketQr(item.ticket_uuid!, item.description)\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"order-items__totals\">\n <dl class=\"order-items__totals-container\">\n @if (giftBonds.length > 0 && totals.giftBonds > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Bonos de regalo ({{ giftBonds.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.giftBonds > 0) {\n <span class=\"text-gray-900\"> ${{ totals.giftBonds | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (corporateBonds.length > 0 && totals.corporateBonds > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Bonos corporativos ({{ corporateBonds.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.corporateBonds > 0) {\n <span class=\"text-gray-900\"> ${{ totals.corporateBonds | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (tickets.length > 0 && totals.tickets > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Entradas ({{ tickets.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.tickets > 0) {\n <span class=\"text-gray-900\"> ${{ totals.tickets | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (products.length > 0 && totals.products > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Productos</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.products > 0) {\n <span class=\"text-gray-900\"> ${{ totals.products | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (order.service_fee && order.service_fee > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Tarifa de servicio</dt>\n <dd class=\"order-items__totals-item-value\">\n <span class=\"text-gray-900\"> ${{ order.service_fee | number: '1.0-2' }} </span>\n </dd>\n </div>\n }\n\n @if (hasDiscount()) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Descuento</dt>\n <dd class=\"order-items__totals-item-title\">\n $-{{ order.discount_amount | number: '1.0-2' }}\n </dd>\n </div>\n }\n\n <div class=\"order-items__totals-item total-item\">\n <dt class=\"order-items__totals-item-total\">Total</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (!hasDiscount()) {\n <span class=\"order-items__totals-item-total\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n }\n @if (hasDiscount()) {\n <span class=\"order-items__totals-item-discount-wrapper\">\n <span class=\"order-items__totals-item-discount\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n <span class=\"order-items__totals-item-total\">\n ${{ order.total_discounted | number: '1.0-2' }}\n </span>\n </span>\n }\n </dd>\n </div>\n </dl>\n </div>\n </div>\n\n <ticket-qr-modal />\n}\n", styles: [".order-items{background-color:#fff;border-radius:.5rem;border:1px solid #f3f4f6;box-sizing:border-box;overflow:hidden;position:relative;width:100%}.order-items__header{align-items:center;display:flex;flex-flow:row wrap;gap:1rem;padding:1rem;width:100%}.order-items__header-title{color:#6b7280;font-size:.875rem;font-weight:700;margin:0}.order-items__table-container{overflow-x:auto}.order-items__table{border-collapse:collapse;font-size:.875rem;width:100%}.order-items__table-head-row{background-color:#f9fafb;text-align:left}.order-items__table-head-cell{color:#6b7280;font-size:.75rem;font-weight:700;padding:.75rem 1.5rem;text-transform:uppercase}.order-items__table-head-cell.text-right{text-align:right}.order-items__table-body>:not(:last-child){border-bottom:1px solid #f9fafb}.order-items__table-body-row{transition:all .4s ease}.order-items__table-body-row:hover{background-color:#f9fafb}.order-items__table-body-cell{color:#374151;padding:.75rem 1.5rem;white-space:nowrap}.order-items__table-body-cell.text-right{text-align:right}.order-items__totals{background-color:#f9fafb;border-top:1px solid #f3f4f6;padding:1rem 1.5rem;width:100%}.order-items__totals-container{display:flex;flex-flow:column;gap:.5rem;margin-left:auto;max-width:20rem;width:100%}.order-items__totals-item{display:flex;font-size:.875rem;justify-content:space-between;width:100%}.order-items__totals-item.actions{text-align:left}.order-items__totals-item.total-item{border-top:1px solid #e5e7eb;padding-top:.5rem}.order-items__totals-item-title{color:#6b7280}.order-items__totals-item-total{color:#111827;font-size:1.125rem;font-weight:700;line-height:100%}.order-items__totals-item-discount-wrapper{align-items:flex-end;display:flex;flex-flow:column nowrap;width:100%}.order-items__totals-item-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon", "tooltip"], outputs: ["clicked"] }, { kind: "component", type: TicketQrModalComponent, selector: "ticket-qr-modal" }, { kind: "component", type: OrderItemTypeBadgeComponent, selector: "order-item-type-badge", inputs: ["item", "size"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }], encapsulation: i0.ViewEncapsulation.None });
|
|
8640
8730
|
}
|
|
8641
8731
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: OrderItemsComponent, decorators: [{
|
|
8642
8732
|
type: Component,
|
|
@@ -8646,7 +8736,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
8646
8736
|
TicketQrModalComponent,
|
|
8647
8737
|
TicketMapWidgetHeaderComponent,
|
|
8648
8738
|
OrderItemTypeBadgeComponent,
|
|
8649
|
-
], encapsulation: ViewEncapsulation.None, template: "@if (!!order) {\n <div class=\"order-items\">\n <div class=\"order-items__header\">\n <p class=\"order-items__header-title\">\n Informaci\u00F3n de los art\u00EDculos comprados ({{ order.order_items.length | number: '1.0' }})\n </p>\n </div>\n <div class=\"order-items__table-container\">\n <table class=\"order-items__table\">\n <thead class=\"order-items__table-head\">\n <tr class=\"order-items__table-head-row\">\n <th class=\"order-items__table-head-cell\">Tipo</th>\n <th class=\"order-items__table-head-cell\">Descripci\u00F3n</th>\n\n <th class=\"order-items__table-head-cell text-right\">Cant.</th>\n <th class=\"order-items__table-head-cell text-right\">Precio</th>\n <th class=\"order-items__table-head-cell text-right\">Total</th>\n @if (showActionColumn) {\n <th class=\"order-items__table-head-cell\">Acciones</th>\n }\n </tr>\n </thead>\n <tbody class=\"order-items__table-body\">\n @for (item of order.order_items; track $index) {\n <tr class=\"order-items__table-body-row\">\n <td class=\"order-items__table-body-cell\">\n <order-item-type-badge [item]=\"item\" size=\"xs\" />\n </td>\n\n <td class=\"order-items__table-body-cell\">\n {{ item.description }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n {{ item.quantity }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n ${{ item.normal_price | number: '1.0-2' }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n <strong>\n ${{ itemTotal(item.quantity, item.normal_price) | number: '1.0-2' }}\n </strong>\n </td>\n\n @if (item.ticket_uuid && order.status === 'completed' && showActionColumn) {\n <td class=\"order-items__table-body-cell actions\">\n <app-button\n text=\"Ver ticket\"\n size=\"xs\"\n icon=\"ri-eye-line\"\n (clicked)=\"openTicketQr(item.ticket_uuid!, item.description)\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"order-items__totals\">\n <dl class=\"order-items__totals-container\">\n @if (giftBonds.length > 0 && totals.giftBonds > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Bonos de regalo ({{ giftBonds.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.giftBonds > 0) {\n <span class=\"text-gray-900\"> ${{ totals.giftBonds | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (tickets.length > 0 && totals.tickets > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Entradas ({{ tickets.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.tickets > 0) {\n <span class=\"text-gray-900\"> ${{ totals.tickets | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (products.length > 0 && totals.products > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Productos</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.products > 0) {\n <span class=\"text-gray-900\"> ${{ totals.products | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (order.service_fee && order.service_fee > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Tarifa de servicio</dt>\n <dd class=\"order-items__totals-item-value\">\n <span class=\"text-gray-900\"> ${{ order.service_fee | number: '1.0-2' }} </span>\n </dd>\n </div>\n }\n\n @if (hasDiscount()) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Descuento</dt>\n <dd class=\"order-items__totals-item-title\">\n $-{{ order.discount_amount | number: '1.0-2' }}\n </dd>\n </div>\n }\n\n <div class=\"order-items__totals-item total-item\">\n <dt class=\"order-items__totals-item-total\">Total</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (!hasDiscount()) {\n <span class=\"order-items__totals-item-total\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n }\n @if (hasDiscount()) {\n <span class=\"order-items__totals-item-discount-wrapper\">\n <span class=\"order-items__totals-item-discount\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n <span class=\"order-items__totals-item-total\">\n ${{ order.total_discounted | number: '1.0-2' }}\n </span>\n </span>\n }\n </dd>\n </div>\n </dl>\n </div>\n </div>\n\n <ticket-qr-modal />\n}\n", styles: [".order-items{background-color:#fff;border-radius:.5rem;border:1px solid #f3f4f6;box-sizing:border-box;overflow:hidden;position:relative;width:100%}.order-items__header{align-items:center;display:flex;flex-flow:row wrap;gap:1rem;padding:1rem;width:100%}.order-items__header-title{color:#6b7280;font-size:.875rem;font-weight:700;margin:0}.order-items__table-container{overflow-x:auto}.order-items__table{border-collapse:collapse;font-size:.875rem;width:100%}.order-items__table-head-row{background-color:#f9fafb;text-align:left}.order-items__table-head-cell{color:#6b7280;font-size:.75rem;font-weight:700;padding:.75rem 1.5rem;text-transform:uppercase}.order-items__table-head-cell.text-right{text-align:right}.order-items__table-body>:not(:last-child){border-bottom:1px solid #f9fafb}.order-items__table-body-row{transition:all .4s ease}.order-items__table-body-row:hover{background-color:#f9fafb}.order-items__table-body-cell{color:#374151;padding:.75rem 1.5rem;white-space:nowrap}.order-items__table-body-cell.text-right{text-align:right}.order-items__totals{background-color:#f9fafb;border-top:1px solid #f3f4f6;padding:1rem 1.5rem;width:100%}.order-items__totals-container{display:flex;flex-flow:column;gap:.5rem;margin-left:auto;max-width:20rem;width:100%}.order-items__totals-item{display:flex;font-size:.875rem;justify-content:space-between;width:100%}.order-items__totals-item.actions{text-align:left}.order-items__totals-item.total-item{border-top:1px solid #e5e7eb;padding-top:.5rem}.order-items__totals-item-title{color:#6b7280}.order-items__totals-item-total{color:#111827;font-size:1.125rem;font-weight:700;line-height:100%}.order-items__totals-item-discount-wrapper{align-items:flex-end;display:flex;flex-flow:column nowrap;width:100%}.order-items__totals-item-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}\n"] }]
|
|
8739
|
+
], encapsulation: ViewEncapsulation.None, template: "@if (!!order) {\n <div class=\"order-items\">\n <div class=\"order-items__header\">\n <p class=\"order-items__header-title\">\n Informaci\u00F3n de los art\u00EDculos comprados ({{ order.order_items.length | number: '1.0' }})\n </p>\n </div>\n <div class=\"order-items__table-container\">\n <table class=\"order-items__table\">\n <thead class=\"order-items__table-head\">\n <tr class=\"order-items__table-head-row\">\n <th class=\"order-items__table-head-cell\">Tipo</th>\n <th class=\"order-items__table-head-cell\">Descripci\u00F3n</th>\n\n <th class=\"order-items__table-head-cell text-right\">Cant.</th>\n <th class=\"order-items__table-head-cell text-right\">Precio</th>\n <th class=\"order-items__table-head-cell text-right\">Total</th>\n @if (showActionColumn) {\n <th class=\"order-items__table-head-cell\">Acciones</th>\n }\n </tr>\n </thead>\n <tbody class=\"order-items__table-body\">\n @for (item of order.order_items; track $index) {\n <tr class=\"order-items__table-body-row\">\n <td class=\"order-items__table-body-cell\">\n <order-item-type-badge [item]=\"item\" size=\"xs\" />\n </td>\n\n <td class=\"order-items__table-body-cell\">\n {{ item.description }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n {{ item.quantity }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n ${{ item.normal_price | number: '1.0-2' }}\n </td>\n\n <td class=\"order-items__table-body-cell text-right\">\n <strong>\n ${{ itemTotal(item.quantity, item.normal_price) | number: '1.0-2' }}\n </strong>\n </td>\n\n @if (item.ticket_uuid && order.status === 'completed' && showActionColumn) {\n <td class=\"order-items__table-body-cell actions\">\n <app-button\n text=\"Ver ticket\"\n size=\"xs\"\n icon=\"ri-eye-line\"\n (clicked)=\"openTicketQr(item.ticket_uuid!, item.description)\"\n />\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"order-items__totals\">\n <dl class=\"order-items__totals-container\">\n @if (giftBonds.length > 0 && totals.giftBonds > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Bonos de regalo ({{ giftBonds.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.giftBonds > 0) {\n <span class=\"text-gray-900\"> ${{ totals.giftBonds | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (corporateBonds.length > 0 && totals.corporateBonds > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Bonos corporativos ({{ corporateBonds.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.corporateBonds > 0) {\n <span class=\"text-gray-900\"> ${{ totals.corporateBonds | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (tickets.length > 0 && totals.tickets > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Entradas ({{ tickets.length }})</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.tickets > 0) {\n <span class=\"text-gray-900\"> ${{ totals.tickets | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (products.length > 0 && totals.products > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Productos</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (totals.products > 0) {\n <span class=\"text-gray-900\"> ${{ totals.products | number: '1.0-2' }} </span>\n }\n </dd>\n </div>\n }\n\n @if (order.service_fee && order.service_fee > 0) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Tarifa de servicio</dt>\n <dd class=\"order-items__totals-item-value\">\n <span class=\"text-gray-900\"> ${{ order.service_fee | number: '1.0-2' }} </span>\n </dd>\n </div>\n }\n\n @if (hasDiscount()) {\n <div class=\"order-items__totals-item\">\n <dt class=\"order-items__totals-item-title\">Descuento</dt>\n <dd class=\"order-items__totals-item-title\">\n $-{{ order.discount_amount | number: '1.0-2' }}\n </dd>\n </div>\n }\n\n <div class=\"order-items__totals-item total-item\">\n <dt class=\"order-items__totals-item-total\">Total</dt>\n <dd class=\"order-items__totals-item-value\">\n @if (!hasDiscount()) {\n <span class=\"order-items__totals-item-total\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n }\n @if (hasDiscount()) {\n <span class=\"order-items__totals-item-discount-wrapper\">\n <span class=\"order-items__totals-item-discount\">\n ${{ order.total | number: '1.0-2' }}\n </span>\n <span class=\"order-items__totals-item-total\">\n ${{ order.total_discounted | number: '1.0-2' }}\n </span>\n </span>\n }\n </dd>\n </div>\n </dl>\n </div>\n </div>\n\n <ticket-qr-modal />\n}\n", styles: [".order-items{background-color:#fff;border-radius:.5rem;border:1px solid #f3f4f6;box-sizing:border-box;overflow:hidden;position:relative;width:100%}.order-items__header{align-items:center;display:flex;flex-flow:row wrap;gap:1rem;padding:1rem;width:100%}.order-items__header-title{color:#6b7280;font-size:.875rem;font-weight:700;margin:0}.order-items__table-container{overflow-x:auto}.order-items__table{border-collapse:collapse;font-size:.875rem;width:100%}.order-items__table-head-row{background-color:#f9fafb;text-align:left}.order-items__table-head-cell{color:#6b7280;font-size:.75rem;font-weight:700;padding:.75rem 1.5rem;text-transform:uppercase}.order-items__table-head-cell.text-right{text-align:right}.order-items__table-body>:not(:last-child){border-bottom:1px solid #f9fafb}.order-items__table-body-row{transition:all .4s ease}.order-items__table-body-row:hover{background-color:#f9fafb}.order-items__table-body-cell{color:#374151;padding:.75rem 1.5rem;white-space:nowrap}.order-items__table-body-cell.text-right{text-align:right}.order-items__totals{background-color:#f9fafb;border-top:1px solid #f3f4f6;padding:1rem 1.5rem;width:100%}.order-items__totals-container{display:flex;flex-flow:column;gap:.5rem;margin-left:auto;max-width:20rem;width:100%}.order-items__totals-item{display:flex;font-size:.875rem;justify-content:space-between;width:100%}.order-items__totals-item.actions{text-align:left}.order-items__totals-item.total-item{border-top:1px solid #e5e7eb;padding-top:.5rem}.order-items__totals-item-title{color:#6b7280}.order-items__totals-item-total{color:#111827;font-size:1.125rem;font-weight:700;line-height:100%}.order-items__totals-item-discount-wrapper{align-items:flex-end;display:flex;flex-flow:column nowrap;width:100%}.order-items__totals-item-discount{color:#9ca3af;font-size:.75rem;text-decoration:line-through}\n"] }]
|
|
8650
8740
|
}], ctorParameters: () => [{ type: TicketQrModalService }], propDecorators: { order: [{
|
|
8651
8741
|
type: Input,
|
|
8652
8742
|
args: [{ required: true }]
|
|
@@ -8817,11 +8907,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
8817
8907
|
args: [{ required: true }]
|
|
8818
8908
|
}] } });
|
|
8819
8909
|
|
|
8910
|
+
class VipBalanceCardComponent {
|
|
8911
|
+
card = null;
|
|
8912
|
+
get statusColor() {
|
|
8913
|
+
if (!this.card)
|
|
8914
|
+
return 'primary';
|
|
8915
|
+
switch (this.card.status) {
|
|
8916
|
+
case VipCardStatus.ACTIVE:
|
|
8917
|
+
return 'success';
|
|
8918
|
+
case VipCardStatus.INACTIVE:
|
|
8919
|
+
return 'warning';
|
|
8920
|
+
case VipCardStatus.EXPIRED:
|
|
8921
|
+
return 'error';
|
|
8922
|
+
default:
|
|
8923
|
+
return 'primary';
|
|
8924
|
+
}
|
|
8925
|
+
}
|
|
8926
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipBalanceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8927
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: VipBalanceCardComponent, isStandalone: true, selector: "vip-balance-card", inputs: { card: "card" }, ngImport: i0, template: "<div class=\"vip-balance-card\">\n @if (card) {\n <div class=\"vip-balance-card-header\">\n <p class=\"vip-balance-card-category\">{{ card.category_snapshot.name }}</p>\n <app-badge [text]=\"card.status\" [color]=\"statusColor\" size=\"sm\" />\n </div>\n\n <p class=\"vip-balance-card-balance\">\n {{ card.balance | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}\n </p>\n <p class=\"vip-balance-card-label\">Saldo disponible</p>\n\n <div class=\"vip-balance-card-details\">\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">Descuento</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.category_snapshot.discount_percentage }}%\n </span>\n </div>\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">Exenci\u00F3n tarifa</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.category_snapshot.service_fee_exempt ? 'S\u00ED' : 'No' }}\n </span>\n </div>\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">Vence</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.expires_at ? (card.expires_at | date: 'shortDate') : '\u2014' }}\n </span>\n </div>\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">\u00DAltima actividad</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.last_activity_at ? (card.last_activity_at | date: 'shortDate') : '\u2014' }}\n </span>\n </div>\n </div>\n } @else {\n <p class=\"vip-balance-card-empty\">No tienes una Tarjeta VIP activa.</p>\n }\n</div>\n", styles: [".vip-balance-card{width:100%;background-color:#fff;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;padding:24px}.vip-balance-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.vip-balance-card-category{font-size:14px;font-weight:600;color:#374151;margin:0}.vip-balance-card-balance{font-size:36px;font-weight:700;color:#111827;margin:0}.vip-balance-card-label{font-size:14px;color:#6b7280;margin:0}.vip-balance-card-details{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px}.vip-balance-card-detail{display:flex;flex-direction:column}.vip-balance-card-detail-label{font-size:12px;color:#9ca3af}.vip-balance-card-detail-value{font-size:14px;font-weight:500;color:#374151}.vip-balance-card-empty{padding:24px 0;text-align:center;color:#6b7280;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AppBadgeComponent, selector: "app-badge", inputs: ["text", "color", "size", "bordered", "backgroundColor", "textColor"] }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
8928
|
+
}
|
|
8929
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipBalanceCardComponent, decorators: [{
|
|
8930
|
+
type: Component,
|
|
8931
|
+
args: [{ selector: 'vip-balance-card', standalone: true, imports: [CommonModule, DatePipe, AppBadgeComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"vip-balance-card\">\n @if (card) {\n <div class=\"vip-balance-card-header\">\n <p class=\"vip-balance-card-category\">{{ card.category_snapshot.name }}</p>\n <app-badge [text]=\"card.status\" [color]=\"statusColor\" size=\"sm\" />\n </div>\n\n <p class=\"vip-balance-card-balance\">\n {{ card.balance | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}\n </p>\n <p class=\"vip-balance-card-label\">Saldo disponible</p>\n\n <div class=\"vip-balance-card-details\">\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">Descuento</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.category_snapshot.discount_percentage }}%\n </span>\n </div>\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">Exenci\u00F3n tarifa</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.category_snapshot.service_fee_exempt ? 'S\u00ED' : 'No' }}\n </span>\n </div>\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">Vence</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.expires_at ? (card.expires_at | date: 'shortDate') : '\u2014' }}\n </span>\n </div>\n <div class=\"vip-balance-card-detail\">\n <span class=\"vip-balance-card-detail-label\">\u00DAltima actividad</span>\n <span class=\"vip-balance-card-detail-value\">\n {{ card.last_activity_at ? (card.last_activity_at | date: 'shortDate') : '\u2014' }}\n </span>\n </div>\n </div>\n } @else {\n <p class=\"vip-balance-card-empty\">No tienes una Tarjeta VIP activa.</p>\n }\n</div>\n", styles: [".vip-balance-card{width:100%;background-color:#fff;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;padding:24px}.vip-balance-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.vip-balance-card-category{font-size:14px;font-weight:600;color:#374151;margin:0}.vip-balance-card-balance{font-size:36px;font-weight:700;color:#111827;margin:0}.vip-balance-card-label{font-size:14px;color:#6b7280;margin:0}.vip-balance-card-details{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px}.vip-balance-card-detail{display:flex;flex-direction:column}.vip-balance-card-detail-label{font-size:12px;color:#9ca3af}.vip-balance-card-detail-value{font-size:14px;font-weight:500;color:#374151}.vip-balance-card-empty{padding:24px 0;text-align:center;color:#6b7280;margin:0}\n"] }]
|
|
8932
|
+
}], propDecorators: { card: [{
|
|
8933
|
+
type: Input
|
|
8934
|
+
}] } });
|
|
8935
|
+
|
|
8936
|
+
class VipRechargeModalComponent {
|
|
8937
|
+
fb;
|
|
8938
|
+
title = 'Recargar Tarjeta VIP';
|
|
8939
|
+
submitLabel = 'Recargar';
|
|
8940
|
+
loading = false;
|
|
8941
|
+
minAmount = 100000;
|
|
8942
|
+
isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
|
|
8943
|
+
closeModal = new EventEmitter();
|
|
8944
|
+
confirm = new EventEmitter();
|
|
8945
|
+
rechargeForm;
|
|
8946
|
+
constructor(fb) {
|
|
8947
|
+
this.fb = fb;
|
|
8948
|
+
this.rechargeForm = this.fb.group({
|
|
8949
|
+
amount: ['', [Validators.required, Validators.min(this.minAmount)]],
|
|
8950
|
+
});
|
|
8951
|
+
}
|
|
8952
|
+
onClose() {
|
|
8953
|
+
this.rechargeForm.reset();
|
|
8954
|
+
this.closeModal.emit();
|
|
8955
|
+
}
|
|
8956
|
+
onSubmit() {
|
|
8957
|
+
if (this.rechargeForm.invalid)
|
|
8958
|
+
return;
|
|
8959
|
+
this.confirm.emit({ amount: Number(this.rechargeForm.value.amount) });
|
|
8960
|
+
}
|
|
8961
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipRechargeModalComponent, deps: [{ token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
8962
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: VipRechargeModalComponent, isStandalone: true, selector: "vip-recharge-modal", inputs: { title: "title", submitLabel: "submitLabel", loading: "loading", minAmount: "minAmount", isOpen: "isOpen" }, outputs: { closeModal: "closeModal", confirm: "confirm" }, ngImport: i0, template: "<app-modal [isOpen]=\"isOpen\" [title]=\"title\" size=\"md\" (closeModal)=\"onClose()\">\n <form [formGroup]=\"rechargeForm\" (ngSubmit)=\"onSubmit()\">\n <div class=\"vip-recharge-modal\">\n <form-input\n formControlName=\"amount\"\n label=\"Monto\"\n type=\"number\"\n [min]=\"minAmount\"\n [step]=\"1000\"\n [required]=\"true\"\n placeholder=\"Ingresa el monto a recargar\"\n />\n <p class=\"vip-recharge-modal-hint\">\n Monto m\u00EDnimo: {{ minAmount | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}\n </p>\n </div>\n\n <div class=\"vip-recharge-modal-actions\">\n <app-button type=\"button\" variant=\"tertiary\" text=\"Cancelar\" (clicked)=\"onClose()\" />\n <app-button\n type=\"submit\"\n variant=\"primary\"\n [text]=\"submitLabel\"\n [loading]=\"loading\"\n [disabled]=\"rechargeForm.invalid\"\n />\n </div>\n </form>\n</app-modal>\n", styles: [".vip-recharge-modal{padding:8px 4px}.vip-recharge-modal-hint{margin-top:8px;font-size:12px;color:#6b7280}.vip-recharge-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AppModalComponent, selector: "app-modal", inputs: ["title", "disableClose", "showHeader", "showCloseButton", "showTitle", "isOpen", "size"], outputs: ["closeModal"] }, { kind: "component", type: FormInputComponent, selector: "form-input", inputs: ["label", "type", "name", "id", "placeholder", "required", "readonly", "minlength", "min", "step", "pattern", "fieldGroupClass", "autocomplete"] }, { kind: "component", type: AppButtonComponent, selector: "app-button", inputs: ["disabled", "loading", "type", "variant", "text", "size", "loadingText", "icon", "tooltip"], outputs: ["clicked"] }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }], encapsulation: i0.ViewEncapsulation.None });
|
|
8963
|
+
}
|
|
8964
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipRechargeModalComponent, decorators: [{
|
|
8965
|
+
type: Component,
|
|
8966
|
+
args: [{ selector: 'vip-recharge-modal', standalone: true, imports: [
|
|
8967
|
+
CommonModule,
|
|
8968
|
+
ReactiveFormsModule,
|
|
8969
|
+
AppModalComponent,
|
|
8970
|
+
FormInputComponent,
|
|
8971
|
+
AppButtonComponent,
|
|
8972
|
+
], encapsulation: ViewEncapsulation.None, template: "<app-modal [isOpen]=\"isOpen\" [title]=\"title\" size=\"md\" (closeModal)=\"onClose()\">\n <form [formGroup]=\"rechargeForm\" (ngSubmit)=\"onSubmit()\">\n <div class=\"vip-recharge-modal\">\n <form-input\n formControlName=\"amount\"\n label=\"Monto\"\n type=\"number\"\n [min]=\"minAmount\"\n [step]=\"1000\"\n [required]=\"true\"\n placeholder=\"Ingresa el monto a recargar\"\n />\n <p class=\"vip-recharge-modal-hint\">\n Monto m\u00EDnimo: {{ minAmount | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}\n </p>\n </div>\n\n <div class=\"vip-recharge-modal-actions\">\n <app-button type=\"button\" variant=\"tertiary\" text=\"Cancelar\" (clicked)=\"onClose()\" />\n <app-button\n type=\"submit\"\n variant=\"primary\"\n [text]=\"submitLabel\"\n [loading]=\"loading\"\n [disabled]=\"rechargeForm.invalid\"\n />\n </div>\n </form>\n</app-modal>\n", styles: [".vip-recharge-modal{padding:8px 4px}.vip-recharge-modal-hint{margin-top:8px;font-size:12px;color:#6b7280}.vip-recharge-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}\n"] }]
|
|
8973
|
+
}], ctorParameters: () => [{ type: i1$2.FormBuilder }], propDecorators: { title: [{
|
|
8974
|
+
type: Input
|
|
8975
|
+
}], submitLabel: [{
|
|
8976
|
+
type: Input
|
|
8977
|
+
}], loading: [{
|
|
8978
|
+
type: Input
|
|
8979
|
+
}], minAmount: [{
|
|
8980
|
+
type: Input
|
|
8981
|
+
}], isOpen: [{
|
|
8982
|
+
type: Input
|
|
8983
|
+
}], closeModal: [{
|
|
8984
|
+
type: Output
|
|
8985
|
+
}], confirm: [{
|
|
8986
|
+
type: Output
|
|
8987
|
+
}] } });
|
|
8988
|
+
|
|
8989
|
+
class VipTransactionsTableComponent {
|
|
8990
|
+
transactions = [];
|
|
8991
|
+
loading = false;
|
|
8992
|
+
typeLabel(type) {
|
|
8993
|
+
switch (type) {
|
|
8994
|
+
case VipTransactionType.INITIAL_RECHARGE:
|
|
8995
|
+
return 'Activación';
|
|
8996
|
+
case VipTransactionType.RECHARGE:
|
|
8997
|
+
return 'Recarga';
|
|
8998
|
+
case VipTransactionType.PURCHASE_PAYMENT:
|
|
8999
|
+
return 'Compra';
|
|
9000
|
+
default:
|
|
9001
|
+
return type;
|
|
9002
|
+
}
|
|
9003
|
+
}
|
|
9004
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipTransactionsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9005
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: VipTransactionsTableComponent, isStandalone: true, selector: "vip-transactions-table", inputs: { transactions: "transactions", loading: "loading" }, ngImport: i0, template: "<div class=\"vip-transactions-table\">\n <table>\n <thead>\n <tr>\n <th>Fecha</th>\n <th>Tipo</th>\n <th>Descripci\u00F3n</th>\n <th>Monto</th>\n <th>Saldo</th>\n </tr>\n </thead>\n <tbody>\n @if (loading) {\n <tr>\n <td colspan=\"5\" class=\"vip-transactions-table-empty\">Cargando\u2026</td>\n </tr>\n } @else if (transactions.length === 0) {\n <tr>\n <td colspan=\"5\" class=\"vip-transactions-table-empty\">Sin transacciones.</td>\n </tr>\n } @else {\n @for (tx of transactions; track tx.id) {\n <tr>\n <td>{{ tx.created_at | date: 'short' }}</td>\n <td>\n <span\n [class.vip-transactions-table-positive]=\"tx.amount > 0\"\n [class.vip-transactions-table-negative]=\"tx.amount < 0\"\n >\n {{ typeLabel(tx.type) }}\n </span>\n </td>\n <td>{{ tx.description ?? '\u2014' }}</td>\n <td [class.vip-transactions-table-negative]=\"tx.amount < 0\">\n {{ tx.amount | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}\n </td>\n <td>{{ tx.balance_after | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}</td>\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n", styles: [".vip-transactions-table{width:100%;overflow-x:auto;border-radius:.5rem;border:1px solid #e5e7eb}.vip-transactions-table table{width:100%;font-size:14px;border-collapse:collapse}.vip-transactions-table table th{border-bottom:1px solid #e5e7eb;background-color:#f9fafb;padding:12px 16px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.vip-transactions-table table td{border-bottom:1px solid #f3f4f6;padding:12px 16px;color:#374151}.vip-transactions-table-empty{padding:24px 0;text-align:center;color:#9ca3af}.vip-transactions-table-positive{color:#16a34a}.vip-transactions-table-negative{color:#dc2626}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
9006
|
+
}
|
|
9007
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: VipTransactionsTableComponent, decorators: [{
|
|
9008
|
+
type: Component,
|
|
9009
|
+
args: [{ selector: 'vip-transactions-table', standalone: true, imports: [CommonModule, DatePipe], encapsulation: ViewEncapsulation.None, template: "<div class=\"vip-transactions-table\">\n <table>\n <thead>\n <tr>\n <th>Fecha</th>\n <th>Tipo</th>\n <th>Descripci\u00F3n</th>\n <th>Monto</th>\n <th>Saldo</th>\n </tr>\n </thead>\n <tbody>\n @if (loading) {\n <tr>\n <td colspan=\"5\" class=\"vip-transactions-table-empty\">Cargando\u2026</td>\n </tr>\n } @else if (transactions.length === 0) {\n <tr>\n <td colspan=\"5\" class=\"vip-transactions-table-empty\">Sin transacciones.</td>\n </tr>\n } @else {\n @for (tx of transactions; track tx.id) {\n <tr>\n <td>{{ tx.created_at | date: 'short' }}</td>\n <td>\n <span\n [class.vip-transactions-table-positive]=\"tx.amount > 0\"\n [class.vip-transactions-table-negative]=\"tx.amount < 0\"\n >\n {{ typeLabel(tx.type) }}\n </span>\n </td>\n <td>{{ tx.description ?? '\u2014' }}</td>\n <td [class.vip-transactions-table-negative]=\"tx.amount < 0\">\n {{ tx.amount | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}\n </td>\n <td>{{ tx.balance_after | currency: 'COP' : 'symbol-narrow' : '1.0-0' }}</td>\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n", styles: [".vip-transactions-table{width:100%;overflow-x:auto;border-radius:.5rem;border:1px solid #e5e7eb}.vip-transactions-table table{width:100%;font-size:14px;border-collapse:collapse}.vip-transactions-table table th{border-bottom:1px solid #e5e7eb;background-color:#f9fafb;padding:12px 16px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.vip-transactions-table table td{border-bottom:1px solid #f3f4f6;padding:12px 16px;color:#374151}.vip-transactions-table-empty{padding:24px 0;text-align:center;color:#9ca3af}.vip-transactions-table-positive{color:#16a34a}.vip-transactions-table-negative{color:#dc2626}\n"] }]
|
|
9010
|
+
}], propDecorators: { transactions: [{
|
|
9011
|
+
type: Input
|
|
9012
|
+
}], loading: [{
|
|
9013
|
+
type: Input
|
|
9014
|
+
}] } });
|
|
9015
|
+
|
|
8820
9016
|
// Config
|
|
8821
9017
|
|
|
8822
9018
|
/**
|
|
8823
9019
|
* Generated bundle index. Do not edit.
|
|
8824
9020
|
*/
|
|
8825
9021
|
|
|
8826
|
-
export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, CITY_API_ENDPOINTS, COUNTRY_API_ENDPOINTS, CUSTOMERS_API_ROUTES, ChangePasswordFormComponent, ChangePasswordFormService, CitiesService, CitySelectComponent, ColorPickerComponent, ConfirmationOrderModalComponent, ConfirmationOrderModalService, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, CreatorType, CustomerSelectComponent, CustomerService, DEFAULT_STAGE_CONFIG, DOCUMENT_TYPES_OPTIONS, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FeedbackModalComponent, FeedbackModalService, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, GiftBondPurchaseStatus, GiftBondStatus, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MinTodayValidator, MustMatchValidator, ORDER_DISCOUNT_COLORS, ORDER_ITEM_TYPES_COLORS, ORDER_STATUS_COLORS, OrderBillingInfoComponent, OrderDiscountAppliedComponent, OrderInformationComponent, OrderItemType, OrderItemTypeBadgeComponent, OrderItemsComponent, OrderStatus, OrderStatusBadgeComponent, OrderTransactionDetailsModalComponent, OrderTransactionDetailsModalService, OrderTransactionsComponent, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PERFORMANCE_STATUS_COLORS, PERFORMANCE_TICKET_STATUS_COLORS, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PaymentMethod, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, SHOW_TYPE_COLORS, STATE_API_ENDPOINTS, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowType, ShowTypeBadgeComponent, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_GRID_SIZE, TICKET_MAP_LAST_TICKETS_LIMIT, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TIcketMapProductSelectionComponent, TRANSACTION_STATUS_COLORS, TextExpandableComponent, TickeraTranslocoLoader, TicketMapPriceZonesComponent, TicketMapProductSelectionItemComponent, TicketMapTotalsComponent, TicketMapWidgetComponent, TicketMapWidgetHeaderComponent, TicketMapWrapperComponent, TicketMapZoomControlsComponent, TicketMapZoomService, TicketQrComponent, TicketQrModalComponent, TicketQrModalService, TicketQrService, TicketSelectionDetailsService, TicketSelectionDiscountService, TicketSelectionService, TicketSelectionTotalsService, ToastService, ToggleSwitchComponent, TransactionStatus, VENUES_API_ROUTES, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon$1 as drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile };
|
|
9022
|
+
export { ADMIN_API_ROUTES, ALERT_ICONS, AdminSelectComponent, AdminService, ApiService, AppAlertComponent, AppBadgeComponent, AppBreadcumbComponent, AppButtonComponent, AppLinkButtonComponent, AppModalComponent, AsyncSelectComponent, AuditInformationComponent, BASE_BUTTON_CLASSES, BASE_INPUT_CLASSES, BUTTON_SIZES_CLASSES, BUTTON_VARIANT_CLASSES, BaseModalService, CITY_API_ENDPOINTS, COUNTRY_API_ENDPOINTS, CUSTOMERS_API_ROUTES, ChangePasswordFormComponent, ChangePasswordFormService, CitiesService, CitySelectComponent, ColorPickerComponent, ConfirmationOrderModalComponent, ConfirmationOrderModalService, CorporateBondStatus, CountrySelectComponent, CountryService, CouponApplicability, CouponDiscountType, CouponStatus, CreatorType, CustomerSelectComponent, CustomerService, DEFAULT_STAGE_CONFIG, DOCUMENT_TYPES_OPTIONS, DateInputComponent, DateService, DaySelectorGridComponent, DeleteConfirmationComponent, DeleteConfirmationService, DynamicTableComponent, ERROR_INPUT_CLASSES, EndDateGreaterThanStartValidator, FORM_ERROR_MESSAGES, FeedbackModalComponent, FeedbackModalService, FileType, FileUploadComponent, FileUploadPreviewComponent, FormEditorComponent, FormInputComponent, FormSelectComponent, FormTextareaComponent, GiftBondPurchaseStatus, GiftBondStatus, KONVA_SHAPE_MAPPINGS, LanguageSwitcherComponent, MinTodayValidator, MustMatchValidator, ORDER_DISCOUNT_COLORS, ORDER_ITEM_TYPES_COLORS, ORDER_STATUS_COLORS, OrderBillingInfoComponent, OrderDiscountAppliedComponent, OrderInformationComponent, OrderItemType, OrderItemTypeBadgeComponent, OrderItemsComponent, OrderStatus, OrderStatusBadgeComponent, OrderTransactionDetailsModalComponent, OrderTransactionDetailsModalService, OrderTransactionsComponent, PAYMENT_METHODS_OPTIONS, PERFORMANCES_API_ROUTES, PERFORMANCE_STATUS_COLORS, PERFORMANCE_TICKET_STATUS_COLORS, PRICE_ZONES_API_ROUTES, PRODUCTS_API_ROUTES, PRODUCT_CATEGORIES_API_ROUTES, PRODUCT_TAGS_API_ROUTES, PRODUCT_TYPES_API_ROUTES, PaymentMethod, PerformanceBookingDataService, PerformanceCardComponent, PerformanceCardListComponent, PerformanceMultiSelectComponent, PerformanceSelectComponent, PerformanceService, PerformanceStatus, PerformanceStatusBadgeComponent, PerformanceStepperComponent, PerformanceTicketMapComponent, PerformanceTicketStatus, PerformanceTicketStatusBadgeComponent, PerformancesListEventsService, PriceZoneEventService, PriceZoneFormModalService, PriceZoneSelectComponent, PriceZoneService, ProductCategoryService, ProductMultiSelectComponent, ProductSelectComponent, ProductService, ProductTagService, ProductTypeService, RoomMapElementOrientation, RoomMapElementType, SHOWS_API_ROUTES, SHOW_TYPE_COLORS, STATE_API_ENDPOINTS, SeatSelectionEmptySummaryComponent, SeatSelectionSummaryComponent, SeatSelectionSummaryItemComponent, SelectedDiscountCardType, ShowCardComponent, ShowCardSkeletonComponent, ShowMultiSelectComponent, ShowSelectComponent, ShowService, ShowType, ShowTypeBadgeComponent, ShowsFilterComponent, StateSelectComponent, StatesService, TICKERA_COMPONENTS_CONFIG, TICKET_ELEMENT_TYPES, TICKET_MAP_GRID_SIZE, TICKET_MAP_LAST_TICKETS_LIMIT, TICKET_MAP_TITLE_HEIGHT, TICKET_STATUS_COLORS, TICKET_STATUS_FILLS, TICKET_STATUS_LABELS, TIcketMapProductSelectionComponent, TRANSACTION_STATUS_COLORS, TextExpandableComponent, TickeraTranslocoLoader, 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, VipRechargeModalComponent, VipTransactionType, VipTransactionsTableComponent, ZonePriceItemComponent, ZonePriceListComponent, authInterceptor, drawChairIcon$1 as drawChairIcon, drawHappyFace, drawRoundedRect, drawWheelchairIcon, findElementAtPosition, findTicketAtPosition, formatCitiesResponseToSelect, generateExitScene, generateHallwayScene, generateProductionAreaScene, generateSeatBlockScene, generateSeatBlockTicketScene, generateStageScene, generateStairScene, generateTableScene, generateTableTicketScene, generateUnavailableSpaceScene, generateZoneScene, getBrowserLanguage, getCustomerFullname, getItemTypeIcon, getOrderDiscount, getStoredLanguage, numberToLetter$1 as numberToLetter, parseJsonToFormDataAdvanced, processElementsToRenderData, provideTickeraComponents, resolveLanguage, setStoredLanguage, tintColor, transformImageToFile };
|
|
8827
9023
|
//# sourceMappingURL=tickera-angular-components.mjs.map
|