valtech-components 2.0.940 → 2.0.942
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/member-card/member-card.component.mjs +102 -0
- package/esm2022/lib/components/molecules/member-card/types.mjs +5 -0
- package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +6 -3
- package/esm2022/lib/components/organisms/attachment-uploader/types.mjs +1 -1
- package/esm2022/lib/components/organisms/form/form.component.mjs +51 -6
- package/esm2022/lib/components/types.mjs +2 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/valtech-components.mjs +156 -9
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/member-card/member-card.component.d.ts +25 -0
- package/lib/components/molecules/member-card/types.d.ts +19 -0
- package/lib/components/organisms/attachment-uploader/types.d.ts +2 -0
- package/lib/components/organisms/form/form.component.d.ts +10 -0
- package/lib/components/types.d.ts +4 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
|
|
|
54
54
|
* Current version of valtech-components.
|
|
55
55
|
* This is automatically updated during the publish process.
|
|
56
56
|
*/
|
|
57
|
-
const VERSION = '2.0.
|
|
57
|
+
const VERSION = '2.0.942';
|
|
58
58
|
|
|
59
59
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
60
60
|
let isRefreshing = false;
|
|
@@ -10006,6 +10006,7 @@ var InputType;
|
|
|
10006
10006
|
InputType[InputType["CURRENCY"] = 21] = "CURRENCY";
|
|
10007
10007
|
InputType[InputType["CHECKBOX_RADIO"] = 22] = "CHECKBOX_RADIO";
|
|
10008
10008
|
InputType[InputType["HANDLE"] = 23] = "HANDLE";
|
|
10009
|
+
InputType[InputType["ATTACHMENT"] = 24] = "ATTACHMENT";
|
|
10009
10010
|
})(InputType || (InputType = {}));
|
|
10010
10011
|
/**
|
|
10011
10012
|
* Possible action types for a toolbar.
|
|
@@ -27361,6 +27362,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
27361
27362
|
type: Output
|
|
27362
27363
|
}] } });
|
|
27363
27364
|
|
|
27365
|
+
const MEMBER_CARD_DEFAULTS = {
|
|
27366
|
+
showAction: true,
|
|
27367
|
+
actionIcon: 'eye-outline',
|
|
27368
|
+
};
|
|
27369
|
+
|
|
27370
|
+
class MemberCardComponent {
|
|
27371
|
+
constructor() {
|
|
27372
|
+
this.props = input({});
|
|
27373
|
+
/** Emitted when the trailing action button is clicked. */
|
|
27374
|
+
this.onAction = new EventEmitter();
|
|
27375
|
+
this.config = computed(() => ({
|
|
27376
|
+
...MEMBER_CARD_DEFAULTS,
|
|
27377
|
+
...this.props(),
|
|
27378
|
+
}));
|
|
27379
|
+
this.displayName = computed(() => {
|
|
27380
|
+
const c = this.config();
|
|
27381
|
+
return c.name || c.handle || c.email || '—';
|
|
27382
|
+
});
|
|
27383
|
+
this.subtitle = computed(() => {
|
|
27384
|
+
const c = this.config();
|
|
27385
|
+
if (c.handle)
|
|
27386
|
+
return '@' + c.handle;
|
|
27387
|
+
return c.email ?? '';
|
|
27388
|
+
});
|
|
27389
|
+
addIcons({ eyeOutline });
|
|
27390
|
+
}
|
|
27391
|
+
emitAction() {
|
|
27392
|
+
this.onAction.emit(this.config().id);
|
|
27393
|
+
}
|
|
27394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MemberCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27395
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MemberCardComponent, isStandalone: true, selector: "val-member-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onAction: "onAction" }, ngImport: i0, template: `
|
|
27396
|
+
<div class="member-card">
|
|
27397
|
+
<val-user-avatar
|
|
27398
|
+
[props]="{
|
|
27399
|
+
name: config().name,
|
|
27400
|
+
avatarUrl: config().avatarUrl,
|
|
27401
|
+
email: config().email,
|
|
27402
|
+
size: 'medium',
|
|
27403
|
+
}"
|
|
27404
|
+
/>
|
|
27405
|
+
<div class="member-card__body">
|
|
27406
|
+
<span class="member-card__name">{{ displayName() }}</span>
|
|
27407
|
+
@if (subtitle()) {
|
|
27408
|
+
<span class="member-card__sub">{{ subtitle() }}</span>
|
|
27409
|
+
}
|
|
27410
|
+
@if (config().roleLabel) {
|
|
27411
|
+
<span class="member-card__role">{{ config().roleLabel }}</span>
|
|
27412
|
+
}
|
|
27413
|
+
</div>
|
|
27414
|
+
@if (config().showAction) {
|
|
27415
|
+
<button
|
|
27416
|
+
type="button"
|
|
27417
|
+
class="member-card__action"
|
|
27418
|
+
[attr.aria-label]="config().actionAriaLabel"
|
|
27419
|
+
(click)="emitAction()"
|
|
27420
|
+
>
|
|
27421
|
+
<ion-icon [name]="config().actionIcon" />
|
|
27422
|
+
</button>
|
|
27423
|
+
}
|
|
27424
|
+
</div>
|
|
27425
|
+
`, isInline: true, styles: [":host{display:block}.member-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8)}:host-context(body.dark) .member-card,:host-context(html.ion-palette-dark) .member-card,:host-context([data-theme=dark]) .member-card{background:#ffffff0d}.member-card__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.member-card__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-card__sub{font-size:.78rem;color:rgba(var(--ion-color-dark-rgb),.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-card__role{margin-top:4px;align-self:flex-start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:20px;background:color-mix(in srgb,var(--ion-color-primary) 12%,transparent);color:var(--ion-color-primary)}.member-card__action{border:none;background:none;cursor:pointer;font-size:1.35rem;line-height:1;color:var(--ion-color-dark);padding:6px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.member-card__action:hover{background:rgba(var(--ion-color-dark-rgb),.08)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
27426
|
+
}
|
|
27427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MemberCardComponent, decorators: [{
|
|
27428
|
+
type: Component,
|
|
27429
|
+
args: [{ selector: 'val-member-card', standalone: true, imports: [CommonModule, IonIcon, UserAvatarComponent], template: `
|
|
27430
|
+
<div class="member-card">
|
|
27431
|
+
<val-user-avatar
|
|
27432
|
+
[props]="{
|
|
27433
|
+
name: config().name,
|
|
27434
|
+
avatarUrl: config().avatarUrl,
|
|
27435
|
+
email: config().email,
|
|
27436
|
+
size: 'medium',
|
|
27437
|
+
}"
|
|
27438
|
+
/>
|
|
27439
|
+
<div class="member-card__body">
|
|
27440
|
+
<span class="member-card__name">{{ displayName() }}</span>
|
|
27441
|
+
@if (subtitle()) {
|
|
27442
|
+
<span class="member-card__sub">{{ subtitle() }}</span>
|
|
27443
|
+
}
|
|
27444
|
+
@if (config().roleLabel) {
|
|
27445
|
+
<span class="member-card__role">{{ config().roleLabel }}</span>
|
|
27446
|
+
}
|
|
27447
|
+
</div>
|
|
27448
|
+
@if (config().showAction) {
|
|
27449
|
+
<button
|
|
27450
|
+
type="button"
|
|
27451
|
+
class="member-card__action"
|
|
27452
|
+
[attr.aria-label]="config().actionAriaLabel"
|
|
27453
|
+
(click)="emitAction()"
|
|
27454
|
+
>
|
|
27455
|
+
<ion-icon [name]="config().actionIcon" />
|
|
27456
|
+
</button>
|
|
27457
|
+
}
|
|
27458
|
+
</div>
|
|
27459
|
+
`, styles: [":host{display:block}.member-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8)}:host-context(body.dark) .member-card,:host-context(html.ion-palette-dark) .member-card,:host-context([data-theme=dark]) .member-card{background:#ffffff0d}.member-card__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.member-card__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-card__sub{font-size:.78rem;color:rgba(var(--ion-color-dark-rgb),.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-card__role{margin-top:4px;align-self:flex-start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:20px;background:color-mix(in srgb,var(--ion-color-primary) 12%,transparent);color:var(--ion-color-primary)}.member-card__action{border:none;background:none;cursor:pointer;font-size:1.35rem;line-height:1;color:var(--ion-color-dark);padding:6px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.member-card__action:hover{background:rgba(var(--ion-color-dark-rgb),.08)}\n"] }]
|
|
27460
|
+
}], ctorParameters: () => [], propDecorators: { onAction: [{
|
|
27461
|
+
type: Output
|
|
27462
|
+
}] } });
|
|
27463
|
+
|
|
27364
27464
|
addIcons({ checkmarkCircle, closeCircle, alertCircle });
|
|
27365
27465
|
/**
|
|
27366
27466
|
* Username Input Component
|
|
@@ -28887,7 +28987,7 @@ class AttachmentUploaderComponent {
|
|
|
28887
28987
|
this.props = input({});
|
|
28888
28988
|
this.attachmentsChange = output();
|
|
28889
28989
|
this.i18n = inject(I18nService);
|
|
28890
|
-
this.feedbackService = inject(FeedbackService);
|
|
28990
|
+
this.feedbackService = inject(FeedbackService, { optional: true });
|
|
28891
28991
|
this.attachments = signal([]);
|
|
28892
28992
|
this.maxFiles = computed(() => this.props().maxFiles ?? 5);
|
|
28893
28993
|
this.accept = computed(() => this.props().accept ?? 'image/jpeg,image/png,image/webp,application/pdf');
|
|
@@ -28935,7 +29035,10 @@ class AttachmentUploaderComponent {
|
|
|
28935
29035
|
try {
|
|
28936
29036
|
const shouldCompress = this.props().compressImages !== false && file.type.startsWith('image/');
|
|
28937
29037
|
const fileToUpload = shouldCompress ? await this.compressImage(file) : file;
|
|
28938
|
-
const
|
|
29038
|
+
const uploadFn = this.props().uploadFn ?? this.feedbackService?.uploadAttachment.bind(this.feedbackService);
|
|
29039
|
+
if (!uploadFn)
|
|
29040
|
+
throw new Error('No upload function configured');
|
|
29041
|
+
const url = await uploadFn(fileToUpload);
|
|
28939
29042
|
this.attachments.update(list => list.map(a => (a.id === id ? { ...a, status: 'ready', url } : a)));
|
|
28940
29043
|
}
|
|
28941
29044
|
catch {
|
|
@@ -29864,6 +29967,7 @@ class FormComponent {
|
|
|
29864
29967
|
this.onInvalid = new EventEmitter();
|
|
29865
29968
|
this.onSelectChange = new EventEmitter();
|
|
29866
29969
|
this.types = InputType;
|
|
29970
|
+
this.states = ComponentStates;
|
|
29867
29971
|
this.subscriptions = [];
|
|
29868
29972
|
this.actionsCache = [];
|
|
29869
29973
|
// Memo de getFieldProp/getUsernameProp por referencia de field — evita
|
|
@@ -29874,6 +29978,9 @@ class FormComponent {
|
|
|
29874
29978
|
this.usernamePropMemo = new WeakMap();
|
|
29875
29979
|
this.textareaPropMemo = new WeakMap();
|
|
29876
29980
|
this.selectPropMemo = new WeakMap();
|
|
29981
|
+
this.previousUploadingCount = 0;
|
|
29982
|
+
// Campos ATTACHMENT con uploads en curso — bloquea submit + pone botón en WORKING
|
|
29983
|
+
this.uploadingFields = new Set();
|
|
29877
29984
|
}
|
|
29878
29985
|
ngOnInit() {
|
|
29879
29986
|
const formControls = {};
|
|
@@ -29890,6 +29997,9 @@ class FormComponent {
|
|
|
29890
29997
|
formControls[`${field.name}_from`] = [initialValue, field.validators || []];
|
|
29891
29998
|
formControls[`${field.name}_to`] = [initialValue, field.validators || []];
|
|
29892
29999
|
}
|
|
30000
|
+
else if (field.type === this.types.ATTACHMENT) {
|
|
30001
|
+
formControls[field.name] = [[], field.validators || []];
|
|
30002
|
+
}
|
|
29893
30003
|
else {
|
|
29894
30004
|
formControls[field.name] = [initialValue, field.validators || []];
|
|
29895
30005
|
}
|
|
@@ -29920,8 +30030,12 @@ class FormComponent {
|
|
|
29920
30030
|
}
|
|
29921
30031
|
ngDoCheck() {
|
|
29922
30032
|
// Detectar cambios en el estado del formulario (mutación sin cambiar referencia)
|
|
29923
|
-
|
|
30033
|
+
const uploadingCount = this.uploadingFields.size;
|
|
30034
|
+
if (this.form &&
|
|
30035
|
+
this.props &&
|
|
30036
|
+
(this.props.state !== this.previousState || uploadingCount !== this.previousUploadingCount)) {
|
|
29924
30037
|
this.previousState = this.props.state;
|
|
30038
|
+
this.previousUploadingCount = uploadingCount;
|
|
29925
30039
|
this.updateActionsCache();
|
|
29926
30040
|
}
|
|
29927
30041
|
}
|
|
@@ -29931,6 +30045,8 @@ class FormComponent {
|
|
|
29931
30045
|
syncFieldControlStates() {
|
|
29932
30046
|
this.props.sections.forEach(section => {
|
|
29933
30047
|
section.fields.forEach(field => {
|
|
30048
|
+
if (field.type === this.types.ATTACHMENT)
|
|
30049
|
+
return;
|
|
29934
30050
|
if (field.type === this.types.NUMBER_FROM_TO) {
|
|
29935
30051
|
const fromControl = this.getControl(`${field.name}_from`);
|
|
29936
30052
|
const toControl = this.getControl(`${field.name}_to`);
|
|
@@ -29960,7 +30076,7 @@ class FormComponent {
|
|
|
29960
30076
|
*/
|
|
29961
30077
|
updateActionsCache() {
|
|
29962
30078
|
let actionState = this.props.actions.state;
|
|
29963
|
-
if (this.props.state === ComponentStates.WORKING) {
|
|
30079
|
+
if (this.props.state === ComponentStates.WORKING || this.uploadingFields.size > 0) {
|
|
29964
30080
|
actionState = ComponentStates.WORKING;
|
|
29965
30081
|
}
|
|
29966
30082
|
else if (this.props.state === ComponentStates.DISABLED) {
|
|
@@ -29983,8 +30099,20 @@ class FormComponent {
|
|
|
29983
30099
|
this.subscriptions.push(subscription);
|
|
29984
30100
|
}
|
|
29985
30101
|
async submitHandler(token) {
|
|
30102
|
+
if (this.uploadingFields.size > 0)
|
|
30103
|
+
return;
|
|
29986
30104
|
this.onSubmit.emit({ fields: this.form.getRawValue(), token });
|
|
29987
30105
|
}
|
|
30106
|
+
onAttachmentChange(fieldName, items) {
|
|
30107
|
+
const readyUrls = items.filter(a => a.status === 'ready' && a.url).map(a => a.url);
|
|
30108
|
+
this.form.get(fieldName)?.setValue(readyUrls, { emitEvent: false });
|
|
30109
|
+
if (items.some(a => a.status === 'uploading')) {
|
|
30110
|
+
this.uploadingFields.add(fieldName);
|
|
30111
|
+
}
|
|
30112
|
+
else {
|
|
30113
|
+
this.uploadingFields.delete(fieldName);
|
|
30114
|
+
}
|
|
30115
|
+
}
|
|
29988
30116
|
getControl(field) {
|
|
29989
30117
|
return this.Form.get(field);
|
|
29990
30118
|
}
|
|
@@ -30112,7 +30240,7 @@ class FormComponent {
|
|
|
30112
30240
|
<val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
|
|
30113
30241
|
@for (f of s.fields; track f.name) {
|
|
30114
30242
|
<div class="input" [attr.data-testid]="f.token">
|
|
30115
|
-
@if (f.type !== types.PHONE && f.type !== types.HANDLE) {
|
|
30243
|
+
@if (f.type !== types.PHONE && f.type !== types.HANDLE && f.type !== types.ATTACHMENT) {
|
|
30116
30244
|
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
30117
30245
|
}
|
|
30118
30246
|
@if (f.description) {
|
|
@@ -30179,6 +30307,15 @@ class FormComponent {
|
|
|
30179
30307
|
@case (types.CHECKBOX_RADIO) {
|
|
30180
30308
|
<val-checkbox-radio-input [props]="getFieldProp(f)"></val-checkbox-radio-input>
|
|
30181
30309
|
}
|
|
30310
|
+
@case (types.ATTACHMENT) {
|
|
30311
|
+
<val-attachment-uploader
|
|
30312
|
+
[props]="{
|
|
30313
|
+
uploadFn: f.uploadFn,
|
|
30314
|
+
disabled: f.state === states.DISABLED || f.state === states.WORKING,
|
|
30315
|
+
}"
|
|
30316
|
+
(attachmentsChange)="onAttachmentChange(f.name, $event)"
|
|
30317
|
+
></val-attachment-uploader>
|
|
30318
|
+
}
|
|
30182
30319
|
}
|
|
30183
30320
|
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
30184
30321
|
</div>
|
|
@@ -30193,7 +30330,7 @@ class FormComponent {
|
|
|
30193
30330
|
></val-button-group>
|
|
30194
30331
|
</form>
|
|
30195
30332
|
</div>
|
|
30196
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: TextareaInputComponent, selector: "val-textarea-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["preset", "props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["preset", "props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: NumberFromToComponent, selector: "val-number-from-to", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["preset", "props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }, { kind: "component", type: SelectSearchComponent, selector: "val-select-search", inputs: ["label", "labelProperty", "valueProperty", "multiple", "placeholder", "props"] }, { kind: "component", type: MultiSelectSearchComponent, selector: "val-multi-select-search", inputs: ["label", "labelProperty", "valueProperty", "placeholder", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: PhoneInputComponent, selector: "val-phone-input", inputs: ["preset", "props"], outputs: ["phoneChange"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckboxRadioInputComponent, selector: "val-checkbox-radio-input", inputs: ["props"] }, { kind: "component", type: UsernameInputComponent, selector: "val-username-input", inputs: ["props"] }] }); }
|
|
30333
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: TextareaInputComponent, selector: "val-textarea-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["preset", "props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["preset", "props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: NumberFromToComponent, selector: "val-number-from-to", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["preset", "props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }, { kind: "component", type: SelectSearchComponent, selector: "val-select-search", inputs: ["label", "labelProperty", "valueProperty", "multiple", "placeholder", "props"] }, { kind: "component", type: MultiSelectSearchComponent, selector: "val-multi-select-search", inputs: ["label", "labelProperty", "valueProperty", "placeholder", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: PhoneInputComponent, selector: "val-phone-input", inputs: ["preset", "props"], outputs: ["phoneChange"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckboxRadioInputComponent, selector: "val-checkbox-radio-input", inputs: ["props"] }, { kind: "component", type: UsernameInputComponent, selector: "val-username-input", inputs: ["props"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "val-attachment-uploader", inputs: ["props"], outputs: ["attachmentsChange"] }] }); }
|
|
30197
30334
|
}
|
|
30198
30335
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, decorators: [{
|
|
30199
30336
|
type: Component,
|
|
@@ -30225,6 +30362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
30225
30362
|
ToggleInputComponent,
|
|
30226
30363
|
CheckboxRadioInputComponent,
|
|
30227
30364
|
UsernameInputComponent,
|
|
30365
|
+
AttachmentUploaderComponent,
|
|
30228
30366
|
], template: `
|
|
30229
30367
|
<div class="container">
|
|
30230
30368
|
<form [formGroup]="form">
|
|
@@ -30242,7 +30380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
30242
30380
|
<val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
|
|
30243
30381
|
@for (f of s.fields; track f.name) {
|
|
30244
30382
|
<div class="input" [attr.data-testid]="f.token">
|
|
30245
|
-
@if (f.type !== types.PHONE && f.type !== types.HANDLE) {
|
|
30383
|
+
@if (f.type !== types.PHONE && f.type !== types.HANDLE && f.type !== types.ATTACHMENT) {
|
|
30246
30384
|
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
30247
30385
|
}
|
|
30248
30386
|
@if (f.description) {
|
|
@@ -30309,6 +30447,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
30309
30447
|
@case (types.CHECKBOX_RADIO) {
|
|
30310
30448
|
<val-checkbox-radio-input [props]="getFieldProp(f)"></val-checkbox-radio-input>
|
|
30311
30449
|
}
|
|
30450
|
+
@case (types.ATTACHMENT) {
|
|
30451
|
+
<val-attachment-uploader
|
|
30452
|
+
[props]="{
|
|
30453
|
+
uploadFn: f.uploadFn,
|
|
30454
|
+
disabled: f.state === states.DISABLED || f.state === states.WORKING,
|
|
30455
|
+
}"
|
|
30456
|
+
(attachmentsChange)="onAttachmentChange(f.name, $event)"
|
|
30457
|
+
></val-attachment-uploader>
|
|
30458
|
+
}
|
|
30312
30459
|
}
|
|
30313
30460
|
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
30314
30461
|
</div>
|
|
@@ -50143,5 +50290,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
50143
50290
|
* Generated bundle index. Do not edit.
|
|
50144
50291
|
*/
|
|
50145
50292
|
|
|
50146
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentTransformer, CookieBannerComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MenuComponent, MessagingService, MetaService, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SHAPE_KEYS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STROKE_KEYS, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, blogPost, buildFooterLinks, buildPath, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPresets, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
50293
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentTransformer, CookieBannerComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DebugConsoleComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EmailInputComponent, EmptyStateComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MEMBER_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MemberCardComponent, MenuComponent, MessagingService, MetaService, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SHAPE_KEYS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STROKE_KEYS, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, SplashScreenService, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VERSION, ValtechErrorService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, blogPost, buildFooterLinks, buildPath, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAds, provideValtechAppConfig, provideValtechAppVersion, provideValtechAuth, provideValtechAuthInterceptor, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPresets, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
50147
50294
|
//# sourceMappingURL=valtech-components.mjs.map
|