valtech-components 2.0.1034 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/box/box.component.mjs +6 -8
- package/esm2022/lib/components/atoms/button/factory.mjs +24 -217
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +2 -4
- package/esm2022/lib/components/atoms/href/href.component.mjs +1 -2
- package/esm2022/lib/components/atoms/image/image.component.mjs +36 -3
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +4 -9
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/lib/components/molecules/card/card.component.mjs +53 -10
- package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +27 -36
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +44 -6
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +32 -7
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +28 -12
- package/esm2022/lib/components/molecules/cta-card/cta-card.component.mjs +4 -9
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +240 -0
- package/esm2022/lib/components/molecules/date-picker/date-picker.i18n.mjs +6 -0
- package/esm2022/lib/components/molecules/date-picker/types.mjs +2 -0
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +7 -7
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +159 -71
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +7 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +30 -5
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +75 -19
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +42 -9
- package/esm2022/lib/components/molecules/permission-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +88 -12
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +15 -7
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +93 -7
- package/esm2022/lib/components/organisms/change-email-modal/change-email-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +4 -4
- package/esm2022/lib/components/organisms/form/form.component.mjs +62 -20
- package/esm2022/lib/components/organisms/login/login.component.mjs +8 -8
- package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/services/presets/default-presets.mjs +45 -0
- package/esm2022/lib/services/presets/index.mjs +3 -1
- package/esm2022/lib/services/presets/preset.service.mjs +17 -4
- package/esm2022/lib/services/requests/request-form-builder.service.mjs +8 -3
- package/esm2022/lib/shared/utils/ionic-color.mjs +36 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +4 -8
- package/fesm2022/valtech-components.mjs +1381 -1027
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/box/box.component.d.ts +2 -5
- package/lib/components/atoms/button/factory.d.ts +15 -69
- package/lib/components/atoms/divider/divider.component.d.ts +1 -4
- package/lib/components/atoms/href/href.component.d.ts +2 -3
- package/lib/components/atoms/image/image.component.d.ts +5 -0
- package/lib/components/molecules/action-card/action-card.component.d.ts +1 -1
- package/lib/components/molecules/card/card.component.d.ts +2 -1
- package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +2 -3
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +5 -0
- package/lib/components/molecules/command-display/command-display.component.d.ts +4 -0
- package/lib/components/molecules/comment/comment.component.d.ts +3 -0
- package/lib/components/molecules/cta-card/cta-card.component.d.ts +0 -1
- package/lib/components/molecules/date-picker/date-picker.component.d.ts +50 -0
- package/lib/components/molecules/date-picker/date-picker.i18n.d.ts +3 -0
- package/lib/components/molecules/date-picker/types.d.ts +30 -0
- package/lib/components/molecules/hint/hint.component.d.ts +11 -1
- package/lib/components/molecules/pagination/pagination.component.d.ts +5 -0
- package/lib/components/molecules/password-input/password-input.component.d.ts +4 -2
- package/lib/components/molecules/permission-selector/types.d.ts +1 -0
- package/lib/components/molecules/rating/rating.component.d.ts +11 -0
- package/lib/components/molecules/text-input/text-input.component.d.ts +21 -0
- package/lib/components/organisms/form/form.component.d.ts +19 -0
- package/lib/components/types.d.ts +21 -1
- package/lib/services/presets/default-presets.d.ts +22 -0
- package/lib/services/presets/index.d.ts +1 -0
- package/lib/services/presets/preset.service.d.ts +4 -0
- package/lib/shared/utils/ionic-color.d.ts +20 -0
- package/lib/version.d.ts +1 -1
- package/package.json +3 -2
- package/public-api.d.ts +3 -7
- package/src/lib/components/styles/mixins.scss +16 -0
- package/esm2022/lib/components/molecules/content-card/content-card.component.mjs +0 -86
- package/esm2022/lib/components/molecules/content-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
- package/esm2022/lib/components/molecules/info-card/info-card.component.mjs +0 -126
- package/esm2022/lib/components/molecules/info-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
- package/lib/components/molecules/content-card/content-card.component.d.ts +0 -26
- package/lib/components/molecules/content-card/types.d.ts +0 -30
- package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
- package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
- package/lib/components/molecules/info-card/info-card.component.d.ts +0 -37
- package/lib/components/molecules/info-card/types.d.ts +0 -44
- package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Injectable, DestroyRef, Inject, signal, computed, PLATFORM_ID, isDevMode, Optional, runInInjectionContext, effect, Pipe, TemplateRef, ViewContainerRef, input, Directive, EventEmitter, Component, Input, Output, ChangeDetectionStrategy, HostBinding, HostListener, NgZone, ViewChild, ChangeDetectorRef, output, ContentChild, model, ElementRef, viewChild, untracked, Injector,
|
|
2
|
+
import { inject, InjectionToken, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Injectable, DestroyRef, Inject, signal, computed, PLATFORM_ID, isDevMode, Optional, runInInjectionContext, effect, Pipe, TemplateRef, ViewContainerRef, input, Directive, EventEmitter, Component, Input, Output, ChangeDetectionStrategy, HostBinding, HostListener, NgZone, ViewChild, ChangeDetectorRef, output, ContentChild, model, ElementRef, viewChild, untracked, Injector, ViewEncapsulation, isSignal } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, throwError, Subject, map, distinctUntilChanged, filter as filter$1, take as take$1, firstValueFrom, of, from, EMPTY, Observable, interval, debounceTime, switchMap as switchMap$1, catchError as catchError$1, takeUntil, isObservable, forkJoin, race, timer, shareReplay } from 'rxjs';
|
|
4
4
|
import { catchError, switchMap, finalize, filter, take, map as map$1, tap, distinctUntilChanged as distinctUntilChanged$1, retry, timeout, debounceTime as debounceTime$1, takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
5
5
|
import * as i1$3 from '@angular/common/http';
|
|
@@ -23,7 +23,7 @@ import { IonicModule, ToastController, NavController } from '@ionic/angular';
|
|
|
23
23
|
import { isSupported, getMessaging as getMessaging$1 } from 'firebase/messaging';
|
|
24
24
|
import { getApps, getApp, initializeApp as initializeApp$1 } from 'firebase/app';
|
|
25
25
|
import * as i2$1 from '@ionic/angular/standalone';
|
|
26
|
-
import { AlertController, IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonTextarea, IonDatetime,
|
|
26
|
+
import { AlertController, IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonRadio, IonRadioGroup, IonTextarea, IonDatetime, IonSelect, IonSelectOption, IonPopover, IonList, IonItem, IonInput, IonRange, IonSearchbar, IonSegment, IonSegmentButton, IonToggle, IonRippleEffect, IonAccordion, IonAccordionGroup, IonTabBar, IonTabButton, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonChip, IonNote, IonDatetimeButton, ToastController as ToastController$1, IonCol, IonRow, IonRefresher, IonRefresherContent, IonMenuButton, IonFooter, IonListHeader, IonInfiniteScroll, IonInfiniteScrollContent, IonGrid, MenuController, IonMenu, IonMenuToggle, IonSplitPane } from '@ionic/angular/standalone';
|
|
27
27
|
import { addIcons } from 'ionicons';
|
|
28
28
|
import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, settings, settingsOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notifications, notificationsOutline, openOutline, closeOutline, chatbubblesOutline, shareOutline, heart, heartOutline, home, homeOutline, eyeOffOutline, eyeOutline, scanOutline, chevronDownOutline, chevronForwardOutline, checkmarkOutline, clipboardOutline, copyOutline, filterOutline, locationOutline, calendarOutline, businessOutline, logoTwitter, logoInstagram, logoLinkedin, logoYoutube, logoTiktok, logoFacebook, logoGoogle, createOutline, trashOutline, playOutline, peopleOutline, phonePortraitOutline, refreshOutline, documentTextOutline, lockClosedOutline, informationCircleOutline, logoNpm, removeOutline, optionsOutline, personOutline, shieldCheckmarkOutline, keyOutline, desktopOutline, logOutOutline, cloudDownloadOutline, cloudOutline, gitBranchOutline, layersOutline, serverOutline, warningOutline, bulbOutline, lockOpenOutline, diamondOutline, add, close, share, create, trash, star, camera, mic, send, downloadOutline, chevronDown, language, globeOutline, checkmark, list, grid, apps, menu, search, person, helpCircle, informationCircle, documentText, mail, calendar, folder, chevronForward, ellipsisHorizontal, chevronBack, playBack, playForward, ellipse, starOutline, starHalf, heartHalf, checkmarkCircle, timeOutline, flag, trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, chatbubbleOutline, thumbsUpOutline, thumbsUp, happyOutline, happy, sadOutline, sad, chevronUp, pin, pencil, callOutline, logoWhatsapp, paperPlaneOutline, mailOutline, chevronDownCircleOutline, closeCircle, alertCircle, logoApple, logoMicrosoft, linkOutline, unlinkOutline, cloudOfflineOutline, documentOutline, attachOutline, cameraOutline, closeCircleOutline, imageOutline, chevronBackOutline, sendOutline, chatbubbleEllipsesOutline, swapVerticalOutline, chevronUpOutline, searchOutline, cartOutline, chatbubble, compass, compassOutline, gridOutline, listOutline, folderOutline, documents, documentsOutline, statsChart, statsChartOutline, laptopOutline, swapHorizontalOutline, cloudUploadOutline, notificationsOffOutline, alarmOutline, chatboxEllipsesOutline, checkmarkDoneOutline, cogOutline, shareSocialOutline, helpCircleOutline, menuOutline, stopCircleOutline, videocamOffOutline } from 'ionicons/icons';
|
|
29
29
|
import { Browser } from '@capacitor/browser';
|
|
@@ -46,6 +46,7 @@ import { Navigation, Pagination, EffectFade, EffectCube, EffectCoverflow, Effect
|
|
|
46
46
|
import { SwUpdate } from '@angular/service-worker';
|
|
47
47
|
import { ImageCropperComponent } from 'ngx-image-cropper';
|
|
48
48
|
import Compressor from 'compressorjs';
|
|
49
|
+
import { Calendar } from 'vanilla-calendar-pro';
|
|
49
50
|
import { Capacitor } from '@capacitor/core';
|
|
50
51
|
import 'prismjs/components/prism-scss';
|
|
51
52
|
import 'prismjs/components/prism-json';
|
|
@@ -55,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
|
|
|
55
56
|
* Current version of valtech-components.
|
|
56
57
|
* This is automatically updated during the publish process.
|
|
57
58
|
*/
|
|
58
|
-
const VERSION = '
|
|
59
|
+
const VERSION = '4.0.0';
|
|
59
60
|
|
|
60
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
61
62
|
let isRefreshing = false;
|
|
@@ -9441,6 +9442,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9441
9442
|
}]
|
|
9442
9443
|
}], ctorParameters: () => [] });
|
|
9443
9444
|
|
|
9445
|
+
/**
|
|
9446
|
+
* Presets de botón por defecto provistos por la librería.
|
|
9447
|
+
*
|
|
9448
|
+
* Son el reemplazo recomendado de las factories deprecadas de
|
|
9449
|
+
* `atoms/button/factory.ts`: en vez de construir el `ButtonMetadata` a mano,
|
|
9450
|
+
* el consumer usa `<val-button preset="primary-round" [props]="{ text }">`.
|
|
9451
|
+
*
|
|
9452
|
+
* Cada preset define solo el ESTILO reutilizable (color/fill/shape/expand/size).
|
|
9453
|
+
* El `text`, `type`, `state`, `icon` y `href` se pasan por `[props]` en cada uso.
|
|
9454
|
+
*
|
|
9455
|
+
* Disponibles sin configuración: `PresetService` los siembra de fábrica y
|
|
9456
|
+
* `provideValtechPresets` los preserva (las apps EXTIENDEN estos defaults en
|
|
9457
|
+
* vez de pisarlos). Una app puede sobrescribir un preset declarando la misma
|
|
9458
|
+
* clave bajo `button` en su `APP_PRESETS`.
|
|
9459
|
+
*/
|
|
9460
|
+
const DEFAULT_BUTTON_PRESETS = {
|
|
9461
|
+
// Primary
|
|
9462
|
+
primary: { color: 'primary', fill: 'solid' },
|
|
9463
|
+
'primary-round': { color: 'primary', fill: 'solid', shape: 'round' },
|
|
9464
|
+
'primary-block': { color: 'primary', fill: 'solid', expand: 'block' },
|
|
9465
|
+
'primary-full': { color: 'primary', fill: 'solid', expand: 'full' },
|
|
9466
|
+
// Secondary
|
|
9467
|
+
secondary: { color: 'secondary', fill: 'solid' },
|
|
9468
|
+
'secondary-round': { color: 'secondary', fill: 'solid', shape: 'round' },
|
|
9469
|
+
// Generic solid (color-agnostic — color comes from val-button default / props)
|
|
9470
|
+
solid: { fill: 'solid' },
|
|
9471
|
+
'solid-round': { fill: 'solid', shape: 'round' },
|
|
9472
|
+
'solid-block': { color: 'primary', fill: 'solid', expand: 'block' },
|
|
9473
|
+
// Outline / Clear
|
|
9474
|
+
outline: { fill: 'outline' },
|
|
9475
|
+
'outline-round': { fill: 'outline', shape: 'round' },
|
|
9476
|
+
clear: { fill: 'clear' },
|
|
9477
|
+
'clear-round': { fill: 'clear', shape: 'round' },
|
|
9478
|
+
// Intent
|
|
9479
|
+
danger: { color: 'danger', fill: 'solid' },
|
|
9480
|
+
'danger-round': { color: 'danger', fill: 'solid', shape: 'round' },
|
|
9481
|
+
};
|
|
9482
|
+
/**
|
|
9483
|
+
* Presets que la librería siembra de fábrica en `PresetService`.
|
|
9484
|
+
* Hoy solo botón; agregar otros componentes acá a medida que se definan.
|
|
9485
|
+
*/
|
|
9486
|
+
const DEFAULT_PRESETS = {
|
|
9487
|
+
button: DEFAULT_BUTTON_PRESETS,
|
|
9488
|
+
};
|
|
9489
|
+
|
|
9444
9490
|
/**
|
|
9445
9491
|
* Servicio para gestionar presets de componentes.
|
|
9446
9492
|
*
|
|
@@ -9458,7 +9504,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9458
9504
|
*/
|
|
9459
9505
|
class PresetService {
|
|
9460
9506
|
constructor() {
|
|
9461
|
-
|
|
9507
|
+
// Seeded with library defaults (e.g. button presets). Apps EXTEND these via
|
|
9508
|
+
// registerPresets (merge), so the defaults survive app-level registration.
|
|
9509
|
+
this._presets = signal(structuredClone(DEFAULT_PRESETS));
|
|
9462
9510
|
}
|
|
9463
9511
|
/**
|
|
9464
9512
|
* Obtiene un preset específico para un componente
|
|
@@ -9498,6 +9546,10 @@ class PresetService {
|
|
|
9498
9546
|
*
|
|
9499
9547
|
* @param presets Configuración de presets
|
|
9500
9548
|
*
|
|
9549
|
+
* Hace MERGE por componente sobre lo ya registrado (incluidos los defaults
|
|
9550
|
+
* de la librería), así que las apps EXTIENDEN los presets existentes en vez
|
|
9551
|
+
* de reemplazarlos. Para sobrescribir un preset, declarar la misma clave.
|
|
9552
|
+
*
|
|
9501
9553
|
* @example
|
|
9502
9554
|
* presets.registerPresets({
|
|
9503
9555
|
* button: {
|
|
@@ -9509,13 +9561,19 @@ class PresetService {
|
|
|
9509
9561
|
* });
|
|
9510
9562
|
*/
|
|
9511
9563
|
registerPresets(presets) {
|
|
9512
|
-
this._presets.
|
|
9564
|
+
this._presets.update(current => {
|
|
9565
|
+
const merged = { ...current };
|
|
9566
|
+
for (const [component, componentPresets] of Object.entries(presets)) {
|
|
9567
|
+
merged[component] = { ...(current[component] ?? {}), ...componentPresets };
|
|
9568
|
+
}
|
|
9569
|
+
return merged;
|
|
9570
|
+
});
|
|
9513
9571
|
}
|
|
9514
9572
|
/**
|
|
9515
9573
|
* Agrega presets para un componente específico (merge con existentes)
|
|
9516
9574
|
*/
|
|
9517
9575
|
registerComponentPresets(component, presets) {
|
|
9518
|
-
this._presets.update(
|
|
9576
|
+
this._presets.update(current => ({
|
|
9519
9577
|
...current,
|
|
9520
9578
|
[component]: {
|
|
9521
9579
|
...current[component],
|
|
@@ -9679,95 +9737,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9679
9737
|
type: Output
|
|
9680
9738
|
}] } });
|
|
9681
9739
|
|
|
9682
|
-
/* eslint-disable no-underscore-dangle */
|
|
9683
|
-
/**
|
|
9684
|
-
* Service for registering and managing custom Ionicons icons in the application.
|
|
9685
|
-
* Automatically registers a set of commonly used icons on initialization.
|
|
9686
|
-
*/
|
|
9687
|
-
class IconService {
|
|
9688
|
-
/**
|
|
9689
|
-
* Registers a set of Ionicons icons for use throughout the app.
|
|
9690
|
-
*/
|
|
9691
|
-
constructor() {
|
|
9692
|
-
addIcons({
|
|
9693
|
-
addOutline,
|
|
9694
|
-
addCircleOutline,
|
|
9695
|
-
alertOutline,
|
|
9696
|
-
alertCircleOutline,
|
|
9697
|
-
arrowBackOutline,
|
|
9698
|
-
arrowForwardOutline,
|
|
9699
|
-
arrowDownOutline,
|
|
9700
|
-
settings,
|
|
9701
|
-
settingsOutline,
|
|
9702
|
-
checkmarkCircleOutline,
|
|
9703
|
-
ellipsisHorizontalOutline,
|
|
9704
|
-
notifications,
|
|
9705
|
-
notificationsOutline,
|
|
9706
|
-
openOutline,
|
|
9707
|
-
closeOutline,
|
|
9708
|
-
chatbubblesOutline,
|
|
9709
|
-
shareOutline,
|
|
9710
|
-
heart,
|
|
9711
|
-
heartOutline,
|
|
9712
|
-
home,
|
|
9713
|
-
homeOutline,
|
|
9714
|
-
eyeOffOutline,
|
|
9715
|
-
eyeOutline,
|
|
9716
|
-
scanOutline,
|
|
9717
|
-
chevronDownOutline,
|
|
9718
|
-
chevronForwardOutline,
|
|
9719
|
-
checkmarkOutline,
|
|
9720
|
-
clipboardOutline,
|
|
9721
|
-
copyOutline,
|
|
9722
|
-
filterOutline,
|
|
9723
|
-
locationOutline,
|
|
9724
|
-
calendarOutline,
|
|
9725
|
-
businessOutline,
|
|
9726
|
-
logoTwitter,
|
|
9727
|
-
logoInstagram,
|
|
9728
|
-
logoLinkedin,
|
|
9729
|
-
logoYoutube,
|
|
9730
|
-
logoTiktok,
|
|
9731
|
-
logoFacebook,
|
|
9732
|
-
logoGoogle,
|
|
9733
|
-
createOutline,
|
|
9734
|
-
trashOutline,
|
|
9735
|
-
playOutline,
|
|
9736
|
-
peopleOutline,
|
|
9737
|
-
phonePortraitOutline,
|
|
9738
|
-
refreshOutline,
|
|
9739
|
-
documentTextOutline,
|
|
9740
|
-
lockClosedOutline,
|
|
9741
|
-
informationCircleOutline,
|
|
9742
|
-
logoNpm,
|
|
9743
|
-
removeOutline,
|
|
9744
|
-
optionsOutline,
|
|
9745
|
-
personOutline,
|
|
9746
|
-
shieldCheckmarkOutline,
|
|
9747
|
-
keyOutline,
|
|
9748
|
-
desktopOutline,
|
|
9749
|
-
logOutOutline,
|
|
9750
|
-
cloudDownloadOutline,
|
|
9751
|
-
cloudOutline,
|
|
9752
|
-
gitBranchOutline,
|
|
9753
|
-
layersOutline,
|
|
9754
|
-
serverOutline,
|
|
9755
|
-
warningOutline,
|
|
9756
|
-
bulbOutline,
|
|
9757
|
-
lockOpenOutline,
|
|
9758
|
-
diamondOutline,
|
|
9759
|
-
});
|
|
9760
|
-
}
|
|
9761
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9762
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, providedIn: 'root' }); }
|
|
9763
|
-
}
|
|
9764
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, decorators: [{
|
|
9765
|
-
type: Injectable,
|
|
9766
|
-
args: [{
|
|
9767
|
-
providedIn: 'root',
|
|
9768
|
-
}]
|
|
9769
|
-
}], ctorParameters: () => [] });
|
|
9770
|
-
|
|
9771
9740
|
/**
|
|
9772
9741
|
* val-box
|
|
9773
9742
|
*
|
|
@@ -9782,17 +9751,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9782
9751
|
* @output onClick - Emits when the box or its icon is clicked
|
|
9783
9752
|
*/
|
|
9784
9753
|
class BoxComponent {
|
|
9785
|
-
constructor(
|
|
9754
|
+
constructor() {
|
|
9786
9755
|
/**
|
|
9787
9756
|
* Event emitted when the box or its icon is clicked.
|
|
9788
9757
|
*/
|
|
9789
9758
|
this.onClick = new EventEmitter();
|
|
9790
9759
|
}
|
|
9791
|
-
ngOnInit() { }
|
|
9792
9760
|
clickHandler() {
|
|
9793
9761
|
this.onClick.emit();
|
|
9794
9762
|
}
|
|
9795
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BoxComponent, deps: [
|
|
9763
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9796
9764
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BoxComponent, isStandalone: true, selector: "val-box", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
9797
9765
|
<ion-card
|
|
9798
9766
|
class="box"
|
|
@@ -9844,7 +9812,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
9844
9812
|
</div>
|
|
9845
9813
|
</ion-card>
|
|
9846
9814
|
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.bordered{border:.0625rem solid var(--ion-color-medium)}.box{width:100%;margin:0rem;border-radius:0rem;box-shadow:none;padding:0rem}.box.rounded{border-radius:1.125rem}.icon{cursor:pointer;margin:0rem;padding:0rem;position:absolute;right:.25rem;top:.25rem;font-size:1.5rem}@media (min-width: 768px){.icon{right:.5rem;top:.5rem;font-size:2rem}}.left-border{border-left:.1875rem solid #dde3ed}.left-border.small{border-width:.1875rem}.left-border.medium{border-width:.375rem}.left-border.large{border-width:.4375rem}.left-border.xlarge{border-width:.5rem}.transparent{--background: transparent}\n"] }]
|
|
9847
|
-
}],
|
|
9815
|
+
}], propDecorators: { props: [{
|
|
9848
9816
|
type: Input
|
|
9849
9817
|
}], onClick: [{
|
|
9850
9818
|
type: Output
|
|
@@ -10132,6 +10100,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10132
10100
|
}]
|
|
10133
10101
|
}] });
|
|
10134
10102
|
|
|
10103
|
+
/* eslint-disable no-underscore-dangle */
|
|
10104
|
+
/**
|
|
10105
|
+
* Service for registering and managing custom Ionicons icons in the application.
|
|
10106
|
+
* Automatically registers a set of commonly used icons on initialization.
|
|
10107
|
+
*/
|
|
10108
|
+
class IconService {
|
|
10109
|
+
/**
|
|
10110
|
+
* Registers a set of Ionicons icons for use throughout the app.
|
|
10111
|
+
*/
|
|
10112
|
+
constructor() {
|
|
10113
|
+
addIcons({
|
|
10114
|
+
addOutline,
|
|
10115
|
+
addCircleOutline,
|
|
10116
|
+
alertOutline,
|
|
10117
|
+
alertCircleOutline,
|
|
10118
|
+
arrowBackOutline,
|
|
10119
|
+
arrowForwardOutline,
|
|
10120
|
+
arrowDownOutline,
|
|
10121
|
+
settings,
|
|
10122
|
+
settingsOutline,
|
|
10123
|
+
checkmarkCircleOutline,
|
|
10124
|
+
ellipsisHorizontalOutline,
|
|
10125
|
+
notifications,
|
|
10126
|
+
notificationsOutline,
|
|
10127
|
+
openOutline,
|
|
10128
|
+
closeOutline,
|
|
10129
|
+
chatbubblesOutline,
|
|
10130
|
+
shareOutline,
|
|
10131
|
+
heart,
|
|
10132
|
+
heartOutline,
|
|
10133
|
+
home,
|
|
10134
|
+
homeOutline,
|
|
10135
|
+
eyeOffOutline,
|
|
10136
|
+
eyeOutline,
|
|
10137
|
+
scanOutline,
|
|
10138
|
+
chevronDownOutline,
|
|
10139
|
+
chevronForwardOutline,
|
|
10140
|
+
checkmarkOutline,
|
|
10141
|
+
clipboardOutline,
|
|
10142
|
+
copyOutline,
|
|
10143
|
+
filterOutline,
|
|
10144
|
+
locationOutline,
|
|
10145
|
+
calendarOutline,
|
|
10146
|
+
businessOutline,
|
|
10147
|
+
logoTwitter,
|
|
10148
|
+
logoInstagram,
|
|
10149
|
+
logoLinkedin,
|
|
10150
|
+
logoYoutube,
|
|
10151
|
+
logoTiktok,
|
|
10152
|
+
logoFacebook,
|
|
10153
|
+
logoGoogle,
|
|
10154
|
+
createOutline,
|
|
10155
|
+
trashOutline,
|
|
10156
|
+
playOutline,
|
|
10157
|
+
peopleOutline,
|
|
10158
|
+
phonePortraitOutline,
|
|
10159
|
+
refreshOutline,
|
|
10160
|
+
documentTextOutline,
|
|
10161
|
+
lockClosedOutline,
|
|
10162
|
+
informationCircleOutline,
|
|
10163
|
+
logoNpm,
|
|
10164
|
+
removeOutline,
|
|
10165
|
+
optionsOutline,
|
|
10166
|
+
personOutline,
|
|
10167
|
+
shieldCheckmarkOutline,
|
|
10168
|
+
keyOutline,
|
|
10169
|
+
desktopOutline,
|
|
10170
|
+
logOutOutline,
|
|
10171
|
+
cloudDownloadOutline,
|
|
10172
|
+
cloudOutline,
|
|
10173
|
+
gitBranchOutline,
|
|
10174
|
+
layersOutline,
|
|
10175
|
+
serverOutline,
|
|
10176
|
+
warningOutline,
|
|
10177
|
+
bulbOutline,
|
|
10178
|
+
lockOpenOutline,
|
|
10179
|
+
diamondOutline,
|
|
10180
|
+
});
|
|
10181
|
+
}
|
|
10182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10183
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, providedIn: 'root' }); }
|
|
10184
|
+
}
|
|
10185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconService, decorators: [{
|
|
10186
|
+
type: Injectable,
|
|
10187
|
+
args: [{
|
|
10188
|
+
providedIn: 'root',
|
|
10189
|
+
}]
|
|
10190
|
+
}], ctorParameters: () => [] });
|
|
10191
|
+
|
|
10135
10192
|
/**
|
|
10136
10193
|
* Configuracion por defecto para header tipo 'home'
|
|
10137
10194
|
*/
|
|
@@ -10555,222 +10612,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10555
10612
|
type: Output
|
|
10556
10613
|
}] } });
|
|
10557
10614
|
|
|
10558
|
-
const Icon = (name, slot) => {
|
|
10559
|
-
|
|
10560
|
-
|
|
10561
|
-
|
|
10562
|
-
|
|
10563
|
-
|
|
10564
|
-
|
|
10565
|
-
|
|
10566
|
-
|
|
10567
|
-
|
|
10568
|
-
|
|
10569
|
-
|
|
10570
|
-
|
|
10571
|
-
|
|
10572
|
-
|
|
10573
|
-
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10577
|
-
|
|
10578
|
-
|
|
10579
|
-
|
|
10580
|
-
const
|
|
10581
|
-
return { ...BaseDefault(text, type), fill: 'solid' };
|
|
10582
|
-
};
|
|
10583
|
-
const SolidDefaultRound = (text, type) => {
|
|
10584
|
-
return { ...SolidDefault(text, type), shape: 'round' };
|
|
10585
|
-
};
|
|
10586
|
-
const OutlineDefault = (text, type) => {
|
|
10587
|
-
return { ...BaseDefault(text, type), fill: 'outline' };
|
|
10588
|
-
};
|
|
10589
|
-
const OutlineDefaultRound = (text, type) => {
|
|
10590
|
-
return { ...OutlineDefault(text, type), shape: 'round' };
|
|
10591
|
-
};
|
|
10592
|
-
const ClearDefaultFull = (text, type) => {
|
|
10593
|
-
return { ...ClearDefault(text, type), expand: 'full' };
|
|
10594
|
-
};
|
|
10595
|
-
const ClearDefaultRoundFull = (text, type) => {
|
|
10596
|
-
return { ...ClearDefaultRound(text, type), expand: 'full' };
|
|
10597
|
-
};
|
|
10598
|
-
const ClearDefaultBlock = (text, type) => {
|
|
10599
|
-
return { ...ClearDefault(text, type), expand: 'block' };
|
|
10600
|
-
};
|
|
10601
|
-
const ClearDefaultRoundBlock = (text, type) => {
|
|
10602
|
-
return { ...ClearDefaultRound(text, type), expand: 'block' };
|
|
10603
|
-
};
|
|
10604
|
-
const SolidDefaultFull = (text, type) => {
|
|
10605
|
-
return { ...SolidDefault(text, type), expand: 'full' };
|
|
10606
|
-
};
|
|
10607
|
-
const SolidDefaultRoundFull = (text, type) => {
|
|
10608
|
-
return { ...SolidDefaultRound(text, type), expand: 'full' };
|
|
10609
|
-
};
|
|
10610
|
-
const SolidDefaultBlock = (text, type) => {
|
|
10611
|
-
return { ...SolidDefault(text, type), expand: 'block' };
|
|
10612
|
-
};
|
|
10613
|
-
const SolidDefaultRoundBlock = (text, type) => {
|
|
10614
|
-
return { ...SolidDefaultRound(text, type), expand: 'block' };
|
|
10615
|
-
};
|
|
10616
|
-
const OutlineDefaultFull = (text, type) => {
|
|
10617
|
-
return { ...OutlineDefault(text, type), expand: 'full' };
|
|
10618
|
-
};
|
|
10619
|
-
const OutlineDefaultRoundFull = (text, type) => {
|
|
10620
|
-
return { ...OutlineDefaultRound(text, type), expand: 'full' };
|
|
10621
|
-
};
|
|
10622
|
-
const OutlineDefaultBlock = (text, type) => {
|
|
10623
|
-
return { ...OutlineDefault(text, type), expand: 'block' };
|
|
10624
|
-
};
|
|
10625
|
-
const OutlineDefaultRoundBlock = (text, type) => {
|
|
10626
|
-
return { ...OutlineDefaultRound(text, type), expand: 'block' };
|
|
10627
|
-
};
|
|
10628
|
-
const SolidDefaultButton = (text) => {
|
|
10629
|
-
return SolidDefault(text, 'button');
|
|
10630
|
-
};
|
|
10631
|
-
const SolidSmallButton = (text) => {
|
|
10632
|
-
return { ...SolidDefault(text, 'button'), size: 'small' };
|
|
10633
|
-
};
|
|
10634
|
-
const SolidLargeButton = (text) => {
|
|
10635
|
-
return { ...SolidDefault(text, 'button'), size: 'large' };
|
|
10636
|
-
};
|
|
10637
|
-
const SolidDefaultRoundButton = (text) => {
|
|
10638
|
-
return SolidDefaultRound(text, 'button');
|
|
10639
|
-
};
|
|
10640
|
-
const SolidSmallRoundButton = (text) => {
|
|
10641
|
-
return { ...SolidDefaultRound(text, 'button'), size: 'small' };
|
|
10642
|
-
};
|
|
10643
|
-
const SolidLargeRoundButton = (text) => {
|
|
10644
|
-
return { ...SolidDefaultRound(text, 'button'), size: 'large' };
|
|
10645
|
-
};
|
|
10646
|
-
const SolidFullButton = (text) => {
|
|
10647
|
-
return SolidDefaultFull(text, 'button');
|
|
10648
|
-
};
|
|
10649
|
-
const SolidBlockButton = (text) => {
|
|
10650
|
-
return SolidDefaultBlock(text, 'button');
|
|
10651
|
-
};
|
|
10652
|
-
/** PRIMARY */
|
|
10653
|
-
const PrimarySolidDefaultRoundButton = (text) => {
|
|
10654
|
-
return { ...SolidDefaultRoundButton(text), color: 'primary' };
|
|
10655
|
-
};
|
|
10656
|
-
const PrimarySolidDefaultRoundIconButton = (text, icon) => {
|
|
10657
|
-
return { ...PrimarySolidDefaultRoundButton(text), icon };
|
|
10658
|
-
};
|
|
10659
|
-
const PrimarySolidDefaultRoundHrefButton = (text, href, target) => {
|
|
10660
|
-
return { ...PrimarySolidDefaultRoundButton(text), href, target };
|
|
10661
|
-
};
|
|
10662
|
-
const PrimarySolidDefaultRoundIconHrefButton = (text, icon, href, target) => {
|
|
10663
|
-
return { ...PrimarySolidDefaultRoundIconButton(text, icon), href, target };
|
|
10664
|
-
};
|
|
10665
|
-
const PrimarySolidSmallRoundButton = (text) => {
|
|
10666
|
-
return { ...SolidSmallRoundButton(text), color: 'primary' };
|
|
10667
|
-
};
|
|
10668
|
-
const PrimarySolidSmallRoundIconButton = (text, icon) => {
|
|
10669
|
-
return { ...PrimarySolidSmallRoundButton(text), icon };
|
|
10670
|
-
};
|
|
10671
|
-
const PrimarySolidSmallRoundHrefButton = (text, href, target) => {
|
|
10672
|
-
return { ...PrimarySolidSmallRoundButton(text), href, target };
|
|
10673
|
-
};
|
|
10674
|
-
const PrimarySolidSmallRoundIconHrefButton = (text, icon, href, target) => {
|
|
10675
|
-
return { ...PrimarySolidSmallRoundIconButton(text, icon), href, target };
|
|
10676
|
-
};
|
|
10677
|
-
const PrimarySolidLargeRoundButton = (text) => {
|
|
10678
|
-
return { ...SolidLargeRoundButton(text), color: 'primary' };
|
|
10679
|
-
};
|
|
10680
|
-
const PrimarySolidLargeRoundIconButton = (text, icon) => {
|
|
10681
|
-
return { ...PrimarySolidLargeRoundButton(text), icon };
|
|
10682
|
-
};
|
|
10683
|
-
const PrimarySolidLargeRoundHrefButton = (text, href, target) => {
|
|
10684
|
-
return { ...PrimarySolidLargeRoundButton(text), href, target };
|
|
10685
|
-
};
|
|
10686
|
-
const PrimarySolidLargeRoundIconHrefButton = (text, icon, href, target) => {
|
|
10687
|
-
return { ...PrimarySolidLargeRoundIconButton(text, icon), href, target };
|
|
10688
|
-
};
|
|
10689
|
-
const PrimarySolidBlockButton = (text) => {
|
|
10690
|
-
return { ...SolidBlockButton(text), color: 'primary' };
|
|
10691
|
-
};
|
|
10692
|
-
const PrimarySolidBlockIconButton = (text, icon) => {
|
|
10693
|
-
return { ...PrimarySolidBlockButton(text), icon };
|
|
10694
|
-
};
|
|
10695
|
-
const PrimarySolidBlockHrefButton = (text, href, target) => {
|
|
10696
|
-
return { ...PrimarySolidBlockButton(text), href, target };
|
|
10697
|
-
};
|
|
10698
|
-
const PrimarySolidBlockIconHrefButton = (text, icon, href, target) => {
|
|
10699
|
-
return { ...PrimarySolidBlockIconButton(text, icon), href, target };
|
|
10700
|
-
};
|
|
10701
|
-
const PrimarySolidFullButton = (text) => {
|
|
10702
|
-
return { ...SolidFullButton(text), color: 'primary' };
|
|
10703
|
-
};
|
|
10704
|
-
const PrimarySolidFullIconButton = (text, icon) => {
|
|
10705
|
-
return { ...PrimarySolidFullButton(text), icon };
|
|
10706
|
-
};
|
|
10707
|
-
const PrimarySolidFullHrefButton = (text, href, target) => {
|
|
10708
|
-
return { ...PrimarySolidFullButton(text), href, target };
|
|
10709
|
-
};
|
|
10710
|
-
const PrimarySolidFullIconHrefButton = (text, icon, href, target) => {
|
|
10711
|
-
return { ...PrimarySolidFullIconButton(text, icon), href, target };
|
|
10712
|
-
};
|
|
10713
|
-
/** SECONDARY */
|
|
10714
|
-
const SecondarySolidDefaultRoundButton = (text) => {
|
|
10715
|
-
return { ...SolidDefaultRoundButton(text), color: 'secondary' };
|
|
10716
|
-
};
|
|
10717
|
-
const SecondarySolidDefaultRoundIconButton = (text, icon) => {
|
|
10718
|
-
return { ...SecondarySolidDefaultRoundButton(text), icon };
|
|
10719
|
-
};
|
|
10720
|
-
const SecondarySolidDefaultRoundHrefButton = (text, href, target) => {
|
|
10721
|
-
return { ...SecondarySolidDefaultRoundButton(text), href, target };
|
|
10722
|
-
};
|
|
10723
|
-
const SecondarySolidDefaultRoundIconHrefButton = (text, icon, href, target) => {
|
|
10724
|
-
return { ...SecondarySolidDefaultRoundIconButton(text, icon), href, target };
|
|
10725
|
-
};
|
|
10726
|
-
const SecondarySolidSmallRoundButton = (text) => {
|
|
10727
|
-
return { ...SolidSmallRoundButton(text), color: 'secondary' };
|
|
10728
|
-
};
|
|
10729
|
-
const SecondarySolidSmallRoundIconButton = (text, icon) => {
|
|
10730
|
-
return { ...SecondarySolidSmallRoundButton(text), icon };
|
|
10731
|
-
};
|
|
10732
|
-
const SecondarySolidSmallRoundHrefButton = (text, href, target) => {
|
|
10733
|
-
return { ...SecondarySolidSmallRoundButton(text), href, target };
|
|
10734
|
-
};
|
|
10735
|
-
const SecondarySolidSmallRoundIconHrefButton = (text, icon, href, target) => {
|
|
10736
|
-
return { ...SecondarySolidSmallRoundIconButton(text, icon), href, target };
|
|
10737
|
-
};
|
|
10738
|
-
const SecondarySolidLargeRoundButton = (text) => {
|
|
10739
|
-
return { ...SolidLargeRoundButton(text), color: 'secondary' };
|
|
10740
|
-
};
|
|
10741
|
-
const SecondarySolidLargeRoundIconButton = (text, icon) => {
|
|
10742
|
-
return { ...SecondarySolidLargeRoundButton(text), icon };
|
|
10743
|
-
};
|
|
10744
|
-
const SecondarySolidLargeRoundHrefButton = (text, href, target) => {
|
|
10745
|
-
return { ...SecondarySolidLargeRoundButton(text), href, target };
|
|
10746
|
-
};
|
|
10747
|
-
const SecondarySolidLargeRoundIconHrefButton = (text, icon, href, target) => {
|
|
10748
|
-
return { ...SecondarySolidLargeRoundIconButton(text, icon), href, target };
|
|
10749
|
-
};
|
|
10750
|
-
const SecondarySolidFullButton = (text) => {
|
|
10751
|
-
return { ...SolidFullButton(text), color: 'secondary' };
|
|
10752
|
-
};
|
|
10753
|
-
const SecondarySolidFullIconButton = (text, icon) => {
|
|
10754
|
-
return { ...SecondarySolidFullButton(text), icon };
|
|
10755
|
-
};
|
|
10756
|
-
const SecondarySolidFullHrefButton = (text, href, target) => {
|
|
10757
|
-
return { ...SecondarySolidFullButton(text), href, target };
|
|
10758
|
-
};
|
|
10759
|
-
const SecondarySolidFullIconHrefButton = (text, icon, href, target) => {
|
|
10760
|
-
return { ...SecondarySolidFullIconButton(text, icon), href, target };
|
|
10761
|
-
};
|
|
10762
|
-
const SecondarySolidBlockButton = (text) => {
|
|
10763
|
-
return { ...SolidBlockButton(text), color: 'secondary' };
|
|
10764
|
-
};
|
|
10765
|
-
const SecondarySolidBlockIconButton = (text, icon) => {
|
|
10766
|
-
return { ...SecondarySolidBlockButton(text), icon };
|
|
10767
|
-
};
|
|
10768
|
-
const SecondarySolidBlockHrefButton = (text, href, target) => {
|
|
10769
|
-
return { ...SecondarySolidBlockButton(text), href, target };
|
|
10770
|
-
};
|
|
10771
|
-
const SecondarySolidBlockIconHrefButton = (text, icon, href, target) => {
|
|
10772
|
-
return { ...SecondarySolidBlockIconButton(text, icon), href, target };
|
|
10773
|
-
};
|
|
10615
|
+
const Icon = (name, slot) => ({ name, slot });
|
|
10616
|
+
/**
|
|
10617
|
+
* Single source of truth for building a `ButtonMetadata`.
|
|
10618
|
+
*
|
|
10619
|
+
* Applies the shared defaults (`primary` color, `ENABLED` state, `default`
|
|
10620
|
+
* size, `button` type) and merges any overrides. This builder (and
|
|
10621
|
+
* `iconButton`) is the canonical way to construct a button in code; for
|
|
10622
|
+
* templates prefer a registered `<val-button preset="...">` (channel `button`
|
|
10623
|
+
* of the PresetService).
|
|
10624
|
+
*
|
|
10625
|
+
* @example
|
|
10626
|
+
* button({ text: 'Save', fill: 'solid', shape: 'round', expand: 'full' })
|
|
10627
|
+
*/
|
|
10628
|
+
const button = (overrides = {}) => ({
|
|
10629
|
+
color: 'primary',
|
|
10630
|
+
state: 'ENABLED',
|
|
10631
|
+
size: 'default',
|
|
10632
|
+
type: 'button',
|
|
10633
|
+
text: '',
|
|
10634
|
+
...overrides,
|
|
10635
|
+
});
|
|
10636
|
+
/** Convenience builder for a button with a leading/trailing icon. */
|
|
10637
|
+
const iconButton = (text, icon, overrides = {}) => button({ text, icon, ...overrides });
|
|
10774
10638
|
|
|
10775
10639
|
/**
|
|
10776
10640
|
* val-display
|
|
@@ -10830,15 +10694,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10830
10694
|
* @input props: DividerMetadata - Configuration for the divider (size, color, fill)
|
|
10831
10695
|
*/
|
|
10832
10696
|
class DividerComponent {
|
|
10833
|
-
constructor() { }
|
|
10834
|
-
ngOnInit() { }
|
|
10835
10697
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10836
10698
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DividerComponent, isStandalone: true, selector: "val-divider", inputs: { props: "props" }, ngImport: i0, template: ` <div [ngClass]="['divider', props.size, props.color, props.fill]"></div> `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.solid{border-top:.0625rem solid #878ca0}.gradient{height:.125rem}.gradient.primary{background:linear-gradient(to right,var(--ion-color-primary),var(--ion-color-light))}.gradient.secondary{background:linear-gradient(to right,var(--ion-color-secondary),var(--ion-color-light))}.gradient.dark{background:linear-gradient(to right,var(--ion-color-dark),var(--ion-color-light))}.gradient.light{background:linear-gradient(to right,var(--ion-color-light),#ffffff)}.gradient.medium{background:linear-gradient(to right,var(--ion-color-medium),#ffffff)}.small{margin:1rem}.medium{margin:1.5rem 1rem}.large{margin:2.25rem 1rem}.primary{border-color:var(--ion-color-primary)}.secondary{border-color:var(--ion-color-secondary)}.dark{border-color:var(--ion-color-dark)}.light{border-color:var(--ion-color-light)}.medium{border-color:var(--ion-color-medium)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
10837
10699
|
}
|
|
10838
10700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DividerComponent, decorators: [{
|
|
10839
10701
|
type: Component,
|
|
10840
10702
|
args: [{ selector: 'val-divider', standalone: true, imports: [CommonModule], template: ` <div [ngClass]="['divider', props.size, props.color, props.fill]"></div> `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.solid{border-top:.0625rem solid #878ca0}.gradient{height:.125rem}.gradient.primary{background:linear-gradient(to right,var(--ion-color-primary),var(--ion-color-light))}.gradient.secondary{background:linear-gradient(to right,var(--ion-color-secondary),var(--ion-color-light))}.gradient.dark{background:linear-gradient(to right,var(--ion-color-dark),var(--ion-color-light))}.gradient.light{background:linear-gradient(to right,var(--ion-color-light),#ffffff)}.gradient.medium{background:linear-gradient(to right,var(--ion-color-medium),#ffffff)}.small{margin:1rem}.medium{margin:1.5rem 1rem}.large{margin:2.25rem 1rem}.primary{border-color:var(--ion-color-primary)}.secondary{border-color:var(--ion-color-secondary)}.dark{border-color:var(--ion-color-dark)}.light{border-color:var(--ion-color-light)}.medium{border-color:var(--ion-color-medium)}\n"] }]
|
|
10841
|
-
}],
|
|
10703
|
+
}], propDecorators: { props: [{
|
|
10842
10704
|
type: Input
|
|
10843
10705
|
}] } });
|
|
10844
10706
|
|
|
@@ -10858,7 +10720,6 @@ class HrefComponent {
|
|
|
10858
10720
|
this.downloadService = downloadService;
|
|
10859
10721
|
this.onClick = new EventEmitter();
|
|
10860
10722
|
}
|
|
10861
|
-
ngOnInit() { }
|
|
10862
10723
|
getFileName() {
|
|
10863
10724
|
return this.downloadService.getFileNameFromUrl(this.props.url);
|
|
10864
10725
|
}
|
|
@@ -11006,6 +10867,19 @@ class ImageComponent {
|
|
|
11006
10867
|
this.isPreviewOpen = true;
|
|
11007
10868
|
this.resetZoom();
|
|
11008
10869
|
}
|
|
10870
|
+
/**
|
|
10871
|
+
* Keyboard activation of the preview trigger. Space must preventDefault to
|
|
10872
|
+
* avoid scrolling the page when the focused image is activated.
|
|
10873
|
+
*/
|
|
10874
|
+
onPreviewKeydown(event) {
|
|
10875
|
+
if (!this.props.previewMode)
|
|
10876
|
+
return;
|
|
10877
|
+
const key = event.key;
|
|
10878
|
+
if (key === ' ' || key === 'Spacebar') {
|
|
10879
|
+
event.preventDefault();
|
|
10880
|
+
}
|
|
10881
|
+
this.openPreview();
|
|
10882
|
+
}
|
|
11009
10883
|
closePreview() {
|
|
11010
10884
|
this.isPreviewOpen = false;
|
|
11011
10885
|
}
|
|
@@ -11169,6 +11043,11 @@ class ImageComponent {
|
|
|
11169
11043
|
[style.max-width.rem]="props.width"
|
|
11170
11044
|
[style.height.px]="props.height"
|
|
11171
11045
|
(click)="props.previewMode ? openPreview() : null"
|
|
11046
|
+
(keydown.enter)="props.previewMode ? openPreview() : null"
|
|
11047
|
+
(keydown.space)="onPreviewKeydown($event)"
|
|
11048
|
+
[attr.role]="props.previewMode ? 'button' : null"
|
|
11049
|
+
[attr.tabindex]="props.previewMode ? 0 : null"
|
|
11050
|
+
[attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
|
|
11172
11051
|
/>
|
|
11173
11052
|
} @else {
|
|
11174
11053
|
<img
|
|
@@ -11189,6 +11068,11 @@ class ImageComponent {
|
|
|
11189
11068
|
[style.max-width.rem]="props.width"
|
|
11190
11069
|
[style.height.px]="props.height"
|
|
11191
11070
|
(click)="props.previewMode ? openPreview() : null"
|
|
11071
|
+
(keydown.enter)="props.previewMode ? openPreview() : null"
|
|
11072
|
+
(keydown.space)="onPreviewKeydown($event)"
|
|
11073
|
+
[attr.role]="props.previewMode ? 'button' : null"
|
|
11074
|
+
[attr.tabindex]="props.previewMode ? 0 : null"
|
|
11075
|
+
[attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
|
|
11192
11076
|
/>
|
|
11193
11077
|
}
|
|
11194
11078
|
</div>
|
|
@@ -11273,7 +11157,7 @@ class ImageComponent {
|
|
|
11273
11157
|
</ion-content>
|
|
11274
11158
|
</ng-template>
|
|
11275
11159
|
</ion-modal>
|
|
11276
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }] }); }
|
|
11160
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}.val-image--preview-enabled:focus-visible:focus{outline:none}.val-image--preview-enabled:focus-visible:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }] }); }
|
|
11277
11161
|
}
|
|
11278
11162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageComponent, decorators: [{
|
|
11279
11163
|
type: Component,
|
|
@@ -11312,6 +11196,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
11312
11196
|
[style.max-width.rem]="props.width"
|
|
11313
11197
|
[style.height.px]="props.height"
|
|
11314
11198
|
(click)="props.previewMode ? openPreview() : null"
|
|
11199
|
+
(keydown.enter)="props.previewMode ? openPreview() : null"
|
|
11200
|
+
(keydown.space)="onPreviewKeydown($event)"
|
|
11201
|
+
[attr.role]="props.previewMode ? 'button' : null"
|
|
11202
|
+
[attr.tabindex]="props.previewMode ? 0 : null"
|
|
11203
|
+
[attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
|
|
11315
11204
|
/>
|
|
11316
11205
|
} @else {
|
|
11317
11206
|
<img
|
|
@@ -11332,6 +11221,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
11332
11221
|
[style.max-width.rem]="props.width"
|
|
11333
11222
|
[style.height.px]="props.height"
|
|
11334
11223
|
(click)="props.previewMode ? openPreview() : null"
|
|
11224
|
+
(keydown.enter)="props.previewMode ? openPreview() : null"
|
|
11225
|
+
(keydown.space)="onPreviewKeydown($event)"
|
|
11226
|
+
[attr.role]="props.previewMode ? 'button' : null"
|
|
11227
|
+
[attr.tabindex]="props.previewMode ? 0 : null"
|
|
11228
|
+
[attr.aria-haspopup]="props.previewMode ? 'dialog' : null"
|
|
11335
11229
|
/>
|
|
11336
11230
|
}
|
|
11337
11231
|
</div>
|
|
@@ -11416,7 +11310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
11416
11310
|
</ion-content>
|
|
11417
11311
|
</ng-template>
|
|
11418
11312
|
</ion-modal>
|
|
11419
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"] }]
|
|
11313
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.val-image-container{margin:0;padding:0;max-width:100%}.val-image-container--left{margin-right:auto;text-align:left}.val-image-container--center{margin-left:auto;margin-right:auto;text-align:center}.val-image-container--right{margin-left:auto;text-align:right}.val-image-wrapper{display:inline-block;position:relative}.val-image{width:100%;height:auto;display:block;opacity:1;max-width:100%}.val-image.center{margin:0 auto}.val-image.rounded{border-radius:.5rem}.val-image.circular{border-radius:50%;aspect-ratio:1;object-fit:cover}.val-image.box{border-radius:0}.val-image.bordered{border:.0625rem solid var(--ion-color-medium)}.val-image.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}body.dark .val-image.dark,html.ion-palette-dark .val-image.dark,body[data-theme=dark] .val-image.dark{filter:invert(1)}.val-image.limited{max-width:100%}@media (max-width: 768px){.val-image .val-image-wrapper.small{width:40%}.val-image .val-image-wrapper.medium{width:60%}.val-image .val-image-wrapper.large{width:80%}.val-image .val-image-wrapper.xlarge{width:100%}}.val-image.small{width:30%}.val-image.medium{width:50%}.val-image.large{width:70%}.val-image.xlarge{width:100%}.val-image-caption{margin-top:.5rem;color:var(--ion-color-medium-shade, #666);font-style:italic;line-height:1.4}.val-image-caption--small{font-size:.75rem}.val-image-caption--medium{font-size:.875rem}.val-image-caption--large{font-size:1rem}.val-image.visible{animation:appearance ease-in 1s forwards}@keyframes appearance{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.val-image-container{flex-shrink:0;align-self:flex-start}.flexbox-container .val-image-container--left{align-self:flex-start}.flexbox-container .val-image-container--center{align-self:center}.flexbox-container .val-image-container--right{align-self:flex-end}.val-image--preview-enabled{cursor:pointer;transition:opacity .2s ease,transform .2s ease}.val-image--preview-enabled:hover{opacity:.9;transform:scale(1.02)}.val-image--preview-enabled:focus-visible:focus{outline:none}.val-image--preview-enabled:focus-visible:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-modal ion-content{position:relative;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0}.val-image-preview-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.9);padding:4px 8px;border-radius:25px;backdrop-filter:blur(10px);box-shadow:0 4px 20px #00000026}.val-image-preview-zoom-level{font-size:.875rem;font-weight:600;min-width:50px;text-align:center;color:var(--ion-text-color)}.val-image-preview-viewport{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.val-image-preview-img{max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;transform-origin:center center;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width: 768px){.val-image-preview-controls{bottom:10px;padding:8px 16px;gap:10px}.val-image-preview-zoom-level{font-size:.75rem;min-width:40px}.val-image-preview-img{max-width:95vw;max-height:85vh}}\n"] }]
|
|
11420
11314
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
11421
11315
|
type: Input
|
|
11422
11316
|
}], onKeyDown: [{
|
|
@@ -15219,6 +15113,11 @@ class CardComponent {
|
|
|
15219
15113
|
clickHandler(section, token) {
|
|
15220
15114
|
this.onClick.emit({ section, token });
|
|
15221
15115
|
}
|
|
15116
|
+
/** Activación por teclado con Space — previene el scroll de la página. */
|
|
15117
|
+
onKeyActivate(event, section, token) {
|
|
15118
|
+
event.preventDefault();
|
|
15119
|
+
this.clickHandler(section, token);
|
|
15120
|
+
}
|
|
15222
15121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15223
15122
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "val-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
15224
15123
|
<ion-card *ngIf="resolvedProps.type === types.native">
|
|
@@ -15245,8 +15144,13 @@ class CardComponent {
|
|
|
15245
15144
|
|
|
15246
15145
|
<ion-card
|
|
15247
15146
|
*ngIf="resolvedProps.type === types.tappable"
|
|
15248
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15249
15147
|
class="tapable"
|
|
15148
|
+
role="button"
|
|
15149
|
+
tabindex="0"
|
|
15150
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
15151
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15152
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
15153
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
15250
15154
|
>
|
|
15251
15155
|
@if (resolvedProps.image) {
|
|
15252
15156
|
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
@@ -15261,8 +15165,14 @@ class CardComponent {
|
|
|
15261
15165
|
|
|
15262
15166
|
<ion-card
|
|
15263
15167
|
*ngIf="resolvedProps.type === types.checker"
|
|
15264
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15265
15168
|
class="tapable"
|
|
15169
|
+
role="button"
|
|
15170
|
+
tabindex="0"
|
|
15171
|
+
[attr.aria-pressed]="!!resolvedProps.selected"
|
|
15172
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
15173
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15174
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
15175
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
15266
15176
|
>
|
|
15267
15177
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="checker">
|
|
15268
15178
|
<div>
|
|
@@ -15338,7 +15248,15 @@ class CardComponent {
|
|
|
15338
15248
|
</ion-buttons>
|
|
15339
15249
|
</ion-card-header>
|
|
15340
15250
|
|
|
15341
|
-
<div
|
|
15251
|
+
<div
|
|
15252
|
+
class="tapable"
|
|
15253
|
+
role="button"
|
|
15254
|
+
tabindex="0"
|
|
15255
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
15256
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15257
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
15258
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
15259
|
+
>
|
|
15342
15260
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="complex-header">
|
|
15343
15261
|
<div>
|
|
15344
15262
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -15392,7 +15310,7 @@ class CardComponent {
|
|
|
15392
15310
|
</ng-container>
|
|
15393
15311
|
</ion-buttons>
|
|
15394
15312
|
</ion-card>
|
|
15395
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { 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: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
15313
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { 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: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
15396
15314
|
}
|
|
15397
15315
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
15398
15316
|
type: Component,
|
|
@@ -15436,8 +15354,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15436
15354
|
|
|
15437
15355
|
<ion-card
|
|
15438
15356
|
*ngIf="resolvedProps.type === types.tappable"
|
|
15439
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15440
15357
|
class="tapable"
|
|
15358
|
+
role="button"
|
|
15359
|
+
tabindex="0"
|
|
15360
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
15361
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15362
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
15363
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
15441
15364
|
>
|
|
15442
15365
|
@if (resolvedProps.image) {
|
|
15443
15366
|
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
@@ -15452,8 +15375,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15452
15375
|
|
|
15453
15376
|
<ion-card
|
|
15454
15377
|
*ngIf="resolvedProps.type === types.checker"
|
|
15455
|
-
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15456
15378
|
class="tapable"
|
|
15379
|
+
role="button"
|
|
15380
|
+
tabindex="0"
|
|
15381
|
+
[attr.aria-pressed]="!!resolvedProps.selected"
|
|
15382
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
15383
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15384
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
15385
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
15457
15386
|
>
|
|
15458
15387
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="checker">
|
|
15459
15388
|
<div>
|
|
@@ -15529,7 +15458,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15529
15458
|
</ion-buttons>
|
|
15530
15459
|
</ion-card-header>
|
|
15531
15460
|
|
|
15532
|
-
<div
|
|
15461
|
+
<div
|
|
15462
|
+
class="tapable"
|
|
15463
|
+
role="button"
|
|
15464
|
+
tabindex="0"
|
|
15465
|
+
[attr.aria-label]="resolvedProps.title || resolvedProps.overtitle || null"
|
|
15466
|
+
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
15467
|
+
(keydown.enter)="clickHandler(sections.content, resolvedProps.token)"
|
|
15468
|
+
(keydown.space)="onKeyActivate($event, sections.content, resolvedProps.token)"
|
|
15469
|
+
>
|
|
15533
15470
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle" class="complex-header">
|
|
15534
15471
|
<div>
|
|
15535
15472
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -15583,8 +15520,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
15583
15520
|
</ng-container>
|
|
15584
15521
|
</ion-buttons>
|
|
15585
15522
|
</ion-card>
|
|
15586
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"] }]
|
|
15587
|
-
}],
|
|
15523
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"] }]
|
|
15524
|
+
}], propDecorators: { preset: [{
|
|
15588
15525
|
type: Input
|
|
15589
15526
|
}], props: [{
|
|
15590
15527
|
type: Input
|
|
@@ -15689,52 +15626,43 @@ class CheckboxRadioInputComponent {
|
|
|
15689
15626
|
this.states = ComponentStates;
|
|
15690
15627
|
}
|
|
15691
15628
|
ngOnInit() { }
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
15697
|
-
// Seleccionar esta opción
|
|
15698
|
-
this.props.control?.setValue(option.id);
|
|
15699
|
-
}
|
|
15700
|
-
else {
|
|
15701
|
-
// Si se deselecciona la opción actual, limpiar
|
|
15702
|
-
if (this.props.control?.value === option.id) {
|
|
15703
|
-
this.props.control?.setValue(null);
|
|
15704
|
-
}
|
|
15705
|
-
}
|
|
15629
|
+
onSelectionChange(event) {
|
|
15630
|
+
// ion-radio-group con allowEmptySelection: re-clickear la opción activa la
|
|
15631
|
+
// deselecciona (value === undefined) → mapear a null para limpiar el control.
|
|
15632
|
+
const value = event.detail.value;
|
|
15633
|
+
this.props.control?.setValue(value ?? null);
|
|
15706
15634
|
}
|
|
15707
15635
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxRadioInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15708
15636
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CheckboxRadioInputComponent, isStandalone: true, selector: "val-checkbox-radio-input", inputs: { props: "props" }, ngImport: i0, template: `
|
|
15709
|
-
<
|
|
15637
|
+
<ion-radio-group
|
|
15638
|
+
class="checkbox-radio-group"
|
|
15639
|
+
[value]="props.control?.value"
|
|
15640
|
+
[allowEmptySelection]="true"
|
|
15641
|
+
(ionChange)="onSelectionChange($event)"
|
|
15642
|
+
>
|
|
15710
15643
|
@for (option of props.options; track option.id) {
|
|
15711
|
-
<ion-
|
|
15712
|
-
[checked]="isSelected(option)"
|
|
15713
|
-
[disabled]="props.state === states.DISABLED"
|
|
15714
|
-
[labelPlacement]="'end'"
|
|
15715
|
-
(ionChange)="onOptionSelect(option, $event)"
|
|
15716
|
-
>
|
|
15644
|
+
<ion-radio [value]="option.id" [disabled]="props.state === states.DISABLED" labelPlacement="end">
|
|
15717
15645
|
{{ option.name }}
|
|
15718
|
-
</ion-
|
|
15646
|
+
</ion-radio>
|
|
15719
15647
|
}
|
|
15720
|
-
</
|
|
15721
|
-
`, isInline: true, styles: [".checkbox-radio-group{display:flex;flex-direction:row;gap:12px;margin-top:.5rem}.checkbox-radio-group ion-checkbox{--size: 24px;--checkbox-background-checked: var(--ion-color-primary);--checkmark-color: var(--ion-color-primary-contrast)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type:
|
|
15648
|
+
</ion-radio-group>
|
|
15649
|
+
`, isInline: true, styles: [".checkbox-radio-group{display:flex;flex-direction:row;gap:12px;margin-top:.5rem}.checkbox-radio-group ion-checkbox{--size: 24px;--checkbox-background-checked: var(--ion-color-primary);--checkmark-color: var(--ion-color-primary-contrast)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }] }); }
|
|
15722
15650
|
}
|
|
15723
15651
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxRadioInputComponent, decorators: [{
|
|
15724
15652
|
type: Component,
|
|
15725
|
-
args: [{ selector: 'val-checkbox-radio-input', standalone: true, imports: [CommonModule, ReactiveFormsModule,
|
|
15726
|
-
<
|
|
15653
|
+
args: [{ selector: 'val-checkbox-radio-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonRadio, IonRadioGroup], template: `
|
|
15654
|
+
<ion-radio-group
|
|
15655
|
+
class="checkbox-radio-group"
|
|
15656
|
+
[value]="props.control?.value"
|
|
15657
|
+
[allowEmptySelection]="true"
|
|
15658
|
+
(ionChange)="onSelectionChange($event)"
|
|
15659
|
+
>
|
|
15727
15660
|
@for (option of props.options; track option.id) {
|
|
15728
|
-
<ion-
|
|
15729
|
-
[checked]="isSelected(option)"
|
|
15730
|
-
[disabled]="props.state === states.DISABLED"
|
|
15731
|
-
[labelPlacement]="'end'"
|
|
15732
|
-
(ionChange)="onOptionSelect(option, $event)"
|
|
15733
|
-
>
|
|
15661
|
+
<ion-radio [value]="option.id" [disabled]="props.state === states.DISABLED" labelPlacement="end">
|
|
15734
15662
|
{{ option.name }}
|
|
15735
|
-
</ion-
|
|
15663
|
+
</ion-radio>
|
|
15736
15664
|
}
|
|
15737
|
-
</
|
|
15665
|
+
</ion-radio-group>
|
|
15738
15666
|
`, styles: [".checkbox-radio-group{display:flex;flex-direction:row;gap:12px;margin-top:.5rem}.checkbox-radio-group ion-checkbox{--size: 24px;--checkbox-background-checked: var(--ion-color-primary);--checkmark-color: var(--ion-color-primary-contrast)}\n"] }]
|
|
15739
15667
|
}], propDecorators: { props: [{
|
|
15740
15668
|
type: Input
|
|
@@ -16061,67 +15989,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16061
15989
|
type: Input
|
|
16062
15990
|
}] } });
|
|
16063
15991
|
|
|
16064
|
-
/**
|
|
16065
|
-
* val-email-input
|
|
16066
|
-
*
|
|
16067
|
-
* An email input field integrated with Angular forms.
|
|
16068
|
-
* Supports presets for reusable configurations.
|
|
16069
|
-
*
|
|
16070
|
-
* @example With preset (recommended):
|
|
16071
|
-
* <val-email-input preset="form-field" [props]="{ control: myControl, placeholder: 'Email' }"></val-email-input>
|
|
16072
|
-
*
|
|
16073
|
-
* @example Static (backwards compatible):
|
|
16074
|
-
* <val-email-input [props]="{ control: myControl, placeholder: 'Enter your email' }"></val-email-input>
|
|
16075
|
-
*
|
|
16076
|
-
* @input preset: string - Name of preset to apply (e.g., 'form-field')
|
|
16077
|
-
* @input props: InputMetadata - Configuration for the input (overrides preset values)
|
|
16078
|
-
*/
|
|
16079
|
-
class EmailInputComponent {
|
|
16080
|
-
constructor() {
|
|
16081
|
-
this.presets = inject(PresetService);
|
|
16082
|
-
/**
|
|
16083
|
-
* Input configuration object. Values here override preset values.
|
|
16084
|
-
* @type {InputMetadata}
|
|
16085
|
-
* @property control - The Angular FormControl for the input.
|
|
16086
|
-
* @property placeholder - The placeholder text.
|
|
16087
|
-
*/
|
|
16088
|
-
this.props = {};
|
|
16089
|
-
/**
|
|
16090
|
-
* Resolved props after merging preset + explicit props.
|
|
16091
|
-
*/
|
|
16092
|
-
this.resolvedProps = {};
|
|
16093
|
-
}
|
|
16094
|
-
ngOnInit() {
|
|
16095
|
-
this.resolveProps();
|
|
16096
|
-
}
|
|
16097
|
-
ngOnChanges(changes) {
|
|
16098
|
-
if (changes['preset'] || changes['props']) {
|
|
16099
|
-
this.resolveProps();
|
|
16100
|
-
}
|
|
16101
|
-
}
|
|
16102
|
-
/**
|
|
16103
|
-
* Merge preset configuration with explicit props.
|
|
16104
|
-
* Explicit props take precedence over preset values.
|
|
16105
|
-
*/
|
|
16106
|
-
resolveProps() {
|
|
16107
|
-
const presetProps = this.preset ? this.presets.get('emailInput', this.preset) : {};
|
|
16108
|
-
this.resolvedProps = {
|
|
16109
|
-
...presetProps,
|
|
16110
|
-
...this.props,
|
|
16111
|
-
};
|
|
16112
|
-
}
|
|
16113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmailInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EmailInputComponent, isStandalone: true, selector: "val-email-input", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: ` <ion-input [formControl]="resolvedProps.control" type="email" [placeholder]="resolvedProps.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
|
|
16115
|
-
}
|
|
16116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmailInputComponent, decorators: [{
|
|
16117
|
-
type: Component,
|
|
16118
|
-
args: [{ selector: 'val-email-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="resolvedProps.control" type="email" [placeholder]="resolvedProps.placeholder"></ion-input> ` }]
|
|
16119
|
-
}], propDecorators: { preset: [{
|
|
16120
|
-
type: Input
|
|
16121
|
-
}], props: [{
|
|
16122
|
-
type: Input
|
|
16123
|
-
}] } });
|
|
16124
|
-
|
|
16125
15992
|
/**
|
|
16126
15993
|
* Resolves a color string to a valid CSS value for use in styles.
|
|
16127
15994
|
* Supports Ionic color names, CSS variables, and custom colors.
|
|
@@ -16134,7 +16001,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16134
16001
|
* resolveColor('--my-custom-color'); // returns 'var(--my-custom-color)'
|
|
16135
16002
|
* resolveColor('#ff0000'); // returns '#ff0000'
|
|
16136
16003
|
*/
|
|
16137
|
-
function resolveColor
|
|
16004
|
+
function resolveColor(color) {
|
|
16138
16005
|
// Si el color empieza con "--", se asume que es una variable CSS válida
|
|
16139
16006
|
if (color.startsWith('--')) {
|
|
16140
16007
|
return `var(${color})`;
|
|
@@ -16189,7 +16056,7 @@ class ExpandableTextComponent {
|
|
|
16189
16056
|
this.expanded = !this.expanded;
|
|
16190
16057
|
}
|
|
16191
16058
|
color() {
|
|
16192
|
-
return resolveColor
|
|
16059
|
+
return resolveColor(this.props.color || this.defaultColor);
|
|
16193
16060
|
}
|
|
16194
16061
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExpandableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16195
16062
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ExpandableTextComponent, isStandalone: true, selector: "val-expandable-text", inputs: { props: "props" }, ngImport: i0, template: `
|
|
@@ -16202,12 +16069,12 @@ class ExpandableTextComponent {
|
|
|
16202
16069
|
</ion-text>
|
|
16203
16070
|
</div>
|
|
16204
16071
|
@if (!expanded && isTruncated) {
|
|
16205
|
-
<
|
|
16072
|
+
<button type="button" class="see-more" [style.color]="this.color()" [attr.aria-expanded]="expanded" (click)="toggleExpand()">
|
|
16206
16073
|
{{ getExpandText() }}
|
|
16207
|
-
</
|
|
16074
|
+
</button>
|
|
16208
16075
|
}
|
|
16209
16076
|
</div>
|
|
16210
|
-
`, isInline: true, styles: [".description-container{position:relative;overflow:hidden;transition:max-height .3s ease-in-out}.description-container:not(.expanded){max-height:10rem}.description-container.expanded{max-height:none}.content-wrapper{overflow:hidden}.description-container:not(.expanded).has-gradient .content-wrapper{-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.description{margin:0}.see-more{display:block;
|
|
16077
|
+
`, isInline: true, styles: [".description-container{position:relative;overflow:hidden;transition:max-height .3s ease-in-out}.description-container:not(.expanded){max-height:10rem}.description-container.expanded{max-height:none}.content-wrapper{overflow:hidden}.description-container:not(.expanded).has-gradient .content-wrapper{-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.description{margin:0}.see-more{display:block;cursor:pointer;margin-top:.25rem;padding:0;border:none;background:none;font:inherit;font-weight:700;text-align:left}.see-more:focus{outline:none}.see-more:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:4px}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
|
|
16211
16078
|
}
|
|
16212
16079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExpandableTextComponent, decorators: [{
|
|
16213
16080
|
type: Component,
|
|
@@ -16221,12 +16088,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16221
16088
|
</ion-text>
|
|
16222
16089
|
</div>
|
|
16223
16090
|
@if (!expanded && isTruncated) {
|
|
16224
|
-
<
|
|
16091
|
+
<button type="button" class="see-more" [style.color]="this.color()" [attr.aria-expanded]="expanded" (click)="toggleExpand()">
|
|
16225
16092
|
{{ getExpandText() }}
|
|
16226
|
-
</
|
|
16093
|
+
</button>
|
|
16227
16094
|
}
|
|
16228
16095
|
</div>
|
|
16229
|
-
`, styles: [".description-container{position:relative;overflow:hidden;transition:max-height .3s ease-in-out}.description-container:not(.expanded){max-height:10rem}.description-container.expanded{max-height:none}.content-wrapper{overflow:hidden}.description-container:not(.expanded).has-gradient .content-wrapper{-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.description{margin:0}.see-more{display:block;
|
|
16096
|
+
`, styles: [".description-container{position:relative;overflow:hidden;transition:max-height .3s ease-in-out}.description-container:not(.expanded){max-height:10rem}.description-container.expanded{max-height:none}.content-wrapper{overflow:hidden}.description-container:not(.expanded).has-gradient .content-wrapper{-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.description{margin:0}.see-more{display:block;cursor:pointer;margin-top:.25rem;padding:0;border:none;background:none;font:inherit;font-weight:700;text-align:left}.see-more:focus{outline:none}.see-more:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:4px}\n"] }]
|
|
16230
16097
|
}], propDecorators: { props: [{
|
|
16231
16098
|
type: Input
|
|
16232
16099
|
}] } });
|
|
@@ -16248,7 +16115,11 @@ class FileInputComponent {
|
|
|
16248
16115
|
ngOnInit() {
|
|
16249
16116
|
// Initialize button with i18n text
|
|
16250
16117
|
this.contrastButton = {
|
|
16251
|
-
...
|
|
16118
|
+
...button({
|
|
16119
|
+
text: this.props?.buttonText || this.i18n.t('uploadFile'),
|
|
16120
|
+
fill: 'solid',
|
|
16121
|
+
shape: 'round',
|
|
16122
|
+
}),
|
|
16252
16123
|
color: 'light',
|
|
16253
16124
|
};
|
|
16254
16125
|
}
|
|
@@ -16318,14 +16189,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16318
16189
|
* val-hint
|
|
16319
16190
|
*
|
|
16320
16191
|
* Displays validation error messages for a form input, using Angular forms.
|
|
16192
|
+
* Cuando muestra un error, el contenedor se anuncia a tecnologías asistivas
|
|
16193
|
+
* (`role="alert"` + `aria-live="assertive"`). Acepta un `id` para que el input
|
|
16194
|
+
* asociado lo referencie vía `aria-describedby`.
|
|
16321
16195
|
*
|
|
16322
16196
|
* @example
|
|
16323
|
-
* <val-hint [props]="{ control: myControl, errors: { required: 'Required field' } }"></val-hint>
|
|
16197
|
+
* <val-hint [props]="{ control: myControl, errors: { required: 'Required field' } }" id="email-error"></val-hint>
|
|
16324
16198
|
*
|
|
16325
16199
|
* @input props: InputMetadata - Configuration for the input (form control, errors, etc.)
|
|
16200
|
+
* @input id: string - Id del contenedor, para enlace `aria-describedby` desde el input.
|
|
16326
16201
|
*/
|
|
16327
16202
|
class HintComponent {
|
|
16328
16203
|
constructor() {
|
|
16204
|
+
/**
|
|
16205
|
+
* Si el hint representa un error (vs un hint informativo). Hoy `val-hint`
|
|
16206
|
+
* siempre muestra errores de validación, así que por defecto es `true`.
|
|
16207
|
+
*/
|
|
16208
|
+
this.isError = true;
|
|
16329
16209
|
this.i18n = inject(I18nService);
|
|
16330
16210
|
}
|
|
16331
16211
|
ngOnInit() { }
|
|
@@ -16365,8 +16245,14 @@ class HintComponent {
|
|
|
16365
16245
|
return errors;
|
|
16366
16246
|
}
|
|
16367
16247
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16368
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HintComponent, isStandalone: true, selector: "val-hint", inputs: { props: "props" }, ngImport: i0, template: `
|
|
16369
|
-
<div
|
|
16248
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HintComponent, isStandalone: true, selector: "val-hint", inputs: { props: "props", id: "id", isError: "isError" }, ngImport: i0, template: `
|
|
16249
|
+
<div
|
|
16250
|
+
class="hint-container"
|
|
16251
|
+
*ngIf="shouldShowErrors"
|
|
16252
|
+
[attr.id]="id"
|
|
16253
|
+
[attr.role]="isError ? 'alert' : 'status'"
|
|
16254
|
+
[attr.aria-live]="isError ? 'assertive' : 'polite'"
|
|
16255
|
+
>
|
|
16370
16256
|
<val-text
|
|
16371
16257
|
*ngFor="let e of Errors"
|
|
16372
16258
|
[props]="{
|
|
@@ -16382,7 +16268,13 @@ class HintComponent {
|
|
|
16382
16268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HintComponent, decorators: [{
|
|
16383
16269
|
type: Component,
|
|
16384
16270
|
args: [{ selector: 'val-hint', standalone: true, imports: [CommonModule, TextComponent], template: `
|
|
16385
|
-
<div
|
|
16271
|
+
<div
|
|
16272
|
+
class="hint-container"
|
|
16273
|
+
*ngIf="shouldShowErrors"
|
|
16274
|
+
[attr.id]="id"
|
|
16275
|
+
[attr.role]="isError ? 'alert' : 'status'"
|
|
16276
|
+
[attr.aria-live]="isError ? 'assertive' : 'polite'"
|
|
16277
|
+
>
|
|
16386
16278
|
<val-text
|
|
16387
16279
|
*ngFor="let e of Errors"
|
|
16388
16280
|
[props]="{
|
|
@@ -16396,28 +16288,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16396
16288
|
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.hint-container{margin-top:.25rem}\n"] }]
|
|
16397
16289
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
16398
16290
|
type: Input
|
|
16399
|
-
}]
|
|
16400
|
-
|
|
16401
|
-
|
|
16402
|
-
* val-hour-input
|
|
16403
|
-
*
|
|
16404
|
-
* A time picker input integrated with Angular forms, using Ionic's datetime component.
|
|
16405
|
-
*
|
|
16406
|
-
* @example
|
|
16407
|
-
* <val-hour-input [props]="{ control: myControl }"></val-hour-input>
|
|
16408
|
-
*
|
|
16409
|
-
* @input props: InputMetadata - Configuration for the time input (form control, etc.)
|
|
16410
|
-
*/
|
|
16411
|
-
class HourInputComponent {
|
|
16412
|
-
constructor() { }
|
|
16413
|
-
ngOnInit() { }
|
|
16414
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HourInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16415
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HourInputComponent, isStandalone: true, selector: "val-hour-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-datetime [formControl]="props.control" presentation="time"></ion-datetime>`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }] }); }
|
|
16416
|
-
}
|
|
16417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HourInputComponent, decorators: [{
|
|
16418
|
-
type: Component,
|
|
16419
|
-
args: [{ selector: 'val-hour-input', standalone: true, imports: [ReactiveFormsModule, IonDatetime], template: ` <ion-datetime [formControl]="props.control" presentation="time"></ion-datetime>` }]
|
|
16420
|
-
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
16291
|
+
}], id: [{
|
|
16292
|
+
type: Input
|
|
16293
|
+
}], isError: [{
|
|
16421
16294
|
type: Input
|
|
16422
16295
|
}] } });
|
|
16423
16296
|
|
|
@@ -17113,7 +16986,7 @@ class LayeredCardComponent {
|
|
|
17113
16986
|
if (!background) {
|
|
17114
16987
|
return '';
|
|
17115
16988
|
}
|
|
17116
|
-
return resolveColor
|
|
16989
|
+
return resolveColor(background);
|
|
17117
16990
|
}
|
|
17118
16991
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LayeredCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17119
16992
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LayeredCardComponent, isStandalone: true, selector: "layered-card", inputs: { props: "props" }, ngImport: i0, template: `
|
|
@@ -17537,145 +17410,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
17537
17410
|
args: [{ required: true }]
|
|
17538
17411
|
}] } });
|
|
17539
17412
|
|
|
17540
|
-
/**
|
|
17541
|
-
* Utilities for handling default values in form inputs based on InputMetadata configuration.
|
|
17542
|
-
*/
|
|
17543
|
-
/**
|
|
17544
|
-
* Resolves the initial value for a form input based on its configuration.
|
|
17545
|
-
*
|
|
17546
|
-
* @param input - The input metadata configuration
|
|
17547
|
-
* @returns The resolved initial value
|
|
17548
|
-
*
|
|
17549
|
-
* @example
|
|
17550
|
-
* // Custom default value
|
|
17551
|
-
* const customValue = resolveInputDefaultValue({ withDefault: '2025-06-24', type: InputType.DATE });
|
|
17552
|
-
*
|
|
17553
|
-
* // Auto default value
|
|
17554
|
-
* const autoValue = resolveInputDefaultValue({ withDefault: true, type: InputType.NUMBER });
|
|
17555
|
-
*
|
|
17556
|
-
* // Explicit value (takes precedence)
|
|
17557
|
-
* const explicitValue = resolveInputDefaultValue({ value: 'explicit', withDefault: true, type: InputType.TEXT });
|
|
17558
|
-
*/
|
|
17559
|
-
function resolveInputDefaultValue(input) {
|
|
17560
|
-
// Explicit value takes precedence
|
|
17561
|
-
if (input.value !== undefined && input.value !== null && input.value !== '') {
|
|
17562
|
-
return parseValueByType(input.value, input.type);
|
|
17563
|
-
}
|
|
17564
|
-
// No default configuration
|
|
17565
|
-
if (!input.withDefault) {
|
|
17566
|
-
return null;
|
|
17567
|
-
}
|
|
17568
|
-
// Custom default value
|
|
17569
|
-
if (typeof input.withDefault === 'string') {
|
|
17570
|
-
return parseValueByType(input.withDefault, input.type);
|
|
17571
|
-
}
|
|
17572
|
-
// Auto default value (withDefault === true)
|
|
17573
|
-
return getAutoDefaultValue(input.type);
|
|
17574
|
-
}
|
|
17575
|
-
/**
|
|
17576
|
-
* Parses a string value to the appropriate type based on the input type.
|
|
17577
|
-
*
|
|
17578
|
-
* @param value - The string value to parse
|
|
17579
|
-
* @param type - The input type
|
|
17580
|
-
* @returns The parsed value
|
|
17581
|
-
*/
|
|
17582
|
-
function parseValueByType(value, type) {
|
|
17583
|
-
switch (type) {
|
|
17584
|
-
case InputType.DATE:
|
|
17585
|
-
return new Date(value).toISOString();
|
|
17586
|
-
case InputType.NUMBER:
|
|
17587
|
-
return parseFloat(value) || 0;
|
|
17588
|
-
case InputType.CHECK:
|
|
17589
|
-
return value === 'true' || value === '1';
|
|
17590
|
-
case InputType.TEXT:
|
|
17591
|
-
case InputType.EMAIL:
|
|
17592
|
-
case InputType.PASSWORD:
|
|
17593
|
-
case InputType.COMMENT:
|
|
17594
|
-
case InputType.PIN_CODE:
|
|
17595
|
-
case InputType.HOUR:
|
|
17596
|
-
case InputType.RADIO:
|
|
17597
|
-
case InputType.SELECT:
|
|
17598
|
-
case InputType.SEARCH_SELECT:
|
|
17599
|
-
case InputType.FILE:
|
|
17600
|
-
default:
|
|
17601
|
-
return value;
|
|
17602
|
-
}
|
|
17603
|
-
}
|
|
17604
|
-
/**
|
|
17605
|
-
* Gets the automatic default value for a given input type.
|
|
17606
|
-
*
|
|
17607
|
-
* @param type - The input type
|
|
17608
|
-
* @returns The auto default value
|
|
17609
|
-
*/
|
|
17610
|
-
function getAutoDefaultValue(type) {
|
|
17611
|
-
switch (type) {
|
|
17612
|
-
case InputType.DATE:
|
|
17613
|
-
return new Date().toISOString();
|
|
17614
|
-
case InputType.NUMBER:
|
|
17615
|
-
return 0;
|
|
17616
|
-
case InputType.CHECK:
|
|
17617
|
-
return false;
|
|
17618
|
-
case InputType.TEXT:
|
|
17619
|
-
case InputType.EMAIL:
|
|
17620
|
-
case InputType.PASSWORD:
|
|
17621
|
-
case InputType.COMMENT:
|
|
17622
|
-
case InputType.PIN_CODE:
|
|
17623
|
-
case InputType.HOUR:
|
|
17624
|
-
case InputType.RADIO:
|
|
17625
|
-
case InputType.SELECT:
|
|
17626
|
-
case InputType.SEARCH_SELECT:
|
|
17627
|
-
case InputType.FILE:
|
|
17628
|
-
default:
|
|
17629
|
-
return '';
|
|
17630
|
-
}
|
|
17631
|
-
}
|
|
17632
|
-
/**
|
|
17633
|
-
* Applies the resolved default value to a FormControl.
|
|
17634
|
-
*
|
|
17635
|
-
* @param input - The input metadata configuration
|
|
17636
|
-
* @example
|
|
17637
|
-
* const input = { control: myFormControl, type: InputType.DATE, withDefault: true };
|
|
17638
|
-
* applyDefaultValueToControl(input);
|
|
17639
|
-
*/
|
|
17640
|
-
function applyDefaultValueToControl(input) {
|
|
17641
|
-
if (!input.control)
|
|
17642
|
-
return;
|
|
17643
|
-
const defaultValue = resolveInputDefaultValue(input);
|
|
17644
|
-
if (defaultValue !== null) {
|
|
17645
|
-
input.control.setValue(defaultValue);
|
|
17646
|
-
input.control.markAsPristine();
|
|
17647
|
-
input.control.updateValueAndValidity();
|
|
17648
|
-
}
|
|
17649
|
-
}
|
|
17650
|
-
|
|
17651
|
-
/**
|
|
17652
|
-
* val-number-input
|
|
17653
|
-
*
|
|
17654
|
-
* A number input field integrated with Angular forms.
|
|
17655
|
-
*
|
|
17656
|
-
* @example
|
|
17657
|
-
* <val-number-input [props]="{ control: myControl, placeholder: 'Enter a number' }"></val-number-input>
|
|
17658
|
-
*
|
|
17659
|
-
* @input props: InputMetadata - Configuration for the input (form control, placeholder, etc.)
|
|
17660
|
-
*/
|
|
17661
|
-
class NumberInputComponent {
|
|
17662
|
-
constructor() { }
|
|
17663
|
-
ngOnInit() {
|
|
17664
|
-
// Apply default values on initialization
|
|
17665
|
-
if (this.props?.withDefault || this.props?.value) {
|
|
17666
|
-
applyDefaultValueToControl(this.props);
|
|
17667
|
-
}
|
|
17668
|
-
}
|
|
17669
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17670
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NumberInputComponent, isStandalone: true, selector: "val-number-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="number" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
|
|
17671
|
-
}
|
|
17672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
17673
|
-
type: Component,
|
|
17674
|
-
args: [{ selector: 'val-number-input', standalone: true, imports: [ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="props.control" type="number" [placeholder]="props.placeholder"></ion-input> ` }]
|
|
17675
|
-
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
17676
|
-
type: Input
|
|
17677
|
-
}] } });
|
|
17678
|
-
|
|
17679
17413
|
/**
|
|
17680
17414
|
* val-number-from-to
|
|
17681
17415
|
*
|
|
@@ -17813,6 +17547,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
17813
17547
|
type: Input
|
|
17814
17548
|
}] } });
|
|
17815
17549
|
|
|
17550
|
+
/**
|
|
17551
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
17552
|
+
* namespace `PasswordInput`. Cubre el aria-label del toggle mostrar/ocultar.
|
|
17553
|
+
*/
|
|
17554
|
+
const PASSWORD_INPUT_I18N = {
|
|
17555
|
+
es: { showPassword: 'Mostrar contraseña', hidePassword: 'Ocultar contraseña' },
|
|
17556
|
+
en: { showPassword: 'Show password', hidePassword: 'Hide password' },
|
|
17557
|
+
};
|
|
17816
17558
|
/**
|
|
17817
17559
|
* val-password-input
|
|
17818
17560
|
*
|
|
@@ -17829,8 +17571,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
17829
17571
|
* @input props: InputMetadata - Configuration for the input (overrides preset values)
|
|
17830
17572
|
*/
|
|
17831
17573
|
class PasswordInputComponent {
|
|
17832
|
-
constructor(
|
|
17574
|
+
constructor() {
|
|
17833
17575
|
this.presets = inject(PresetService);
|
|
17576
|
+
this.i18n = inject(I18nService);
|
|
17834
17577
|
/**
|
|
17835
17578
|
* Input configuration object. Values here override preset values.
|
|
17836
17579
|
* @type {InputMetadata}
|
|
@@ -17843,6 +17586,16 @@ class PasswordInputComponent {
|
|
|
17843
17586
|
*/
|
|
17844
17587
|
this.resolvedProps = {};
|
|
17845
17588
|
this.hidePassword = true;
|
|
17589
|
+
if (!this.i18n.hasNamespace('PasswordInput')) {
|
|
17590
|
+
this.i18n.registerContent('PasswordInput', PASSWORD_INPUT_I18N);
|
|
17591
|
+
}
|
|
17592
|
+
}
|
|
17593
|
+
/** Aria-label del botón mostrar/ocultar según el estado de visibilidad. */
|
|
17594
|
+
toggleLabel() {
|
|
17595
|
+
this.i18n.lang();
|
|
17596
|
+
return this.hidePassword
|
|
17597
|
+
? this.i18n.t('showPassword', 'PasswordInput')
|
|
17598
|
+
: this.i18n.t('hidePassword', 'PasswordInput');
|
|
17846
17599
|
}
|
|
17847
17600
|
ngOnInit() {
|
|
17848
17601
|
this.resolveProps();
|
|
@@ -17863,7 +17616,7 @@ class PasswordInputComponent {
|
|
|
17863
17616
|
...this.props,
|
|
17864
17617
|
};
|
|
17865
17618
|
}
|
|
17866
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordInputComponent, deps: [
|
|
17619
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17867
17620
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PasswordInputComponent, isStandalone: true, selector: "val-password-input", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
17868
17621
|
<div class="input-container">
|
|
17869
17622
|
<ion-input
|
|
@@ -17872,7 +17625,14 @@ class PasswordInputComponent {
|
|
|
17872
17625
|
[type]="hidePassword ? 'password' : 'text'"
|
|
17873
17626
|
[placeholder]="resolvedProps.placeholder"
|
|
17874
17627
|
></ion-input>
|
|
17875
|
-
<ion-button
|
|
17628
|
+
<ion-button
|
|
17629
|
+
color="dark"
|
|
17630
|
+
fill="clear"
|
|
17631
|
+
(click)="hidePassword = !hidePassword"
|
|
17632
|
+
size="small"
|
|
17633
|
+
[attr.aria-label]="toggleLabel()"
|
|
17634
|
+
[attr.aria-pressed]="!hidePassword"
|
|
17635
|
+
>
|
|
17876
17636
|
<ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
|
|
17877
17637
|
</ion-button>
|
|
17878
17638
|
</div>
|
|
@@ -17888,12 +17648,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
17888
17648
|
[type]="hidePassword ? 'password' : 'text'"
|
|
17889
17649
|
[placeholder]="resolvedProps.placeholder"
|
|
17890
17650
|
></ion-input>
|
|
17891
|
-
<ion-button
|
|
17651
|
+
<ion-button
|
|
17652
|
+
color="dark"
|
|
17653
|
+
fill="clear"
|
|
17654
|
+
(click)="hidePassword = !hidePassword"
|
|
17655
|
+
size="small"
|
|
17656
|
+
[attr.aria-label]="toggleLabel()"
|
|
17657
|
+
[attr.aria-pressed]="!hidePassword"
|
|
17658
|
+
>
|
|
17892
17659
|
<ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
|
|
17893
17660
|
</ion-button>
|
|
17894
17661
|
</div>
|
|
17895
17662
|
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.input-container{display:flex;align-items:center;flex-direction:row}\n"] }]
|
|
17896
|
-
}], ctorParameters: () => [
|
|
17663
|
+
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
17897
17664
|
type: Input
|
|
17898
17665
|
}], props: [{
|
|
17899
17666
|
type: Input
|
|
@@ -18446,6 +18213,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
18446
18213
|
type: Output
|
|
18447
18214
|
}] } });
|
|
18448
18215
|
|
|
18216
|
+
/**
|
|
18217
|
+
* Utilities for handling default values in form inputs based on InputMetadata configuration.
|
|
18218
|
+
*/
|
|
18219
|
+
/**
|
|
18220
|
+
* Resolves the initial value for a form input based on its configuration.
|
|
18221
|
+
*
|
|
18222
|
+
* @param input - The input metadata configuration
|
|
18223
|
+
* @returns The resolved initial value
|
|
18224
|
+
*
|
|
18225
|
+
* @example
|
|
18226
|
+
* // Custom default value
|
|
18227
|
+
* const customValue = resolveInputDefaultValue({ withDefault: '2025-06-24', type: InputType.DATE });
|
|
18228
|
+
*
|
|
18229
|
+
* // Auto default value
|
|
18230
|
+
* const autoValue = resolveInputDefaultValue({ withDefault: true, type: InputType.NUMBER });
|
|
18231
|
+
*
|
|
18232
|
+
* // Explicit value (takes precedence)
|
|
18233
|
+
* const explicitValue = resolveInputDefaultValue({ value: 'explicit', withDefault: true, type: InputType.TEXT });
|
|
18234
|
+
*/
|
|
18235
|
+
function resolveInputDefaultValue(input) {
|
|
18236
|
+
// Explicit value takes precedence
|
|
18237
|
+
if (input.value !== undefined && input.value !== null && input.value !== '') {
|
|
18238
|
+
return parseValueByType(input.value, input.type);
|
|
18239
|
+
}
|
|
18240
|
+
// No default configuration
|
|
18241
|
+
if (!input.withDefault) {
|
|
18242
|
+
return null;
|
|
18243
|
+
}
|
|
18244
|
+
// Custom default value
|
|
18245
|
+
if (typeof input.withDefault === 'string') {
|
|
18246
|
+
return parseValueByType(input.withDefault, input.type);
|
|
18247
|
+
}
|
|
18248
|
+
// Auto default value (withDefault === true)
|
|
18249
|
+
return getAutoDefaultValue(input.type);
|
|
18250
|
+
}
|
|
18251
|
+
/**
|
|
18252
|
+
* Parses a string value to the appropriate type based on the input type.
|
|
18253
|
+
*
|
|
18254
|
+
* @param value - The string value to parse
|
|
18255
|
+
* @param type - The input type
|
|
18256
|
+
* @returns The parsed value
|
|
18257
|
+
*/
|
|
18258
|
+
function parseValueByType(value, type) {
|
|
18259
|
+
switch (type) {
|
|
18260
|
+
case InputType.DATE:
|
|
18261
|
+
return new Date(value).toISOString();
|
|
18262
|
+
case InputType.NUMBER:
|
|
18263
|
+
return parseFloat(value) || 0;
|
|
18264
|
+
case InputType.CHECK:
|
|
18265
|
+
return value === 'true' || value === '1';
|
|
18266
|
+
case InputType.TEXT:
|
|
18267
|
+
case InputType.EMAIL:
|
|
18268
|
+
case InputType.PASSWORD:
|
|
18269
|
+
case InputType.COMMENT:
|
|
18270
|
+
case InputType.PIN_CODE:
|
|
18271
|
+
case InputType.HOUR:
|
|
18272
|
+
case InputType.RADIO:
|
|
18273
|
+
case InputType.SELECT:
|
|
18274
|
+
case InputType.SEARCH_SELECT:
|
|
18275
|
+
case InputType.FILE:
|
|
18276
|
+
default:
|
|
18277
|
+
return value;
|
|
18278
|
+
}
|
|
18279
|
+
}
|
|
18280
|
+
/**
|
|
18281
|
+
* Gets the automatic default value for a given input type.
|
|
18282
|
+
*
|
|
18283
|
+
* @param type - The input type
|
|
18284
|
+
* @returns The auto default value
|
|
18285
|
+
*/
|
|
18286
|
+
function getAutoDefaultValue(type) {
|
|
18287
|
+
switch (type) {
|
|
18288
|
+
case InputType.DATE:
|
|
18289
|
+
return new Date().toISOString();
|
|
18290
|
+
case InputType.NUMBER:
|
|
18291
|
+
return 0;
|
|
18292
|
+
case InputType.CHECK:
|
|
18293
|
+
return false;
|
|
18294
|
+
case InputType.TEXT:
|
|
18295
|
+
case InputType.EMAIL:
|
|
18296
|
+
case InputType.PASSWORD:
|
|
18297
|
+
case InputType.COMMENT:
|
|
18298
|
+
case InputType.PIN_CODE:
|
|
18299
|
+
case InputType.HOUR:
|
|
18300
|
+
case InputType.RADIO:
|
|
18301
|
+
case InputType.SELECT:
|
|
18302
|
+
case InputType.SEARCH_SELECT:
|
|
18303
|
+
case InputType.FILE:
|
|
18304
|
+
default:
|
|
18305
|
+
return '';
|
|
18306
|
+
}
|
|
18307
|
+
}
|
|
18308
|
+
/**
|
|
18309
|
+
* Applies the resolved default value to a FormControl.
|
|
18310
|
+
*
|
|
18311
|
+
* @param input - The input metadata configuration
|
|
18312
|
+
* @example
|
|
18313
|
+
* const input = { control: myFormControl, type: InputType.DATE, withDefault: true };
|
|
18314
|
+
* applyDefaultValueToControl(input);
|
|
18315
|
+
*/
|
|
18316
|
+
function applyDefaultValueToControl(input) {
|
|
18317
|
+
if (!input.control)
|
|
18318
|
+
return;
|
|
18319
|
+
const defaultValue = resolveInputDefaultValue(input);
|
|
18320
|
+
if (defaultValue !== null) {
|
|
18321
|
+
input.control.setValue(defaultValue);
|
|
18322
|
+
input.control.markAsPristine();
|
|
18323
|
+
input.control.updateValueAndValidity();
|
|
18324
|
+
}
|
|
18325
|
+
}
|
|
18326
|
+
|
|
18449
18327
|
/**
|
|
18450
18328
|
* val-select-input
|
|
18451
18329
|
*
|
|
@@ -19128,17 +19006,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
19128
19006
|
type: Output
|
|
19129
19007
|
}] } });
|
|
19130
19008
|
|
|
19009
|
+
/** Contador estático para generar ids únicos por instancia. */
|
|
19010
|
+
let textInputUid = 0;
|
|
19131
19011
|
/**
|
|
19132
19012
|
* val-text-input
|
|
19133
19013
|
*
|
|
19134
|
-
* A text input field integrated with Angular forms.
|
|
19014
|
+
* A text input field integrated with Angular forms. Renders the native HTML
|
|
19015
|
+
* input type from `props.inputType` (default 'text'). Collapses the former
|
|
19016
|
+
* `val-email-input` / `val-number-input` / `val-hour-input` molecules:
|
|
19017
|
+
* - `inputType: 'email' | 'number' | 'tel' | 'password' | ...` → `<ion-input [type]>`
|
|
19018
|
+
* - `inputType: 'time'` → `<ion-datetime presentation="time">` (ex `val-hour-input`)
|
|
19019
|
+
*
|
|
19135
19020
|
* Supports presets for reusable configurations.
|
|
19136
19021
|
*
|
|
19137
19022
|
* @example With preset (recommended):
|
|
19138
19023
|
* <val-text-input preset="form-field" [props]="{ control: myControl, placeholder: 'Enter text' }"></val-text-input>
|
|
19139
19024
|
*
|
|
19140
|
-
* @example
|
|
19141
|
-
* <val-text-input [props]="{ control:
|
|
19025
|
+
* @example Email:
|
|
19026
|
+
* <val-text-input [props]="{ control: emailControl, inputType: 'email' }"></val-text-input>
|
|
19027
|
+
*
|
|
19028
|
+
* @example Time picker (ex val-hour-input):
|
|
19029
|
+
* <val-text-input [props]="{ control: timeControl, inputType: 'time' }"></val-text-input>
|
|
19142
19030
|
*
|
|
19143
19031
|
* @input preset: string - Name of preset to apply (e.g., 'form-field', 'search')
|
|
19144
19032
|
* @input props: InputMetadata - Configuration for the input (overrides preset values)
|
|
@@ -19151,6 +19039,7 @@ class TextInputComponent {
|
|
|
19151
19039
|
* @type {InputMetadata}
|
|
19152
19040
|
* @property control - The Angular FormControl for the input.
|
|
19153
19041
|
* @property placeholder - The placeholder text.
|
|
19042
|
+
* @property inputType - Native HTML input type ('text' | 'email' | 'number' | 'tel' | 'password' | 'time' | ...).
|
|
19154
19043
|
* @property label, name, hint, type, validators, etc. - See InputMetadata for all options.
|
|
19155
19044
|
*/
|
|
19156
19045
|
this.props = {};
|
|
@@ -19160,6 +19049,23 @@ class TextInputComponent {
|
|
|
19160
19049
|
*/
|
|
19161
19050
|
this.resolvedProps = {};
|
|
19162
19051
|
this.states = ComponentStates;
|
|
19052
|
+
/** Ids únicos por instancia para el wiring de accesibilidad label↔input↔error. */
|
|
19053
|
+
this.uid = `val-text-input-${textInputUid++}`;
|
|
19054
|
+
this.inputId = `${this.uid}-control`;
|
|
19055
|
+
}
|
|
19056
|
+
/**
|
|
19057
|
+
* Id del label visible. Si `val-form` orquesta el campo, pasa el id del
|
|
19058
|
+
* `<val-title>` externo vía `props.labelId`; si no, se usa el id interno.
|
|
19059
|
+
*/
|
|
19060
|
+
get labelId() {
|
|
19061
|
+
return this.resolvedProps?.labelId ?? `${this.uid}-label`;
|
|
19062
|
+
}
|
|
19063
|
+
/**
|
|
19064
|
+
* Id del contenedor de error. Si `val-form` orquesta el campo, pasa el id del
|
|
19065
|
+
* `<val-hint>` externo vía `props.errorId`; si no, se usa el id interno.
|
|
19066
|
+
*/
|
|
19067
|
+
get errorId() {
|
|
19068
|
+
return this.resolvedProps?.errorId ?? `${this.uid}-error`;
|
|
19163
19069
|
}
|
|
19164
19070
|
ngOnInit() {
|
|
19165
19071
|
this.resolveProps();
|
|
@@ -19173,6 +19079,18 @@ class TextInputComponent {
|
|
|
19173
19079
|
this.resolveProps();
|
|
19174
19080
|
}
|
|
19175
19081
|
}
|
|
19082
|
+
/**
|
|
19083
|
+
* Native HTML input type, defaulting to 'text'. Drives both the `[type]` of the
|
|
19084
|
+
* `<ion-input>` and the branch between `<ion-input>` and `<ion-datetime>`.
|
|
19085
|
+
*/
|
|
19086
|
+
get resolvedType() {
|
|
19087
|
+
return this.resolvedProps?.inputType ?? 'text';
|
|
19088
|
+
}
|
|
19089
|
+
/** Para `aria-invalid` / `aria-describedby`: error visible solo si tocado. */
|
|
19090
|
+
get isInvalid() {
|
|
19091
|
+
const control = this.resolvedProps?.control;
|
|
19092
|
+
return !!(control && control.invalid && control.touched);
|
|
19093
|
+
}
|
|
19176
19094
|
/**
|
|
19177
19095
|
* Merge preset configuration with explicit props.
|
|
19178
19096
|
* Explicit props take precedence over preset values.
|
|
@@ -19186,11 +19104,57 @@ class TextInputComponent {
|
|
|
19186
19104
|
};
|
|
19187
19105
|
}
|
|
19188
19106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
19107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TextInputComponent, isStandalone: true, selector: "val-text-input", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
19108
|
+
@if (resolvedType === 'time') {
|
|
19109
|
+
<ion-datetime
|
|
19110
|
+
[formControl]="resolvedProps.control"
|
|
19111
|
+
presentation="time"
|
|
19112
|
+
[attr.id]="inputId"
|
|
19113
|
+
[attr.aria-label]="resolvedProps.label || null"
|
|
19114
|
+
[attr.aria-labelledby]="resolvedProps.label ? labelId : null"
|
|
19115
|
+
[attr.aria-invalid]="isInvalid"
|
|
19116
|
+
[attr.aria-describedby]="isInvalid ? errorId : null"
|
|
19117
|
+
></ion-datetime>
|
|
19118
|
+
} @else {
|
|
19119
|
+
<ion-input
|
|
19120
|
+
[formControl]="resolvedProps.control"
|
|
19121
|
+
[type]="resolvedType"
|
|
19122
|
+
[placeholder]="resolvedProps.placeholder"
|
|
19123
|
+
[attr.id]="inputId"
|
|
19124
|
+
[attr.aria-label]="resolvedProps.label || null"
|
|
19125
|
+
[attr.aria-labelledby]="resolvedProps.label ? labelId : null"
|
|
19126
|
+
[attr.aria-invalid]="isInvalid"
|
|
19127
|
+
[attr.aria-describedby]="isInvalid ? errorId : null"
|
|
19128
|
+
/>
|
|
19129
|
+
}
|
|
19130
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }] }); }
|
|
19190
19131
|
}
|
|
19191
19132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
19192
19133
|
type: Component,
|
|
19193
|
-
args: [{ selector: 'val-text-input', standalone: true, imports: [ReactiveFormsModule, IonInput], template: `
|
|
19134
|
+
args: [{ selector: 'val-text-input', standalone: true, imports: [ReactiveFormsModule, IonInput, IonDatetime], template: `
|
|
19135
|
+
@if (resolvedType === 'time') {
|
|
19136
|
+
<ion-datetime
|
|
19137
|
+
[formControl]="resolvedProps.control"
|
|
19138
|
+
presentation="time"
|
|
19139
|
+
[attr.id]="inputId"
|
|
19140
|
+
[attr.aria-label]="resolvedProps.label || null"
|
|
19141
|
+
[attr.aria-labelledby]="resolvedProps.label ? labelId : null"
|
|
19142
|
+
[attr.aria-invalid]="isInvalid"
|
|
19143
|
+
[attr.aria-describedby]="isInvalid ? errorId : null"
|
|
19144
|
+
></ion-datetime>
|
|
19145
|
+
} @else {
|
|
19146
|
+
<ion-input
|
|
19147
|
+
[formControl]="resolvedProps.control"
|
|
19148
|
+
[type]="resolvedType"
|
|
19149
|
+
[placeholder]="resolvedProps.placeholder"
|
|
19150
|
+
[attr.id]="inputId"
|
|
19151
|
+
[attr.aria-label]="resolvedProps.label || null"
|
|
19152
|
+
[attr.aria-labelledby]="resolvedProps.label ? labelId : null"
|
|
19153
|
+
[attr.aria-invalid]="isInvalid"
|
|
19154
|
+
[attr.aria-describedby]="isInvalid ? errorId : null"
|
|
19155
|
+
/>
|
|
19156
|
+
}
|
|
19157
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}\n"] }]
|
|
19194
19158
|
}], propDecorators: { preset: [{
|
|
19195
19159
|
type: Input
|
|
19196
19160
|
}], props: [{
|
|
@@ -19433,7 +19397,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
19433
19397
|
type: Input
|
|
19434
19398
|
}] } });
|
|
19435
19399
|
|
|
19436
|
-
const IONIC_COLORS$
|
|
19400
|
+
const IONIC_COLORS$6 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
19437
19401
|
class PillComponent {
|
|
19438
19402
|
constructor() {
|
|
19439
19403
|
this.presets = inject(PresetService);
|
|
@@ -19473,7 +19437,7 @@ class PillComponent {
|
|
|
19473
19437
|
}
|
|
19474
19438
|
getIconColor() {
|
|
19475
19439
|
const c = this.resolvedProps.notification?.iconColor || 'warning';
|
|
19476
|
-
return IONIC_COLORS$
|
|
19440
|
+
return IONIC_COLORS$6.includes(c) ? `var(--ion-color-${c})` : c;
|
|
19477
19441
|
}
|
|
19478
19442
|
onPillClick(event) {
|
|
19479
19443
|
if (!this.resolvedProps.clickable)
|
|
@@ -19625,17 +19589,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
19625
19589
|
type: Output
|
|
19626
19590
|
}] } });
|
|
19627
19591
|
|
|
19592
|
+
/**
|
|
19593
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
19594
|
+
* namespace `CommandDisplay`. Cubre el aria-label del botón copiar.
|
|
19595
|
+
*/
|
|
19596
|
+
const COMMAND_DISPLAY_I18N = {
|
|
19597
|
+
es: { copy: 'Copiar comando' },
|
|
19598
|
+
en: { copy: 'Copy command' },
|
|
19599
|
+
};
|
|
19628
19600
|
class CommandDisplayComponent {
|
|
19629
19601
|
constructor() {
|
|
19630
19602
|
this.toast = inject(ToastController);
|
|
19631
19603
|
this.i18n = inject(I18nService);
|
|
19604
|
+
/** Mensaje anunciado por el lector de pantalla al copiar. */
|
|
19605
|
+
this.copiedMessage = '';
|
|
19606
|
+
if (!this.i18n.hasNamespace('CommandDisplay')) {
|
|
19607
|
+
this.i18n.registerContent('CommandDisplay', COMMAND_DISPLAY_I18N);
|
|
19608
|
+
}
|
|
19609
|
+
}
|
|
19610
|
+
copyLabel() {
|
|
19611
|
+
this.i18n.lang();
|
|
19612
|
+
return this.i18n.t('copy', 'CommandDisplay');
|
|
19632
19613
|
}
|
|
19633
19614
|
async copyCommand() {
|
|
19634
19615
|
if (this.props.text) {
|
|
19635
19616
|
await Clipboard.write({
|
|
19636
19617
|
string: this.props.text,
|
|
19637
19618
|
});
|
|
19638
|
-
this.
|
|
19619
|
+
const message = this.i18n.t('copiedToClipboard');
|
|
19620
|
+
this.copiedMessage = message;
|
|
19621
|
+
this.presentToast(message);
|
|
19639
19622
|
}
|
|
19640
19623
|
}
|
|
19641
19624
|
async presentToast(message) {
|
|
@@ -19651,19 +19634,25 @@ class CommandDisplayComponent {
|
|
|
19651
19634
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CommandDisplayComponent, isStandalone: true, selector: "val-command-display", inputs: { props: "props" }, ngImport: i0, template: `
|
|
19652
19635
|
<div class="command-container">
|
|
19653
19636
|
<div class="command-text">$ {{ props.text }}</div>
|
|
19654
|
-
<
|
|
19637
|
+
<button type="button" class="copy-button" [attr.aria-label]="copyLabel()" (click)="copyCommand()">
|
|
19638
|
+
<ion-icon name="copy-outline" class="copy-icon" aria-hidden="true"></ion-icon>
|
|
19639
|
+
</button>
|
|
19655
19640
|
</div>
|
|
19656
|
-
|
|
19641
|
+
<span class="sr-only" role="status" aria-live="polite">{{ copiedMessage }}</span>
|
|
19642
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.command-container{display:flex;align-items:center;justify-content:space-between;background-color:var(--ion-color-light, #f2f2f2);border-radius:24px;padding:12px 16px;box-shadow:0 2px 4px #0000001a}.command-text{flex-grow:1;font-family:monospace;font-size:.8rem;color:var(--ion-color-dark, #333);margin-right:10px}.copy-button{display:inline-flex;align-items:center;justify-content:center;padding:4px;margin:0;border:none;background:none;line-height:0;cursor:pointer;border-radius:8px}.copy-button:focus{outline:none}.copy-button:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.copy-button:hover .copy-icon{color:var(--ion-color-primary, #3880ff)}.copy-icon{font-size:1.3rem;color:var(--ion-color-medium, #92949c);transition:color .2s ease-in-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width: 600px){.command-text,.copy-icon{font-size:1.2rem}}\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"] }] }); }
|
|
19657
19643
|
}
|
|
19658
19644
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommandDisplayComponent, decorators: [{
|
|
19659
19645
|
type: Component,
|
|
19660
19646
|
args: [{ selector: 'val-command-display', standalone: true, imports: [CommonModule, IonIcon], template: `
|
|
19661
19647
|
<div class="command-container">
|
|
19662
19648
|
<div class="command-text">$ {{ props.text }}</div>
|
|
19663
|
-
<
|
|
19649
|
+
<button type="button" class="copy-button" [attr.aria-label]="copyLabel()" (click)="copyCommand()">
|
|
19650
|
+
<ion-icon name="copy-outline" class="copy-icon" aria-hidden="true"></ion-icon>
|
|
19651
|
+
</button>
|
|
19664
19652
|
</div>
|
|
19665
|
-
|
|
19666
|
-
|
|
19653
|
+
<span class="sr-only" role="status" aria-live="polite">{{ copiedMessage }}</span>
|
|
19654
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.command-container{display:flex;align-items:center;justify-content:space-between;background-color:var(--ion-color-light, #f2f2f2);border-radius:24px;padding:12px 16px;box-shadow:0 2px 4px #0000001a}.command-text{flex-grow:1;font-family:monospace;font-size:.8rem;color:var(--ion-color-dark, #333);margin-right:10px}.copy-button{display:inline-flex;align-items:center;justify-content:center;padding:4px;margin:0;border:none;background:none;line-height:0;cursor:pointer;border-radius:8px}.copy-button:focus{outline:none}.copy-button:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.copy-button:hover .copy-icon{color:var(--ion-color-primary, #3880ff)}.copy-icon{font-size:1.3rem;color:var(--ion-color-medium, #92949c);transition:color .2s ease-in-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width: 600px){.command-text,.copy-icon{font-size:1.2rem}}\n"] }]
|
|
19655
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
19667
19656
|
type: Input
|
|
19668
19657
|
}] } });
|
|
19669
19658
|
|
|
@@ -20061,9 +20050,7 @@ class BreadcrumbComponent {
|
|
|
20061
20050
|
}
|
|
20062
20051
|
}
|
|
20063
20052
|
resolveProps() {
|
|
20064
|
-
const presetProps = this.preset
|
|
20065
|
-
? this.presets.get('breadcrumb', this.preset)
|
|
20066
|
-
: {};
|
|
20053
|
+
const presetProps = this.preset ? this.presets.get('breadcrumb', this.preset) : {};
|
|
20067
20054
|
this.resolvedProps = {
|
|
20068
20055
|
...presetProps,
|
|
20069
20056
|
...this.props,
|
|
@@ -20093,6 +20080,7 @@ class BreadcrumbComponent {
|
|
|
20093
20080
|
[active]="item.active || isLast"
|
|
20094
20081
|
[disabled]="item.disabled"
|
|
20095
20082
|
[separator]="!isLast"
|
|
20083
|
+
[attr.aria-current]="item.active || isLast ? 'page' : null"
|
|
20096
20084
|
(click)="onBreadcrumbClick($event, item, $index)"
|
|
20097
20085
|
>
|
|
20098
20086
|
@if (item.icon) {
|
|
@@ -20121,6 +20109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20121
20109
|
[active]="item.active || isLast"
|
|
20122
20110
|
[disabled]="item.disabled"
|
|
20123
20111
|
[separator]="!isLast"
|
|
20112
|
+
[attr.aria-current]="item.active || isLast ? 'page' : null"
|
|
20124
20113
|
(click)="onBreadcrumbClick($event, item, $index)"
|
|
20125
20114
|
>
|
|
20126
20115
|
@if (item.icon) {
|
|
@@ -20145,6 +20134,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20145
20134
|
}] } });
|
|
20146
20135
|
|
|
20147
20136
|
addIcons({ chevronBack, chevronForward, playBack, playForward });
|
|
20137
|
+
/**
|
|
20138
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
20139
|
+
* namespace `Pagination`. Cubre los aria-label de la navegación y sus botones.
|
|
20140
|
+
*/
|
|
20141
|
+
const PAGINATION_I18N = {
|
|
20142
|
+
es: {
|
|
20143
|
+
nav: 'Paginación',
|
|
20144
|
+
first: 'Primera página',
|
|
20145
|
+
previous: 'Página anterior',
|
|
20146
|
+
next: 'Página siguiente',
|
|
20147
|
+
last: 'Última página',
|
|
20148
|
+
page: 'Página {page}',
|
|
20149
|
+
pageInfo: 'Página {current} de {total}',
|
|
20150
|
+
},
|
|
20151
|
+
en: {
|
|
20152
|
+
nav: 'Pagination',
|
|
20153
|
+
first: 'First page',
|
|
20154
|
+
previous: 'Previous page',
|
|
20155
|
+
next: 'Next page',
|
|
20156
|
+
last: 'Last page',
|
|
20157
|
+
page: 'Page {page}',
|
|
20158
|
+
pageInfo: 'Page {current} of {total}',
|
|
20159
|
+
},
|
|
20160
|
+
};
|
|
20148
20161
|
/**
|
|
20149
20162
|
* val-pagination
|
|
20150
20163
|
*
|
|
@@ -20170,9 +20183,28 @@ addIcons({ chevronBack, chevronForward, playBack, playForward });
|
|
|
20170
20183
|
*/
|
|
20171
20184
|
class PaginationComponent {
|
|
20172
20185
|
constructor() {
|
|
20186
|
+
this.i18n = inject(I18nService);
|
|
20173
20187
|
this.pageChange = new EventEmitter();
|
|
20174
20188
|
this.visiblePages = [];
|
|
20175
20189
|
this.totalPages = 1;
|
|
20190
|
+
if (!this.i18n.hasNamespace('Pagination')) {
|
|
20191
|
+
this.i18n.registerContent('Pagination', PAGINATION_I18N);
|
|
20192
|
+
}
|
|
20193
|
+
}
|
|
20194
|
+
t(key) {
|
|
20195
|
+
this.i18n.lang();
|
|
20196
|
+
return this.i18n.t(key, 'Pagination');
|
|
20197
|
+
}
|
|
20198
|
+
pageLabel(page) {
|
|
20199
|
+
this.i18n.lang();
|
|
20200
|
+
return this.i18n.t('page', 'Pagination', { page: page.toString() });
|
|
20201
|
+
}
|
|
20202
|
+
pageInfo() {
|
|
20203
|
+
this.i18n.lang();
|
|
20204
|
+
return this.i18n.t('pageInfo', 'Pagination', {
|
|
20205
|
+
current: this.props.currentPage.toString(),
|
|
20206
|
+
total: this.totalPages.toString(),
|
|
20207
|
+
});
|
|
20176
20208
|
}
|
|
20177
20209
|
ngOnChanges(changes) {
|
|
20178
20210
|
if (changes['props']) {
|
|
@@ -20241,16 +20273,17 @@ class PaginationComponent {
|
|
|
20241
20273
|
}
|
|
20242
20274
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20243
20275
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginationComponent, isStandalone: true, selector: "val-pagination", inputs: { props: "props" }, outputs: { pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: `
|
|
20244
|
-
<
|
|
20276
|
+
<nav class="pagination-container" [class.disabled]="props.disabled" [attr.aria-label]="t('nav')">
|
|
20245
20277
|
@if (props.showFirstLast !== false) {
|
|
20246
20278
|
<ion-button
|
|
20247
20279
|
fill="clear"
|
|
20248
20280
|
[size]="props.size || 'default'"
|
|
20249
20281
|
[color]="props.color || 'primary'"
|
|
20250
20282
|
[disabled]="props.disabled || props.currentPage <= 1"
|
|
20283
|
+
[attr.aria-label]="t('first')"
|
|
20251
20284
|
(click)="goToPage(1)"
|
|
20252
20285
|
>
|
|
20253
|
-
<ion-icon slot="icon-only" name="play-back"></ion-icon>
|
|
20286
|
+
<ion-icon slot="icon-only" name="play-back" aria-hidden="true"></ion-icon>
|
|
20254
20287
|
</ion-button>
|
|
20255
20288
|
}
|
|
20256
20289
|
|
|
@@ -20260,21 +20293,24 @@ class PaginationComponent {
|
|
|
20260
20293
|
[size]="props.size || 'default'"
|
|
20261
20294
|
[color]="props.color || 'primary'"
|
|
20262
20295
|
[disabled]="props.disabled || props.currentPage <= 1"
|
|
20296
|
+
[attr.aria-label]="t('previous')"
|
|
20263
20297
|
(click)="goToPage(props.currentPage - 1)"
|
|
20264
20298
|
>
|
|
20265
|
-
<ion-icon slot="icon-only" name="chevron-back"></ion-icon>
|
|
20299
|
+
<ion-icon slot="icon-only" name="chevron-back" aria-hidden="true"></ion-icon>
|
|
20266
20300
|
</ion-button>
|
|
20267
20301
|
}
|
|
20268
20302
|
|
|
20269
20303
|
@for (page of visiblePages; track page) {
|
|
20270
20304
|
@if (page === -1) {
|
|
20271
|
-
<span class="ellipsis">...</span>
|
|
20305
|
+
<span class="ellipsis" aria-hidden="true">...</span>
|
|
20272
20306
|
} @else {
|
|
20273
20307
|
<ion-button
|
|
20274
20308
|
[fill]="page === props.currentPage ? 'solid' : 'clear'"
|
|
20275
20309
|
[size]="props.size || 'default'"
|
|
20276
20310
|
[color]="props.color || 'primary'"
|
|
20277
20311
|
[disabled]="props.disabled"
|
|
20312
|
+
[attr.aria-label]="pageLabel(page)"
|
|
20313
|
+
[attr.aria-current]="page === props.currentPage ? 'page' : null"
|
|
20278
20314
|
(click)="goToPage(page)"
|
|
20279
20315
|
>
|
|
20280
20316
|
{{ page }}
|
|
@@ -20288,9 +20324,10 @@ class PaginationComponent {
|
|
|
20288
20324
|
[size]="props.size || 'default'"
|
|
20289
20325
|
[color]="props.color || 'primary'"
|
|
20290
20326
|
[disabled]="props.disabled || props.currentPage >= totalPages"
|
|
20327
|
+
[attr.aria-label]="t('next')"
|
|
20291
20328
|
(click)="goToPage(props.currentPage + 1)"
|
|
20292
20329
|
>
|
|
20293
|
-
<ion-icon slot="icon-only" name="chevron-forward"></ion-icon>
|
|
20330
|
+
<ion-icon slot="icon-only" name="chevron-forward" aria-hidden="true"></ion-icon>
|
|
20294
20331
|
</ion-button>
|
|
20295
20332
|
}
|
|
20296
20333
|
|
|
@@ -20300,31 +20337,33 @@ class PaginationComponent {
|
|
|
20300
20337
|
[size]="props.size || 'default'"
|
|
20301
20338
|
[color]="props.color || 'primary'"
|
|
20302
20339
|
[disabled]="props.disabled || props.currentPage >= totalPages"
|
|
20340
|
+
[attr.aria-label]="t('last')"
|
|
20303
20341
|
(click)="goToPage(totalPages)"
|
|
20304
20342
|
>
|
|
20305
|
-
<ion-icon slot="icon-only" name="play-forward"></ion-icon>
|
|
20343
|
+
<ion-icon slot="icon-only" name="play-forward" aria-hidden="true"></ion-icon>
|
|
20306
20344
|
</ion-button>
|
|
20307
20345
|
}
|
|
20308
20346
|
|
|
20309
20347
|
@if (props.showPageInfo) {
|
|
20310
|
-
<span class="page-info">
|
|
20348
|
+
<span class="page-info">{{ pageInfo() }}</span>
|
|
20311
20349
|
}
|
|
20312
|
-
</
|
|
20350
|
+
</nav>
|
|
20313
20351
|
`, isInline: true, styles: [":host{display:block}.pagination-container{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.pagination-container.disabled{opacity:.5;pointer-events:none}ion-button{--padding-start: 8px;--padding-end: 8px;min-width:36px;font-weight:500}ion-button[size=small]{--padding-start: 6px;--padding-end: 6px;min-width:28px;font-size:.75rem}ion-button[size=large]{--padding-start: 12px;--padding-end: 12px;min-width:44px;font-size:1rem}.ellipsis{padding:0 8px;color:var(--ion-color-medium);font-size:.875rem}.page-info{margin-left:16px;color:var(--ion-color-medium);font-size:.875rem;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
20314
20352
|
}
|
|
20315
20353
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
20316
20354
|
type: Component,
|
|
20317
20355
|
args: [{ selector: 'val-pagination', standalone: true, imports: [CommonModule, IonButton, IonIcon], template: `
|
|
20318
|
-
<
|
|
20356
|
+
<nav class="pagination-container" [class.disabled]="props.disabled" [attr.aria-label]="t('nav')">
|
|
20319
20357
|
@if (props.showFirstLast !== false) {
|
|
20320
20358
|
<ion-button
|
|
20321
20359
|
fill="clear"
|
|
20322
20360
|
[size]="props.size || 'default'"
|
|
20323
20361
|
[color]="props.color || 'primary'"
|
|
20324
20362
|
[disabled]="props.disabled || props.currentPage <= 1"
|
|
20363
|
+
[attr.aria-label]="t('first')"
|
|
20325
20364
|
(click)="goToPage(1)"
|
|
20326
20365
|
>
|
|
20327
|
-
<ion-icon slot="icon-only" name="play-back"></ion-icon>
|
|
20366
|
+
<ion-icon slot="icon-only" name="play-back" aria-hidden="true"></ion-icon>
|
|
20328
20367
|
</ion-button>
|
|
20329
20368
|
}
|
|
20330
20369
|
|
|
@@ -20334,21 +20373,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20334
20373
|
[size]="props.size || 'default'"
|
|
20335
20374
|
[color]="props.color || 'primary'"
|
|
20336
20375
|
[disabled]="props.disabled || props.currentPage <= 1"
|
|
20376
|
+
[attr.aria-label]="t('previous')"
|
|
20337
20377
|
(click)="goToPage(props.currentPage - 1)"
|
|
20338
20378
|
>
|
|
20339
|
-
<ion-icon slot="icon-only" name="chevron-back"></ion-icon>
|
|
20379
|
+
<ion-icon slot="icon-only" name="chevron-back" aria-hidden="true"></ion-icon>
|
|
20340
20380
|
</ion-button>
|
|
20341
20381
|
}
|
|
20342
20382
|
|
|
20343
20383
|
@for (page of visiblePages; track page) {
|
|
20344
20384
|
@if (page === -1) {
|
|
20345
|
-
<span class="ellipsis">...</span>
|
|
20385
|
+
<span class="ellipsis" aria-hidden="true">...</span>
|
|
20346
20386
|
} @else {
|
|
20347
20387
|
<ion-button
|
|
20348
20388
|
[fill]="page === props.currentPage ? 'solid' : 'clear'"
|
|
20349
20389
|
[size]="props.size || 'default'"
|
|
20350
20390
|
[color]="props.color || 'primary'"
|
|
20351
20391
|
[disabled]="props.disabled"
|
|
20392
|
+
[attr.aria-label]="pageLabel(page)"
|
|
20393
|
+
[attr.aria-current]="page === props.currentPage ? 'page' : null"
|
|
20352
20394
|
(click)="goToPage(page)"
|
|
20353
20395
|
>
|
|
20354
20396
|
{{ page }}
|
|
@@ -20362,9 +20404,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20362
20404
|
[size]="props.size || 'default'"
|
|
20363
20405
|
[color]="props.color || 'primary'"
|
|
20364
20406
|
[disabled]="props.disabled || props.currentPage >= totalPages"
|
|
20407
|
+
[attr.aria-label]="t('next')"
|
|
20365
20408
|
(click)="goToPage(props.currentPage + 1)"
|
|
20366
20409
|
>
|
|
20367
|
-
<ion-icon slot="icon-only" name="chevron-forward"></ion-icon>
|
|
20410
|
+
<ion-icon slot="icon-only" name="chevron-forward" aria-hidden="true"></ion-icon>
|
|
20368
20411
|
</ion-button>
|
|
20369
20412
|
}
|
|
20370
20413
|
|
|
@@ -20374,18 +20417,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20374
20417
|
[size]="props.size || 'default'"
|
|
20375
20418
|
[color]="props.color || 'primary'"
|
|
20376
20419
|
[disabled]="props.disabled || props.currentPage >= totalPages"
|
|
20420
|
+
[attr.aria-label]="t('last')"
|
|
20377
20421
|
(click)="goToPage(totalPages)"
|
|
20378
20422
|
>
|
|
20379
|
-
<ion-icon slot="icon-only" name="play-forward"></ion-icon>
|
|
20423
|
+
<ion-icon slot="icon-only" name="play-forward" aria-hidden="true"></ion-icon>
|
|
20380
20424
|
</ion-button>
|
|
20381
20425
|
}
|
|
20382
20426
|
|
|
20383
20427
|
@if (props.showPageInfo) {
|
|
20384
|
-
<span class="page-info">
|
|
20428
|
+
<span class="page-info">{{ pageInfo() }}</span>
|
|
20385
20429
|
}
|
|
20386
|
-
</
|
|
20430
|
+
</nav>
|
|
20387
20431
|
`, styles: [":host{display:block}.pagination-container{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.pagination-container.disabled{opacity:.5;pointer-events:none}ion-button{--padding-start: 8px;--padding-end: 8px;min-width:36px;font-weight:500}ion-button[size=small]{--padding-start: 6px;--padding-end: 6px;min-width:28px;font-size:.75rem}ion-button[size=large]{--padding-start: 12px;--padding-end: 12px;min-width:44px;font-size:1rem}.ellipsis{padding:0 8px;color:var(--ion-color-medium);font-size:.875rem}.page-info{margin-left:16px;color:var(--ion-color-medium);font-size:.875rem;white-space:nowrap}\n"] }]
|
|
20388
|
-
}], propDecorators: { props: [{
|
|
20432
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
20389
20433
|
type: Input
|
|
20390
20434
|
}], pageChange: [{
|
|
20391
20435
|
type: Output
|
|
@@ -20516,13 +20560,17 @@ class StepperComponent {
|
|
|
20516
20560
|
[class.vertical]="resolvedProps.orientation === 'vertical'"
|
|
20517
20561
|
>
|
|
20518
20562
|
@for (step of resolvedProps.steps; track step.value; let i = $index; let isLast = $last) {
|
|
20519
|
-
<
|
|
20563
|
+
<button
|
|
20564
|
+
type="button"
|
|
20520
20565
|
class="step"
|
|
20521
20566
|
[class.current]="getStepStatus(step, i) === 'current'"
|
|
20522
20567
|
[class.completed]="getStepStatus(step, i) === 'completed'"
|
|
20523
20568
|
[class.error]="getStepStatus(step, i) === 'error'"
|
|
20524
20569
|
[class.disabled]="step.disabled"
|
|
20525
20570
|
[class.clickable]="isStepClickable(step, i)"
|
|
20571
|
+
[disabled]="!isStepClickable(step, i)"
|
|
20572
|
+
[attr.aria-current]="getStepStatus(step, i) === 'current' ? 'step' : null"
|
|
20573
|
+
[attr.aria-label]="getStepLabel(step)"
|
|
20526
20574
|
(click)="onStepClick(step, i)"
|
|
20527
20575
|
>
|
|
20528
20576
|
<div class="step-indicator">
|
|
@@ -20558,10 +20606,10 @@ class StepperComponent {
|
|
|
20558
20606
|
<div class="step-description">{{ step.description }}</div>
|
|
20559
20607
|
}
|
|
20560
20608
|
</div>
|
|
20561
|
-
</
|
|
20609
|
+
</button>
|
|
20562
20610
|
}
|
|
20563
20611
|
</div>
|
|
20564
|
-
`, isInline: true, styles: [":host{display:block}.stepper-container{display:flex}.stepper-container.horizontal{flex-direction:row;align-items:flex-start}.stepper-container.horizontal .step{flex:1;flex-direction:column;align-items:center;text-align:center}.stepper-container.horizontal .step .step-indicator{flex-direction:row;width:100%;justify-content:center}.stepper-container.horizontal .step .step-connector{flex:1;height:2px;margin:0 8px;align-self:center}.stepper-container.vertical{flex-direction:column}.stepper-container.vertical .step{flex-direction:row;align-items:flex-start}.stepper-container.vertical .step .step-indicator{flex-direction:column;align-items:center}.stepper-container.vertical .step .step-connector{width:2px;flex:1;min-height:24px;margin:8px 0}.stepper-container.vertical .step .step-content{margin-left:12px;padding-bottom:24px}.step{display:flex;cursor:default}.step.clickable{cursor:pointer}.step.clickable:hover .step-circle{transform:scale(1.1)}.step.disabled{opacity:.5
|
|
20612
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.stepper-container{display:flex}.stepper-container.horizontal{flex-direction:row;align-items:flex-start}.stepper-container.horizontal .step{flex:1;flex-direction:column;align-items:center;text-align:center}.stepper-container.horizontal .step .step-indicator{flex-direction:row;width:100%;justify-content:center}.stepper-container.horizontal .step .step-connector{flex:1;height:2px;margin:0 8px;align-self:center}.stepper-container.vertical{flex-direction:column}.stepper-container.vertical .step{flex-direction:row;align-items:flex-start}.stepper-container.vertical .step .step-indicator{flex-direction:column;align-items:center}.stepper-container.vertical .step .step-connector{width:2px;flex:1;min-height:24px;margin:8px 0}.stepper-container.vertical .step .step-content{margin-left:12px;padding-bottom:24px}.step{display:flex;cursor:default;padding:0;border:none;background:none;font:inherit;text-align:inherit;color:inherit}.step:focus{outline:none}.step:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.step.clickable{cursor:pointer}.step.clickable:hover .step-circle{transform:scale(1.1)}.step.disabled{opacity:.5}.step:disabled{cursor:default}.step.current .step-circle{box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.2)}.step-indicator{display:flex;position:relative}.step-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:var(--step-color, var(--ion-color-medium));color:#fff;font-weight:600;font-size:.875rem;transition:transform .2s,box-shadow .2s;flex-shrink:0}.step-circle ion-icon{font-size:1.125rem}.step-connector{background-color:var(--ion-color-light-shade);transition:background-color .3s}.step-connector.completed{background-color:var(--ion-color-primary)}.step-connector.dashed{background:repeating-linear-gradient(90deg,var(--ion-color-light-shade),var(--ion-color-light-shade) 4px,transparent 4px,transparent 8px)}.step-connector.dashed.completed{background:repeating-linear-gradient(90deg,var(--ion-color-primary),var(--ion-color-primary) 4px,transparent 4px,transparent 8px)}.step-content{margin-top:8px}.step-label{font-weight:500;font-size:.875rem;color:var(--ion-text-color)}.step-label .optional-text{font-weight:400;font-size:.75rem;color:var(--ion-color-medium);margin-left:4px}.step-description{font-size:.75rem;color:var(--ion-color-medium);margin-top:4px}\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"] }] }); }
|
|
20565
20613
|
}
|
|
20566
20614
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StepperComponent, decorators: [{
|
|
20567
20615
|
type: Component,
|
|
@@ -20572,13 +20620,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20572
20620
|
[class.vertical]="resolvedProps.orientation === 'vertical'"
|
|
20573
20621
|
>
|
|
20574
20622
|
@for (step of resolvedProps.steps; track step.value; let i = $index; let isLast = $last) {
|
|
20575
|
-
<
|
|
20623
|
+
<button
|
|
20624
|
+
type="button"
|
|
20576
20625
|
class="step"
|
|
20577
20626
|
[class.current]="getStepStatus(step, i) === 'current'"
|
|
20578
20627
|
[class.completed]="getStepStatus(step, i) === 'completed'"
|
|
20579
20628
|
[class.error]="getStepStatus(step, i) === 'error'"
|
|
20580
20629
|
[class.disabled]="step.disabled"
|
|
20581
20630
|
[class.clickable]="isStepClickable(step, i)"
|
|
20631
|
+
[disabled]="!isStepClickable(step, i)"
|
|
20632
|
+
[attr.aria-current]="getStepStatus(step, i) === 'current' ? 'step' : null"
|
|
20633
|
+
[attr.aria-label]="getStepLabel(step)"
|
|
20582
20634
|
(click)="onStepClick(step, i)"
|
|
20583
20635
|
>
|
|
20584
20636
|
<div class="step-indicator">
|
|
@@ -20614,10 +20666,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20614
20666
|
<div class="step-description">{{ step.description }}</div>
|
|
20615
20667
|
}
|
|
20616
20668
|
</div>
|
|
20617
|
-
</
|
|
20669
|
+
</button>
|
|
20618
20670
|
}
|
|
20619
20671
|
</div>
|
|
20620
|
-
`, styles: [":host{display:block}.stepper-container{display:flex}.stepper-container.horizontal{flex-direction:row;align-items:flex-start}.stepper-container.horizontal .step{flex:1;flex-direction:column;align-items:center;text-align:center}.stepper-container.horizontal .step .step-indicator{flex-direction:row;width:100%;justify-content:center}.stepper-container.horizontal .step .step-connector{flex:1;height:2px;margin:0 8px;align-self:center}.stepper-container.vertical{flex-direction:column}.stepper-container.vertical .step{flex-direction:row;align-items:flex-start}.stepper-container.vertical .step .step-indicator{flex-direction:column;align-items:center}.stepper-container.vertical .step .step-connector{width:2px;flex:1;min-height:24px;margin:8px 0}.stepper-container.vertical .step .step-content{margin-left:12px;padding-bottom:24px}.step{display:flex;cursor:default}.step.clickable{cursor:pointer}.step.clickable:hover .step-circle{transform:scale(1.1)}.step.disabled{opacity:.5
|
|
20672
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.stepper-container{display:flex}.stepper-container.horizontal{flex-direction:row;align-items:flex-start}.stepper-container.horizontal .step{flex:1;flex-direction:column;align-items:center;text-align:center}.stepper-container.horizontal .step .step-indicator{flex-direction:row;width:100%;justify-content:center}.stepper-container.horizontal .step .step-connector{flex:1;height:2px;margin:0 8px;align-self:center}.stepper-container.vertical{flex-direction:column}.stepper-container.vertical .step{flex-direction:row;align-items:flex-start}.stepper-container.vertical .step .step-indicator{flex-direction:column;align-items:center}.stepper-container.vertical .step .step-connector{width:2px;flex:1;min-height:24px;margin:8px 0}.stepper-container.vertical .step .step-content{margin-left:12px;padding-bottom:24px}.step{display:flex;cursor:default;padding:0;border:none;background:none;font:inherit;text-align:inherit;color:inherit}.step:focus{outline:none}.step:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.step.clickable{cursor:pointer}.step.clickable:hover .step-circle{transform:scale(1.1)}.step.disabled{opacity:.5}.step:disabled{cursor:default}.step.current .step-circle{box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.2)}.step-indicator{display:flex;position:relative}.step-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:var(--step-color, var(--ion-color-medium));color:#fff;font-weight:600;font-size:.875rem;transition:transform .2s,box-shadow .2s;flex-shrink:0}.step-circle ion-icon{font-size:1.125rem}.step-connector{background-color:var(--ion-color-light-shade);transition:background-color .3s}.step-connector.completed{background-color:var(--ion-color-primary)}.step-connector.dashed{background:repeating-linear-gradient(90deg,var(--ion-color-light-shade),var(--ion-color-light-shade) 4px,transparent 4px,transparent 8px)}.step-connector.dashed.completed{background:repeating-linear-gradient(90deg,var(--ion-color-primary),var(--ion-color-primary) 4px,transparent 4px,transparent 8px)}.step-content{margin-top:8px}.step-label{font-weight:500;font-size:.875rem;color:var(--ion-text-color)}.step-label .optional-text{font-weight:400;font-size:.75rem;color:var(--ion-color-medium);margin-left:4px}.step-description{font-size:.75rem;color:var(--ion-color-medium);margin-top:4px}\n"] }]
|
|
20621
20673
|
}], propDecorators: { preset: [{
|
|
20622
20674
|
type: Input
|
|
20623
20675
|
}], props: [{
|
|
@@ -20627,6 +20679,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20627
20679
|
}] } });
|
|
20628
20680
|
|
|
20629
20681
|
addIcons({ close, checkmark });
|
|
20682
|
+
/**
|
|
20683
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
20684
|
+
* namespace `ChipGroup`. Cubre el aria-label del botón eliminar.
|
|
20685
|
+
*/
|
|
20686
|
+
const CHIP_GROUP_I18N = {
|
|
20687
|
+
es: { remove: 'Eliminar {label}' },
|
|
20688
|
+
en: { remove: 'Remove {label}' },
|
|
20689
|
+
};
|
|
20630
20690
|
/**
|
|
20631
20691
|
* val-chip-group
|
|
20632
20692
|
*
|
|
@@ -20655,15 +20715,30 @@ addIcons({ close, checkmark });
|
|
|
20655
20715
|
class ChipGroupComponent {
|
|
20656
20716
|
constructor() {
|
|
20657
20717
|
this.presets = inject(PresetService);
|
|
20718
|
+
this.i18n = inject(I18nService);
|
|
20658
20719
|
this.props = {};
|
|
20659
20720
|
this.resolvedProps = {};
|
|
20660
20721
|
this.selectionChange = new EventEmitter();
|
|
20661
20722
|
this.chipRemove = new EventEmitter();
|
|
20662
20723
|
this.chipClick = new EventEmitter();
|
|
20724
|
+
if (!this.i18n.hasNamespace('ChipGroup')) {
|
|
20725
|
+
this.i18n.registerContent('ChipGroup', CHIP_GROUP_I18N);
|
|
20726
|
+
}
|
|
20663
20727
|
}
|
|
20664
20728
|
ngOnInit() {
|
|
20665
20729
|
this.resolveProps();
|
|
20666
20730
|
}
|
|
20731
|
+
removeLabel(chip) {
|
|
20732
|
+
this.i18n.lang();
|
|
20733
|
+
return this.i18n.t('remove', 'ChipGroup', { label: this.getChipLabel(chip) });
|
|
20734
|
+
}
|
|
20735
|
+
/** Activación de chip selectable por teclado (Enter/Space). */
|
|
20736
|
+
onChipKey(event, chip) {
|
|
20737
|
+
if (!this.resolvedProps.selectable)
|
|
20738
|
+
return;
|
|
20739
|
+
event.preventDefault();
|
|
20740
|
+
this.onChipClick(chip);
|
|
20741
|
+
}
|
|
20667
20742
|
ngOnChanges(changes) {
|
|
20668
20743
|
if (changes['preset'] || changes['props']) {
|
|
20669
20744
|
this.resolveProps();
|
|
@@ -20731,7 +20806,12 @@ class ChipGroupComponent {
|
|
|
20731
20806
|
[color]="getChipColor(chip)"
|
|
20732
20807
|
[outline]="resolvedProps.outline && !chip.selected"
|
|
20733
20808
|
[disabled]="chip.disabled"
|
|
20809
|
+
[attr.role]="resolvedProps.selectable ? 'button' : null"
|
|
20810
|
+
[attr.tabindex]="resolvedProps.selectable && !chip.disabled ? 0 : null"
|
|
20811
|
+
[attr.aria-pressed]="resolvedProps.selectable ? !!chip.selected : null"
|
|
20734
20812
|
(click)="onChipClick(chip)"
|
|
20813
|
+
(keydown.enter)="onChipKey($event, chip)"
|
|
20814
|
+
(keydown.space)="onChipKey($event, chip)"
|
|
20735
20815
|
>
|
|
20736
20816
|
@if (chip.icon) {
|
|
20737
20817
|
<ion-icon [name]="chip.icon"></ion-icon>
|
|
@@ -20741,12 +20821,14 @@ class ChipGroupComponent {
|
|
|
20741
20821
|
}
|
|
20742
20822
|
<ion-label>{{ getChipLabel(chip) }}</ion-label>
|
|
20743
20823
|
@if (resolvedProps.removable && !chip.disabled) {
|
|
20744
|
-
<
|
|
20824
|
+
<button type="button" class="remove-button" [attr.aria-label]="removeLabel(chip)" (click)="onRemoveChip($event, chip)">
|
|
20825
|
+
<ion-icon name="close" class="remove-icon" aria-hidden="true"></ion-icon>
|
|
20826
|
+
</button>
|
|
20745
20827
|
}
|
|
20746
20828
|
</ion-chip>
|
|
20747
20829
|
}
|
|
20748
20830
|
</div>
|
|
20749
|
-
`, isInline: true, styles: [":host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-
|
|
20831
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:focus{outline:none}ion-chip:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-button{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:0;border:none;background:none;line-height:0;cursor:pointer;border-radius:50%}ion-chip .remove-button:focus{outline:none}ion-chip .remove-button:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip .remove-icon{opacity:.7;transition:opacity .2s}.remove-button:hover ion-chip .remove-icon{opacity:1}ion-chip ion-label{font-size:.875rem;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
|
|
20750
20832
|
}
|
|
20751
20833
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipGroupComponent, decorators: [{
|
|
20752
20834
|
type: Component,
|
|
@@ -20757,7 +20839,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20757
20839
|
[color]="getChipColor(chip)"
|
|
20758
20840
|
[outline]="resolvedProps.outline && !chip.selected"
|
|
20759
20841
|
[disabled]="chip.disabled"
|
|
20842
|
+
[attr.role]="resolvedProps.selectable ? 'button' : null"
|
|
20843
|
+
[attr.tabindex]="resolvedProps.selectable && !chip.disabled ? 0 : null"
|
|
20844
|
+
[attr.aria-pressed]="resolvedProps.selectable ? !!chip.selected : null"
|
|
20760
20845
|
(click)="onChipClick(chip)"
|
|
20846
|
+
(keydown.enter)="onChipKey($event, chip)"
|
|
20847
|
+
(keydown.space)="onChipKey($event, chip)"
|
|
20761
20848
|
>
|
|
20762
20849
|
@if (chip.icon) {
|
|
20763
20850
|
<ion-icon [name]="chip.icon"></ion-icon>
|
|
@@ -20767,13 +20854,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20767
20854
|
}
|
|
20768
20855
|
<ion-label>{{ getChipLabel(chip) }}</ion-label>
|
|
20769
20856
|
@if (resolvedProps.removable && !chip.disabled) {
|
|
20770
|
-
<
|
|
20857
|
+
<button type="button" class="remove-button" [attr.aria-label]="removeLabel(chip)" (click)="onRemoveChip($event, chip)">
|
|
20858
|
+
<ion-icon name="close" class="remove-icon" aria-hidden="true"></ion-icon>
|
|
20859
|
+
</button>
|
|
20771
20860
|
}
|
|
20772
20861
|
</ion-chip>
|
|
20773
20862
|
}
|
|
20774
20863
|
</div>
|
|
20775
|
-
`, styles: [":host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-
|
|
20776
|
-
}], propDecorators: { preset: [{
|
|
20864
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.chip-group{display:flex;gap:8px}.chip-group.wrap{flex-wrap:wrap}.chip-group:not(.wrap){overflow-x:auto;padding-bottom:4px}.chip-group:not(.wrap)::-webkit-scrollbar{height:4px}.chip-group:not(.wrap)::-webkit-scrollbar-thumb{background:var(--ion-color-light-shade);border-radius:2px}ion-chip{margin:0;cursor:pointer;transition:transform .2s,box-shadow .2s}ion-chip:focus{outline:none}ion-chip:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}ion-chip:active:not([disabled]){transform:translateY(0)}ion-chip[disabled]{opacity:.5;cursor:not-allowed}ion-chip ion-icon{font-size:1rem}ion-chip .selected-icon{margin-right:4px}ion-chip .remove-button{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:0;border:none;background:none;line-height:0;cursor:pointer;border-radius:50%}ion-chip .remove-button:focus{outline:none}ion-chip .remove-button:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}ion-chip .remove-icon{opacity:.7;transition:opacity .2s}.remove-button:hover ion-chip .remove-icon{opacity:1}ion-chip ion-label{font-size:.875rem;font-weight:500}\n"] }]
|
|
20865
|
+
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
20777
20866
|
type: Input
|
|
20778
20867
|
}], props: [{
|
|
20779
20868
|
type: Input
|
|
@@ -20786,6 +20875,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
20786
20875
|
}] } });
|
|
20787
20876
|
|
|
20788
20877
|
addIcons({ star, starOutline, starHalf, heart, heartOutline, heartHalf });
|
|
20878
|
+
/**
|
|
20879
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
20880
|
+
* namespace `Rating`. Cubre el aria-label del grupo y de cada estrella.
|
|
20881
|
+
*/
|
|
20882
|
+
const RATING_I18N = {
|
|
20883
|
+
es: { groupLabel: 'Valoración', starLabel: '{value} de {max}' },
|
|
20884
|
+
en: { groupLabel: 'Rating', starLabel: '{value} of {max}' },
|
|
20885
|
+
};
|
|
20789
20886
|
/**
|
|
20790
20887
|
* val-rating
|
|
20791
20888
|
*
|
|
@@ -20809,10 +20906,14 @@ addIcons({ star, starOutline, starHalf, heart, heartOutline, heartHalf });
|
|
|
20809
20906
|
class RatingComponent {
|
|
20810
20907
|
constructor() {
|
|
20811
20908
|
this.presets = inject(PresetService);
|
|
20909
|
+
this.i18n = inject(I18nService);
|
|
20812
20910
|
this.props = {};
|
|
20813
20911
|
this.resolvedProps = {};
|
|
20814
20912
|
this.ratingChange = new EventEmitter();
|
|
20815
20913
|
this.hoverValue = null;
|
|
20914
|
+
if (!this.i18n.hasNamespace('Rating')) {
|
|
20915
|
+
this.i18n.registerContent('Rating', RATING_I18N);
|
|
20916
|
+
}
|
|
20816
20917
|
}
|
|
20817
20918
|
ngOnInit() {
|
|
20818
20919
|
this.resolveProps();
|
|
@@ -20838,6 +20939,43 @@ class RatingComponent {
|
|
|
20838
20939
|
const max = this.resolvedProps.max || 5;
|
|
20839
20940
|
return Array.from({ length: max }, (_, i) => i + 1);
|
|
20840
20941
|
}
|
|
20942
|
+
groupLabel() {
|
|
20943
|
+
this.i18n.lang();
|
|
20944
|
+
return this.i18n.t('groupLabel', 'Rating');
|
|
20945
|
+
}
|
|
20946
|
+
starLabel(position) {
|
|
20947
|
+
this.i18n.lang();
|
|
20948
|
+
return this.i18n.t('starLabel', 'Rating', {
|
|
20949
|
+
value: position.toString(),
|
|
20950
|
+
max: (this.resolvedProps.max || 5).toString(),
|
|
20951
|
+
});
|
|
20952
|
+
}
|
|
20953
|
+
/**
|
|
20954
|
+
* Roving tabindex: solo una estrella es tabbable. La estrella del valor
|
|
20955
|
+
* actual (o la primera si no hay valor) recibe `0`, el resto `-1`.
|
|
20956
|
+
*/
|
|
20957
|
+
getStarTabindex(position) {
|
|
20958
|
+
if (this.resolvedProps.readonly || this.resolvedProps.disabled)
|
|
20959
|
+
return -1;
|
|
20960
|
+
const value = this.resolvedProps.value || 0;
|
|
20961
|
+
const focusIndex = value >= 1 ? Math.ceil(value) : 1;
|
|
20962
|
+
return position === focusIndex ? 0 : -1;
|
|
20963
|
+
}
|
|
20964
|
+
/** Navegación con flechas: mueve el foco y selecciona la estrella vecina. */
|
|
20965
|
+
onArrow(event, delta) {
|
|
20966
|
+
if (this.resolvedProps.readonly || this.resolvedProps.disabled)
|
|
20967
|
+
return;
|
|
20968
|
+
event.preventDefault();
|
|
20969
|
+
const max = this.resolvedProps.max || 5;
|
|
20970
|
+
const current = this.resolvedProps.value >= 1 ? Math.ceil(this.resolvedProps.value) : 1;
|
|
20971
|
+
const next = Math.min(max, Math.max(1, current + delta));
|
|
20972
|
+
if (next === this.resolvedProps.value)
|
|
20973
|
+
return;
|
|
20974
|
+
this.ratingChange.emit({ value: next, previousValue: this.resolvedProps.value });
|
|
20975
|
+
const target = event.target;
|
|
20976
|
+
const buttons = target.closest('.rating-container')?.querySelectorAll('.rating-star');
|
|
20977
|
+
buttons?.[next - 1]?.focus();
|
|
20978
|
+
}
|
|
20841
20979
|
getStarIcon(position) {
|
|
20842
20980
|
const value = this.hoverValue !== null ? this.hoverValue : this.resolvedProps.value;
|
|
20843
20981
|
const baseIcon = this.resolvedProps.icon || 'star';
|
|
@@ -20892,51 +21030,77 @@ class RatingComponent {
|
|
|
20892
21030
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RatingComponent, isStandalone: true, selector: "val-rating", inputs: { preset: "preset", props: "props" }, outputs: { ratingChange: "ratingChange" }, usesOnChanges: true, ngImport: i0, template: `
|
|
20893
21031
|
<div
|
|
20894
21032
|
class="rating-container"
|
|
21033
|
+
role="radiogroup"
|
|
21034
|
+
[attr.aria-label]="groupLabel()"
|
|
20895
21035
|
[class.readonly]="resolvedProps.readonly"
|
|
20896
21036
|
[class.disabled]="resolvedProps.disabled"
|
|
20897
21037
|
[class]="'size-' + (resolvedProps.size || 'medium')"
|
|
20898
21038
|
>
|
|
20899
21039
|
@for (i of getStars(); track i) {
|
|
20900
|
-
<
|
|
20901
|
-
|
|
20902
|
-
|
|
21040
|
+
<button
|
|
21041
|
+
type="button"
|
|
21042
|
+
class="rating-star"
|
|
21043
|
+
role="radio"
|
|
20903
21044
|
[class.clickable]="!resolvedProps.readonly && !resolvedProps.disabled"
|
|
21045
|
+
[attr.aria-checked]="i <= resolvedProps.value"
|
|
21046
|
+
[attr.aria-label]="starLabel(i)"
|
|
21047
|
+
[attr.tabindex]="getStarTabindex(i)"
|
|
21048
|
+
[disabled]="resolvedProps.disabled"
|
|
20904
21049
|
(click)="onStarClick(i)"
|
|
21050
|
+
(keydown.arrowright)="onArrow($event, 1)"
|
|
21051
|
+
(keydown.arrowup)="onArrow($event, 1)"
|
|
21052
|
+
(keydown.arrowleft)="onArrow($event, -1)"
|
|
21053
|
+
(keydown.arrowdown)="onArrow($event, -1)"
|
|
20905
21054
|
(mouseenter)="onStarHover(i)"
|
|
20906
21055
|
(mouseleave)="onStarLeave()"
|
|
20907
|
-
|
|
21056
|
+
>
|
|
21057
|
+
<ion-icon [name]="getStarIcon(i)" [color]="getStarColor(i)" aria-hidden="true"></ion-icon>
|
|
21058
|
+
</button>
|
|
20908
21059
|
}
|
|
20909
21060
|
@if (resolvedProps.showValue) {
|
|
20910
21061
|
<span class="rating-value">{{ displayValue }}</span>
|
|
20911
21062
|
}
|
|
20912
21063
|
</div>
|
|
20913
|
-
`, isInline: true, styles: [":host{display:inline-block}.rating-container{display:inline-flex;align-items:center;gap:4px}.rating-container.readonly{pointer-events:none}.rating-container.disabled{opacity:.5;pointer-events:none}.rating-container.size-small ion-icon{font-size:1rem}.rating-container.size-medium ion-icon{font-size:1.5rem}.rating-container.size-large ion-icon{font-size:2rem}
|
|
21064
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:inline-block}.rating-container{display:inline-flex;align-items:center;gap:4px}.rating-container.readonly{pointer-events:none}.rating-container.disabled{opacity:.5;pointer-events:none}.rating-container.size-small ion-icon{font-size:1rem}.rating-container.size-medium ion-icon{font-size:1.5rem}.rating-container.size-large ion-icon{font-size:2rem}.rating-star{display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:none;color:inherit;line-height:0;cursor:default}.rating-star:focus{outline:none}.rating-star:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.rating-star.clickable{cursor:pointer}.rating-star.clickable:hover ion-icon{transform:scale(1.2)}.rating-star:disabled{cursor:default}ion-icon{transition:transform .15s ease,color .15s ease}.rating-value{margin-left:8px;font-weight:600;color:var(--ion-color-dark)}.size-small .rating-value{font-size:.75rem}.size-medium .rating-value{font-size:.875rem}.size-large .rating-value{font-size:1.125rem}\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"] }] }); }
|
|
20914
21065
|
}
|
|
20915
21066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RatingComponent, decorators: [{
|
|
20916
21067
|
type: Component,
|
|
20917
21068
|
args: [{ selector: 'val-rating', standalone: true, imports: [CommonModule, IonIcon], template: `
|
|
20918
21069
|
<div
|
|
20919
21070
|
class="rating-container"
|
|
21071
|
+
role="radiogroup"
|
|
21072
|
+
[attr.aria-label]="groupLabel()"
|
|
20920
21073
|
[class.readonly]="resolvedProps.readonly"
|
|
20921
21074
|
[class.disabled]="resolvedProps.disabled"
|
|
20922
21075
|
[class]="'size-' + (resolvedProps.size || 'medium')"
|
|
20923
21076
|
>
|
|
20924
21077
|
@for (i of getStars(); track i) {
|
|
20925
|
-
<
|
|
20926
|
-
|
|
20927
|
-
|
|
21078
|
+
<button
|
|
21079
|
+
type="button"
|
|
21080
|
+
class="rating-star"
|
|
21081
|
+
role="radio"
|
|
20928
21082
|
[class.clickable]="!resolvedProps.readonly && !resolvedProps.disabled"
|
|
21083
|
+
[attr.aria-checked]="i <= resolvedProps.value"
|
|
21084
|
+
[attr.aria-label]="starLabel(i)"
|
|
21085
|
+
[attr.tabindex]="getStarTabindex(i)"
|
|
21086
|
+
[disabled]="resolvedProps.disabled"
|
|
20929
21087
|
(click)="onStarClick(i)"
|
|
21088
|
+
(keydown.arrowright)="onArrow($event, 1)"
|
|
21089
|
+
(keydown.arrowup)="onArrow($event, 1)"
|
|
21090
|
+
(keydown.arrowleft)="onArrow($event, -1)"
|
|
21091
|
+
(keydown.arrowdown)="onArrow($event, -1)"
|
|
20930
21092
|
(mouseenter)="onStarHover(i)"
|
|
20931
21093
|
(mouseleave)="onStarLeave()"
|
|
20932
|
-
|
|
21094
|
+
>
|
|
21095
|
+
<ion-icon [name]="getStarIcon(i)" [color]="getStarColor(i)" aria-hidden="true"></ion-icon>
|
|
21096
|
+
</button>
|
|
20933
21097
|
}
|
|
20934
21098
|
@if (resolvedProps.showValue) {
|
|
20935
21099
|
<span class="rating-value">{{ displayValue }}</span>
|
|
20936
21100
|
}
|
|
20937
21101
|
</div>
|
|
20938
|
-
`, styles: [":host{display:inline-block}.rating-container{display:inline-flex;align-items:center;gap:4px}.rating-container.readonly{pointer-events:none}.rating-container.disabled{opacity:.5;pointer-events:none}.rating-container.size-small ion-icon{font-size:1rem}.rating-container.size-medium ion-icon{font-size:1.5rem}.rating-container.size-large ion-icon{font-size:2rem}
|
|
20939
|
-
}], propDecorators: { preset: [{
|
|
21102
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:inline-block}.rating-container{display:inline-flex;align-items:center;gap:4px}.rating-container.readonly{pointer-events:none}.rating-container.disabled{opacity:.5;pointer-events:none}.rating-container.size-small ion-icon{font-size:1rem}.rating-container.size-medium ion-icon{font-size:1.5rem}.rating-container.size-large ion-icon{font-size:2rem}.rating-star{display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:none;color:inherit;line-height:0;cursor:default}.rating-star:focus{outline:none}.rating-star:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.rating-star.clickable{cursor:pointer}.rating-star.clickable:hover ion-icon{transform:scale(1.2)}.rating-star:disabled{cursor:default}ion-icon{transition:transform .15s ease,color .15s ease}.rating-value{margin-left:8px;font-weight:600;color:var(--ion-color-dark)}.size-small .rating-value{font-size:.75rem}.size-medium .rating-value{font-size:.875rem}.size-large .rating-value{font-size:1.125rem}\n"] }]
|
|
21103
|
+
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
20940
21104
|
type: Input
|
|
20941
21105
|
}], props: [{
|
|
20942
21106
|
type: Input
|
|
@@ -21302,6 +21466,14 @@ addIcons({
|
|
|
21302
21466
|
flag,
|
|
21303
21467
|
share,
|
|
21304
21468
|
});
|
|
21469
|
+
/**
|
|
21470
|
+
* Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
|
|
21471
|
+
* namespace `Comment`. Cubre el aria-label del autor (avatar + nombre).
|
|
21472
|
+
*/
|
|
21473
|
+
const COMMENT_I18N = {
|
|
21474
|
+
es: { viewProfileOf: 'Ver perfil de {name}' },
|
|
21475
|
+
en: { viewProfileOf: 'View profile of {name}' },
|
|
21476
|
+
};
|
|
21305
21477
|
/**
|
|
21306
21478
|
* val-comment
|
|
21307
21479
|
*
|
|
@@ -21352,10 +21524,18 @@ class CommentComponent {
|
|
|
21352
21524
|
this.loadMoreClick = new EventEmitter();
|
|
21353
21525
|
this.collapseToggle = new EventEmitter();
|
|
21354
21526
|
this.displayContent = '';
|
|
21527
|
+
if (!this.i18n.hasNamespace('Comment')) {
|
|
21528
|
+
this.i18n.registerContent('Comment', COMMENT_I18N);
|
|
21529
|
+
}
|
|
21355
21530
|
}
|
|
21356
21531
|
ngOnInit() {
|
|
21357
21532
|
this.displayContent = this.props.content || this.props.contentFallback || '';
|
|
21358
21533
|
}
|
|
21534
|
+
/** Aria-label accesible del autor (avatar + nombre clicables). */
|
|
21535
|
+
authorLabel() {
|
|
21536
|
+
this.i18n.lang();
|
|
21537
|
+
return this.i18n.t('viewProfileOf', 'Comment', { name: this.props.author.name });
|
|
21538
|
+
}
|
|
21359
21539
|
getInitials(name) {
|
|
21360
21540
|
return name
|
|
21361
21541
|
.split(' ')
|
|
@@ -21524,7 +21704,7 @@ class CommentComponent {
|
|
|
21524
21704
|
}
|
|
21525
21705
|
|
|
21526
21706
|
<div class="comment-main">
|
|
21527
|
-
<
|
|
21707
|
+
<button type="button" class="comment-avatar" [attr.aria-label]="authorLabel()" (click)="onAuthorClick()">
|
|
21528
21708
|
@if (props.author.avatar) {
|
|
21529
21709
|
<val-avatar [props]="props.author.avatar"></val-avatar>
|
|
21530
21710
|
} @else {
|
|
@@ -21532,11 +21712,11 @@ class CommentComponent {
|
|
|
21532
21712
|
{{ getInitials(props.author.name) }}
|
|
21533
21713
|
</div>
|
|
21534
21714
|
}
|
|
21535
|
-
</
|
|
21715
|
+
</button>
|
|
21536
21716
|
|
|
21537
21717
|
<div class="comment-body">
|
|
21538
21718
|
<div class="comment-header">
|
|
21539
|
-
<
|
|
21719
|
+
<button type="button" class="author-info" [attr.aria-label]="authorLabel()" (click)="onAuthorClick()">
|
|
21540
21720
|
<span class="author-name">{{ props.author.name }}</span>
|
|
21541
21721
|
@if (props.author.verified) {
|
|
21542
21722
|
<ion-icon name="checkmark-circle" class="verified-badge"></ion-icon>
|
|
@@ -21544,7 +21724,7 @@ class CommentComponent {
|
|
|
21544
21724
|
@if (props.author.username) {
|
|
21545
21725
|
<span class="author-username">@{{ props.author.username }}</span>
|
|
21546
21726
|
}
|
|
21547
|
-
</
|
|
21727
|
+
</button>
|
|
21548
21728
|
|
|
21549
21729
|
<div class="comment-meta">
|
|
21550
21730
|
<span class="timestamp">{{ formatTimestamp(props.timestamp) }}</span>
|
|
@@ -21685,7 +21865,7 @@ class CommentComponent {
|
|
|
21685
21865
|
</div>
|
|
21686
21866
|
}
|
|
21687
21867
|
</div>
|
|
21688
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 24px;--max-indent: 72px;padding:12px 0}.comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.08);border-radius:8px;padding:12px;margin:-4px}.comment.pinned{border-left:3px solid var(--ion-color-primary);padding-left:12px}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:44px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-medium)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-medium)}.edited-label{font-size:.6875rem;color:var(--ion-color-medium);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-medium)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention){color:var(--ion-color-primary);font-weight:500;cursor:pointer}.comment-content :global(.comment-mention):hover{text-decoration:underline}.comment-content :global(.comment-hashtag){color:var(--ion-color-primary);cursor:pointer}.comment-content :global(.comment-hashtag):hover{text-decoration:underline}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reaction-button{display:flex;align-items:center;gap:4px;background:none;border:none;padding:4px 8px;border-radius:16px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:all .2s ease;background-color:transparent}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.1)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.125rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:500}.comment-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;margin-left:-8px}.comment-actions ion-button{--padding-start: 8px;--padding-end: 8px;font-size:.8125rem;height:32px;text-transform:none;font-weight:500}.expand-button,.collapse-button,.load-more-button,.view-replies-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover,.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon,.load-more-button ion-icon,.view-replies-button ion-icon{font-size:1rem}.expand-button{margin-top:4px;color:var(--ion-color-medium)}.comment-children{margin-top:12px;padding-left:min(var(--indent-size),var(--max-indent));border-left:2px solid var(--ion-color-light-shade)}.comment-children val-comment{display:block}.comment-children val-comment:first-of-type .comment{padding-top:0}.load-more-button,.view-replies-button{margin-top:8px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment.highlighted,:host-context(.ion-palette-dark) .comment.highlighted,:host-context(html.ion-palette-dark) .comment.highlighted,:host-context(body.dark) .comment.highlighted,:host-context([data-theme=dark]) .comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.12)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"], dependencies: [{ kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { 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: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
21868
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 24px;--max-indent: 72px;padding:12px 0}.comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.08);border-radius:8px;padding:12px;margin:-4px}.comment.pinned{border-left:3px solid var(--ion-color-primary);padding-left:12px}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:44px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-medium)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-medium)}.edited-label{font-size:.6875rem;color:var(--ion-color-medium);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-medium)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention){color:var(--ion-color-primary);font-weight:500;cursor:pointer}.comment-content :global(.comment-mention):hover{text-decoration:underline}.comment-content :global(.comment-hashtag){color:var(--ion-color-primary);cursor:pointer}.comment-content :global(.comment-hashtag):hover{text-decoration:underline}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reaction-button{display:flex;align-items:center;gap:4px;background:none;border:none;padding:4px 8px;border-radius:16px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:all .2s ease;background-color:transparent}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.1)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.125rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:500}.comment-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;margin-left:-8px}.comment-actions ion-button{--padding-start: 8px;--padding-end: 8px;font-size:.8125rem;height:32px;text-transform:none;font-weight:500}.expand-button,.collapse-button,.load-more-button,.view-replies-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover,.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon,.load-more-button ion-icon,.view-replies-button ion-icon{font-size:1rem}.expand-button{margin-top:4px;color:var(--ion-color-medium)}.comment-children{margin-top:12px;padding-left:min(var(--indent-size),var(--max-indent));border-left:2px solid var(--ion-color-light-shade)}.comment-children val-comment{display:block}.comment-children val-comment:first-of-type .comment{padding-top:0}.load-more-button,.view-replies-button{margin-top:8px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment.highlighted,:host-context(.ion-palette-dark) .comment.highlighted,:host-context(html.ion-palette-dark) .comment.highlighted,:host-context(body.dark) .comment.highlighted,:host-context([data-theme=dark]) .comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.12)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"], dependencies: [{ kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { 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: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
21689
21869
|
}
|
|
21690
21870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentComponent, decorators: [{
|
|
21691
21871
|
type: Component,
|
|
@@ -21714,7 +21894,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
21714
21894
|
}
|
|
21715
21895
|
|
|
21716
21896
|
<div class="comment-main">
|
|
21717
|
-
<
|
|
21897
|
+
<button type="button" class="comment-avatar" [attr.aria-label]="authorLabel()" (click)="onAuthorClick()">
|
|
21718
21898
|
@if (props.author.avatar) {
|
|
21719
21899
|
<val-avatar [props]="props.author.avatar"></val-avatar>
|
|
21720
21900
|
} @else {
|
|
@@ -21722,11 +21902,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
21722
21902
|
{{ getInitials(props.author.name) }}
|
|
21723
21903
|
</div>
|
|
21724
21904
|
}
|
|
21725
|
-
</
|
|
21905
|
+
</button>
|
|
21726
21906
|
|
|
21727
21907
|
<div class="comment-body">
|
|
21728
21908
|
<div class="comment-header">
|
|
21729
|
-
<
|
|
21909
|
+
<button type="button" class="author-info" [attr.aria-label]="authorLabel()" (click)="onAuthorClick()">
|
|
21730
21910
|
<span class="author-name">{{ props.author.name }}</span>
|
|
21731
21911
|
@if (props.author.verified) {
|
|
21732
21912
|
<ion-icon name="checkmark-circle" class="verified-badge"></ion-icon>
|
|
@@ -21734,7 +21914,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
21734
21914
|
@if (props.author.username) {
|
|
21735
21915
|
<span class="author-username">@{{ props.author.username }}</span>
|
|
21736
21916
|
}
|
|
21737
|
-
</
|
|
21917
|
+
</button>
|
|
21738
21918
|
|
|
21739
21919
|
<div class="comment-meta">
|
|
21740
21920
|
<span class="timestamp">{{ formatTimestamp(props.timestamp) }}</span>
|
|
@@ -21875,8 +22055,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
21875
22055
|
</div>
|
|
21876
22056
|
}
|
|
21877
22057
|
</div>
|
|
21878
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 24px;--max-indent: 72px;padding:12px 0}.comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.08);border-radius:8px;padding:12px;margin:-4px}.comment.pinned{border-left:3px solid var(--ion-color-primary);padding-left:12px}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:44px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-medium)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-medium)}.edited-label{font-size:.6875rem;color:var(--ion-color-medium);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-medium)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention){color:var(--ion-color-primary);font-weight:500;cursor:pointer}.comment-content :global(.comment-mention):hover{text-decoration:underline}.comment-content :global(.comment-hashtag){color:var(--ion-color-primary);cursor:pointer}.comment-content :global(.comment-hashtag):hover{text-decoration:underline}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reaction-button{display:flex;align-items:center;gap:4px;background:none;border:none;padding:4px 8px;border-radius:16px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:all .2s ease;background-color:transparent}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.1)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.125rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:500}.comment-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;margin-left:-8px}.comment-actions ion-button{--padding-start: 8px;--padding-end: 8px;font-size:.8125rem;height:32px;text-transform:none;font-weight:500}.expand-button,.collapse-button,.load-more-button,.view-replies-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover,.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon,.load-more-button ion-icon,.view-replies-button ion-icon{font-size:1rem}.expand-button{margin-top:4px;color:var(--ion-color-medium)}.comment-children{margin-top:12px;padding-left:min(var(--indent-size),var(--max-indent));border-left:2px solid var(--ion-color-light-shade)}.comment-children val-comment{display:block}.comment-children val-comment:first-of-type .comment{padding-top:0}.load-more-button,.view-replies-button{margin-top:8px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment.highlighted,:host-context(.ion-palette-dark) .comment.highlighted,:host-context(html.ion-palette-dark) .comment.highlighted,:host-context(body.dark) .comment.highlighted,:host-context([data-theme=dark]) .comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.12)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"] }]
|
|
21879
|
-
}], propDecorators: { props: [{
|
|
22058
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 24px;--max-indent: 72px;padding:12px 0}.comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.08);border-radius:8px;padding:12px;margin:-4px}.comment.pinned{border-left:3px solid var(--ion-color-primary);padding-left:12px}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:44px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-medium)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-medium)}.edited-label{font-size:.6875rem;color:var(--ion-color-medium);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-medium)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention){color:var(--ion-color-primary);font-weight:500;cursor:pointer}.comment-content :global(.comment-mention):hover{text-decoration:underline}.comment-content :global(.comment-hashtag){color:var(--ion-color-primary);cursor:pointer}.comment-content :global(.comment-hashtag):hover{text-decoration:underline}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reaction-button{display:flex;align-items:center;gap:4px;background:none;border:none;padding:4px 8px;border-radius:16px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:all .2s ease;background-color:transparent}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.1)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.125rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:500}.comment-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;margin-left:-8px}.comment-actions ion-button{--padding-start: 8px;--padding-end: 8px;font-size:.8125rem;height:32px;text-transform:none;font-weight:500}.expand-button,.collapse-button,.load-more-button,.view-replies-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover,.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon,.load-more-button ion-icon,.view-replies-button ion-icon{font-size:1rem}.expand-button{margin-top:4px;color:var(--ion-color-medium)}.comment-children{margin-top:12px;padding-left:min(var(--indent-size),var(--max-indent));border-left:2px solid var(--ion-color-light-shade)}.comment-children val-comment{display:block}.comment-children val-comment:first-of-type .comment{padding-top:0}.load-more-button,.view-replies-button{margin-top:8px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment.highlighted,:host-context(.ion-palette-dark) .comment.highlighted,:host-context(html.ion-palette-dark) .comment.highlighted,:host-context(body.dark) .comment.highlighted,:host-context([data-theme=dark]) .comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.12)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"] }]
|
|
22059
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
21880
22060
|
type: Input
|
|
21881
22061
|
}], authorClick: [{
|
|
21882
22062
|
type: Output
|
|
@@ -25359,42 +25539,86 @@ class FeaturesListComponent {
|
|
|
25359
25539
|
[class.features-list--center]="config().alignment === 'center'"
|
|
25360
25540
|
>
|
|
25361
25541
|
@for (feature of visibleFeatures(); track feature.titleKey) {
|
|
25362
|
-
|
|
25363
|
-
<
|
|
25364
|
-
|
|
25365
|
-
|
|
25366
|
-
[
|
|
25367
|
-
|
|
25542
|
+
@if (feature.token != null) {
|
|
25543
|
+
<button
|
|
25544
|
+
type="button"
|
|
25545
|
+
class="feature feature--clickable"
|
|
25546
|
+
[attr.aria-label]="getTitle(feature)"
|
|
25547
|
+
(click)="onItem(feature)"
|
|
25368
25548
|
>
|
|
25369
|
-
|
|
25370
|
-
|
|
25371
|
-
|
|
25372
|
-
|
|
25373
|
-
|
|
25374
|
-
|
|
25375
|
-
|
|
25376
|
-
|
|
25377
|
-
|
|
25378
|
-
|
|
25379
|
-
|
|
25380
|
-
|
|
25381
|
-
|
|
25382
|
-
|
|
25383
|
-
|
|
25384
|
-
|
|
25385
|
-
|
|
25386
|
-
|
|
25387
|
-
|
|
25388
|
-
|
|
25389
|
-
|
|
25390
|
-
|
|
25391
|
-
|
|
25392
|
-
|
|
25393
|
-
|
|
25394
|
-
|
|
25395
|
-
|
|
25549
|
+
<div
|
|
25550
|
+
class="feature__icon"
|
|
25551
|
+
[style.color]="iconColorStyle()"
|
|
25552
|
+
[style.width.px]="config().iconSize"
|
|
25553
|
+
[style.height.px]="config().iconSize"
|
|
25554
|
+
>
|
|
25555
|
+
@if (feature.image) {
|
|
25556
|
+
<img
|
|
25557
|
+
class="feature__image"
|
|
25558
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
25559
|
+
[src]="feature.image"
|
|
25560
|
+
[alt]="getTitle(feature)"
|
|
25561
|
+
/>
|
|
25562
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
25563
|
+
<svg
|
|
25564
|
+
[attr.width]="config().iconSize"
|
|
25565
|
+
[attr.height]="config().iconSize"
|
|
25566
|
+
viewBox="0 0 24 24"
|
|
25567
|
+
fill="none"
|
|
25568
|
+
stroke="currentColor"
|
|
25569
|
+
stroke-width="1.5"
|
|
25570
|
+
stroke-linecap="round"
|
|
25571
|
+
stroke-linejoin="round"
|
|
25572
|
+
>
|
|
25573
|
+
<path [attr.d]="feature.svgPath" />
|
|
25574
|
+
</svg>
|
|
25575
|
+
} @else if (feature.icon) {
|
|
25576
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
25577
|
+
}
|
|
25578
|
+
</div>
|
|
25579
|
+
<div class="feature__content">
|
|
25580
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
25581
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
25582
|
+
</div>
|
|
25583
|
+
</button>
|
|
25584
|
+
} @else {
|
|
25585
|
+
<div class="feature">
|
|
25586
|
+
<div
|
|
25587
|
+
class="feature__icon"
|
|
25588
|
+
[style.color]="iconColorStyle()"
|
|
25589
|
+
[style.width.px]="config().iconSize"
|
|
25590
|
+
[style.height.px]="config().iconSize"
|
|
25591
|
+
>
|
|
25592
|
+
@if (feature.image) {
|
|
25593
|
+
<img
|
|
25594
|
+
class="feature__image"
|
|
25595
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
25596
|
+
[src]="feature.image"
|
|
25597
|
+
[alt]="getTitle(feature)"
|
|
25598
|
+
/>
|
|
25599
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
25600
|
+
<svg
|
|
25601
|
+
[attr.width]="config().iconSize"
|
|
25602
|
+
[attr.height]="config().iconSize"
|
|
25603
|
+
viewBox="0 0 24 24"
|
|
25604
|
+
fill="none"
|
|
25605
|
+
stroke="currentColor"
|
|
25606
|
+
stroke-width="1.5"
|
|
25607
|
+
stroke-linecap="round"
|
|
25608
|
+
stroke-linejoin="round"
|
|
25609
|
+
>
|
|
25610
|
+
<path [attr.d]="feature.svgPath" />
|
|
25611
|
+
</svg>
|
|
25612
|
+
} @else if (feature.icon) {
|
|
25613
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
25614
|
+
}
|
|
25615
|
+
</div>
|
|
25616
|
+
<div class="feature__content">
|
|
25617
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
25618
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
25619
|
+
</div>
|
|
25396
25620
|
</div>
|
|
25397
|
-
|
|
25621
|
+
}
|
|
25398
25622
|
}
|
|
25399
25623
|
|
|
25400
25624
|
@if (canCollapse()) {
|
|
@@ -25409,7 +25633,7 @@ class FeaturesListComponent {
|
|
|
25409
25633
|
</a>
|
|
25410
25634
|
}
|
|
25411
25635
|
</div>
|
|
25412
|
-
`, isInline: true, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
25636
|
+
`, isInline: true, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease;width:100%;text-align:left;border:none;background:none;font:inherit;color:inherit;padding:.25rem}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature--clickable:focus{outline:none}.feature--clickable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
25413
25637
|
}
|
|
25414
25638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeaturesListComponent, decorators: [{
|
|
25415
25639
|
type: Component,
|
|
@@ -25424,42 +25648,86 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
25424
25648
|
[class.features-list--center]="config().alignment === 'center'"
|
|
25425
25649
|
>
|
|
25426
25650
|
@for (feature of visibleFeatures(); track feature.titleKey) {
|
|
25427
|
-
|
|
25428
|
-
<
|
|
25429
|
-
|
|
25430
|
-
|
|
25431
|
-
[
|
|
25432
|
-
|
|
25651
|
+
@if (feature.token != null) {
|
|
25652
|
+
<button
|
|
25653
|
+
type="button"
|
|
25654
|
+
class="feature feature--clickable"
|
|
25655
|
+
[attr.aria-label]="getTitle(feature)"
|
|
25656
|
+
(click)="onItem(feature)"
|
|
25433
25657
|
>
|
|
25434
|
-
|
|
25435
|
-
|
|
25436
|
-
|
|
25437
|
-
|
|
25438
|
-
|
|
25439
|
-
|
|
25440
|
-
|
|
25441
|
-
|
|
25442
|
-
|
|
25443
|
-
|
|
25444
|
-
|
|
25445
|
-
|
|
25446
|
-
|
|
25447
|
-
|
|
25448
|
-
|
|
25449
|
-
|
|
25450
|
-
|
|
25451
|
-
|
|
25452
|
-
|
|
25453
|
-
|
|
25454
|
-
|
|
25455
|
-
|
|
25456
|
-
|
|
25457
|
-
|
|
25458
|
-
|
|
25459
|
-
|
|
25460
|
-
|
|
25658
|
+
<div
|
|
25659
|
+
class="feature__icon"
|
|
25660
|
+
[style.color]="iconColorStyle()"
|
|
25661
|
+
[style.width.px]="config().iconSize"
|
|
25662
|
+
[style.height.px]="config().iconSize"
|
|
25663
|
+
>
|
|
25664
|
+
@if (feature.image) {
|
|
25665
|
+
<img
|
|
25666
|
+
class="feature__image"
|
|
25667
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
25668
|
+
[src]="feature.image"
|
|
25669
|
+
[alt]="getTitle(feature)"
|
|
25670
|
+
/>
|
|
25671
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
25672
|
+
<svg
|
|
25673
|
+
[attr.width]="config().iconSize"
|
|
25674
|
+
[attr.height]="config().iconSize"
|
|
25675
|
+
viewBox="0 0 24 24"
|
|
25676
|
+
fill="none"
|
|
25677
|
+
stroke="currentColor"
|
|
25678
|
+
stroke-width="1.5"
|
|
25679
|
+
stroke-linecap="round"
|
|
25680
|
+
stroke-linejoin="round"
|
|
25681
|
+
>
|
|
25682
|
+
<path [attr.d]="feature.svgPath" />
|
|
25683
|
+
</svg>
|
|
25684
|
+
} @else if (feature.icon) {
|
|
25685
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
25686
|
+
}
|
|
25687
|
+
</div>
|
|
25688
|
+
<div class="feature__content">
|
|
25689
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
25690
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
25691
|
+
</div>
|
|
25692
|
+
</button>
|
|
25693
|
+
} @else {
|
|
25694
|
+
<div class="feature">
|
|
25695
|
+
<div
|
|
25696
|
+
class="feature__icon"
|
|
25697
|
+
[style.color]="iconColorStyle()"
|
|
25698
|
+
[style.width.px]="config().iconSize"
|
|
25699
|
+
[style.height.px]="config().iconSize"
|
|
25700
|
+
>
|
|
25701
|
+
@if (feature.image) {
|
|
25702
|
+
<img
|
|
25703
|
+
class="feature__image"
|
|
25704
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
25705
|
+
[src]="feature.image"
|
|
25706
|
+
[alt]="getTitle(feature)"
|
|
25707
|
+
/>
|
|
25708
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
25709
|
+
<svg
|
|
25710
|
+
[attr.width]="config().iconSize"
|
|
25711
|
+
[attr.height]="config().iconSize"
|
|
25712
|
+
viewBox="0 0 24 24"
|
|
25713
|
+
fill="none"
|
|
25714
|
+
stroke="currentColor"
|
|
25715
|
+
stroke-width="1.5"
|
|
25716
|
+
stroke-linecap="round"
|
|
25717
|
+
stroke-linejoin="round"
|
|
25718
|
+
>
|
|
25719
|
+
<path [attr.d]="feature.svgPath" />
|
|
25720
|
+
</svg>
|
|
25721
|
+
} @else if (feature.icon) {
|
|
25722
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
25723
|
+
}
|
|
25724
|
+
</div>
|
|
25725
|
+
<div class="feature__content">
|
|
25726
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
25727
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
25728
|
+
</div>
|
|
25461
25729
|
</div>
|
|
25462
|
-
|
|
25730
|
+
}
|
|
25463
25731
|
}
|
|
25464
25732
|
|
|
25465
25733
|
@if (canCollapse()) {
|
|
@@ -25474,7 +25742,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
25474
25742
|
</a>
|
|
25475
25743
|
}
|
|
25476
25744
|
</div>
|
|
25477
|
-
`, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"] }]
|
|
25745
|
+
`, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease;width:100%;text-align:left;border:none;background:none;font:inherit;color:inherit;padding:.25rem}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature--clickable:focus{outline:none}.feature--clickable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"] }]
|
|
25478
25746
|
}], ctorParameters: () => [] });
|
|
25479
25747
|
|
|
25480
25748
|
/**
|
|
@@ -27122,6 +27390,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
27122
27390
|
`, styles: ["@charset \"UTF-8\";:host{display:contents}.val-update-banner{position:fixed;top:0;left:0;right:0;z-index:1100;display:flex;justify-content:center;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;pointer-events:none}.val-update-banner__backdrop{position:fixed;inset:0;z-index:-1;background:#0000008c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:auto}.val-update-banner__panel{pointer-events:auto;display:flex;flex-direction:row;align-items:center;gap:12px;width:100%;max-width:640px;padding:12px 16px;background:var(--ion-background-color, #fff);border:1px solid var(--val-border-color, rgba(0, 0, 0, .08));border-radius:var(--val-border-radius, 12px);box-shadow:0 4px 24px #0000001f;animation:val-update-banner-in .25s ease-out}.val-update-banner--required{align-items:center;height:100%}.val-update-banner--required .val-update-banner__panel{flex-direction:column;text-align:center;max-width:420px}.val-update-banner__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--ion-color-primary) 14%,transparent);font-size:22px}.val-update-banner__icon val-icon{display:flex;line-height:0}.val-update-banner__icon ::ng-deep ion-icon{display:block}.val-update-banner--required .val-update-banner__icon{background:color-mix(in srgb,var(--ion-color-warning) 16%,transparent)}.val-update-banner__body{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.val-update-banner__actions{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:4px}.val-update-banner--required .val-update-banner__actions{margin-top:8px}@keyframes val-update-banner-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 540px){.val-update-banner__panel{flex-direction:column;text-align:center}.val-update-banner__actions{width:100%;justify-content:center}}\n"] }]
|
|
27123
27391
|
}] });
|
|
27124
27392
|
|
|
27393
|
+
/**
|
|
27394
|
+
* Ionic color helpers — single source of truth.
|
|
27395
|
+
*
|
|
27396
|
+
* Several presentational cards used to inline a literal `IONIC_COLORS` array
|
|
27397
|
+
* plus a `resolveColor()` copy. This util consolidates that logic so the named
|
|
27398
|
+
* Ionic palette and the CSS-var resolution live in one place.
|
|
27399
|
+
*/
|
|
27400
|
+
/** The named Ionic color palette tokens. */
|
|
27401
|
+
const IONIC_COLORS$5 = [
|
|
27402
|
+
'primary',
|
|
27403
|
+
'secondary',
|
|
27404
|
+
'tertiary',
|
|
27405
|
+
'success',
|
|
27406
|
+
'warning',
|
|
27407
|
+
'danger',
|
|
27408
|
+
'light',
|
|
27409
|
+
'medium',
|
|
27410
|
+
'dark',
|
|
27411
|
+
];
|
|
27412
|
+
/** True when `value` is one of the named Ionic palette tokens. */
|
|
27413
|
+
function isIonicColor(value) {
|
|
27414
|
+
return !!value && IONIC_COLORS$5.includes(value);
|
|
27415
|
+
}
|
|
27416
|
+
/**
|
|
27417
|
+
* Resolve a color value to a usable CSS color.
|
|
27418
|
+
*
|
|
27419
|
+
* - A named Ionic token (e.g. `primary`) becomes `var(--ion-color-primary)`.
|
|
27420
|
+
* - Any other value (hex, rgb, CSS var, etc.) is returned unchanged.
|
|
27421
|
+
* - `undefined`/empty returns `undefined`.
|
|
27422
|
+
*/
|
|
27423
|
+
function resolveIonicColor(value) {
|
|
27424
|
+
if (!value)
|
|
27425
|
+
return undefined;
|
|
27426
|
+
return isIonicColor(value) ? `var(--ion-color-${value})` : value;
|
|
27427
|
+
}
|
|
27428
|
+
|
|
27125
27429
|
/**
|
|
27126
27430
|
* Default values for ActionCardMetadata
|
|
27127
27431
|
*/
|
|
@@ -27134,7 +27438,6 @@ const ACTION_CARD_DEFAULTS = {
|
|
|
27134
27438
|
};
|
|
27135
27439
|
|
|
27136
27440
|
addIcons({ chevronForwardOutline });
|
|
27137
|
-
const IONIC_COLORS$8 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
27138
27441
|
/**
|
|
27139
27442
|
* val-action-card
|
|
27140
27443
|
*
|
|
@@ -27210,14 +27513,9 @@ class ActionCardComponent {
|
|
|
27210
27513
|
}
|
|
27211
27514
|
return cfg.description || '';
|
|
27212
27515
|
}
|
|
27213
|
-
/** Resolve color to CSS value */
|
|
27516
|
+
/** Resolve color to CSS value (named Ionic token → CSS var, else passthrough) */
|
|
27214
27517
|
resolveColor(color) {
|
|
27215
|
-
|
|
27216
|
-
return null;
|
|
27217
|
-
if (IONIC_COLORS$8.includes(color)) {
|
|
27218
|
-
return `var(--ion-color-${color})`;
|
|
27219
|
-
}
|
|
27220
|
-
return color;
|
|
27518
|
+
return resolveIonicColor(color) ?? null;
|
|
27221
27519
|
}
|
|
27222
27520
|
getBackgroundColor() {
|
|
27223
27521
|
return this.resolveColor(this.config().backgroundColor);
|
|
@@ -27407,7 +27705,7 @@ const MEDIA_OBJECT_DEFAULTS = {
|
|
|
27407
27705
|
circle: false,
|
|
27408
27706
|
};
|
|
27409
27707
|
|
|
27410
|
-
const IONIC_COLORS$
|
|
27708
|
+
const IONIC_COLORS$4 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
27411
27709
|
/**
|
|
27412
27710
|
* val-media-object
|
|
27413
27711
|
*
|
|
@@ -27447,7 +27745,7 @@ class MediaObjectComponent {
|
|
|
27447
27745
|
const color = this.config().color;
|
|
27448
27746
|
if (!color)
|
|
27449
27747
|
return 'var(--ion-color-primary)';
|
|
27450
|
-
return IONIC_COLORS$
|
|
27748
|
+
return IONIC_COLORS$4.includes(color) ? `var(--ion-color-${color})` : color;
|
|
27451
27749
|
}
|
|
27452
27750
|
handleLinkClick(event) {
|
|
27453
27751
|
const link = this.config().link;
|
|
@@ -27551,7 +27849,7 @@ const STATS_BAR_DEFAULTS = {
|
|
|
27551
27849
|
stackOnMobile: true,
|
|
27552
27850
|
};
|
|
27553
27851
|
|
|
27554
|
-
const IONIC_COLORS$
|
|
27852
|
+
const IONIC_COLORS$3 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
27555
27853
|
/**
|
|
27556
27854
|
* val-stats-bar
|
|
27557
27855
|
*
|
|
@@ -27588,7 +27886,7 @@ class StatsBarComponent {
|
|
|
27588
27886
|
const color = stat.color;
|
|
27589
27887
|
if (!color)
|
|
27590
27888
|
return null;
|
|
27591
|
-
return IONIC_COLORS$
|
|
27889
|
+
return IONIC_COLORS$3.includes(color) ? `var(--ion-color-${color})` : color;
|
|
27592
27890
|
}
|
|
27593
27891
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27594
27892
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsBarComponent, isStandalone: true, selector: "val-stats-bar", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
@@ -27656,7 +27954,7 @@ const ARTICLE_CARD_DEFAULTS = {
|
|
|
27656
27954
|
excerptLines: 3,
|
|
27657
27955
|
};
|
|
27658
27956
|
|
|
27659
|
-
const IONIC_COLORS$
|
|
27957
|
+
const IONIC_COLORS$2 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
27660
27958
|
/**
|
|
27661
27959
|
* val-article-card
|
|
27662
27960
|
*
|
|
@@ -27699,7 +27997,7 @@ class ArticleCardComponent {
|
|
|
27699
27997
|
const color = this.config().topicColor;
|
|
27700
27998
|
if (!color)
|
|
27701
27999
|
return 'var(--ion-color-primary)';
|
|
27702
|
-
return IONIC_COLORS$
|
|
28000
|
+
return IONIC_COLORS$2.includes(color) ? `var(--ion-color-${color})` : color;
|
|
27703
28001
|
}
|
|
27704
28002
|
handleClick(event) {
|
|
27705
28003
|
const cfg = this.config();
|
|
@@ -27814,7 +28112,6 @@ const CTA_CARD_DEFAULTS = {
|
|
|
27814
28112
|
shadowed: false,
|
|
27815
28113
|
};
|
|
27816
28114
|
|
|
27817
|
-
const IONIC_COLORS$4 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
27818
28115
|
/**
|
|
27819
28116
|
* val-cta-card
|
|
27820
28117
|
*
|
|
@@ -27855,16 +28152,11 @@ class CtaCardComponent {
|
|
|
27855
28152
|
...this.props(),
|
|
27856
28153
|
}));
|
|
27857
28154
|
}
|
|
27858
|
-
resolveColor(color) {
|
|
27859
|
-
if (!color)
|
|
27860
|
-
return null;
|
|
27861
|
-
return IONIC_COLORS$4.includes(color) ? `var(--ion-color-${color})` : color;
|
|
27862
|
-
}
|
|
27863
28155
|
getBackground() {
|
|
27864
|
-
return
|
|
28156
|
+
return resolveIonicColor(this.config().backgroundColor) || 'var(--ion-color-light, #f4f5f8)';
|
|
27865
28157
|
}
|
|
27866
28158
|
getColor() {
|
|
27867
|
-
return
|
|
28159
|
+
return resolveIonicColor(this.config().color) ?? null;
|
|
27868
28160
|
}
|
|
27869
28161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CtaCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27870
28162
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CtaCardComponent, isStandalone: true, selector: "val-cta-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onAction: "onAction" }, ngImport: i0, template: `
|
|
@@ -30907,6 +31199,13 @@ class FormComponent {
|
|
|
30907
31199
|
this.usernamePropMemo = new WeakMap();
|
|
30908
31200
|
this.textareaPropMemo = new WeakMap();
|
|
30909
31201
|
this.selectPropMemo = new WeakMap();
|
|
31202
|
+
// Memo de props con un inputType HTML inyectado (EMAIL/NUMBER/HOUR colapsados
|
|
31203
|
+
// en val-text-input). Clave por field para conservar identidad de referencia.
|
|
31204
|
+
this.textInputPropMemo = new WeakMap();
|
|
31205
|
+
// Ids estables por field para el wiring de accesibilidad label↔input↔error.
|
|
31206
|
+
// Estables entre CD cycles (memoizados por referencia de field) → aria-* no parpadea.
|
|
31207
|
+
this.fieldIdMemo = new WeakMap();
|
|
31208
|
+
this.fieldUid = 0;
|
|
30910
31209
|
this.previousUploadingCount = 0;
|
|
30911
31210
|
// Campos ATTACHMENT con uploads en curso — bloquea submit + DESHABILITA el
|
|
30912
31211
|
// botón (no loading: el spinner se reserva para el submit real del form).
|
|
@@ -31066,6 +31365,28 @@ class FormComponent {
|
|
|
31066
31365
|
getControl(field) {
|
|
31067
31366
|
return this.Form.get(field);
|
|
31068
31367
|
}
|
|
31368
|
+
/**
|
|
31369
|
+
* Ids estables (label + error) para un field. Memoizados por referencia para
|
|
31370
|
+
* que el wiring `aria-labelledby` / `aria-describedby` no cambie entre ciclos
|
|
31371
|
+
* de change detection.
|
|
31372
|
+
*/
|
|
31373
|
+
fieldIds(field) {
|
|
31374
|
+
let ids = this.fieldIdMemo.get(field);
|
|
31375
|
+
if (!ids) {
|
|
31376
|
+
const base = `val-form-field-${this.fieldUid++}`;
|
|
31377
|
+
ids = { labelId: `${base}-label`, errorId: `${base}-error` };
|
|
31378
|
+
this.fieldIdMemo.set(field, ids);
|
|
31379
|
+
}
|
|
31380
|
+
return ids;
|
|
31381
|
+
}
|
|
31382
|
+
/** Id del label visible del campo (consumido por el template + el input). */
|
|
31383
|
+
labelId(field) {
|
|
31384
|
+
return this.fieldIds(field).labelId;
|
|
31385
|
+
}
|
|
31386
|
+
/** Id del contenedor de error (`val-hint`) del campo. */
|
|
31387
|
+
errorId(field) {
|
|
31388
|
+
return this.fieldIds(field).errorId;
|
|
31389
|
+
}
|
|
31069
31390
|
getFieldProp(field) {
|
|
31070
31391
|
const cached = this.fieldPropMemo.get(field);
|
|
31071
31392
|
if (cached)
|
|
@@ -31073,19 +31394,34 @@ class FormComponent {
|
|
|
31073
31394
|
if (!field.token) {
|
|
31074
31395
|
field.token = `input-${field.type}-${field.name}`;
|
|
31075
31396
|
}
|
|
31397
|
+
const ids = this.fieldIds(field);
|
|
31076
31398
|
let result;
|
|
31077
31399
|
if (field.type === this.types.NUMBER_FROM_TO) {
|
|
31078
31400
|
const fromControl = this.getControl(`${field.name}_from`);
|
|
31079
31401
|
const toControl = this.getControl(`${field.name}_to`);
|
|
31080
|
-
result = { ...field, fromControl, toControl, control: undefined };
|
|
31402
|
+
result = { ...field, fromControl, toControl, control: undefined, labelId: ids.labelId, errorId: ids.errorId };
|
|
31081
31403
|
}
|
|
31082
31404
|
else {
|
|
31083
31405
|
const control = this.getControl(field.name);
|
|
31084
|
-
result = { ...field, control };
|
|
31406
|
+
result = { ...field, control, labelId: ids.labelId, errorId: ids.errorId };
|
|
31085
31407
|
}
|
|
31086
31408
|
this.fieldPropMemo.set(field, result);
|
|
31087
31409
|
return result;
|
|
31088
31410
|
}
|
|
31411
|
+
/**
|
|
31412
|
+
* Adapter para los tipos colapsados en `val-text-input` (EMAIL/NUMBER/HOUR).
|
|
31413
|
+
* Reusa `getFieldProp` (con su control + wiring de ids) e inyecta el `inputType`
|
|
31414
|
+
* HTML nativo. Memoizado por referencia de field para no romper la identidad.
|
|
31415
|
+
*/
|
|
31416
|
+
getTextInputProp(field, inputType) {
|
|
31417
|
+
const cached = this.textInputPropMemo.get(field);
|
|
31418
|
+
if (cached)
|
|
31419
|
+
return cached;
|
|
31420
|
+
const base = this.getFieldProp(field);
|
|
31421
|
+
const result = { ...base, inputType };
|
|
31422
|
+
this.textInputPropMemo.set(field, result);
|
|
31423
|
+
return result;
|
|
31424
|
+
}
|
|
31089
31425
|
/**
|
|
31090
31426
|
* Adapter para SELECT — igual que `getFieldProp` pero limpia `label`.
|
|
31091
31427
|
* val-form ya renderiza el título del campo con `<val-title>` arriba del input;
|
|
@@ -31207,7 +31543,9 @@ class FormComponent {
|
|
|
31207
31543
|
@for (f of s.fields; track f.name) {
|
|
31208
31544
|
<div class="input" [attr.data-testid]="f.token">
|
|
31209
31545
|
@if (f.type !== types.PHONE && f.type !== types.HANDLE && f.type !== types.ATTACHMENT) {
|
|
31210
|
-
<
|
|
31546
|
+
<div [attr.id]="labelId(f)">
|
|
31547
|
+
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
31548
|
+
</div>
|
|
31211
31549
|
}
|
|
31212
31550
|
@if (f.description) {
|
|
31213
31551
|
<span class="field-description">{{ f.description }}</span>
|
|
@@ -31229,16 +31567,16 @@ class FormComponent {
|
|
|
31229
31567
|
<val-date-input [props]="getFieldProp(f)"></val-date-input>
|
|
31230
31568
|
}
|
|
31231
31569
|
@case (types.EMAIL) {
|
|
31232
|
-
<val-
|
|
31570
|
+
<val-text-input [props]="getTextInputProp(f, 'email')"></val-text-input>
|
|
31233
31571
|
}
|
|
31234
31572
|
@case (types.FILE) {
|
|
31235
31573
|
<val-file-input [props]="getFieldProp(f)"></val-file-input>
|
|
31236
31574
|
}
|
|
31237
31575
|
@case (types.HOUR) {
|
|
31238
|
-
<val-
|
|
31576
|
+
<val-text-input [props]="getTextInputProp(f, 'time')"></val-text-input>
|
|
31239
31577
|
}
|
|
31240
31578
|
@case (types.NUMBER) {
|
|
31241
|
-
<val-
|
|
31579
|
+
<val-text-input [props]="getTextInputProp(f, 'number')"></val-text-input>
|
|
31242
31580
|
}
|
|
31243
31581
|
@case (types.NUMBER_FROM_TO) {
|
|
31244
31582
|
<val-number-from-to [props]="getFieldProp(f)"></val-number-from-to>
|
|
@@ -31285,7 +31623,7 @@ class FormComponent {
|
|
|
31285
31623
|
></val-attachment-uploader>
|
|
31286
31624
|
}
|
|
31287
31625
|
}
|
|
31288
|
-
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
31626
|
+
<val-hint [props]="getFieldProp(f)" [id]="errorId(f)"></val-hint>
|
|
31289
31627
|
</div>
|
|
31290
31628
|
}
|
|
31291
31629
|
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
|
|
@@ -31302,7 +31640,7 @@ class FormComponent {
|
|
|
31302
31640
|
}
|
|
31303
31641
|
</form>
|
|
31304
31642
|
</div>
|
|
31305
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: TextareaInputComponent, selector: "val-textarea-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"
|
|
31643
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: TextareaInputComponent, selector: "val-textarea-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props", "id", "isError"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["preset", "props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: NumberFromToComponent, selector: "val-number-from-to", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["preset", "props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }, { kind: "component", type: SelectSearchComponent, selector: "val-select-search", inputs: ["label", "labelProperty", "valueProperty", "multiple", "placeholder", "props"] }, { kind: "component", type: MultiSelectSearchComponent, selector: "val-multi-select-search", inputs: ["label", "labelProperty", "valueProperty", "placeholder", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: PhoneInputComponent, selector: "val-phone-input", inputs: ["preset", "props"], outputs: ["phoneChange"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckboxRadioInputComponent, selector: "val-checkbox-radio-input", inputs: ["props"] }, { kind: "component", type: UsernameInputComponent, selector: "val-username-input", inputs: ["props"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "val-attachment-uploader", inputs: ["props"], outputs: ["attachmentsChange"] }] }); }
|
|
31306
31644
|
}
|
|
31307
31645
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, decorators: [{
|
|
31308
31646
|
type: Component,
|
|
@@ -31320,9 +31658,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31320
31658
|
CommentInputComponent,
|
|
31321
31659
|
DateInputComponent,
|
|
31322
31660
|
FileInputComponent,
|
|
31323
|
-
HourInputComponent,
|
|
31324
|
-
EmailInputComponent,
|
|
31325
|
-
NumberInputComponent,
|
|
31326
31661
|
NumberFromToComponent,
|
|
31327
31662
|
RadioInputComponent,
|
|
31328
31663
|
PasswordInputComponent,
|
|
@@ -31353,7 +31688,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31353
31688
|
@for (f of s.fields; track f.name) {
|
|
31354
31689
|
<div class="input" [attr.data-testid]="f.token">
|
|
31355
31690
|
@if (f.type !== types.PHONE && f.type !== types.HANDLE && f.type !== types.ATTACHMENT) {
|
|
31356
|
-
<
|
|
31691
|
+
<div [attr.id]="labelId(f)">
|
|
31692
|
+
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
31693
|
+
</div>
|
|
31357
31694
|
}
|
|
31358
31695
|
@if (f.description) {
|
|
31359
31696
|
<span class="field-description">{{ f.description }}</span>
|
|
@@ -31375,16 +31712,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31375
31712
|
<val-date-input [props]="getFieldProp(f)"></val-date-input>
|
|
31376
31713
|
}
|
|
31377
31714
|
@case (types.EMAIL) {
|
|
31378
|
-
<val-
|
|
31715
|
+
<val-text-input [props]="getTextInputProp(f, 'email')"></val-text-input>
|
|
31379
31716
|
}
|
|
31380
31717
|
@case (types.FILE) {
|
|
31381
31718
|
<val-file-input [props]="getFieldProp(f)"></val-file-input>
|
|
31382
31719
|
}
|
|
31383
31720
|
@case (types.HOUR) {
|
|
31384
|
-
<val-
|
|
31721
|
+
<val-text-input [props]="getTextInputProp(f, 'time')"></val-text-input>
|
|
31385
31722
|
}
|
|
31386
31723
|
@case (types.NUMBER) {
|
|
31387
|
-
<val-
|
|
31724
|
+
<val-text-input [props]="getTextInputProp(f, 'number')"></val-text-input>
|
|
31388
31725
|
}
|
|
31389
31726
|
@case (types.NUMBER_FROM_TO) {
|
|
31390
31727
|
<val-number-from-to [props]="getFieldProp(f)"></val-number-from-to>
|
|
@@ -31431,7 +31768,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31431
31768
|
></val-attachment-uploader>
|
|
31432
31769
|
}
|
|
31433
31770
|
}
|
|
31434
|
-
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
31771
|
+
<val-hint [props]="getFieldProp(f)" [id]="errorId(f)"></val-hint>
|
|
31435
31772
|
</div>
|
|
31436
31773
|
}
|
|
31437
31774
|
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
|
|
@@ -32559,7 +32896,7 @@ class ChangePasswordModalComponent {
|
|
|
32559
32896
|
},
|
|
32560
32897
|
],
|
|
32561
32898
|
actions: {
|
|
32562
|
-
...
|
|
32899
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
32563
32900
|
token: 'set-submit',
|
|
32564
32901
|
textKey: 'setPasswordSubmit',
|
|
32565
32902
|
},
|
|
@@ -32593,7 +32930,7 @@ class ChangePasswordModalComponent {
|
|
|
32593
32930
|
},
|
|
32594
32931
|
],
|
|
32595
32932
|
actions: {
|
|
32596
|
-
...
|
|
32933
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
32597
32934
|
token: 'change-submit',
|
|
32598
32935
|
textKey: 'changePasswordSubmit',
|
|
32599
32936
|
},
|
|
@@ -32818,7 +33155,7 @@ class ChangeEmailModalComponent {
|
|
|
32818
33155
|
},
|
|
32819
33156
|
],
|
|
32820
33157
|
actions: {
|
|
32821
|
-
...
|
|
33158
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
32822
33159
|
token: 'change-email-initiate',
|
|
32823
33160
|
textKey: 'changeEmailInitiate',
|
|
32824
33161
|
},
|
|
@@ -32851,7 +33188,7 @@ class ChangeEmailModalComponent {
|
|
|
32851
33188
|
},
|
|
32852
33189
|
],
|
|
32853
33190
|
actions: {
|
|
32854
|
-
...
|
|
33191
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
32855
33192
|
token: 'change-email-confirm-1',
|
|
32856
33193
|
textKey: 'changeEmailConfirm1',
|
|
32857
33194
|
},
|
|
@@ -32887,7 +33224,7 @@ class ChangeEmailModalComponent {
|
|
|
32887
33224
|
},
|
|
32888
33225
|
],
|
|
32889
33226
|
actions: {
|
|
32890
|
-
...
|
|
33227
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
32891
33228
|
token: 'change-email-confirm-2',
|
|
32892
33229
|
textKey: 'changeEmailConfirm2',
|
|
32893
33230
|
},
|
|
@@ -33261,7 +33598,7 @@ const FUN_MODAL_DEFAULTS = {
|
|
|
33261
33598
|
imageRadius: 16,
|
|
33262
33599
|
};
|
|
33263
33600
|
|
|
33264
|
-
const IONIC_COLORS$
|
|
33601
|
+
const IONIC_COLORS$1 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
33265
33602
|
/**
|
|
33266
33603
|
* `val-fun-modal` — modal moderno tipo promo/onboarding: imagen o ilustración
|
|
33267
33604
|
* arriba, título, cuerpo y botones de acción, con redondeo personalizable.
|
|
@@ -33311,7 +33648,7 @@ class FunModalComponent {
|
|
|
33311
33648
|
const color = this.config().backgroundColor;
|
|
33312
33649
|
if (!color)
|
|
33313
33650
|
return null;
|
|
33314
|
-
return IONIC_COLORS$
|
|
33651
|
+
return IONIC_COLORS$1.includes(color) ? `var(--ion-color-${color})` : color;
|
|
33315
33652
|
}
|
|
33316
33653
|
close() {
|
|
33317
33654
|
this._isOpen = false;
|
|
@@ -34538,7 +34875,7 @@ class MfaModalComponent {
|
|
|
34538
34875
|
},
|
|
34539
34876
|
],
|
|
34540
34877
|
actions: {
|
|
34541
|
-
...
|
|
34878
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
34542
34879
|
token: 'mfa-disable-submit',
|
|
34543
34880
|
textKey: 'mfaDisableButton',
|
|
34544
34881
|
},
|
|
@@ -34982,7 +35319,7 @@ class ItemListComponent {
|
|
|
34982
35319
|
* Devuelve el color de borde de la lista.
|
|
34983
35320
|
*/
|
|
34984
35321
|
color() {
|
|
34985
|
-
return resolveColor
|
|
35322
|
+
return resolveColor(this.props.color || this.defaultColor);
|
|
34986
35323
|
}
|
|
34987
35324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ItemListComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34988
35325
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ItemListComponent, isStandalone: true, selector: "val-item-list", inputs: { props: "props" }, outputs: { onClick: "onClick", onActionClick: "onActionClick" }, ngImport: i0, template: `
|
|
@@ -39387,7 +39724,7 @@ class LoginComponent {
|
|
|
39387
39724
|
},
|
|
39388
39725
|
],
|
|
39389
39726
|
actions: {
|
|
39390
|
-
...
|
|
39727
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
39391
39728
|
token: 'login-submit',
|
|
39392
39729
|
textKey: 'loginSubmit',
|
|
39393
39730
|
},
|
|
@@ -39453,7 +39790,7 @@ class LoginComponent {
|
|
|
39453
39790
|
},
|
|
39454
39791
|
],
|
|
39455
39792
|
actions: {
|
|
39456
|
-
...
|
|
39793
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
39457
39794
|
token: 'register-submit',
|
|
39458
39795
|
textKey: 'registerSubmit',
|
|
39459
39796
|
},
|
|
@@ -39494,7 +39831,7 @@ class LoginComponent {
|
|
|
39494
39831
|
},
|
|
39495
39832
|
],
|
|
39496
39833
|
actions: {
|
|
39497
|
-
...
|
|
39834
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
39498
39835
|
token: 'verify-submit',
|
|
39499
39836
|
textKey: 'verifySubmit',
|
|
39500
39837
|
},
|
|
@@ -39537,7 +39874,7 @@ class LoginComponent {
|
|
|
39537
39874
|
},
|
|
39538
39875
|
],
|
|
39539
39876
|
actions: {
|
|
39540
|
-
...
|
|
39877
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
39541
39878
|
token: 'mfa-verify-submit',
|
|
39542
39879
|
textKey: 'verifySubmit',
|
|
39543
39880
|
},
|
|
@@ -39574,7 +39911,7 @@ class LoginComponent {
|
|
|
39574
39911
|
},
|
|
39575
39912
|
],
|
|
39576
39913
|
actions: {
|
|
39577
|
-
...
|
|
39914
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
39578
39915
|
token: 'forgot-submit',
|
|
39579
39916
|
textKey: 'forgotSubmit',
|
|
39580
39917
|
},
|
|
@@ -39630,7 +39967,7 @@ class LoginComponent {
|
|
|
39630
39967
|
},
|
|
39631
39968
|
],
|
|
39632
39969
|
actions: {
|
|
39633
|
-
...
|
|
39970
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
39634
39971
|
token: 'reset-submit',
|
|
39635
39972
|
textKey: 'resetSubmit',
|
|
39636
39973
|
},
|
|
@@ -55063,7 +55400,7 @@ const FIELD_LIST_I18N = {
|
|
|
55063
55400
|
};
|
|
55064
55401
|
|
|
55065
55402
|
addIcons({ addOutline, trashOutline });
|
|
55066
|
-
const I18N_NS = 'FieldList';
|
|
55403
|
+
const I18N_NS$1 = 'FieldList';
|
|
55067
55404
|
/**
|
|
55068
55405
|
* `val-field-list` — editor de listas de campos repetibles (premios, rondas,
|
|
55069
55406
|
* integrantes, etc.). Cada ítem es una **card** con sus campos apilados y un botón
|
|
@@ -55117,8 +55454,8 @@ class FieldListComponent {
|
|
|
55117
55454
|
const max = this.props.max;
|
|
55118
55455
|
return max == null || this.rowsSig().length < max;
|
|
55119
55456
|
});
|
|
55120
|
-
if (!this.i18n.hasNamespace(I18N_NS)) {
|
|
55121
|
-
this.i18n.registerContent(I18N_NS, FIELD_LIST_I18N);
|
|
55457
|
+
if (!this.i18n.hasNamespace(I18N_NS$1)) {
|
|
55458
|
+
this.i18n.registerContent(I18N_NS$1, FIELD_LIST_I18N);
|
|
55122
55459
|
}
|
|
55123
55460
|
}
|
|
55124
55461
|
ngOnChanges(changes) {
|
|
@@ -55134,7 +55471,7 @@ class FieldListComponent {
|
|
|
55134
55471
|
}
|
|
55135
55472
|
}
|
|
55136
55473
|
t(key) {
|
|
55137
|
-
return this.i18n.t(key, I18N_NS);
|
|
55474
|
+
return this.i18n.t(key, I18N_NS$1);
|
|
55138
55475
|
}
|
|
55139
55476
|
/** Reemplaza `{n}` por el número de fila (1-based) en el rótulo de la card. */
|
|
55140
55477
|
rowLabel(template, index) {
|
|
@@ -55299,6 +55636,243 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
55299
55636
|
* cada cambio (`itemsChange`). Patrón object-first (`@Input() props`).
|
|
55300
55637
|
*/
|
|
55301
55638
|
|
|
55639
|
+
/** Defaults i18n (es/en) de `val-date-picker`. Namespace `DatePicker`. */
|
|
55640
|
+
const DATE_PICKER_I18N = {
|
|
55641
|
+
es: { select: 'Seleccionar fecha', today: 'Hoy', clear: 'Limpiar' },
|
|
55642
|
+
en: { select: 'Select date', today: 'Today', clear: 'Clear' },
|
|
55643
|
+
};
|
|
55644
|
+
|
|
55645
|
+
addIcons({ calendarOutline });
|
|
55646
|
+
const I18N_NS = 'DatePicker';
|
|
55647
|
+
/**
|
|
55648
|
+
* `val-date-picker` — selector de fecha con calendario propio basado en
|
|
55649
|
+
* `vanilla-calendar-pro` (NO ion-datetime → sin el bug del grid de días vacío).
|
|
55650
|
+
*
|
|
55651
|
+
* Trigger (botón con la fecha formateada o placeholder) que despliega un calendario
|
|
55652
|
+
* inline debajo; al elegir un día se aplica y se cierra. Valor manejado como string
|
|
55653
|
+
* `YYYY-MM-DD` (fecha local, sin zona horaria). Integra con `FormControl` (`control`)
|
|
55654
|
+
* o vía `value` + `(valueChange)`. Auto-registra i18n (`DatePicker`).
|
|
55655
|
+
*
|
|
55656
|
+
* `ViewEncapsulation.None`: el calendario se crea por JS (fuera del scope emulado),
|
|
55657
|
+
* así que los estilos de la lib + overrides de marca deben ser globales.
|
|
55658
|
+
*
|
|
55659
|
+
* @example
|
|
55660
|
+
* <val-date-picker [props]="{ control: fechaControl, label: 'Fecha', locale: 'es-CL' }"
|
|
55661
|
+
* (valueChange)="onDate($event)" />
|
|
55662
|
+
*/
|
|
55663
|
+
class DatePickerComponent {
|
|
55664
|
+
constructor() {
|
|
55665
|
+
this.i18n = inject(I18nService);
|
|
55666
|
+
this.props = {};
|
|
55667
|
+
/** Emite el valor (`YYYY-MM-DD` | null) en cada cambio. */
|
|
55668
|
+
this.valueChange = new EventEmitter();
|
|
55669
|
+
this.open = false;
|
|
55670
|
+
if (!this.i18n.hasNamespace(I18N_NS)) {
|
|
55671
|
+
this.i18n.registerContent(I18N_NS, DATE_PICKER_I18N);
|
|
55672
|
+
}
|
|
55673
|
+
}
|
|
55674
|
+
/** id estable del trigger. */
|
|
55675
|
+
get triggerId() {
|
|
55676
|
+
if (!this.props.token) {
|
|
55677
|
+
this.props.token = `vdp-${Math.random().toString(36).slice(2, 10)}`;
|
|
55678
|
+
}
|
|
55679
|
+
return this.props.token;
|
|
55680
|
+
}
|
|
55681
|
+
get locale() {
|
|
55682
|
+
return this.props.locale || 'es-ES';
|
|
55683
|
+
}
|
|
55684
|
+
/** Valor actual (`YYYY-MM-DD` | null) — del control o del prop value. */
|
|
55685
|
+
get current() {
|
|
55686
|
+
if (this.props.control)
|
|
55687
|
+
return this.props.control.value ?? null;
|
|
55688
|
+
return this.props.value ?? null;
|
|
55689
|
+
}
|
|
55690
|
+
get placeholderText() {
|
|
55691
|
+
this.i18n.lang();
|
|
55692
|
+
return this.props.placeholder || this.t('select');
|
|
55693
|
+
}
|
|
55694
|
+
/** Valor formateado a fecha larga local (sin day-shift). '' si vacío. */
|
|
55695
|
+
get displayValue() {
|
|
55696
|
+
this.i18n.lang();
|
|
55697
|
+
const v = this.current;
|
|
55698
|
+
const d = this.parseLocal(v);
|
|
55699
|
+
if (!d)
|
|
55700
|
+
return '';
|
|
55701
|
+
try {
|
|
55702
|
+
return new Intl.DateTimeFormat(this.locale, { dateStyle: 'long' }).format(d);
|
|
55703
|
+
}
|
|
55704
|
+
catch {
|
|
55705
|
+
return v ?? '';
|
|
55706
|
+
}
|
|
55707
|
+
}
|
|
55708
|
+
ngOnChanges(_changes) {
|
|
55709
|
+
// Si el calendario está abierto y cambió el valor desde afuera, re-sincroniza.
|
|
55710
|
+
if (this.open && this.calendar) {
|
|
55711
|
+
this.calendar.set({ selectedDates: this.current ? [this.current] : [] });
|
|
55712
|
+
}
|
|
55713
|
+
}
|
|
55714
|
+
ngOnDestroy() {
|
|
55715
|
+
this.destroyCalendar();
|
|
55716
|
+
}
|
|
55717
|
+
t(key) {
|
|
55718
|
+
return this.i18n.t(key, I18N_NS);
|
|
55719
|
+
}
|
|
55720
|
+
toggle() {
|
|
55721
|
+
this.open = !this.open;
|
|
55722
|
+
if (this.open) {
|
|
55723
|
+
// El contenedor recién renderiza tras este tick → construir en microtask.
|
|
55724
|
+
setTimeout(() => this.buildCalendar(), 0);
|
|
55725
|
+
}
|
|
55726
|
+
else {
|
|
55727
|
+
this.destroyCalendar();
|
|
55728
|
+
}
|
|
55729
|
+
}
|
|
55730
|
+
buildCalendar() {
|
|
55731
|
+
const el = this.calRef?.nativeElement;
|
|
55732
|
+
if (!el)
|
|
55733
|
+
return;
|
|
55734
|
+
this.destroyCalendar();
|
|
55735
|
+
const value = this.current;
|
|
55736
|
+
this.calendar = new Calendar(el, {
|
|
55737
|
+
type: 'default',
|
|
55738
|
+
locale: this.locale,
|
|
55739
|
+
selectedTheme: 'light',
|
|
55740
|
+
firstWeekday: this.props.firstWeekday ?? 1,
|
|
55741
|
+
selectionDatesMode: 'single',
|
|
55742
|
+
selectedDates: value ? [value] : [],
|
|
55743
|
+
displayDateMin: (this.props.min ?? undefined),
|
|
55744
|
+
displayDateMax: (this.props.max ?? undefined),
|
|
55745
|
+
onClickDate: self => {
|
|
55746
|
+
const picked = self.context.selectedDates[0] ?? null;
|
|
55747
|
+
if (picked)
|
|
55748
|
+
this.apply(picked);
|
|
55749
|
+
},
|
|
55750
|
+
});
|
|
55751
|
+
this.calendar.init();
|
|
55752
|
+
}
|
|
55753
|
+
destroyCalendar() {
|
|
55754
|
+
if (this.calendar) {
|
|
55755
|
+
this.calendar.destroy();
|
|
55756
|
+
this.calendar = undefined;
|
|
55757
|
+
}
|
|
55758
|
+
}
|
|
55759
|
+
apply(date) {
|
|
55760
|
+
this.setValue(date);
|
|
55761
|
+
this.open = false;
|
|
55762
|
+
this.destroyCalendar();
|
|
55763
|
+
}
|
|
55764
|
+
clear() {
|
|
55765
|
+
this.setValue(null);
|
|
55766
|
+
this.open = false;
|
|
55767
|
+
this.destroyCalendar();
|
|
55768
|
+
}
|
|
55769
|
+
setValue(date) {
|
|
55770
|
+
if (this.props.control) {
|
|
55771
|
+
this.props.control.setValue(date);
|
|
55772
|
+
this.props.control.markAsDirty();
|
|
55773
|
+
this.props.control.markAsTouched();
|
|
55774
|
+
}
|
|
55775
|
+
else {
|
|
55776
|
+
this.props.value = date;
|
|
55777
|
+
}
|
|
55778
|
+
this.valueChange.emit(date);
|
|
55779
|
+
}
|
|
55780
|
+
/** Parsea `YYYY-MM-DD` a Date LOCAL (evita el shift de zona de new Date(str)). */
|
|
55781
|
+
parseLocal(v) {
|
|
55782
|
+
if (!v)
|
|
55783
|
+
return null;
|
|
55784
|
+
const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(v);
|
|
55785
|
+
if (!m) {
|
|
55786
|
+
const d = new Date(v);
|
|
55787
|
+
return isNaN(d.getTime()) ? null : d;
|
|
55788
|
+
}
|
|
55789
|
+
return new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3]));
|
|
55790
|
+
}
|
|
55791
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55792
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DatePickerComponent, isStandalone: true, selector: "val-date-picker", inputs: { props: "props" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "calRef", first: true, predicate: ["cal"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
55793
|
+
<div class="vdp">
|
|
55794
|
+
@if (props.label) {
|
|
55795
|
+
<label class="vdp__label" [attr.for]="triggerId">{{ props.label }}</label>
|
|
55796
|
+
}
|
|
55797
|
+
@if (props.hint) {
|
|
55798
|
+
<p class="vdp__hint">{{ props.hint }}</p>
|
|
55799
|
+
}
|
|
55800
|
+
|
|
55801
|
+
<ion-button
|
|
55802
|
+
[id]="triggerId"
|
|
55803
|
+
class="vdp__trigger"
|
|
55804
|
+
fill="outline"
|
|
55805
|
+
color="medium"
|
|
55806
|
+
expand="block"
|
|
55807
|
+
[class.is-placeholder]="!displayValue"
|
|
55808
|
+
(click)="toggle()"
|
|
55809
|
+
>
|
|
55810
|
+
<ion-icon name="calendar-outline" slot="start" />
|
|
55811
|
+
{{ displayValue || placeholderText }}
|
|
55812
|
+
</ion-button>
|
|
55813
|
+
|
|
55814
|
+
@if (open) {
|
|
55815
|
+
<div class="vdp__panel">
|
|
55816
|
+
<div #cal class="vdp__cal"></div>
|
|
55817
|
+
@if (props.clearable) {
|
|
55818
|
+
<div class="vdp__actions">
|
|
55819
|
+
<ion-button fill="clear" size="small" color="medium" (click)="clear()">
|
|
55820
|
+
{{ t('clear') }}
|
|
55821
|
+
</ion-button>
|
|
55822
|
+
</div>
|
|
55823
|
+
}
|
|
55824
|
+
</div>
|
|
55825
|
+
}
|
|
55826
|
+
</div>
|
|
55827
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";[data-vc=calendar]{border-radius:.75rem;box-sizing:border-box;display:flex;flex-direction:column;min-width:272px;opacity:1;padding:1rem;position:relative;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}[data-vc=calendar] [tabindex=\"0\"]:focus-visible,[data-vc=calendar] button:focus-visible,[data-vc=calendar]:focus-visible{border-radius:.5rem;outline-offset:-1px;outline-style:solid;outline-width:1px}[data-vc=calendar][data-vc-type=multiple] [data-vc=dates]{flex-grow:0}[data-vc=calendar][data-vc-calendar-hidden]{opacity:0;pointer-events:none}[data-vc=calendar][data-vc-calendar-hidden] *{pointer-events:none!important}[data-vc=calendar][data-vc-input]{position:absolute}[data-vc=calendar][data-vc-input][data-vc-position=bottom]{margin-top:.25rem}[data-vc=calendar][data-vc-input][data-vc-position=top]{margin-top:-.25rem}[data-vc=controls]{align-items:center;box-sizing:content-box;display:flex;justify-content:space-between;left:0;padding-left:1rem;padding-right:1rem;padding-top:1.25rem;pointer-events:none;position:absolute;right:0;top:0;z-index:20}[data-vc-arrow]{background-color:transparent;border-width:0;cursor:pointer;display:block;height:1.5rem;pointer-events:auto;position:relative;width:1.5rem}[data-vc-arrow]:before{background-position:50%;background-repeat:no-repeat;height:100%;left:0;position:absolute;top:0;width:100%;--tw-content:\"\";content:var(--tw-content)}[data-vc-arrow=prev]:before{transform:rotate(90deg)}[data-vc-arrow=next]:before{transform:rotate(-90deg)}[data-vc=grid]{display:flex;flex-grow:1;flex-wrap:wrap;gap:1.75rem}[data-vc=grid][data-vc-grid=hidden] [data-vc=column]{opacity:.3;pointer-events:none}[data-vc=grid][data-vc-grid=hidden] [data-vc=column][data-vc-column=month],[data-vc=grid][data-vc-grid=hidden] [data-vc=column][data-vc-column=year]{opacity:1;pointer-events:auto}[data-vc=column]{display:flex;flex-direction:column;flex-grow:1;min-width:240px}[data-vc=header]{align-items:center;display:flex;margin-bottom:.75rem;position:relative}[data-vc-header=content]{align-items:center;display:grid;flex-grow:1;grid-auto-columns:max-content;grid-auto-flow:column;justify-content:center;padding-left:1rem;padding-right:1rem;white-space:pre-wrap}[data-vc=month],[data-vc=year]{background-color:transparent;border-radius:.25rem;border-width:0;cursor:pointer;font-size:1rem;font-weight:700;line-height:1.5rem;padding:.25rem}[data-vc=month]:disabled,[data-vc=year]:disabled{pointer-events:none}[data-vc=content],[data-vc=wrapper]{display:flex;flex-grow:1}[data-vc=content]{flex-direction:column}[data-vc=months]{grid-template-columns:repeat(4,minmax(0,1fr))}[data-vc=months],[data-vc=years]{align-items:center;-moz-column-gap:.25rem;column-gap:.25rem;display:grid;flex-grow:1;row-gap:1rem}[data-vc=years]{grid-template-columns:repeat(5,minmax(0,1fr))}[data-vc-months-month],[data-vc-years-year]{align-items:center;border-radius:.5rem;border-width:0;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;height:2.5rem;justify-content:center;line-height:1rem;padding:.25rem;text-align:center;word-break:break-all}[data-vc-months-month]:disabled,[data-vc-years-year]:disabled{pointer-events:none}[data-vc-week=numbers]{display:flex;flex-direction:column}[data-vc-week-numbers=title]{align-items:center;display:flex;font-size:.75rem;font-weight:700;justify-content:center;line-height:1rem;margin-bottom:.5rem}[data-vc-week-numbers=content]{align-items:center;display:grid;grid-auto-flow:row;justify-items:center;row-gap:.25rem}[data-vc-week-number]{align-items:center;background-color:transparent;border-style:none;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;justify-content:center;line-height:1rem;margin:0;min-height:1.875rem;min-width:1.875rem;padding:0;width:100%}[data-vc=week]{display:grid;grid-template-columns:repeat(7,1fr);justify-items:center;margin-bottom:.5rem}[data-vc-week-day]{align-items:center;background-color:transparent;border-style:none;display:flex;font-size:.75rem;font-weight:700;justify-content:center;line-height:1rem;margin:0;min-width:1.875rem;padding:0;width:100%}button[data-vc-week-day]{cursor:pointer}[data-vc=dates]{align-items:center;display:grid;flex-grow:1;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-rows:auto;justify-items:center;pointer-events:none}[data-vc=dates][data-vc-dates-disabled] [data-vc-date-btn]{cursor:default}[data-vc-dates=row]{align-items:center;display:grid;grid-template-columns:repeat(7,1fr);justify-items:center;width:100%}[data-vc-date]{align-items:center;display:flex;justify-content:center;padding-bottom:.125rem;padding-top:.125rem;pointer-events:auto;position:relative;width:100%}[data-vc-date]:not(:has([data-vc-date-btn])),[data-vc-date][data-vc-date-disabled],[data-vc-date][data-vc-date-disabled] [data-vc-date-btn]{pointer-events:none}[data-vc-date][data-vc-date-hover] [data-vc-date-btn]{border-radius:0}[data-vc-date][data-vc-date-hover=first] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-bottom-right-radius:0;border-top-left-radius:.5rem;border-top-right-radius:0}[data-vc-date][data-vc-date-hover=last] [data-vc-date-btn]{border-bottom-left-radius:0;border-bottom-right-radius:.5rem;border-top-left-radius:0;border-top-right-radius:.5rem}[data-vc-date][data-vc-date-hover=first-and-last] [data-vc-date-btn]{border-radius:.5rem}[data-vc-date][data-vc-date-hover=first][data-vc-date-selected] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}[data-vc-date][data-vc-date-hover=last][data-vc-date-selected] [data-vc-date-btn]{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}[data-vc-date][data-vc-date-selected=first] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-bottom-right-radius:0;border-top-left-radius:.5rem;border-top-right-radius:0}[data-vc-date][data-vc-date-selected=last] [data-vc-date-btn]{border-bottom-left-radius:0;border-bottom-right-radius:.5rem;border-top-left-radius:0;border-top-right-radius:.5rem}[data-vc-date][data-vc-date-selected=first-and-last] [data-vc-date-btn]{border-radius:.5rem}[data-vc-date][data-vc-date-selected=middle] [data-vc-date-btn]{border-radius:0}[data-vc-date][data-vc-date-disabled]+[data-vc-date-hover] [data-vc-date-btn],[data-vc-date][data-vc-date-disabled]+[data-vc-date-selected] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}[data-vc-date][data-vc-date-hover]:has(+[data-vc-date-disabled]) [data-vc-date-btn],[data-vc-date][data-vc-date-selected]:has(+[data-vc-date-disabled]) [data-vc-date-btn]{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}[data-vc-date-btn]:focus-visible+[data-vc-date-popup],[data-vc-date-btn]:hover+[data-vc-date-popup],[data-vc-date-popup]:focus-visible,[data-vc-date-popup]:hover{opacity:1;pointer-events:auto}[data-vc-date-btn]{align-items:center;border-radius:.5rem;border-width:0;cursor:pointer;display:flex;font-size:.75rem;font-weight:400;height:100%;justify-content:center;line-height:1rem;min-height:1.875rem;min-width:1.875rem;padding:0;transition-duration:75ms;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}[data-vc-date][data-vc-date-today] [data-vc-date-btn]{font-weight:700}[data-vc-date-popup]{max-width:9rem;min-width:5rem;pointer-events:none;position:absolute;z-index:20;--tw-translate-x:-50%;border-radius:.5rem;font-size:.75rem;font-weight:400;line-height:1rem;opacity:0;padding:.25rem .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}[data-vc-date-popup]:hover{opacity:1;pointer-events:auto}[data-vc-date-range-tooltip]{max-width:9rem;pointer-events:none;position:absolute;z-index:30;--tw-translate-x:-50%;--tw-translate-y:-100%;border-radius:.375rem;font-size:.75rem;font-weight:400;line-height:1rem;padding:.25rem .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-vc-date-range-tooltip=hidden]{opacity:0}[data-vc-date-range-tooltip=visible]{opacity:1}[data-vc=time]{border-style:solid;border-width:1px 0 0;display:grid;gap:.75rem;grid-template-columns:auto 1fr;margin-top:.75rem;padding-top:.75rem}[data-vc-time=content]{align-items:center;display:grid;grid-auto-flow:column}[data-vc-time-input=hour]{margin-right:.35rem;position:relative;width:1.75rem}[data-vc-time-input=hour]:after{display:block;margin-top:calc(-50% + 1px);position:absolute;right:-5px;top:50%;--tw-content:\":\";content:var(--tw-content)}[data-vc-time-input=minute]{width:1.75rem}[data-vc-time-input=hour] input,[data-vc-time-input=minute] input{border-radius:.25rem;border-width:0;box-sizing:border-box;display:block;font-size:1.125rem;font-weight:600;line-height:1.125rem;margin:0;padding:.125rem;position:relative;text-align:center;width:100%}[data-vc-time-input=hour] input:focus-visible,[data-vc-time-input=minute] input:focus-visible{outline-style:solid;outline-width:1px}[data-vc-time-input=hour] input:disabled,[data-vc-time-input=minute] input:disabled{cursor:default}[data-vc-time-input=hour] input:hover:disabled,[data-vc-time-input=minute] input:hover:disabled,[data-vc-time=keeping]{background-color:transparent}[data-vc-time=keeping]{border-radius:.25rem;border-width:0;cursor:pointer;font-size:.69rem;margin-left:1px;margin-top:.25rem;padding:0;width:22px}[data-vc-time=keeping]:focus-visible{outline-style:solid;outline-width:1px}[data-vc-time=keeping]:disabled{cursor:default}[data-vc-time=keeping]:hover:disabled{background-color:transparent}[data-vc-time=ranges]{display:grid;grid-auto-flow:row}[data-vc-time-range]{font-size:0;position:relative;z-index:10}[data-vc-time-range]:before{content:var(--tw-content);left:0}[data-vc-time-range]:after{content:var(--tw-content);right:0}[data-vc-time-range]:after,[data-vc-time-range]:before{content:\"\";height:.5rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:1px;z-index:10}[data-vc-time-range] input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;height:1.25rem;margin:0;outline-width:0;position:relative;width:100%}[data-vc-time-range] input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border-radius:.25rem;border-style:solid;border-width:1px;box-sizing:border-box;cursor:pointer;height:1rem;margin-top:-.5rem;position:relative;width:.75rem;z-index:20;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-time-range] input::-moz-range-thumb{border-radius:.25rem;border-style:solid;border-width:1px;box-sizing:border-box;cursor:pointer;height:1rem;position:relative;width:.75rem;z-index:20;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-time-range] input::-webkit-slider-runnable-track{box-sizing:border-box;cursor:pointer;height:1px;margin-top:1px;width:100%;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-time-range] input::-moz-range-track{box-sizing:border-box;cursor:pointer;height:1px;margin-top:1px;width:100%;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=light].vc{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a}[data-vc-theme=light].vc[data-vc-input]{--tw-shadow:0 9px 20px rgba(0,0,0,.1);--tw-shadow-colored:0 9px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=light].vc [tabindex=\"0\"]:focus-visible,[data-vc-theme=light].vc button:focus-visible,[data-vc-theme=light].vc:focus-visible{outline-color:#fdba74}[data-vc-theme=light] .vc-arrow{background-color:transparent}[data-vc-theme=light] .vc-arrow:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iIzBmMTcyYSIgZD0iTTEyIDE2Yy0uMyAwLS41LS4xLS43LS4zbC02LTZjLS40LS40LS40LTEgMC0xLjRzMS0uNCAxLjQgMGw1LjMgNS4zIDUuMy01LjNjLjQtLjQgMS0uNCAxLjQgMHMuNCAxIDAgMS40bC02IDZjLS4yLjItLjQuMy0uNy4zIi8+PC9zdmc+);content:var(--tw-content)}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-arrow:hover:before{content:var(--tw-content);opacity:.6}}[data-vc-theme=light] .vc-header__content,[data-vc-theme=light] .vc-month,[data-vc-theme=light] .vc-year{color:#0f172a}[data-vc-theme=light] .vc-month:disabled,[data-vc-theme=light] .vc-year:disabled{color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-month:hover,[data-vc-theme=light] .vc-year:hover{color:#64748b}}[data-vc-theme=light] .vc-months__month,[data-vc-theme=light] .vc-years__year{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#64748b}[data-vc-theme=light] .vc-months__month:disabled,[data-vc-theme=light] .vc-years__year:disabled{color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-months__month:hover,[data-vc-theme=light] .vc-years__year:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-months__month:hover:disabled,[data-vc-theme=light] .vc-years__year:hover:disabled{color:#cbd5e1}}[data-vc-theme=light] .vc-months__month[data-vc-months-month-selected],[data-vc-theme=light] .vc-years__year[data-vc-years-year-selected]{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-months__month[data-vc-months-month-selected]:hover,[data-vc-theme=light] .vc-years__year[data-vc-years-year-selected]:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=light] .vc-week-number,[data-vc-theme=light] .vc-week-numbers__title{color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-week-number:hover{color:#475569}}[data-vc-theme=light] .vc-week__day{color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] button.vc-week__day:hover{color:#475569}}[data-vc-theme=light] .vc-week__day[data-vc-week-day-off]{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] button.vc-week__day[data-vc-week-day-off]:hover{color:#e11d48}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-today] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity));color:#06b6d4}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-today] .vc-date__btn:hover{color:#06b6d4}}[data-vc-theme=light] .vc-date[data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#64748b}[data-vc-theme=light] .vc-date[data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-month=prev] .vc-date__btn{color:#94a3b8}[data-vc-theme=light] .vc-date[data-vc-date-disabled] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-date[data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend] .vc-date__btn{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-disabled] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today] .vc-date__btn{color:#f43f5e}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-disabled] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#94a3b8}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#94a3b8}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date[data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date__popup{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a;--tw-shadow:0 3px 15px rgba(85,85,85,.2);--tw-shadow-colored:0 3px 15px var(--tw-shadow-color)}[data-vc-theme=light] .vc-date-range-tooltip,[data-vc-theme=light] .vc-date__popup{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=light] .vc-date-range-tooltip{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));color:#64748b;--tw-shadow:0px 1px 4px rgba(85,85,85,.2);--tw-shadow-colored:0px 1px 4px var(--tw-shadow-color)}[data-vc-theme=light] .vc-time{border-color:#cbd5e1}[data-vc-theme=light] .vc-time__hour:after,[data-vc-theme=light] .vc-time__minute:after{color:#0f172a;content:var(--tw-content)}[data-vc-theme=light] .vc-time__hour input,[data-vc-theme=light] .vc-time__minute input{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a}[data-vc-theme=light] .vc-time__hour input:focus-visible,[data-vc-theme=light] .vc-time__minute input:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-time__hour input:hover,[data-vc-theme=light] .vc-time__minute input:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-time__hour input[data-vc-input-focus],[data-vc-theme=light] .vc-time__minute input[data-vc-input-focus]{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__keeping{color:#64748b}[data-vc-theme=light] .vc-time__keeping:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-time__keeping:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-time__range input{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range:after,[data-vc-theme=light] .vc-time__range:before{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range:hover input::-webkit-slider-thumb{border-color:#94a3b8}[data-vc-theme=light] .vc-time__range:hover input::-moz-range-thumb{border-color:#94a3b8}[data-vc-theme=light] .vc-time__range input:focus-visible::-webkit-slider-thumb{border-color:#fdba74}[data-vc-theme=light] .vc-time__range input:focus-visible::-moz-range-thumb{border-color:#fdba74}[data-vc-theme=light] .vc-time__range input::-webkit-slider-thumb{border-color:#cbd5e1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range input::-moz-range-thumb{border-color:#cbd5e1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range input::-webkit-slider-runnable-track{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range input::-moz-range-track{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}[data-vc-theme=dark].vc{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#fff}[data-vc-theme=dark].vc[data-vc-input]{--tw-shadow:0 9px 20px rgba(0,0,0,.1);--tw-shadow-colored:0 9px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=dark].vc [tabindex=\"0\"]:focus-visible,[data-vc-theme=dark].vc button:focus-visible,[data-vc-theme=dark].vc:focus-visible{outline-color:#fdba74}[data-vc-theme=dark] .vc-arrow{background-color:transparent}[data-vc-theme=dark] .vc-arrow:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEyIDE2Yy0uMyAwLS41LS4xLS43LS4zbC02LTZjLS40LS40LS40LTEgMC0xLjRzMS0uNCAxLjQgMGw1LjMgNS4zIDUuMy01LjNjLjQtLjQgMS0uNCAxLjQgMHMuNCAxIDAgMS40bC02IDZjLS4yLjItLjQuMy0uNy4zIi8+PC9zdmc+);content:var(--tw-content)}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-arrow:hover:before{content:var(--tw-content);opacity:.6}}[data-vc-theme=dark] .vc-header__content,[data-vc-theme=dark] .vc-month,[data-vc-theme=dark] .vc-year{color:#fff}[data-vc-theme=dark] .vc-month:disabled,[data-vc-theme=dark] .vc-year:disabled{color:#334155;opacity:.8}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-month:hover,[data-vc-theme=dark] .vc-year:hover{color:#64748b}}[data-vc-theme=dark] .vc-months__month,[data-vc-theme=dark] .vc-years__year{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#fff}[data-vc-theme=dark] .vc-months__month:disabled,[data-vc-theme=dark] .vc-years__year:disabled{color:#334155;opacity:.8}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-months__month:hover,[data-vc-theme=dark] .vc-years__year:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-months__month:hover:disabled,[data-vc-theme=dark] .vc-years__year:hover:disabled{color:#334155}}[data-vc-theme=dark] .vc-months__month[data-vc-months-month-selected],[data-vc-theme=dark] .vc-years__year[data-vc-years-year-selected]{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-months__month[data-vc-months-month-selected]:hover,[data-vc-theme=dark] .vc-years__year[data-vc-years-year-selected]:hover{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=dark] .vc-week-number,[data-vc-theme=dark] .vc-week-numbers__title{color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-week-number:hover{color:#cbd5e1}}[data-vc-theme=dark] .vc-week__day{color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] button.vc-week__day:hover{color:#cbd5e1}}[data-vc-theme=dark] .vc-week__day[data-vc-week-day-off]{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] button.vc-week__day[data-vc-week-day-off]:hover{color:#e11d48}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#94a3b8}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#e2e8f0}}[data-vc-theme=dark] .vc-date[data-vc-date-today] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#06b6d4}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-today] .vc-date__btn:hover{color:#06b6d4}}[data-vc-theme=dark] .vc-date[data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#475569}[data-vc-theme=dark] .vc-date[data-vc-date-disabled] .vc-date__btn{color:#334155;opacity:.8}[data-vc-theme=dark] .vc-date[data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-date[data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend] .vc-date__btn{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#f43f5e}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-disabled] .vc-date__btn{color:#334155;opacity:.8}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today] .vc-date__btn{color:#f43f5e}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-disabled] .vc-date__btn{color:#334155}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#475569}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#94a3b8}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn{color:#334155;opacity:.8}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date[data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date__popup{color:#fff}[data-vc-theme=dark] .vc-date-range-tooltip,[data-vc-theme=dark] .vc-date__popup{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));--tw-shadow:inset 0 0 0 1px hsla(0,0%,100%,.05);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=dark] .vc-date-range-tooltip{color:#94a3b8}[data-vc-theme=dark] .vc-time{border-color:#1e293b}[data-vc-theme=dark] .vc-time__hour:after,[data-vc-theme=dark] .vc-time__minute:after{color:#fff;content:var(--tw-content)}[data-vc-theme=dark] .vc-time__hour input,[data-vc-theme=dark] .vc-time__minute input{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#fff}[data-vc-theme=dark] .vc-time__hour input:focus-visible,[data-vc-theme=dark] .vc-time__minute input:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-time__hour input:hover,[data-vc-theme=dark] .vc-time__minute input:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-time__hour input[data-vc-input-focus],[data-vc-theme=dark] .vc-time__minute input[data-vc-input-focus]{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__keeping{color:#64748b}[data-vc-theme=dark] .vc-time__keeping:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-time__keeping:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#94a3b8}}[data-vc-theme=dark] .vc-time__range input{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range:after,[data-vc-theme=dark] .vc-time__range:before{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range:hover input::-webkit-slider-thumb{border-color:#94a3b8}[data-vc-theme=dark] .vc-time__range:hover input::-moz-range-thumb{border-color:#94a3b8}[data-vc-theme=dark] .vc-time__range input:focus-visible::-webkit-slider-thumb{border-color:#fdba74}[data-vc-theme=dark] .vc-time__range input:focus-visible::-moz-range-thumb{border-color:#fdba74}[data-vc-theme=dark] .vc-time__range input::-webkit-slider-thumb{border-color:#475569;--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range input::-moz-range-thumb{border-color:#475569;--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range input::-webkit-slider-runnable-track{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range input::-moz-range-track{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.vdp{display:block;width:100%}.vdp__label{display:block;font-size:.8125rem;font-weight:600;color:var(--ion-color-medium, #6b6675);margin-bottom:4px}.vdp__hint{margin:0 0 8px;font-size:.75rem;color:var(--ion-color-medium, #6b6675)}.vdp__trigger{--border-radius: 12px;--border-color: var(--ion-color-medium, #92949c);text-transform:none;font-weight:600}.vdp__trigger.is-placeholder{--color: var(--ion-color-medium, #92949c)}.vdp__panel{margin-top:10px;border:1px solid var(--ion-color-step-150, #e0e0e0);border-radius:16px;background:#fff;box-shadow:0 12px 32px #0000001f;padding:8px}.vdp__cal{display:flex;justify-content:center}.vdp__actions{display:flex;justify-content:flex-end;border-top:1px solid var(--ion-color-step-100, #eee);margin-top:4px;padding-top:4px}.vdp [data-vc-date-selected] .vc-date__btn,.vdp .vc-date__btn[data-vc-date-selected]{background-color:var(--bingo-magenta, #ff00b2)!important;color:#fff!important}.vdp [data-vc-date-today] .vc-date__btn{box-shadow:inset 0 0 0 1px var(--bingo-magenta, #ff00b2)}.vdp .vc-arrow{color:var(--bingo-magenta, #ff00b2)}.vdp .vc-month,.vdp .vc-year{color:var(--ion-color-dark, #2f2a36);font-weight:700}.vdp .vc{width:100%;max-width:360px}\n/*! Bundled license information:\n\nvanilla-calendar-pro/styles/index.css:\n (*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro *)\n*/\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
55828
|
+
}
|
|
55829
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
55830
|
+
type: Component,
|
|
55831
|
+
args: [{ selector: 'val-date-picker', standalone: true, encapsulation: ViewEncapsulation.None, imports: [CommonModule, IonButton, IonIcon], template: `
|
|
55832
|
+
<div class="vdp">
|
|
55833
|
+
@if (props.label) {
|
|
55834
|
+
<label class="vdp__label" [attr.for]="triggerId">{{ props.label }}</label>
|
|
55835
|
+
}
|
|
55836
|
+
@if (props.hint) {
|
|
55837
|
+
<p class="vdp__hint">{{ props.hint }}</p>
|
|
55838
|
+
}
|
|
55839
|
+
|
|
55840
|
+
<ion-button
|
|
55841
|
+
[id]="triggerId"
|
|
55842
|
+
class="vdp__trigger"
|
|
55843
|
+
fill="outline"
|
|
55844
|
+
color="medium"
|
|
55845
|
+
expand="block"
|
|
55846
|
+
[class.is-placeholder]="!displayValue"
|
|
55847
|
+
(click)="toggle()"
|
|
55848
|
+
>
|
|
55849
|
+
<ion-icon name="calendar-outline" slot="start" />
|
|
55850
|
+
{{ displayValue || placeholderText }}
|
|
55851
|
+
</ion-button>
|
|
55852
|
+
|
|
55853
|
+
@if (open) {
|
|
55854
|
+
<div class="vdp__panel">
|
|
55855
|
+
<div #cal class="vdp__cal"></div>
|
|
55856
|
+
@if (props.clearable) {
|
|
55857
|
+
<div class="vdp__actions">
|
|
55858
|
+
<ion-button fill="clear" size="small" color="medium" (click)="clear()">
|
|
55859
|
+
{{ t('clear') }}
|
|
55860
|
+
</ion-button>
|
|
55861
|
+
</div>
|
|
55862
|
+
}
|
|
55863
|
+
</div>
|
|
55864
|
+
}
|
|
55865
|
+
</div>
|
|
55866
|
+
`, styles: ["@charset \"UTF-8\";[data-vc=calendar]{border-radius:.75rem;box-sizing:border-box;display:flex;flex-direction:column;min-width:272px;opacity:1;padding:1rem;position:relative;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}[data-vc=calendar] [tabindex=\"0\"]:focus-visible,[data-vc=calendar] button:focus-visible,[data-vc=calendar]:focus-visible{border-radius:.5rem;outline-offset:-1px;outline-style:solid;outline-width:1px}[data-vc=calendar][data-vc-type=multiple] [data-vc=dates]{flex-grow:0}[data-vc=calendar][data-vc-calendar-hidden]{opacity:0;pointer-events:none}[data-vc=calendar][data-vc-calendar-hidden] *{pointer-events:none!important}[data-vc=calendar][data-vc-input]{position:absolute}[data-vc=calendar][data-vc-input][data-vc-position=bottom]{margin-top:.25rem}[data-vc=calendar][data-vc-input][data-vc-position=top]{margin-top:-.25rem}[data-vc=controls]{align-items:center;box-sizing:content-box;display:flex;justify-content:space-between;left:0;padding-left:1rem;padding-right:1rem;padding-top:1.25rem;pointer-events:none;position:absolute;right:0;top:0;z-index:20}[data-vc-arrow]{background-color:transparent;border-width:0;cursor:pointer;display:block;height:1.5rem;pointer-events:auto;position:relative;width:1.5rem}[data-vc-arrow]:before{background-position:50%;background-repeat:no-repeat;height:100%;left:0;position:absolute;top:0;width:100%;--tw-content:\"\";content:var(--tw-content)}[data-vc-arrow=prev]:before{transform:rotate(90deg)}[data-vc-arrow=next]:before{transform:rotate(-90deg)}[data-vc=grid]{display:flex;flex-grow:1;flex-wrap:wrap;gap:1.75rem}[data-vc=grid][data-vc-grid=hidden] [data-vc=column]{opacity:.3;pointer-events:none}[data-vc=grid][data-vc-grid=hidden] [data-vc=column][data-vc-column=month],[data-vc=grid][data-vc-grid=hidden] [data-vc=column][data-vc-column=year]{opacity:1;pointer-events:auto}[data-vc=column]{display:flex;flex-direction:column;flex-grow:1;min-width:240px}[data-vc=header]{align-items:center;display:flex;margin-bottom:.75rem;position:relative}[data-vc-header=content]{align-items:center;display:grid;flex-grow:1;grid-auto-columns:max-content;grid-auto-flow:column;justify-content:center;padding-left:1rem;padding-right:1rem;white-space:pre-wrap}[data-vc=month],[data-vc=year]{background-color:transparent;border-radius:.25rem;border-width:0;cursor:pointer;font-size:1rem;font-weight:700;line-height:1.5rem;padding:.25rem}[data-vc=month]:disabled,[data-vc=year]:disabled{pointer-events:none}[data-vc=content],[data-vc=wrapper]{display:flex;flex-grow:1}[data-vc=content]{flex-direction:column}[data-vc=months]{grid-template-columns:repeat(4,minmax(0,1fr))}[data-vc=months],[data-vc=years]{align-items:center;-moz-column-gap:.25rem;column-gap:.25rem;display:grid;flex-grow:1;row-gap:1rem}[data-vc=years]{grid-template-columns:repeat(5,minmax(0,1fr))}[data-vc-months-month],[data-vc-years-year]{align-items:center;border-radius:.5rem;border-width:0;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;height:2.5rem;justify-content:center;line-height:1rem;padding:.25rem;text-align:center;word-break:break-all}[data-vc-months-month]:disabled,[data-vc-years-year]:disabled{pointer-events:none}[data-vc-week=numbers]{display:flex;flex-direction:column}[data-vc-week-numbers=title]{align-items:center;display:flex;font-size:.75rem;font-weight:700;justify-content:center;line-height:1rem;margin-bottom:.5rem}[data-vc-week-numbers=content]{align-items:center;display:grid;grid-auto-flow:row;justify-items:center;row-gap:.25rem}[data-vc-week-number]{align-items:center;background-color:transparent;border-style:none;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;justify-content:center;line-height:1rem;margin:0;min-height:1.875rem;min-width:1.875rem;padding:0;width:100%}[data-vc=week]{display:grid;grid-template-columns:repeat(7,1fr);justify-items:center;margin-bottom:.5rem}[data-vc-week-day]{align-items:center;background-color:transparent;border-style:none;display:flex;font-size:.75rem;font-weight:700;justify-content:center;line-height:1rem;margin:0;min-width:1.875rem;padding:0;width:100%}button[data-vc-week-day]{cursor:pointer}[data-vc=dates]{align-items:center;display:grid;flex-grow:1;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-rows:auto;justify-items:center;pointer-events:none}[data-vc=dates][data-vc-dates-disabled] [data-vc-date-btn]{cursor:default}[data-vc-dates=row]{align-items:center;display:grid;grid-template-columns:repeat(7,1fr);justify-items:center;width:100%}[data-vc-date]{align-items:center;display:flex;justify-content:center;padding-bottom:.125rem;padding-top:.125rem;pointer-events:auto;position:relative;width:100%}[data-vc-date]:not(:has([data-vc-date-btn])),[data-vc-date][data-vc-date-disabled],[data-vc-date][data-vc-date-disabled] [data-vc-date-btn]{pointer-events:none}[data-vc-date][data-vc-date-hover] [data-vc-date-btn]{border-radius:0}[data-vc-date][data-vc-date-hover=first] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-bottom-right-radius:0;border-top-left-radius:.5rem;border-top-right-radius:0}[data-vc-date][data-vc-date-hover=last] [data-vc-date-btn]{border-bottom-left-radius:0;border-bottom-right-radius:.5rem;border-top-left-radius:0;border-top-right-radius:.5rem}[data-vc-date][data-vc-date-hover=first-and-last] [data-vc-date-btn]{border-radius:.5rem}[data-vc-date][data-vc-date-hover=first][data-vc-date-selected] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}[data-vc-date][data-vc-date-hover=last][data-vc-date-selected] [data-vc-date-btn]{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}[data-vc-date][data-vc-date-selected=first] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-bottom-right-radius:0;border-top-left-radius:.5rem;border-top-right-radius:0}[data-vc-date][data-vc-date-selected=last] [data-vc-date-btn]{border-bottom-left-radius:0;border-bottom-right-radius:.5rem;border-top-left-radius:0;border-top-right-radius:.5rem}[data-vc-date][data-vc-date-selected=first-and-last] [data-vc-date-btn]{border-radius:.5rem}[data-vc-date][data-vc-date-selected=middle] [data-vc-date-btn]{border-radius:0}[data-vc-date][data-vc-date-disabled]+[data-vc-date-hover] [data-vc-date-btn],[data-vc-date][data-vc-date-disabled]+[data-vc-date-selected] [data-vc-date-btn]{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}[data-vc-date][data-vc-date-hover]:has(+[data-vc-date-disabled]) [data-vc-date-btn],[data-vc-date][data-vc-date-selected]:has(+[data-vc-date-disabled]) [data-vc-date-btn]{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}[data-vc-date-btn]:focus-visible+[data-vc-date-popup],[data-vc-date-btn]:hover+[data-vc-date-popup],[data-vc-date-popup]:focus-visible,[data-vc-date-popup]:hover{opacity:1;pointer-events:auto}[data-vc-date-btn]{align-items:center;border-radius:.5rem;border-width:0;cursor:pointer;display:flex;font-size:.75rem;font-weight:400;height:100%;justify-content:center;line-height:1rem;min-height:1.875rem;min-width:1.875rem;padding:0;transition-duration:75ms;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}[data-vc-date][data-vc-date-today] [data-vc-date-btn]{font-weight:700}[data-vc-date-popup]{max-width:9rem;min-width:5rem;pointer-events:none;position:absolute;z-index:20;--tw-translate-x:-50%;border-radius:.5rem;font-size:.75rem;font-weight:400;line-height:1rem;opacity:0;padding:.25rem .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}[data-vc-date-popup]:hover{opacity:1;pointer-events:auto}[data-vc-date-range-tooltip]{max-width:9rem;pointer-events:none;position:absolute;z-index:30;--tw-translate-x:-50%;--tw-translate-y:-100%;border-radius:.375rem;font-size:.75rem;font-weight:400;line-height:1rem;padding:.25rem .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-vc-date-range-tooltip=hidden]{opacity:0}[data-vc-date-range-tooltip=visible]{opacity:1}[data-vc=time]{border-style:solid;border-width:1px 0 0;display:grid;gap:.75rem;grid-template-columns:auto 1fr;margin-top:.75rem;padding-top:.75rem}[data-vc-time=content]{align-items:center;display:grid;grid-auto-flow:column}[data-vc-time-input=hour]{margin-right:.35rem;position:relative;width:1.75rem}[data-vc-time-input=hour]:after{display:block;margin-top:calc(-50% + 1px);position:absolute;right:-5px;top:50%;--tw-content:\":\";content:var(--tw-content)}[data-vc-time-input=minute]{width:1.75rem}[data-vc-time-input=hour] input,[data-vc-time-input=minute] input{border-radius:.25rem;border-width:0;box-sizing:border-box;display:block;font-size:1.125rem;font-weight:600;line-height:1.125rem;margin:0;padding:.125rem;position:relative;text-align:center;width:100%}[data-vc-time-input=hour] input:focus-visible,[data-vc-time-input=minute] input:focus-visible{outline-style:solid;outline-width:1px}[data-vc-time-input=hour] input:disabled,[data-vc-time-input=minute] input:disabled{cursor:default}[data-vc-time-input=hour] input:hover:disabled,[data-vc-time-input=minute] input:hover:disabled,[data-vc-time=keeping]{background-color:transparent}[data-vc-time=keeping]{border-radius:.25rem;border-width:0;cursor:pointer;font-size:.69rem;margin-left:1px;margin-top:.25rem;padding:0;width:22px}[data-vc-time=keeping]:focus-visible{outline-style:solid;outline-width:1px}[data-vc-time=keeping]:disabled{cursor:default}[data-vc-time=keeping]:hover:disabled{background-color:transparent}[data-vc-time=ranges]{display:grid;grid-auto-flow:row}[data-vc-time-range]{font-size:0;position:relative;z-index:10}[data-vc-time-range]:before{content:var(--tw-content);left:0}[data-vc-time-range]:after{content:var(--tw-content);right:0}[data-vc-time-range]:after,[data-vc-time-range]:before{content:\"\";height:.5rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:1px;z-index:10}[data-vc-time-range] input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;height:1.25rem;margin:0;outline-width:0;position:relative;width:100%}[data-vc-time-range] input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border-radius:.25rem;border-style:solid;border-width:1px;box-sizing:border-box;cursor:pointer;height:1rem;margin-top:-.5rem;position:relative;width:.75rem;z-index:20;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-time-range] input::-moz-range-thumb{border-radius:.25rem;border-style:solid;border-width:1px;box-sizing:border-box;cursor:pointer;height:1rem;position:relative;width:.75rem;z-index:20;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-time-range] input::-webkit-slider-runnable-track{box-sizing:border-box;cursor:pointer;height:1px;margin-top:1px;width:100%;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-time-range] input::-moz-range-track{box-sizing:border-box;cursor:pointer;height:1px;margin-top:1px;width:100%;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=light].vc{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a}[data-vc-theme=light].vc[data-vc-input]{--tw-shadow:0 9px 20px rgba(0,0,0,.1);--tw-shadow-colored:0 9px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=light].vc [tabindex=\"0\"]:focus-visible,[data-vc-theme=light].vc button:focus-visible,[data-vc-theme=light].vc:focus-visible{outline-color:#fdba74}[data-vc-theme=light] .vc-arrow{background-color:transparent}[data-vc-theme=light] .vc-arrow:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iIzBmMTcyYSIgZD0iTTEyIDE2Yy0uMyAwLS41LS4xLS43LS4zbC02LTZjLS40LS40LS40LTEgMC0xLjRzMS0uNCAxLjQgMGw1LjMgNS4zIDUuMy01LjNjLjQtLjQgMS0uNCAxLjQgMHMuNCAxIDAgMS40bC02IDZjLS4yLjItLjQuMy0uNy4zIi8+PC9zdmc+);content:var(--tw-content)}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-arrow:hover:before{content:var(--tw-content);opacity:.6}}[data-vc-theme=light] .vc-header__content,[data-vc-theme=light] .vc-month,[data-vc-theme=light] .vc-year{color:#0f172a}[data-vc-theme=light] .vc-month:disabled,[data-vc-theme=light] .vc-year:disabled{color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-month:hover,[data-vc-theme=light] .vc-year:hover{color:#64748b}}[data-vc-theme=light] .vc-months__month,[data-vc-theme=light] .vc-years__year{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#64748b}[data-vc-theme=light] .vc-months__month:disabled,[data-vc-theme=light] .vc-years__year:disabled{color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-months__month:hover,[data-vc-theme=light] .vc-years__year:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-months__month:hover:disabled,[data-vc-theme=light] .vc-years__year:hover:disabled{color:#cbd5e1}}[data-vc-theme=light] .vc-months__month[data-vc-months-month-selected],[data-vc-theme=light] .vc-years__year[data-vc-years-year-selected]{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-months__month[data-vc-months-month-selected]:hover,[data-vc-theme=light] .vc-years__year[data-vc-years-year-selected]:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=light] .vc-week-number,[data-vc-theme=light] .vc-week-numbers__title{color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-week-number:hover{color:#475569}}[data-vc-theme=light] .vc-week__day{color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] button.vc-week__day:hover{color:#475569}}[data-vc-theme=light] .vc-week__day[data-vc-week-day-off]{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] button.vc-week__day[data-vc-week-day-off]:hover{color:#e11d48}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.7;color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-today] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity));color:#06b6d4}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-today] .vc-date__btn:hover{color:#06b6d4}}[data-vc-theme=light] .vc-date[data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#64748b}[data-vc-theme=light] .vc-date[data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-month=prev] .vc-date__btn{color:#94a3b8}[data-vc-theme=light] .vc-date[data-vc-date-disabled] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-date[data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend] .vc-date__btn{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-disabled] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today] .vc-date__btn{color:#f43f5e}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-disabled] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#94a3b8}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#94a3b8}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn{color:#cbd5e1}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date[data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=light] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));color:#64748b}}[data-vc-theme=light] .vc-date__popup{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a;--tw-shadow:0 3px 15px rgba(85,85,85,.2);--tw-shadow-colored:0 3px 15px var(--tw-shadow-color)}[data-vc-theme=light] .vc-date-range-tooltip,[data-vc-theme=light] .vc-date__popup{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=light] .vc-date-range-tooltip{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));color:#64748b;--tw-shadow:0px 1px 4px rgba(85,85,85,.2);--tw-shadow-colored:0px 1px 4px var(--tw-shadow-color)}[data-vc-theme=light] .vc-time{border-color:#cbd5e1}[data-vc-theme=light] .vc-time__hour:after,[data-vc-theme=light] .vc-time__minute:after{color:#0f172a;content:var(--tw-content)}[data-vc-theme=light] .vc-time__hour input,[data-vc-theme=light] .vc-time__minute input{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:#0f172a}[data-vc-theme=light] .vc-time__hour input:focus-visible,[data-vc-theme=light] .vc-time__minute input:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-time__hour input:hover,[data-vc-theme=light] .vc-time__minute input:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-time__hour input[data-vc-input-focus],[data-vc-theme=light] .vc-time__minute input[data-vc-input-focus]{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__keeping{color:#64748b}[data-vc-theme=light] .vc-time__keeping:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=light] .vc-time__keeping:hover{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}}[data-vc-theme=light] .vc-time__range input{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range:after,[data-vc-theme=light] .vc-time__range:before{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range:hover input::-webkit-slider-thumb{border-color:#94a3b8}[data-vc-theme=light] .vc-time__range:hover input::-moz-range-thumb{border-color:#94a3b8}[data-vc-theme=light] .vc-time__range input:focus-visible::-webkit-slider-thumb{border-color:#fdba74}[data-vc-theme=light] .vc-time__range input:focus-visible::-moz-range-thumb{border-color:#fdba74}[data-vc-theme=light] .vc-time__range input::-webkit-slider-thumb{border-color:#cbd5e1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range input::-moz-range-thumb{border-color:#cbd5e1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range input::-webkit-slider-runnable-track{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}[data-vc-theme=light] .vc-time__range input::-moz-range-track{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}[data-vc-theme=dark].vc{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#fff}[data-vc-theme=dark].vc[data-vc-input]{--tw-shadow:0 9px 20px rgba(0,0,0,.1);--tw-shadow-colored:0 9px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=dark].vc [tabindex=\"0\"]:focus-visible,[data-vc-theme=dark].vc button:focus-visible,[data-vc-theme=dark].vc:focus-visible{outline-color:#fdba74}[data-vc-theme=dark] .vc-arrow{background-color:transparent}[data-vc-theme=dark] .vc-arrow:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTEyIDE2Yy0uMyAwLS41LS4xLS43LS4zbC02LTZjLS40LS40LS40LTEgMC0xLjRzMS0uNCAxLjQgMGw1LjMgNS4zIDUuMy01LjNjLjQtLjQgMS0uNCAxLjQgMHMuNCAxIDAgMS40bC02IDZjLS4yLjItLjQuMy0uNy4zIi8+PC9zdmc+);content:var(--tw-content)}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-arrow:hover:before{content:var(--tw-content);opacity:.6}}[data-vc-theme=dark] .vc-header__content,[data-vc-theme=dark] .vc-month,[data-vc-theme=dark] .vc-year{color:#fff}[data-vc-theme=dark] .vc-month:disabled,[data-vc-theme=dark] .vc-year:disabled{color:#334155;opacity:.8}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-month:hover,[data-vc-theme=dark] .vc-year:hover{color:#64748b}}[data-vc-theme=dark] .vc-months__month,[data-vc-theme=dark] .vc-years__year{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#fff}[data-vc-theme=dark] .vc-months__month:disabled,[data-vc-theme=dark] .vc-years__year:disabled{color:#334155;opacity:.8}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-months__month:hover,[data-vc-theme=dark] .vc-years__year:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-months__month:hover:disabled,[data-vc-theme=dark] .vc-years__year:hover:disabled{color:#334155}}[data-vc-theme=dark] .vc-months__month[data-vc-months-month-selected],[data-vc-theme=dark] .vc-years__year[data-vc-years-year-selected]{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-months__month[data-vc-months-month-selected]:hover,[data-vc-theme=dark] .vc-years__year[data-vc-years-year-selected]:hover{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=dark] .vc-week-number,[data-vc-theme=dark] .vc-week-numbers__title{color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-week-number:hover{color:#cbd5e1}}[data-vc-theme=dark] .vc-week__day{color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] button.vc-week__day:hover{color:#cbd5e1}}[data-vc-theme=dark] .vc-week__day[data-vc-week-day-off]{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] button.vc-week__day[data-vc-week-day-off]:hover{color:#e11d48}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(244 63 94/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn:hover{background-color:rgb(6 182 212/var(--tw-bg-opacity));--tw-bg-opacity:.8;color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=next][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected=middle][data-vc-date-month=prev][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#94a3b8}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#e2e8f0}}[data-vc-theme=dark] .vc-date[data-vc-date-today] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#06b6d4}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-today] .vc-date__btn:hover{color:#06b6d4}}[data-vc-theme=dark] .vc-date[data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#475569}[data-vc-theme=dark] .vc-date[data-vc-date-disabled] .vc-date__btn{color:#334155;opacity:.8}[data-vc-theme=dark] .vc-date[data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-date[data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend] .vc-date__btn{color:#f43f5e}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#f43f5e}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-disabled] .vc-date__btn{color:#334155;opacity:.8}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today] .vc-date__btn{color:#f43f5e}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-disabled] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-disabled] .vc-date__btn{color:#334155}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#475569}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-hover][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-today][data-vc-date-month=prev] .vc-date__btn{color:#94a3b8}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-disabled][data-vc-date-month=prev] .vc-date__btn{color:#334155;opacity:.8}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-holiday][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-weekend][data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date[data-vc-date-selected] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity));color:#fff}}[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn,[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=next] .vc-date__btn:hover,[data-vc-theme=dark] .vc-date[data-vc-date-selected][data-vc-date-month=prev] .vc-date__btn:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#cbd5e1}}[data-vc-theme=dark] .vc-date__popup{color:#fff}[data-vc-theme=dark] .vc-date-range-tooltip,[data-vc-theme=dark] .vc-date__popup{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));--tw-shadow:inset 0 0 0 1px hsla(0,0%,100%,.05);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[data-vc-theme=dark] .vc-date-range-tooltip{color:#94a3b8}[data-vc-theme=dark] .vc-time{border-color:#1e293b}[data-vc-theme=dark] .vc-time__hour:after,[data-vc-theme=dark] .vc-time__minute:after{color:#fff;content:var(--tw-content)}[data-vc-theme=dark] .vc-time__hour input,[data-vc-theme=dark] .vc-time__minute input{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity));color:#fff}[data-vc-theme=dark] .vc-time__hour input:focus-visible,[data-vc-theme=dark] .vc-time__minute input:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-time__hour input:hover,[data-vc-theme=dark] .vc-time__minute input:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}[data-vc-theme=dark] .vc-time__hour input[data-vc-input-focus],[data-vc-theme=dark] .vc-time__minute input[data-vc-input-focus]{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__keeping{color:#64748b}[data-vc-theme=dark] .vc-time__keeping:focus-visible{outline-color:#fdba74}@media (hover:hover) and (pointer:fine){[data-vc-theme=dark] .vc-time__keeping:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity));color:#94a3b8}}[data-vc-theme=dark] .vc-time__range input{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range:after,[data-vc-theme=dark] .vc-time__range:before{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range:hover input::-webkit-slider-thumb{border-color:#94a3b8}[data-vc-theme=dark] .vc-time__range:hover input::-moz-range-thumb{border-color:#94a3b8}[data-vc-theme=dark] .vc-time__range input:focus-visible::-webkit-slider-thumb{border-color:#fdba74}[data-vc-theme=dark] .vc-time__range input:focus-visible::-moz-range-thumb{border-color:#fdba74}[data-vc-theme=dark] .vc-time__range input::-webkit-slider-thumb{border-color:#475569;--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range input::-moz-range-thumb{border-color:#475569;--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range input::-webkit-slider-runnable-track{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}[data-vc-theme=dark] .vc-time__range input::-moz-range-track{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.vdp{display:block;width:100%}.vdp__label{display:block;font-size:.8125rem;font-weight:600;color:var(--ion-color-medium, #6b6675);margin-bottom:4px}.vdp__hint{margin:0 0 8px;font-size:.75rem;color:var(--ion-color-medium, #6b6675)}.vdp__trigger{--border-radius: 12px;--border-color: var(--ion-color-medium, #92949c);text-transform:none;font-weight:600}.vdp__trigger.is-placeholder{--color: var(--ion-color-medium, #92949c)}.vdp__panel{margin-top:10px;border:1px solid var(--ion-color-step-150, #e0e0e0);border-radius:16px;background:#fff;box-shadow:0 12px 32px #0000001f;padding:8px}.vdp__cal{display:flex;justify-content:center}.vdp__actions{display:flex;justify-content:flex-end;border-top:1px solid var(--ion-color-step-100, #eee);margin-top:4px;padding-top:4px}.vdp [data-vc-date-selected] .vc-date__btn,.vdp .vc-date__btn[data-vc-date-selected]{background-color:var(--bingo-magenta, #ff00b2)!important;color:#fff!important}.vdp [data-vc-date-today] .vc-date__btn{box-shadow:inset 0 0 0 1px var(--bingo-magenta, #ff00b2)}.vdp .vc-arrow{color:var(--bingo-magenta, #ff00b2)}.vdp .vc-month,.vdp .vc-year{color:var(--ion-color-dark, #2f2a36);font-weight:700}.vdp .vc{width:100%;max-width:360px}\n/*! Bundled license information:\n\nvanilla-calendar-pro/styles/index.css:\n (*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro *)\n*/\n"] }]
|
|
55867
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
55868
|
+
type: Input
|
|
55869
|
+
}], valueChange: [{
|
|
55870
|
+
type: Output
|
|
55871
|
+
}], calRef: [{
|
|
55872
|
+
type: ViewChild,
|
|
55873
|
+
args: ['cal']
|
|
55874
|
+
}] } });
|
|
55875
|
+
|
|
55302
55876
|
const DEFAULT_NAMESPACE = 'Settings.ApiKeysModal';
|
|
55303
55877
|
/**
|
|
55304
55878
|
* `val-api-keys-modal` — gestión de Client API Keys org-scopeadas (ADR-023 fase 6).
|
|
@@ -56590,7 +57164,7 @@ class PageContentComponent {
|
|
|
56590
57164
|
if (!bg) {
|
|
56591
57165
|
return 'var(--ion-background-color)';
|
|
56592
57166
|
}
|
|
56593
|
-
return resolveColor
|
|
57167
|
+
return resolveColor(bg);
|
|
56594
57168
|
}
|
|
56595
57169
|
/**
|
|
56596
57170
|
* Handles header action clicks.
|
|
@@ -56894,7 +57468,7 @@ class PageWrapperComponent {
|
|
|
56894
57468
|
if (!bg) {
|
|
56895
57469
|
return 'var(--ion-background-color)';
|
|
56896
57470
|
}
|
|
56897
|
-
return resolveColor
|
|
57471
|
+
return resolveColor(bg);
|
|
56898
57472
|
});
|
|
56899
57473
|
}
|
|
56900
57474
|
/**
|
|
@@ -64835,7 +65409,12 @@ class RequestFormBuilderService {
|
|
|
64835
65409
|
return {
|
|
64836
65410
|
name: formName,
|
|
64837
65411
|
sections: [section],
|
|
64838
|
-
actions:
|
|
65412
|
+
actions: button({
|
|
65413
|
+
text: this.i18n.t(submitLabelKey, i18nNamespace),
|
|
65414
|
+
type: 'submit',
|
|
65415
|
+
fill: 'solid',
|
|
65416
|
+
expand: 'block',
|
|
65417
|
+
}),
|
|
64839
65418
|
state,
|
|
64840
65419
|
};
|
|
64841
65420
|
}
|
|
@@ -65108,138 +65687,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
65108
65687
|
type: Output
|
|
65109
65688
|
}] } });
|
|
65110
65689
|
|
|
65111
|
-
/**
|
|
65112
|
-
* Default values for InfoCardMetadata.
|
|
65113
|
-
*/
|
|
65114
|
-
const INFO_CARD_DEFAULTS = {
|
|
65115
|
-
iconColor: 'primary',
|
|
65116
|
-
bordered: true,
|
|
65117
|
-
shadowed: false,
|
|
65118
|
-
padding: '1.5rem',
|
|
65119
|
-
borderRadius: '16px',
|
|
65120
|
-
};
|
|
65121
|
-
|
|
65122
|
-
const IONIC_COLORS$2 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
65123
|
-
/**
|
|
65124
|
-
* val-info-card
|
|
65125
|
-
*
|
|
65126
|
-
* Card with icon + overtitle + title + subtitle on the left side, and a list
|
|
65127
|
-
* of key-value pairs (label: value) on the right side. Inspired by npm's
|
|
65128
|
-
* "Provenance" / metadata panel style.
|
|
65129
|
-
*
|
|
65130
|
-
* Two-column layout on desktop, stacked single-column on mobile.
|
|
65131
|
-
*
|
|
65132
|
-
* Presentational — pass already-resolved strings.
|
|
65133
|
-
*
|
|
65134
|
-
* @example
|
|
65135
|
-
* ```html
|
|
65136
|
-
* <val-info-card
|
|
65137
|
-
* [props]="{
|
|
65138
|
-
* icon: 'cube-outline',
|
|
65139
|
-
* title: 'valtech-components',
|
|
65140
|
-
* subtitle: 'v2.0.962',
|
|
65141
|
-
* keyValues: [
|
|
65142
|
-
* { label: 'License', value: 'MIT' },
|
|
65143
|
-
* { label: 'Downloads', value: '1.2M' }
|
|
65144
|
-
* ]
|
|
65145
|
-
* }"
|
|
65146
|
-
* />
|
|
65147
|
-
* ```
|
|
65148
|
-
*/
|
|
65149
|
-
class InfoCardComponent {
|
|
65150
|
-
constructor() {
|
|
65151
|
-
/** Component configuration */
|
|
65152
|
-
this.props = input({});
|
|
65153
|
-
/** Merged configuration with defaults */
|
|
65154
|
-
this.config = computed(() => ({
|
|
65155
|
-
...INFO_CARD_DEFAULTS,
|
|
65156
|
-
...this.props(),
|
|
65157
|
-
}));
|
|
65158
|
-
}
|
|
65159
|
-
getIconColor() {
|
|
65160
|
-
const color = this.config().iconColor;
|
|
65161
|
-
if (!color)
|
|
65162
|
-
return `var(--ion-color-primary)`;
|
|
65163
|
-
return IONIC_COLORS$2.includes(color) ? `var(--ion-color-${color})` : color;
|
|
65164
|
-
}
|
|
65165
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InfoCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InfoCardComponent, isStandalone: true, selector: "val-info-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
65167
|
-
<div
|
|
65168
|
-
class="info-card"
|
|
65169
|
-
[class.info-card--bordered]="config().bordered"
|
|
65170
|
-
[class.info-card--shadowed]="config().shadowed"
|
|
65171
|
-
[style.padding]="config().padding"
|
|
65172
|
-
[style.border-radius]="config().borderRadius"
|
|
65173
|
-
>
|
|
65174
|
-
<div class="info-card__left">
|
|
65175
|
-
@if (config().icon) {
|
|
65176
|
-
<ion-icon class="info-card__icon" [name]="config().icon" [style.color]="getIconColor()"></ion-icon>
|
|
65177
|
-
}
|
|
65178
|
-
|
|
65179
|
-
@if (config().overtitle) {
|
|
65180
|
-
<span class="info-card__overtitle">{{ config().overtitle }}</span>
|
|
65181
|
-
}
|
|
65182
|
-
|
|
65183
|
-
<h3 class="info-card__title">{{ config().title }}</h3>
|
|
65184
|
-
|
|
65185
|
-
@if (config().subtitle) {
|
|
65186
|
-
<p class="info-card__subtitle">{{ config().subtitle }}</p>
|
|
65187
|
-
}
|
|
65188
|
-
</div>
|
|
65189
|
-
|
|
65190
|
-
@if (config().keyValues?.length) {
|
|
65191
|
-
<div class="info-card__right">
|
|
65192
|
-
@for (kv of config().keyValues; track $index) {
|
|
65193
|
-
<div class="info-card__kv">
|
|
65194
|
-
<span class="info-card__kv-label">{{ kv.label }}</span>
|
|
65195
|
-
<span class="info-card__kv-value">{{ kv.value }}</span>
|
|
65196
|
-
</div>
|
|
65197
|
-
}
|
|
65198
|
-
</div>
|
|
65199
|
-
}
|
|
65200
|
-
</div>
|
|
65201
|
-
`, isInline: true, styles: [":host{display:block}.info-card{display:flex;flex-direction:row;gap:2rem;background:var(--ion-card-background, var(--ion-background-color))}.info-card--bordered{border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .1))}.info-card--shadowed{box-shadow:0 2px 8px #00000014}.info-card__left{display:flex;flex-direction:column;gap:.35rem;flex:1 1 0;min-width:0}.info-card__icon{font-size:2rem;margin-bottom:.25rem}.info-card__overtitle{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ion-color-medium)}.info-card__title{margin:0;font-size:1.25rem;font-weight:700;color:var(--ion-text-color);line-height:1.3}.info-card__subtitle{margin:0;font-size:.875rem;color:var(--ion-color-medium-shade)}.info-card__right{display:flex;flex-direction:column;gap:.6rem;flex:0 0 auto;min-width:160px;max-width:260px}.info-card__kv{display:flex;flex-direction:column;gap:.1rem}.info-card__kv-label{font-size:.75rem;color:var(--ion-color-medium)}.info-card__kv-value{font-size:.9rem;font-weight:600;color:var(--ion-text-color);word-break:break-word}@media (max-width: 600px){.info-card{flex-direction:column;gap:1.25rem}.info-card__right{max-width:100%;flex-direction:row;flex-wrap:wrap;gap:.75rem 1.5rem}.info-card__kv{flex:0 0 auto}}:host-context(body.dark) .info-card--bordered,:host-context(html.ion-palette-dark) .info-card--bordered,:host-context([data-theme=dark]) .info-card--bordered{border-color:#ffffff1f}:host-context(body.dark) .info-card--shadowed,:host-context(html.ion-palette-dark) .info-card--shadowed,:host-context([data-theme=dark]) .info-card--shadowed{box-shadow:0 2px 8px #0000004d}\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"] }] }); }
|
|
65202
|
-
}
|
|
65203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InfoCardComponent, decorators: [{
|
|
65204
|
-
type: Component,
|
|
65205
|
-
args: [{ selector: 'val-info-card', standalone: true, imports: [CommonModule, IonIcon], template: `
|
|
65206
|
-
<div
|
|
65207
|
-
class="info-card"
|
|
65208
|
-
[class.info-card--bordered]="config().bordered"
|
|
65209
|
-
[class.info-card--shadowed]="config().shadowed"
|
|
65210
|
-
[style.padding]="config().padding"
|
|
65211
|
-
[style.border-radius]="config().borderRadius"
|
|
65212
|
-
>
|
|
65213
|
-
<div class="info-card__left">
|
|
65214
|
-
@if (config().icon) {
|
|
65215
|
-
<ion-icon class="info-card__icon" [name]="config().icon" [style.color]="getIconColor()"></ion-icon>
|
|
65216
|
-
}
|
|
65217
|
-
|
|
65218
|
-
@if (config().overtitle) {
|
|
65219
|
-
<span class="info-card__overtitle">{{ config().overtitle }}</span>
|
|
65220
|
-
}
|
|
65221
|
-
|
|
65222
|
-
<h3 class="info-card__title">{{ config().title }}</h3>
|
|
65223
|
-
|
|
65224
|
-
@if (config().subtitle) {
|
|
65225
|
-
<p class="info-card__subtitle">{{ config().subtitle }}</p>
|
|
65226
|
-
}
|
|
65227
|
-
</div>
|
|
65228
|
-
|
|
65229
|
-
@if (config().keyValues?.length) {
|
|
65230
|
-
<div class="info-card__right">
|
|
65231
|
-
@for (kv of config().keyValues; track $index) {
|
|
65232
|
-
<div class="info-card__kv">
|
|
65233
|
-
<span class="info-card__kv-label">{{ kv.label }}</span>
|
|
65234
|
-
<span class="info-card__kv-value">{{ kv.value }}</span>
|
|
65235
|
-
</div>
|
|
65236
|
-
}
|
|
65237
|
-
</div>
|
|
65238
|
-
}
|
|
65239
|
-
</div>
|
|
65240
|
-
`, styles: [":host{display:block}.info-card{display:flex;flex-direction:row;gap:2rem;background:var(--ion-card-background, var(--ion-background-color))}.info-card--bordered{border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .1))}.info-card--shadowed{box-shadow:0 2px 8px #00000014}.info-card__left{display:flex;flex-direction:column;gap:.35rem;flex:1 1 0;min-width:0}.info-card__icon{font-size:2rem;margin-bottom:.25rem}.info-card__overtitle{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ion-color-medium)}.info-card__title{margin:0;font-size:1.25rem;font-weight:700;color:var(--ion-text-color);line-height:1.3}.info-card__subtitle{margin:0;font-size:.875rem;color:var(--ion-color-medium-shade)}.info-card__right{display:flex;flex-direction:column;gap:.6rem;flex:0 0 auto;min-width:160px;max-width:260px}.info-card__kv{display:flex;flex-direction:column;gap:.1rem}.info-card__kv-label{font-size:.75rem;color:var(--ion-color-medium)}.info-card__kv-value{font-size:.9rem;font-weight:600;color:var(--ion-text-color);word-break:break-word}@media (max-width: 600px){.info-card{flex-direction:column;gap:1.25rem}.info-card__right{max-width:100%;flex-direction:row;flex-wrap:wrap;gap:.75rem 1.5rem}.info-card__kv{flex:0 0 auto}}:host-context(body.dark) .info-card--bordered,:host-context(html.ion-palette-dark) .info-card--bordered,:host-context([data-theme=dark]) .info-card--bordered{border-color:#ffffff1f}:host-context(body.dark) .info-card--shadowed,:host-context(html.ion-palette-dark) .info-card--shadowed,:host-context([data-theme=dark]) .info-card--shadowed{box-shadow:0 2px 8px #0000004d}\n"] }]
|
|
65241
|
-
}] });
|
|
65242
|
-
|
|
65243
65690
|
/**
|
|
65244
65691
|
* Default values for MetricCardMetadata.
|
|
65245
65692
|
*/
|
|
@@ -65389,99 +65836,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
65389
65836
|
type: Output
|
|
65390
65837
|
}] } });
|
|
65391
65838
|
|
|
65392
|
-
/**
|
|
65393
|
-
* Default values for ContentCardMetadata.
|
|
65394
|
-
*/
|
|
65395
|
-
const CONTENT_CARD_DEFAULTS = {
|
|
65396
|
-
padding: '1.5rem',
|
|
65397
|
-
borderRadius: '20px',
|
|
65398
|
-
bordered: false,
|
|
65399
|
-
shadowed: true,
|
|
65400
|
-
align: 'start',
|
|
65401
|
-
};
|
|
65402
|
-
|
|
65403
|
-
const IONIC_COLORS$1 = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
65404
|
-
function resolveColor(value) {
|
|
65405
|
-
if (!value)
|
|
65406
|
-
return undefined;
|
|
65407
|
-
return IONIC_COLORS$1.includes(value) ? `var(--ion-color-${value})` : value;
|
|
65408
|
-
}
|
|
65409
|
-
/**
|
|
65410
|
-
* val-content-card
|
|
65411
|
-
*
|
|
65412
|
-
* Generic container card with configurable padding, border radius, background
|
|
65413
|
-
* color and shadow. Accepts arbitrary content via ng-content. Use it to wrap
|
|
65414
|
-
* val-article, stats, or any other content that needs a card shell.
|
|
65415
|
-
*
|
|
65416
|
-
* @example
|
|
65417
|
-
* ```html
|
|
65418
|
-
* <val-content-card [props]="{ title: 'Summary', shadowed: true }">
|
|
65419
|
-
* <p>Any inner content here.</p>
|
|
65420
|
-
* </val-content-card>
|
|
65421
|
-
* ```
|
|
65422
|
-
*/
|
|
65423
|
-
class ContentCardComponent {
|
|
65424
|
-
constructor() {
|
|
65425
|
-
/** Component configuration */
|
|
65426
|
-
this.props = input({});
|
|
65427
|
-
/** Merged configuration with defaults */
|
|
65428
|
-
this.config = computed(() => ({
|
|
65429
|
-
...CONTENT_CARD_DEFAULTS,
|
|
65430
|
-
...this.props(),
|
|
65431
|
-
}));
|
|
65432
|
-
this.resolvedBg = computed(() => resolveColor(this.config().backgroundColor));
|
|
65433
|
-
this.resolvedColor = computed(() => resolveColor(this.config().color));
|
|
65434
|
-
}
|
|
65435
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65436
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ContentCardComponent, isStandalone: true, selector: "val-content-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
65437
|
-
<div
|
|
65438
|
-
class="content-card"
|
|
65439
|
-
[class.content-card--bordered]="config().bordered"
|
|
65440
|
-
[class.content-card--shadowed]="config().shadowed"
|
|
65441
|
-
[class.content-card--center]="config().align === 'center'"
|
|
65442
|
-
[style.padding]="config().padding"
|
|
65443
|
-
[style.border-radius]="config().borderRadius"
|
|
65444
|
-
[style.background-color]="resolvedBg()"
|
|
65445
|
-
[style.color]="resolvedColor()"
|
|
65446
|
-
>
|
|
65447
|
-
@if (config().title) {
|
|
65448
|
-
<h3 class="content-card__title">{{ config().title }}</h3>
|
|
65449
|
-
}
|
|
65450
|
-
|
|
65451
|
-
@if (config().description) {
|
|
65452
|
-
<p class="content-card__description">{{ config().description }}</p>
|
|
65453
|
-
}
|
|
65454
|
-
|
|
65455
|
-
<ng-content></ng-content>
|
|
65456
|
-
</div>
|
|
65457
|
-
`, isInline: true, styles: [":host{display:block}.content-card{background:var(--ion-card-background, var(--ion-background-color))}.content-card--bordered{border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .1))}.content-card--shadowed{box-shadow:0 4px 16px #00000014}.content-card--center{text-align:center}.content-card__title{margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:inherit;line-height:1.3}.content-card__description{margin:0 0 1rem;font-size:.875rem;color:var(--ion-color-medium-shade);line-height:1.5}:host-context(body.dark) .content-card--bordered,:host-context(html.ion-palette-dark) .content-card--bordered,:host-context([data-theme=dark]) .content-card--bordered{border-color:#ffffff1f}:host-context(body.dark) .content-card--shadowed,:host-context(html.ion-palette-dark) .content-card--shadowed,:host-context([data-theme=dark]) .content-card--shadowed{box-shadow:0 4px 16px #0000004d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
65458
|
-
}
|
|
65459
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentCardComponent, decorators: [{
|
|
65460
|
-
type: Component,
|
|
65461
|
-
args: [{ selector: 'val-content-card', standalone: true, imports: [CommonModule], template: `
|
|
65462
|
-
<div
|
|
65463
|
-
class="content-card"
|
|
65464
|
-
[class.content-card--bordered]="config().bordered"
|
|
65465
|
-
[class.content-card--shadowed]="config().shadowed"
|
|
65466
|
-
[class.content-card--center]="config().align === 'center'"
|
|
65467
|
-
[style.padding]="config().padding"
|
|
65468
|
-
[style.border-radius]="config().borderRadius"
|
|
65469
|
-
[style.background-color]="resolvedBg()"
|
|
65470
|
-
[style.color]="resolvedColor()"
|
|
65471
|
-
>
|
|
65472
|
-
@if (config().title) {
|
|
65473
|
-
<h3 class="content-card__title">{{ config().title }}</h3>
|
|
65474
|
-
}
|
|
65475
|
-
|
|
65476
|
-
@if (config().description) {
|
|
65477
|
-
<p class="content-card__description">{{ config().description }}</p>
|
|
65478
|
-
}
|
|
65479
|
-
|
|
65480
|
-
<ng-content></ng-content>
|
|
65481
|
-
</div>
|
|
65482
|
-
`, styles: [":host{display:block}.content-card{background:var(--ion-card-background, var(--ion-background-color))}.content-card--bordered{border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .1))}.content-card--shadowed{box-shadow:0 4px 16px #00000014}.content-card--center{text-align:center}.content-card__title{margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:inherit;line-height:1.3}.content-card__description{margin:0 0 1rem;font-size:.875rem;color:var(--ion-color-medium-shade);line-height:1.5}:host-context(body.dark) .content-card--bordered,:host-context(html.ion-palette-dark) .content-card--bordered,:host-context([data-theme=dark]) .content-card--bordered{border-color:#ffffff1f}:host-context(body.dark) .content-card--shadowed,:host-context(html.ion-palette-dark) .content-card--shadowed,:host-context([data-theme=dark]) .content-card--shadowed{box-shadow:0 4px 16px #0000004d}\n"] }]
|
|
65483
|
-
}] });
|
|
65484
|
-
|
|
65485
65839
|
/**
|
|
65486
65840
|
* Default values for AuthCtaMetadata.
|
|
65487
65841
|
*/
|
|
@@ -66200,5 +66554,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66200
66554
|
* Generated bundle index. Do not edit.
|
|
66201
66555
|
*/
|
|
66202
66556
|
|
|
66203
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CONTENT_CARD_DEFAULTS, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentCardComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INFO_CARD_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoCardComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor$1 as resolveColor, resolveInputDefaultValue, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
66557
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
66204
66558
|
//# sourceMappingURL=valtech-components.mjs.map
|