tickera-angular-components 0.0.1-dev.108 → 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.
|
@@ -568,6 +568,19 @@ const VENUES_API_ROUTES = {
|
|
|
568
568
|
deleteOneImage: (venueId, imageId) => '/venues/' + venueId + '/images/' + imageId,
|
|
569
569
|
};
|
|
570
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
|
+
|
|
571
584
|
const BUTTON_VARIANT_CLASSES = {
|
|
572
585
|
primary: 'btn-primary',
|
|
573
586
|
secondary: 'btn-secondary',
|
|
@@ -759,6 +772,20 @@ var PaymentMethod;
|
|
|
759
772
|
PaymentMethod["MERCADO_PAGO"] = "mercado_pago";
|
|
760
773
|
})(PaymentMethod || (PaymentMethod = {}));
|
|
761
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
|
+
|
|
762
789
|
const PAYMENT_METHODS_OPTIONS = [
|
|
763
790
|
{ value: 'credit_card', label: 'paymentMethod.creditCard' },
|
|
764
791
|
{ value: 'debit_card', label: 'paymentMethod.debitCard' },
|
|
@@ -3918,6 +3945,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
3918
3945
|
args: [{ providedIn: 'root' }]
|
|
3919
3946
|
}] });
|
|
3920
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
|
+
|
|
3921
4001
|
const authInterceptor = (req, next) => {
|
|
3922
4002
|
const platformId = inject(PLATFORM_ID);
|
|
3923
4003
|
const config = inject(TICKERA_COMPONENTS_CONFIG);
|
|
@@ -8827,11 +8907,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
8827
8907
|
args: [{ required: true }]
|
|
8828
8908
|
}] } });
|
|
8829
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
|
+
|
|
8830
9016
|
// Config
|
|
8831
9017
|
|
|
8832
9018
|
/**
|
|
8833
9019
|
* Generated bundle index. Do not edit.
|
|
8834
9020
|
*/
|
|
8835
9021
|
|
|
8836
|
-
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 };
|
|
8837
9023
|
//# sourceMappingURL=tickera-angular-components.mjs.map
|