valtech-components 2.0.286 → 2.0.288
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/README.md +54 -14
- package/esm2022/lib/components/atoms/text/text.component.mjs +46 -10
- package/esm2022/lib/components/atoms/text/types.mjs +1 -1
- package/esm2022/lib/examples/custom-content-demo.component.mjs +291 -0
- package/esm2022/lib/examples/link-processing-example.component.mjs +139 -0
- package/esm2022/lib/services/lang-provider/content.mjs +1 -13
- package/esm2022/lib/services/link-processor.service.mjs +147 -0
- package/esm2022/lib/shared/pipes/process-links.pipe.mjs +69 -0
- package/esm2022/public-api.mjs +5 -4
- package/fesm2022/valtech-components.mjs +384 -925
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/text/text.component.d.ts +5 -1
- package/lib/components/atoms/text/types.d.ts +5 -0
- package/lib/examples/link-processing-example.component.d.ts +22 -0
- package/lib/services/link-processor.service.d.ts +92 -0
- package/lib/shared/pipes/process-links.pipe.d.ts +55 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -3
- package/esm2022/lib/components/_examples/custom-content-demo.component.mjs +0 -291
- package/esm2022/lib/components/_examples/global-content-example-content.mjs +0 -23
- package/esm2022/lib/components/_examples/global-content-example.component.mjs +0 -504
- package/esm2022/lib/components/_examples/reactive-content-example-content.mjs +0 -43
- package/esm2022/lib/components/_examples/reactive-content-example.component.mjs +0 -347
- package/esm2022/lib/services/lang-provider/components/theme-settings.mjs +0 -15
- package/lib/components/_examples/global-content-example-content.d.ts +0 -9
- package/lib/components/_examples/global-content-example.component.d.ts +0 -73
- package/lib/components/_examples/reactive-content-example-content.d.ts +0 -32
- package/lib/components/_examples/reactive-content-example.component.d.ts +0 -47
- package/lib/services/lang-provider/components/theme-settings.d.ts +0 -3
- /package/lib/{components/_examples → examples}/custom-content-demo.component.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output, Injectable, inject, InjectionToken, Inject, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, Injectable, inject, Pipe, InjectionToken, Inject, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonProgressBar, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonButtons, IonTextarea, IonDatetime, IonDatetimeButton, IonModal, IonInput, IonRadioGroup, IonRadio, IonSearchbar, IonSelect, IonSelectOption, IonToolbar, IonTitle, IonMenuButton, IonFooter, IonHeader, IonList, IonListHeader, IonLabel, IonNote, IonItem, IonContent } from '@ionic/angular/standalone';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule, NgStyle, AsyncPipe, NgIf, NgFor, NgClass } from '@angular/common';
|
|
@@ -8,9 +8,10 @@ import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBa
|
|
|
8
8
|
import { Router, RouterLink } from '@angular/router';
|
|
9
9
|
import { Browser } from '@capacitor/browser';
|
|
10
10
|
import { map, BehaviorSubject, distinctUntilChanged, Subscription, of } from 'rxjs';
|
|
11
|
-
import * as i1$1 from '@angular/
|
|
11
|
+
import * as i1$1 from '@angular/platform-browser';
|
|
12
|
+
import * as i1$2 from '@angular/forms';
|
|
12
13
|
import { ReactiveFormsModule, FormsModule, Validators } from '@angular/forms';
|
|
13
|
-
import * as i1$
|
|
14
|
+
import * as i1$3 from 'ng-otp-input';
|
|
14
15
|
import { NgOtpInputComponent, NgOtpInputModule } from 'ng-otp-input';
|
|
15
16
|
import * as i2 from '@ionic/angular';
|
|
16
17
|
import { IonicModule } from '@ionic/angular';
|
|
@@ -1003,6 +1004,216 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1003
1004
|
type: Input
|
|
1004
1005
|
}] } });
|
|
1005
1006
|
|
|
1007
|
+
/**
|
|
1008
|
+
* LinkProcessorService - Service for processing text content to convert URLs and internal routes into clickable links.
|
|
1009
|
+
*
|
|
1010
|
+
* This service automatically detects external URLs (http/https) and internal routes (starting with /)
|
|
1011
|
+
* and converts them into HTML anchor elements with appropriate attributes.
|
|
1012
|
+
*
|
|
1013
|
+
* @example Basic usage:
|
|
1014
|
+
* ```typescript
|
|
1015
|
+
* constructor(private linkProcessor: LinkProcessorService) {}
|
|
1016
|
+
*
|
|
1017
|
+
* processText() {
|
|
1018
|
+
* const text = 'Visit https://example.com or go to /profile';
|
|
1019
|
+
* const processed = this.linkProcessor.processLinks(text);
|
|
1020
|
+
* // Returns SafeHtml with clickable links
|
|
1021
|
+
* }
|
|
1022
|
+
* ```
|
|
1023
|
+
*/
|
|
1024
|
+
class LinkProcessorService {
|
|
1025
|
+
constructor(sanitizer) {
|
|
1026
|
+
this.sanitizer = sanitizer;
|
|
1027
|
+
// Regex para detectar URLs completas (http/https)
|
|
1028
|
+
this.urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
1029
|
+
// Regex para detectar rutas internas (empiezan con / pero no son URLs completas)
|
|
1030
|
+
this.internalRouteRegex = /(\s|^)(\/[^\s]*)/g;
|
|
1031
|
+
}
|
|
1032
|
+
/**
|
|
1033
|
+
* Procesa texto para convertir enlaces en elementos <a> clickeables.
|
|
1034
|
+
* Detecta automáticamente URLs externas e internas y las convierte en enlaces.
|
|
1035
|
+
*
|
|
1036
|
+
* @param text - Texto a procesar
|
|
1037
|
+
* @param config - Configuración del procesamiento
|
|
1038
|
+
* @returns SafeHtml con enlaces procesados o string original
|
|
1039
|
+
*
|
|
1040
|
+
* @example
|
|
1041
|
+
* ```typescript
|
|
1042
|
+
* const result = this.linkProcessor.processLinks(
|
|
1043
|
+
* 'Visit https://example.com or /profile',
|
|
1044
|
+
* {
|
|
1045
|
+
* openExternalInNewTab: true,
|
|
1046
|
+
* openInternalInNewTab: false,
|
|
1047
|
+
* linkClass: 'custom-link'
|
|
1048
|
+
* }
|
|
1049
|
+
* );
|
|
1050
|
+
* ```
|
|
1051
|
+
*/
|
|
1052
|
+
processLinks(text, config = {}) {
|
|
1053
|
+
if (!text)
|
|
1054
|
+
return '';
|
|
1055
|
+
const { openExternalInNewTab = true, openInternalInNewTab = false, linkClass = 'processed-link', externalLinkClass = 'external-link', internalLinkClass = 'internal-link', } = config;
|
|
1056
|
+
let hasLinks = false;
|
|
1057
|
+
let processedText = text;
|
|
1058
|
+
// Procesar URLs externas primero
|
|
1059
|
+
if (this.urlRegex.test(text)) {
|
|
1060
|
+
hasLinks = true;
|
|
1061
|
+
this.urlRegex.lastIndex = 0; // Reset regex
|
|
1062
|
+
processedText = processedText.replace(this.urlRegex, url => {
|
|
1063
|
+
const target = openExternalInNewTab ? ' target="_blank" rel="noopener noreferrer"' : '';
|
|
1064
|
+
const classes = `${linkClass} ${externalLinkClass}`.trim();
|
|
1065
|
+
return `<a href="${url}"${target} class="${classes}">${url}</a>`;
|
|
1066
|
+
});
|
|
1067
|
+
}
|
|
1068
|
+
// Procesar rutas internas después
|
|
1069
|
+
if (this.internalRouteRegex.test(processedText)) {
|
|
1070
|
+
hasLinks = true;
|
|
1071
|
+
this.internalRouteRegex.lastIndex = 0; // Reset regex
|
|
1072
|
+
processedText = processedText.replace(this.internalRouteRegex, (match, prefix, route) => {
|
|
1073
|
+
// Solo procesar si no está ya dentro de un enlace
|
|
1074
|
+
if (processedText.indexOf(`href="${route}"`) === -1) {
|
|
1075
|
+
const target = openInternalInNewTab ? ' target="_blank"' : '';
|
|
1076
|
+
const classes = `${linkClass} ${internalLinkClass}`.trim();
|
|
1077
|
+
return `${prefix}<a href="${route}"${target} class="${classes}">${route}</a>`;
|
|
1078
|
+
}
|
|
1079
|
+
return match;
|
|
1080
|
+
});
|
|
1081
|
+
}
|
|
1082
|
+
// Si hay enlaces, sanitizar el HTML
|
|
1083
|
+
if (hasLinks) {
|
|
1084
|
+
return this.sanitizer.bypassSecurityTrustHtml(processedText);
|
|
1085
|
+
}
|
|
1086
|
+
return text;
|
|
1087
|
+
}
|
|
1088
|
+
/**
|
|
1089
|
+
* Detecta si un texto contiene enlaces (URLs o rutas internas).
|
|
1090
|
+
*
|
|
1091
|
+
* @param text - Texto a analizar
|
|
1092
|
+
* @returns true si contiene enlaces
|
|
1093
|
+
*
|
|
1094
|
+
* @example
|
|
1095
|
+
* ```typescript
|
|
1096
|
+
* const hasLinks = this.linkProcessor.hasLinks('Visit https://example.com');
|
|
1097
|
+
* // Returns: true
|
|
1098
|
+
* ```
|
|
1099
|
+
*/
|
|
1100
|
+
hasLinks(text) {
|
|
1101
|
+
if (!text)
|
|
1102
|
+
return false;
|
|
1103
|
+
// Reset regex indices
|
|
1104
|
+
this.urlRegex.lastIndex = 0;
|
|
1105
|
+
this.internalRouteRegex.lastIndex = 0;
|
|
1106
|
+
return this.urlRegex.test(text) || this.internalRouteRegex.test(text);
|
|
1107
|
+
}
|
|
1108
|
+
/**
|
|
1109
|
+
* Extrae todos los enlaces de un texto.
|
|
1110
|
+
*
|
|
1111
|
+
* @param text - Texto a analizar
|
|
1112
|
+
* @returns Array de enlaces encontrados con su tipo
|
|
1113
|
+
*
|
|
1114
|
+
* @example
|
|
1115
|
+
* ```typescript
|
|
1116
|
+
* const links = this.linkProcessor.extractLinks('Visit https://example.com or /profile');
|
|
1117
|
+
* // Returns: [
|
|
1118
|
+
* // { url: 'https://example.com', type: 'external' },
|
|
1119
|
+
* // { url: '/profile', type: 'internal' }
|
|
1120
|
+
* // ]
|
|
1121
|
+
* ```
|
|
1122
|
+
*/
|
|
1123
|
+
extractLinks(text) {
|
|
1124
|
+
if (!text)
|
|
1125
|
+
return [];
|
|
1126
|
+
const links = [];
|
|
1127
|
+
// Reset regex indices
|
|
1128
|
+
this.urlRegex.lastIndex = 0;
|
|
1129
|
+
this.internalRouteRegex.lastIndex = 0;
|
|
1130
|
+
// Extraer URLs externas
|
|
1131
|
+
let match;
|
|
1132
|
+
while ((match = this.urlRegex.exec(text)) !== null) {
|
|
1133
|
+
links.push({ url: match[1], type: 'external' });
|
|
1134
|
+
}
|
|
1135
|
+
// Extraer rutas internas
|
|
1136
|
+
while ((match = this.internalRouteRegex.exec(text)) !== null) {
|
|
1137
|
+
links.push({ url: match[2], type: 'internal' });
|
|
1138
|
+
}
|
|
1139
|
+
return links;
|
|
1140
|
+
}
|
|
1141
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkProcessorService, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1142
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkProcessorService, providedIn: 'root' }); }
|
|
1143
|
+
}
|
|
1144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkProcessorService, decorators: [{
|
|
1145
|
+
type: Injectable,
|
|
1146
|
+
args: [{
|
|
1147
|
+
providedIn: 'root',
|
|
1148
|
+
}]
|
|
1149
|
+
}], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
* ProcessLinksPipe - Pipe para procesar texto y convertir URLs en enlaces clickeables.
|
|
1153
|
+
*
|
|
1154
|
+
* Este pipe standalone detecta automáticamente URLs externas (http/https) y rutas internas
|
|
1155
|
+
* (que empiezan con /) y las convierte en elementos HTML anchor con los atributos apropiados.
|
|
1156
|
+
*
|
|
1157
|
+
* @example Uso básico:
|
|
1158
|
+
* ```html
|
|
1159
|
+
* <div [innerHTML]="'Visit https://example.com or go to /profile' | processLinks"></div>
|
|
1160
|
+
* ```
|
|
1161
|
+
*
|
|
1162
|
+
* @example Con configuración personalizada:
|
|
1163
|
+
* ```html
|
|
1164
|
+
* <div [innerHTML]="text | processLinks:linkConfig"></div>
|
|
1165
|
+
* ```
|
|
1166
|
+
*
|
|
1167
|
+
* @example En TypeScript:
|
|
1168
|
+
* ```typescript
|
|
1169
|
+
* export class MyComponent {
|
|
1170
|
+
* linkConfig: LinkProcessorConfig = {
|
|
1171
|
+
* openExternalInNewTab: true,
|
|
1172
|
+
* openInternalInNewTab: false,
|
|
1173
|
+
* linkClass: 'my-link',
|
|
1174
|
+
* externalLinkClass: 'external',
|
|
1175
|
+
* internalLinkClass: 'internal'
|
|
1176
|
+
* };
|
|
1177
|
+
* }
|
|
1178
|
+
* ```
|
|
1179
|
+
*/
|
|
1180
|
+
class ProcessLinksPipe {
|
|
1181
|
+
constructor() {
|
|
1182
|
+
this.linkProcessor = inject(LinkProcessorService);
|
|
1183
|
+
}
|
|
1184
|
+
/**
|
|
1185
|
+
* Transforma texto procesando URLs y rutas internas para convertirlas en enlaces.
|
|
1186
|
+
*
|
|
1187
|
+
* @param value - El texto a procesar
|
|
1188
|
+
* @param config - Configuración opcional para el procesamiento de enlaces
|
|
1189
|
+
* @returns SafeHtml con enlaces procesados o string original si no hay enlaces
|
|
1190
|
+
*
|
|
1191
|
+
* @example
|
|
1192
|
+
* ```html
|
|
1193
|
+
* <!-- Uso básico -->
|
|
1194
|
+
* <p [innerHTML]="'Check out https://angular.io' | processLinks"></p>
|
|
1195
|
+
*
|
|
1196
|
+
* <!-- Con configuración -->
|
|
1197
|
+
* <p [innerHTML]="message | processLinks:{ openExternalInNewTab: false }"></p>
|
|
1198
|
+
* ```
|
|
1199
|
+
*/
|
|
1200
|
+
transform(value, config) {
|
|
1201
|
+
if (!value) {
|
|
1202
|
+
return '';
|
|
1203
|
+
}
|
|
1204
|
+
return this.linkProcessor.processLinks(value, config);
|
|
1205
|
+
}
|
|
1206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinksPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1207
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinksPipe, isStandalone: true, name: "processLinks" }); }
|
|
1208
|
+
}
|
|
1209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinksPipe, decorators: [{
|
|
1210
|
+
type: Pipe,
|
|
1211
|
+
args: [{
|
|
1212
|
+
name: 'processLinks',
|
|
1213
|
+
standalone: true,
|
|
1214
|
+
}]
|
|
1215
|
+
}] });
|
|
1216
|
+
|
|
1006
1217
|
/**
|
|
1007
1218
|
* Create a reactive content observable from a content key.
|
|
1008
1219
|
* This is the primary utility for the `fromContent` pattern with unified support
|
|
@@ -1747,6 +1958,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1747
1958
|
* }"></val-text>
|
|
1748
1959
|
* ```
|
|
1749
1960
|
*
|
|
1961
|
+
* @example With automatic link processing:
|
|
1962
|
+
* ```html
|
|
1963
|
+
* <val-text [props]="{
|
|
1964
|
+
* content: 'Visit https://example.com or go to /profile for more info',
|
|
1965
|
+
* processLinks: true,
|
|
1966
|
+
* linkConfig: {
|
|
1967
|
+
* openExternalInNewTab: true,
|
|
1968
|
+
* openInternalInNewTab: false,
|
|
1969
|
+
* linkClass: 'custom-link',
|
|
1970
|
+
* externalLinkClass: 'external',
|
|
1971
|
+
* internalLinkClass: 'internal'
|
|
1972
|
+
* },
|
|
1973
|
+
* color: 'primary',
|
|
1974
|
+
* size: 'medium'
|
|
1975
|
+
* }"></val-text>
|
|
1976
|
+
* ```
|
|
1977
|
+
*
|
|
1750
1978
|
* @example Using ContentService helper:
|
|
1751
1979
|
* ```typescript
|
|
1752
1980
|
* // In component
|
|
@@ -1766,8 +1994,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1766
1994
|
* @input props: TextMetadata - Configuration for the text (content, styling, and reactive content options)
|
|
1767
1995
|
*/
|
|
1768
1996
|
class TextComponent {
|
|
1769
|
-
constructor(contentService) {
|
|
1997
|
+
constructor(contentService, linkProcessor) {
|
|
1770
1998
|
this.contentService = contentService;
|
|
1999
|
+
this.linkProcessor = linkProcessor;
|
|
1771
2000
|
this.subscription = new Subscription();
|
|
1772
2001
|
}
|
|
1773
2002
|
ngOnInit() {
|
|
@@ -1811,21 +2040,37 @@ class TextComponent {
|
|
|
1811
2040
|
this.displayContent$ = of(this.props.contentFallback || '');
|
|
1812
2041
|
}
|
|
1813
2042
|
}
|
|
1814
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, deps: [{ token: ContentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1815
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2043
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, deps: [{ token: ContentService }, { token: LinkProcessorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2044
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TextComponent, isStandalone: true, selector: "val-text", inputs: { props: "props" }, ngImport: i0, template: `
|
|
1816
2045
|
<ion-text [color]="props.color">
|
|
1817
|
-
|
|
2046
|
+
@if (props.processLinks) {
|
|
2047
|
+
<p
|
|
2048
|
+
[class]="props.size"
|
|
2049
|
+
[class.bold]="props.bold"
|
|
2050
|
+
[innerHTML]="displayContent$ | async | processLinks: props.linkConfig"
|
|
2051
|
+
></p>
|
|
2052
|
+
} @else {
|
|
2053
|
+
<p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
|
|
2054
|
+
}
|
|
1818
2055
|
</ion-text>
|
|
1819
|
-
`, isInline: true, styles: ["
|
|
2056
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--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}@media (prefers-color-scheme: dark){:root{--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)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-secondary, #0cd1e8)}:host ::ng-deep .internal-link:hover{color:var(--ion-color-secondary-shade, #0bb8cc)}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ProcessLinksPipe, name: "processLinks" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1820
2057
|
}
|
|
1821
2058
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, decorators: [{
|
|
1822
2059
|
type: Component,
|
|
1823
|
-
args: [{ selector: 'val-text', standalone: true, imports: [IonText, AsyncPipe], template: `
|
|
2060
|
+
args: [{ selector: 'val-text', standalone: true, imports: [IonText, AsyncPipe, ProcessLinksPipe], template: `
|
|
1824
2061
|
<ion-text [color]="props.color">
|
|
1825
|
-
|
|
2062
|
+
@if (props.processLinks) {
|
|
2063
|
+
<p
|
|
2064
|
+
[class]="props.size"
|
|
2065
|
+
[class.bold]="props.bold"
|
|
2066
|
+
[innerHTML]="displayContent$ | async | processLinks: props.linkConfig"
|
|
2067
|
+
></p>
|
|
2068
|
+
} @else {
|
|
2069
|
+
<p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
|
|
2070
|
+
}
|
|
1826
2071
|
</ion-text>
|
|
1827
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["
|
|
1828
|
-
}], ctorParameters: () => [{ type: ContentService }], propDecorators: { props: [{
|
|
2072
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";:root{--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}@media (prefers-color-scheme: dark){:root{--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)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-secondary, #0cd1e8)}:host ::ng-deep .internal-link:hover{color:var(--ion-color-secondary-shade, #0bb8cc)}\n"] }]
|
|
2073
|
+
}], ctorParameters: () => [{ type: ContentService }, { type: LinkProcessorService }], propDecorators: { props: [{
|
|
1829
2074
|
type: Input
|
|
1830
2075
|
}] } });
|
|
1831
2076
|
/**
|
|
@@ -2418,7 +2663,7 @@ class CommentInputComponent {
|
|
|
2418
2663
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommentInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2419
2664
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CommentInputComponent, isStandalone: true, selector: "val-comment-input", inputs: { props: "props" }, ngImport: i0, template: `
|
|
2420
2665
|
<ion-textarea [formControl]="props.control" [counter]="true" [maxlength]="props.range.max"></ion-textarea>
|
|
2421
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
2666
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }] }); }
|
|
2422
2667
|
}
|
|
2423
2668
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommentInputComponent, decorators: [{
|
|
2424
2669
|
type: Component,
|
|
@@ -2620,7 +2865,7 @@ class DateInputComponent {
|
|
|
2620
2865
|
</ion-datetime>
|
|
2621
2866
|
</ng-template>
|
|
2622
2867
|
</ion-modal>
|
|
2623
|
-
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
2868
|
+
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.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", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: IonDatetimeButton, selector: "ion-datetime-button", inputs: ["color", "datetime", "disabled", "mode"] }, { kind: "component", type: IonModal, selector: "ion-modal" }] }); }
|
|
2624
2869
|
}
|
|
2625
2870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateInputComponent, decorators: [{
|
|
2626
2871
|
type: Component,
|
|
@@ -2667,7 +2912,7 @@ class EmailInputComponent {
|
|
|
2667
2912
|
constructor() { }
|
|
2668
2913
|
ngOnInit() { }
|
|
2669
2914
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmailInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2670
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EmailInputComponent, isStandalone: true, selector: "val-email-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="email" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
2915
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EmailInputComponent, isStandalone: true, selector: "val-email-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="email" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.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"] }] }); }
|
|
2671
2916
|
}
|
|
2672
2917
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmailInputComponent, decorators: [{
|
|
2673
2918
|
type: Component,
|
|
@@ -2921,7 +3166,7 @@ class HourInputComponent {
|
|
|
2921
3166
|
constructor() { }
|
|
2922
3167
|
ngOnInit() { }
|
|
2923
3168
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HourInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2924
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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$
|
|
3169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.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", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }] }); }
|
|
2925
3170
|
}
|
|
2926
3171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HourInputComponent, decorators: [{
|
|
2927
3172
|
type: Component,
|
|
@@ -3435,7 +3680,7 @@ class NumberInputComponent {
|
|
|
3435
3680
|
}
|
|
3436
3681
|
}
|
|
3437
3682
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3438
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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$
|
|
3683
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.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"] }] }); }
|
|
3439
3684
|
}
|
|
3440
3685
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
3441
3686
|
type: Component,
|
|
@@ -3472,7 +3717,7 @@ class PasswordInputComponent {
|
|
|
3472
3717
|
<ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
|
|
3473
3718
|
</ion-button>
|
|
3474
3719
|
</div>
|
|
3475
|
-
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.input-container{display:flex;align-items:center;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
3720
|
+
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.input-container{display:flex;align-items:center;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.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: 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"] }] }); }
|
|
3476
3721
|
}
|
|
3477
3722
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
3478
3723
|
type: Component,
|
|
@@ -3528,7 +3773,7 @@ class PinInputComponent {
|
|
|
3528
3773
|
<div class="otp">
|
|
3529
3774
|
<ng-otp-input [formCtrl]="props.control" [config]="otpInputConfig"></ng-otp-input>
|
|
3530
3775
|
</div>
|
|
3531
|
-
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"], dependencies: [{ kind: "ngmodule", type: NgOtpInputModule }, { kind: "component", type: i1$
|
|
3776
|
+
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"], dependencies: [{ kind: "ngmodule", type: NgOtpInputModule }, { kind: "component", type: i1$3.NgOtpInputComponent, selector: "ng-otp-input", inputs: ["config", "formCtrl"], outputs: ["onInputChange"] }] }); }
|
|
3532
3777
|
}
|
|
3533
3778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PinInputComponent, decorators: [{
|
|
3534
3779
|
type: Component,
|
|
@@ -3764,7 +4009,7 @@ class RadioInputComponent {
|
|
|
3764
4009
|
<br />
|
|
3765
4010
|
</ng-container>
|
|
3766
4011
|
</ion-radio-group>
|
|
3767
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
4012
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "name", "value"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
|
|
3768
4013
|
}
|
|
3769
4014
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioInputComponent, decorators: [{
|
|
3770
4015
|
type: Component,
|
|
@@ -3896,7 +4141,7 @@ class SearchSelectorComponent {
|
|
|
3896
4141
|
<ion-select-option [value]="o.id">{{ o.name }}</ion-select-option>
|
|
3897
4142
|
}
|
|
3898
4143
|
</ion-select>
|
|
3899
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
4144
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
3900
4145
|
}
|
|
3901
4146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchSelectorComponent, decorators: [{
|
|
3902
4147
|
type: Component,
|
|
@@ -4235,7 +4480,7 @@ class SelectSearchComponent {
|
|
|
4235
4480
|
</ion-content>
|
|
4236
4481
|
</ng-template>
|
|
4237
4482
|
</ion-modal>
|
|
4238
|
-
`, isInline: true, styles: ["ion-header{padding:8px 8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.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: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["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", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$
|
|
4483
|
+
`, isInline: true, styles: ["ion-header{padding:8px 8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.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: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["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", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
4239
4484
|
}
|
|
4240
4485
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectSearchComponent, decorators: [{
|
|
4241
4486
|
type: Component,
|
|
@@ -4321,7 +4566,7 @@ class TextInputComponent {
|
|
|
4321
4566
|
}
|
|
4322
4567
|
}
|
|
4323
4568
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4324
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextInputComponent, isStandalone: true, selector: "val-text-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="text" [placeholder]="props.placeholder" /> `, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
4569
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextInputComponent, isStandalone: true, selector: "val-text-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="text" [placeholder]="props.placeholder" /> `, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.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"] }] }); }
|
|
4325
4570
|
}
|
|
4326
4571
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
4327
4572
|
type: Component,
|
|
@@ -4900,7 +5145,7 @@ class FormComponent {
|
|
|
4900
5145
|
}
|
|
4901
5146
|
return [this.props.actions];
|
|
4902
5147
|
}
|
|
4903
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, deps: [{ token: i1$
|
|
5148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, deps: [{ token: i1$2.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4904
5149
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormComponent, isStandalone: true, selector: "val-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onInvalid: "onInvalid", onSelectChange: "onSelectChange" }, ngImport: i0, template: `
|
|
4905
5150
|
<div class="container">
|
|
4906
5151
|
<form [formGroup]="form">
|
|
@@ -4966,7 +5211,7 @@ class FormComponent {
|
|
|
4966
5211
|
></val-button-group>
|
|
4967
5212
|
</form>
|
|
4968
5213
|
</div>
|
|
4969
|
-
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$
|
|
5214
|
+
`, isInline: true, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.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: ["props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input" }, { 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"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["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: SearchSelectorComponent, selector: "val-select-input", inputs: ["props"] }] }); }
|
|
4970
5215
|
}
|
|
4971
5216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, decorators: [{
|
|
4972
5217
|
type: Component,
|
|
@@ -5057,7 +5302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
5057
5302
|
</form>
|
|
5058
5303
|
</div>
|
|
5059
5304
|
`, styles: [":root{--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}@media (prefers-color-scheme: dark){:root{--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:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
|
|
5060
|
-
}], ctorParameters: () => [{ type: i1$
|
|
5305
|
+
}], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: i0.ElementRef }], propDecorators: { props: [{
|
|
5061
5306
|
type: Input
|
|
5062
5307
|
}], onSubmit: [{
|
|
5063
5308
|
type: Output
|
|
@@ -6259,905 +6504,142 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
6259
6504
|
}] });
|
|
6260
6505
|
|
|
6261
6506
|
/**
|
|
6262
|
-
*
|
|
6263
|
-
*
|
|
6264
|
-
*
|
|
6265
|
-
*
|
|
6266
|
-
*
|
|
6267
|
-
*
|
|
6268
|
-
*
|
|
6269
|
-
*
|
|
6507
|
+
* LinkProcessingExampleComponent - Componente de ejemplo que demuestra el procesamiento automático de enlaces.
|
|
6508
|
+
*
|
|
6509
|
+
* Este componente muestra diferentes casos de uso para el procesamiento automático de enlaces
|
|
6510
|
+
* en el componente val-text, incluyendo enlaces externos, rutas internas y configuraciones personalizadas.
|
|
6511
|
+
*
|
|
6512
|
+
* @example Uso en template:
|
|
6513
|
+
* ```html
|
|
6514
|
+
* <val-link-processing-example></val-link-processing-example>
|
|
6515
|
+
* ```
|
|
6270
6516
|
*/
|
|
6271
|
-
class
|
|
6517
|
+
class LinkProcessingExampleComponent {
|
|
6272
6518
|
constructor() {
|
|
6273
|
-
this.
|
|
6274
|
-
|
|
6275
|
-
// Form data
|
|
6276
|
-
this.formData = {
|
|
6277
|
-
name: '',
|
|
6278
|
-
email: '',
|
|
6279
|
-
message: '',
|
|
6280
|
-
};
|
|
6281
|
-
// Action state
|
|
6282
|
-
this.actionPerformed = false;
|
|
6283
|
-
// Component-specific content properties
|
|
6284
|
-
this.titleProps = {
|
|
6285
|
-
contentKey: 'title',
|
|
6286
|
-
contentClass: 'GlobalContentExample',
|
|
6287
|
-
contentFallback: 'Global Content Example',
|
|
6288
|
-
color: 'primary',
|
|
6289
|
-
size: 'xlarge',
|
|
6290
|
-
bold: true,
|
|
6291
|
-
};
|
|
6292
|
-
this.languageLabel = {
|
|
6293
|
-
contentKey: 'languageLabel',
|
|
6294
|
-
contentClass: 'GlobalContentExample',
|
|
6295
|
-
contentFallback: 'Language:',
|
|
6296
|
-
color: 'medium',
|
|
6519
|
+
this.basicTextProps = {
|
|
6520
|
+
content: 'Este texto contiene https://angular.io y /dashboard pero no se procesan como enlaces.',
|
|
6297
6521
|
size: 'medium',
|
|
6298
|
-
|
|
6522
|
+
color: 'dark',
|
|
6523
|
+
bold: false,
|
|
6524
|
+
processLinks: false,
|
|
6299
6525
|
};
|
|
6300
|
-
this.
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
contentFallback: 'This example demonstrates global and component-specific content.',
|
|
6526
|
+
this.basicLinksProps = {
|
|
6527
|
+
content: 'Visita https://angular.io para documentación o ve a /dashboard para el panel principal.',
|
|
6528
|
+
size: 'medium',
|
|
6304
6529
|
color: 'dark',
|
|
6530
|
+
bold: false,
|
|
6531
|
+
processLinks: true,
|
|
6532
|
+
};
|
|
6533
|
+
this.customLinksProps = {
|
|
6534
|
+
content: 'Enlaces personalizados: https://github.com/angular/angular y /profile/settings',
|
|
6305
6535
|
size: 'medium',
|
|
6536
|
+
color: 'dark',
|
|
6306
6537
|
bold: false,
|
|
6538
|
+
processLinks: true,
|
|
6539
|
+
linkConfig: {
|
|
6540
|
+
openExternalInNewTab: true,
|
|
6541
|
+
openInternalInNewTab: false,
|
|
6542
|
+
linkClass: 'custom-link-style',
|
|
6543
|
+
externalLinkClass: 'external-custom',
|
|
6544
|
+
internalLinkClass: 'internal-custom',
|
|
6545
|
+
},
|
|
6307
6546
|
};
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6311
|
-
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
this.filterButton$ = this.content.fromContent({ key: 'filter' });
|
|
6322
|
-
this.sortButton$ = this.content.fromContent({ key: 'sort' });
|
|
6323
|
-
this.refreshButton$ = this.content.fromContent({ key: 'refresh' });
|
|
6324
|
-
// Global state content
|
|
6325
|
-
this.loadingText$ = this.content.fromContent({ key: 'loading' });
|
|
6326
|
-
this.successText$ = this.content.fromContent({ key: 'success' });
|
|
6327
|
-
this.errorText$ = this.content.fromContent({ key: 'error' });
|
|
6328
|
-
this.warningText$ = this.content.fromContent({ key: 'warning' });
|
|
6329
|
-
this.infoText$ = this.content.fromContent({ key: 'info' });
|
|
6330
|
-
this.noDataText$ = this.content.fromContent({ key: 'noData' });
|
|
6331
|
-
// Global form content
|
|
6332
|
-
this.requiredText$ = this.content.fromContent({ key: 'required' });
|
|
6333
|
-
this.optionalText$ = this.content.fromContent({ key: 'optional' });
|
|
6334
|
-
this.searchPlaceholder$ = this.content.fromContent({ key: 'searchPlaceholder' });
|
|
6335
|
-
// Global confirmation content with interpolation
|
|
6336
|
-
this.deleteConfirmation$ = this.content.fromContentWithInterpolation({
|
|
6337
|
-
key: 'deleteConfirmation',
|
|
6338
|
-
interpolation: { itemName: 'este registro' },
|
|
6339
|
-
});
|
|
6340
|
-
this.areYouSureText$ = this.content.fromContent({ key: 'areYouSure' });
|
|
6341
|
-
this.unsavedChangesText$ = this.content.fromContent({ key: 'unsavedChanges' });
|
|
6342
|
-
}
|
|
6343
|
-
/**
|
|
6344
|
-
* Set language
|
|
6345
|
-
*/
|
|
6346
|
-
setLanguage(lang) {
|
|
6347
|
-
this.content.setLang(lang);
|
|
6348
|
-
}
|
|
6349
|
-
/**
|
|
6350
|
-
* Perform an action to demonstrate status messages
|
|
6351
|
-
*/
|
|
6352
|
-
performAction() {
|
|
6353
|
-
this.actionPerformed = true;
|
|
6354
|
-
setTimeout(() => {
|
|
6355
|
-
this.actionPerformed = false;
|
|
6356
|
-
}, 3000);
|
|
6357
|
-
}
|
|
6358
|
-
/**
|
|
6359
|
-
* Cancel action
|
|
6360
|
-
*/
|
|
6361
|
-
cancelAction() {
|
|
6362
|
-
this.formData = { name: '', email: '', message: '' };
|
|
6363
|
-
this.actionPerformed = false;
|
|
6364
|
-
}
|
|
6365
|
-
/**
|
|
6366
|
-
* Example of synchronous global content access
|
|
6367
|
-
*/
|
|
6368
|
-
getOkTextSync() {
|
|
6369
|
-
return this.content.getGlobalText('ok');
|
|
6370
|
-
}
|
|
6371
|
-
/**
|
|
6372
|
-
* Example of synchronous global content access using getText
|
|
6373
|
-
*/
|
|
6374
|
-
getCancelTextSync() {
|
|
6375
|
-
return this.content.getText('cancel');
|
|
6376
|
-
}
|
|
6377
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalContentExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6378
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GlobalContentExampleComponent, isStandalone: true, selector: "val-global-content-example", ngImport: i0, template: `
|
|
6379
|
-
<ion-card>
|
|
6380
|
-
<ion-card-header>
|
|
6381
|
-
<ion-card-title>
|
|
6382
|
-
<val-text [props]="titleProps"></val-text>
|
|
6383
|
-
</ion-card-title>
|
|
6384
|
-
</ion-card-header>
|
|
6385
|
-
|
|
6386
|
-
<ion-card-content>
|
|
6387
|
-
<!-- Language switcher -->
|
|
6388
|
-
<div class="language-section">
|
|
6389
|
-
<val-text [props]="languageLabel"></val-text>
|
|
6390
|
-
<ion-button fill="outline" size="small" (click)="setLanguage('es')"> Español </ion-button>
|
|
6391
|
-
<ion-button fill="outline" size="small" (click)="setLanguage('en')"> English </ion-button>
|
|
6392
|
-
</div>
|
|
6393
|
-
|
|
6394
|
-
<div class="divider"></div>
|
|
6395
|
-
|
|
6396
|
-
<!-- Global buttons demonstration -->
|
|
6397
|
-
<div class="section">
|
|
6398
|
-
<h3>Global Buttons</h3>
|
|
6399
|
-
<div class="button-grid">
|
|
6400
|
-
<ion-button color="primary">{{ saveButton$ | async }}</ion-button>
|
|
6401
|
-
<ion-button color="secondary">{{ editButton$ | async }}</ion-button>
|
|
6402
|
-
<ion-button color="danger">{{ deleteButton$ | async }}</ion-button>
|
|
6403
|
-
<ion-button fill="outline">{{ cancelButton$ | async }}</ion-button>
|
|
6404
|
-
<ion-button fill="outline">{{ backButton$ | async }}</ion-button>
|
|
6405
|
-
<ion-button fill="outline">{{ nextButton$ | async }}</ion-button>
|
|
6406
|
-
<ion-button color="success">{{ okButton$ | async }}</ion-button>
|
|
6407
|
-
<ion-button fill="clear">{{ closeButton$ | async }}</ion-button>
|
|
6408
|
-
</div>
|
|
6409
|
-
</div>
|
|
6410
|
-
|
|
6411
|
-
<div class="divider"></div>
|
|
6412
|
-
|
|
6413
|
-
<!-- Global actions demonstration -->
|
|
6414
|
-
<div class="section">
|
|
6415
|
-
<h3>Global Actions</h3>
|
|
6416
|
-
<div class="button-grid">
|
|
6417
|
-
<ion-button size="small">{{ addButton$ | async }}</ion-button>
|
|
6418
|
-
<ion-button size="small">{{ removeButton$ | async }}</ion-button>
|
|
6419
|
-
<ion-button size="small">{{ searchButton$ | async }}</ion-button>
|
|
6420
|
-
<ion-button size="small">{{ filterButton$ | async }}</ion-button>
|
|
6421
|
-
<ion-button size="small">{{ sortButton$ | async }}</ion-button>
|
|
6422
|
-
<ion-button size="small">{{ refreshButton$ | async }}</ion-button>
|
|
6423
|
-
</div>
|
|
6424
|
-
</div>
|
|
6425
|
-
|
|
6426
|
-
<div class="divider"></div>
|
|
6427
|
-
|
|
6428
|
-
<!-- Global states demonstration -->
|
|
6429
|
-
<div class="section">
|
|
6430
|
-
<h3>Global States</h3>
|
|
6431
|
-
<div class="state-messages">
|
|
6432
|
-
<div class="state-item loading">
|
|
6433
|
-
<val-text
|
|
6434
|
-
[props]="{ content: loadingText$ | async, color: 'medium', size: 'small', bold: false }"
|
|
6435
|
-
></val-text>
|
|
6436
|
-
</div>
|
|
6437
|
-
<div class="state-item success">
|
|
6438
|
-
<val-text
|
|
6439
|
-
[props]="{ content: successText$ | async, color: 'success', size: 'small', bold: false }"
|
|
6440
|
-
></val-text>
|
|
6441
|
-
</div>
|
|
6442
|
-
<div class="state-item error">
|
|
6443
|
-
<val-text
|
|
6444
|
-
[props]="{ content: errorText$ | async, color: 'danger', size: 'small', bold: false }"
|
|
6445
|
-
></val-text>
|
|
6446
|
-
</div>
|
|
6447
|
-
<div class="state-item warning">
|
|
6448
|
-
<val-text
|
|
6449
|
-
[props]="{ content: warningText$ | async, color: 'warning', size: 'small', bold: false }"
|
|
6450
|
-
></val-text>
|
|
6451
|
-
</div>
|
|
6452
|
-
<div class="state-item info">
|
|
6453
|
-
<val-text
|
|
6454
|
-
[props]="{ content: infoText$ | async, color: 'primary', size: 'small', bold: false }"
|
|
6455
|
-
></val-text>
|
|
6456
|
-
</div>
|
|
6457
|
-
<div class="state-item no-data">
|
|
6458
|
-
<val-text
|
|
6459
|
-
[props]="{ content: noDataText$ | async, color: 'medium', size: 'small', bold: false }"
|
|
6460
|
-
></val-text>
|
|
6461
|
-
</div>
|
|
6462
|
-
</div>
|
|
6463
|
-
</div>
|
|
6464
|
-
|
|
6465
|
-
<div class="divider"></div>
|
|
6466
|
-
|
|
6467
|
-
<!-- Form with global placeholders and labels -->
|
|
6468
|
-
<div class="section">
|
|
6469
|
-
<h3>Form with Global Content</h3>
|
|
6470
|
-
<form class="example-form">
|
|
6471
|
-
<ion-item>
|
|
6472
|
-
<ion-label position="stacked">Name ({{ requiredText$ | async }})</ion-label>
|
|
6473
|
-
<ion-input [(ngModel)]="formData.name" [placeholder]="'Enter your name' + '...'" name="name"> </ion-input>
|
|
6474
|
-
</ion-item>
|
|
6475
|
-
|
|
6476
|
-
<ion-item>
|
|
6477
|
-
<ion-label position="stacked">Email ({{ optionalText$ | async }})</ion-label>
|
|
6478
|
-
<ion-input [(ngModel)]="formData.email" [placeholder]="'Enter your email' + '...'" name="email">
|
|
6479
|
-
</ion-input>
|
|
6480
|
-
</ion-item>
|
|
6481
|
-
|
|
6482
|
-
<ion-item>
|
|
6483
|
-
<ion-label position="stacked">Message</ion-label>
|
|
6484
|
-
<ion-textarea [(ngModel)]="formData.message" [placeholder]="searchPlaceholder$ | async" name="message">
|
|
6485
|
-
</ion-textarea>
|
|
6486
|
-
</ion-item>
|
|
6487
|
-
</form>
|
|
6488
|
-
</div>
|
|
6489
|
-
|
|
6490
|
-
<div class="divider"></div>
|
|
6491
|
-
|
|
6492
|
-
<!-- Global confirmations with interpolation -->
|
|
6493
|
-
<div class="section">
|
|
6494
|
-
<h3>Confirmations with Interpolation</h3>
|
|
6495
|
-
<div class="confirmation-examples">
|
|
6496
|
-
<p><strong>Delete Confirmation:</strong></p>
|
|
6497
|
-
<val-text
|
|
6498
|
-
[props]="{ content: deleteConfirmation$ | async, color: 'danger', size: 'medium', bold: false }"
|
|
6499
|
-
></val-text>
|
|
6500
|
-
|
|
6501
|
-
<br /><br />
|
|
6502
|
-
<p><strong>General Confirmation:</strong></p>
|
|
6503
|
-
<val-text
|
|
6504
|
-
[props]="{ content: areYouSureText$ | async, color: 'warning', size: 'medium', bold: false }"
|
|
6505
|
-
></val-text>
|
|
6506
|
-
|
|
6507
|
-
<br /><br />
|
|
6508
|
-
<p><strong>Unsaved Changes:</strong></p>
|
|
6509
|
-
<val-text
|
|
6510
|
-
[props]="{ content: unsavedChangesText$ | async, color: 'medium', size: 'medium', bold: false }"
|
|
6511
|
-
></val-text>
|
|
6512
|
-
</div>
|
|
6513
|
-
</div>
|
|
6514
|
-
|
|
6515
|
-
<div class="divider"></div>
|
|
6516
|
-
|
|
6517
|
-
<!-- Mixed content: Global + Component specific -->
|
|
6518
|
-
<div class="section">
|
|
6519
|
-
<h3>Mixed Content Example</h3>
|
|
6520
|
-
<div class="mixed-content">
|
|
6521
|
-
<!-- Component-specific content -->
|
|
6522
|
-
<val-text [props]="componentDescriptionProps"></val-text>
|
|
6523
|
-
|
|
6524
|
-
<br /><br />
|
|
6525
|
-
|
|
6526
|
-
<!-- Action buttons mixing global and component content -->
|
|
6527
|
-
<div class="action-buttons">
|
|
6528
|
-
<ion-button color="primary" (click)="performAction()">
|
|
6529
|
-
{{ saveButton$ | async }}
|
|
6530
|
-
</ion-button>
|
|
6531
|
-
<ion-button fill="outline" (click)="cancelAction()">
|
|
6532
|
-
{{ cancelButton$ | async }}
|
|
6533
|
-
</ion-button>
|
|
6534
|
-
</div>
|
|
6535
|
-
|
|
6536
|
-
<!-- Status message using global content -->
|
|
6537
|
-
<div *ngIf="actionPerformed" class="status-message">
|
|
6538
|
-
<val-text
|
|
6539
|
-
[props]="{ content: successText$ | async, color: 'success', size: 'small', bold: false }"
|
|
6540
|
-
></val-text>
|
|
6541
|
-
</div>
|
|
6542
|
-
</div>
|
|
6543
|
-
</div>
|
|
6544
|
-
|
|
6545
|
-
<!-- Demo of synchronous global content access -->
|
|
6546
|
-
<div class="section">
|
|
6547
|
-
<h3>Synchronous Access Example</h3>
|
|
6548
|
-
<p>
|
|
6549
|
-
OK button text (sync): <strong>{{ getOkTextSync() }}</strong>
|
|
6550
|
-
</p>
|
|
6551
|
-
<p>
|
|
6552
|
-
Cancel button text (sync): <strong>{{ getCancelTextSync() }}</strong>
|
|
6553
|
-
</p>
|
|
6554
|
-
</div>
|
|
6555
|
-
</ion-card-content>
|
|
6556
|
-
</ion-card>
|
|
6557
|
-
`, isInline: true, styles: [".language-section{display:flex;align-items:center;gap:8px;margin-bottom:16px}.divider{height:1px;background-color:var(--ion-color-light);margin:16px 0}.section{margin-bottom:16px}.section h3{margin:0 0 12px;color:var(--ion-color-primary)}.button-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.state-messages{display:flex;flex-direction:column;gap:8px}.state-item{padding:8px;border-radius:4px;background-color:var(--ion-color-light-shade)}.state-item.loading{background-color:var(--ion-color-medium-tint)}.state-item.success{background-color:var(--ion-color-success-tint)}.state-item.error{background-color:var(--ion-color-danger-tint)}.state-item.warning{background-color:var(--ion-color-warning-tint)}.state-item.info{background-color:var(--ion-color-primary-tint)}.example-form{margin-top:12px}.confirmation-examples{padding:12px;background-color:var(--ion-color-light-tint);border-radius:8px}.mixed-content{padding:12px;background-color:var(--ion-color-light-shade);border-radius:8px}.action-buttons{display:flex;gap:8px;margin:12px 0}.status-message{padding:8px;background-color:var(--ion-color-success-tint);border-radius:4px;margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: 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: 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: 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: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
6558
|
-
}
|
|
6559
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalContentExampleComponent, decorators: [{
|
|
6560
|
-
type: Component,
|
|
6561
|
-
args: [{ selector: 'val-global-content-example', standalone: true, imports: [
|
|
6562
|
-
CommonModule,
|
|
6563
|
-
FormsModule,
|
|
6564
|
-
IonCard,
|
|
6565
|
-
IonCardContent,
|
|
6566
|
-
IonCardHeader,
|
|
6567
|
-
IonCardTitle,
|
|
6568
|
-
IonButton,
|
|
6569
|
-
IonItem,
|
|
6570
|
-
IonLabel,
|
|
6571
|
-
IonInput,
|
|
6572
|
-
IonTextarea,
|
|
6573
|
-
TextComponent,
|
|
6574
|
-
], template: `
|
|
6575
|
-
<ion-card>
|
|
6576
|
-
<ion-card-header>
|
|
6577
|
-
<ion-card-title>
|
|
6578
|
-
<val-text [props]="titleProps"></val-text>
|
|
6579
|
-
</ion-card-title>
|
|
6580
|
-
</ion-card-header>
|
|
6581
|
-
|
|
6582
|
-
<ion-card-content>
|
|
6583
|
-
<!-- Language switcher -->
|
|
6584
|
-
<div class="language-section">
|
|
6585
|
-
<val-text [props]="languageLabel"></val-text>
|
|
6586
|
-
<ion-button fill="outline" size="small" (click)="setLanguage('es')"> Español </ion-button>
|
|
6587
|
-
<ion-button fill="outline" size="small" (click)="setLanguage('en')"> English </ion-button>
|
|
6588
|
-
</div>
|
|
6589
|
-
|
|
6590
|
-
<div class="divider"></div>
|
|
6591
|
-
|
|
6592
|
-
<!-- Global buttons demonstration -->
|
|
6593
|
-
<div class="section">
|
|
6594
|
-
<h3>Global Buttons</h3>
|
|
6595
|
-
<div class="button-grid">
|
|
6596
|
-
<ion-button color="primary">{{ saveButton$ | async }}</ion-button>
|
|
6597
|
-
<ion-button color="secondary">{{ editButton$ | async }}</ion-button>
|
|
6598
|
-
<ion-button color="danger">{{ deleteButton$ | async }}</ion-button>
|
|
6599
|
-
<ion-button fill="outline">{{ cancelButton$ | async }}</ion-button>
|
|
6600
|
-
<ion-button fill="outline">{{ backButton$ | async }}</ion-button>
|
|
6601
|
-
<ion-button fill="outline">{{ nextButton$ | async }}</ion-button>
|
|
6602
|
-
<ion-button color="success">{{ okButton$ | async }}</ion-button>
|
|
6603
|
-
<ion-button fill="clear">{{ closeButton$ | async }}</ion-button>
|
|
6604
|
-
</div>
|
|
6605
|
-
</div>
|
|
6606
|
-
|
|
6607
|
-
<div class="divider"></div>
|
|
6608
|
-
|
|
6609
|
-
<!-- Global actions demonstration -->
|
|
6610
|
-
<div class="section">
|
|
6611
|
-
<h3>Global Actions</h3>
|
|
6612
|
-
<div class="button-grid">
|
|
6613
|
-
<ion-button size="small">{{ addButton$ | async }}</ion-button>
|
|
6614
|
-
<ion-button size="small">{{ removeButton$ | async }}</ion-button>
|
|
6615
|
-
<ion-button size="small">{{ searchButton$ | async }}</ion-button>
|
|
6616
|
-
<ion-button size="small">{{ filterButton$ | async }}</ion-button>
|
|
6617
|
-
<ion-button size="small">{{ sortButton$ | async }}</ion-button>
|
|
6618
|
-
<ion-button size="small">{{ refreshButton$ | async }}</ion-button>
|
|
6619
|
-
</div>
|
|
6620
|
-
</div>
|
|
6621
|
-
|
|
6622
|
-
<div class="divider"></div>
|
|
6623
|
-
|
|
6624
|
-
<!-- Global states demonstration -->
|
|
6625
|
-
<div class="section">
|
|
6626
|
-
<h3>Global States</h3>
|
|
6627
|
-
<div class="state-messages">
|
|
6628
|
-
<div class="state-item loading">
|
|
6629
|
-
<val-text
|
|
6630
|
-
[props]="{ content: loadingText$ | async, color: 'medium', size: 'small', bold: false }"
|
|
6631
|
-
></val-text>
|
|
6632
|
-
</div>
|
|
6633
|
-
<div class="state-item success">
|
|
6634
|
-
<val-text
|
|
6635
|
-
[props]="{ content: successText$ | async, color: 'success', size: 'small', bold: false }"
|
|
6636
|
-
></val-text>
|
|
6637
|
-
</div>
|
|
6638
|
-
<div class="state-item error">
|
|
6639
|
-
<val-text
|
|
6640
|
-
[props]="{ content: errorText$ | async, color: 'danger', size: 'small', bold: false }"
|
|
6641
|
-
></val-text>
|
|
6642
|
-
</div>
|
|
6643
|
-
<div class="state-item warning">
|
|
6644
|
-
<val-text
|
|
6645
|
-
[props]="{ content: warningText$ | async, color: 'warning', size: 'small', bold: false }"
|
|
6646
|
-
></val-text>
|
|
6647
|
-
</div>
|
|
6648
|
-
<div class="state-item info">
|
|
6649
|
-
<val-text
|
|
6650
|
-
[props]="{ content: infoText$ | async, color: 'primary', size: 'small', bold: false }"
|
|
6651
|
-
></val-text>
|
|
6652
|
-
</div>
|
|
6653
|
-
<div class="state-item no-data">
|
|
6654
|
-
<val-text
|
|
6655
|
-
[props]="{ content: noDataText$ | async, color: 'medium', size: 'small', bold: false }"
|
|
6656
|
-
></val-text>
|
|
6657
|
-
</div>
|
|
6658
|
-
</div>
|
|
6659
|
-
</div>
|
|
6660
|
-
|
|
6661
|
-
<div class="divider"></div>
|
|
6662
|
-
|
|
6663
|
-
<!-- Form with global placeholders and labels -->
|
|
6664
|
-
<div class="section">
|
|
6665
|
-
<h3>Form with Global Content</h3>
|
|
6666
|
-
<form class="example-form">
|
|
6667
|
-
<ion-item>
|
|
6668
|
-
<ion-label position="stacked">Name ({{ requiredText$ | async }})</ion-label>
|
|
6669
|
-
<ion-input [(ngModel)]="formData.name" [placeholder]="'Enter your name' + '...'" name="name"> </ion-input>
|
|
6670
|
-
</ion-item>
|
|
6671
|
-
|
|
6672
|
-
<ion-item>
|
|
6673
|
-
<ion-label position="stacked">Email ({{ optionalText$ | async }})</ion-label>
|
|
6674
|
-
<ion-input [(ngModel)]="formData.email" [placeholder]="'Enter your email' + '...'" name="email">
|
|
6675
|
-
</ion-input>
|
|
6676
|
-
</ion-item>
|
|
6677
|
-
|
|
6678
|
-
<ion-item>
|
|
6679
|
-
<ion-label position="stacked">Message</ion-label>
|
|
6680
|
-
<ion-textarea [(ngModel)]="formData.message" [placeholder]="searchPlaceholder$ | async" name="message">
|
|
6681
|
-
</ion-textarea>
|
|
6682
|
-
</ion-item>
|
|
6683
|
-
</form>
|
|
6684
|
-
</div>
|
|
6685
|
-
|
|
6686
|
-
<div class="divider"></div>
|
|
6687
|
-
|
|
6688
|
-
<!-- Global confirmations with interpolation -->
|
|
6689
|
-
<div class="section">
|
|
6690
|
-
<h3>Confirmations with Interpolation</h3>
|
|
6691
|
-
<div class="confirmation-examples">
|
|
6692
|
-
<p><strong>Delete Confirmation:</strong></p>
|
|
6693
|
-
<val-text
|
|
6694
|
-
[props]="{ content: deleteConfirmation$ | async, color: 'danger', size: 'medium', bold: false }"
|
|
6695
|
-
></val-text>
|
|
6696
|
-
|
|
6697
|
-
<br /><br />
|
|
6698
|
-
<p><strong>General Confirmation:</strong></p>
|
|
6699
|
-
<val-text
|
|
6700
|
-
[props]="{ content: areYouSureText$ | async, color: 'warning', size: 'medium', bold: false }"
|
|
6701
|
-
></val-text>
|
|
6702
|
-
|
|
6703
|
-
<br /><br />
|
|
6704
|
-
<p><strong>Unsaved Changes:</strong></p>
|
|
6705
|
-
<val-text
|
|
6706
|
-
[props]="{ content: unsavedChangesText$ | async, color: 'medium', size: 'medium', bold: false }"
|
|
6707
|
-
></val-text>
|
|
6708
|
-
</div>
|
|
6709
|
-
</div>
|
|
6710
|
-
|
|
6711
|
-
<div class="divider"></div>
|
|
6712
|
-
|
|
6713
|
-
<!-- Mixed content: Global + Component specific -->
|
|
6714
|
-
<div class="section">
|
|
6715
|
-
<h3>Mixed Content Example</h3>
|
|
6716
|
-
<div class="mixed-content">
|
|
6717
|
-
<!-- Component-specific content -->
|
|
6718
|
-
<val-text [props]="componentDescriptionProps"></val-text>
|
|
6719
|
-
|
|
6720
|
-
<br /><br />
|
|
6721
|
-
|
|
6722
|
-
<!-- Action buttons mixing global and component content -->
|
|
6723
|
-
<div class="action-buttons">
|
|
6724
|
-
<ion-button color="primary" (click)="performAction()">
|
|
6725
|
-
{{ saveButton$ | async }}
|
|
6726
|
-
</ion-button>
|
|
6727
|
-
<ion-button fill="outline" (click)="cancelAction()">
|
|
6728
|
-
{{ cancelButton$ | async }}
|
|
6729
|
-
</ion-button>
|
|
6730
|
-
</div>
|
|
6731
|
-
|
|
6732
|
-
<!-- Status message using global content -->
|
|
6733
|
-
<div *ngIf="actionPerformed" class="status-message">
|
|
6734
|
-
<val-text
|
|
6735
|
-
[props]="{ content: successText$ | async, color: 'success', size: 'small', bold: false }"
|
|
6736
|
-
></val-text>
|
|
6737
|
-
</div>
|
|
6738
|
-
</div>
|
|
6739
|
-
</div>
|
|
6740
|
-
|
|
6741
|
-
<!-- Demo of synchronous global content access -->
|
|
6742
|
-
<div class="section">
|
|
6743
|
-
<h3>Synchronous Access Example</h3>
|
|
6744
|
-
<p>
|
|
6745
|
-
OK button text (sync): <strong>{{ getOkTextSync() }}</strong>
|
|
6746
|
-
</p>
|
|
6747
|
-
<p>
|
|
6748
|
-
Cancel button text (sync): <strong>{{ getCancelTextSync() }}</strong>
|
|
6749
|
-
</p>
|
|
6750
|
-
</div>
|
|
6751
|
-
</ion-card-content>
|
|
6752
|
-
</ion-card>
|
|
6753
|
-
`, styles: [".language-section{display:flex;align-items:center;gap:8px;margin-bottom:16px}.divider{height:1px;background-color:var(--ion-color-light);margin:16px 0}.section{margin-bottom:16px}.section h3{margin:0 0 12px;color:var(--ion-color-primary)}.button-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.state-messages{display:flex;flex-direction:column;gap:8px}.state-item{padding:8px;border-radius:4px;background-color:var(--ion-color-light-shade)}.state-item.loading{background-color:var(--ion-color-medium-tint)}.state-item.success{background-color:var(--ion-color-success-tint)}.state-item.error{background-color:var(--ion-color-danger-tint)}.state-item.warning{background-color:var(--ion-color-warning-tint)}.state-item.info{background-color:var(--ion-color-primary-tint)}.example-form{margin-top:12px}.confirmation-examples{padding:12px;background-color:var(--ion-color-light-tint);border-radius:8px}.mixed-content{padding:12px;background-color:var(--ion-color-light-shade);border-radius:8px}.action-buttons{display:flex;gap:8px;margin:12px 0}.status-message{padding:8px;background-color:var(--ion-color-success-tint);border-radius:4px;margin-top:8px}\n"] }]
|
|
6754
|
-
}] });
|
|
6755
|
-
|
|
6756
|
-
/**
|
|
6757
|
-
* Reactive Content Example Component
|
|
6758
|
-
*
|
|
6759
|
-
* This component demonstrates various ways to use the new reactive content system with ContentService:
|
|
6760
|
-
* 1. Direct reactive content binding with val-text
|
|
6761
|
-
* 2. Content with interpolation (dynamic values)
|
|
6762
|
-
* 3. Multiple content keys retrieved at once
|
|
6763
|
-
* 4. Using the scoped content helper (forComponent)
|
|
6764
|
-
* 5. Language switching functionality
|
|
6765
|
-
*
|
|
6766
|
-
* The component automatically updates all text when the language changes,
|
|
6767
|
-
* using the simplified ContentService API that eliminates the need for manual
|
|
6768
|
-
* LangService injection and utility function imports.
|
|
6769
|
-
*
|
|
6770
|
-
* @example Usage patterns:
|
|
6771
|
-
* ```typescript
|
|
6772
|
-
* // Simple injection
|
|
6773
|
-
* content = inject(ContentService);
|
|
6774
|
-
*
|
|
6775
|
-
* // Scoped helper for this component
|
|
6776
|
-
* componentContent = this.content.forComponent('MyComponent');
|
|
6777
|
-
*
|
|
6778
|
-
* // Get reactive content
|
|
6779
|
-
* title$ = this.componentContent.get('title');
|
|
6780
|
-
* multipleTexts$ = this.componentContent.getMultiple(['title', 'subtitle']);
|
|
6781
|
-
* ```
|
|
6782
|
-
* without requiring manual subscriptions or change detection triggers.
|
|
6783
|
-
*/
|
|
6784
|
-
class ReactiveContentExampleComponent {
|
|
6785
|
-
constructor() {
|
|
6786
|
-
// Use the new ContentService with inject
|
|
6787
|
-
this.content = inject(ContentService);
|
|
6788
|
-
// Create a scoped content helper for this component
|
|
6789
|
-
this.componentContent = this.content.forComponent('ReactiveContentExample');
|
|
6790
|
-
// State for confirmation dialog
|
|
6791
|
-
this.showConfirmation = false;
|
|
6792
|
-
// Example 1: Simple reactive content props for val-text
|
|
6793
|
-
this.titleProps = {
|
|
6794
|
-
contentKey: 'title',
|
|
6795
|
-
contentClass: 'ReactiveContentExample',
|
|
6796
|
-
contentFallback: 'Default Title',
|
|
6797
|
-
color: 'primary',
|
|
6798
|
-
size: 'xlarge',
|
|
6799
|
-
bold: true,
|
|
6547
|
+
this.mixedLinksProps = {
|
|
6548
|
+
content: 'Consulta la documentación en https://ionicframework.com/docs, revisa el código en https://github.com/ionic-team/ionic-framework, o navega a /components/buttons para ejemplos internos.',
|
|
6549
|
+
size: 'medium',
|
|
6550
|
+
color: 'dark',
|
|
6551
|
+
bold: false,
|
|
6552
|
+
processLinks: true,
|
|
6553
|
+
linkConfig: {
|
|
6554
|
+
openExternalInNewTab: true,
|
|
6555
|
+
openInternalInNewTab: false,
|
|
6556
|
+
linkClass: 'processed-link',
|
|
6557
|
+
externalLinkClass: 'external-link',
|
|
6558
|
+
internalLinkClass: 'internal-link',
|
|
6559
|
+
},
|
|
6800
6560
|
};
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
|
|
6804
|
-
|
|
6805
|
-
contentInterpolation: { name: 'Developer', count: 3 },
|
|
6806
|
-
contentFallback: 'Hello Developer',
|
|
6807
|
-
color: 'secondary',
|
|
6808
|
-
size: 'large',
|
|
6561
|
+
this.sameTabLinksProps = {
|
|
6562
|
+
content: 'Estos enlaces no abren en nueva pestaña: https://example.com y /home',
|
|
6563
|
+
size: 'medium',
|
|
6564
|
+
color: 'dark',
|
|
6809
6565
|
bold: false,
|
|
6566
|
+
processLinks: true,
|
|
6567
|
+
linkConfig: {
|
|
6568
|
+
openExternalInNewTab: false,
|
|
6569
|
+
openInternalInNewTab: false,
|
|
6570
|
+
linkClass: 'same-tab-link',
|
|
6571
|
+
externalLinkClass: 'external-same-tab',
|
|
6572
|
+
internalLinkClass: 'internal-same-tab',
|
|
6573
|
+
},
|
|
6810
6574
|
};
|
|
6811
6575
|
}
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
this.multipleContent$ = this.componentContent.getMultiple(['description', 'dynamicText']);
|
|
6817
|
-
// Button text reactive - using the new simplified API with options
|
|
6818
|
-
this.buttonText$ = this.componentContent.get('buttonText');
|
|
6819
|
-
// Global content observables using unified fromContent method
|
|
6820
|
-
this.saveButton$ = this.content.fromContent({ key: 'save' });
|
|
6821
|
-
this.cancelButton$ = this.content.fromContent({ key: 'cancel' });
|
|
6822
|
-
this.deleteButton$ = this.content.fromContent({ key: 'delete' });
|
|
6823
|
-
this.okButton$ = this.content.fromContent({ key: 'ok' });
|
|
6824
|
-
this.loadingText$ = this.content.fromContent({ key: 'loading' });
|
|
6825
|
-
// Global content with interpolation using unified method
|
|
6826
|
-
this.deleteConfirmationText$ = this.content.fromContent({
|
|
6827
|
-
key: 'deleteConfirmation',
|
|
6828
|
-
interpolation: { itemName: 'este elemento' },
|
|
6829
|
-
});
|
|
6830
|
-
// Example of synchronous global content access
|
|
6831
|
-
console.log('Global save text:', this.content.getText('save'));
|
|
6832
|
-
console.log('Global cancel text:', this.content.getGlobalText('cancel'));
|
|
6833
|
-
// Example of using new scoped helper with interpolation
|
|
6834
|
-
const greetingWithNewAPI$ = this.componentContent.get('greeting', {
|
|
6835
|
-
interpolation: { name: 'Developer', count: 3 },
|
|
6836
|
-
fallback: 'Hello!',
|
|
6837
|
-
});
|
|
6838
|
-
console.log('New unified API works!', greetingWithNewAPI$);
|
|
6839
|
-
}
|
|
6840
|
-
/**
|
|
6841
|
-
* Toggle between Spanish and English
|
|
6842
|
-
*/
|
|
6843
|
-
toggleLanguage() {
|
|
6844
|
-
const currentLang = this.content.currentLang;
|
|
6845
|
-
const newLang = currentLang === LangOption.ES ? LangOption.EN : LangOption.ES;
|
|
6846
|
-
this.content.setLang(newLang);
|
|
6847
|
-
}
|
|
6848
|
-
/**
|
|
6849
|
-
* Show delete confirmation dialog
|
|
6850
|
-
*/
|
|
6851
|
-
showDeleteConfirmation() {
|
|
6852
|
-
this.showConfirmation = true;
|
|
6853
|
-
}
|
|
6854
|
-
/**
|
|
6855
|
-
* Hide delete confirmation dialog
|
|
6856
|
-
*/
|
|
6857
|
-
hideDeleteConfirmation() {
|
|
6858
|
-
this.showConfirmation = false;
|
|
6859
|
-
}
|
|
6860
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReactiveContentExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6861
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReactiveContentExampleComponent, isStandalone: true, selector: "val-reactive-content-example", ngImport: i0, template: `
|
|
6862
|
-
<ion-card>
|
|
6863
|
-
<ion-card-header>
|
|
6864
|
-
<ion-card-title>
|
|
6865
|
-
<!-- Example 1: Direct reactive content using val-text -->
|
|
6866
|
-
<val-text [props]="titleProps"></val-text>
|
|
6867
|
-
</ion-card-title>
|
|
6868
|
-
</ion-card-header>
|
|
6576
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkProcessingExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6577
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LinkProcessingExampleComponent, isStandalone: true, selector: "val-link-processing-example", ngImport: i0, template: `
|
|
6578
|
+
<div class="link-examples">
|
|
6579
|
+
<h2>Ejemplos de Procesamiento de Enlaces</h2>
|
|
6869
6580
|
|
|
6870
|
-
<
|
|
6871
|
-
|
|
6872
|
-
<val-text [props]="
|
|
6873
|
-
|
|
6874
|
-
<div class="example-divider"></div>
|
|
6875
|
-
|
|
6876
|
-
<!-- Example 3: Multiple content keys -->
|
|
6877
|
-
<div *ngIf="multipleContent$ | async as content">
|
|
6878
|
-
<val-text
|
|
6879
|
-
[props]="{
|
|
6880
|
-
content: content['description'],
|
|
6881
|
-
color: 'medium',
|
|
6882
|
-
size: 'medium',
|
|
6883
|
-
bold: false,
|
|
6884
|
-
}"
|
|
6885
|
-
></val-text>
|
|
6886
|
-
|
|
6887
|
-
<br /><br />
|
|
6888
|
-
|
|
6889
|
-
<val-text
|
|
6890
|
-
[props]="{
|
|
6891
|
-
content: content['dynamicText'],
|
|
6892
|
-
color: 'primary',
|
|
6893
|
-
size: 'small',
|
|
6894
|
-
bold: true,
|
|
6895
|
-
}"
|
|
6896
|
-
></val-text>
|
|
6897
|
-
</div>
|
|
6898
|
-
|
|
6899
|
-
<div class="example-divider"></div>
|
|
6900
|
-
|
|
6901
|
-
<!-- Example 4: Using content helper -->
|
|
6902
|
-
<val-text
|
|
6903
|
-
[props]="{
|
|
6904
|
-
content: componentContent.getText('welcomeMessage'),
|
|
6905
|
-
color: 'success',
|
|
6906
|
-
size: 'large',
|
|
6907
|
-
bold: true,
|
|
6908
|
-
}"
|
|
6909
|
-
></val-text>
|
|
6910
|
-
|
|
6911
|
-
<div class="example-divider"></div>
|
|
6912
|
-
|
|
6913
|
-
<!-- Example 5: Global content - buttons using global text -->
|
|
6914
|
-
<div class="button-group">
|
|
6915
|
-
<ion-button [fill]="'solid'" [color]="'primary'">
|
|
6916
|
-
{{ saveButton$ | async }}
|
|
6917
|
-
</ion-button>
|
|
6918
|
-
<ion-button [fill]="'outline'" [color]="'secondary'">
|
|
6919
|
-
{{ cancelButton$ | async }}
|
|
6920
|
-
</ion-button>
|
|
6921
|
-
<ion-button [fill]="'outline'" [color]="'danger'" (click)="showDeleteConfirmation()">
|
|
6922
|
-
{{ deleteButton$ | async }}
|
|
6923
|
-
</ion-button>
|
|
6924
|
-
</div>
|
|
6925
|
-
|
|
6926
|
-
<div class="example-divider"></div>
|
|
6927
|
-
|
|
6928
|
-
<!-- Example 6: Global content with interpolation -->
|
|
6929
|
-
<div *ngIf="showConfirmation" class="confirmation-message">
|
|
6930
|
-
<val-text
|
|
6931
|
-
[props]="{
|
|
6932
|
-
content: deleteConfirmationText$ | async,
|
|
6933
|
-
color: 'warning',
|
|
6934
|
-
size: 'medium',
|
|
6935
|
-
bold: true,
|
|
6936
|
-
}"
|
|
6937
|
-
></val-text>
|
|
6938
|
-
<br /><br />
|
|
6939
|
-
<ion-button [fill]="'solid'" [color]="'danger'" size="small" (click)="hideDeleteConfirmation()">
|
|
6940
|
-
{{ okButton$ | async }}
|
|
6941
|
-
</ion-button>
|
|
6942
|
-
<ion-button [fill]="'clear'" [color]="'medium'" size="small" (click)="hideDeleteConfirmation()">
|
|
6943
|
-
{{ cancelButton$ | async }}
|
|
6944
|
-
</ion-button>
|
|
6945
|
-
</div>
|
|
6581
|
+
<div class="example-section">
|
|
6582
|
+
<h3>Texto sin procesamiento de enlaces:</h3>
|
|
6583
|
+
<val-text [props]="basicTextProps"></val-text>
|
|
6584
|
+
</div>
|
|
6946
6585
|
|
|
6947
|
-
|
|
6586
|
+
<div class="example-section">
|
|
6587
|
+
<h3>Texto con procesamiento básico de enlaces:</h3>
|
|
6588
|
+
<val-text [props]="basicLinksProps"></val-text>
|
|
6589
|
+
</div>
|
|
6948
6590
|
|
|
6949
|
-
|
|
6950
|
-
<
|
|
6951
|
-
|
|
6952
|
-
|
|
6591
|
+
<div class="example-section">
|
|
6592
|
+
<h3>Enlaces con configuración personalizada:</h3>
|
|
6593
|
+
<val-text [props]="customLinksProps"></val-text>
|
|
6594
|
+
</div>
|
|
6953
6595
|
|
|
6954
|
-
|
|
6955
|
-
<
|
|
6956
|
-
|
|
6957
|
-
|
|
6958
|
-
<strong>{{ currentLanguage$ | async }}</strong>
|
|
6959
|
-
</p>
|
|
6596
|
+
<div class="example-section">
|
|
6597
|
+
<h3>Enlaces internos y externos mezclados:</h3>
|
|
6598
|
+
<val-text [props]="mixedLinksProps"></val-text>
|
|
6599
|
+
</div>
|
|
6960
6600
|
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
size: 'small',
|
|
6968
|
-
bold: false,
|
|
6969
|
-
}"
|
|
6970
|
-
></val-text>
|
|
6971
|
-
</p>
|
|
6972
|
-
</div>
|
|
6973
|
-
</ion-card-content>
|
|
6974
|
-
</ion-card>
|
|
6975
|
-
`, isInline: true, styles: [":host{display:block;margin:16px}.example-divider{margin:24px 0;border-bottom:1px solid var(--ion-color-light);padding-bottom:16px}.language-info{margin-top:24px;padding:16px;background-color:var(--ion-color-light);border-radius:8px;text-align:center}.language-info p{margin:0;color:var(--ion-color-dark)}.language-info strong{color:var(--ion-color-primary);text-transform:uppercase}ion-card{margin:0;border-radius:12px;box-shadow:0 4px 16px #0000001a}ion-card-header{padding-bottom:8px}ion-card-title{font-size:1.5rem;font-weight:600}ion-card-content{padding-top:16px}ion-button{margin:16px 0;--border-radius: 8px}ion-card-content{padding:20px}.language-info{margin-top:16px;padding:12px;background-color:var(--ion-color-light);border-radius:8px;text-align:center}.content-section{margin:16px 0;padding:12px;border:1px solid var(--ion-color-light);border-radius:8px}.content-section h3{margin-top:0;color:var(--ion-color-primary)}.example-divider{margin:24px 0;height:1px;background-color:var(--ion-color-light)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: 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: TextComponent, selector: "val-text", inputs: ["props"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6601
|
+
<div class="example-section">
|
|
6602
|
+
<h3>Enlaces sin abrir en nueva pestaña:</h3>
|
|
6603
|
+
<val-text [props]="sameTabLinksProps"></val-text>
|
|
6604
|
+
</div>
|
|
6605
|
+
</div>
|
|
6606
|
+
`, isInline: true, styles: [".link-examples{padding:20px;max-width:800px}.example-section{margin-bottom:24px;padding:16px;border:1px solid var(--ion-color-light, #f4f5f8);border-radius:8px;background:var(--ion-color-light-tint, #f5f6f9)}h2{color:var(--ion-color-primary, #3880ff);margin-bottom:20px}h3{color:var(--ion-color-dark, #222428);margin-bottom:10px;font-size:16px}\n"], dependencies: [{ kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
6976
6607
|
}
|
|
6977
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
6608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkProcessingExampleComponent, decorators: [{
|
|
6978
6609
|
type: Component,
|
|
6979
|
-
args: [{ selector: 'val-
|
|
6980
|
-
<
|
|
6981
|
-
<
|
|
6982
|
-
<ion-card-title>
|
|
6983
|
-
<!-- Example 1: Direct reactive content using val-text -->
|
|
6984
|
-
<val-text [props]="titleProps"></val-text>
|
|
6985
|
-
</ion-card-title>
|
|
6986
|
-
</ion-card-header>
|
|
6987
|
-
|
|
6988
|
-
<ion-card-content>
|
|
6989
|
-
<!-- Example 2: Reactive content with interpolation -->
|
|
6990
|
-
<val-text [props]="greetingProps"></val-text>
|
|
6991
|
-
|
|
6992
|
-
<div class="example-divider"></div>
|
|
6993
|
-
|
|
6994
|
-
<!-- Example 3: Multiple content keys -->
|
|
6995
|
-
<div *ngIf="multipleContent$ | async as content">
|
|
6996
|
-
<val-text
|
|
6997
|
-
[props]="{
|
|
6998
|
-
content: content['description'],
|
|
6999
|
-
color: 'medium',
|
|
7000
|
-
size: 'medium',
|
|
7001
|
-
bold: false,
|
|
7002
|
-
}"
|
|
7003
|
-
></val-text>
|
|
7004
|
-
|
|
7005
|
-
<br /><br />
|
|
7006
|
-
|
|
7007
|
-
<val-text
|
|
7008
|
-
[props]="{
|
|
7009
|
-
content: content['dynamicText'],
|
|
7010
|
-
color: 'primary',
|
|
7011
|
-
size: 'small',
|
|
7012
|
-
bold: true,
|
|
7013
|
-
}"
|
|
7014
|
-
></val-text>
|
|
7015
|
-
</div>
|
|
7016
|
-
|
|
7017
|
-
<div class="example-divider"></div>
|
|
7018
|
-
|
|
7019
|
-
<!-- Example 4: Using content helper -->
|
|
7020
|
-
<val-text
|
|
7021
|
-
[props]="{
|
|
7022
|
-
content: componentContent.getText('welcomeMessage'),
|
|
7023
|
-
color: 'success',
|
|
7024
|
-
size: 'large',
|
|
7025
|
-
bold: true,
|
|
7026
|
-
}"
|
|
7027
|
-
></val-text>
|
|
7028
|
-
|
|
7029
|
-
<div class="example-divider"></div>
|
|
7030
|
-
|
|
7031
|
-
<!-- Example 5: Global content - buttons using global text -->
|
|
7032
|
-
<div class="button-group">
|
|
7033
|
-
<ion-button [fill]="'solid'" [color]="'primary'">
|
|
7034
|
-
{{ saveButton$ | async }}
|
|
7035
|
-
</ion-button>
|
|
7036
|
-
<ion-button [fill]="'outline'" [color]="'secondary'">
|
|
7037
|
-
{{ cancelButton$ | async }}
|
|
7038
|
-
</ion-button>
|
|
7039
|
-
<ion-button [fill]="'outline'" [color]="'danger'" (click)="showDeleteConfirmation()">
|
|
7040
|
-
{{ deleteButton$ | async }}
|
|
7041
|
-
</ion-button>
|
|
7042
|
-
</div>
|
|
6610
|
+
args: [{ selector: 'val-link-processing-example', standalone: true, imports: [TextComponent], template: `
|
|
6611
|
+
<div class="link-examples">
|
|
6612
|
+
<h2>Ejemplos de Procesamiento de Enlaces</h2>
|
|
7043
6613
|
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
<val-text
|
|
7049
|
-
[props]="{
|
|
7050
|
-
content: deleteConfirmationText$ | async,
|
|
7051
|
-
color: 'warning',
|
|
7052
|
-
size: 'medium',
|
|
7053
|
-
bold: true,
|
|
7054
|
-
}"
|
|
7055
|
-
></val-text>
|
|
7056
|
-
<br /><br />
|
|
7057
|
-
<ion-button [fill]="'solid'" [color]="'danger'" size="small" (click)="hideDeleteConfirmation()">
|
|
7058
|
-
{{ okButton$ | async }}
|
|
7059
|
-
</ion-button>
|
|
7060
|
-
<ion-button [fill]="'clear'" [color]="'medium'" size="small" (click)="hideDeleteConfirmation()">
|
|
7061
|
-
{{ cancelButton$ | async }}
|
|
7062
|
-
</ion-button>
|
|
7063
|
-
</div>
|
|
7064
|
-
|
|
7065
|
-
<div class="example-divider"></div>
|
|
7066
|
-
|
|
7067
|
-
<!-- Example 7: Language switching button -->
|
|
7068
|
-
<ion-button expand="block" fill="outline" color="tertiary" (click)="toggleLanguage()">
|
|
7069
|
-
{{ buttonText$ | async }}
|
|
7070
|
-
</ion-button>
|
|
6614
|
+
<div class="example-section">
|
|
6615
|
+
<h3>Texto sin procesamiento de enlaces:</h3>
|
|
6616
|
+
<val-text [props]="basicTextProps"></val-text>
|
|
6617
|
+
</div>
|
|
7071
6618
|
|
|
7072
|
-
|
|
7073
|
-
<
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
<strong>{{ currentLanguage$ | async }}</strong>
|
|
7077
|
-
</p>
|
|
6619
|
+
<div class="example-section">
|
|
6620
|
+
<h3>Texto con procesamiento básico de enlaces:</h3>
|
|
6621
|
+
<val-text [props]="basicLinksProps"></val-text>
|
|
6622
|
+
</div>
|
|
7078
6623
|
|
|
7079
|
-
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
content: loadingText$ | async,
|
|
7084
|
-
color: 'medium',
|
|
7085
|
-
size: 'small',
|
|
7086
|
-
bold: false,
|
|
7087
|
-
}"
|
|
7088
|
-
></val-text>
|
|
7089
|
-
</p>
|
|
7090
|
-
</div>
|
|
7091
|
-
</ion-card-content>
|
|
7092
|
-
</ion-card>
|
|
7093
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;margin:16px}.example-divider{margin:24px 0;border-bottom:1px solid var(--ion-color-light);padding-bottom:16px}.language-info{margin-top:24px;padding:16px;background-color:var(--ion-color-light);border-radius:8px;text-align:center}.language-info p{margin:0;color:var(--ion-color-dark)}.language-info strong{color:var(--ion-color-primary);text-transform:uppercase}ion-card{margin:0;border-radius:12px;box-shadow:0 4px 16px #0000001a}ion-card-header{padding-bottom:8px}ion-card-title{font-size:1.5rem;font-weight:600}ion-card-content{padding-top:16px}ion-button{margin:16px 0;--border-radius: 8px}ion-card-content{padding:20px}.language-info{margin-top:16px;padding:12px;background-color:var(--ion-color-light);border-radius:8px;text-align:center}.content-section{margin:16px 0;padding:12px;border:1px solid var(--ion-color-light);border-radius:8px}.content-section h3{margin-top:0;color:var(--ion-color-primary)}.example-divider{margin:24px 0;height:1px;background-color:var(--ion-color-light)}\n"] }]
|
|
7094
|
-
}], ctorParameters: () => [] });
|
|
6624
|
+
<div class="example-section">
|
|
6625
|
+
<h3>Enlaces con configuración personalizada:</h3>
|
|
6626
|
+
<val-text [props]="customLinksProps"></val-text>
|
|
6627
|
+
</div>
|
|
7095
6628
|
|
|
7096
|
-
|
|
7097
|
-
|
|
7098
|
-
|
|
7099
|
-
|
|
7100
|
-
* global content to create a comprehensive content management system.
|
|
7101
|
-
*/
|
|
7102
|
-
const globalContentExampleData = {
|
|
7103
|
-
title: {
|
|
7104
|
-
es: 'Ejemplo de Contenido Global',
|
|
7105
|
-
en: 'Global Content Example',
|
|
7106
|
-
},
|
|
7107
|
-
languageLabel: {
|
|
7108
|
-
es: 'Idioma:',
|
|
7109
|
-
en: 'Language:',
|
|
7110
|
-
},
|
|
7111
|
-
description: {
|
|
7112
|
-
es: 'Este ejemplo demuestra cómo usar contenido global y específico del componente de manera conjunta.',
|
|
7113
|
-
en: 'This example shows how to use global and component-specific content together.',
|
|
7114
|
-
},
|
|
7115
|
-
};
|
|
7116
|
-
var GlobalContentExample = new TextContent(globalContentExampleData);
|
|
6629
|
+
<div class="example-section">
|
|
6630
|
+
<h3>Enlaces internos y externos mezclados:</h3>
|
|
6631
|
+
<val-text [props]="mixedLinksProps"></val-text>
|
|
6632
|
+
</div>
|
|
7117
6633
|
|
|
7118
|
-
|
|
7119
|
-
|
|
7120
|
-
|
|
7121
|
-
|
|
7122
|
-
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
const exampleComponentContent = {
|
|
7126
|
-
es: {
|
|
7127
|
-
title: 'Ejemplo de Contenido Reactivo',
|
|
7128
|
-
subtitle: 'Este es un subtítulo que cambia automáticamente',
|
|
7129
|
-
description: 'Esta descripción se actualiza cuando cambias el idioma sin necesidad de recargar la página.',
|
|
7130
|
-
greeting: 'Hola {name}, tienes {count} mensajes nuevos',
|
|
7131
|
-
welcomeMessage: 'Bienvenido a la biblioteca de componentes Valtech',
|
|
7132
|
-
dynamicText: 'Este texto se actualiza automáticamente cuando cambias el idioma',
|
|
7133
|
-
buttonText: 'Cambiar Idioma',
|
|
7134
|
-
loadingText: 'Cargando...',
|
|
7135
|
-
errorMessage: 'Error: No se pudo cargar el contenido',
|
|
7136
|
-
successMessage: 'Contenido cargado exitosamente',
|
|
7137
|
-
confirmDialog: '¿Estás seguro de que quieres continuar?',
|
|
7138
|
-
cancelButton: 'Cancelar',
|
|
7139
|
-
acceptButton: 'Aceptar',
|
|
7140
|
-
},
|
|
7141
|
-
en: {
|
|
7142
|
-
title: 'Reactive Content Example',
|
|
7143
|
-
subtitle: 'This is a subtitle that changes automatically',
|
|
7144
|
-
description: 'This description updates when you change the language without needing to reload the page.',
|
|
7145
|
-
greeting: 'Hello {name}, you have {count} new messages',
|
|
7146
|
-
welcomeMessage: 'Welcome to the Valtech component library',
|
|
7147
|
-
dynamicText: 'This text updates automatically when you change the language',
|
|
7148
|
-
buttonText: 'Change Language',
|
|
7149
|
-
loadingText: 'Loading...',
|
|
7150
|
-
errorMessage: 'Error: Could not load content',
|
|
7151
|
-
successMessage: 'Content loaded successfully',
|
|
7152
|
-
confirmDialog: 'Are you sure you want to continue?',
|
|
7153
|
-
cancelButton: 'Cancel',
|
|
7154
|
-
acceptButton: 'Accept',
|
|
7155
|
-
},
|
|
7156
|
-
};
|
|
7157
|
-
// Export the content as a TextContent instance
|
|
7158
|
-
var ReactiveContentExample = new TextContent(exampleComponentContent);
|
|
6634
|
+
<div class="example-section">
|
|
6635
|
+
<h3>Enlaces sin abrir en nueva pestaña:</h3>
|
|
6636
|
+
<val-text [props]="sameTabLinksProps"></val-text>
|
|
6637
|
+
</div>
|
|
6638
|
+
</div>
|
|
6639
|
+
`, styles: [".link-examples{padding:20px;max-width:800px}.example-section{margin-bottom:24px;padding:16px;border:1px solid var(--ion-color-light, #f4f5f8);border-radius:8px;background:var(--ion-color-light-tint, #f5f6f9)}h2{color:var(--ion-color-primary, #3880ff);margin-bottom:20px}h3{color:var(--ion-color-dark, #222428);margin-bottom:10px;font-size:16px}\n"] }]
|
|
6640
|
+
}] });
|
|
7159
6641
|
|
|
7160
|
-
const text
|
|
6642
|
+
const text = {
|
|
7161
6643
|
es: {
|
|
7162
6644
|
spanish: 'Español',
|
|
7163
6645
|
english: 'Inglés',
|
|
@@ -7167,21 +6649,7 @@ const text$1 = {
|
|
|
7167
6649
|
english: 'English',
|
|
7168
6650
|
},
|
|
7169
6651
|
};
|
|
7170
|
-
var LangSettings = new TextContent(text
|
|
7171
|
-
|
|
7172
|
-
const text = {
|
|
7173
|
-
es: {
|
|
7174
|
-
light: 'Siempre claro',
|
|
7175
|
-
dark: 'Siempre oscuro',
|
|
7176
|
-
auto: 'Automático',
|
|
7177
|
-
},
|
|
7178
|
-
en: {
|
|
7179
|
-
light: 'Always light',
|
|
7180
|
-
dark: 'Always dark',
|
|
7181
|
-
auto: 'System settings',
|
|
7182
|
-
},
|
|
7183
|
-
};
|
|
7184
|
-
var ThemeSettings = new TextContent(text);
|
|
6652
|
+
var LangSettings = new TextContent(text);
|
|
7185
6653
|
|
|
7186
6654
|
/**
|
|
7187
6655
|
* Global content that can be used across all components.
|
|
@@ -7220,9 +6688,6 @@ const globalContentData = {
|
|
|
7220
6688
|
areYouSure: '¿Estás seguro?',
|
|
7221
6689
|
deleteConfirmation: '¿Estás seguro de que deseas eliminar {itemName}?',
|
|
7222
6690
|
unsavedChanges: 'Tienes cambios sin guardar. ¿Deseas continuar?',
|
|
7223
|
-
// Common form labels
|
|
7224
|
-
required: 'Requerido',
|
|
7225
|
-
optional: 'Opcional',
|
|
7226
6691
|
// Common placeholders
|
|
7227
6692
|
searchPlaceholder: 'Buscar...',
|
|
7228
6693
|
},
|
|
@@ -7257,9 +6722,6 @@ const globalContentData = {
|
|
|
7257
6722
|
areYouSure: 'Are you sure?',
|
|
7258
6723
|
deleteConfirmation: 'Are you sure you want to delete {itemName}?',
|
|
7259
6724
|
unsavedChanges: 'You have unsaved changes. Do you want to continue?',
|
|
7260
|
-
// Common form labels
|
|
7261
|
-
required: 'Required',
|
|
7262
|
-
optional: 'Optional',
|
|
7263
6725
|
// Common placeholders
|
|
7264
6726
|
searchPlaceholder: 'Search...',
|
|
7265
6727
|
},
|
|
@@ -7268,9 +6730,6 @@ const GlobalContent = new TextContent(globalContentData);
|
|
|
7268
6730
|
const content = {
|
|
7269
6731
|
_global: GlobalContent,
|
|
7270
6732
|
LangSettings,
|
|
7271
|
-
ThemeSettings,
|
|
7272
|
-
ReactiveContentExample,
|
|
7273
|
-
GlobalContentExample,
|
|
7274
6733
|
};
|
|
7275
6734
|
|
|
7276
6735
|
/**
|
|
@@ -7328,5 +6787,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
7328
6787
|
* Generated bundle index. Do not edit.
|
|
7329
6788
|
*/
|
|
7330
6789
|
|
|
7331
|
-
export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentStates, ContentLoaderComponent, ContentService, CustomContentDemoComponent, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, GlobalContent,
|
|
6790
|
+
export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentStates, ContentLoaderComponent, ContentService, CustomContentDemoComponent, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, GlobalContent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InputType, ItemListComponent, LangOption, LangService, LayeredCardComponent, LayoutComponent, LinkComponent, LinkProcessingExampleComponent, LinkProcessorService, LinksCakeComponent, LocalStorageService, MOTION, NavigationService, NoContentComponent, NotesBoxComponent, NumberInputComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PasswordInputComponent, PinInputComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProgressBarComponent, ProgressStatusComponent, PrompterComponent, RadioInputComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SelectSearchComponent, SimpleComponent, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToastService, ToolbarActionType, ToolbarComponent, ValtechConfigService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, content, createContentHelper, createTextProps, fromContent, fromContentWithInterpolation, fromMultipleContent, globalContentData, goToTop, interpolateContent, isAtEnd, maxLength, replaceSpecialChars, resolveColor, resolveInputDefaultValue };
|
|
7332
6791
|
//# sourceMappingURL=valtech-components.mjs.map
|