valtech-components 2.0.713 → 2.0.714

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.
Files changed (36) hide show
  1. package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +63 -16
  2. package/esm2022/lib/components/organisms/cards-carousel/types.mjs +1 -1
  3. package/esm2022/lib/components/templates/simple/simple.component.mjs +7 -9
  4. package/esm2022/lib/services/auth/auth.service.mjs +33 -17
  5. package/esm2022/lib/version.mjs +2 -2
  6. package/esm2022/public-api.mjs +1 -12
  7. package/fesm2022/valtech-components.mjs +100 -1995
  8. package/fesm2022/valtech-components.mjs.map +1 -1
  9. package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +1 -1
  10. package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +12 -6
  11. package/lib/components/organisms/cards-carousel/types.d.ts +32 -3
  12. package/lib/version.d.ts +1 -1
  13. package/package.json +1 -1
  14. package/public-api.d.ts +0 -11
  15. package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +0 -514
  16. package/esm2022/lib/components/molecules/participant-card/types.mjs +0 -21
  17. package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +0 -476
  18. package/esm2022/lib/components/molecules/raffle-status-card/types.mjs +0 -23
  19. package/esm2022/lib/components/molecules/recap-card/recap-card.component.mjs +0 -78
  20. package/esm2022/lib/components/molecules/recap-card/types.mjs +0 -2
  21. package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +0 -489
  22. package/esm2022/lib/components/molecules/ticket-grid/types.mjs +0 -11
  23. package/esm2022/lib/components/molecules/winner-display/types.mjs +0 -9
  24. package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +0 -359
  25. package/esm2022/lib/components/templates/layout/layout.component.mjs +0 -19
  26. package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -34
  27. package/lib/components/molecules/participant-card/types.d.ts +0 -132
  28. package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -21
  29. package/lib/components/molecules/raffle-status-card/types.d.ts +0 -108
  30. package/lib/components/molecules/recap-card/recap-card.component.d.ts +0 -36
  31. package/lib/components/molecules/recap-card/types.d.ts +0 -30
  32. package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -40
  33. package/lib/components/molecules/ticket-grid/types.d.ts +0 -122
  34. package/lib/components/molecules/winner-display/types.d.ts +0 -103
  35. package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -36
  36. package/lib/components/templates/layout/layout.component.d.ts +0 -5
@@ -1,476 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input, Output, EventEmitter } from '@angular/core';
3
- import { IonIcon, IonBadge, IonProgressBar } from '@ionic/angular/standalone';
4
- import { addIcons } from 'ionicons';
5
- import { ticketOutline, calendarOutline, giftOutline, heartOutline, timeOutline, } from 'ionicons/icons';
6
- import { ImageComponent } from '../../atoms/image/image.component';
7
- import { ButtonComponent } from '../../atoms/button/button.component';
8
- import { CountdownComponent } from '../../atoms/countdown/countdown.component';
9
- import { PriceTagComponent } from '../../atoms/price-tag/price-tag.component';
10
- import { DEFAULT_STATUS_LABELS, DEFAULT_STATUS_COLORS, } from './types';
11
- import * as i0 from "@angular/core";
12
- addIcons({
13
- ticketOutline,
14
- calendarOutline,
15
- giftOutline,
16
- heartOutline,
17
- timeOutline,
18
- });
19
- /**
20
- * val-raffle-status-card
21
- *
22
- * A card component for displaying raffle status and information.
23
- *
24
- * @example Basic usage
25
- * ```html
26
- * <val-raffle-status-card
27
- * [props]="{
28
- * title: 'Rifa Benéfica 2024',
29
- * status: 'active',
30
- * ticketPrice: 50,
31
- * progress: {
32
- * totalTickets: 1000,
33
- * soldTickets: 450
34
- * }
35
- * }"
36
- * ></val-raffle-status-card>
37
- * ```
38
- *
39
- * @example Featured with prize
40
- * ```html
41
- * <val-raffle-status-card
42
- * [props]="{
43
- * title: 'Gran Sorteo iPhone 15',
44
- * description: 'Participa y gana un iPhone 15 Pro Max',
45
- * status: 'active',
46
- * variant: 'featured',
47
- * coverImage: { src: 'cover.jpg' },
48
- * prize: {
49
- * name: 'iPhone 15 Pro Max 256GB',
50
- * value: 32000,
51
- * image: { src: 'iphone.jpg' }
52
- * },
53
- * ticketPrice: 100,
54
- * endDate: '2024-12-25',
55
- * showCountdown: true,
56
- * primaryAction: {
57
- * label: 'Comprar boletos',
58
- * color: 'success'
59
- * }
60
- * }"
61
- * ></val-raffle-status-card>
62
- * ```
63
- */
64
- export class RaffleStatusCardComponent {
65
- constructor() {
66
- this.primaryActionClick = new EventEmitter();
67
- this.secondaryActionClick = new EventEmitter();
68
- }
69
- get isActiveOrUpcoming() {
70
- return this.props.status === 'active' || this.props.status === 'upcoming';
71
- }
72
- get progressPercentage() {
73
- if (!this.props.progress)
74
- return 0;
75
- const { soldTickets, totalTickets } = this.props.progress;
76
- if (totalTickets === 0)
77
- return 0;
78
- return Math.round((soldTickets / totalTickets) * 100);
79
- }
80
- getStatusLabel() {
81
- const labels = { ...DEFAULT_STATUS_LABELS, ...this.props.statusLabels };
82
- return labels[this.props.status] || this.props.status;
83
- }
84
- getStatusColor() {
85
- if (this.props.statusColor)
86
- return this.props.statusColor;
87
- return DEFAULT_STATUS_COLORS[this.props.status] || 'medium';
88
- }
89
- getProgressColor() {
90
- if (this.progressPercentage >= 100)
91
- return 'success';
92
- if (this.progressPercentage >= 75)
93
- return 'warning';
94
- return 'primary';
95
- }
96
- getTitle() {
97
- return this.props.title || '';
98
- }
99
- getDescription() {
100
- return this.props.description || '';
101
- }
102
- formatCurrency(amount) {
103
- const symbol = this.props.currencySymbol || '$';
104
- return `${symbol}${amount.toLocaleString('es-MX')}`;
105
- }
106
- formatDate(date) {
107
- const d = typeof date === 'string' ? new Date(date) : date;
108
- return d.toLocaleDateString('es-MX', {
109
- day: 'numeric',
110
- month: 'short',
111
- year: 'numeric',
112
- });
113
- }
114
- onPrimaryAction() {
115
- this.primaryActionClick.emit();
116
- }
117
- onSecondaryAction() {
118
- this.secondaryActionClick.emit();
119
- }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RaffleStatusCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RaffleStatusCardComponent, isStandalone: true, selector: "val-raffle-status-card", inputs: { props: "props" }, outputs: { primaryActionClick: "primaryActionClick", secondaryActionClick: "secondaryActionClick" }, ngImport: i0, template: `
122
- <article
123
- class="raffle-card"
124
- [class]="props.cssClass"
125
- [class.variant-default]="props.variant === 'default' || !props.variant"
126
- [class.variant-featured]="props.variant === 'featured'"
127
- [class.variant-compact]="props.variant === 'compact'"
128
- [class.variant-horizontal]="props.variant === 'horizontal'"
129
- [class.size-small]="props.size === 'small'"
130
- [class.size-medium]="props.size === 'medium' || !props.size"
131
- [class.size-large]="props.size === 'large'"
132
- [class]="'status-' + props.status"
133
- >
134
- <!-- Cover image -->
135
- @if (props.coverImage && props.variant !== 'compact') {
136
- <div class="card-image">
137
- <val-image [props]="props.coverImage"></val-image>
138
-
139
- <!-- Status badge over image -->
140
- @if (props.showStatusBadge !== false) {
141
- <ion-badge [color]="getStatusColor()" class="status-badge">
142
- {{ getStatusLabel() }}
143
- </ion-badge>
144
- }
145
-
146
- <!-- Countdown overlay -->
147
- @if (props.showCountdown && props.endDate && isActiveOrUpcoming) {
148
- <div class="countdown-overlay">
149
- <val-countdown
150
- [props]="{
151
- targetDate: props.endDate,
152
- format: 'compact',
153
- size: 'small',
154
- color: 'light'
155
- }"
156
- ></val-countdown>
157
- </div>
158
- }
159
- </div>
160
- }
161
-
162
- <div class="card-content">
163
- <!-- Header -->
164
- <header class="card-header">
165
- @if (props.showStatusBadge !== false && (props.variant === 'compact' || !props.coverImage)) {
166
- <ion-badge [color]="getStatusColor()" class="status-badge inline">
167
- {{ getStatusLabel() }}
168
- </ion-badge>
169
- }
170
-
171
- <h3 class="card-title">{{ getTitle() }}</h3>
172
-
173
- @if (props.description) {
174
- <p class="card-description">{{ getDescription() }}</p>
175
- }
176
- </header>
177
-
178
- <!-- Beneficiary -->
179
- @if (props.beneficiary) {
180
- <div class="beneficiary-info">
181
- <ion-icon name="heart-outline"></ion-icon>
182
- @if (props.beneficiaryImage) {
183
- <val-image [props]="props.beneficiaryImage" class="beneficiary-image"></val-image>
184
- }
185
- <span>{{ props.beneficiary }}</span>
186
- </div>
187
- }
188
-
189
- <!-- Prize preview -->
190
- @if (props.prize && props.variant !== 'compact') {
191
- <div class="prize-preview">
192
- <div class="prize-header">
193
- <ion-icon name="gift-outline"></ion-icon>
194
- <span>Premio</span>
195
- </div>
196
- <div class="prize-name">{{ props.prize.name }}</div>
197
- @if (props.prize.value) {
198
- <div class="prize-value">
199
- {{ formatCurrency(props.prize.value) }}
200
- </div>
201
- }
202
- </div>
203
- }
204
-
205
- <!-- Progress -->
206
- @if (props.showProgress !== false && props.progress) {
207
- <div class="progress-section">
208
- <div class="progress-header">
209
- <span class="progress-label">Progreso</span>
210
- <span class="progress-value">{{ progressPercentage }}%</span>
211
- </div>
212
- <ion-progress-bar
213
- [value]="progressPercentage / 100"
214
- [color]="getProgressColor()"
215
- ></ion-progress-bar>
216
- </div>
217
- }
218
-
219
- <!-- Ticket stats -->
220
- @if (props.showTicketStats !== false && props.progress) {
221
- <div class="ticket-stats">
222
- <div class="stat">
223
- <ion-icon name="ticket-outline"></ion-icon>
224
- <span class="stat-value">{{ props.progress.soldTickets }}</span>
225
- <span class="stat-label">vendidos</span>
226
- </div>
227
- <div class="stat-divider"></div>
228
- <div class="stat">
229
- <span class="stat-value">{{ props.progress.totalTickets - props.progress.soldTickets }}</span>
230
- <span class="stat-label">disponibles</span>
231
- </div>
232
- </div>
233
- }
234
-
235
- <!-- Price -->
236
- @if (props.showPrice !== false && props.ticketPrice) {
237
- <div class="price-section">
238
- <val-price-tag
239
- [props]="{
240
- amount: props.ticketPrice,
241
- currency: props.currency || 'MXN',
242
- currencySymbol: props.currencySymbol,
243
- period: 'por boleto',
244
- size: props.size === 'large' ? 'large' : 'medium',
245
- variant: 'highlight'
246
- }"
247
- ></val-price-tag>
248
- </div>
249
- }
250
-
251
- <!-- Dates -->
252
- @if (props.showDates !== false && (props.startDate || props.endDate)) {
253
- <div class="dates-section">
254
- @if (props.startDate) {
255
- <div class="date-item">
256
- <ion-icon name="calendar-outline"></ion-icon>
257
- <span>Inicia: {{ formatDate(props.startDate) }}</span>
258
- </div>
259
- }
260
- @if (props.endDate) {
261
- <div class="date-item">
262
- <ion-icon name="time-outline"></ion-icon>
263
- <span>Sorteo: {{ formatDate(props.endDate) }}</span>
264
- </div>
265
- }
266
- </div>
267
- }
268
-
269
- <!-- Actions -->
270
- @if (props.primaryAction || props.secondaryAction) {
271
- <div class="card-actions">
272
- @if (props.primaryAction) {
273
- <val-button
274
- [props]="props.primaryAction"
275
- (click)="onPrimaryAction()"
276
- ></val-button>
277
- }
278
- @if (props.secondaryAction) {
279
- <val-button
280
- [props]="props.secondaryAction"
281
- (click)="onSecondaryAction()"
282
- ></val-button>
283
- }
284
- </div>
285
- }
286
- </div>
287
- </article>
288
- `, isInline: true, styles: [":host{display:block}.raffle-card{display:flex;flex-direction:column;background:var(--ion-color-light);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.raffle-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.card-image{position:relative;aspect-ratio:16/9;overflow:hidden}.card-image val-image{width:100%;height:100%}.card-image val-image ::ng-deep img{width:100%;height:100%;object-fit:cover}.status-badge{position:absolute;top:12px;left:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:4px}.status-badge.inline{position:static;margin-bottom:8px}.countdown-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,#000000b3)}.card-content{display:flex;flex-direction:column;gap:12px;padding:16px}.card-header{display:flex;flex-direction:column;gap:4px}.card-title{font-size:18px;font-weight:600;color:var(--ion-color-dark);margin:0;line-height:1.3}.card-description{font-size:14px;color:var(--ion-color-medium-shade);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.beneficiary-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ion-color-medium-shade)}.beneficiary-info ion-icon{font-size:16px;color:var(--ion-color-danger)}.beneficiary-info .beneficiary-image{width:24px;height:24px;border-radius:50%;overflow:hidden}.prize-preview{padding:12px;background:var(--ion-color-light-shade);border-radius:8px}.prize-header{display:flex;align-items:center;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ion-color-medium);margin-bottom:4px}.prize-header ion-icon{font-size:14px;color:var(--ion-color-warning)}.prize-name{font-size:15px;font-weight:600;color:var(--ion-color-dark)}.prize-value{font-size:18px;font-weight:700;color:var(--ion-color-success);margin-top:4px}.progress-section{display:flex;flex-direction:column;gap:6px}.progress-header{display:flex;justify-content:space-between;align-items:center}.progress-label{font-size:12px;color:var(--ion-color-medium-shade)}.progress-value{font-size:14px;font-weight:600;color:var(--ion-color-dark)}ion-progress-bar{height:8px;border-radius:4px;--background: var(--ion-color-light-shade)}.ticket-stats{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;background:var(--ion-color-light-shade);border-radius:8px}.stat{display:flex;align-items:center;gap:6px;font-size:13px}.stat ion-icon{font-size:18px;color:var(--ion-color-primary)}.stat-value{font-weight:700;color:var(--ion-color-dark);font-size:16px}.stat-label{color:var(--ion-color-medium-shade)}.stat-divider{width:1px;height:24px;background:var(--ion-color-medium-tint)}.price-section{display:flex;justify-content:center;padding:8px 0}.dates-section{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ion-color-medium-shade)}.date-item{display:flex;align-items:center;gap:6px}.date-item ion-icon{font-size:16px;color:var(--ion-color-primary)}.card-actions{display:flex;gap:8px;margin-top:4px}.card-actions val-button{flex:1}.variant-featured{border:2px solid var(--ion-color-warning)}.variant-featured .card-image{aspect-ratio:2/1}.variant-featured .card-title{font-size:22px}.variant-compact .card-content{padding:12px;gap:8px}.variant-compact .card-title{font-size:15px}.variant-compact .card-description{font-size:13px;-webkit-line-clamp:1}.variant-compact .ticket-stats,.variant-compact .dates-section{display:none}.variant-horizontal{flex-direction:row}.variant-horizontal .card-image{width:40%;min-width:150px;aspect-ratio:1}.variant-horizontal .card-content{flex:1;justify-content:center}.size-small .card-content{padding:12px;gap:8px}.size-small .card-title{font-size:15px}.size-small .card-description{font-size:12px}.size-small .ticket-stats{padding:8px}.size-small .stat-value{font-size:14px}.size-large .card-content{padding:24px;gap:16px}.size-large .card-title{font-size:24px}.size-large .card-description{font-size:16px}.size-large .prize-name{font-size:18px}.size-large .prize-value{font-size:22px}.status-upcoming{opacity:.9}.status-sold_out .card-image:after{content:\"\";position:absolute;inset:0;background:#0000004d}.status-completed .card-actions{opacity:.5;pointer-events:none}.status-cancelled{opacity:.6}.status-cancelled .card-image:after{content:\"\";position:absolute;inset:0;background:#0006}@media (max-width: 480px){.variant-horizontal{flex-direction:column}.variant-horizontal .card-image{width:100%;aspect-ratio:16/9}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: CountdownComponent, selector: "val-countdown", inputs: ["props"], outputs: ["complete", "tick"] }, { kind: "component", type: PriceTagComponent, selector: "val-price-tag", inputs: ["props"] }] }); }
289
- }
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RaffleStatusCardComponent, decorators: [{
291
- type: Component,
292
- args: [{ selector: 'val-raffle-status-card', standalone: true, imports: [
293
- CommonModule,
294
- IonIcon,
295
- IonBadge,
296
- IonProgressBar,
297
- ImageComponent,
298
- ButtonComponent,
299
- CountdownComponent,
300
- PriceTagComponent,
301
- ], template: `
302
- <article
303
- class="raffle-card"
304
- [class]="props.cssClass"
305
- [class.variant-default]="props.variant === 'default' || !props.variant"
306
- [class.variant-featured]="props.variant === 'featured'"
307
- [class.variant-compact]="props.variant === 'compact'"
308
- [class.variant-horizontal]="props.variant === 'horizontal'"
309
- [class.size-small]="props.size === 'small'"
310
- [class.size-medium]="props.size === 'medium' || !props.size"
311
- [class.size-large]="props.size === 'large'"
312
- [class]="'status-' + props.status"
313
- >
314
- <!-- Cover image -->
315
- @if (props.coverImage && props.variant !== 'compact') {
316
- <div class="card-image">
317
- <val-image [props]="props.coverImage"></val-image>
318
-
319
- <!-- Status badge over image -->
320
- @if (props.showStatusBadge !== false) {
321
- <ion-badge [color]="getStatusColor()" class="status-badge">
322
- {{ getStatusLabel() }}
323
- </ion-badge>
324
- }
325
-
326
- <!-- Countdown overlay -->
327
- @if (props.showCountdown && props.endDate && isActiveOrUpcoming) {
328
- <div class="countdown-overlay">
329
- <val-countdown
330
- [props]="{
331
- targetDate: props.endDate,
332
- format: 'compact',
333
- size: 'small',
334
- color: 'light'
335
- }"
336
- ></val-countdown>
337
- </div>
338
- }
339
- </div>
340
- }
341
-
342
- <div class="card-content">
343
- <!-- Header -->
344
- <header class="card-header">
345
- @if (props.showStatusBadge !== false && (props.variant === 'compact' || !props.coverImage)) {
346
- <ion-badge [color]="getStatusColor()" class="status-badge inline">
347
- {{ getStatusLabel() }}
348
- </ion-badge>
349
- }
350
-
351
- <h3 class="card-title">{{ getTitle() }}</h3>
352
-
353
- @if (props.description) {
354
- <p class="card-description">{{ getDescription() }}</p>
355
- }
356
- </header>
357
-
358
- <!-- Beneficiary -->
359
- @if (props.beneficiary) {
360
- <div class="beneficiary-info">
361
- <ion-icon name="heart-outline"></ion-icon>
362
- @if (props.beneficiaryImage) {
363
- <val-image [props]="props.beneficiaryImage" class="beneficiary-image"></val-image>
364
- }
365
- <span>{{ props.beneficiary }}</span>
366
- </div>
367
- }
368
-
369
- <!-- Prize preview -->
370
- @if (props.prize && props.variant !== 'compact') {
371
- <div class="prize-preview">
372
- <div class="prize-header">
373
- <ion-icon name="gift-outline"></ion-icon>
374
- <span>Premio</span>
375
- </div>
376
- <div class="prize-name">{{ props.prize.name }}</div>
377
- @if (props.prize.value) {
378
- <div class="prize-value">
379
- {{ formatCurrency(props.prize.value) }}
380
- </div>
381
- }
382
- </div>
383
- }
384
-
385
- <!-- Progress -->
386
- @if (props.showProgress !== false && props.progress) {
387
- <div class="progress-section">
388
- <div class="progress-header">
389
- <span class="progress-label">Progreso</span>
390
- <span class="progress-value">{{ progressPercentage }}%</span>
391
- </div>
392
- <ion-progress-bar
393
- [value]="progressPercentage / 100"
394
- [color]="getProgressColor()"
395
- ></ion-progress-bar>
396
- </div>
397
- }
398
-
399
- <!-- Ticket stats -->
400
- @if (props.showTicketStats !== false && props.progress) {
401
- <div class="ticket-stats">
402
- <div class="stat">
403
- <ion-icon name="ticket-outline"></ion-icon>
404
- <span class="stat-value">{{ props.progress.soldTickets }}</span>
405
- <span class="stat-label">vendidos</span>
406
- </div>
407
- <div class="stat-divider"></div>
408
- <div class="stat">
409
- <span class="stat-value">{{ props.progress.totalTickets - props.progress.soldTickets }}</span>
410
- <span class="stat-label">disponibles</span>
411
- </div>
412
- </div>
413
- }
414
-
415
- <!-- Price -->
416
- @if (props.showPrice !== false && props.ticketPrice) {
417
- <div class="price-section">
418
- <val-price-tag
419
- [props]="{
420
- amount: props.ticketPrice,
421
- currency: props.currency || 'MXN',
422
- currencySymbol: props.currencySymbol,
423
- period: 'por boleto',
424
- size: props.size === 'large' ? 'large' : 'medium',
425
- variant: 'highlight'
426
- }"
427
- ></val-price-tag>
428
- </div>
429
- }
430
-
431
- <!-- Dates -->
432
- @if (props.showDates !== false && (props.startDate || props.endDate)) {
433
- <div class="dates-section">
434
- @if (props.startDate) {
435
- <div class="date-item">
436
- <ion-icon name="calendar-outline"></ion-icon>
437
- <span>Inicia: {{ formatDate(props.startDate) }}</span>
438
- </div>
439
- }
440
- @if (props.endDate) {
441
- <div class="date-item">
442
- <ion-icon name="time-outline"></ion-icon>
443
- <span>Sorteo: {{ formatDate(props.endDate) }}</span>
444
- </div>
445
- }
446
- </div>
447
- }
448
-
449
- <!-- Actions -->
450
- @if (props.primaryAction || props.secondaryAction) {
451
- <div class="card-actions">
452
- @if (props.primaryAction) {
453
- <val-button
454
- [props]="props.primaryAction"
455
- (click)="onPrimaryAction()"
456
- ></val-button>
457
- }
458
- @if (props.secondaryAction) {
459
- <val-button
460
- [props]="props.secondaryAction"
461
- (click)="onSecondaryAction()"
462
- ></val-button>
463
- }
464
- </div>
465
- }
466
- </div>
467
- </article>
468
- `, styles: [":host{display:block}.raffle-card{display:flex;flex-direction:column;background:var(--ion-color-light);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.raffle-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.card-image{position:relative;aspect-ratio:16/9;overflow:hidden}.card-image val-image{width:100%;height:100%}.card-image val-image ::ng-deep img{width:100%;height:100%;object-fit:cover}.status-badge{position:absolute;top:12px;left:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:4px}.status-badge.inline{position:static;margin-bottom:8px}.countdown-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,#000000b3)}.card-content{display:flex;flex-direction:column;gap:12px;padding:16px}.card-header{display:flex;flex-direction:column;gap:4px}.card-title{font-size:18px;font-weight:600;color:var(--ion-color-dark);margin:0;line-height:1.3}.card-description{font-size:14px;color:var(--ion-color-medium-shade);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.beneficiary-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ion-color-medium-shade)}.beneficiary-info ion-icon{font-size:16px;color:var(--ion-color-danger)}.beneficiary-info .beneficiary-image{width:24px;height:24px;border-radius:50%;overflow:hidden}.prize-preview{padding:12px;background:var(--ion-color-light-shade);border-radius:8px}.prize-header{display:flex;align-items:center;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ion-color-medium);margin-bottom:4px}.prize-header ion-icon{font-size:14px;color:var(--ion-color-warning)}.prize-name{font-size:15px;font-weight:600;color:var(--ion-color-dark)}.prize-value{font-size:18px;font-weight:700;color:var(--ion-color-success);margin-top:4px}.progress-section{display:flex;flex-direction:column;gap:6px}.progress-header{display:flex;justify-content:space-between;align-items:center}.progress-label{font-size:12px;color:var(--ion-color-medium-shade)}.progress-value{font-size:14px;font-weight:600;color:var(--ion-color-dark)}ion-progress-bar{height:8px;border-radius:4px;--background: var(--ion-color-light-shade)}.ticket-stats{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;background:var(--ion-color-light-shade);border-radius:8px}.stat{display:flex;align-items:center;gap:6px;font-size:13px}.stat ion-icon{font-size:18px;color:var(--ion-color-primary)}.stat-value{font-weight:700;color:var(--ion-color-dark);font-size:16px}.stat-label{color:var(--ion-color-medium-shade)}.stat-divider{width:1px;height:24px;background:var(--ion-color-medium-tint)}.price-section{display:flex;justify-content:center;padding:8px 0}.dates-section{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ion-color-medium-shade)}.date-item{display:flex;align-items:center;gap:6px}.date-item ion-icon{font-size:16px;color:var(--ion-color-primary)}.card-actions{display:flex;gap:8px;margin-top:4px}.card-actions val-button{flex:1}.variant-featured{border:2px solid var(--ion-color-warning)}.variant-featured .card-image{aspect-ratio:2/1}.variant-featured .card-title{font-size:22px}.variant-compact .card-content{padding:12px;gap:8px}.variant-compact .card-title{font-size:15px}.variant-compact .card-description{font-size:13px;-webkit-line-clamp:1}.variant-compact .ticket-stats,.variant-compact .dates-section{display:none}.variant-horizontal{flex-direction:row}.variant-horizontal .card-image{width:40%;min-width:150px;aspect-ratio:1}.variant-horizontal .card-content{flex:1;justify-content:center}.size-small .card-content{padding:12px;gap:8px}.size-small .card-title{font-size:15px}.size-small .card-description{font-size:12px}.size-small .ticket-stats{padding:8px}.size-small .stat-value{font-size:14px}.size-large .card-content{padding:24px;gap:16px}.size-large .card-title{font-size:24px}.size-large .card-description{font-size:16px}.size-large .prize-name{font-size:18px}.size-large .prize-value{font-size:22px}.status-upcoming{opacity:.9}.status-sold_out .card-image:after{content:\"\";position:absolute;inset:0;background:#0000004d}.status-completed .card-actions{opacity:.5;pointer-events:none}.status-cancelled{opacity:.6}.status-cancelled .card-image:after{content:\"\";position:absolute;inset:0;background:#0006}@media (max-width: 480px){.variant-horizontal{flex-direction:column}.variant-horizontal .card-image{width:100%;aspect-ratio:16/9}}\n"] }]
469
- }], propDecorators: { props: [{
470
- type: Input
471
- }], primaryActionClick: [{
472
- type: Output
473
- }], secondaryActionClick: [{
474
- type: Output
475
- }] } });
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFmZmxlLXN0YXR1cy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmFmZmxlLXN0YXR1cy1jYXJkL3JhZmZsZS1zdGF0dXMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFDZixXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixxQkFBcUIsR0FDdEIsTUFBTSxTQUFTLENBQUM7O0FBRWpCLFFBQVEsQ0FBQztJQUNQLGFBQWE7SUFDYixlQUFlO0lBQ2YsV0FBVztJQUNYLFlBQVk7SUFDWixXQUFXO0NBQ1osQ0FBQyxDQUFDO0FBeUxIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFwT3RDO1FBdU9ZLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQTBEM0Q7SUF4REMsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMxRCxJQUFJLFlBQVksS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3hELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQzFELE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDOUQsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLEdBQUc7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDcEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUM7UUFDaEQsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFtQjtRQUM1QixNQUFNLENBQUMsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0QsT0FBTyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFO1lBQ25DLEdBQUcsRUFBRSxTQUFTO1lBQ2QsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsU0FBUztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7K0dBN0RVLHlCQUF5QjttR0FBekIseUJBQXlCLG1OQXZOMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUtULDJrSkFoTEMsWUFBWSwrQkFDWixPQUFPLDJKQUNQLFFBQVEsaUZBQ1IsY0FBYywrSEFDZCxjQUFjLHlFQUNkLGVBQWUsMEdBQ2Ysa0JBQWtCLDRHQUNsQixpQkFBaUI7OzRGQXlOUix5QkFBeUI7a0JBcE9yQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixpQkFBaUI7cUJBQ2xCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUtUOzhCQWlEUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uQmFkZ2UsIElvblByb2dyZXNzQmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7XG4gIHRpY2tldE91dGxpbmUsXG4gIGNhbGVuZGFyT3V0bGluZSxcbiAgZ2lmdE91dGxpbmUsXG4gIGhlYXJ0T3V0bGluZSxcbiAgdGltZU91dGxpbmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENvdW50ZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2NvdW50ZG93bi9jb3VudGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFByaWNlVGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvcHJpY2UtdGFnL3ByaWNlLXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgUmFmZmxlU3RhdHVzQ2FyZE1ldGFkYXRhLFxuICBERUZBVUxUX1NUQVRVU19MQUJFTFMsXG4gIERFRkFVTFRfU1RBVFVTX0NPTE9SUyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgdGlja2V0T3V0bGluZSxcbiAgY2FsZW5kYXJPdXRsaW5lLFxuICBnaWZ0T3V0bGluZSxcbiAgaGVhcnRPdXRsaW5lLFxuICB0aW1lT3V0bGluZSxcbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcmFmZmxlLXN0YXR1cy1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25JY29uLFxuICAgIElvbkJhZGdlLFxuICAgIElvblByb2dyZXNzQmFyLFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDb3VudGRvd25Db21wb25lbnQsXG4gICAgUHJpY2VUYWdDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGFydGljbGVcbiAgICAgIGNsYXNzPVwicmFmZmxlLWNhcmRcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LWRlZmF1bHRdPVwicHJvcHMudmFyaWFudCA9PT0gJ2RlZmF1bHQnIHx8ICFwcm9wcy52YXJpYW50XCJcbiAgICAgIFtjbGFzcy52YXJpYW50LWZlYXR1cmVkXT1cInByb3BzLnZhcmlhbnQgPT09ICdmZWF0dXJlZCdcIlxuICAgICAgW2NsYXNzLnZhcmlhbnQtY29tcGFjdF09XCJwcm9wcy52YXJpYW50ID09PSAnY29tcGFjdCdcIlxuICAgICAgW2NsYXNzLnZhcmlhbnQtaG9yaXpvbnRhbF09XCJwcm9wcy52YXJpYW50ID09PSAnaG9yaXpvbnRhbCdcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1tZWRpdW1dPVwicHJvcHMuc2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLnNpemVcIlxuICAgICAgW2NsYXNzLnNpemUtbGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3NdPVwiJ3N0YXR1cy0nICsgcHJvcHMuc3RhdHVzXCJcbiAgICA+XG4gICAgICA8IS0tIENvdmVyIGltYWdlIC0tPlxuICAgICAgQGlmIChwcm9wcy5jb3ZlckltYWdlICYmIHByb3BzLnZhcmlhbnQgIT09ICdjb21wYWN0Jykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWFnZVwiPlxuICAgICAgICAgIDx2YWwtaW1hZ2UgW3Byb3BzXT1cInByb3BzLmNvdmVySW1hZ2VcIj48L3ZhbC1pbWFnZT5cblxuICAgICAgICAgIDwhLS0gU3RhdHVzIGJhZGdlIG92ZXIgaW1hZ2UgLS0+XG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93U3RhdHVzQmFkZ2UgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICA8aW9uLWJhZGdlIFtjb2xvcl09XCJnZXRTdGF0dXNDb2xvcigpXCIgY2xhc3M9XCJzdGF0dXMtYmFkZ2VcIj5cbiAgICAgICAgICAgICAge3sgZ2V0U3RhdHVzTGFiZWwoKSB9fVxuICAgICAgICAgICAgPC9pb24tYmFkZ2U+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBDb3VudGRvd24gb3ZlcmxheSAtLT5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dDb3VudGRvd24gJiYgcHJvcHMuZW5kRGF0ZSAmJiBpc0FjdGl2ZU9yVXBjb21pbmcpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGRvd24tb3ZlcmxheVwiPlxuICAgICAgICAgICAgICA8dmFsLWNvdW50ZG93blxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICB0YXJnZXREYXRlOiBwcm9wcy5lbmREYXRlLFxuICAgICAgICAgICAgICAgICAgZm9ybWF0OiAnY29tcGFjdCcsXG4gICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdsaWdodCdcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPjwvdmFsLWNvdW50ZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRlbnRcIj5cbiAgICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1N0YXR1c0JhZGdlICE9PSBmYWxzZSAmJiAocHJvcHMudmFyaWFudCA9PT0gJ2NvbXBhY3QnIHx8ICFwcm9wcy5jb3ZlckltYWdlKSkge1xuICAgICAgICAgICAgPGlvbi1iYWRnZSBbY29sb3JdPVwiZ2V0U3RhdHVzQ29sb3IoKVwiIGNsYXNzPVwic3RhdHVzLWJhZGdlIGlubGluZVwiPlxuICAgICAgICAgICAgICB7eyBnZXRTdGF0dXNMYWJlbCgpIH19XG4gICAgICAgICAgICA8L2lvbi1iYWRnZT5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlXCI+e3sgZ2V0VGl0bGUoKSB9fTwvaDM+XG5cbiAgICAgICAgICBAaWYgKHByb3BzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIj57eyBnZXREZXNjcmlwdGlvbigpIH19PC9wPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgPCEtLSBCZW5lZmljaWFyeSAtLT5cbiAgICAgICAgQGlmIChwcm9wcy5iZW5lZmljaWFyeSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZW5lZmljaWFyeS1pbmZvXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImhlYXJ0LW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgQGlmIChwcm9wcy5iZW5lZmljaWFyeUltYWdlKSB7XG4gICAgICAgICAgICAgIDx2YWwtaW1hZ2UgW3Byb3BzXT1cInByb3BzLmJlbmVmaWNpYXJ5SW1hZ2VcIiBjbGFzcz1cImJlbmVmaWNpYXJ5LWltYWdlXCI+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyBwcm9wcy5iZW5lZmljaWFyeSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gUHJpemUgcHJldmlldyAtLT5cbiAgICAgICAgQGlmIChwcm9wcy5wcml6ZSAmJiBwcm9wcy52YXJpYW50ICE9PSAnY29tcGFjdCcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpemUtcHJldmlld1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaXplLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImdpZnQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPlByZW1pbzwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaXplLW5hbWVcIj57eyBwcm9wcy5wcml6ZS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICBAaWYgKHByb3BzLnByaXplLnZhbHVlKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcml6ZS12YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IGZvcm1hdEN1cnJlbmN5KHByb3BzLnByaXplLnZhbHVlKSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gUHJvZ3Jlc3MgLS0+XG4gICAgICAgIEBpZiAocHJvcHMuc2hvd1Byb2dyZXNzICE9PSBmYWxzZSAmJiBwcm9wcy5wcm9ncmVzcykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZ3Jlc3MtbGFiZWxcIj5Qcm9ncmVzbzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy12YWx1ZVwiPnt7IHByb2dyZXNzUGVyY2VudGFnZSB9fSU8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpb24tcHJvZ3Jlc3MtYmFyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJwcm9ncmVzc1BlcmNlbnRhZ2UgLyAxMDBcIlxuICAgICAgICAgICAgICBbY29sb3JdPVwiZ2V0UHJvZ3Jlc3NDb2xvcigpXCJcbiAgICAgICAgICAgID48L2lvbi1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFRpY2tldCBzdGF0cyAtLT5cbiAgICAgICAgQGlmIChwcm9wcy5zaG93VGlja2V0U3RhdHMgIT09IGZhbHNlICYmIHByb3BzLnByb2dyZXNzKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1zdGF0c1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0aWNrZXQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdC12YWx1ZVwiPnt7IHByb3BzLnByb2dyZXNzLnNvbGRUaWNrZXRzIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXQtbGFiZWxcIj52ZW5kaWRvczwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXQtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0LXZhbHVlXCI+e3sgcHJvcHMucHJvZ3Jlc3MudG90YWxUaWNrZXRzIC0gcHJvcHMucHJvZ3Jlc3Muc29sZFRpY2tldHMgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdC1sYWJlbFwiPmRpc3BvbmlibGVzPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFByaWNlIC0tPlxuICAgICAgICBAaWYgKHByb3BzLnNob3dQcmljZSAhPT0gZmFsc2UgJiYgcHJvcHMudGlja2V0UHJpY2UpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utc2VjdGlvblwiPlxuICAgICAgICAgICAgPHZhbC1wcmljZS10YWdcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBhbW91bnQ6IHByb3BzLnRpY2tldFByaWNlLFxuICAgICAgICAgICAgICAgIGN1cnJlbmN5OiBwcm9wcy5jdXJyZW5jeSB8fCAnTVhOJyxcbiAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogcHJvcHMuY3VycmVuY3lTeW1ib2wsXG4gICAgICAgICAgICAgICAgcGVyaW9kOiAncG9yIGJvbGV0bycsXG4gICAgICAgICAgICAgICAgc2l6ZTogcHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJyA/ICdsYXJnZScgOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50OiAnaGlnaGxpZ2h0J1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID48L3ZhbC1wcmljZS10YWc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIERhdGVzIC0tPlxuICAgICAgICBAaWYgKHByb3BzLnNob3dEYXRlcyAhPT0gZmFsc2UgJiYgKHByb3BzLnN0YXJ0RGF0ZSB8fCBwcm9wcy5lbmREYXRlKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcy1zZWN0aW9uXCI+XG4gICAgICAgICAgICBAaWYgKHByb3BzLnN0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjYWxlbmRhci1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5JbmljaWE6IHt7IGZvcm1hdERhdGUocHJvcHMuc3RhcnREYXRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHByb3BzLmVuZERhdGUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidGltZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5Tb3J0ZW86IHt7IGZvcm1hdERhdGUocHJvcHMuZW5kRGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBBY3Rpb25zIC0tPlxuICAgICAgICBAaWYgKHByb3BzLnByaW1hcnlBY3Rpb24gfHwgcHJvcHMuc2Vjb25kYXJ5QWN0aW9uKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChwcm9wcy5wcmltYXJ5QWN0aW9uKSB7XG4gICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cInByb3BzLnByaW1hcnlBY3Rpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiXG4gICAgICAgICAgICAgID48L3ZhbC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHByb3BzLnNlY29uZGFyeUFjdGlvbikge1xuICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJwcm9wcy5zZWNvbmRhcnlBY3Rpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlY29uZGFyeUFjdGlvbigpXCJcbiAgICAgICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9hcnRpY2xlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9yYWZmbGUtc3RhdHVzLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1yYWZmbGUtc3RhdHVzLWNhcmRcbiAqXG4gKiBBIGNhcmQgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIHJhZmZsZSBzdGF0dXMgYW5kIGluZm9ybWF0aW9uLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXJhZmZsZS1zdGF0dXMtY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIHRpdGxlOiAnUmlmYSBCZW7DqWZpY2EgMjAyNCcsXG4gKiAgICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAqICAgICB0aWNrZXRQcmljZTogNTAsXG4gKiAgICAgcHJvZ3Jlc3M6IHtcbiAqICAgICAgIHRvdGFsVGlja2V0czogMTAwMCxcbiAqICAgICAgIHNvbGRUaWNrZXRzOiA0NTBcbiAqICAgICB9XG4gKiAgIH1cIlxuICogPjwvdmFsLXJhZmZsZS1zdGF0dXMtY2FyZD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEZlYXR1cmVkIHdpdGggcHJpemVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcmFmZmxlLXN0YXR1cy1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGl0bGU6ICdHcmFuIFNvcnRlbyBpUGhvbmUgMTUnLFxuICogICAgIGRlc2NyaXB0aW9uOiAnUGFydGljaXBhIHkgZ2FuYSB1biBpUGhvbmUgMTUgUHJvIE1heCcsXG4gKiAgICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAqICAgICB2YXJpYW50OiAnZmVhdHVyZWQnLFxuICogICAgIGNvdmVySW1hZ2U6IHsgc3JjOiAnY292ZXIuanBnJyB9LFxuICogICAgIHByaXplOiB7XG4gKiAgICAgICBuYW1lOiAnaVBob25lIDE1IFBybyBNYXggMjU2R0InLFxuICogICAgICAgdmFsdWU6IDMyMDAwLFxuICogICAgICAgaW1hZ2U6IHsgc3JjOiAnaXBob25lLmpwZycgfVxuICogICAgIH0sXG4gKiAgICAgdGlja2V0UHJpY2U6IDEwMCxcbiAqICAgICBlbmREYXRlOiAnMjAyNC0xMi0yNScsXG4gKiAgICAgc2hvd0NvdW50ZG93bjogdHJ1ZSxcbiAqICAgICBwcmltYXJ5QWN0aW9uOiB7XG4gKiAgICAgICBsYWJlbDogJ0NvbXByYXIgYm9sZXRvcycsXG4gKiAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnXG4gKiAgICAgfVxuICogICB9XCJcbiAqID48L3ZhbC1yYWZmbGUtc3RhdHVzLWNhcmQ+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFJhZmZsZVN0YXR1c0NhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBwcm9wczogUmFmZmxlU3RhdHVzQ2FyZE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBwcmltYXJ5QWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzZWNvbmRhcnlBY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBnZXQgaXNBY3RpdmVPclVwY29taW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnN0YXR1cyA9PT0gJ2FjdGl2ZScgfHwgdGhpcy5wcm9wcy5zdGF0dXMgPT09ICd1cGNvbWluZyc7XG4gIH1cblxuICBnZXQgcHJvZ3Jlc3NQZXJjZW50YWdlKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnByb2dyZXNzKSByZXR1cm4gMDtcbiAgICBjb25zdCB7IHNvbGRUaWNrZXRzLCB0b3RhbFRpY2tldHMgfSA9IHRoaXMucHJvcHMucHJvZ3Jlc3M7XG4gICAgaWYgKHRvdGFsVGlja2V0cyA9PT0gMCkgcmV0dXJuIDA7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoKHNvbGRUaWNrZXRzIC8gdG90YWxUaWNrZXRzKSAqIDEwMCk7XG4gIH1cblxuICBnZXRTdGF0dXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhYmVscyA9IHsgLi4uREVGQVVMVF9TVEFUVVNfTEFCRUxTLCAuLi50aGlzLnByb3BzLnN0YXR1c0xhYmVscyB9O1xuICAgIHJldHVybiBsYWJlbHNbdGhpcy5wcm9wcy5zdGF0dXNdIHx8IHRoaXMucHJvcHMuc3RhdHVzO1xuICB9XG5cbiAgZ2V0U3RhdHVzQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0dXNDb2xvcikgcmV0dXJuIHRoaXMucHJvcHMuc3RhdHVzQ29sb3I7XG4gICAgcmV0dXJuIERFRkFVTFRfU1RBVFVTX0NPTE9SU1t0aGlzLnByb3BzLnN0YXR1c10gfHwgJ21lZGl1bSc7XG4gIH1cblxuICBnZXRQcm9ncmVzc0NvbG9yKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NQZXJjZW50YWdlID49IDEwMCkgcmV0dXJuICdzdWNjZXNzJztcbiAgICBpZiAodGhpcy5wcm9ncmVzc1BlcmNlbnRhZ2UgPj0gNzUpIHJldHVybiAnd2FybmluZyc7XG4gICAgcmV0dXJuICdwcmltYXJ5JztcbiAgfVxuXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudGl0bGUgfHwgJyc7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2NyaXB0aW9uIHx8ICcnO1xuICB9XG5cbiAgZm9ybWF0Q3VycmVuY3koYW1vdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN5bWJvbCA9IHRoaXMucHJvcHMuY3VycmVuY3lTeW1ib2wgfHwgJyQnO1xuICAgIHJldHVybiBgJHtzeW1ib2x9JHthbW91bnQudG9Mb2NhbGVTdHJpbmcoJ2VzLU1YJyl9YDtcbiAgfVxuXG4gIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZCA9IHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKGRhdGUpIDogZGF0ZTtcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoJ2VzLU1YJywge1xuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcbiAgfVxuXG4gIG9uUHJpbWFyeUFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb25DbGljay5lbWl0KCk7XG4gIH1cblxuICBvblNlY29uZGFyeUFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbkNsaWNrLmVtaXQoKTtcbiAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- /**
2
- * Default status labels.
3
- */
4
- export const DEFAULT_STATUS_LABELS = {
5
- upcoming: 'Próximamente',
6
- active: 'Activo',
7
- sold_out: 'Agotado',
8
- drawing: 'Sorteando',
9
- completed: 'Finalizado',
10
- cancelled: 'Cancelado',
11
- };
12
- /**
13
- * Default status colors.
14
- */
15
- export const DEFAULT_STATUS_COLORS = {
16
- upcoming: 'medium',
17
- active: 'success',
18
- sold_out: 'warning',
19
- drawing: 'tertiary',
20
- completed: 'primary',
21
- cancelled: 'danger',
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JhZmZsZS1zdGF0dXMtY2FyZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErSEE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBaUM7SUFDakUsUUFBUSxFQUFFLGNBQWM7SUFDeEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsU0FBUyxFQUFFLFdBQVc7Q0FDdkIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWdDO0lBQ2hFLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxVQUFVO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxRQUFRO0NBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuLyoqXG4gKiBSYWZmbGUgc3RhdHVzIHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIFJhZmZsZVN0YXR1cyA9XG4gIHwgJ3VwY29taW5nJyAgICAvLyBOb3Qgc3RhcnRlZCB5ZXRcbiAgfCAnYWN0aXZlJyAgICAgIC8vIEN1cnJlbnRseSBzZWxsaW5nIHRpY2tldHNcbiAgfCAnc29sZF9vdXQnICAgIC8vIEFsbCB0aWNrZXRzIHNvbGRcbiAgfCAnZHJhd2luZycgICAgIC8vIERyYXcgaW4gcHJvZ3Jlc3NcbiAgfCAnY29tcGxldGVkJyAgIC8vIFdpbm5lciBhbm5vdW5jZWRcbiAgfCAnY2FuY2VsbGVkJzsgIC8vIFJhZmZsZSBjYW5jZWxsZWRcblxuLyoqXG4gKiBSYWZmbGUgcHJvZ3Jlc3MgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmFmZmxlUHJvZ3Jlc3Mge1xuICAvKiogVG90YWwgdGlja2V0cyBhdmFpbGFibGUgKi9cbiAgdG90YWxUaWNrZXRzOiBudW1iZXI7XG4gIC8qKiBUaWNrZXRzIHNvbGQgKi9cbiAgc29sZFRpY2tldHM6IG51bWJlcjtcbiAgLyoqIFRpY2tldHMgcmVzZXJ2ZWQgKG5vdCBwYWlkKSAqL1xuICByZXNlcnZlZFRpY2tldHM/OiBudW1iZXI7XG4gIC8qKiBHb2FsIGFtb3VudCAobW9uZXRhcnkpICovXG4gIGdvYWxBbW91bnQ/OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IGFtb3VudCByYWlzZWQgKi9cbiAgY3VycmVudEFtb3VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcml6ZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHJhZmZsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYWZmbGVQcml6ZSB7XG4gIC8qKiBQcml6ZSBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFByaXplIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogUHJpemUgaW1hZ2UgKi9cbiAgaW1hZ2U/OiBJbWFnZU1ldGFkYXRhO1xuICAvKiogUHJpemUgdmFsdWUgKi9cbiAgdmFsdWU/OiBudW1iZXI7XG4gIC8qKiBDdXJyZW5jeSBmb3IgdmFsdWUgKi9cbiAgY3VycmVuY3k/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIHRoZSByYWZmbGUgc3RhdHVzIGNhcmQgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJhZmZsZVN0YXR1c0NhcmRNZXRhZGF0YSB7XG4gIC8qKiBSYWZmbGUgdGl0bGUgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqIFJhZmZsZSBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnQgc3RhdHVzICovXG4gIHN0YXR1czogUmFmZmxlU3RhdHVzO1xuICAvKiogUHJvZ3Jlc3MgaW5mb3JtYXRpb24gKi9cbiAgcHJvZ3Jlc3M/OiBSYWZmbGVQcm9ncmVzcztcbiAgLyoqIFByaXplIGluZm9ybWF0aW9uICovXG4gIHByaXplPzogUmFmZmxlUHJpemU7XG4gIC8qKiBDb3ZlciBpbWFnZSAqL1xuICBjb3ZlckltYWdlPzogSW1hZ2VNZXRhZGF0YTtcblxuICAvLyA9PT0gRGF0ZXMgPT09XG4gIC8qKiBSYWZmbGUgc3RhcnQgZGF0ZSAqL1xuICBzdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICAvKiogUmFmZmxlIGVuZCBkYXRlIC8gZHJhdyBkYXRlICovXG4gIGVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICAvKiogU2hvdyBjb3VudGRvd24gdG8gZW5kIGRhdGUgKi9cbiAgc2hvd0NvdW50ZG93bj86IGJvb2xlYW47XG5cbiAgLy8gPT09IFByaWNpbmcgPT09XG4gIC8qKiBUaWNrZXQgcHJpY2UgKi9cbiAgdGlja2V0UHJpY2U/OiBudW1iZXI7XG4gIC8qKiBDdXJyZW5jeSAqL1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgLyoqIEN1cnJlbmN5IHN5bWJvbCAqL1xuICBjdXJyZW5jeVN5bWJvbD86IHN0cmluZztcblxuICAvLyA9PT0gRGlzcGxheSBvcHRpb25zID09PVxuICAvKiogQ2FyZCB2YXJpYW50ICovXG4gIHZhcmlhbnQ/OiAnZGVmYXVsdCcgfCAnZmVhdHVyZWQnIHwgJ2NvbXBhY3QnIHwgJ2hvcml6b250YWwnO1xuICAvKiogU2l6ZSAqL1xuICBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbiAgLyoqIFNob3cgcHJvZ3Jlc3MgYmFyICovXG4gIHNob3dQcm9ncmVzcz86IGJvb2xlYW47XG4gIC8qKiBTaG93IHRpY2tldCBzdGF0cyAqL1xuICBzaG93VGlja2V0U3RhdHM/OiBib29sZWFuO1xuICAvKiogU2hvdyBwcmljZSAqL1xuICBzaG93UHJpY2U/OiBib29sZWFuO1xuICAvKiogU2hvdyBkYXRlcyAqL1xuICBzaG93RGF0ZXM/OiBib29sZWFuO1xuICAvKiogU2hvdyBzdGF0dXMgYmFkZ2UgKi9cbiAgc2hvd1N0YXR1c0JhZGdlPzogYm9vbGVhbjtcblxuICAvLyA9PT0gQWN0aW9ucyA9PT1cbiAgLyoqIFByaW1hcnkgYWN0aW9uIGJ1dHRvbiAqL1xuICBwcmltYXJ5QWN0aW9uPzogQnV0dG9uTWV0YWRhdGE7XG4gIC8qKiBTZWNvbmRhcnkgYWN0aW9uIGJ1dHRvbiAqL1xuICBzZWNvbmRhcnlBY3Rpb24/OiBCdXR0b25NZXRhZGF0YTtcblxuICAvLyA9PT0gU3R5bGluZyA9PT1cbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3MgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBTdGF0dXMgY29sb3Igb3ZlcnJpZGUgKi9cbiAgc3RhdHVzQ29sb3I/OiBDb2xvcjtcblxuICAvLyA9PT0gQmVuZWZpY2lhcnkgPT09XG4gIC8qKiBCZW5lZmljaWFyeSBuYW1lICovXG4gIGJlbmVmaWNpYXJ5Pzogc3RyaW5nO1xuICAvKiogQmVuZWZpY2lhcnkgbG9nby9pbWFnZSAqL1xuICBiZW5lZmljaWFyeUltYWdlPzogSW1hZ2VNZXRhZGF0YTtcblxuICAvLyA9PT0gTGFiZWxzID09PVxuICAvKiogQ3VzdG9tIHN0YXR1cyBsYWJlbHMgKi9cbiAgc3RhdHVzTGFiZWxzPzogUGFydGlhbDxSZWNvcmQ8UmFmZmxlU3RhdHVzLCBzdHJpbmc+PjtcblxuICAvLyA9PT0gUmVhY3RpdmUgY29udGVudCA9PT1cbiAgLyoqIENvbnRlbnQgY2xhc3MgZm9yIHJlYWN0aXZlIGNvbnRlbnQgKi9cbiAgY29udGVudENsYXNzPzogc3RyaW5nO1xuICAvKiogQ29udGVudCBrZXkgZm9yIHRpdGxlICovXG4gIHRpdGxlQ29udGVudEtleT86IHN0cmluZztcbiAgLyoqIENvbnRlbnQga2V5IGZvciBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbkNvbnRlbnRLZXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmYXVsdCBzdGF0dXMgbGFiZWxzLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFUVVNfTEFCRUxTOiBSZWNvcmQ8UmFmZmxlU3RhdHVzLCBzdHJpbmc+ID0ge1xuICB1cGNvbWluZzogJ1Byw7N4aW1hbWVudGUnLFxuICBhY3RpdmU6ICdBY3Rpdm8nLFxuICBzb2xkX291dDogJ0Fnb3RhZG8nLFxuICBkcmF3aW5nOiAnU29ydGVhbmRvJyxcbiAgY29tcGxldGVkOiAnRmluYWxpemFkbycsXG4gIGNhbmNlbGxlZDogJ0NhbmNlbGFkbycsXG59O1xuXG4vKipcbiAqIERlZmF1bHQgc3RhdHVzIGNvbG9ycy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RBVFVTX0NPTE9SUzogUmVjb3JkPFJhZmZsZVN0YXR1cywgQ29sb3I+ID0ge1xuICB1cGNvbWluZzogJ21lZGl1bScsXG4gIGFjdGl2ZTogJ3N1Y2Nlc3MnLFxuICBzb2xkX291dDogJ3dhcm5pbmcnLFxuICBkcmF3aW5nOiAndGVydGlhcnknLFxuICBjb21wbGV0ZWQ6ICdwcmltYXJ5JyxcbiAgY2FuY2VsbGVkOiAnZGFuZ2VyJyxcbn07XG4iXX0=
@@ -1,78 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
3
- import { IonCard, IonCardContent } from '@ionic/angular/standalone';
4
- import { LinkComponent } from '../link/link.component';
5
- import { TitleBlockComponent } from '../title-block/title-block.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- /**
9
- * val-recap-card
10
- *
11
- * A decorative card component with geometric shapes, title, and link.
12
- * Useful for recap sections, feature highlights, or promotional content.
13
- *
14
- * @example
15
- * <val-recap-card
16
- * [props]="{
17
- * title: { title: 'Feature Title', subtitle: 'Subtitle here' },
18
- * link: { text: 'Learn more', url: '/features' },
19
- * color: 'primary',
20
- * shapes: [
21
- * { color: '#ffffff33', style: { top: '-20px', right: '-20px', width: '100px', height: '100px' } }
22
- * ]
23
- * }"
24
- * ></val-recap-card>
25
- *
26
- * @input props - Card configuration (title, link, shapes, color)
27
- */
28
- export class RecapCardComponent {
29
- /**
30
- * Merges shape color with additional styles.
31
- */
32
- mergeShapeStyle(shape) {
33
- return { 'background-color': shape.color, ...(shape.style || {}) };
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecapCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RecapCardComponent, isStandalone: true, selector: "val-recap-card", inputs: { props: "props" }, ngImport: i0, template: `
37
- <ion-card class="recap-card" [color]="props.color || ''">
38
- <div class="shapes">
39
- <ng-container *ngFor="let shape of props.shapes">
40
- <div class="shape" [ngStyle]="mergeShapeStyle(shape)"></div>
41
- </ng-container>
42
- </div>
43
- <ion-card-content
44
- class="recap-card__content"
45
- [style.min-height]="props.minHeight || '400px'"
46
- [style.min-width]="props.width || '280px'"
47
- [style.max-width]="props.width || '280px'"
48
- >
49
- <val-title-block [props]="props.title" />
50
- <val-link [props]="props.link" />
51
- </ion-card-content>
52
- </ion-card>
53
- `, isInline: true, styles: [".recap-card{border-radius:24px;box-shadow:0 4px 10px #0000001a;margin:10px;position:relative;overflow:hidden}.recap-card .shapes{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.7;pointer-events:none}.recap-card .shapes .shape{position:absolute;border-radius:50%}.recap-card .recap-card__content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:400px;min-width:280px;max-width:280px;padding:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: LinkComponent, selector: "val-link", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: TitleBlockComponent, selector: "val-title-block", inputs: ["props"] }] }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecapCardComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'val-recap-card', standalone: true, imports: [CommonModule, IonCard, IonCardContent, LinkComponent, TitleBlockComponent], template: `
58
- <ion-card class="recap-card" [color]="props.color || ''">
59
- <div class="shapes">
60
- <ng-container *ngFor="let shape of props.shapes">
61
- <div class="shape" [ngStyle]="mergeShapeStyle(shape)"></div>
62
- </ng-container>
63
- </div>
64
- <ion-card-content
65
- class="recap-card__content"
66
- [style.min-height]="props.minHeight || '400px'"
67
- [style.min-width]="props.width || '280px'"
68
- [style.max-width]="props.width || '280px'"
69
- >
70
- <val-title-block [props]="props.title" />
71
- <val-link [props]="props.link" />
72
- </ion-card-content>
73
- </ion-card>
74
- `, styles: [".recap-card{border-radius:24px;box-shadow:0 4px 10px #0000001a;margin:10px;position:relative;overflow:hidden}.recap-card .shapes{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.7;pointer-events:none}.recap-card .shapes .shape{position:absolute;border-radius:50%}.recap-card .recap-card__content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:400px;min-width:280px;max-width:280px;padding:16px}\n"] }]
75
- }], propDecorators: { props: [{
76
- type: Input
77
- }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXAtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JlY2FwLWNhcmQvcmVjYXAtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFHM0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUF5QkgsTUFBTSxPQUFPLGtCQUFrQjtJQU03Qjs7T0FFRztJQUNILGVBQWUsQ0FBQyxLQUFxQjtRQUNuQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JFLENBQUM7K0dBWFUsa0JBQWtCO21HQUFsQixrQkFBa0Isc0dBcEJuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQsd2lCQWxCUyxZQUFZLGlQQUFFLE9BQU8seUxBQUUsY0FBYywrRUFBRSxhQUFhLDhGQUFFLG1CQUFtQjs7NEZBcUJ4RSxrQkFBa0I7a0JBeEI5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxZQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7OEJBT1EsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNhcmQsIElvbkNhcmRDb250ZW50IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IFJlY2FwQ2FyZE1ldGFkYXRhLCBSZWNhcENhcmRTaGFwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1yZWNhcC1jYXJkXG4gKlxuICogQSBkZWNvcmF0aXZlIGNhcmQgY29tcG9uZW50IHdpdGggZ2VvbWV0cmljIHNoYXBlcywgdGl0bGUsIGFuZCBsaW5rLlxuICogVXNlZnVsIGZvciByZWNhcCBzZWN0aW9ucywgZmVhdHVyZSBoaWdobGlnaHRzLCBvciBwcm9tb3Rpb25hbCBjb250ZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXJlY2FwLWNhcmRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0aXRsZTogeyB0aXRsZTogJ0ZlYXR1cmUgVGl0bGUnLCBzdWJ0aXRsZTogJ1N1YnRpdGxlIGhlcmUnIH0sXG4gKiAgICAgbGluazogeyB0ZXh0OiAnTGVhcm4gbW9yZScsIHVybDogJy9mZWF0dXJlcycgfSxcbiAqICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICogICAgIHNoYXBlczogW1xuICogICAgICAgeyBjb2xvcjogJyNmZmZmZmYzMycsIHN0eWxlOiB7IHRvcDogJy0yMHB4JywgcmlnaHQ6ICctMjBweCcsIHdpZHRoOiAnMTAwcHgnLCBoZWlnaHQ6ICcxMDBweCcgfSB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqID48L3ZhbC1yZWNhcC1jYXJkPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIENhcmQgY29uZmlndXJhdGlvbiAodGl0bGUsIGxpbmssIHNoYXBlcywgY29sb3IpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1yZWNhcC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQ2FyZCwgSW9uQ2FyZENvbnRlbnQsIExpbmtDb21wb25lbnQsIFRpdGxlQmxvY2tDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY2FyZCBjbGFzcz1cInJlY2FwLWNhcmRcIiBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJydcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaGFwZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2hhcGUgb2YgcHJvcHMuc2hhcGVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoYXBlXCIgW25nU3R5bGVdPVwibWVyZ2VTaGFwZVN0eWxlKHNoYXBlKVwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnRcbiAgICAgICAgY2xhc3M9XCJyZWNhcC1jYXJkX19jb250ZW50XCJcbiAgICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwicHJvcHMubWluSGVpZ2h0IHx8ICc0MDBweCdcIlxuICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cInByb3BzLndpZHRoIHx8ICcyODBweCdcIlxuICAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cInByb3BzLndpZHRoIHx8ICcyODBweCdcIlxuICAgICAgPlxuICAgICAgICA8dmFsLXRpdGxlLWJsb2NrIFtwcm9wc109XCJwcm9wcy50aXRsZVwiIC8+XG4gICAgICAgIDx2YWwtbGluayBbcHJvcHNdPVwicHJvcHMubGlua1wiIC8+XG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjYXAtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNhcENhcmRDb21wb25lbnQge1xuICAvKipcbiAgICogQ2FyZCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHMhOiBSZWNhcENhcmRNZXRhZGF0YTtcblxuICAvKipcbiAgICogTWVyZ2VzIHNoYXBlIGNvbG9yIHdpdGggYWRkaXRpb25hbCBzdHlsZXMuXG4gICAqL1xuICBtZXJnZVNoYXBlU3R5bGUoc2hhcGU6IFJlY2FwQ2FyZFNoYXBlKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHsgJ2JhY2tncm91bmQtY29sb3InOiBzaGFwZS5jb2xvciwgLi4uKHNoYXBlLnN0eWxlIHx8IHt9KSB9O1xuICB9XG59XG4iXX0=