valtech-components 4.0.146 → 4.0.148

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.
@@ -2,10 +2,11 @@ import { Component, computed, effect, inject, input, signal } from '@angular/cor
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { IonButton, IonIcon, IonSpinner } from '@ionic/angular/standalone';
4
4
  import { addIcons } from 'ionicons';
5
- import { shareOutline } from 'ionicons/icons';
5
+ import { downloadOutline, shareOutline } from 'ionicons/icons';
6
6
  import { QrCodeComponent } from '../../atoms/qr-code/qr-code.component';
7
7
  import { QrGeneratorService } from '../../../services/qr-generator/qr-generator.service';
8
8
  import { I18nService } from '../../../services/i18n';
9
+ import { ToastService } from '../../../services/toast.service';
9
10
  import { TicketCardImageService } from '../../../services/ticket-card-image/ticket-card-image.service';
10
11
  import { TICKET_CARD_I18N } from './ticket-card.i18n';
11
12
  import * as i0 from "@angular/core";
@@ -34,12 +35,15 @@ export class TicketCardComponent {
34
35
  this.qrService = inject(QrGeneratorService);
35
36
  this.ticketCardImageService = inject(TicketCardImageService);
36
37
  this.i18n = inject(I18nService);
38
+ this.toast = inject(ToastService);
37
39
  /** QR generado (null mientras carga o si falló). */
38
40
  this.qr = signal(null);
39
41
  /** Falló la generación del QR → fallback al token corto. */
40
42
  this.failed = signal(false);
41
43
  /** True mientras se genera y comparte la tarjeta branded. */
42
44
  this.sharing = signal(false);
45
+ /** True mientras se genera y descarga la tarjeta branded. */
46
+ this.downloading = signal(false);
43
47
  this.status = computed(() => this.props().status ?? 'neutral');
44
48
  this.tokenShort = computed(() => {
45
49
  const tk = this.props().qrToken ?? '';
@@ -64,7 +68,7 @@ export class TicketCardComponent {
64
68
  }
65
69
  return '';
66
70
  });
67
- addIcons({ shareOutline });
71
+ addIcons({ shareOutline, downloadOutline });
68
72
  this.i18n.registerDefaults('TicketCard', TICKET_CARD_I18N);
69
73
  // Regenera el QR cuando cambia el token o el tamaño.
70
74
  effect(() => {
@@ -111,27 +115,69 @@ export class TicketCardComponent {
111
115
  const p = this.props();
112
116
  this.sharing.set(true);
113
117
  try {
114
- await this.ticketCardImageService.share({
115
- qrDataUrl: q.dataUrl,
116
- logoUrl: p.shareLogoUrl,
117
- brandColor: p.shareBrandColor,
118
- brandColorTo: p.shareBrandColorTo,
119
- brandName: p.shareBrandName,
120
- folio: p.folio,
121
- folioLabel: p.shareFolioLabel,
122
- buyerName: p.buyerName,
123
- }, p.title || p.shareBrandName);
118
+ const config = this.buildImageConfig(q, p);
119
+ const shared = await this.ticketCardImageService.share(config, p.title || p.shareBrandName);
120
+ if (!shared) {
121
+ await this.copyToClipboard(p);
122
+ }
124
123
  }
125
124
  finally {
126
125
  this.sharing.set(false);
127
126
  }
128
127
  }
128
+ async downloadCard() {
129
+ const q = this.qr();
130
+ if (!q)
131
+ return;
132
+ const p = this.props();
133
+ this.downloading.set(true);
134
+ try {
135
+ await this.triggerDownload(this.buildImageConfig(q, p), p);
136
+ }
137
+ finally {
138
+ this.downloading.set(false);
139
+ }
140
+ }
141
+ buildImageConfig(q, p) {
142
+ return {
143
+ qrDataUrl: q.dataUrl,
144
+ logoUrl: p.shareLogoUrl,
145
+ brandColor: p.shareBrandColor,
146
+ brandColorTo: p.shareBrandColorTo,
147
+ brandName: p.shareBrandName,
148
+ folio: p.folio,
149
+ folioLabel: p.shareFolioLabel,
150
+ buyerName: p.buyerName,
151
+ };
152
+ }
153
+ async copyToClipboard(p) {
154
+ const text = ((p.shareUrl ?? this.folioText()) || p.shareBrandName) ?? '';
155
+ const isUrl = !!p.shareUrl;
156
+ try {
157
+ await navigator.clipboard.writeText(text);
158
+ this.toast.show({ message: this.t(isUrl ? 'copiedUrl' : 'copied'), duration: 2000 });
159
+ }
160
+ catch {
161
+ // clipboard no disponible — silencioso
162
+ }
163
+ }
164
+ async triggerDownload(config, p) {
165
+ const blob = await this.ticketCardImageService.generate(config);
166
+ const url = URL.createObjectURL(blob);
167
+ const a = document.createElement('a');
168
+ a.href = url;
169
+ a.download = `entrada-${p.folio ?? 'bingo'}.png`;
170
+ document.body.appendChild(a);
171
+ a.click();
172
+ document.body.removeChild(a);
173
+ URL.revokeObjectURL(url);
174
+ }
129
175
  qrProps(q) {
130
176
  const p = this.props();
131
177
  return {
132
178
  qr: q,
133
179
  displaySize: p.qrSize ?? 200,
134
- showDownload: p.showDownload ?? false,
180
+ showDownload: false,
135
181
  showShare: false,
136
182
  showBorder: false,
137
183
  alt: this.folioText() || 'QR',
@@ -171,6 +217,12 @@ export class TicketCardComponent {
171
217
  }
172
218
  </div>
173
219
 
220
+ @if (props().showDownload && qr()) {
221
+ <ion-button fill="clear" size="small" [disabled]="downloading()" (click)="downloadCard()">
222
+ <ion-icon name="download-outline" slot="start" />
223
+ {{ props().downloadLabel || t('download') }}
224
+ </ion-button>
225
+ }
174
226
  @if (props().showShare && qr()) {
175
227
  <ion-button fill="clear" size="small" [disabled]="sharing()" (click)="shareCard()">
176
228
  <ion-icon name="share-outline" slot="start" />
@@ -212,6 +264,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
212
264
  }
213
265
  </div>
214
266
 
267
+ @if (props().showDownload && qr()) {
268
+ <ion-button fill="clear" size="small" [disabled]="downloading()" (click)="downloadCard()">
269
+ <ion-icon name="download-outline" slot="start" />
270
+ {{ props().downloadLabel || t('download') }}
271
+ </ion-button>
272
+ }
215
273
  @if (props().showShare && qr()) {
216
274
  <ion-button fill="clear" size="small" [disabled]="sharing()" (click)="shareCard()">
217
275
  <ion-icon name="share-outline" slot="start" />
@@ -221,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
221
279
  </div>
222
280
  `, styles: ["@charset \"UTF-8\";:host{display:block}.ticket-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px;border:1px solid var(--ion-color-light-shade, #e0e0e0);border-radius:16px;background:var(--ion-card-background, #ffffff);max-width:320px;margin:0 auto}.ticket-card__title{font-size:1rem;font-weight:700;color:var(--ion-color-dark);text-align:center}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:200px}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:200px;height:200px}.ticket-card__qr-fallback{font-family:monospace;font-size:.75rem;color:var(--ion-color-medium);word-break:break-all;text-align:center;padding:16px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.ticket-card__folio{font-size:1rem;font-weight:700;color:var(--ion-color-dark)}.ticket-card__buyer{font-size:.875rem;color:var(--ion-color-medium)}.ticket-card__badge{margin-top:4px;font-size:.75rem;font-weight:600;padding:3px 12px;border-radius:999px;background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff);white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #2dd36f);color:var(--ion-color-success-contrast, #fff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff)}\n"] }]
223
281
  }], ctorParameters: () => [] });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXZHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUE2Q0gsTUFBTSxPQUFPLG1CQUFtQjtJQWU5QjtRQWRBLHlDQUF5QztRQUNoQyxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztRQUU5QyxjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkMsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDeEQsU0FBSSxH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RUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJO1NBQ2hELENBQUM7SUFDSixDQUFDOytHQTlIVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4TUF4Q3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNULHM5Q0F0Q1MsWUFBWSwrQkFBRSxTQUFTLG9QQUFFLE9BQU8sMkpBQUUsVUFBVSx5R0FBRSxlQUFlOzs0RkF5QzVELG1CQUFtQjtrQkE1Qy9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxZQUM5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IHNoYXJlT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgUXJDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRckNvZGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3FyLWNvZGUvdHlwZXMnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFFyUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBUaWNrZXRDYXJkSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGlja2V0LWNhcmQtaW1hZ2UvdGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkTWV0YWRhdGEsIFRpY2tldENhcmRTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRJQ0tFVF9DQVJEX0kxOE4gfSBmcm9tICcuL3RpY2tldC1jYXJkLmkxOG4nO1xuXG4vKipcbiAqIHZhbC10aWNrZXQtY2FyZFxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGEgZGUgYmluZ286IG11ZXN0cmEgZWwgUVIgZXNjYW5lYWJsZVxuICogKGdlbmVyYWRvIGRlbCBgcXJUb2tlbmAgb3BhY28gZmlybWFkbyB2w61hIGBRckdlbmVyYXRvclNlcnZpY2VgKSwgZWwgZm9saW8sIGVsXG4gKiBub21icmUgZGVsIGNvbXByYWRvciAoc2kgaGF5KSB5IHVuIGJhZGdlIGRlIGVzdGFkbyAodmVuZGlkYSAvIGNhbmplYWRhKS5cbiAqXG4gKiBFcyBsYSBwaWV6YSBxdWUgZWwgdmVuZGVkb3IgbGUgZW50cmVnYSBhbCBjb21wcmFkb3IgdHJhcyBsYSB2ZW50YSB5IHF1ZSBsYVxuICogdGFxdWlsbGEgZXNjYW5lYSBwYXJhIGNhbmplYXIuIE9iamVjdC1maXJzdCAoYGlucHV0KClgIHNpZ25hbCksIGkxOG5cbiAqIGF1dG8tcmVnaXN0cmFkbyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuIEVzdGFkb3MgbmVnYXRpdm9zL25ldXRyb3MgZW4gZ3Jpc1xuICogbXV0ZWQgKGNvbnZlbmNpw7NuIGRlbCBmYWN0b3J5IOKAlCBzaW4gcm9qbyBkZSBhbGFybWEpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXRpY2tldC1jYXJkIFtwcm9wc109XCJ7IHFyVG9rZW46IHRpY2tldC5xclRva2VuLCBmb2xpbzogdGlja2V0LmZvbGlvLFxuICogICBidXllck5hbWU6IHRpY2tldC5jb21wcmFkb3JOb21icmUsIHN0YXR1czogJ3NvbGQnLCBzaG93U2hhcmU6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRpY2tldC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBRckNvZGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZFwiPlxuICAgICAgQGlmIChwcm9wcygpLnRpdGxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fdGl0bGVcIj57eyBwcm9wcygpLnRpdGxlIH19PC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXJcIj5cbiAgICAgICAgQGlmIChxcigpOyBhcyBxKSB7XG4gICAgICAgICAgPHZhbC1xci1jb2RlIFtwcm9wc109XCJxclByb3BzKHEpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAoZmFpbGVkKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWZhbGxiYWNrXCI+e3sgdG9rZW5TaG9ydCgpIH19PC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXItbG9hZGluZ1wiPlxuICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGFyaWEtbGFiZWw9XCJHZW5lcmFuZG8gUVJcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19tZXRhXCI+XG4gICAgICAgIEBpZiAoZm9saW9UZXh0KCk7IGFzIGYpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2ZvbGlvXCI+e3sgZiB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocHJvcHMoKS5idXllck5hbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2J1eWVyXCI+e3sgcHJvcHMoKS5idXllck5hbWUgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN0YXR1c0xhYmVsKCk7IGFzIHMpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpY2tldC1jYXJkX19iYWRnZVwiIFthdHRyLmRhdGEtc3RhdHVzXT1cInN0YXR1cygpXCI+e3sgcyB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAocHJvcHMoKS5zaG93U2hhcmUgJiYgcXIoKSkge1xuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiBbZGlzYWJsZWRdPVwic2hhcmluZygpXCIgKGNsaWNrKT1cInNoYXJlQ2FyZCgpXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICB7eyBwcm9wcygpLnNoYXJlTGFiZWwgfHwgdCgnc2hhcmUnKSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RpY2tldC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRpY2tldENhcmRDb21wb25lbnQge1xuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0IGRlbCBjb21wb25lbnRlLiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPFRpY2tldENhcmRNZXRhZGF0YT4oKTtcblxuICBwcml2YXRlIHFyU2VydmljZSA9IGluamVjdChRckdlbmVyYXRvclNlcnZpY2UpO1xuICBwcml2YXRlIHRpY2tldENhcmRJbWFnZVNlcnZpY2UgPSBpbmplY3QoVGlja2V0Q2FyZEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqIFFSIGdlbmVyYWRvIChudWxsIG1pZW50cmFzIGNhcmdhIG8gc2kgZmFsbMOzKS4gKi9cbiAgcmVhZG9ubHkgcXIgPSBzaWduYWw8UXJSZXN1bHQgfCBudWxsPihudWxsKTtcbiAgLyoqIEZhbGzDsyBsYSBnZW5lcmFjacOzbiBkZWwgUVIg4oaSIGZhbGxiYWNrIGFsIHRva2VuIGNvcnRvLiAqL1xuICByZWFkb25seSBmYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuICAvKiogVHJ1ZSBtaWVudHJhcyBzZSBnZW5lcmEgeSBjb21wYXJ0ZSBsYSB0YXJqZXRhIGJyYW5kZWQuICovXG4gIHJlYWRvbmx5IHNoYXJpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgc2hhcmVPdXRsaW5lIH0pO1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdUaWNrZXRDYXJkJywgVElDS0VUX0NBUkRfSTE4Tik7XG5cbiAgICAvLyBSZWdlbmVyYSBlbCBRUiBjdWFuZG8gY2FtYmlhIGVsIHRva2VuIG8gZWwgdGFtYcOxby5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wcm9wcygpLnFyVG9rZW47XG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzKCkucXJTaXplID8/IDIwMDtcbiAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZvaWQgdGhpcy5nZW5lcmF0ZSh0b2tlbiwgc2l6ZSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGUoZGF0YTogc3RyaW5nLCBzaXplOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZhaWxlZC5zZXQoZmFsc2UpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZSh7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICBoZWlnaHQ6IHNpemUsXG4gICAgICAgIG1hcmdpbjogMSxcbiAgICAgICAgZG90c1N0eWxlOiAnc3F1YXJlJyxcbiAgICAgICAgZG90c0NvbG9yOiAnIzAwMDAwMCcsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbDogJ00nLFxuICAgICAgICBmb3JtYXQ6ICdwbmcnLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnFyLnNldChyZXN1bHQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2luIHRvYXN0L3Rocm93IOKAlCBlbCBmYWxsYmFjayBtdWVzdHJhIGVsIHRva2VuIGNvcnRvLiBFbCBjb25zdW1lclxuICAgICAgLy8gc2lndWUgcHVkaWVuZG8gY2FuamVhciB0aXBlYW5kby9lc2NhbmVhbmRvIHNpIGhhY2UgZmFsdGEuXG4gICAgICB0aGlzLnFyLnNldChudWxsKTtcbiAgICAgIHRoaXMuZmFpbGVkLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnVGlja2V0Q2FyZCcpO1xuICB9XG5cbiAgcmVhZG9ubHkgc3RhdHVzID0gY29tcHV0ZWQ8VGlja2V0Q2FyZFN0YXR1cz4oKCkgPT4gdGhpcy5wcm9wcygpLnN0YXR1cyA/PyAnbmV1dHJhbCcpO1xuXG4gIHJlYWRvbmx5IHRva2VuU2hvcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGsgPSB0aGlzLnByb3BzKCkucXJUb2tlbiA/PyAnJztcbiAgICByZXR1cm4gdGsubGVuZ3RoID4gMTYgPyBgJHt0ay5zbGljZSgwLCAxNil94oCmYCA6IHRrO1xuICB9KTtcblxuICByZWFkb25seSBmb2xpb1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBmb2xpbyA9IHRoaXMucHJvcHMoKS5mb2xpbztcbiAgICBpZiAoZm9saW8gPT09IHVuZGVmaW5lZCB8fCBmb2xpbyA9PT0gbnVsbCB8fCBmb2xpbyA9PT0gJycpIHJldHVybiAnJztcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMucHJvcHMoKS5mb2xpb0xhYmVsID8/IHRoaXMudCgnZm9saW8nKTtcbiAgICByZXR1cm4gYCR7bGFiZWx9ICMke2ZvbGlvfWA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHN0YXR1c0xhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXMoKTtcbiAgICBpZiAoc3RhdHVzID09PSAnc29sZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzKCkuc3RhdHVzU29sZExhYmVsID8/IHRoaXMudCgnc3RhdHVzU29sZCcpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSAnY2hlY2tlZEluJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNDaGVja2VkSW5MYWJlbCA/PyB0aGlzLnQoJ3N0YXR1c0NoZWNrZWRJbicpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIGFzeW5jIHNoYXJlQ2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xcigpO1xuICAgIGlmICghcSkgcmV0dXJuO1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzKCk7XG4gICAgdGhpcy5zaGFyaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLnNoYXJlKFxuICAgICAgICB7XG4gICAgICAgICAgcXJEYXRhVXJsOiBxLmRhdGFVcmwsXG4gICAgICAgICAgbG9nb1VybDogcC5zaGFyZUxvZ29VcmwsXG4gICAgICAgICAgYnJhbmRDb2xvcjogcC5zaGFyZUJyYW5kQ29sb3IsXG4gICAgICAgICAgYnJhbmRDb2xvclRvOiBwLnNoYXJlQnJhbmRDb2xvclRvLFxuICAgICAgICAgIGJyYW5kTmFtZTogcC5zaGFyZUJyYW5kTmFtZSxcbiAgICAgICAgICBmb2xpbzogcC5mb2xpbyxcbiAgICAgICAgICBmb2xpb0xhYmVsOiBwLnNoYXJlRm9saW9MYWJlbCxcbiAgICAgICAgICBidXllck5hbWU6IHAuYnV5ZXJOYW1lLFxuICAgICAgICB9LFxuICAgICAgICBwLnRpdGxlIHx8IHAuc2hhcmVCcmFuZE5hbWVcbiAgICAgICk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2hhcmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHFyUHJvcHMocTogUXJSZXN1bHQpOiBRckNvZGVNZXRhZGF0YSB7XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgcXI6IHEsXG4gICAgICBkaXNwbGF5U2l6ZTogcC5xclNpemUgPz8gMjAwLFxuICAgICAgc2hvd0Rvd25sb2FkOiBwLnNob3dEb3dubG9hZCA/PyBmYWxzZSxcbiAgICAgIHNob3dTaGFyZTogZmFsc2UsXG4gICAgICBzaG93Qm9yZGVyOiBmYWxzZSxcbiAgICAgIGFsdDogdGhpcy5mb2xpb1RleHQoKSB8fCAnUVInLFxuICAgICAgZG93bmxvYWRMYWJlbDogcC5kb3dubG9hZExhYmVsID8/IHRoaXMudCgnZG93bmxvYWQnKSxcbiAgICAgIHNoYXJlTGFiZWw6IHRoaXMudCgnc2hhcmUnKSxcbiAgICAgIHNoYXJlVGl0bGU6IHAudGl0bGUgfHwgdGhpcy5mb2xpb1RleHQoKSB8fCAnUVInLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQW1ESCxNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QjtRQWpCQSx5Q0FBeUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXNCLENBQUM7UUFFOUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FB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QUUsSUFBSSxJQUFJO1NBQ2hELENBQUM7SUFDSixDQUFDOytHQTVLVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4TUE5Q3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNULHM5Q0E1Q1MsWUFBWSwrQkFBRSxTQUFTLG9QQUFFLE9BQU8sMkpBQUUsVUFBVSx5R0FBRSxlQUFlOzs0RkErQzVELG1CQUFtQjtrQkFsRC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQyxZQUM5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGRvd25sb2FkT3V0bGluZSwgc2hhcmVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBRckNvZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvcXItY29kZS90eXBlcyc7XG5pbXBvcnQgeyBRckdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvcXItZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlja2V0Q2FyZEltYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RpY2tldC1jYXJkLWltYWdlL3RpY2tldC1jYXJkLWltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlja2V0Q2FyZE1ldGFkYXRhLCBUaWNrZXRDYXJkU3RhdHVzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUSUNLRVRfQ0FSRF9JMThOIH0gZnJvbSAnLi90aWNrZXQtY2FyZC5pMThuJztcblxuLyoqXG4gKiB2YWwtdGlja2V0LWNhcmRcbiAqXG4gKiBUYXJqZXRhIHByZXNlbnRhY2lvbmFsIGRlIHVuYSBlbnRyYWRhIGRlIGJpbmdvOiBtdWVzdHJhIGVsIFFSIGVzY2FuZWFibGVcbiAqIChnZW5lcmFkbyBkZWwgYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8gdsOtYSBgUXJHZW5lcmF0b3JTZXJ2aWNlYCksIGVsIGZvbGlvLCBlbFxuICogbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1biBiYWRnZSBkZSBlc3RhZG8gKHZlbmRpZGEgLyBjYW5qZWFkYSkuXG4gKlxuICogRXMgbGEgcGllemEgcXVlIGVsIHZlbmRlZG9yIGxlIGVudHJlZ2EgYWwgY29tcHJhZG9yIHRyYXMgbGEgdmVudGEgeSBxdWUgbGFcbiAqIHRhcXVpbGxhIGVzY2FuZWEgcGFyYSBjYW5qZWFyLiBPYmplY3QtZmlyc3QgKGBpbnB1dCgpYCBzaWduYWwpLCBpMThuXG4gKiBhdXRvLXJlZ2lzdHJhZG8gKG5hbWVzcGFjZSBgVGlja2V0Q2FyZGApLiBFc3RhZG9zIG5lZ2F0aXZvcy9uZXV0cm9zIGVuIGdyaXNcbiAqIG11dGVkIChjb252ZW5jacOzbiBkZWwgZmFjdG9yeSDigJQgc2luIHJvam8gZGUgYWxhcm1hKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC10aWNrZXQtY2FyZCBbcHJvcHNdPVwieyBxclRva2VuOiB0aWNrZXQucXJUb2tlbiwgZm9saW86IHRpY2tldC5mb2xpbyxcbiAqICAgYnV5ZXJOYW1lOiB0aWNrZXQuY29tcHJhZG9yTm9tYnJlLCBzdGF0dXM6ICdzb2xkJywgc2hvd1NoYXJlOiB0cnVlIH1cIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aWNrZXQtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgUXJDb2RlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRcIj5cbiAgICAgIEBpZiAocHJvcHMoKS50aXRsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3RpdGxlXCI+e3sgcHJvcHMoKS50aXRsZSB9fTwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyXCI+XG4gICAgICAgIEBpZiAocXIoKTsgYXMgcSkge1xuICAgICAgICAgIDx2YWwtcXItY29kZSBbcHJvcHNdPVwicXJQcm9wcyhxKVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGZhaWxlZCgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19xci1mYWxsYmFja1wiPnt7IHRva2VuU2hvcnQoKSB9fTwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBhcmlhLWxhYmVsPVwiR2VuZXJhbmRvIFFSXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fbWV0YVwiPlxuICAgICAgICBAaWYgKGZvbGlvVGV4dCgpOyBhcyBmKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19mb2xpb1wiPnt7IGYgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHByb3BzKCkuYnV5ZXJOYW1lKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19idXllclwiPnt7IHByb3BzKCkuYnV5ZXJOYW1lIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzdGF0dXNMYWJlbCgpOyBhcyBzKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYmFkZ2VcIiBbYXR0ci5kYXRhLXN0YXR1c109XCJzdGF0dXMoKVwiPnt7IHMgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKHByb3BzKCkuc2hvd0Rvd25sb2FkICYmIHFyKCkpIHtcbiAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgW2Rpc2FibGVkXT1cImRvd25sb2FkaW5nKClcIiAoY2xpY2spPVwiZG93bmxvYWRDYXJkKClcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgIHt7IHByb3BzKCkuZG93bmxvYWRMYWJlbCB8fCB0KCdkb3dubG9hZCcpIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAocHJvcHMoKS5zaG93U2hhcmUgJiYgcXIoKSkge1xuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiBbZGlzYWJsZWRdPVwic2hhcmluZygpXCIgKGNsaWNrKT1cInNoYXJlQ2FyZCgpXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICB7eyBwcm9wcygpLnNoYXJlTGFiZWwgfHwgdCgnc2hhcmUnKSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RpY2tldC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRpY2tldENhcmRDb21wb25lbnQge1xuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0IGRlbCBjb21wb25lbnRlLiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPFRpY2tldENhcmRNZXRhZGF0YT4oKTtcblxuICBwcml2YXRlIHFyU2VydmljZSA9IGluamVjdChRckdlbmVyYXRvclNlcnZpY2UpO1xuICBwcml2YXRlIHRpY2tldENhcmRJbWFnZVNlcnZpY2UgPSBpbmplY3QoVGlja2V0Q2FyZEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICAvKiogUVIgZ2VuZXJhZG8gKG51bGwgbWllbnRyYXMgY2FyZ2EgbyBzaSBmYWxsw7MpLiAqL1xuICByZWFkb25seSBxciA9IHNpZ25hbDxRclJlc3VsdCB8IG51bGw+KG51bGwpO1xuICAvKiogRmFsbMOzIGxhIGdlbmVyYWNpw7NuIGRlbCBRUiDihpIgZmFsbGJhY2sgYWwgdG9rZW4gY29ydG8uICovXG4gIHJlYWRvbmx5IGZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGNvbXBhcnRlIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgc2hhcmluZyA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGRlc2NhcmdhIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgc2hhcmVPdXRsaW5lLCBkb3dubG9hZE91dGxpbmUgfSk7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ1RpY2tldENhcmQnLCBUSUNLRVRfQ0FSRF9JMThOKTtcblxuICAgIC8vIFJlZ2VuZXJhIGVsIFFSIGN1YW5kbyBjYW1iaWEgZWwgdG9rZW4gbyBlbCB0YW1hw7FvLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnByb3BzKCkucXJUb2tlbjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMoKS5xclNpemUgPz8gMjAwO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgdGhpcy5xci5zZXQobnVsbCk7XG4gICAgICAgICAgdGhpcy5mYWlsZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLmdlbmVyYXRlKHRva2VuLCBzaXplKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZShkYXRhOiBzdHJpbmcsIHNpemU6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLmdlbmVyYXRlKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgbWFyZ2luOiAxLFxuICAgICAgICBkb3RzU3R5bGU6ICdzcXVhcmUnLFxuICAgICAgICBkb3RzQ29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiAnTScsXG4gICAgICAgIGZvcm1hdDogJ3BuZycsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucXIuc2V0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaW4gdG9hc3QvdGhyb3cg4oCUIGVsIGZhbGxiYWNrIG11ZXN0cmEgZWwgdG9rZW4gY29ydG8uIEVsIGNvbnN1bWVyXG4gICAgICAvLyBzaWd1ZSBwdWRpZW5kbyBjYW5qZWFyIHRpcGVhbmRvL2VzY2FuZWFuZG8gc2kgaGFjZSBmYWx0YS5cbiAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5mYWlsZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdUaWNrZXRDYXJkJyk7XG4gIH1cblxuICByZWFkb25seSBzdGF0dXMgPSBjb21wdXRlZDxUaWNrZXRDYXJkU3RhdHVzPigoKSA9PiB0aGlzLnByb3BzKCkuc3RhdHVzID8/ICduZXV0cmFsJyk7XG5cbiAgcmVhZG9ubHkgdG9rZW5TaG9ydCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0ayA9IHRoaXMucHJvcHMoKS5xclRva2VuID8/ICcnO1xuICAgIHJldHVybiB0ay5sZW5ndGggPiAxNiA/IGAke3RrLnNsaWNlKDAsIDE2KX3igKZgIDogdGs7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvbGlvVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGZvbGlvID0gdGhpcy5wcm9wcygpLmZvbGlvO1xuICAgIGlmIChmb2xpbyA9PT0gdW5kZWZpbmVkIHx8IGZvbGlvID09PSBudWxsIHx8IGZvbGlvID09PSAnJykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5wcm9wcygpLmZvbGlvTGFiZWwgPz8gdGhpcy50KCdmb2xpbycpO1xuICAgIHJldHVybiBgJHtsYWJlbH0gIyR7Zm9saW99YDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc3RhdHVzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1cygpO1xuICAgIGlmIChzdGF0dXMgPT09ICdzb2xkJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNTb2xkTGFiZWwgPz8gdGhpcy50KCdzdGF0dXNTb2xkJyk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdjaGVja2VkSW4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcygpLnN0YXR1c0NoZWNrZWRJbkxhYmVsID8/IHRoaXMudCgnc3RhdHVzQ2hlY2tlZEluJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgYXN5bmMgc2hhcmVDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLnNoYXJpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmJ1aWxkSW1hZ2VDb25maWcocSwgcCk7XG4gICAgICBjb25zdCBzaGFyZWQgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2Uuc2hhcmUoY29uZmlnLCBwLnRpdGxlIHx8IHAuc2hhcmVCcmFuZE5hbWUpO1xuICAgICAgaWYgKCFzaGFyZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQocCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2hhcmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkQ2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xcigpO1xuICAgIGlmICghcSkgcmV0dXJuO1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzKCk7XG4gICAgdGhpcy5kb3dubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckRvd25sb2FkKHRoaXMuYnVpbGRJbWFnZUNvbmZpZyhxLCBwKSwgcCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZG93bmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSW1hZ2VDb25maWcocTogUXJSZXN1bHQsIHA6IFRpY2tldENhcmRNZXRhZGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICBxckRhdGFVcmw6IHEuZGF0YVVybCxcbiAgICAgIGxvZ29Vcmw6IHAuc2hhcmVMb2dvVXJsLFxuICAgICAgYnJhbmRDb2xvcjogcC5zaGFyZUJyYW5kQ29sb3IsXG4gICAgICBicmFuZENvbG9yVG86IHAuc2hhcmVCcmFuZENvbG9yVG8sXG4gICAgICBicmFuZE5hbWU6IHAuc2hhcmVCcmFuZE5hbWUsXG4gICAgICBmb2xpbzogcC5mb2xpbyxcbiAgICAgIGZvbGlvTGFiZWw6IHAuc2hhcmVGb2xpb0xhYmVsLFxuICAgICAgYnV5ZXJOYW1lOiBwLmJ1eWVyTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb3B5VG9DbGlwYm9hcmQocDogVGlja2V0Q2FyZE1ldGFkYXRhKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGV4dCA9ICgocC5zaGFyZVVybCA/PyB0aGlzLmZvbGlvVGV4dCgpKSB8fCBwLnNoYXJlQnJhbmROYW1lKSA/PyAnJztcbiAgICBjb25zdCBpc1VybCA9ICEhcC5zaGFyZVVybDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7XG4gICAgICB0aGlzLnRvYXN0LnNob3coeyBtZXNzYWdlOiB0aGlzLnQoaXNVcmwgPyAnY29waWVkVXJsJyA6ICdjb3BpZWQnKSwgZHVyYXRpb246IDIwMDAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgc2lsZW5jaW9zb1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJpZ2dlckRvd25sb2FkKFxuICAgIGNvbmZpZzogUGFyYW1ldGVyczx0eXBlb2YgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlPlswXSxcbiAgICBwOiBUaWNrZXRDYXJkTWV0YWRhdGFcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZShjb25maWcpO1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS5kb3dubG9hZCA9IGBlbnRyYWRhLSR7cC5mb2xpbyA/PyAnYmluZ28nfS5wbmdgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgcXJQcm9wcyhxOiBRclJlc3VsdCk6IFFyQ29kZU1ldGFkYXRhIHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHJldHVybiB7XG4gICAgICBxcjogcSxcbiAgICAgIGRpc3BsYXlTaXplOiBwLnFyU2l6ZSA/PyAyMDAsXG4gICAgICBzaG93RG93bmxvYWQ6IGZhbHNlLFxuICAgICAgc2hvd1NoYXJlOiBmYWxzZSxcbiAgICAgIHNob3dCb3JkZXI6IGZhbHNlLFxuICAgICAgYWx0OiB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgICBkb3dubG9hZExhYmVsOiBwLmRvd25sb2FkTGFiZWwgPz8gdGhpcy50KCdkb3dubG9hZCcpLFxuICAgICAgc2hhcmVMYWJlbDogdGhpcy50KCdzaGFyZScpLFxuICAgICAgc2hhcmVUaXRsZTogcC50aXRsZSB8fCB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -11,6 +11,8 @@ export const TICKET_CARD_I18N = {
11
11
  statusCheckedIn: 'Canjeada',
12
12
  download: 'Descargar',
13
13
  share: 'Compartir',
14
+ copied: 'Copiado',
15
+ copiedUrl: 'Link copiado',
14
16
  },
15
17
  en: {
16
18
  folio: 'Folio',
@@ -18,6 +20,8 @@ export const TICKET_CARD_I18N = {
18
20
  statusCheckedIn: 'Checked in',
19
21
  download: 'Download',
20
22
  share: 'Share',
23
+ copied: 'Copied',
24
+ copiedUrl: 'Link copied',
21
25
  },
22
26
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGlja2V0LWNhcmQvdGlja2V0LWNhcmQuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxPQUFPO1FBQ2QsVUFBVSxFQUFFLFNBQVM7UUFDckIsZUFBZSxFQUFFLFVBQVU7UUFDM0IsUUFBUSxFQUFFLFdBQVc7UUFDckIsS0FBSyxFQUFFLFdBQVc7S0FDbkI7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLEtBQUssRUFBRSxPQUFPO0tBQ2Y7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZGVsIGB2YWwtdGlja2V0LWNhcmRgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuIGVsXG4gKiBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkg4oCUIGVsIGNvbnN1bWVyIE5VTkNBIHRpZW5lXG4gKiBxdWUgcmVnaXN0cmFybG9zLiBPdmVycmlkZSBwYXNhbmRvIGxvcyBsYWJlbHMgcG9yIHByb3BzIG8gcmVnaXN0cmFuZG8gZWxcbiAqIG5hbWVzcGFjZSBhbnRlcyBkZSBtb250YXIgZWwgY29tcG9uZW50ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJQ0tFVF9DQVJEX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgZm9saW86ICdGb2xpbycsXG4gICAgc3RhdHVzU29sZDogJ1ZlbmRpZGEnLFxuICAgIHN0YXR1c0NoZWNrZWRJbjogJ0NhbmplYWRhJyxcbiAgICBkb3dubG9hZDogJ0Rlc2NhcmdhcicsXG4gICAgc2hhcmU6ICdDb21wYXJ0aXInLFxuICB9LFxuICBlbjoge1xuICAgIGZvbGlvOiAnRm9saW8nLFxuICAgIHN0YXR1c1NvbGQ6ICdTb2xkJyxcbiAgICBzdGF0dXNDaGVja2VkSW46ICdDaGVja2VkIGluJyxcbiAgICBkb3dubG9hZDogJ0Rvd25sb2FkJyxcbiAgICBzaGFyZTogJ1NoYXJlJyxcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGlja2V0LWNhcmQvdGlja2V0LWNhcmQuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxPQUFPO1FBQ2QsVUFBVSxFQUFFLFNBQVM7UUFDckIsZUFBZSxFQUFFLFVBQVU7UUFDM0IsUUFBUSxFQUFFLFdBQVc7UUFDckIsS0FBSyxFQUFFLFdBQVc7UUFDbEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsU0FBUyxFQUFFLGNBQWM7S0FDMUI7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLFFBQVE7UUFDaEIsU0FBUyxFQUFFLGFBQWE7S0FDekI7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZGVsIGB2YWwtdGlja2V0LWNhcmRgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuIGVsXG4gKiBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkg4oCUIGVsIGNvbnN1bWVyIE5VTkNBIHRpZW5lXG4gKiBxdWUgcmVnaXN0cmFybG9zLiBPdmVycmlkZSBwYXNhbmRvIGxvcyBsYWJlbHMgcG9yIHByb3BzIG8gcmVnaXN0cmFuZG8gZWxcbiAqIG5hbWVzcGFjZSBhbnRlcyBkZSBtb250YXIgZWwgY29tcG9uZW50ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJQ0tFVF9DQVJEX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgZm9saW86ICdGb2xpbycsXG4gICAgc3RhdHVzU29sZDogJ1ZlbmRpZGEnLFxuICAgIHN0YXR1c0NoZWNrZWRJbjogJ0NhbmplYWRhJyxcbiAgICBkb3dubG9hZDogJ0Rlc2NhcmdhcicsXG4gICAgc2hhcmU6ICdDb21wYXJ0aXInLFxuICAgIGNvcGllZDogJ0NvcGlhZG8nLFxuICAgIGNvcGllZFVybDogJ0xpbmsgY29waWFkbycsXG4gIH0sXG4gIGVuOiB7XG4gICAgZm9saW86ICdGb2xpbycsXG4gICAgc3RhdHVzU29sZDogJ1NvbGQnLFxuICAgIHN0YXR1c0NoZWNrZWRJbjogJ0NoZWNrZWQgaW4nLFxuICAgIGRvd25sb2FkOiAnRG93bmxvYWQnLFxuICAgIHNoYXJlOiAnU2hhcmUnLFxuICAgIGNvcGllZDogJ0NvcGllZCcsXG4gICAgY29waWVkVXJsOiAnTGluayBjb3BpZWQnLFxuICB9LFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpY2tldC1jYXJkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVzdGFkbyBkZSBjYW5qZS92ZW50YSBxdWUgZWwgdGlja2V0LWNhcmQgcmVmbGVqYSBlbiBzdSBiYWRnZS5cbiAqXG4gKiAtIGBzb2xkYCDigJQgZW50cmFkYSB2ZW5kaWRhLCB0b2RhdsOtYSBubyBjYW5qZWFkYSAoUVIgdsOhbGlkbyBwYXJhIGNhbmplYXIpLlxuICogLSBgY2hlY2tlZEluYCDigJQgZW50cmFkYSB5YSBjYW5qZWFkYSAoUVIgeWEgdXNhZG8gZW4gcHVlcnRhKS5cbiAqIC0gYG5ldXRyYWxgIOKAlCBzaW4gZXN0YWRvIGRlc3RhY2FkbyAocC5lai4gc29sbyBzZSBtdWVzdHJhIGVsIFFSKS5cbiAqL1xuZXhwb3J0IHR5cGUgVGlja2V0Q2FyZFN0YXR1cyA9ICdzb2xkJyB8ICdjaGVja2VkSW4nIHwgJ25ldXRyYWwnO1xuXG4vKipcbiAqIE1ldGFkYXRhIChvYmplY3QtZmlyc3QpIGRlbCBjb21wb25lbnRlIGB2YWwtdGlja2V0LWNhcmRgLlxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGE6IG11ZXN0cmEgZWwgUVIgKGdlbmVyYWRvIGEgcGFydGlyIGRlbFxuICogYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8pLCBlbCBmb2xpbywgZWwgbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1blxuICogYmFkZ2UgZGUgZXN0YWRvLiBOTyB0cmFlIHRleHRvIHByb3BpbyBmaWpvIOKAlCBlbCBjb25zdW1lciBwYXNhIGxvcyBsYWJlbHMgeWFcbiAqIHJlc3VlbHRvcyAoYHN0YXR1c1NvbGRMYWJlbGAgLyBgc3RhdHVzQ2hlY2tlZEluTGFiZWxgIC8gYGZvbGlvTGFiZWxgKS4gRWxcbiAqIMO6bmljbyB0ZXh0byBhdXRvLWkxOG4gc29uIGxvcyBkZWZhdWx0cyBkZSBlc29zIGxhYmVscyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlja2V0Q2FyZE1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFRva2VuIG9wYWNvIGZpcm1hZG8gcXVlIHZhIERFTlRSTyBkZWwgUVIgZXNjYW5lYWJsZSAoZm9ybWF0b1xuICAgKiBgYmFzZTY0dXJsLmJhc2U2NHVybGApLiBFcyBleGFjdGFtZW50ZSBlbCBkYXRvIHF1ZSBsYSB0YXF1aWxsYSBtYW5kYSBhbFxuICAgKiBlbmRwb2ludCBkZSBjYW5qZS4gRWwgY29tcG9uZW50ZSBsbyBjb2RpZmljYSBlbiBlbCBRUiB0YWwgY3VhbC5cbiAgICovXG4gIHFyVG9rZW46IHN0cmluZztcblxuICAvKiogRm9saW8gZGUgbGEgZW50cmFkYSAobsO6bWVybyB2aXNpYmxlIGp1bnRvIGFsIFFSKS4gKi9cbiAgZm9saW8/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE5vbWJyZSBkZWwgY29tcHJhZG9yLCBzaSBzZSBjYXB0dXLDsyBlbiBsYSB2ZW50YS4gKi9cbiAgYnV5ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBFc3RhZG8gZGUgbGEgZW50cmFkYSAoY29udHJvbGEgZWwgY29sb3IvbGFiZWwgZGVsIGJhZGdlKS4gKi9cbiAgc3RhdHVzPzogVGlja2V0Q2FyZFN0YXR1cztcblxuICAvKiogVMOtdHVsbyBkZSBsYSB0YXJqZXRhIChlai4gbm9tYnJlIGRlbCBldmVudG8pLiBPcGNpb25hbC4gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqIFRhbWHDsW8gZGVsIFFSIGVuIHB4IChkZWZhdWx0IDIwMCkuICovXG4gIHFyU2l6ZT86IG51bWJlcjtcblxuICAvKiogTW9zdHJhciBib3TDs24gZGUgZGVzY2FyZ2EgZGVsIFFSLiAqL1xuICBzaG93RG93bmxvYWQ/OiBib29sZWFuO1xuICAvKiogTW9zdHJhciBib3TDs24gZGUgY29tcGFydGlyIGVsIFFSLiAqL1xuICBzaG93U2hhcmU/OiBib29sZWFuO1xuXG4gIC8vID09PSBMYWJlbHMgKG92ZXJyaWRlIGRlbCBhdXRvLWkxOG4pID09PVxuICAvKiogTGFiZWwgZGVsIHByZWZpam8gZGUgZm9saW8gKGRlZmF1bHQgaTE4bjogXCJGb2xpb1wiKS4gKi9cbiAgZm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBiYWRnZSBjdWFuZG8gYHN0YXR1cyA9PT0gJ3NvbGQnYCAoZGVmYXVsdDogXCJWZW5kaWRhXCIpLiAqL1xuICBzdGF0dXNTb2xkTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgYmFkZ2UgY3VhbmRvIGBzdGF0dXMgPT09ICdjaGVja2VkSW4nYCAoZGVmYXVsdDogXCJDYW5qZWFkYVwiKS4gKi9cbiAgc3RhdHVzQ2hlY2tlZEluTGFiZWw/OiBzdHJpbmc7XG5cbiAgLy8gPT09IFNoYXJlIGNhcmQgYnJhbmRpbmcgPT09XG4gIC8qKiBVUkwgZGVsIGxvZ28gZGUgbWFyY2EgcGFyYSBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuICovXG4gIHNoYXJlTG9nb1VybD86IHN0cmluZztcbiAgLyoqIENvbG9yIGRlIGZvbmRvIGRlbCBlbmNhYmV6YWRvIGVuIGxhIHRhcmpldGEgY29tcGFydGlkYS4gRGVmYXVsdDogZ3JhZGllbnRlIGJpbmdvLiAqL1xuICBzaGFyZUJyYW5kQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBDb2xvciBzZWN1bmRhcmlvIGRlbCBncmFkaWVudGUgKG9wdGlvbmFsKS4gKi9cbiAgc2hhcmVCcmFuZENvbG9yVG8/OiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGUgZXZlbnRvIC8gbWFyY2EgZW4gbGEgdGFyamV0YSBjb21wYXJ0aWRhLiAqL1xuICBzaGFyZUJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBmb2xpbyBlbiBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuIERlZmF1bHQgXCJFbnRyYWRhXCIuICovXG4gIHNoYXJlRm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBzaGFyZSBidXR0b24uICovXG4gIHNoYXJlTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgZG93bmxvYWQgYnV0dG9uLiAqL1xuICBkb3dubG9hZExhYmVsPzogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpY2tldC1jYXJkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVzdGFkbyBkZSBjYW5qZS92ZW50YSBxdWUgZWwgdGlja2V0LWNhcmQgcmVmbGVqYSBlbiBzdSBiYWRnZS5cbiAqXG4gKiAtIGBzb2xkYCDigJQgZW50cmFkYSB2ZW5kaWRhLCB0b2RhdsOtYSBubyBjYW5qZWFkYSAoUVIgdsOhbGlkbyBwYXJhIGNhbmplYXIpLlxuICogLSBgY2hlY2tlZEluYCDigJQgZW50cmFkYSB5YSBjYW5qZWFkYSAoUVIgeWEgdXNhZG8gZW4gcHVlcnRhKS5cbiAqIC0gYG5ldXRyYWxgIOKAlCBzaW4gZXN0YWRvIGRlc3RhY2FkbyAocC5lai4gc29sbyBzZSBtdWVzdHJhIGVsIFFSKS5cbiAqL1xuZXhwb3J0IHR5cGUgVGlja2V0Q2FyZFN0YXR1cyA9ICdzb2xkJyB8ICdjaGVja2VkSW4nIHwgJ25ldXRyYWwnO1xuXG4vKipcbiAqIE1ldGFkYXRhIChvYmplY3QtZmlyc3QpIGRlbCBjb21wb25lbnRlIGB2YWwtdGlja2V0LWNhcmRgLlxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGE6IG11ZXN0cmEgZWwgUVIgKGdlbmVyYWRvIGEgcGFydGlyIGRlbFxuICogYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8pLCBlbCBmb2xpbywgZWwgbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1blxuICogYmFkZ2UgZGUgZXN0YWRvLiBOTyB0cmFlIHRleHRvIHByb3BpbyBmaWpvIOKAlCBlbCBjb25zdW1lciBwYXNhIGxvcyBsYWJlbHMgeWFcbiAqIHJlc3VlbHRvcyAoYHN0YXR1c1NvbGRMYWJlbGAgLyBgc3RhdHVzQ2hlY2tlZEluTGFiZWxgIC8gYGZvbGlvTGFiZWxgKS4gRWxcbiAqIMO6bmljbyB0ZXh0byBhdXRvLWkxOG4gc29uIGxvcyBkZWZhdWx0cyBkZSBlc29zIGxhYmVscyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlja2V0Q2FyZE1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFRva2VuIG9wYWNvIGZpcm1hZG8gcXVlIHZhIERFTlRSTyBkZWwgUVIgZXNjYW5lYWJsZSAoZm9ybWF0b1xuICAgKiBgYmFzZTY0dXJsLmJhc2U2NHVybGApLiBFcyBleGFjdGFtZW50ZSBlbCBkYXRvIHF1ZSBsYSB0YXF1aWxsYSBtYW5kYSBhbFxuICAgKiBlbmRwb2ludCBkZSBjYW5qZS4gRWwgY29tcG9uZW50ZSBsbyBjb2RpZmljYSBlbiBlbCBRUiB0YWwgY3VhbC5cbiAgICovXG4gIHFyVG9rZW46IHN0cmluZztcblxuICAvKiogRm9saW8gZGUgbGEgZW50cmFkYSAobsO6bWVybyB2aXNpYmxlIGp1bnRvIGFsIFFSKS4gKi9cbiAgZm9saW8/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE5vbWJyZSBkZWwgY29tcHJhZG9yLCBzaSBzZSBjYXB0dXLDsyBlbiBsYSB2ZW50YS4gKi9cbiAgYnV5ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBFc3RhZG8gZGUgbGEgZW50cmFkYSAoY29udHJvbGEgZWwgY29sb3IvbGFiZWwgZGVsIGJhZGdlKS4gKi9cbiAgc3RhdHVzPzogVGlja2V0Q2FyZFN0YXR1cztcblxuICAvKiogVMOtdHVsbyBkZSBsYSB0YXJqZXRhIChlai4gbm9tYnJlIGRlbCBldmVudG8pLiBPcGNpb25hbC4gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqIFRhbWHDsW8gZGVsIFFSIGVuIHB4IChkZWZhdWx0IDIwMCkuICovXG4gIHFyU2l6ZT86IG51bWJlcjtcblxuICAvKiogTW9zdHJhciBib3TDs24gZGUgZGVzY2FyZ2EgZGVsIFFSLiAqL1xuICBzaG93RG93bmxvYWQ/OiBib29sZWFuO1xuICAvKiogTW9zdHJhciBib3TDs24gZGUgY29tcGFydGlyIGVsIFFSLiAqL1xuICBzaG93U2hhcmU/OiBib29sZWFuO1xuXG4gIC8vID09PSBMYWJlbHMgKG92ZXJyaWRlIGRlbCBhdXRvLWkxOG4pID09PVxuICAvKiogTGFiZWwgZGVsIHByZWZpam8gZGUgZm9saW8gKGRlZmF1bHQgaTE4bjogXCJGb2xpb1wiKS4gKi9cbiAgZm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBiYWRnZSBjdWFuZG8gYHN0YXR1cyA9PT0gJ3NvbGQnYCAoZGVmYXVsdDogXCJWZW5kaWRhXCIpLiAqL1xuICBzdGF0dXNTb2xkTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgYmFkZ2UgY3VhbmRvIGBzdGF0dXMgPT09ICdjaGVja2VkSW4nYCAoZGVmYXVsdDogXCJDYW5qZWFkYVwiKS4gKi9cbiAgc3RhdHVzQ2hlY2tlZEluTGFiZWw/OiBzdHJpbmc7XG5cbiAgLy8gPT09IFNoYXJlIGNhcmQgYnJhbmRpbmcgPT09XG4gIC8qKiBVUkwgcMO6YmxpY2EgcGFyYSBjb21wYXJ0aXIgKGxpbmspLiBTaSBlbCBuYXRpdmUgc2hhcmUgZmFsbGEsIHNlIGNvcGlhIGFsIGNsaXBib2FyZCBlbiBzdSBsdWdhci4gKi9cbiAgc2hhcmVVcmw/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGxvZ28gZGUgbWFyY2EgcGFyYSBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuICovXG4gIHNoYXJlTG9nb1VybD86IHN0cmluZztcbiAgLyoqIENvbG9yIGRlIGZvbmRvIGRlbCBlbmNhYmV6YWRvIGVuIGxhIHRhcmpldGEgY29tcGFydGlkYS4gRGVmYXVsdDogZ3JhZGllbnRlIGJpbmdvLiAqL1xuICBzaGFyZUJyYW5kQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBDb2xvciBzZWN1bmRhcmlvIGRlbCBncmFkaWVudGUgKG9wdGlvbmFsKS4gKi9cbiAgc2hhcmVCcmFuZENvbG9yVG8/OiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGUgZXZlbnRvIC8gbWFyY2EgZW4gbGEgdGFyamV0YSBjb21wYXJ0aWRhLiAqL1xuICBzaGFyZUJyYW5kTmFtZT86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBmb2xpbyBlbiBsYSB0YXJqZXRhIGNvbXBhcnRpZGEuIERlZmF1bHQgXCJFbnRyYWRhXCIuICovXG4gIHNoYXJlRm9saW9MYWJlbD86IHN0cmluZztcbiAgLyoqIExhYmVsIGRlbCBzaGFyZSBidXR0b24uICovXG4gIHNoYXJlTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBkZWwgZG93bmxvYWQgYnV0dG9uLiAqL1xuICBkb3dubG9hZExhYmVsPzogc3RyaW5nO1xufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.146';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNDYnO1xuIl19
5
+ export const VERSION = '4.0.148';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNDgnO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.146';
59
+ const VERSION = '4.0.148';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -69661,6 +69661,8 @@ const TICKET_CARD_I18N = {
69661
69661
  statusCheckedIn: 'Canjeada',
69662
69662
  download: 'Descargar',
69663
69663
  share: 'Compartir',
69664
+ copied: 'Copiado',
69665
+ copiedUrl: 'Link copiado',
69664
69666
  },
69665
69667
  en: {
69666
69668
  folio: 'Folio',
@@ -69668,6 +69670,8 @@ const TICKET_CARD_I18N = {
69668
69670
  statusCheckedIn: 'Checked in',
69669
69671
  download: 'Download',
69670
69672
  share: 'Share',
69673
+ copied: 'Copied',
69674
+ copiedUrl: 'Link copied',
69671
69675
  },
69672
69676
  };
69673
69677
 
@@ -69696,12 +69700,15 @@ class TicketCardComponent {
69696
69700
  this.qrService = inject(QrGeneratorService);
69697
69701
  this.ticketCardImageService = inject(TicketCardImageService);
69698
69702
  this.i18n = inject(I18nService);
69703
+ this.toast = inject(ToastService);
69699
69704
  /** QR generado (null mientras carga o si falló). */
69700
69705
  this.qr = signal(null);
69701
69706
  /** Falló la generación del QR → fallback al token corto. */
69702
69707
  this.failed = signal(false);
69703
69708
  /** True mientras se genera y comparte la tarjeta branded. */
69704
69709
  this.sharing = signal(false);
69710
+ /** True mientras se genera y descarga la tarjeta branded. */
69711
+ this.downloading = signal(false);
69705
69712
  this.status = computed(() => this.props().status ?? 'neutral');
69706
69713
  this.tokenShort = computed(() => {
69707
69714
  const tk = this.props().qrToken ?? '';
@@ -69726,7 +69733,7 @@ class TicketCardComponent {
69726
69733
  }
69727
69734
  return '';
69728
69735
  });
69729
- addIcons({ shareOutline });
69736
+ addIcons({ shareOutline, downloadOutline });
69730
69737
  this.i18n.registerDefaults('TicketCard', TICKET_CARD_I18N);
69731
69738
  // Regenera el QR cuando cambia el token o el tamaño.
69732
69739
  effect(() => {
@@ -69773,27 +69780,69 @@ class TicketCardComponent {
69773
69780
  const p = this.props();
69774
69781
  this.sharing.set(true);
69775
69782
  try {
69776
- await this.ticketCardImageService.share({
69777
- qrDataUrl: q.dataUrl,
69778
- logoUrl: p.shareLogoUrl,
69779
- brandColor: p.shareBrandColor,
69780
- brandColorTo: p.shareBrandColorTo,
69781
- brandName: p.shareBrandName,
69782
- folio: p.folio,
69783
- folioLabel: p.shareFolioLabel,
69784
- buyerName: p.buyerName,
69785
- }, p.title || p.shareBrandName);
69783
+ const config = this.buildImageConfig(q, p);
69784
+ const shared = await this.ticketCardImageService.share(config, p.title || p.shareBrandName);
69785
+ if (!shared) {
69786
+ await this.copyToClipboard(p);
69787
+ }
69786
69788
  }
69787
69789
  finally {
69788
69790
  this.sharing.set(false);
69789
69791
  }
69790
69792
  }
69793
+ async downloadCard() {
69794
+ const q = this.qr();
69795
+ if (!q)
69796
+ return;
69797
+ const p = this.props();
69798
+ this.downloading.set(true);
69799
+ try {
69800
+ await this.triggerDownload(this.buildImageConfig(q, p), p);
69801
+ }
69802
+ finally {
69803
+ this.downloading.set(false);
69804
+ }
69805
+ }
69806
+ buildImageConfig(q, p) {
69807
+ return {
69808
+ qrDataUrl: q.dataUrl,
69809
+ logoUrl: p.shareLogoUrl,
69810
+ brandColor: p.shareBrandColor,
69811
+ brandColorTo: p.shareBrandColorTo,
69812
+ brandName: p.shareBrandName,
69813
+ folio: p.folio,
69814
+ folioLabel: p.shareFolioLabel,
69815
+ buyerName: p.buyerName,
69816
+ };
69817
+ }
69818
+ async copyToClipboard(p) {
69819
+ const text = ((p.shareUrl ?? this.folioText()) || p.shareBrandName) ?? '';
69820
+ const isUrl = !!p.shareUrl;
69821
+ try {
69822
+ await navigator.clipboard.writeText(text);
69823
+ this.toast.show({ message: this.t(isUrl ? 'copiedUrl' : 'copied'), duration: 2000 });
69824
+ }
69825
+ catch {
69826
+ // clipboard no disponible — silencioso
69827
+ }
69828
+ }
69829
+ async triggerDownload(config, p) {
69830
+ const blob = await this.ticketCardImageService.generate(config);
69831
+ const url = URL.createObjectURL(blob);
69832
+ const a = document.createElement('a');
69833
+ a.href = url;
69834
+ a.download = `entrada-${p.folio ?? 'bingo'}.png`;
69835
+ document.body.appendChild(a);
69836
+ a.click();
69837
+ document.body.removeChild(a);
69838
+ URL.revokeObjectURL(url);
69839
+ }
69791
69840
  qrProps(q) {
69792
69841
  const p = this.props();
69793
69842
  return {
69794
69843
  qr: q,
69795
69844
  displaySize: p.qrSize ?? 200,
69796
- showDownload: p.showDownload ?? false,
69845
+ showDownload: false,
69797
69846
  showShare: false,
69798
69847
  showBorder: false,
69799
69848
  alt: this.folioText() || 'QR',
@@ -69833,6 +69882,12 @@ class TicketCardComponent {
69833
69882
  }
69834
69883
  </div>
69835
69884
 
69885
+ @if (props().showDownload && qr()) {
69886
+ <ion-button fill="clear" size="small" [disabled]="downloading()" (click)="downloadCard()">
69887
+ <ion-icon name="download-outline" slot="start" />
69888
+ {{ props().downloadLabel || t('download') }}
69889
+ </ion-button>
69890
+ }
69836
69891
  @if (props().showShare && qr()) {
69837
69892
  <ion-button fill="clear" size="small" [disabled]="sharing()" (click)="shareCard()">
69838
69893
  <ion-icon name="share-outline" slot="start" />
@@ -69874,6 +69929,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
69874
69929
  }
69875
69930
  </div>
69876
69931
 
69932
+ @if (props().showDownload && qr()) {
69933
+ <ion-button fill="clear" size="small" [disabled]="downloading()" (click)="downloadCard()">
69934
+ <ion-icon name="download-outline" slot="start" />
69935
+ {{ props().downloadLabel || t('download') }}
69936
+ </ion-button>
69937
+ }
69877
69938
  @if (props().showShare && qr()) {
69878
69939
  <ion-button fill="clear" size="small" [disabled]="sharing()" (click)="shareCard()">
69879
69940
  <ion-icon name="share-outline" slot="start" />