valtech-components 2.0.773 → 2.0.775
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/pattern/motifs.mjs +41 -26
- package/esm2022/lib/components/atoms/pattern/pattern.component.mjs +48 -15
- package/esm2022/lib/components/atoms/pattern/types.mjs +1 -1
- package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +199 -0
- package/esm2022/lib/components/organisms/cookie-banner/types.mjs +2 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/valtech-components.mjs +280 -40
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/pattern/motifs.d.ts +6 -0
- package/lib/components/atoms/pattern/pattern.component.d.ts +13 -1
- package/lib/components/atoms/pattern/types.d.ts +17 -3
- package/lib/components/organisms/cookie-banner/cookie-banner.component.d.ts +36 -0
- package/lib/components/organisms/cookie-banner/types.d.ts +62 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -52,7 +52,7 @@ import 'prismjs/components/prism-json';
|
|
|
52
52
|
* Current version of valtech-components.
|
|
53
53
|
* This is automatically updated during the publish process.
|
|
54
54
|
*/
|
|
55
|
-
const VERSION = '2.0.
|
|
55
|
+
const VERSION = '2.0.775';
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Servicio para gestionar presets de componentes.
|
|
@@ -5834,19 +5834,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
5834
5834
|
* transform="translate(col*100 row*100)">` con un `<rect width=100 height=100
|
|
5835
5835
|
* fill=bg/>` de fondo.
|
|
5836
5836
|
*/
|
|
5837
|
+
/**
|
|
5838
|
+
* Chevrons stroke-based con linecap/linejoin redondos — visualmente coherente
|
|
5839
|
+
* con el símbolo de marca Valtech (`>_`). Stroke-width 18 (default), 12 para
|
|
5840
|
+
* variants `small-*`.
|
|
5841
|
+
*/
|
|
5842
|
+
const CHEV_STROKE = 18;
|
|
5843
|
+
const CHEV_SMALL_STROKE = 12;
|
|
5844
|
+
const chevStyle = (f, w = CHEV_STROKE) => `stroke="${f}" stroke-width="${w}" stroke-linecap="round" stroke-linejoin="round" fill="none"`;
|
|
5837
5845
|
const PATTERN_MOTIFS = {
|
|
5838
|
-
'chev-r': f => `<path d="M22 18
|
|
5839
|
-
'chev-l': f => `<path d="M78 18
|
|
5840
|
-
'chev-d': f => `<path d="M18 22 L50
|
|
5841
|
-
'chev-u': f => `<path d="M18 78 L50
|
|
5846
|
+
'chev-r': f => `<path d="M22 18 L72 50 L22 82" ${chevStyle(f)}/>`,
|
|
5847
|
+
'chev-l': f => `<path d="M78 18 L28 50 L78 82" ${chevStyle(f)}/>`,
|
|
5848
|
+
'chev-d': f => `<path d="M18 22 L50 72 L82 22" ${chevStyle(f)}/>`,
|
|
5849
|
+
'chev-u': f => `<path d="M18 78 L50 28 L82 78" ${chevStyle(f)}/>`,
|
|
5842
5850
|
'tri-tl': f => `<polygon points="0,0 100,0 0,100" fill="${f}"/>`,
|
|
5843
5851
|
'tri-tr': f => `<polygon points="0,0 100,0 100,100" fill="${f}"/>`,
|
|
5844
5852
|
'tri-bl': f => `<polygon points="0,0 100,100 0,100" fill="${f}"/>`,
|
|
5845
5853
|
'tri-br': f => `<polygon points="100,0 100,100 0,100" fill="${f}"/>`,
|
|
5846
5854
|
solid: () => ``,
|
|
5847
5855
|
diamond: f => `<polygon points="50,12 88,50 50,88 12,50" fill="${f}"/>`,
|
|
5848
|
-
'small-r': f => `<path d="M38 32 L62 50 L38 68
|
|
5849
|
-
'small-l': f => `<path d="M62 32 L38 50 L62 68
|
|
5856
|
+
'small-r': f => `<path d="M38 32 L62 50 L38 68" ${chevStyle(f, CHEV_SMALL_STROKE)}/>`,
|
|
5857
|
+
'small-l': f => `<path d="M62 32 L38 50 L62 68" ${chevStyle(f, CHEV_SMALL_STROKE)}/>`,
|
|
5850
5858
|
'arrow-r': f => `<path d="M10 42 L60 42 L60 28 L92 50 L60 72 L60 58 L10 58 Z" fill="${f}"/>`,
|
|
5851
5859
|
'arrow-l': f => `<path d="M90 42 L40 42 L40 28 L8 50 L40 72 L40 58 L90 58 Z" fill="${f}"/>`,
|
|
5852
5860
|
'house-d': f => `<polygon points="50,20 88,50 12,50" fill="${f}"/><rect x="28" y="50" width="44" height="32" fill="${f}"/>`,
|
|
@@ -5906,6 +5914,31 @@ function mulberry32(seed) {
|
|
|
5906
5914
|
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
5907
5915
|
};
|
|
5908
5916
|
}
|
|
5917
|
+
/**
|
|
5918
|
+
* Genera UN tile con motif/bg/fg respetando densidades + contraste.
|
|
5919
|
+
* Caller pasa rng (Math.random o seeded) — útil para reshuffle individual de
|
|
5920
|
+
* tiles en `val-pattern` sin regenerar la grid completa.
|
|
5921
|
+
*/
|
|
5922
|
+
function generateRandomTile(palette, chevronDensity = 0.55, rng = Math.random) {
|
|
5923
|
+
const roll = rng();
|
|
5924
|
+
let key;
|
|
5925
|
+
if (roll < chevronDensity)
|
|
5926
|
+
key = CHEV_KEYS[Math.floor(rng() * CHEV_KEYS.length)];
|
|
5927
|
+
else if (roll < chevronDensity + 0.2)
|
|
5928
|
+
key = SOLID_KEYS[Math.floor(rng() * SOLID_KEYS.length)];
|
|
5929
|
+
else if (roll < chevronDensity + 0.35)
|
|
5930
|
+
key = SHAPE_KEYS[Math.floor(rng() * SHAPE_KEYS.length)];
|
|
5931
|
+
else
|
|
5932
|
+
key = TRI_KEYS[Math.floor(rng() * TRI_KEYS.length)];
|
|
5933
|
+
const bgIdx = Math.floor(rng() * palette.length);
|
|
5934
|
+
let fgIdx = Math.floor(rng() * palette.length);
|
|
5935
|
+
let tries = 0;
|
|
5936
|
+
while (Math.abs(fgIdx - bgIdx) < 3 && tries < 6) {
|
|
5937
|
+
fgIdx = Math.floor(rng() * palette.length);
|
|
5938
|
+
tries++;
|
|
5939
|
+
}
|
|
5940
|
+
return { motif: key, bg: palette[bgIdx], fg: palette[fgIdx] };
|
|
5941
|
+
}
|
|
5909
5942
|
/** Genera matriz de tiles aplicando densidades + reglas de contraste. */
|
|
5910
5943
|
function generatePatternTiles(cfg) {
|
|
5911
5944
|
const { cols, rows, seed, palette } = cfg;
|
|
@@ -5913,25 +5946,7 @@ function generatePatternTiles(cfg) {
|
|
|
5913
5946
|
const r = mulberry32(seed);
|
|
5914
5947
|
const tiles = [];
|
|
5915
5948
|
for (let i = 0; i < cols * rows; i++) {
|
|
5916
|
-
|
|
5917
|
-
let key;
|
|
5918
|
-
if (roll < chevronDensity)
|
|
5919
|
-
key = CHEV_KEYS[Math.floor(r() * CHEV_KEYS.length)];
|
|
5920
|
-
else if (roll < chevronDensity + 0.2)
|
|
5921
|
-
key = SOLID_KEYS[Math.floor(r() * SOLID_KEYS.length)];
|
|
5922
|
-
else if (roll < chevronDensity + 0.35)
|
|
5923
|
-
key = SHAPE_KEYS[Math.floor(r() * SHAPE_KEYS.length)];
|
|
5924
|
-
else
|
|
5925
|
-
key = TRI_KEYS[Math.floor(r() * TRI_KEYS.length)];
|
|
5926
|
-
// Pick bg + contrasting fg (índices con distancia ≥3 en la palette).
|
|
5927
|
-
const bgIdx = Math.floor(r() * palette.length);
|
|
5928
|
-
let fgIdx = Math.floor(r() * palette.length);
|
|
5929
|
-
let tries = 0;
|
|
5930
|
-
while (Math.abs(fgIdx - bgIdx) < 3 && tries < 6) {
|
|
5931
|
-
fgIdx = Math.floor(r() * palette.length);
|
|
5932
|
-
tries++;
|
|
5933
|
-
}
|
|
5934
|
-
tiles.push({ motif: key, bg: palette[bgIdx], fg: palette[fgIdx] });
|
|
5949
|
+
tiles.push(generateRandomTile(palette, chevronDensity, r));
|
|
5935
5950
|
}
|
|
5936
5951
|
return tiles;
|
|
5937
5952
|
}
|
|
@@ -6004,6 +6019,9 @@ class PatternComponent {
|
|
|
6004
6019
|
if (value.reshuffleInterval !== undefined && value.reshuffleInterval > 0) {
|
|
6005
6020
|
this.reshuffleInterval.set(value.reshuffleInterval);
|
|
6006
6021
|
}
|
|
6022
|
+
if (value.tilesPerTick !== undefined && value.tilesPerTick > 0) {
|
|
6023
|
+
this.tilesPerTick.set(Math.floor(value.tilesPerTick));
|
|
6024
|
+
}
|
|
6007
6025
|
if (value.animated !== undefined)
|
|
6008
6026
|
this.animated.set(!!value.animated);
|
|
6009
6027
|
}
|
|
@@ -6016,15 +6034,16 @@ class PatternComponent {
|
|
|
6016
6034
|
this.chevronDensity = signal(0.55);
|
|
6017
6035
|
this.preserveAspect = signal('slice');
|
|
6018
6036
|
this.animated = signal(false);
|
|
6019
|
-
|
|
6020
|
-
|
|
6021
|
-
|
|
6022
|
-
|
|
6023
|
-
|
|
6024
|
-
|
|
6025
|
-
|
|
6026
|
-
|
|
6027
|
-
|
|
6037
|
+
/** ms entre updates individuales de tiles (modo animated). Default 1200ms. */
|
|
6038
|
+
this.reshuffleInterval = signal(1200);
|
|
6039
|
+
/** Cuántos tiles cambiar por tick (default 1 → cambio sutil). */
|
|
6040
|
+
this.tilesPerTick = signal(1);
|
|
6041
|
+
/**
|
|
6042
|
+
* Tiles signal — mutable. Se regenera completa cuando cambia seed/cols/rows/
|
|
6043
|
+
* palette/density. En modo animated, tiles individuales se sobrescriben sin
|
|
6044
|
+
* tocar el resto (efecto staggered).
|
|
6045
|
+
*/
|
|
6046
|
+
this.tiles = signal([]);
|
|
6028
6047
|
/** SVG completo como string sanitized para `[innerHTML]`. */
|
|
6029
6048
|
this.svgHtml = computed(() => {
|
|
6030
6049
|
const cols = this.cols();
|
|
@@ -6035,18 +6054,30 @@ class PatternComponent {
|
|
|
6035
6054
|
const svg = `<svg viewBox="0 0 ${cols * 100} ${rows * 100}" preserveAspectRatio="${aspect}" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">${inner}</svg>`;
|
|
6036
6055
|
return this.sanitizer.bypassSecurityTrustHtml(svg);
|
|
6037
6056
|
});
|
|
6038
|
-
//
|
|
6057
|
+
// Regenera grid completa cuando cambian props estructurales (cols/rows/
|
|
6058
|
+
// palette/density/seed). El seed solo cambia explícitamente via props o
|
|
6059
|
+
// mount inicial — NO se muta en modo animated.
|
|
6060
|
+
effect(() => {
|
|
6061
|
+
const cols = this.cols();
|
|
6062
|
+
const rows = this.rows();
|
|
6063
|
+
const seed = this.seed();
|
|
6064
|
+
const palette = this.paletteRef();
|
|
6065
|
+
const density = this.chevronDensity();
|
|
6066
|
+
this.tiles.set(generatePatternTiles({ cols, rows, seed, palette, chevronDensity: density }));
|
|
6067
|
+
});
|
|
6068
|
+
// Modo animated: cada `reshuffleInterval` ms, sobrescribe `tilesPerTick`
|
|
6069
|
+
// tiles random — efecto staggered (no toda la grid de una). Si el user
|
|
6070
|
+
// desactiva animated, el timer se limpia automáticamente.
|
|
6039
6071
|
effect(onCleanup => {
|
|
6040
6072
|
const isAnimated = this.animated();
|
|
6041
6073
|
const interval = this.reshuffleInterval();
|
|
6074
|
+
const perTick = this.tilesPerTick();
|
|
6042
6075
|
if (this.timer)
|
|
6043
6076
|
clearInterval(this.timer);
|
|
6044
6077
|
this.timer = undefined;
|
|
6045
6078
|
if (!isAnimated)
|
|
6046
6079
|
return;
|
|
6047
|
-
this.timer = setInterval(() =>
|
|
6048
|
-
this.seed.set(this.randomSeed());
|
|
6049
|
-
}, interval);
|
|
6080
|
+
this.timer = setInterval(() => this.mutateRandomTiles(perTick), interval);
|
|
6050
6081
|
onCleanup(() => {
|
|
6051
6082
|
if (this.timer) {
|
|
6052
6083
|
clearInterval(this.timer);
|
|
@@ -6055,6 +6086,23 @@ class PatternComponent {
|
|
|
6055
6086
|
});
|
|
6056
6087
|
});
|
|
6057
6088
|
}
|
|
6089
|
+
/**
|
|
6090
|
+
* Reemplaza `count` tiles random del grid actual con tiles nuevos generados.
|
|
6091
|
+
* Usado por el modo animated para staggered reshuffle.
|
|
6092
|
+
*/
|
|
6093
|
+
mutateRandomTiles(count) {
|
|
6094
|
+
const current = this.tiles();
|
|
6095
|
+
if (current.length === 0)
|
|
6096
|
+
return;
|
|
6097
|
+
const next = [...current];
|
|
6098
|
+
const palette = this.paletteRef();
|
|
6099
|
+
const density = this.chevronDensity();
|
|
6100
|
+
for (let n = 0; n < count; n++) {
|
|
6101
|
+
const idx = Math.floor(Math.random() * next.length);
|
|
6102
|
+
next[idx] = generateRandomTile(palette, density);
|
|
6103
|
+
}
|
|
6104
|
+
this.tiles.set(next);
|
|
6105
|
+
}
|
|
6058
6106
|
ngOnDestroy() {
|
|
6059
6107
|
if (this.timer)
|
|
6060
6108
|
clearInterval(this.timer);
|
|
@@ -25947,6 +25995,198 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
25947
25995
|
type: Input
|
|
25948
25996
|
}] } });
|
|
25949
25997
|
|
|
25998
|
+
/**
|
|
25999
|
+
* `val-cookie-banner` — bottom/top fixed banner asking the user to choose
|
|
26000
|
+
* a cookie consent option. Presentational only: emits events on each
|
|
26001
|
+
* action, the parent decides what to do (typically wiring to
|
|
26002
|
+
* `AnalyticsService` from `valtech-components`).
|
|
26003
|
+
*
|
|
26004
|
+
* @example
|
|
26005
|
+
* <val-cookie-banner
|
|
26006
|
+
* [props]="bannerProps()"
|
|
26007
|
+
* (accept)="onAccept()"
|
|
26008
|
+
* (reject)="onReject()"
|
|
26009
|
+
* (customize)="onCustomize()"
|
|
26010
|
+
* (dismiss)="onDismiss()"
|
|
26011
|
+
* />
|
|
26012
|
+
*
|
|
26013
|
+
* Wire `props.visible` to `analytics.consentState().hasDecided === false`
|
|
26014
|
+
* so the banner auto-hides once the user makes a choice.
|
|
26015
|
+
*/
|
|
26016
|
+
class CookieBannerComponent {
|
|
26017
|
+
constructor() {
|
|
26018
|
+
/** Fired when the user clicks the primary "accept" button. */
|
|
26019
|
+
this.accept = new EventEmitter();
|
|
26020
|
+
/** Fired when the user clicks the secondary "reject" button. */
|
|
26021
|
+
this.reject = new EventEmitter();
|
|
26022
|
+
/** Fired when the user clicks the tertiary "customize/configure" button. */
|
|
26023
|
+
this.customize = new EventEmitter();
|
|
26024
|
+
/** Fired when the user clicks the dismiss (X) icon. */
|
|
26025
|
+
this.dismiss = new EventEmitter();
|
|
26026
|
+
addIcons({ closeOutline });
|
|
26027
|
+
}
|
|
26028
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26029
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CookieBannerComponent, isStandalone: true, selector: "val-cookie-banner", inputs: { props: "props" }, outputs: { accept: "accept", reject: "reject", customize: "customize", dismiss: "dismiss" }, ngImport: i0, template: `
|
|
26030
|
+
@if (props?.visible) {
|
|
26031
|
+
<div
|
|
26032
|
+
class="val-cookie-banner"
|
|
26033
|
+
[class.val-cookie-banner--top]="props.position === 'top'"
|
|
26034
|
+
[class.val-cookie-banner--bottom]="props.position !== 'top'"
|
|
26035
|
+
[class.val-cookie-banner--translucent]="props.translucent"
|
|
26036
|
+
role="dialog"
|
|
26037
|
+
aria-modal="false"
|
|
26038
|
+
aria-live="polite"
|
|
26039
|
+
>
|
|
26040
|
+
<div class="val-cookie-banner__inner" [style.max-width]="props.maxWidth || '1200px'">
|
|
26041
|
+
@if (props.dismissible) {
|
|
26042
|
+
<button
|
|
26043
|
+
type="button"
|
|
26044
|
+
class="val-cookie-banner__dismiss"
|
|
26045
|
+
[attr.aria-label]="'dismiss'"
|
|
26046
|
+
(click)="dismiss.emit()"
|
|
26047
|
+
>
|
|
26048
|
+
<ion-icon name="close-outline"></ion-icon>
|
|
26049
|
+
</button>
|
|
26050
|
+
}
|
|
26051
|
+
|
|
26052
|
+
<div class="val-cookie-banner__copy">
|
|
26053
|
+
@if (props.title) {
|
|
26054
|
+
<h3 class="val-cookie-banner__title">{{ props.title }}</h3>
|
|
26055
|
+
}
|
|
26056
|
+
<p class="val-cookie-banner__message">
|
|
26057
|
+
{{ props.message }}
|
|
26058
|
+
@if (props.policyLinkText && props.policyHref) {
|
|
26059
|
+
<a class="val-cookie-banner__policy" [href]="props.policyHref" target="_blank" rel="noopener">
|
|
26060
|
+
{{ props.policyLinkText }}
|
|
26061
|
+
</a>
|
|
26062
|
+
}
|
|
26063
|
+
</p>
|
|
26064
|
+
</div>
|
|
26065
|
+
|
|
26066
|
+
<div class="val-cookie-banner__actions">
|
|
26067
|
+
<ion-button fill="clear" size="small" [color]="props.rejectColor || 'medium'" (click)="reject.emit()">
|
|
26068
|
+
{{ props.rejectText }}
|
|
26069
|
+
</ion-button>
|
|
26070
|
+
|
|
26071
|
+
@if (props.customizeText) {
|
|
26072
|
+
@if (props.customizeRouterLink) {
|
|
26073
|
+
<ion-button
|
|
26074
|
+
fill="outline"
|
|
26075
|
+
size="small"
|
|
26076
|
+
[color]="props.customizeColor || 'dark'"
|
|
26077
|
+
[routerLink]="props.customizeRouterLink"
|
|
26078
|
+
(click)="customize.emit()"
|
|
26079
|
+
>
|
|
26080
|
+
{{ props.customizeText }}
|
|
26081
|
+
</ion-button>
|
|
26082
|
+
} @else {
|
|
26083
|
+
<ion-button
|
|
26084
|
+
fill="outline"
|
|
26085
|
+
size="small"
|
|
26086
|
+
[color]="props.customizeColor || 'dark'"
|
|
26087
|
+
(click)="customize.emit()"
|
|
26088
|
+
>
|
|
26089
|
+
{{ props.customizeText }}
|
|
26090
|
+
</ion-button>
|
|
26091
|
+
}
|
|
26092
|
+
}
|
|
26093
|
+
|
|
26094
|
+
<ion-button fill="solid" size="small" [color]="props.acceptColor || 'primary'" (click)="accept.emit()">
|
|
26095
|
+
{{ props.acceptText }}
|
|
26096
|
+
</ion-button>
|
|
26097
|
+
</div>
|
|
26098
|
+
</div>
|
|
26099
|
+
</div>
|
|
26100
|
+
}
|
|
26101
|
+
`, isInline: true, styles: [":host{display:contents}.val-cookie-banner{position:fixed;left:0;right:0;z-index:1000;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color, #fff);border-color:var(--val-border-color, rgba(0, 0, 0, .08));border-style:solid;border-width:0;box-shadow:0 -2px 16px #00000014;animation:val-cookie-banner-in .25s ease-out}.val-cookie-banner--bottom{bottom:0;border-top-width:1px}.val-cookie-banner--top{top:0;border-bottom-width:1px;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;box-shadow:0 2px 16px #00000014}.val-cookie-banner--translucent{background:#ffffffd9;backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px)}@media (prefers-color-scheme: dark){.val-cookie-banner--translucent{background:#141414d9}}.val-cookie-banner__inner{margin:0 auto;display:flex;flex-direction:row;align-items:center;gap:16px;position:relative}.val-cookie-banner__dismiss{position:absolute;top:-8px;right:-4px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:50%;cursor:pointer;color:var(--ion-color-medium);transition:color .15s ease,background .15s ease}.val-cookie-banner__dismiss:hover{color:var(--ion-color-dark);background:var(--ion-color-light-shade, rgba(0, 0, 0, .04))}.val-cookie-banner__dismiss ion-icon{font-size:18px}.val-cookie-banner__copy{flex:1 1 auto;min-width:0}.val-cookie-banner__title{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--ion-color-dark)}.val-cookie-banner__message{margin:0;font-size:13px;line-height:1.45;color:var(--ion-color-dark)}.val-cookie-banner__policy{margin-left:4px;color:var(--ion-color-primary);text-decoration:underline;text-underline-offset:2px}.val-cookie-banner__actions{display:inline-flex;flex-direction:row;align-items:center;gap:8px;flex-shrink:0}@media (max-width: 768px){.val-cookie-banner__inner{flex-direction:column;align-items:stretch;gap:12px}.val-cookie-banner__actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 480px){.val-cookie-banner__actions{flex-direction:column;align-items:stretch}.val-cookie-banner__actions ion-button{width:100%}}@keyframes val-cookie-banner-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.val-cookie-banner--top{animation-name:val-cookie-banner-in-top}@keyframes val-cookie-banner-in-top{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.val-cookie-banner{animation:none}}\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: 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26102
|
+
}
|
|
26103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CookieBannerComponent, decorators: [{
|
|
26104
|
+
type: Component,
|
|
26105
|
+
args: [{ selector: 'val-cookie-banner', standalone: true, imports: [CommonModule, RouterLink, IonButton, IonIcon], template: `
|
|
26106
|
+
@if (props?.visible) {
|
|
26107
|
+
<div
|
|
26108
|
+
class="val-cookie-banner"
|
|
26109
|
+
[class.val-cookie-banner--top]="props.position === 'top'"
|
|
26110
|
+
[class.val-cookie-banner--bottom]="props.position !== 'top'"
|
|
26111
|
+
[class.val-cookie-banner--translucent]="props.translucent"
|
|
26112
|
+
role="dialog"
|
|
26113
|
+
aria-modal="false"
|
|
26114
|
+
aria-live="polite"
|
|
26115
|
+
>
|
|
26116
|
+
<div class="val-cookie-banner__inner" [style.max-width]="props.maxWidth || '1200px'">
|
|
26117
|
+
@if (props.dismissible) {
|
|
26118
|
+
<button
|
|
26119
|
+
type="button"
|
|
26120
|
+
class="val-cookie-banner__dismiss"
|
|
26121
|
+
[attr.aria-label]="'dismiss'"
|
|
26122
|
+
(click)="dismiss.emit()"
|
|
26123
|
+
>
|
|
26124
|
+
<ion-icon name="close-outline"></ion-icon>
|
|
26125
|
+
</button>
|
|
26126
|
+
}
|
|
26127
|
+
|
|
26128
|
+
<div class="val-cookie-banner__copy">
|
|
26129
|
+
@if (props.title) {
|
|
26130
|
+
<h3 class="val-cookie-banner__title">{{ props.title }}</h3>
|
|
26131
|
+
}
|
|
26132
|
+
<p class="val-cookie-banner__message">
|
|
26133
|
+
{{ props.message }}
|
|
26134
|
+
@if (props.policyLinkText && props.policyHref) {
|
|
26135
|
+
<a class="val-cookie-banner__policy" [href]="props.policyHref" target="_blank" rel="noopener">
|
|
26136
|
+
{{ props.policyLinkText }}
|
|
26137
|
+
</a>
|
|
26138
|
+
}
|
|
26139
|
+
</p>
|
|
26140
|
+
</div>
|
|
26141
|
+
|
|
26142
|
+
<div class="val-cookie-banner__actions">
|
|
26143
|
+
<ion-button fill="clear" size="small" [color]="props.rejectColor || 'medium'" (click)="reject.emit()">
|
|
26144
|
+
{{ props.rejectText }}
|
|
26145
|
+
</ion-button>
|
|
26146
|
+
|
|
26147
|
+
@if (props.customizeText) {
|
|
26148
|
+
@if (props.customizeRouterLink) {
|
|
26149
|
+
<ion-button
|
|
26150
|
+
fill="outline"
|
|
26151
|
+
size="small"
|
|
26152
|
+
[color]="props.customizeColor || 'dark'"
|
|
26153
|
+
[routerLink]="props.customizeRouterLink"
|
|
26154
|
+
(click)="customize.emit()"
|
|
26155
|
+
>
|
|
26156
|
+
{{ props.customizeText }}
|
|
26157
|
+
</ion-button>
|
|
26158
|
+
} @else {
|
|
26159
|
+
<ion-button
|
|
26160
|
+
fill="outline"
|
|
26161
|
+
size="small"
|
|
26162
|
+
[color]="props.customizeColor || 'dark'"
|
|
26163
|
+
(click)="customize.emit()"
|
|
26164
|
+
>
|
|
26165
|
+
{{ props.customizeText }}
|
|
26166
|
+
</ion-button>
|
|
26167
|
+
}
|
|
26168
|
+
}
|
|
26169
|
+
|
|
26170
|
+
<ion-button fill="solid" size="small" [color]="props.acceptColor || 'primary'" (click)="accept.emit()">
|
|
26171
|
+
{{ props.acceptText }}
|
|
26172
|
+
</ion-button>
|
|
26173
|
+
</div>
|
|
26174
|
+
</div>
|
|
26175
|
+
</div>
|
|
26176
|
+
}
|
|
26177
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}.val-cookie-banner{position:fixed;left:0;right:0;z-index:1000;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color, #fff);border-color:var(--val-border-color, rgba(0, 0, 0, .08));border-style:solid;border-width:0;box-shadow:0 -2px 16px #00000014;animation:val-cookie-banner-in .25s ease-out}.val-cookie-banner--bottom{bottom:0;border-top-width:1px}.val-cookie-banner--top{top:0;border-bottom-width:1px;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;box-shadow:0 2px 16px #00000014}.val-cookie-banner--translucent{background:#ffffffd9;backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px)}@media (prefers-color-scheme: dark){.val-cookie-banner--translucent{background:#141414d9}}.val-cookie-banner__inner{margin:0 auto;display:flex;flex-direction:row;align-items:center;gap:16px;position:relative}.val-cookie-banner__dismiss{position:absolute;top:-8px;right:-4px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:50%;cursor:pointer;color:var(--ion-color-medium);transition:color .15s ease,background .15s ease}.val-cookie-banner__dismiss:hover{color:var(--ion-color-dark);background:var(--ion-color-light-shade, rgba(0, 0, 0, .04))}.val-cookie-banner__dismiss ion-icon{font-size:18px}.val-cookie-banner__copy{flex:1 1 auto;min-width:0}.val-cookie-banner__title{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--ion-color-dark)}.val-cookie-banner__message{margin:0;font-size:13px;line-height:1.45;color:var(--ion-color-dark)}.val-cookie-banner__policy{margin-left:4px;color:var(--ion-color-primary);text-decoration:underline;text-underline-offset:2px}.val-cookie-banner__actions{display:inline-flex;flex-direction:row;align-items:center;gap:8px;flex-shrink:0}@media (max-width: 768px){.val-cookie-banner__inner{flex-direction:column;align-items:stretch;gap:12px}.val-cookie-banner__actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 480px){.val-cookie-banner__actions{flex-direction:column;align-items:stretch}.val-cookie-banner__actions ion-button{width:100%}}@keyframes val-cookie-banner-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.val-cookie-banner--top{animation-name:val-cookie-banner-in-top}@keyframes val-cookie-banner-in-top{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.val-cookie-banner{animation:none}}\n"] }]
|
|
26178
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
26179
|
+
type: Input
|
|
26180
|
+
}], accept: [{
|
|
26181
|
+
type: Output
|
|
26182
|
+
}], reject: [{
|
|
26183
|
+
type: Output
|
|
26184
|
+
}], customize: [{
|
|
26185
|
+
type: Output
|
|
26186
|
+
}], dismiss: [{
|
|
26187
|
+
type: Output
|
|
26188
|
+
}] } });
|
|
26189
|
+
|
|
25950
26190
|
/**
|
|
25951
26191
|
* ToolbarComponent
|
|
25952
26192
|
*
|
|
@@ -43238,5 +43478,5 @@ function buildFooterLinks(links, t, resolver) {
|
|
|
43238
43478
|
* Generated bundle index. Do not edit.
|
|
43239
43479
|
*/
|
|
43240
43480
|
|
|
43241
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AppConfigService, ArticleBuilder, ArticleComponent, AuthBackgroundComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CHEV_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentTransformer, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FabComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MenuComponent, MessagingService, MetaService, ModalService, MultiSelectSearchComponent, NavigationService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PLATFORM_CONFIGS, PageContentComponent, PageTemplateComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RightsFooterComponent, RotatingTextComponent, SHAPE_KEYS, SKELETON_PRESETS, SOLID_KEYS, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UpdateBannerComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_DEFAULT_CONTENT, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_SOCIAL_LINKS, VERSION, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, blogPost, buildFooterLinks, buildPath, collections, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createTitleProps, docs, extractPathParams, generatePatternTiles, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideValtechAds, provideValtechAppConfig, provideValtechAuth, provideValtechAuthInterceptor, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPresets, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
43481
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, ARTICLE_SPACING, AVATAR_UPLOAD_DEFAULTS, AccordionComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AppConfigService, ArticleBuilder, ArticleComponent, AuthBackgroundComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BaseDefault, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CHEV_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentTransformer, CookieBannerComponent, CountdownComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_CANCEL_BUTTON, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DataTableComponent, DateInputComponent, DateRangeInputComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FabComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FooterComponent, FooterLinksComponent, FormComponent, FormFooterComponent, FormSkeletonComponent, FunHeaderComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HeaderComponent, HintComponent, HorizontalScrollComponent, HourInputComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginComponent, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MenuComponent, MessagingService, MetaService, ModalService, MultiSelectSearchComponent, NavigationService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationsService, NumberFromToComponent, NumberInputComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgSwitchService, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PATTERN_MOTIFS, PATTERN_PALETTES, PLATFORM_CONFIGS, PageContentComponent, PageTemplateComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PresetService, PriceTagComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProcessLinksPipe, ProfileSkeletonComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QueryBuilder, QuoteBoxComponent, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RightsFooterComponent, RotatingTextComponent, SHAPE_KEYS, SKELETON_PRESETS, SOLID_KEYS, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SegmentControlComponent, SelectSearchComponent, SessionService, ShareButtonsComponent, SimpleComponent, SkeletonComponent, SkeletonService, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TranslatePipe, TypedCollection, UpdateBannerComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_DEFAULT_CONTENT, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_SOCIAL_LINKS, VERSION, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, blogPost, buildFooterLinks, buildPath, collections, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createTitleProps, docs, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideValtechAds, provideValtechAppConfig, provideValtechAuth, provideValtechAuthInterceptor, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechPresets, provideValtechSkeleton, query, renderPatternSvgInner, replaceSpecialChars, resolveColor, resolveInputDefaultValue, roleGuard, storagePaths, superAdminGuard, toArticle };
|
|
43242
43482
|
//# sourceMappingURL=valtech-components.mjs.map
|