valtech-components 4.0.1029 → 4.0.1031
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +7 -9
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +13 -12
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +92 -36
- package/esm2022/lib/components/molecules/action-card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/card/card.component.mjs +56 -28
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +1 -1
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +2 -2
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +22 -10
- package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +2 -2
- package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +26 -5
- package/esm2022/lib/components/organisms/attachment-uploader/types.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +2 -2
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +2 -2
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +2 -2
- package/esm2022/lib/components/organisms/settings-hub/settings-sections.mjs +2 -11
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +2 -2
- package/esm2022/lib/services/i18n/default-content.mjs +3 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +220 -111
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/avatar/avatar.component.d.ts +2 -2
- package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +2 -1
- package/lib/components/molecules/action-card/action-card.component.d.ts +28 -7
- package/lib/components/molecules/action-card/types.d.ts +4 -1
- package/lib/components/molecules/card/card.component.d.ts +2 -2
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +3 -1
- package/lib/components/organisms/attachment-uploader/attachment-uploader.component.d.ts +5 -2
- package/lib/components/organisms/attachment-uploader/types.d.ts +6 -0
- package/lib/components/organisms/settings-hub/settings-sections.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
70
70
|
* Current version of valtech-components.
|
|
71
71
|
* This is automatically updated during the publish process.
|
|
72
72
|
*/
|
|
73
|
-
const VERSION = '4.0.
|
|
73
|
+
const VERSION = '4.0.1031';
|
|
74
74
|
|
|
75
75
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
76
76
|
if (rule == null)
|
|
@@ -7826,6 +7826,7 @@ const VALTECH_DEFAULT_CONTENT = {
|
|
|
7826
7826
|
// Componentes - AttachmentUploader
|
|
7827
7827
|
attachAdd: 'Adjuntar archivo',
|
|
7828
7828
|
attachCamera: 'Usar cámara',
|
|
7829
|
+
attachFile: 'Archivo',
|
|
7829
7830
|
attachMaxCount: 'Límite de {count} archivos alcanzado',
|
|
7830
7831
|
attachUploadFailed: 'Error al subir el archivo',
|
|
7831
7832
|
attachCapture: 'Capturar',
|
|
@@ -7991,6 +7992,7 @@ const VALTECH_DEFAULT_CONTENT = {
|
|
|
7991
7992
|
// Components - AttachmentUploader
|
|
7992
7993
|
attachAdd: 'Attach file',
|
|
7993
7994
|
attachCamera: 'Use camera',
|
|
7995
|
+
attachFile: 'File',
|
|
7994
7996
|
attachMaxCount: 'Limit of {count} files reached',
|
|
7995
7997
|
attachUploadFailed: 'Error uploading file',
|
|
7996
7998
|
attachCapture: 'Capture',
|
|
@@ -12015,16 +12017,16 @@ function provideValtechPresets(presets) {
|
|
|
12015
12017
|
// Service
|
|
12016
12018
|
|
|
12017
12019
|
/**
|
|
12018
|
-
*
|
|
12020
|
+
* vds-avatar
|
|
12019
12021
|
*
|
|
12020
12022
|
* Displays a user or profile image, optionally with a box style and different sizes.
|
|
12021
12023
|
* Supports presets for reusable configurations.
|
|
12022
12024
|
*
|
|
12023
12025
|
* @example With preset (recommended):
|
|
12024
|
-
* <
|
|
12026
|
+
* <vds-avatar preset="profile" [props]="{ image: 'url' }" (onClick)="handler()"></vds-avatar>
|
|
12025
12027
|
*
|
|
12026
12028
|
* @example Static (backwards compatible):
|
|
12027
|
-
* <
|
|
12029
|
+
* <vds-avatar [props]="{ image: 'url', size: 'medium', box: true }" (onClick)="handler()"></vds-avatar>
|
|
12028
12030
|
*
|
|
12029
12031
|
* @input preset: string - Name of preset to apply
|
|
12030
12032
|
* @input props: AvatarMetadata - Configuration for the avatar (image, size, box, default image)
|
|
@@ -12059,9 +12061,7 @@ class AvatarComponent {
|
|
|
12059
12061
|
* Explicit props take precedence over preset values.
|
|
12060
12062
|
*/
|
|
12061
12063
|
resolveProps() {
|
|
12062
|
-
const presetProps = this.preset
|
|
12063
|
-
? this.presets.get('avatar', this.preset)
|
|
12064
|
-
: {};
|
|
12064
|
+
const presetProps = this.preset ? this.presets.get('avatar', this.preset) : {};
|
|
12065
12065
|
this.resolvedProps = {
|
|
12066
12066
|
...presetProps,
|
|
12067
12067
|
...this.props,
|
|
@@ -12071,7 +12071,7 @@ class AvatarComponent {
|
|
|
12071
12071
|
this.onClick.emit();
|
|
12072
12072
|
}
|
|
12073
12073
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12074
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "val-avatar", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
12074
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "val-avatar, vds-avatar", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
12075
12075
|
<ion-avatar
|
|
12076
12076
|
aria-hidden="true"
|
|
12077
12077
|
[class]="resolvedProps.size"
|
|
@@ -12085,7 +12085,7 @@ class AvatarComponent {
|
|
|
12085
12085
|
}
|
|
12086
12086
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
12087
12087
|
type: Component,
|
|
12088
|
-
args: [{ selector: 'val-avatar', standalone: true, imports: [IonAvatar], template: `
|
|
12088
|
+
args: [{ selector: 'val-avatar, vds-avatar', standalone: true, imports: [IonAvatar], template: `
|
|
12089
12089
|
<ion-avatar
|
|
12090
12090
|
aria-hidden="true"
|
|
12091
12091
|
[class]="resolvedProps.size"
|
|
@@ -13928,16 +13928,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
13928
13928
|
}] } });
|
|
13929
13929
|
|
|
13930
13930
|
/**
|
|
13931
|
-
*
|
|
13931
|
+
* vds-progress-bar
|
|
13932
13932
|
*
|
|
13933
13933
|
* A progress bar for indicating completion or loading state.
|
|
13934
13934
|
* Supports presets for reusable configurations.
|
|
13935
13935
|
*
|
|
13936
13936
|
* @example With preset:
|
|
13937
|
-
* <
|
|
13937
|
+
* <vds-progress-bar preset="default" [props]="{ progress: 0.5 }"></vds-progress-bar>
|
|
13938
13938
|
*
|
|
13939
13939
|
* @example Static:
|
|
13940
|
-
* <
|
|
13940
|
+
* <vds-progress-bar [props]="{ progress: 0.5, color: 'success', size: 'small' }"></vds-progress-bar>
|
|
13941
13941
|
*
|
|
13942
13942
|
* @input preset: string - Name of preset to apply
|
|
13943
13943
|
* @input props: ProgressBarMetadata - Configuration for the progress bar (progress, color, size, etc.)
|
|
@@ -13961,6 +13961,9 @@ class ProgressBarComponent {
|
|
|
13961
13961
|
*/
|
|
13962
13962
|
this.resolvedProps = {};
|
|
13963
13963
|
}
|
|
13964
|
+
get colorClass() {
|
|
13965
|
+
return `color-${this.resolvedProps.color || 'primary'}`;
|
|
13966
|
+
}
|
|
13964
13967
|
ngOnInit() {
|
|
13965
13968
|
this.resolveProps();
|
|
13966
13969
|
}
|
|
@@ -13984,31 +13987,29 @@ class ProgressBarComponent {
|
|
|
13984
13987
|
};
|
|
13985
13988
|
}
|
|
13986
13989
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13987
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarComponent, isStandalone: true, selector: "val-progress-bar", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
13990
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarComponent, isStandalone: true, selector: "val-progress-bar, vds-progress-bar", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
13988
13991
|
<ion-progress-bar
|
|
13989
|
-
[ngClass]="[resolvedProps.size]"
|
|
13992
|
+
[ngClass]="[resolvedProps.size, colorClass]"
|
|
13990
13993
|
[class.rounded]="resolvedProps.rounded"
|
|
13991
13994
|
[value]="resolvedProps.progress"
|
|
13992
|
-
[color]="resolvedProps.color"
|
|
13993
13995
|
[buffer]="resolvedProps.buffer"
|
|
13994
13996
|
[type]="resolvedProps.type"
|
|
13995
13997
|
[attr.aria-label]="resolvedProps.label || 'Progreso'"
|
|
13996
13998
|
></ion-progress-bar>
|
|
13997
|
-
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }] }); }
|
|
13999
|
+
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar{--background: var(--vds-progress-bar-track-bg, var(--vds-bg-muted, rgba(148, 163, 184, .22)));--buffer-background: var( --vds-progress-bar-buffer-bg, var(--vds-bg-subtle, rgba(148, 163, 184, .32)) );--progress-background: var( --vds-progress-bar-color, var(--vds-primary, var(--ion-color-primary, #2563eb)) )}ion-progress-bar.rounded{border-radius:.5rem}.color-primary{--vds-progress-bar-color: var( --vds-primary, var(--vds-action-primary, var(--ion-color-primary, #2563eb)) )}.color-secondary{--vds-progress-bar-color: var(--vds-secondary, var(--ion-color-secondary, #64748b))}.color-tertiary{--vds-progress-bar-color: var(--vds-tertiary, var(--ion-color-tertiary, #7c3aed))}.color-success{--vds-progress-bar-color: var(--vds-success, var(--ion-color-success, #16a34a))}.color-warning{--vds-progress-bar-color: var(--vds-warning, var(--ion-color-warning, #d97706))}.color-danger{--vds-progress-bar-color: var(--vds-danger, var(--ion-color-danger, #dc2626))}.color-info{--vds-progress-bar-color: var(--vds-info, #0284c7)}.color-neutral{--vds-progress-bar-color: var(--vds-neutral, #64748b)}.color-light{--vds-progress-bar-color: var(--vds-light, var(--ion-color-light, #f8fafc))}.color-dark{--vds-progress-bar-color: var(--vds-dark, var(--ion-color-dark, #0f172a))}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }] }); }
|
|
13998
14000
|
}
|
|
13999
14001
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
14000
14002
|
type: Component,
|
|
14001
|
-
args: [{ selector: 'val-progress-bar', standalone: true, imports: [CommonModule, IonProgressBar], template: `
|
|
14003
|
+
args: [{ selector: 'val-progress-bar, vds-progress-bar', standalone: true, imports: [CommonModule, IonProgressBar], template: `
|
|
14002
14004
|
<ion-progress-bar
|
|
14003
|
-
[ngClass]="[resolvedProps.size]"
|
|
14005
|
+
[ngClass]="[resolvedProps.size, colorClass]"
|
|
14004
14006
|
[class.rounded]="resolvedProps.rounded"
|
|
14005
14007
|
[value]="resolvedProps.progress"
|
|
14006
|
-
[color]="resolvedProps.color"
|
|
14007
14008
|
[buffer]="resolvedProps.buffer"
|
|
14008
14009
|
[type]="resolvedProps.type"
|
|
14009
14010
|
[attr.aria-label]="resolvedProps.label || 'Progreso'"
|
|
14010
14011
|
></ion-progress-bar>
|
|
14011
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"] }]
|
|
14012
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar{--background: var(--vds-progress-bar-track-bg, var(--vds-bg-muted, rgba(148, 163, 184, .22)));--buffer-background: var( --vds-progress-bar-buffer-bg, var(--vds-bg-subtle, rgba(148, 163, 184, .32)) );--progress-background: var( --vds-progress-bar-color, var(--vds-primary, var(--ion-color-primary, #2563eb)) )}ion-progress-bar.rounded{border-radius:.5rem}.color-primary{--vds-progress-bar-color: var( --vds-primary, var(--vds-action-primary, var(--ion-color-primary, #2563eb)) )}.color-secondary{--vds-progress-bar-color: var(--vds-secondary, var(--ion-color-secondary, #64748b))}.color-tertiary{--vds-progress-bar-color: var(--vds-tertiary, var(--ion-color-tertiary, #7c3aed))}.color-success{--vds-progress-bar-color: var(--vds-success, var(--ion-color-success, #16a34a))}.color-warning{--vds-progress-bar-color: var(--vds-warning, var(--ion-color-warning, #d97706))}.color-danger{--vds-progress-bar-color: var(--vds-danger, var(--ion-color-danger, #dc2626))}.color-info{--vds-progress-bar-color: var(--vds-info, #0284c7)}.color-neutral{--vds-progress-bar-color: var(--vds-neutral, #64748b)}.color-light{--vds-progress-bar-color: var(--vds-light, var(--ion-color-light, #f8fafc))}.color-dark{--vds-progress-bar-color: var(--vds-dark, var(--ion-color-dark, #0f172a))}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"] }]
|
|
14012
14013
|
}], propDecorators: { preset: [{
|
|
14013
14014
|
type: Input
|
|
14014
14015
|
}], props: [{
|
|
@@ -18245,16 +18246,16 @@ var CardSection;
|
|
|
18245
18246
|
})(CardSection || (CardSection = {}));
|
|
18246
18247
|
|
|
18247
18248
|
/**
|
|
18248
|
-
*
|
|
18249
|
+
* vds-card
|
|
18249
18250
|
*
|
|
18250
18251
|
* A flexible card component supporting images, titles, content, actions, and custom sections.
|
|
18251
18252
|
* Supports presets for reusable configurations.
|
|
18252
18253
|
*
|
|
18253
18254
|
* @example With preset (recommended):
|
|
18254
|
-
* <
|
|
18255
|
+
* <vds-card preset="feature" [props]="{ title: 'Card', image: 'url', content: '...' }" (onClick)="handler($event)"></vds-card>
|
|
18255
18256
|
*
|
|
18256
18257
|
* @example Static (backwards compatible):
|
|
18257
|
-
* <
|
|
18258
|
+
* <vds-card [props]="{ type: 'native', title: 'Card', image: 'url', content: '...' }" (onClick)="handler($event)"></vds-card>
|
|
18258
18259
|
*
|
|
18259
18260
|
* @input preset: string - Name of preset to apply (e.g., 'feature', 'compact')
|
|
18260
18261
|
* @input props: CardMetadata - Configuration for the card (overrides preset values)
|
|
@@ -18315,7 +18316,7 @@ class CardComponent {
|
|
|
18315
18316
|
this.clickHandler(section, token);
|
|
18316
18317
|
}
|
|
18317
18318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18318
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "val-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
18319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "val-card, vds-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
18319
18320
|
<ion-card *ngIf="resolvedProps.type === types.native">
|
|
18320
18321
|
@if (resolvedProps.image) {
|
|
18321
18322
|
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
@@ -18392,14 +18393,19 @@ class CardComponent {
|
|
|
18392
18393
|
[attr.aria-label]="action.description"
|
|
18393
18394
|
(click)="clickHandler(sections.headerLeft, action.token)"
|
|
18394
18395
|
>
|
|
18395
|
-
<ion-icon
|
|
18396
|
+
<ion-icon
|
|
18397
|
+
slot="icon-only"
|
|
18398
|
+
[name]="action.description"
|
|
18399
|
+
class="card-action-icon"
|
|
18400
|
+
aria-hidden="true"
|
|
18401
|
+
></ion-icon>
|
|
18396
18402
|
</ion-button>
|
|
18397
|
-
<
|
|
18403
|
+
<vds-avatar
|
|
18398
18404
|
style="margin-right: 4px; cursor: pointer"
|
|
18399
18405
|
*ngIf="action.type === actionTypes.AVATAR"
|
|
18400
18406
|
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
18401
18407
|
(onClick)="clickHandler(sections.headerLeft, action.token)"
|
|
18402
|
-
></
|
|
18408
|
+
></vds-avatar>
|
|
18403
18409
|
<val-image
|
|
18404
18410
|
*ngIf="action.type === actionTypes.IMAGE"
|
|
18405
18411
|
[props]="action.image"
|
|
@@ -18423,14 +18429,19 @@ class CardComponent {
|
|
|
18423
18429
|
[attr.aria-label]="action.description"
|
|
18424
18430
|
(click)="clickHandler(sections.headerRight, action.token)"
|
|
18425
18431
|
>
|
|
18426
|
-
<ion-icon
|
|
18432
|
+
<ion-icon
|
|
18433
|
+
slot="icon-only"
|
|
18434
|
+
[name]="action.description"
|
|
18435
|
+
class="card-action-icon"
|
|
18436
|
+
aria-hidden="true"
|
|
18437
|
+
></ion-icon>
|
|
18427
18438
|
</ion-button>
|
|
18428
|
-
<
|
|
18439
|
+
<vds-avatar
|
|
18429
18440
|
style="margin-right: 4px; cursor: pointer"
|
|
18430
18441
|
*ngIf="action.type === actionTypes.AVATAR"
|
|
18431
18442
|
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
18432
18443
|
(onClick)="clickHandler(sections.headerRight, action.token)"
|
|
18433
|
-
></
|
|
18444
|
+
></vds-avatar>
|
|
18434
18445
|
<val-image
|
|
18435
18446
|
*ngIf="action.type === actionTypes.IMAGE"
|
|
18436
18447
|
[props]="action.image"
|
|
@@ -18488,14 +18499,19 @@ class CardComponent {
|
|
|
18488
18499
|
[attr.aria-label]="action.description"
|
|
18489
18500
|
(click)="clickHandler(sections.footerExtra, action.token)"
|
|
18490
18501
|
>
|
|
18491
|
-
<ion-icon
|
|
18502
|
+
<ion-icon
|
|
18503
|
+
slot="icon-only"
|
|
18504
|
+
[name]="action.description"
|
|
18505
|
+
class="card-action-icon"
|
|
18506
|
+
aria-hidden="true"
|
|
18507
|
+
></ion-icon>
|
|
18492
18508
|
</ion-button>
|
|
18493
|
-
<
|
|
18509
|
+
<vds-avatar
|
|
18494
18510
|
style="margin-right: 4px; cursor: pointer"
|
|
18495
18511
|
*ngIf="action.type === actionTypes.AVATAR"
|
|
18496
18512
|
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
18497
18513
|
(onClick)="clickHandler(sections.footerExtra, action.token)"
|
|
18498
|
-
></
|
|
18514
|
+
></vds-avatar>
|
|
18499
18515
|
<val-image
|
|
18500
18516
|
*ngIf="action.type === actionTypes.IMAGE"
|
|
18501
18517
|
[props]="action.image"
|
|
@@ -18504,18 +18520,17 @@ class CardComponent {
|
|
|
18504
18520
|
<ion-button
|
|
18505
18521
|
*ngIf="action.type === actionTypes.BUTTON"
|
|
18506
18522
|
(click)="clickHandler(sections.footerExtra, action.token)"
|
|
18507
|
-
color="dark"
|
|
18508
18523
|
>
|
|
18509
18524
|
{{ action.description }}
|
|
18510
18525
|
</ion-button>
|
|
18511
18526
|
</ng-container>
|
|
18512
18527
|
</ion-buttons>
|
|
18513
18528
|
</ion-card>
|
|
18514
|
-
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
18529
|
+
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}.card-action-icon{color:var(--vds-fg-subtle, var(--ion-color-dark, #0f172a))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar, vds-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
18515
18530
|
}
|
|
18516
18531
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
18517
18532
|
type: Component,
|
|
18518
|
-
args: [{ selector: 'val-card', standalone: true, imports: [
|
|
18533
|
+
args: [{ selector: 'val-card, vds-card', standalone: true, imports: [
|
|
18519
18534
|
CommonModule,
|
|
18520
18535
|
ButtonComponent,
|
|
18521
18536
|
AvatarComponent,
|
|
@@ -18607,14 +18622,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
18607
18622
|
[attr.aria-label]="action.description"
|
|
18608
18623
|
(click)="clickHandler(sections.headerLeft, action.token)"
|
|
18609
18624
|
>
|
|
18610
|
-
<ion-icon
|
|
18625
|
+
<ion-icon
|
|
18626
|
+
slot="icon-only"
|
|
18627
|
+
[name]="action.description"
|
|
18628
|
+
class="card-action-icon"
|
|
18629
|
+
aria-hidden="true"
|
|
18630
|
+
></ion-icon>
|
|
18611
18631
|
</ion-button>
|
|
18612
|
-
<
|
|
18632
|
+
<vds-avatar
|
|
18613
18633
|
style="margin-right: 4px; cursor: pointer"
|
|
18614
18634
|
*ngIf="action.type === actionTypes.AVATAR"
|
|
18615
18635
|
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
18616
18636
|
(onClick)="clickHandler(sections.headerLeft, action.token)"
|
|
18617
|
-
></
|
|
18637
|
+
></vds-avatar>
|
|
18618
18638
|
<val-image
|
|
18619
18639
|
*ngIf="action.type === actionTypes.IMAGE"
|
|
18620
18640
|
[props]="action.image"
|
|
@@ -18638,14 +18658,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
18638
18658
|
[attr.aria-label]="action.description"
|
|
18639
18659
|
(click)="clickHandler(sections.headerRight, action.token)"
|
|
18640
18660
|
>
|
|
18641
|
-
<ion-icon
|
|
18661
|
+
<ion-icon
|
|
18662
|
+
slot="icon-only"
|
|
18663
|
+
[name]="action.description"
|
|
18664
|
+
class="card-action-icon"
|
|
18665
|
+
aria-hidden="true"
|
|
18666
|
+
></ion-icon>
|
|
18642
18667
|
</ion-button>
|
|
18643
|
-
<
|
|
18668
|
+
<vds-avatar
|
|
18644
18669
|
style="margin-right: 4px; cursor: pointer"
|
|
18645
18670
|
*ngIf="action.type === actionTypes.AVATAR"
|
|
18646
18671
|
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
18647
18672
|
(onClick)="clickHandler(sections.headerRight, action.token)"
|
|
18648
|
-
></
|
|
18673
|
+
></vds-avatar>
|
|
18649
18674
|
<val-image
|
|
18650
18675
|
*ngIf="action.type === actionTypes.IMAGE"
|
|
18651
18676
|
[props]="action.image"
|
|
@@ -18703,14 +18728,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
18703
18728
|
[attr.aria-label]="action.description"
|
|
18704
18729
|
(click)="clickHandler(sections.footerExtra, action.token)"
|
|
18705
18730
|
>
|
|
18706
|
-
<ion-icon
|
|
18731
|
+
<ion-icon
|
|
18732
|
+
slot="icon-only"
|
|
18733
|
+
[name]="action.description"
|
|
18734
|
+
class="card-action-icon"
|
|
18735
|
+
aria-hidden="true"
|
|
18736
|
+
></ion-icon>
|
|
18707
18737
|
</ion-button>
|
|
18708
|
-
<
|
|
18738
|
+
<vds-avatar
|
|
18709
18739
|
style="margin-right: 4px; cursor: pointer"
|
|
18710
18740
|
*ngIf="action.type === actionTypes.AVATAR"
|
|
18711
18741
|
[props]="{ size: 'small', image: action.description, default: '' }"
|
|
18712
18742
|
(onClick)="clickHandler(sections.footerExtra, action.token)"
|
|
18713
|
-
></
|
|
18743
|
+
></vds-avatar>
|
|
18714
18744
|
<val-image
|
|
18715
18745
|
*ngIf="action.type === actionTypes.IMAGE"
|
|
18716
18746
|
[props]="action.image"
|
|
@@ -18719,14 +18749,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
18719
18749
|
<ion-button
|
|
18720
18750
|
*ngIf="action.type === actionTypes.BUTTON"
|
|
18721
18751
|
(click)="clickHandler(sections.footerExtra, action.token)"
|
|
18722
|
-
color="dark"
|
|
18723
18752
|
>
|
|
18724
18753
|
{{ action.description }}
|
|
18725
18754
|
</ion-button>
|
|
18726
18755
|
</ng-container>
|
|
18727
18756
|
</ion-buttons>
|
|
18728
18757
|
</ion-card>
|
|
18729
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"] }]
|
|
18758
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}.card-action-icon{color:var(--vds-fg-subtle, var(--ion-color-dark, #0f172a))}\n"] }]
|
|
18730
18759
|
}], propDecorators: { preset: [{
|
|
18731
18760
|
type: Input
|
|
18732
18761
|
}], props: [{
|
|
@@ -21875,7 +21904,7 @@ class ProgressStatusComponent {
|
|
|
21875
21904
|
</div>
|
|
21876
21905
|
</div>
|
|
21877
21906
|
</div>
|
|
21878
|
-
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}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)}.status-container{min-height:6.25rem;margin:1rem .5rem}.progress-bar-container{max-width:60%;margin:0 auto}.title-container{margin-bottom:.5rem}.subtitle-container{width:100%;display:flex}.subtitle{padding:1rem;margin:0 auto;height:1rem}.blink{animation:blink 1s infinite alternate ease-in}@keyframes blink{0%{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}\n"], dependencies: [{ kind: "component", type: TitleBlockComponent, selector: "val-title-block", inputs: ["props"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["preset", "props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
21907
|
+
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}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)}.status-container{min-height:6.25rem;margin:1rem .5rem}.progress-bar-container{max-width:60%;margin:0 auto}.title-container{margin-bottom:.5rem}.subtitle-container{width:100%;display:flex}.subtitle{padding:1rem;margin:0 auto;height:1rem}.blink{animation:blink 1s infinite alternate ease-in}@keyframes blink{0%{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}\n"], dependencies: [{ kind: "component", type: TitleBlockComponent, selector: "val-title-block", inputs: ["props"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar, vds-progress-bar", inputs: ["preset", "props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
21879
21908
|
}
|
|
21880
21909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressStatusComponent, decorators: [{
|
|
21881
21910
|
type: Component,
|
|
@@ -26189,21 +26218,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
26189
26218
|
|
|
26190
26219
|
addIcons({ trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, heart, star });
|
|
26191
26220
|
/**
|
|
26192
|
-
*
|
|
26221
|
+
* vds-stats-card
|
|
26193
26222
|
*
|
|
26194
26223
|
* A card component for displaying statistics and KPIs.
|
|
26195
26224
|
* Supports presets for reusable configurations.
|
|
26196
26225
|
*
|
|
26197
26226
|
* @example With preset:
|
|
26198
|
-
* <
|
|
26227
|
+
* <vds-stats-card preset="kpi" [props]="{ title: 'Users', value: 1000 }"></vds-stats-card>
|
|
26199
26228
|
*
|
|
26200
26229
|
* @example Basic usage
|
|
26201
|
-
* <
|
|
26230
|
+
* <vds-stats-card [props]="{
|
|
26202
26231
|
* title: 'Total Users',
|
|
26203
26232
|
* value: 12500,
|
|
26204
26233
|
* icon: 'people',
|
|
26205
26234
|
* color: 'primary'
|
|
26206
|
-
* }"></
|
|
26235
|
+
* }"></vds-stats-card>
|
|
26207
26236
|
*
|
|
26208
26237
|
* @input preset: string - Name of preset to apply
|
|
26209
26238
|
* @input props: StatsCardMetadata - Configuration for the stats card
|
|
@@ -26234,7 +26263,15 @@ class StatsCardComponent {
|
|
|
26234
26263
|
}
|
|
26235
26264
|
getCardColor() {
|
|
26236
26265
|
const color = this.resolvedProps.color || 'primary';
|
|
26237
|
-
return `var(--ion-color-${color})`;
|
|
26266
|
+
return `var(--vds-${color}, var(--ion-color-${color}, var(--vds-primary, #2563eb)))`;
|
|
26267
|
+
}
|
|
26268
|
+
getCardColorHover() {
|
|
26269
|
+
const color = this.resolvedProps.color || 'primary';
|
|
26270
|
+
return `var(--vds-${color}-hover, var(--vds-${color}, var(--ion-color-${color}, var(--vds-primary-hover, #1d4ed8))))`;
|
|
26271
|
+
}
|
|
26272
|
+
getCardColorContrast() {
|
|
26273
|
+
const color = this.resolvedProps.color || 'primary';
|
|
26274
|
+
return `var(--vds-${color}-fg, var(--vds-${color}-contrast, var(--ion-color-${color}-contrast, #ffffff)))`;
|
|
26238
26275
|
}
|
|
26239
26276
|
getBackgroundClass() {
|
|
26240
26277
|
const bg = this.resolvedProps.background || 'light';
|
|
@@ -26258,11 +26295,13 @@ class StatsCardComponent {
|
|
|
26258
26295
|
return 'remove';
|
|
26259
26296
|
}
|
|
26260
26297
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26261
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, isStandalone: true, selector: "val-stats-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
26298
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, isStandalone: true, selector: "val-stats-card, vds-stats-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
26262
26299
|
<ion-card
|
|
26263
26300
|
class="stats-card"
|
|
26264
26301
|
[class]="getBackgroundClass()"
|
|
26265
26302
|
[style.--card-color]="getCardColor()"
|
|
26303
|
+
[style.--card-color-hover]="getCardColorHover()"
|
|
26304
|
+
[style.--card-color-contrast]="getCardColorContrast()"
|
|
26266
26305
|
[style.min-height.px]="resolvedProps.minHeight"
|
|
26267
26306
|
(click)="onClick.emit()"
|
|
26268
26307
|
>
|
|
@@ -26318,15 +26357,17 @@ class StatsCardComponent {
|
|
|
26318
26357
|
}
|
|
26319
26358
|
</ion-card-content>
|
|
26320
26359
|
</ion-card>
|
|
26321
|
-
`, isInline: true, styles: [":host{display:block}.stats-card{margin:0;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px
|
|
26360
|
+
`, isInline: true, styles: [":host{display:block}.stats-card{margin:0;border:1px solid var(--vds-stats-card-border-color, var(--vds-border-subtle, rgba(148, 163, 184, .24)));border-radius:var(--vds-stats-card-radius, 12px);cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:var(--vds-stats-card-hover-shadow, var(--vds-shadow-md, 0 8px 24px rgba(15, 23, 42, .12)))}.stats-card.background-light{--background: var( --vds-stats-card-bg, var(--vds-bg-surface, var(--vds-light, var(--ion-color-light, #f8fafc))) )}.stats-card.background-light .stats-title,.stats-card.background-light .stats-footer{color:var(--vds-fg-subtle, var(--vds-neutral-text, var(--ion-color-dark, #0f172a)))}.stats-card.background-light .stats-value{color:var(--vds-fg-base, var(--ion-text-color, #0f172a))}.stats-card.background-light .stats-icon{color:var(--card-color);opacity:.8}.stats-card.background-solid{--background: var(--card-color)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer,.stats-card.background-solid .stats-value,.stats-card.background-solid .stats-icon{color:var(--card-color-contrast)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer{opacity:.9}.stats-card.background-gradient{--background: linear-gradient( 135deg, var(--card-color), var(--card-color-hover, var(--card-color)) )}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer,.stats-card.background-gradient .stats-value,.stats-card.background-gradient .stats-icon{color:var(--card-color-contrast)}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer{opacity:.9}ion-card-content{padding:16px}.stats-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stats-title{font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stats-icon{font-size:1.5rem}.stats-value{font-size:1.75rem;font-weight:700;line-height:1.2;margin-bottom:8px}.stats-value .prefix,.stats-value .suffix{font-size:1.125rem;font-weight:500;opacity:.8}.stats-value .prefix{margin-right:2px}.stats-value .suffix{margin-left:4px}.stats-trend{display:inline-flex;align-items:center;gap:4px;font-size:.8125rem;font-weight:500;padding:4px 8px;border-radius:12px;margin-bottom:8px}.stats-trend ion-icon{font-size:1rem}.stats-trend.trend-up{background-color:var(--vds-success-tint, rgba(var(--ion-color-success-rgb), .15));color:var(--vds-success-tint-contrast, var(--vds-success-text, var(--ion-color-success, #16a34a)))}.stats-trend.trend-down{background-color:var(--vds-danger-tint, rgba(var(--ion-color-danger-rgb), .15));color:var(--vds-danger-tint-contrast, var(--vds-danger-text, var(--ion-color-danger, #dc2626)))}.stats-trend.trend-neutral{background-color:var(--vds-neutral-tint, rgba(var(--ion-color-medium-rgb), .15));color:var(--vds-neutral-tint-contrast, var(--vds-neutral-text, var(--ion-color-dark, #0f172a)))}.stats-trend .trend-label{font-weight:400;opacity:.8;margin-left:4px}.stats-footer{font-size:.75rem;margin-top:4px}.stats-description{margin-top:8px;font-size:.875rem;line-height:1.4;color:var(--vds-fg-base, var(--ion-text-color, #0f172a));opacity:.8}.stats-logo{margin-top:16px;padding-top:12px;border-top:1px solid var(--vds-border-subtle, rgba(var(--ion-text-color-rgb), .1))}.stats-logo img{display:block;object-fit:contain;filter:grayscale(100%);opacity:.7;transition:filter .2s,opacity .2s}.stats-logo:hover img{filter:grayscale(0%);opacity:1}.background-solid .stats-description,.background-gradient .stats-description{color:var(--card-color-contrast);opacity:.9}.background-solid .stats-logo,.background-gradient .stats-logo{border-top-color:color-mix(in srgb,var(--card-color-contrast) 22%,transparent)}.background-solid .stats-logo img,.background-gradient .stats-logo img{filter:grayscale(100%) brightness(10)}.background-solid .stats-logo:hover img,.background-gradient .stats-logo:hover img{filter:brightness(10)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }] }); }
|
|
26322
26361
|
}
|
|
26323
26362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, decorators: [{
|
|
26324
26363
|
type: Component,
|
|
26325
|
-
args: [{ selector: 'val-stats-card', standalone: true, imports: [CommonModule, IonCard, IonCardContent, IonIcon, IonSkeletonText], template: `
|
|
26364
|
+
args: [{ selector: 'val-stats-card, vds-stats-card', standalone: true, imports: [CommonModule, IonCard, IonCardContent, IonIcon, IonSkeletonText], template: `
|
|
26326
26365
|
<ion-card
|
|
26327
26366
|
class="stats-card"
|
|
26328
26367
|
[class]="getBackgroundClass()"
|
|
26329
26368
|
[style.--card-color]="getCardColor()"
|
|
26369
|
+
[style.--card-color-hover]="getCardColorHover()"
|
|
26370
|
+
[style.--card-color-contrast]="getCardColorContrast()"
|
|
26330
26371
|
[style.min-height.px]="resolvedProps.minHeight"
|
|
26331
26372
|
(click)="onClick.emit()"
|
|
26332
26373
|
>
|
|
@@ -26382,7 +26423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
26382
26423
|
}
|
|
26383
26424
|
</ion-card-content>
|
|
26384
26425
|
</ion-card>
|
|
26385
|
-
`, styles: [":host{display:block}.stats-card{margin:0;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px
|
|
26426
|
+
`, styles: [":host{display:block}.stats-card{margin:0;border:1px solid var(--vds-stats-card-border-color, var(--vds-border-subtle, rgba(148, 163, 184, .24)));border-radius:var(--vds-stats-card-radius, 12px);cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:var(--vds-stats-card-hover-shadow, var(--vds-shadow-md, 0 8px 24px rgba(15, 23, 42, .12)))}.stats-card.background-light{--background: var( --vds-stats-card-bg, var(--vds-bg-surface, var(--vds-light, var(--ion-color-light, #f8fafc))) )}.stats-card.background-light .stats-title,.stats-card.background-light .stats-footer{color:var(--vds-fg-subtle, var(--vds-neutral-text, var(--ion-color-dark, #0f172a)))}.stats-card.background-light .stats-value{color:var(--vds-fg-base, var(--ion-text-color, #0f172a))}.stats-card.background-light .stats-icon{color:var(--card-color);opacity:.8}.stats-card.background-solid{--background: var(--card-color)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer,.stats-card.background-solid .stats-value,.stats-card.background-solid .stats-icon{color:var(--card-color-contrast)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer{opacity:.9}.stats-card.background-gradient{--background: linear-gradient( 135deg, var(--card-color), var(--card-color-hover, var(--card-color)) )}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer,.stats-card.background-gradient .stats-value,.stats-card.background-gradient .stats-icon{color:var(--card-color-contrast)}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer{opacity:.9}ion-card-content{padding:16px}.stats-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stats-title{font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stats-icon{font-size:1.5rem}.stats-value{font-size:1.75rem;font-weight:700;line-height:1.2;margin-bottom:8px}.stats-value .prefix,.stats-value .suffix{font-size:1.125rem;font-weight:500;opacity:.8}.stats-value .prefix{margin-right:2px}.stats-value .suffix{margin-left:4px}.stats-trend{display:inline-flex;align-items:center;gap:4px;font-size:.8125rem;font-weight:500;padding:4px 8px;border-radius:12px;margin-bottom:8px}.stats-trend ion-icon{font-size:1rem}.stats-trend.trend-up{background-color:var(--vds-success-tint, rgba(var(--ion-color-success-rgb), .15));color:var(--vds-success-tint-contrast, var(--vds-success-text, var(--ion-color-success, #16a34a)))}.stats-trend.trend-down{background-color:var(--vds-danger-tint, rgba(var(--ion-color-danger-rgb), .15));color:var(--vds-danger-tint-contrast, var(--vds-danger-text, var(--ion-color-danger, #dc2626)))}.stats-trend.trend-neutral{background-color:var(--vds-neutral-tint, rgba(var(--ion-color-medium-rgb), .15));color:var(--vds-neutral-tint-contrast, var(--vds-neutral-text, var(--ion-color-dark, #0f172a)))}.stats-trend .trend-label{font-weight:400;opacity:.8;margin-left:4px}.stats-footer{font-size:.75rem;margin-top:4px}.stats-description{margin-top:8px;font-size:.875rem;line-height:1.4;color:var(--vds-fg-base, var(--ion-text-color, #0f172a));opacity:.8}.stats-logo{margin-top:16px;padding-top:12px;border-top:1px solid var(--vds-border-subtle, rgba(var(--ion-text-color-rgb), .1))}.stats-logo img{display:block;object-fit:contain;filter:grayscale(100%);opacity:.7;transition:filter .2s,opacity .2s}.stats-logo:hover img{filter:grayscale(0%);opacity:1}.background-solid .stats-description,.background-gradient .stats-description{color:var(--card-color-contrast);opacity:.9}.background-solid .stats-logo,.background-gradient .stats-logo{border-top-color:color-mix(in srgb,var(--card-color-contrast) 22%,transparent)}.background-solid .stats-logo img,.background-gradient .stats-logo img{filter:grayscale(100%) brightness(10)}.background-solid .stats-logo:hover img,.background-gradient .stats-logo:hover img{filter:brightness(10)}\n"] }]
|
|
26386
26427
|
}], propDecorators: { preset: [{
|
|
26387
26428
|
type: Input
|
|
26388
26429
|
}], props: [{
|
|
@@ -26832,7 +26873,7 @@ class CommentComponent {
|
|
|
26832
26873
|
</div>
|
|
26833
26874
|
}
|
|
26834
26875
|
</div>
|
|
26835
|
-
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 20px;--max-indent: 64px;--comment-surface: rgba(var(--ion-color-medium-rgb), .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .1);background:var(--comment-surface);border-radius:var(--val-radius-sm, 16px);padding:14px 16px}.comment.highlighted{background-color:var(--comment-surface-highlighted)}.comment.pinned{box-shadow:inset 3px 0 0 var(--ion-color-primary)}.comment.collapsed{opacity:.7}.comment--social{--comment-surface: var(--ion-card-background, var(--ion-background-color, #fff));padding:18px;border-radius:24px;box-shadow:0 1px rgba(var(--ion-color-medium-rgb),.08)}.comment--social .comment-main{gap:14px;align-items:flex-start}.comment--social .comment-avatar{align-self:flex-start}.comment--social .comment-avatar val-avatar{--size: 48px}.comment--social .comment-avatar .avatar-placeholder{width:48px;height:48px;font-size:1rem}.comment--social .comment-header{gap:8px;margin-bottom:10px}.comment--social .author-name{font-size:1rem;font-weight:700}.comment--social .author-username,.comment--social .timestamp{font-size:.875rem}.comment--social .more-button{width:32px;height:32px}.comment--social .comment-content{font-size:1rem;line-height:1.45;font-weight:600;margin-bottom:12px}.comment--social .comment-footer{margin-top:12px}.comment--social .reaction-button{min-width:44px;height:34px;border-color:rgba(var(--ion-color-medium-rgb),.3);background:var(--ion-card-background, var(--ion-background-color, #fff))}.comment--social .comment-action-button{font-size:1rem;color:var(--ion-color-dark)}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:48px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-dark)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-dark)}.edited-label{font-size:.6875rem;color:var(--ion-color-dark);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-dark)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention),.comment-content :global(.comment-hashtag){display:inline-block;background:rgba(var(--ion-color-primary-rgb),.14);color:var(--ion-color-primary);font-weight:600;padding:1px 8px;border-radius:var(--val-radius-full, 999px);cursor:pointer;transition:background-color .15s ease}.comment-content :global(.comment-mention):hover,.comment-content :global(.comment-hashtag):hover{background:rgba(var(--ion-color-primary-rgb),.22);text-decoration:none}.comment-attachments{display:flex;flex-direction:column;gap:10px}.comment-attachment-image,.comment-attachment-video{display:block;width:100%;max-height:360px;aspect-ratio:16/9;border-radius:14px;border:1px solid var(--val-border-color, rgba(0, 0, 0, .08));object-fit:cover;background:rgba(var(--ion-color-medium-rgb),.08)}.comment-attachment-file{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:8px 12px;border-radius:var(--val-radius-full, 999px);border:1px solid rgba(var(--ion-color-medium-rgb),.24);color:var(--ion-color-dark);text-decoration:none;font-size:.875rem;font-weight:600}.comment-attachment-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-attachment-file ion-icon{flex-shrink:0;font-size:1rem}.comment-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px}.reaction-button{display:flex;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;padding:0;background:transparent;border:1px solid rgba(var(--ion-color-medium-rgb),.22);border-radius:var(--val-radius-full, 999px);cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:background-color .15s ease,border-color .15s ease}.reaction-button.has-count{width:auto;padding:0 10px}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.12);border-color:rgba(var(--ion-color-primary-rgb),.32)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.0625rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:600}.comment-actions{display:flex;flex-wrap:wrap;gap:4px}.comment-action-button{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-color-medium);transition:background-color .15s ease}.comment-action-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.comment-action-button:disabled{opacity:.5;cursor:default}.comment-action-button ion-icon{font-size:1rem}.comment-action-button.action-color-primary{color:var(--ion-color-primary)}.comment-action-button.action-color-danger{color:var(--ion-color-danger)}.comment-action-button.action-color-dark{color:var(--ion-color-dark)}.expand-button,.collapse-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon{font-size:1rem}.load-more-button,.view-replies-button{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid rgba(var(--ion-color-medium-rgb),.24);padding:5px 10px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-text-color);border-radius:var(--val-radius-full, 999px);transition:background-color .15s ease}.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.load-more-button ion-icon,.view-replies-button ion-icon{font-size:.9375rem}.expand-button{margin-top:4px;color:var(--ion-color-dark)}.comment-children{margin-top:10px;padding-left:min(var(--indent-size),var(--max-indent));display:flex;flex-direction:column;gap:10px}.comment-children val-comment{display:block}.load-more-button,.view-replies-button{margin-top:4px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment,:host-context(.ion-palette-dark) .comment,:host-context(html.ion-palette-dark) .comment,:host-context(body.dark) .comment,:host-context([data-theme=dark]) .comment{--comment-surface: rgba(255, 255, 255, .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .16)}:host-context(.dark) .comment--social,:host-context(.ion-palette-dark) .comment--social,:host-context(html.ion-palette-dark) .comment--social,:host-context(body.dark) .comment--social,:host-context([data-theme=dark]) .comment--social{--comment-surface: var(--ion-card-background, rgba(255, 255, 255, .08))}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"], dependencies: [{ kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
26876
|
+
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 20px;--max-indent: 64px;--comment-surface: rgba(var(--ion-color-medium-rgb), .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .1);background:var(--comment-surface);border-radius:var(--val-radius-sm, 16px);padding:14px 16px}.comment.highlighted{background-color:var(--comment-surface-highlighted)}.comment.pinned{box-shadow:inset 3px 0 0 var(--ion-color-primary)}.comment.collapsed{opacity:.7}.comment--social{--comment-surface: var(--ion-card-background, var(--ion-background-color, #fff));padding:18px;border-radius:24px;box-shadow:0 1px rgba(var(--ion-color-medium-rgb),.08)}.comment--social .comment-main{gap:14px;align-items:flex-start}.comment--social .comment-avatar{align-self:flex-start}.comment--social .comment-avatar val-avatar{--size: 48px}.comment--social .comment-avatar .avatar-placeholder{width:48px;height:48px;font-size:1rem}.comment--social .comment-header{gap:8px;margin-bottom:10px}.comment--social .author-name{font-size:1rem;font-weight:700}.comment--social .author-username,.comment--social .timestamp{font-size:.875rem}.comment--social .more-button{width:32px;height:32px}.comment--social .comment-content{font-size:1rem;line-height:1.45;font-weight:600;margin-bottom:12px}.comment--social .comment-footer{margin-top:12px}.comment--social .reaction-button{min-width:44px;height:34px;border-color:rgba(var(--ion-color-medium-rgb),.3);background:var(--ion-card-background, var(--ion-background-color, #fff))}.comment--social .comment-action-button{font-size:1rem;color:var(--ion-color-dark)}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:48px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-dark)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-dark)}.edited-label{font-size:.6875rem;color:var(--ion-color-dark);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-dark)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention),.comment-content :global(.comment-hashtag){display:inline-block;background:rgba(var(--ion-color-primary-rgb),.14);color:var(--ion-color-primary);font-weight:600;padding:1px 8px;border-radius:var(--val-radius-full, 999px);cursor:pointer;transition:background-color .15s ease}.comment-content :global(.comment-mention):hover,.comment-content :global(.comment-hashtag):hover{background:rgba(var(--ion-color-primary-rgb),.22);text-decoration:none}.comment-attachments{display:flex;flex-direction:column;gap:10px}.comment-attachment-image,.comment-attachment-video{display:block;width:100%;max-height:360px;aspect-ratio:16/9;border-radius:14px;border:1px solid var(--val-border-color, rgba(0, 0, 0, .08));object-fit:cover;background:rgba(var(--ion-color-medium-rgb),.08)}.comment-attachment-file{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:8px 12px;border-radius:var(--val-radius-full, 999px);border:1px solid rgba(var(--ion-color-medium-rgb),.24);color:var(--ion-color-dark);text-decoration:none;font-size:.875rem;font-weight:600}.comment-attachment-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-attachment-file ion-icon{flex-shrink:0;font-size:1rem}.comment-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px}.reaction-button{display:flex;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;padding:0;background:transparent;border:1px solid rgba(var(--ion-color-medium-rgb),.22);border-radius:var(--val-radius-full, 999px);cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:background-color .15s ease,border-color .15s ease}.reaction-button.has-count{width:auto;padding:0 10px}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.12);border-color:rgba(var(--ion-color-primary-rgb),.32)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.0625rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:600}.comment-actions{display:flex;flex-wrap:wrap;gap:4px}.comment-action-button{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-color-medium);transition:background-color .15s ease}.comment-action-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.comment-action-button:disabled{opacity:.5;cursor:default}.comment-action-button ion-icon{font-size:1rem}.comment-action-button.action-color-primary{color:var(--ion-color-primary)}.comment-action-button.action-color-danger{color:var(--ion-color-danger)}.comment-action-button.action-color-dark{color:var(--ion-color-dark)}.expand-button,.collapse-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon{font-size:1rem}.load-more-button,.view-replies-button{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid rgba(var(--ion-color-medium-rgb),.24);padding:5px 10px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-text-color);border-radius:var(--val-radius-full, 999px);transition:background-color .15s ease}.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.load-more-button ion-icon,.view-replies-button ion-icon{font-size:.9375rem}.expand-button{margin-top:4px;color:var(--ion-color-dark)}.comment-children{margin-top:10px;padding-left:min(var(--indent-size),var(--max-indent));display:flex;flex-direction:column;gap:10px}.comment-children val-comment{display:block}.load-more-button,.view-replies-button{margin-top:4px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment,:host-context(.ion-palette-dark) .comment,:host-context(html.ion-palette-dark) .comment,:host-context(body.dark) .comment,:host-context([data-theme=dark]) .comment{--comment-surface: rgba(255, 255, 255, .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .16)}:host-context(.dark) .comment--social,:host-context(.ion-palette-dark) .comment--social,:host-context(html.ion-palette-dark) .comment--social,:host-context(body.dark) .comment--social,:host-context([data-theme=dark]) .comment--social{--comment-surface: var(--ion-card-background, rgba(255, 255, 255, .08))}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"], dependencies: [{ kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar, vds-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
26836
26877
|
}
|
|
26837
26878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentComponent, decorators: [{
|
|
26838
26879
|
type: Component,
|
|
@@ -33579,14 +33620,14 @@ const ACTION_CARD_DEFAULTS = {
|
|
|
33579
33620
|
|
|
33580
33621
|
addIcons({ chevronForwardOutline });
|
|
33581
33622
|
/**
|
|
33582
|
-
*
|
|
33623
|
+
* vds-action-card
|
|
33583
33624
|
*
|
|
33584
33625
|
* A clickable card component with icon, title, description, and optional badge.
|
|
33585
33626
|
* Supports multiple icon formats: Ionicons, SVG paths, and image URLs.
|
|
33586
33627
|
*
|
|
33587
33628
|
* @example Basic usage with Ionicon
|
|
33588
33629
|
* ```html
|
|
33589
|
-
* <
|
|
33630
|
+
* <vds-action-card
|
|
33590
33631
|
* [props]="{
|
|
33591
33632
|
* icon: { ionicon: 'settings-outline' },
|
|
33592
33633
|
* title: 'Settings',
|
|
@@ -33598,7 +33639,7 @@ addIcons({ chevronForwardOutline });
|
|
|
33598
33639
|
*
|
|
33599
33640
|
* @example With routerLink navigation
|
|
33600
33641
|
* ```html
|
|
33601
|
-
* <
|
|
33642
|
+
* <vds-action-card
|
|
33602
33643
|
* [props]="{
|
|
33603
33644
|
* icon: { ionicon: 'person-outline', color: 'primary' },
|
|
33604
33645
|
* title: 'Profile',
|
|
@@ -33611,7 +33652,7 @@ addIcons({ chevronForwardOutline });
|
|
|
33611
33652
|
*
|
|
33612
33653
|
* @example With custom SVG icon
|
|
33613
33654
|
* ```html
|
|
33614
|
-
* <
|
|
33655
|
+
* <vds-action-card
|
|
33615
33656
|
* [props]="{
|
|
33616
33657
|
* icon: { svgPath: 'M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5' },
|
|
33617
33658
|
* title: 'Custom Feature',
|
|
@@ -33627,13 +33668,60 @@ class ActionCardComponent {
|
|
|
33627
33668
|
this.navigation = inject(NavigationService);
|
|
33628
33669
|
/** Component configuration */
|
|
33629
33670
|
this.props = input({});
|
|
33671
|
+
this.title = input();
|
|
33672
|
+
this.titleKey = input();
|
|
33673
|
+
this.description = input();
|
|
33674
|
+
this.descriptionKey = input();
|
|
33675
|
+
this.i18nNamespace = input();
|
|
33676
|
+
this.icon = input();
|
|
33677
|
+
this.size = input();
|
|
33678
|
+
this.variant = input();
|
|
33679
|
+
this.bordered = input();
|
|
33680
|
+
this.borderColor = input();
|
|
33681
|
+
this.backgroundColor = input();
|
|
33682
|
+
this.shadowed = input();
|
|
33683
|
+
this.disabled = input();
|
|
33684
|
+
this.routerLink = input();
|
|
33685
|
+
this.queryParams = input();
|
|
33686
|
+
this.href = input();
|
|
33687
|
+
this.badge = input();
|
|
33688
|
+
this.showChevron = input();
|
|
33689
|
+
this.token = input();
|
|
33630
33690
|
/** Event emitted when card is clicked */
|
|
33631
33691
|
this.onClick = new EventEmitter();
|
|
33632
33692
|
/** Merged configuration with defaults */
|
|
33633
|
-
this.config = computed(() =>
|
|
33634
|
-
|
|
33635
|
-
|
|
33636
|
-
|
|
33693
|
+
this.config = computed(() => {
|
|
33694
|
+
const directProps = {};
|
|
33695
|
+
this.assignIfDefined(directProps, 'title', this.title());
|
|
33696
|
+
this.assignIfDefined(directProps, 'titleKey', this.titleKey());
|
|
33697
|
+
this.assignIfDefined(directProps, 'description', this.description());
|
|
33698
|
+
this.assignIfDefined(directProps, 'descriptionKey', this.descriptionKey());
|
|
33699
|
+
this.assignIfDefined(directProps, 'i18nNamespace', this.i18nNamespace());
|
|
33700
|
+
this.assignIfDefined(directProps, 'icon', this.icon());
|
|
33701
|
+
this.assignIfDefined(directProps, 'size', this.size());
|
|
33702
|
+
this.assignIfDefined(directProps, 'variant', this.variant());
|
|
33703
|
+
this.assignIfDefined(directProps, 'bordered', this.bordered());
|
|
33704
|
+
this.assignIfDefined(directProps, 'borderColor', this.borderColor());
|
|
33705
|
+
this.assignIfDefined(directProps, 'backgroundColor', this.backgroundColor());
|
|
33706
|
+
this.assignIfDefined(directProps, 'shadowed', this.shadowed());
|
|
33707
|
+
this.assignIfDefined(directProps, 'disabled', this.disabled());
|
|
33708
|
+
this.assignIfDefined(directProps, 'routerLink', this.routerLink());
|
|
33709
|
+
this.assignIfDefined(directProps, 'queryParams', this.queryParams());
|
|
33710
|
+
this.assignIfDefined(directProps, 'href', this.href());
|
|
33711
|
+
this.assignIfDefined(directProps, 'badge', this.badge());
|
|
33712
|
+
this.assignIfDefined(directProps, 'showChevron', this.showChevron());
|
|
33713
|
+
this.assignIfDefined(directProps, 'token', this.token());
|
|
33714
|
+
return {
|
|
33715
|
+
...ACTION_CARD_DEFAULTS,
|
|
33716
|
+
...this.props(),
|
|
33717
|
+
...directProps,
|
|
33718
|
+
};
|
|
33719
|
+
});
|
|
33720
|
+
}
|
|
33721
|
+
assignIfDefined(target, key, value) {
|
|
33722
|
+
if (value !== undefined) {
|
|
33723
|
+
target[key] = value;
|
|
33724
|
+
}
|
|
33637
33725
|
}
|
|
33638
33726
|
/** Get title with i18n support */
|
|
33639
33727
|
getTitle() {
|
|
@@ -33653,30 +33741,37 @@ class ActionCardComponent {
|
|
|
33653
33741
|
}
|
|
33654
33742
|
return cfg.description || '';
|
|
33655
33743
|
}
|
|
33656
|
-
/** Resolve
|
|
33657
|
-
|
|
33658
|
-
|
|
33744
|
+
/** Resolve a public role to VDS first, then keep Ionic as the compatibility fallback. */
|
|
33745
|
+
resolveRoleColor(color, part) {
|
|
33746
|
+
if (!color)
|
|
33747
|
+
return null;
|
|
33748
|
+
if (!isIonicColor(color))
|
|
33749
|
+
return color;
|
|
33750
|
+
const suffix = part && part !== 'base' ? `-${part}` : '';
|
|
33751
|
+
const ionicSuffix = part === 'fg' ? '-contrast' : '';
|
|
33752
|
+
return `var(--vds-${color}${suffix}, var(--ion-color-${color}${ionicSuffix}))`;
|
|
33659
33753
|
}
|
|
33660
33754
|
getBackgroundColor() {
|
|
33661
|
-
return this.
|
|
33755
|
+
return this.resolveRoleColor(this.config().backgroundColor, 'tint');
|
|
33662
33756
|
}
|
|
33663
33757
|
getBorderColor() {
|
|
33664
|
-
return this.
|
|
33758
|
+
return (this.resolveRoleColor(this.config().borderColor, 'border') ||
|
|
33759
|
+
'var(--vds-border-subtle, var(--ion-color-light-shade, rgba(148, 163, 184, 0.24)))');
|
|
33665
33760
|
}
|
|
33666
33761
|
getIconColor() {
|
|
33667
|
-
return this.
|
|
33762
|
+
return this.resolveRoleColor(this.config().icon?.color, 'text') || 'var(--vds-primary-text, #1d4ed8)';
|
|
33668
33763
|
}
|
|
33669
33764
|
getIconBackgroundColor() {
|
|
33670
33765
|
const bg = this.config().icon?.backgroundColor;
|
|
33671
33766
|
if (!bg)
|
|
33672
|
-
return 'rgba(var(--ion-color-primary-rgb), 0.1)';
|
|
33673
|
-
return this.
|
|
33767
|
+
return 'var(--vds-primary-tint, rgba(var(--ion-color-primary-rgb), 0.1))';
|
|
33768
|
+
return this.resolveRoleColor(bg, 'tint');
|
|
33674
33769
|
}
|
|
33675
33770
|
getBadgeColor() {
|
|
33676
|
-
return this.
|
|
33771
|
+
return this.resolveRoleColor(this.config().badge?.color, 'fg') || 'var(--vds-primary-fg, #ffffff)';
|
|
33677
33772
|
}
|
|
33678
33773
|
getBadgeBackgroundColor() {
|
|
33679
|
-
return this.
|
|
33774
|
+
return this.resolveRoleColor(this.config().badge?.backgroundColor) || 'var(--vds-primary, #2563eb)';
|
|
33680
33775
|
}
|
|
33681
33776
|
/** Handle card click */
|
|
33682
33777
|
handleClick(event) {
|
|
@@ -33697,18 +33792,23 @@ class ActionCardComponent {
|
|
|
33697
33792
|
}
|
|
33698
33793
|
}
|
|
33699
33794
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33700
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionCardComponent, isStandalone: true, selector: "val-action-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
33795
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionCardComponent, isStandalone: true, selector: "val-action-card, vds-action-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleKey: { classPropertyName: "titleKey", publicName: "titleKey", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionKey: { classPropertyName: "descriptionKey", publicName: "descriptionKey", isSignal: true, isRequired: false, transformFunction: null }, i18nNamespace: { classPropertyName: "i18nNamespace", publicName: "i18nNamespace", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, shadowed: { classPropertyName: "shadowed", publicName: "shadowed", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, token: { classPropertyName: "token", publicName: "token", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
33701
33796
|
<div
|
|
33702
33797
|
class="action-card"
|
|
33703
33798
|
[class.action-card--small]="config().size === 'small'"
|
|
33704
33799
|
[class.action-card--medium]="config().size === 'medium'"
|
|
33705
33800
|
[class.action-card--large]="config().size === 'large'"
|
|
33801
|
+
[class.action-card--marker]="config().variant === 'marker'"
|
|
33706
33802
|
[class.action-card--bordered]="config().bordered"
|
|
33707
33803
|
[class.action-card--shadowed]="config().shadowed"
|
|
33708
33804
|
[class.action-card--disabled]="config().disabled"
|
|
33709
33805
|
[class.action-card--clickable]="!config().disabled"
|
|
33710
33806
|
[style.--card-bg]="getBackgroundColor()"
|
|
33711
33807
|
[style.--card-border-color]="getBorderColor()"
|
|
33808
|
+
[style.--card-icon-color]="getIconColor()"
|
|
33809
|
+
[style.--card-icon-bg]="getIconBackgroundColor()"
|
|
33810
|
+
[style.--card-badge-color]="getBadgeColor()"
|
|
33811
|
+
[style.--card-badge-bg]="getBadgeBackgroundColor()"
|
|
33712
33812
|
[routerLink]="config().disabled ? null : config().routerLink"
|
|
33713
33813
|
[queryParams]="config().queryParams ?? null"
|
|
33714
33814
|
(click)="handleClick($event)"
|
|
@@ -33720,17 +33820,13 @@ class ActionCardComponent {
|
|
|
33720
33820
|
|
|
33721
33821
|
<!-- Badge (top-right corner) -->
|
|
33722
33822
|
@if (config().badge) {
|
|
33723
|
-
<span
|
|
33724
|
-
class="action-card__badge"
|
|
33725
|
-
[style.color]="getBadgeColor()"
|
|
33726
|
-
[style.background-color]="getBadgeBackgroundColor()"
|
|
33727
|
-
>
|
|
33823
|
+
<span class="action-card__badge">
|
|
33728
33824
|
{{ config().badge!.text }}
|
|
33729
33825
|
</span>
|
|
33730
33826
|
}
|
|
33731
33827
|
|
|
33732
33828
|
<!-- Icon Container -->
|
|
33733
|
-
<div class="action-card__icon"
|
|
33829
|
+
<div class="action-card__icon">
|
|
33734
33830
|
@if (config().icon?.ionicon) {
|
|
33735
33831
|
<ion-icon [name]="config().icon!.ionicon!" aria-hidden="true"></ion-icon>
|
|
33736
33832
|
} @else if (config().icon?.svgPath) {
|
|
@@ -33762,22 +33858,27 @@ class ActionCardComponent {
|
|
|
33762
33858
|
<ion-icon name="chevron-forward-outline" class="action-card__chevron" aria-hidden="true"></ion-icon>
|
|
33763
33859
|
}
|
|
33764
33860
|
</div>
|
|
33765
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--ion-card-background, var(--ion-background-color)));border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--ion-color-primary)}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--
|
|
33861
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--vds-bg-surface, var(--ion-card-background, var(--ion-background-color))));border-radius:var(--vds-action-card-radius, var(--vds-radius-surface, 12px));cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--vds-primary, var(--ion-color-primary, #2563eb))}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--marker{align-items:flex-start;border:1px solid var(--card-border-color);box-shadow:none}.action-card--marker .action-card__icon{width:12px;height:12px;margin-top:.35rem;border-radius:var(--vds-radius-pill, 9999px);background-color:var(--card-icon-color, var(--vds-primary, #2563eb))}.action-card--marker .action-card__icon ion-icon,.action-card--marker .action-card__icon svg,.action-card--marker .action-card__icon img{display:none}.action-card--bordered{border:1px solid var(--card-border-color)}.action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(15, 23, 42, .08)))}.action-card--clickable:hover{transform:translateY(-2px);box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(15, 23, 42, .12)))}.action-card--clickable:focus-visible{outline:var(--vds-focus-ring-width, 2px) solid var(--vds-focus-ring-color, var(--vds-primary, #2563eb));outline-offset:2px}.action-card--clickable:active{transform:translateY(0)}.action-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.action-card__badge{position:absolute;top:8px;right:8px;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;z-index:1;background-color:var(--card-badge-bg, var(--vds-primary, #2563eb));color:var(--card-badge-color, var(--vds-primary-fg, #ffffff))}.action-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--card-icon-bg, var(--vds-primary-tint, rgba(var(--ion-color-primary-rgb), .1)));color:var(--card-icon-color, var(--vds-primary-text, #1d4ed8))}.action-card__icon ion-icon{font-size:inherit}.action-card__icon svg{display:block}.action-card__icon-image{width:100%;height:100%;object-fit:cover;border-radius:8px}.action-card__content{flex:1;min-width:0}.action-card__title{margin:0 0 .25rem;font-weight:600;color:var(--vds-fg-base, var(--ion-text-color, #0f172a));line-height:1.3}.action-card__description{margin:0;color:var(--vds-fg-subtle, var(--ion-color-dark, #334155));line-height:1.4}.action-card__chevron{flex-shrink:0;font-size:1.25rem;color:var(--vds-fg-muted, var(--ion-color-dark, #64748b));transition:transform .2s ease}.action-card--clickable:hover .action-card__chevron{transform:translate(4px)}:host-context(.dark) .action-card--shadowed,:host-context(.ion-palette-dark) .action-card--shadowed,:host-context(html.ion-palette-dark) .action-card--shadowed,:host-context(body.dark) .action-card--shadowed,:host-context([data-theme=dark]) .action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(0, 0, 0, .3)))}:host-context(.dark) .action-card--clickable:hover,:host-context(.ion-palette-dark) .action-card--clickable:hover,:host-context(html.ion-palette-dark) .action-card--clickable:hover,:host-context(body.dark) .action-card--clickable:hover,:host-context([data-theme=dark]) .action-card--clickable:hover{box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(0, 0, 0, .4)))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
|
|
33766
33862
|
}
|
|
33767
33863
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionCardComponent, decorators: [{
|
|
33768
33864
|
type: Component,
|
|
33769
|
-
args: [{ selector: 'val-action-card', standalone: true, imports: [CommonModule, RouterLink, IonIcon, IonRippleEffect], template: `
|
|
33865
|
+
args: [{ selector: 'val-action-card, vds-action-card', standalone: true, imports: [CommonModule, RouterLink, IonIcon, IonRippleEffect], template: `
|
|
33770
33866
|
<div
|
|
33771
33867
|
class="action-card"
|
|
33772
33868
|
[class.action-card--small]="config().size === 'small'"
|
|
33773
33869
|
[class.action-card--medium]="config().size === 'medium'"
|
|
33774
33870
|
[class.action-card--large]="config().size === 'large'"
|
|
33871
|
+
[class.action-card--marker]="config().variant === 'marker'"
|
|
33775
33872
|
[class.action-card--bordered]="config().bordered"
|
|
33776
33873
|
[class.action-card--shadowed]="config().shadowed"
|
|
33777
33874
|
[class.action-card--disabled]="config().disabled"
|
|
33778
33875
|
[class.action-card--clickable]="!config().disabled"
|
|
33779
33876
|
[style.--card-bg]="getBackgroundColor()"
|
|
33780
33877
|
[style.--card-border-color]="getBorderColor()"
|
|
33878
|
+
[style.--card-icon-color]="getIconColor()"
|
|
33879
|
+
[style.--card-icon-bg]="getIconBackgroundColor()"
|
|
33880
|
+
[style.--card-badge-color]="getBadgeColor()"
|
|
33881
|
+
[style.--card-badge-bg]="getBadgeBackgroundColor()"
|
|
33781
33882
|
[routerLink]="config().disabled ? null : config().routerLink"
|
|
33782
33883
|
[queryParams]="config().queryParams ?? null"
|
|
33783
33884
|
(click)="handleClick($event)"
|
|
@@ -33789,17 +33890,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
33789
33890
|
|
|
33790
33891
|
<!-- Badge (top-right corner) -->
|
|
33791
33892
|
@if (config().badge) {
|
|
33792
|
-
<span
|
|
33793
|
-
class="action-card__badge"
|
|
33794
|
-
[style.color]="getBadgeColor()"
|
|
33795
|
-
[style.background-color]="getBadgeBackgroundColor()"
|
|
33796
|
-
>
|
|
33893
|
+
<span class="action-card__badge">
|
|
33797
33894
|
{{ config().badge!.text }}
|
|
33798
33895
|
</span>
|
|
33799
33896
|
}
|
|
33800
33897
|
|
|
33801
33898
|
<!-- Icon Container -->
|
|
33802
|
-
<div class="action-card__icon"
|
|
33899
|
+
<div class="action-card__icon">
|
|
33803
33900
|
@if (config().icon?.ionicon) {
|
|
33804
33901
|
<ion-icon [name]="config().icon!.ionicon!" aria-hidden="true"></ion-icon>
|
|
33805
33902
|
} @else if (config().icon?.svgPath) {
|
|
@@ -33831,7 +33928,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
33831
33928
|
<ion-icon name="chevron-forward-outline" class="action-card__chevron" aria-hidden="true"></ion-icon>
|
|
33832
33929
|
}
|
|
33833
33930
|
</div>
|
|
33834
|
-
`, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--ion-card-background, var(--ion-background-color)));border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--ion-color-primary)}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--
|
|
33931
|
+
`, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--vds-bg-surface, var(--ion-card-background, var(--ion-background-color))));border-radius:var(--vds-action-card-radius, var(--vds-radius-surface, 12px));cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--vds-primary, var(--ion-color-primary, #2563eb))}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--marker{align-items:flex-start;border:1px solid var(--card-border-color);box-shadow:none}.action-card--marker .action-card__icon{width:12px;height:12px;margin-top:.35rem;border-radius:var(--vds-radius-pill, 9999px);background-color:var(--card-icon-color, var(--vds-primary, #2563eb))}.action-card--marker .action-card__icon ion-icon,.action-card--marker .action-card__icon svg,.action-card--marker .action-card__icon img{display:none}.action-card--bordered{border:1px solid var(--card-border-color)}.action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(15, 23, 42, .08)))}.action-card--clickable:hover{transform:translateY(-2px);box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(15, 23, 42, .12)))}.action-card--clickable:focus-visible{outline:var(--vds-focus-ring-width, 2px) solid var(--vds-focus-ring-color, var(--vds-primary, #2563eb));outline-offset:2px}.action-card--clickable:active{transform:translateY(0)}.action-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.action-card__badge{position:absolute;top:8px;right:8px;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;z-index:1;background-color:var(--card-badge-bg, var(--vds-primary, #2563eb));color:var(--card-badge-color, var(--vds-primary-fg, #ffffff))}.action-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--card-icon-bg, var(--vds-primary-tint, rgba(var(--ion-color-primary-rgb), .1)));color:var(--card-icon-color, var(--vds-primary-text, #1d4ed8))}.action-card__icon ion-icon{font-size:inherit}.action-card__icon svg{display:block}.action-card__icon-image{width:100%;height:100%;object-fit:cover;border-radius:8px}.action-card__content{flex:1;min-width:0}.action-card__title{margin:0 0 .25rem;font-weight:600;color:var(--vds-fg-base, var(--ion-text-color, #0f172a));line-height:1.3}.action-card__description{margin:0;color:var(--vds-fg-subtle, var(--ion-color-dark, #334155));line-height:1.4}.action-card__chevron{flex-shrink:0;font-size:1.25rem;color:var(--vds-fg-muted, var(--ion-color-dark, #64748b));transition:transform .2s ease}.action-card--clickable:hover .action-card__chevron{transform:translate(4px)}:host-context(.dark) .action-card--shadowed,:host-context(.ion-palette-dark) .action-card--shadowed,:host-context(html.ion-palette-dark) .action-card--shadowed,:host-context(body.dark) .action-card--shadowed,:host-context([data-theme=dark]) .action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(0, 0, 0, .3)))}:host-context(.dark) .action-card--clickable:hover,:host-context(.ion-palette-dark) .action-card--clickable:hover,:host-context(html.ion-palette-dark) .action-card--clickable:hover,:host-context(body.dark) .action-card--clickable:hover,:host-context([data-theme=dark]) .action-card--clickable:hover{box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(0, 0, 0, .4)))}\n"] }]
|
|
33835
33932
|
}], propDecorators: { onClick: [{
|
|
33836
33933
|
type: Output
|
|
33837
33934
|
}] } });
|
|
@@ -37881,6 +37978,13 @@ class AttachmentUploaderComponent {
|
|
|
37881
37978
|
})));
|
|
37882
37979
|
}
|
|
37883
37980
|
}
|
|
37981
|
+
ngOnDestroy() {
|
|
37982
|
+
this.closeCamera();
|
|
37983
|
+
for (const url of this.previewUrls) {
|
|
37984
|
+
URL.revokeObjectURL(url);
|
|
37985
|
+
}
|
|
37986
|
+
this.previewUrls.clear();
|
|
37987
|
+
}
|
|
37884
37988
|
constructor() {
|
|
37885
37989
|
this.props = input({});
|
|
37886
37990
|
this.attachmentsChange = output();
|
|
@@ -37890,6 +37994,7 @@ class AttachmentUploaderComponent {
|
|
|
37890
37994
|
this.attachments = signal([]);
|
|
37891
37995
|
this.showCameraOverlay = signal(false);
|
|
37892
37996
|
this.cameraStream = null;
|
|
37997
|
+
this.previewUrls = new Set();
|
|
37893
37998
|
this.maxFiles = computed(() => this.props().maxFiles ?? 5);
|
|
37894
37999
|
this.accept = computed(() => this.props().accept ?? 'image/jpeg,image/png,image/webp,application/pdf');
|
|
37895
38000
|
this.maxReached = computed(() => this.attachments().length >= this.maxFiles());
|
|
@@ -37962,18 +38067,26 @@ class AttachmentUploaderComponent {
|
|
|
37962
38067
|
const toProcess = files.slice(0, available);
|
|
37963
38068
|
for (const file of toProcess) {
|
|
37964
38069
|
const id = crypto.randomUUID();
|
|
38070
|
+
const previewUrl = this.createPreviewUrl(file);
|
|
37965
38071
|
if (this.props().lazy) {
|
|
37966
38072
|
// Lazy mode: buffear sin subir. El consumer sube cuando tenga el destino.
|
|
37967
|
-
this.attachments.update(list => [...list, { id, file, status: 'ready' }]);
|
|
38073
|
+
this.attachments.update(list => [...list, { id, file, previewUrl, status: 'ready' }]);
|
|
37968
38074
|
this.attachmentsChange.emit(this.attachments());
|
|
37969
38075
|
}
|
|
37970
38076
|
else {
|
|
37971
|
-
this.attachments.update(list => [...list, { id, file, status: 'uploading' }]);
|
|
38077
|
+
this.attachments.update(list => [...list, { id, file, previewUrl, status: 'uploading' }]);
|
|
37972
38078
|
this.attachmentsChange.emit(this.attachments());
|
|
37973
38079
|
this.uploadFile(id, file);
|
|
37974
38080
|
}
|
|
37975
38081
|
}
|
|
37976
38082
|
}
|
|
38083
|
+
createPreviewUrl(file) {
|
|
38084
|
+
if (!file.type.startsWith('image/'))
|
|
38085
|
+
return undefined;
|
|
38086
|
+
const url = URL.createObjectURL(file);
|
|
38087
|
+
this.previewUrls.add(url);
|
|
38088
|
+
return url;
|
|
38089
|
+
}
|
|
37977
38090
|
compressImage(file) {
|
|
37978
38091
|
return new Promise((resolve, reject) => {
|
|
37979
38092
|
new Compressor(file, {
|
|
@@ -38042,6 +38155,11 @@ class AttachmentUploaderComponent {
|
|
|
38042
38155
|
this.attachmentsChange.emit(this.attachments());
|
|
38043
38156
|
}
|
|
38044
38157
|
remove(id) {
|
|
38158
|
+
const item = this.attachments().find(a => a.id === id);
|
|
38159
|
+
if (item?.previewUrl) {
|
|
38160
|
+
URL.revokeObjectURL(item.previewUrl);
|
|
38161
|
+
this.previewUrls.delete(item.previewUrl);
|
|
38162
|
+
}
|
|
38045
38163
|
this.attachments.update(list => list.filter(a => a.id !== id));
|
|
38046
38164
|
this.attachmentsChange.emit(this.attachments());
|
|
38047
38165
|
}
|
|
@@ -38057,11 +38175,11 @@ class AttachmentUploaderComponent {
|
|
|
38057
38175
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
38058
38176
|
}
|
|
38059
38177
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AttachmentUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38060
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AttachmentUploaderComponent, isStandalone: true, selector: "val-attachment-uploader", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { attachmentsChange: "attachmentsChange" }, viewQueries: [{ propertyName: "cameraPicker", first: true, predicate: ["cameraPicker"], descendants: true }, { propertyName: "cameraVideo", first: true, predicate: ["cameraVideo"], descendants: true }], ngImport: i0, template: "<div class=\"attachment-uploader\">\n @if (props().title) {\n <val-title class=\"attachment-title\" [props]=\"{ content: props().title, size: 'small', color: 'dark', bold: false }\" />\n }\n\n <!-- file picker est\u00E1ndar -->\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n <!-- fallback c\u00E1mara: solo se dispara si getUserMedia falla/denegado -->\n <input\n #cameraPicker\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n (change)=\"onFilesSelected($event)\"\n />\n\n <div class=\"attachment-actions\">\n <ion-button\n class=\"attachment-action\"\n fill=\"outline\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n (click)=\"filePicker.click()\"\n >\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <ion-button class=\"attachment-action\" fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"openCamera()\">\n <ion-icon slot=\"start\" name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </ion-button>\n </div>\n\n @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n @if (!item.isExternal) {\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file?.type?.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n }\n <div class=\"file-info\">\n
|
|
38178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AttachmentUploaderComponent, isStandalone: true, selector: "val-attachment-uploader", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { attachmentsChange: "attachmentsChange" }, viewQueries: [{ propertyName: "cameraPicker", first: true, predicate: ["cameraPicker"], descendants: true }, { propertyName: "cameraVideo", first: true, predicate: ["cameraVideo"], descendants: true }], ngImport: i0, template: "<div class=\"attachment-uploader\">\n @if (props().title) {\n <val-title class=\"attachment-title\" [props]=\"{ content: props().title, size: 'small', color: 'dark', bold: false }\" />\n }\n\n <!-- file picker est\u00E1ndar -->\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n <!-- fallback c\u00E1mara: solo se dispara si getUserMedia falla/denegado -->\n <input\n #cameraPicker\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n (change)=\"onFilesSelected($event)\"\n />\n\n <div class=\"attachment-actions\">\n <ion-button\n class=\"attachment-action\"\n fill=\"outline\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n (click)=\"filePicker.click()\"\n >\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <ion-button class=\"attachment-action\" fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"openCamera()\">\n <ion-icon slot=\"start\" name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </ion-button>\n </div>\n\n @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n @if (item.previewUrl || item.thumbnailUrl || (item.isExternal && item.url)) {\n <img\n class=\"file-thumb\"\n [src]=\"item.previewUrl || item.thumbnailUrl || item.url\"\n [alt]=\"item.file?.name ?? i18n.t('attachFile')\"\n loading=\"lazy\"\n (error)=\"thumbFailed(item.id)\"\n />\n } @else if (!item.isExternal) {\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file?.type?.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n }\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file?.name ?? i18n.t('attachFile') }}</span>\n <span class=\"file-size\">{{ item.file ? formatSize(item.file.size) : '' }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"dark\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n } @if (props().hint) {\n <p class=\"attachment-hint\">{{ props().hint }}</p>\n }\n</div>\n\n<!-- Overlay de c\u00E1mara (getUserMedia) -->\n@if (showCameraOverlay()) {\n<div class=\"camera-overlay\" (click)=\"closeCamera()\">\n <div class=\"camera-modal\" (click)=\"$event.stopPropagation()\">\n <video #cameraVideo autoplay playsinline class=\"camera-preview\"></video>\n <div class=\"camera-controls\">\n <ion-button class=\"camera-control camera-control--cancel\" fill=\"outline\" (click)=\"closeCamera()\">\n {{ i18n.t('attachCancel') }}\n </ion-button>\n <ion-button class=\"camera-control camera-control--capture\" shape=\"round\" (click)=\"capturePhoto()\">\n <ion-icon slot=\"start\" name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCapture') }}\n </ion-button>\n </div>\n </div>\n</div>\n}\n", styles: [".hidden-input{display:none}.camera-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center}.camera-modal{display:flex;flex-direction:column;gap:16px;padding:16px;max-width:min(640px,95vw);width:100%}.camera-preview{width:100%;border-radius:12px;background:#000;aspect-ratio:16/9;object-fit:cover}.camera-controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.camera-controls .camera-control{margin:0;font-weight:700}.camera-controls .camera-control--cancel{--color: #fff;--border-color: rgba(255, 255, 255, .5);--background: rgba(255, 255, 255, .06);--background-hover: rgba(255, 255, 255, .12);--background-activated: rgba(255, 255, 255, .16)}.camera-controls .camera-control--capture{--background: #fff;--background-hover: #f4f4f5;--background-activated: #e4e4e7;--color: #18181b;--box-shadow: 0 10px 24px rgba(0, 0, 0, .28)}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-title{display:block;margin-bottom:2px}.attachment-hint{margin:2px 0 0;text-align:left;font-size:.75rem;line-height:1.4;color:var(--ion-color-dark)}.attachment-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.attachment-actions ion-button{margin:0;height:32px}.attachment-actions .attachment-action{--background: var(--ion-card-background, var(--ion-background-color, #fff));--background-hover: rgba(var(--ion-color-primary-rgb, 56, 128, 255), .06);--background-activated: rgba(var(--ion-color-primary-rgb, 56, 128, 255), .1);--border-color: var(--ion-border-color, rgba(0, 0, 0, .14));--color: var(--ion-text-color, #222428);--color-activated: var(--ion-text-color, #222428)}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--ion-background-color, #fff);border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .08));flex-wrap:wrap}.attachment-item.status-error{border-color:var(--ion-color-danger)}.file-icon{font-size:1.375rem;color:var(--ion-text-color);flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}.file-name{font-size:.8125rem;color:var(--ion-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.6875rem;color:var(--ion-color-dark)}:host-context(.dark) .attachment-item,:host-context(.ion-palette-dark) .attachment-item,:host-context(html.ion-palette-dark) .attachment-item,:host-context(body.dark) .attachment-item,:host-context([data-theme=dark]) .attachment-item{background:#ffffff0a;border-color:#ffffff1f}:host-context(.dark) .attachment-item.status-error,:host-context(.ion-palette-dark) .attachment-item.status-error,:host-context(html.ion-palette-dark) .attachment-item.status-error,:host-context(body.dark) .attachment-item.status-error,:host-context([data-theme=dark]) .attachment-item.status-error{border-color:var(--ion-color-danger)}:host-context(.dark) .attachment-action,:host-context(.ion-palette-dark) .attachment-action,:host-context(html.ion-palette-dark) .attachment-action,:host-context(body.dark) .attachment-action,:host-context([data-theme=dark]) .attachment-action{--background: rgba(255, 255, 255, .04);--background-hover: rgba(255, 255, 255, .08);--background-activated: rgba(255, 255, 255, .12);--border-color: rgba(255, 255, 255, .16);--color: var(--ion-text-color, #fff);--color-activated: var(--ion-text-color, #fff)}.status-icon{font-size:1.25rem;flex-shrink:0}.error-note{font-size:.6875rem;width:100%}.max-note{font-size:.75rem}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
38061
38179
|
}
|
|
38062
38180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AttachmentUploaderComponent, decorators: [{
|
|
38063
38181
|
type: Component,
|
|
38064
|
-
args: [{ selector: 'val-attachment-uploader', standalone: true, imports: [IonButton, IonIcon, IonNote, IonSpinner, TitleComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"attachment-uploader\">\n @if (props().title) {\n <val-title class=\"attachment-title\" [props]=\"{ content: props().title, size: 'small', color: 'dark', bold: false }\" />\n }\n\n <!-- file picker est\u00E1ndar -->\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n <!-- fallback c\u00E1mara: solo se dispara si getUserMedia falla/denegado -->\n <input\n #cameraPicker\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n (change)=\"onFilesSelected($event)\"\n />\n\n <div class=\"attachment-actions\">\n <ion-button\n class=\"attachment-action\"\n fill=\"outline\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n (click)=\"filePicker.click()\"\n >\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <ion-button class=\"attachment-action\" fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"openCamera()\">\n <ion-icon slot=\"start\" name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </ion-button>\n </div>\n\n @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n @if (!item.isExternal) {\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file?.type?.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n }\n <div class=\"file-info\">\n
|
|
38182
|
+
args: [{ selector: 'val-attachment-uploader', standalone: true, imports: [IonButton, IonIcon, IonNote, IonSpinner, TitleComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"attachment-uploader\">\n @if (props().title) {\n <val-title class=\"attachment-title\" [props]=\"{ content: props().title, size: 'small', color: 'dark', bold: false }\" />\n }\n\n <!-- file picker est\u00E1ndar -->\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n <!-- fallback c\u00E1mara: solo se dispara si getUserMedia falla/denegado -->\n <input\n #cameraPicker\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n (change)=\"onFilesSelected($event)\"\n />\n\n <div class=\"attachment-actions\">\n <ion-button\n class=\"attachment-action\"\n fill=\"outline\"\n size=\"small\"\n [disabled]=\"isDisabled()\"\n (click)=\"filePicker.click()\"\n >\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <ion-button class=\"attachment-action\" fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"openCamera()\">\n <ion-icon slot=\"start\" name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </ion-button>\n </div>\n\n @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n @if (item.previewUrl || item.thumbnailUrl || (item.isExternal && item.url)) {\n <img\n class=\"file-thumb\"\n [src]=\"item.previewUrl || item.thumbnailUrl || item.url\"\n [alt]=\"item.file?.name ?? i18n.t('attachFile')\"\n loading=\"lazy\"\n (error)=\"thumbFailed(item.id)\"\n />\n } @else if (!item.isExternal) {\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file?.type?.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n }\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file?.name ?? i18n.t('attachFile') }}</span>\n <span class=\"file-size\">{{ item.file ? formatSize(item.file.size) : '' }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"dark\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n } @if (props().hint) {\n <p class=\"attachment-hint\">{{ props().hint }}</p>\n }\n</div>\n\n<!-- Overlay de c\u00E1mara (getUserMedia) -->\n@if (showCameraOverlay()) {\n<div class=\"camera-overlay\" (click)=\"closeCamera()\">\n <div class=\"camera-modal\" (click)=\"$event.stopPropagation()\">\n <video #cameraVideo autoplay playsinline class=\"camera-preview\"></video>\n <div class=\"camera-controls\">\n <ion-button class=\"camera-control camera-control--cancel\" fill=\"outline\" (click)=\"closeCamera()\">\n {{ i18n.t('attachCancel') }}\n </ion-button>\n <ion-button class=\"camera-control camera-control--capture\" shape=\"round\" (click)=\"capturePhoto()\">\n <ion-icon slot=\"start\" name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCapture') }}\n </ion-button>\n </div>\n </div>\n</div>\n}\n", styles: [".hidden-input{display:none}.camera-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center}.camera-modal{display:flex;flex-direction:column;gap:16px;padding:16px;max-width:min(640px,95vw);width:100%}.camera-preview{width:100%;border-radius:12px;background:#000;aspect-ratio:16/9;object-fit:cover}.camera-controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.camera-controls .camera-control{margin:0;font-weight:700}.camera-controls .camera-control--cancel{--color: #fff;--border-color: rgba(255, 255, 255, .5);--background: rgba(255, 255, 255, .06);--background-hover: rgba(255, 255, 255, .12);--background-activated: rgba(255, 255, 255, .16)}.camera-controls .camera-control--capture{--background: #fff;--background-hover: #f4f4f5;--background-activated: #e4e4e7;--color: #18181b;--box-shadow: 0 10px 24px rgba(0, 0, 0, .28)}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-title{display:block;margin-bottom:2px}.attachment-hint{margin:2px 0 0;text-align:left;font-size:.75rem;line-height:1.4;color:var(--ion-color-dark)}.attachment-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.attachment-actions ion-button{margin:0;height:32px}.attachment-actions .attachment-action{--background: var(--ion-card-background, var(--ion-background-color, #fff));--background-hover: rgba(var(--ion-color-primary-rgb, 56, 128, 255), .06);--background-activated: rgba(var(--ion-color-primary-rgb, 56, 128, 255), .1);--border-color: var(--ion-border-color, rgba(0, 0, 0, .14));--color: var(--ion-text-color, #222428);--color-activated: var(--ion-text-color, #222428)}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--ion-background-color, #fff);border:1px solid var(--ion-color-light-shade, rgba(0, 0, 0, .08));flex-wrap:wrap}.attachment-item.status-error{border-color:var(--ion-color-danger)}.file-icon{font-size:1.375rem;color:var(--ion-text-color);flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}.file-name{font-size:.8125rem;color:var(--ion-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.6875rem;color:var(--ion-color-dark)}:host-context(.dark) .attachment-item,:host-context(.ion-palette-dark) .attachment-item,:host-context(html.ion-palette-dark) .attachment-item,:host-context(body.dark) .attachment-item,:host-context([data-theme=dark]) .attachment-item{background:#ffffff0a;border-color:#ffffff1f}:host-context(.dark) .attachment-item.status-error,:host-context(.ion-palette-dark) .attachment-item.status-error,:host-context(html.ion-palette-dark) .attachment-item.status-error,:host-context(body.dark) .attachment-item.status-error,:host-context([data-theme=dark]) .attachment-item.status-error{border-color:var(--ion-color-danger)}:host-context(.dark) .attachment-action,:host-context(.ion-palette-dark) .attachment-action,:host-context(html.ion-palette-dark) .attachment-action,:host-context(body.dark) .attachment-action,:host-context([data-theme=dark]) .attachment-action{--background: rgba(255, 255, 255, .04);--background-hover: rgba(255, 255, 255, .08);--background-activated: rgba(255, 255, 255, .12);--border-color: rgba(255, 255, 255, .16);--color: var(--ion-text-color, #fff);--color-activated: var(--ion-text-color, #fff)}.status-icon{font-size:1.25rem;flex-shrink:0}.error-note{font-size:.6875rem;width:100%}.max-note{font-size:.75rem}\n"] }]
|
|
38065
38183
|
}], ctorParameters: () => [], propDecorators: { cameraPicker: [{
|
|
38066
38184
|
type: ViewChild,
|
|
38067
38185
|
args: ['cameraPicker']
|
|
@@ -51140,7 +51258,7 @@ class WizardFooterComponent {
|
|
|
51140
51258
|
(onClick)="clickHandler($event)"
|
|
51141
51259
|
></val-button-group>
|
|
51142
51260
|
</val-footer>
|
|
51143
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
51261
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar, vds-progress-bar", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
51144
51262
|
}
|
|
51145
51263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WizardFooterComponent, decorators: [{
|
|
51146
51264
|
type: Component,
|
|
@@ -51633,7 +51751,7 @@ class CommentSectionComponent {
|
|
|
51633
51751
|
</div>
|
|
51634
51752
|
}
|
|
51635
51753
|
</div>
|
|
51636
|
-
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:1.5rem;color:var(--ion-color-primary)}.title{margin:0;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:.75rem;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:.875rem}.sort-icon{font-size:1.125rem;color:var(--ion-color-dark);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:.875rem;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:.75rem;color:var(--ion-color-dark)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list{display:flex;flex-direction:column;gap:10px}.comments-list.with-dividers{gap:0}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:4rem;color:var(--ion-color-dark);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:.875rem;color:var(--ion-color-dark);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}:host-context(body.dark) .new-comment-section,:host-context(.dark) .new-comment-section,:host-context(.ion-palette-dark) .new-comment-section,:host-context(html.ion-palette-dark) .new-comment-section,:host-context([data-theme=dark]) .new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}:host-context(body.dark) .comment-textarea,:host-context(.dark) .comment-textarea,:host-context(.ion-palette-dark) .comment-textarea,:host-context(html.ion-palette-dark) .comment-textarea,:host-context([data-theme=dark]) .comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$8.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { 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: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "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"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: SkeletonComponent, selector: "val-skeleton", inputs: ["props"] }] }); }
|
|
51754
|
+
`, 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-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--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: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:1.5rem;color:var(--ion-color-primary)}.title{margin:0;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:.75rem;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:.875rem}.sort-icon{font-size:1.125rem;color:var(--ion-color-dark);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:.875rem;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:.75rem;color:var(--ion-color-dark)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list{display:flex;flex-direction:column;gap:10px}.comments-list.with-dividers{gap:0}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:4rem;color:var(--ion-color-dark);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:.875rem;color:var(--ion-color-dark);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}:host-context(body.dark) .new-comment-section,:host-context(.dark) .new-comment-section,:host-context(.ion-palette-dark) .new-comment-section,:host-context(html.ion-palette-dark) .new-comment-section,:host-context([data-theme=dark]) .new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}:host-context(body.dark) .comment-textarea,:host-context(.dark) .comment-textarea,:host-context(.ion-palette-dark) .comment-textarea,:host-context(html.ion-palette-dark) .comment-textarea,:host-context([data-theme=dark]) .comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$8.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { 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: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "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"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar, vds-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: SkeletonComponent, selector: "val-skeleton", inputs: ["props"] }] }); }
|
|
51637
51755
|
}
|
|
51638
51756
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentSectionComponent, decorators: [{
|
|
51639
51757
|
type: Component,
|
|
@@ -59871,7 +59989,7 @@ function provideValtechPreferencesRoutes(opts) {
|
|
|
59871
59989
|
}
|
|
59872
59990
|
|
|
59873
59991
|
/**
|
|
59874
|
-
* Catálogo default de secciones del HUB de settings (
|
|
59992
|
+
* Catálogo default de secciones del HUB de settings (6 entradas). `logout` va
|
|
59875
59993
|
* incluida pero sin `routerLink` (la maneja un callback). Mismo set, mismos
|
|
59876
59994
|
* tokens/iconos/rutas que el builder original de showcase
|
|
59877
59995
|
* (`shared/settings-action-cards.ts`) que esta promoción reemplaza.
|
|
@@ -59916,15 +60034,6 @@ const SETTINGS_SECTIONS_CATALOG = [
|
|
|
59916
60034
|
showChevron: true,
|
|
59917
60035
|
shadowed: true,
|
|
59918
60036
|
},
|
|
59919
|
-
{
|
|
59920
|
-
token: 'action-preferences',
|
|
59921
|
-
titleKey: 'preferences',
|
|
59922
|
-
descKey: 'preferencesDesc',
|
|
59923
|
-
ionicon: 'options-outline',
|
|
59924
|
-
routerLink: '/app/settings/preferences',
|
|
59925
|
-
showChevron: true,
|
|
59926
|
-
shadowed: true,
|
|
59927
|
-
},
|
|
59928
60037
|
{
|
|
59929
60038
|
token: 'action-notifications',
|
|
59930
60039
|
titleKey: 'notifications',
|
|
@@ -60183,7 +60292,7 @@ class SettingsHubComponent {
|
|
|
60183
60292
|
</ion-grid>
|
|
60184
60293
|
</div>
|
|
60185
60294
|
</val-container>
|
|
60186
|
-
`, isInline: true, styles: [".page{padding:16px 0}.page-header{margin-bottom:16px}.cards-grid{margin:0 -4px;padding:0}.cards-grid ion-col{padding:4px}\n"], dependencies: [{ kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
60295
|
+
`, isInline: true, styles: [".page{padding:16px 0}.page-header{margin-bottom:16px}.cards-grid{margin:0 -4px;padding:0}.cards-grid ion-col{padding:4px}\n"], dependencies: [{ kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card, vds-action-card", inputs: ["props", "title", "titleKey", "description", "descriptionKey", "i18nNamespace", "icon", "size", "variant", "bordered", "borderColor", "backgroundColor", "shadowed", "disabled", "routerLink", "queryParams", "href", "badge", "showChevron", "token"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
60187
60296
|
}
|
|
60188
60297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SettingsHubComponent, decorators: [{
|
|
60189
60298
|
type: Component,
|
|
@@ -61646,7 +61755,7 @@ class SecurityViewComponent {
|
|
|
61646
61755
|
/>
|
|
61647
61756
|
</div>
|
|
61648
61757
|
</val-container>
|
|
61649
|
-
`, isInline: true, styles: [".page{padding:16px 0}.page-header{margin-bottom:16px}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}h2{font-size:16px;font-weight:600;margin:0 0 4px}.cards-grid{margin:0 -4px;padding:0}.cards-grid ion-col{padding:4px;display:flex;flex-direction:column}.cards-grid ion-col val-action-card{flex:1;display:flex;flex-direction:column}.section-body{margin-top:16px;display:flex;flex-direction:column;gap:10px}.row-actions{margin-top:12px}.row-actions--center{display:flex;justify-content:center;margin-top:4px}.sessions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.session{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--ion-color-light, rgba(0, 0, 0, .04));border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.session--current{background:#2dd36f1a;border-color:#2dd36f4d}.session__icon{font-size:26px;color:var(--ion-color-dark, #1a1a1a);flex-shrink:0}.session--current .session__icon{color:var(--ion-color-success-shade, #28ba62)}.session__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.session__end{flex-shrink:0}.session__badge{display:inline-block;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ion-color-success-shade, #28ba62);background:#2dd36f2e;border-radius:999px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ActionHeaderComponent, selector: "val-action-header", inputs: ["props"] }, { kind: "component", type: PageLinksComponent, selector: "val-page-links", inputs: ["props"] }, { kind: "component", type: SkeletonLayoutComponent, selector: "val-skeleton-layout", inputs: ["props"] }, { kind: "component", type: ChangeEmailModalComponent, selector: "val-change-email-modal", inputs: ["isOpen"], outputs: ["changed", "dismissed"] }, { kind: "component", type: ChangePasswordModalComponent, selector: "val-change-password-modal", inputs: ["isOpen"], outputs: ["changed", "dismissed"] }, { kind: "component", type: MfaModalComponent, selector: "val-mfa-modal", inputs: ["isOpen", "prefillCode"], outputs: ["changed", "enabledViaDeeplink", "dismissed"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
61758
|
+
`, isInline: true, styles: [".page{padding:16px 0}.page-header{margin-bottom:16px}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}h2{font-size:16px;font-weight:600;margin:0 0 4px}.cards-grid{margin:0 -4px;padding:0}.cards-grid ion-col{padding:4px;display:flex;flex-direction:column}.cards-grid ion-col val-action-card{flex:1;display:flex;flex-direction:column}.section-body{margin-top:16px;display:flex;flex-direction:column;gap:10px}.row-actions{margin-top:12px}.row-actions--center{display:flex;justify-content:center;margin-top:4px}.sessions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.session{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:var(--ion-color-light, rgba(0, 0, 0, .04));border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.session--current{background:#2dd36f1a;border-color:#2dd36f4d}.session__icon{font-size:26px;color:var(--ion-color-dark, #1a1a1a);flex-shrink:0}.session--current .session__icon{color:var(--ion-color-success-shade, #28ba62)}.session__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.session__end{flex-shrink:0}.session__badge{display:inline-block;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ion-color-success-shade, #28ba62);background:#2dd36f2e;border-radius:999px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card, vds-action-card", inputs: ["props", "title", "titleKey", "description", "descriptionKey", "i18nNamespace", "icon", "size", "variant", "bordered", "borderColor", "backgroundColor", "shadowed", "disabled", "routerLink", "queryParams", "href", "badge", "showChevron", "token"], outputs: ["onClick"] }, { kind: "component", type: ActionHeaderComponent, selector: "val-action-header", inputs: ["props"] }, { kind: "component", type: PageLinksComponent, selector: "val-page-links", inputs: ["props"] }, { kind: "component", type: SkeletonLayoutComponent, selector: "val-skeleton-layout", inputs: ["props"] }, { kind: "component", type: ChangeEmailModalComponent, selector: "val-change-email-modal", inputs: ["isOpen"], outputs: ["changed", "dismissed"] }, { kind: "component", type: ChangePasswordModalComponent, selector: "val-change-password-modal", inputs: ["isOpen"], outputs: ["changed", "dismissed"] }, { kind: "component", type: MfaModalComponent, selector: "val-mfa-modal", inputs: ["isOpen", "prefillCode"], outputs: ["changed", "enabledViaDeeplink", "dismissed"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
61650
61759
|
}
|
|
61651
61760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SecurityViewComponent, decorators: [{
|
|
61652
61761
|
type: Component,
|
|
@@ -72400,7 +72509,7 @@ class AboutViewComponent {
|
|
|
72400
72509
|
pintara acá, la vista Acerca de mostraría dos (le pasó). -->
|
|
72401
72510
|
</ion-grid>
|
|
72402
72511
|
</val-container>
|
|
72403
|
-
`, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-dark)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ 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: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
72512
|
+
`, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-dark)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ 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: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card, vds-action-card", inputs: ["props", "title", "titleKey", "description", "descriptionKey", "i18nNamespace", "icon", "size", "variant", "bordered", "borderColor", "backgroundColor", "shadowed", "disabled", "routerLink", "queryParams", "href", "badge", "showChevron", "token"], outputs: ["onClick"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
72404
72513
|
}
|
|
72405
72514
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, decorators: [{
|
|
72406
72515
|
type: Component,
|